2013-01-17 158 views
3

我經常看到縮寫「en-US」,它與ISO639-1中標準化的2字符語言代碼相對應。我也明白,語言標記的格式通常由主語言(子標籤)代碼組成,後跟一系列由短劃線分隔的其他子標籤,如http://tools.ietf.org/html/rfc5646中所述。我應該使用哪種標準語言代碼用於多語言軟件?

該鏈接提到在ISO639-2,ISO639-3和ISO639-5中也定義了3個字母的語言代碼。

儘管如此,還是有更多爲Windows/.NET定義的代碼:http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx。這些將語言標籤稱爲「文化名稱」,並使用不同的3字符代碼作爲「語言名稱」。因此,「文化名稱」似乎是2個字符的語言代碼,但我不確定他們爲什麼在Windows版本之間有所不同,或者他們如何遵循標準語言代碼。 「en-US」真的是「語言代碼」還是「文化名稱」?

如果我正在開發使用語言代碼的軟件,我應該使用哪種標準? (2個字符代碼或3個字符代碼?如果是3個字符,則是ISO639-2,3或5?)

爲什麼我應該選擇一個呢? (對於OS平臺或編程框架兼容性?)

+0

沒有具體的標準或目的定義,這看起來像一個民意調查。 –

+0

這不是一個民意調查,因爲我特別問「爲什麼」一個應該選擇其他。例如,最好的選擇可能取決於平臺。我不知道。如果是這樣的話,那麼一個明確的答案,比如「選擇取決於平臺和X平臺,應該使用這個方案,因爲...」將是一位有經驗的開發人員的有見地的答案。總的來說,對於使用2對3個字母的代碼也可能有有效的邏輯原因或特定目的,例如,所涵蓋的語言範圍等。我正在尋找事實和邏輯原因,而不是意見。 – Triynko

+0

我並不是問「哪個更好,兩個或三個字符的代碼」,因爲這會被視爲自己。我在問「我什麼時候會使用2字符或3字符的代碼,爲什麼」(引出事實或邏輯信息)。我也對Windows API上下文中的「文化名稱」實際上只是一個2個字母的「語言代碼」感興趣。最清晰和最全面的答覆將被標記爲答案。 – Triynko

回答

3

Bcp47是行業識別語言的最佳實踐標準。你應該使用這些語言標籤。 Bcp47規定,如果可以使用2個字母或3個字母的標籤標識語言,則應使用2個字母標籤。

文化和語言環境與他們如何構思地區信息的語言標記不同。語言標籤中的區域信息標識特定方言的來源(en-US是美式英語或來自美國的各種英語),區域中的區域信息標識信息相關的位置。由於大多數美國英語使用者也居住在美國,因此提供諸如拼寫單詞或格式化日期或數字等信息時,這種區別並不重要。

Windows正在擺脫語言環境或文化的概念,轉而使用語言和區域(單獨標識)的更具表現力的概念,這使我們能夠識別出居住在英格蘭的美國英語演講人等情況。

請注意,有些情況下Windows仍然使用早於此標準的舊名稱,並且取決於您如何依賴操作系統,您可能需要在標準兼容名稱和舊名稱之間進行映射。

+0

謝謝,這是非常有用的,尤其是最佳實踐文檔。我有一些孩子在德克薩斯州使用一些閱讀理解軟件,他們會說「邊境西班牙語」。我不確定這種方言對應的是什麼,但由於他們生活在靠近墨西哥的「美國」地區,我可能會使用「es-US」,「es-MX」或可能是定製/私人標識符,如「x-es-BS」。聽上去怎麼樣?這是使我們的軟件支持多種語言的第一步,雖然客戶端是基於Flash的,但我們的服務器端代碼都是Microsoft產品(C#/ .NET/SqlServer)。 – Triynko

+1

我會使用es-US。如果你要使用私有標識符,它將會像es-x-BS一樣。 –

+0

謝謝。我最終使用es-US。 – Triynko

相關問題