国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

Jav-aScript面對國際化編程時的一些建議

2019-11-02 15:46:15
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了JavaScript面對國際化編程時的一些建議,包括時區與語言編碼等一些值得注意的問題,需要的朋友可以參考下

  什么是國際化?

  國際化(Internationalization的縮寫是i18n——i,中間18個字符,n)是將軟件處理的能讓來自各種地方使用各種語言的用戶更簡單使用的一個過程。假定某個用戶來自某個地方說某種語言,他可能不經意間就得到一些錯誤提示。尤其是你甚至都沒有做這種假設。

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 function formatDate(d) { // Everyone uses month/date/year...right? var month = d.getMonth() + 1; var date = d.getDate(); var year = d.getFullYear(); return month + "/" + date + "/" + year; }   function formatMoney(amount) { // All money is dollars with two fractional digits...right? return "$" + amount.toFixed(2); }   function sortNames(names) { function sortAlphabetically(a, b) { var left = a.toLowerCase(), right = b.toLowerCase(); if (left > right) return 1; if (left === right) return 0; return -1; }   // Names always sort alphabetically...right? names.sort(sortAlphabetically); }

  JavaScript過去的i18n支持太糟糕

  傳統JS的i18n程序使用toLocaleString()方法進行格式化。結果字符串包含實現自身提供的所有細節:沒有辦法自己選擇(你確實需要那種date格式的weekday嗎?year是無關緊要的嗎?)。即使包含對應的細節,格式也可能是錯的,比如本期望是百分比但得到的是數字。而且你還不能選擇一個區域設置(locale)。

  對于排序,JS提供了基本沒用的基于區域設置(locale-sensitive)的文本比較函數。localeCompare()確實存在,但是其接口根本不適合sort。而且還不允許選擇區域設置,或者排序方式。

  這些限制太糟了(當我認識到時,我非常吃驚!),因為需要i18n支持(通常是金融站點用于顯示貨幣)的嚴謹web應用會把數據打包,發給服務器,服務器進行操作,然后發回客戶端。數據往返服務器僅僅為了處理貨幣的數量。Yeesh。

  新的JS國際化API

  新的ECMAScript國際化API大大提升了JS的i18n能力。 它提供了大家所能想到的格式化date、數字,文本排序的方式。區域設置是可選的,如果請求的區域設置不支持可以回退。格式化請求可以指定具體要包含的組件。支持自定義的百分比、有效數字、貨幣格式。開放了大量排序選項用于文本排序。如果你關心性能,首要的操作是選擇一個區域設置,然后處理選項參數,現在這個操作只會處理一次,而不是之前每次區域設置相關的操作執行時都會被執行一遍。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善右旗| 和田市| 天津市| 德安县| 镶黄旗| 金川县| 台南县| 延吉市| 左贡县| 平陆县| 阿拉善左旗| 宜昌市| 阿勒泰市| 江西省| 光山县| 石泉县| 宁明县| 莲花县| 通辽市| 滕州市| 云和县| 军事| 南陵县| 新源县| 景泰县| 清水河县| 丰顺县| 永寿县| 延边| 大悟县| 阿拉善右旗| 高碑店市| 仙桃市| 台北市| 曲周县| 同心县| 丰顺县| 葫芦岛市| 西盟| 太仓市| 乌审旗|