翻譯自蘋果的官方文檔“Internationalization and Localization Guide”
- Language ID
- 用於標示一種語言(Language)、一種方言(dialect)、一種書寫體(script)。
- 在iOS編程裏,用於命名一些文件夾,專門保存語言相關的資源。這些文件夾最終會成爲app bundle的一部分。
- Locale ID
- 用於標示一個地區、區域。該地區有專屬的語言、數字、日期、錢幣的使用習慣、文化、傳統。
- 在iOS編程裏,用於API,比如:NSLocale、NSDateFormatter、NSNumberFormatter、NSCalendar。
- Language Designator
- 語言代碼。ISO對其有兩個標準:ISO 639-1和639-2。前者使用2個字母標示一種語言;後者使用3個字母。
-
Langeuage ISO 639-1 ISO 639-2 English en eng French fr fre Hawaiian 沒有 haw
- Script Designator
- 書寫體代碼。見ISO 15924。
- 書寫體代碼。見ISO 15924。
- Region Designator
- 地區代碼。ISO對其定義在ISO 3166-1。
-
Region ISO 3166-1 United States US Canada CA
Language ID 可由Language designator和、或Region designator組合而成。
- 標示一種語言(Language)時,用Language designator即可,比如en。
- 標示一種方言(dialect)時,同時使用Language designator、Region designator。二者中間有連字符(hyphen),比如en-US。
- 標示一種書寫體(script)時,同時使用Language designator、Script designator。二者中間有連字符(hyphen),比如
zh-Hans
。
Locale ID 可由Language designator、Region designator、Script Designator混合而成,比如:
Locale ID format | Example | Explanation |
---|---|---|
language designator | en | 只有語言,無區域 |
language designator_region designator | zh_HK | 有語言,有區域 |
language designator-script designator | zh-Hans | 有語言,有書寫體 |
language designator-script designator_region designator | zh-Hans_HK | 都有 |
一般來說,Locale ID都使用簡化形式。當發生歧義時,才附加上script designator。比如,香港默認使用繁體中文,所以Locale ID寫爲zh_HK即可。當要特指使用簡體字的時候,使用zh-Hans_HK。