RFC 5646?(BCP 47) 規(guī)定的語言標(biāo)簽的格式如下:
language-script-region-variant-extension-privateuse
language
:這部分使用的是 ISO 639-1, ISO 639-2, ISO 639-3, ISO 639-5 中定義的語言代碼,必填
primary-extlang
?兩個(gè)部分構(gòu)成primary
?部分使用 ISO 639-1, ISO 639-2, ISO 639-3, ISO 639-5 中定義的語言代碼,優(yōu)先使用 ISO 639-1 中定義的條目,比如漢語?zh
extlang
?部分是在某些歷史性的兼容性的原因,在需要非常細(xì)致地區(qū)別?primary
?語言的時(shí)候使用,使用 ISO 639-3 中定義的三個(gè)字母的代碼,比如普通話?cmn
language
?可以只寫?extlang
?省略?primary
?部分,但出于兼容性的考慮,還是建議加上?primary
?部分script
: 這部分使用的是?ISO 15924?(Wikipedia) 中定義的語言代碼,比如簡體漢字是?zh-Hans
?,繁體漢字是?zh-Hant
?。region
: 這部分使用的是 ISO 3166-1 (Wikipedia) 中定義的地理區(qū)域代碼,比如?zh-Hans-CN
?就是中國大陸使用的簡體中文。variant
: 用來表示?extlang
?的定義里沒有包含的方言,具體的使用方法可以參考?RFC 5646?。extension
: 用來為自己的應(yīng)用做一些語言上的額外的擴(kuò)展,具體的使用方法可以參考?RFC 5646。privateuse
: 用來表示私有協(xié)議中約定的一些語言上的區(qū)別,具體的使用方法可以參考?RFC 5646。其中只有?language
?部分是必須的,其他部分都是可選的;不過為了便于編寫程序,建議設(shè)計(jì)接口時(shí)約定語言標(biāo)簽的結(jié)構(gòu),比如統(tǒng)一使用?language-script-region
?的形式(?zh-Hans-CN
,?zh-Hant-HK
?等等)。
語言標(biāo)簽是大小寫不敏感的,但按照慣例,建議?script
?部分首字母大寫,?region
?部分全部大寫,其余部分全部小寫。
有一點(diǎn)需要注意,任何合法的標(biāo)簽都必須經(jīng)過 IANA 的認(rèn)證,已通過認(rèn)證的標(biāo)簽可以在這個(gè)網(wǎng)頁查到。此外,網(wǎng)上還有一個(gè)非官方的標(biāo)簽搜索引擎。
相關(guān)資料:
extlang
?)部分的標(biāo)簽介紹有誤客戶端請求服務(wù)器時(shí),如果對時(shí)間有特殊要求(如某段時(shí)間每天的統(tǒng)計(jì)信息),則可以參考?IETF 相關(guān)草案?增加請求頭?Timezone
?。
Timezone: 2007-06-12T23:48:22+0800
// OR
Timezone: 1977-07-30T12:00:11+0200;;Europe/Athens
時(shí)區(qū)的名稱可以參考?tz datebase(Wikipedia) 。
如果客戶端請求時(shí)沒有指定相應(yīng)的時(shí)區(qū),則服務(wù)端默認(rèn)使用?UTC?時(shí)間返回相應(yīng)數(shù)據(jù)。
PS 考慮到存在夏時(shí)制這種東西,所以不推薦客戶端在請求時(shí)使用 Offset 。
時(shí)間格式遵循?ISO 8601(Wikipedia) 建議的格式:
2014-07-09
14:31:22+0800
2007-11-06T16:34:41Z
P1Y3M5DT6H7M30S
?(表示在一年三個(gè)月五天六小時(shí)七分三十秒內(nèi))2007-03-01T13:00:00Z/2008-05-11T15:30:00Z
?、?2007-03-01T13:00:00Z/P1Y2M10DT2H30M
?、?P1Y2M10DT2H30M/2008-05-11T15:30:00Z
R3/2004-05-06T13:00:00+08/P0Y6M5DT3H0M0S
?(表示從2004年5月6日北京時(shí)間下午1點(diǎn)起,在半年零5天3小時(shí)內(nèi),重復(fù)3次)相關(guān)資料:
貨幣名稱可以參考 ISO 4217(Wikipedia) 中的約定,標(biāo)準(zhǔn)為貨幣名稱規(guī)定了三個(gè)字母的貨幣代碼,其中的前兩個(gè)字母是 ISO 3166-1(Wikipedia) 中定義的雙字母國家代碼,第三個(gè)字母通常是貨幣的首字母。在貨幣上使用這些代碼消除了貨幣名稱(比如 dollar )或符號(比如 $ )的歧義。
相關(guān)資料:
更多建議: