2012-01-20 28 views
11

我正在本地化我的應用,並且支持的語言/地區之一是Espanol-419。 Android不支持命名約定值-es-r419,但它確實接受values-en-rGB。 我應該用什麼名字來使它工作?Android本地化es-r419

回答

12

我不知道r419從哪裏來。我唯一能想到的將是LCID,但是419對於俄羅斯或country code,但對於419沒有任何意義。以下是西班牙語的區域代碼列表,可能是您想要的區域代碼列表:

es-ar Spanish - Argentina 
es-bo Spanish - Bolivia  
es-cl Spanish - Chile 
es-co Spanish - Colombia 
es-cr Spanish - Costa Rica 
es-do Spanish - Dominican Republic 
es-ec Spanish - Ecuador 
es-sv Spanish - El Salvador 
es-gt Spanish - Guatemala 
es-hn Spanish - Honduras 
es-mx Spanish - Mexico 
es-ni Spanish - Nicaragua 
es-pa Spanish - Panama 
es-py Spanish - Paraguay 
es-pe Spanish - Peru 
es-pr Spanish - Puerto Rico 
es-es Spanish - Spain (Traditional) 
es-uy Spanish - Uruguay 
es-ve Spanish - Venezuela 

參考文獻:

更新:

因此很明顯,419是由BCP 47爲IETF語言標記佔用的UN M.49 standard。谷歌的documentation on alternative resources says

的語言由兩個字母ISO 639-1語言代碼定義,任選地隨後進行兩個字母ISO 3166-1-α-2的區域碼(由小寫字母「R」開頭)。

顯然(單憑「r」)你可以看到這些不是標準的IETF語言標籤。不幸的是,我相信這也意味着您將無法找到相當於419的合適的雙字母區域。您還可以檢查official ISO list。它不在那裏,國家只有兩個字母標籤。顯然它的very common不支持3位標籤。

我能想到的唯一解決方案是爲es提供默認設置,然後爲es國家的細分提供更具體的設置。你可以爲每個區域提供的資源(如es-rAR),您認爲與419相匹配,但是看着這個列表,我覺得這是比較容易做相反的事情,並使用es爲拉丁美洲西班牙語提供資源,然後提供es-rES西班牙的資源。由於es-rESes更具體,它應該優先(如果區域匹配)。

+3

拉丁美洲的西班牙語http://www.iana.org/assignments/lang-tags/es-419 – Taranfx

+1

更新了什麼是希望的解決方案。 – kabuko

+0

只是爲了澄清,如果你只提供一個'es'包,如果你沒有指定一個更具體的''es包,它會被選擇用於所有'es'限定符? –

6
es-r419 = es-rUS. 

將文件夾名稱更改爲values-es-rUS以與運行時用戶選項保持一致。

在使用谷歌翻譯服務,當您請求翻譯拉丁美洲西班牙語,您將收到返回es-r419文件夾。

當看着AOSP源,或在settings->language and input->language,你會看到西班牙語和英語(美國)。

在運行時,選擇語言=西班牙語(美國),你不會看到values-es-r419拉弦,當然你會看到從values-es-rUS

+0

西班牙語的語言環境比es-rUS更多,根據jt-gilkeson,您可以在Android 7.0及更高版本中編寫b + es + 419來訪問這些UN M.49區域。 – Liggliluff

3

Android的7拉着琴絃。0(API級別24)帶來更強大的資源分辨率,並自動找到更好的回退。但是,爲了加快解決方案並提高可維護性,您應該使用最常用的母語來存儲資源。例如,如果您以前在values-es-rUS目錄中存儲西班牙語資源,請將它們移動到包含拉丁美洲西班牙語的values-b+es+419目錄中。

https://developer.android.com/guide/topics/resources/multilingual-support.html