Intl 是JavaScript 中處理國際化的標(biāo)準(zhǔn)方法,提供日期、時(shí)間、數(shù)字、貨幣和字符串排序的本地化功能。 1. 使用Intl.DateTimeFormat 可按用戶語言格式化日期時(shí)間,如自動(dòng)識別或指定locale 輸出不同格式;2. 通過Intl.NumberFormat 實(shí)現(xiàn)數(shù)字與貨幣的本地化顯示,支持千分位、小數(shù)點(diǎn)及貨幣符號;3. 利用Intl.Collat??or 按本地規(guī)則對字符串排序,避免默認(rèn)排序方式帶來的問題。這些功能對於開發(fā)多語言應(yīng)用至關(guān)重要,確保內(nèi)容在全球範(fàn)圍內(nèi)符合當(dāng)?shù)亓?xí)慣。
處理JavaScript 中的國際化時(shí), Intl
對像是標(biāo)準(zhǔn)且推薦的方式。它提供了一系列構(gòu)造函數(shù)和方法,用於格式化日期、時(shí)間、數(shù)字、貨幣以及排序字符串等操作,能夠自動(dòng)適應(yīng)用戶的語言環(huán)境(locale)。這對於構(gòu)建多語言網(wǎng)站或應(yīng)用非常關(guān)鍵。

使用Intl.DateTimeFormat
格式化時(shí)間和日期
當(dāng)你需要根據(jù)用戶所在地區(qū)顯示本地化的日期和時(shí)間格式時(shí),可以使用Intl.DateTimeFormat
。

const now = new Date(); const options = { year: 'numeric', month: 'long', day: 'numeric' }; // 自動(dòng)識別系統(tǒng)語言環(huán)境console.log(new Intl.DateTimeFormat(undefined, options).format(now)); // 輸出示例:February 3, 2025(英文) 或者2025年2月3日(中文)
你可以顯式指定語言環(huán)境,例如:
new Intl.DateTimeFormat('zh-CN', options).format(now); // 中文格式new Intl.DateTimeFormat('de-DE', options).format(now); // 德語格式
提示:
- 如果你不傳入locale 參數(shù),會(huì)默認(rèn)使用運(yùn)行環(huán)境的語言設(shè)置。
- 可以通過
navigator.language
獲取瀏覽器當(dāng)前語言。- 常見用途包括:顯示友好時(shí)間、日曆組件、表單提交時(shí)間展示等。
使用Intl.NumberFormat
處理數(shù)字與貨幣
數(shù)字格式化在不同地區(qū)差異也很大,比如千分位符號、小數(shù)點(diǎn)形式,甚至貨幣單位。
const number = 123456.789; // 默認(rèn)格式console.log(new Intl.NumberFormat().format(number)); // 如123,456.789(英文) // 指定德國格式(逗號為小數(shù)點(diǎn)) console.log(new Intl.NumberFormat('de-DE').format(number)); // 輸出123.456,789 // 貨幣格式console.log(new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(number)); // $123,456.79 console.log(new Intl.NumberFormat('zh-CN', { style: 'currency', currency: 'CNY' }).format(number)); // ¥123,456.79
建議:
- 在電商、金融類項(xiàng)目中,貨幣格式必須正確對應(yīng)用戶所在國家。
- 注意貨幣代碼是否符合ISO 標(biāo)準(zhǔn),如USD、EUR、CNY 等。
- 若用戶切換語言或地區(qū),應(yīng)重新計(jì)算並更新格式。
使用Intl.Collator
實(shí)現(xiàn)本地化排序
字符串排序在不同語言中有不同的規(guī)則,比如德語中的變元音(?, ?, ü),西班牙語中的?。使用Intl.Collator
可以更準(zhǔn)確地進(jìn)行排序。
const names = ['?pple', 'apple', 'zoo', '?andú']; names.sort(new Intl.Collat??or('de').compare); console.log(names); // 德語排序中,? 和a 是接近的names.sort(new Intl.Collat??or('es').compare); console.log(names); // 西班牙語中,? 排在n 之後
注意:
- 不要依賴默認(rèn)的
.sort()
方法,因?yàn)樗话碪nicode 字符順序排序。- 在需要對列表、搜索結(jié)果做排序的場景下,尤其要注意語言環(huán)境影響。
- 支持敏感度控制(sensitivity)、大小寫忽略等選項(xiàng)。
基本上就這些。 Intl 提供的功能雖然看起來簡單,但在實(shí)現(xiàn)真正的多語言支持時(shí)非常關(guān)鍵。用好了可以讓你的應(yīng)用在全球範(fàn)圍內(nèi)都能“說當(dāng)?shù)卦挕薄?/p>
以上是在JavaScript中使用國際化的INTL對象的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用FastAPI框架建立國際化的Web應(yīng)用FastAPI是一個(gè)高效能的PythonWeb框架,它結(jié)合了Python類型註解和效能較好的非同步支持,使得開發(fā)Web應(yīng)用變得更加簡單、快速和可靠。在建構(gòu)一個(gè)國際化的網(wǎng)路應(yīng)用程式時(shí),F(xiàn)astAPI提供了方便的工具和理念,讓應(yīng)用程式能夠輕鬆支援多種語言。下面我將給一個(gè)具體的程式碼範(fàn)例,介紹如何使用FastAPI框架構(gòu)

