軟體開發 / 系統語言 === ###### tags: `軟體開發` ###### tags: `軟體開發`, `軟體`, `開發`, `系統語言`, `系統語系`, `系統`, `語言`, `語系`, `language code`, `region code`, `country code`, `zh-TW`, `zh-rTW`, `zh-Hang-TW`, `BCP 47`, `language tag` <br> [TOC] <br> ## Intro ### List of locale codes > https://simplelocalize.io/data/locales/ ### [Locale Code: zh-TW](https://simplelocalize.io/data/locale-code/zh-TW/) | Property | Value | |----------|-------| | Country Name | Taiwan | | Country Name (Local) | 中華民國 / T’ai-wan | | Country Flag | 🇹🇼 | | Country Area | 36193 km2 | | Country Code (ISO 3166-1) | TW | | Language Name | Chinese | | Language Name (Local) | 中文 (Zhōngwén) | | Language Code (ISO 639-1) | zh | | Continent | Asia | | Region | Eastern Asia | | Capital Name | Taipei | | Capital Latitude | 25.04776 | | Capital Longitude | 121.53185 | | Postal Code Format | `#####` | | Postal Code Regex | `^(\d{5})$` | <br> --- ### IETF language tag - [[wiki] IETF language tag](https://en.wikipedia.org/wiki/IETF_language_tag) - IETF BCP 47 語言標籤是一種標準化代碼,用於識別網路上的人類語言。 - [国际化中常用BCP-47 Code和语言对照表](https://xnxy.github.io/2024/06/11/%E5%9B%BD%E9%99%85%E5%8C%96%E4%B8%AD%E5%B8%B8%E7%94%A8BCP-47%20Code%E5%92%8C%E8%AF%AD%E8%A8%80%E5%AF%B9%E7%85%A7%E8%A1%A8/#BCP-47-Code) <br> --- ## 討論 ### 欄位變數 - ### Question Locale code: zh-TW (Chinese - Taiwan) zh 的變數名稱為何? TW 的變數名稱為何? - ### gpt-5 (2025/08/21) 簡短說明(以 `zh-TW` 為例): * **`zh`**:**語言代碼** 常見變數名稱:`language`、`languageCode`、`lang` 標準:**ISO 639-1** * **`TW`**:**地區/國家代碼** 常見變數名稱:`region`、`country`、`territory`、`regionCode`、`countryCode` 標準:**ISO 3166-1 alpha-2** 補充:若需明確標示「繁體」,可加上**文字腳本**子標籤:`zh-Hant-TW` (變數名稱通常為 `script` 或 `scriptCode`,值為 `Hant`)。 - ### Question (Round-2) 所以一般常見格式為: 1. language code / country code 2. language code / script code / country code - ### gpt-5 (Round-2)(2025/08/21) 對,常見就是這兩種。一般遵循 **BCP 47** 標準,用連字號 `-` 連接: 1. **language-region**(語言 / 地區) 例:`zh-TW`、`en-US` 用在腳本(字形)能由地區推得時。 2. **language-script-region**(語言 / 腳本 / 地區) 例:`zh-Hant-TW`、`zh-Hans-CN`、`sr-Latn-RS` 用在需要**明確指定字形**(繁/簡、拉丁/西里爾)時。 ### 小重點(BCP 47 慣例) * 大小寫:`language` 全小寫(`zh`)、`script` 首字大寫四碼(`Hant`)、`region` 全大寫兩碼(`TW`)。 * 變數名稱常見:`language` / `lang`、`script`、`region` / `country`、完整標籤用 `locale` / `localeTag`。 * 常見替代寫法(舊系統/Java):底線分隔 `zh_TW`、`zh_Hant_TW`。 * 區域也可用 UN M.49 數字:如 `zh-419`(拉丁美洲)。 * 典型回退:`zh-Hant-TW` → `zh-Hant` → `zh`。 <br> ### zh-rTW 跟 zh-TW是同一個東西嗎? - ### gpt-5 (2025/08/14) 是的,**`zh-rTW`** 和 **`zh-TW`** 在語言代碼上基本指的是同一個東西——臺灣使用的繁體中文。 不過它們的差異主要在於**標準與用途**: | 代碼 | 標準來源 | 含義 | 常見用途 | |------|----------|------|---------| | `zh-TW` | [BCP 47 / IETF](https://datatracker.ietf.org/doc/html/rfc5646) 語言標籤標準 | 中文(繁體)-臺灣 | 網頁語言標籤、作業系統與軟體在地化設定 | | `zh-rTW` | BCP 47 舊式格式(`r` = region) | 與 `zh-TW` 等同,但使用了過時的區域語法 | 部分舊版系統、舊資料庫或相容性需求 | ### 補充說明 * **現行標準**已經用 `zh-TW` 取代 `zh-rTW`,但舊系統或資料仍可能出現 `zh-rTW`。 * 兩者在功能與語意上是一樣的,通常可以互換,但如果你的系統採用嚴格的標準驗證,最好使用 **`zh-TW`**。 * 在網頁 `lang` 屬性、JSON `locale`、或 i18n 設定檔時,建議採用 **最新的 BCP 47 格式**。 如果你要我,我可以幫你整理一份 **zh 系列地區代碼對照表**,方便開發時快速選擇。