隨著全球化的發(fā)展以及互聯(lián)網(wǎng)的普及,越來越多的網(wǎng)站和應(yīng)用程式開始致力於實(shí)現(xiàn)國際化和多語言支援功能,以滿足不同人群的需求。為了實(shí)現(xiàn)這些功能,開發(fā)者需要使用一些先進(jìn)的技術(shù)及框架。在本文中,我們將介紹如何使用Gin框架來實(shí)現(xiàn)國際化和多語言支援功能。 Gin框架是一個(gè)輕量級的Web框架,由Go語言編寫。它具有高效、易用和靈活等特點(diǎn),已經(jīng)成為了許多開發(fā)者的首選框架。除此之外,

使用Vue.js和Kotlin語言開發(fā)國際化支援的行動(dòng)應(yīng)用解決方案隨著全球化進(jìn)程的加速進(jìn)行,越來越多的行動(dòng)應(yīng)用需要提供多語言支援來滿足全球用戶的需求。在開發(fā)過程中,我們可以使用Vue.js和Kotlin語言來實(shí)現(xiàn)國際化的功能,使應(yīng)用程式能夠在不同的語言環(huán)境下正常運(yùn)作。一、Vue.js國際化支援Vue.js是一款受歡迎的JavaScript框架,提供了豐富的工具和特

PHP8.0中的國際化庫:UnicodeCLDR和Intl擴(kuò)展隨著全球化的進(jìn)程,開發(fā)跨語言、跨地域的應(yīng)用程式變得越來越普遍。國際化是實(shí)現(xiàn)這一目標(biāo)的重要組成部分。在PHP8.0中,引入了UnicodeCLDR和Intl擴(kuò)展,這兩個(gè)組件都為開發(fā)者提供了更好的國際化支援。 UnicodeCLDRUnicodeCLDR(CommonLocaleDat

如今,隨著網(wǎng)路技術(shù)的不斷發(fā)展,越來越多的網(wǎng)站和應(yīng)用程式需要支援多語言和國際化。在網(wǎng)路開發(fā)中,使用框架可以大幅簡化開發(fā)流程。本文將介紹如何使用Webman框架實(shí)現(xiàn)國際化和多語言支持,同時(shí)提供了一些程式碼範(fàn)例。一、什麼是Webman框架? Webman是一個(gè)基於PHP的輕量級框架,提供了豐富的功能和易於使用的工具,用於開發(fā)Web應(yīng)用程式。其中之一就是國際化和多

1.準(zhǔn)備資料庫為多語言資料建立新資料表,包括下列欄位:CREATETABLEtranslations(idINTNOTNULLAUTO_INCREMENT,localeVARCHAR(255)NOTNULL,keyVARCHAR(255)NOTNULL,valueTEXTNOTNULL,PRIMARYKEY(id));2.pid));頂部或側(cè)邊欄新增語言切換器,讓使用者可以選擇首選語言。 //取得目前語言$current_locale=isset($_GET["locale"])?$_

PHP開發(fā)中如何處理多語言和國際化問題,需要具體程式碼範(fàn)例隨著互聯(lián)網(wǎng)的發(fā)展,人們對於多語言和國際化的需求越來越高。在PHP開發(fā)中,如何有效地處理多語言和國際化問題成為了開發(fā)者需要解決的重要任務(wù)。字元編碼的處理在PHP開發(fā)中,我們首先要確保正確處理字元編碼。在多語言環(huán)境中,使用UTF-8編碼是最常見的選擇??梢栽赑HP檔案的頭部添加如下程式碼:header('C

如何使用Hyperf框架進(jìn)行國際化支援隨著全球化的快速發(fā)展,許多應(yīng)用程式都需要具備多語言支援的功能,以滿足不同國家和地區(qū)使用者的需求。 Hyperf框架作為一個(gè)輕量級的高效能框架,提供了國際化支援的功能,能夠幫助開發(fā)者快速實(shí)現(xiàn)多語言應(yīng)用的開發(fā)。本文將介紹如何在Hyperf框架中使用國際化功能,並提供對應(yīng)的程式碼範(fàn)例。一、設(shè)定多語言支援首先,需要在Hyperf的設(shè)定文件
