2015-08-25 39 views
1

我想本地化字符串es_US(西班牙語在美國)。 我有文件夾中的字符串資源值 - es-rUS和設備上的語言設置爲Español(Estados Unidos),Locale.getDefault()返回es_US。 即使一切似乎都是正確的,應用程序不會從值-es-rUS中獲取字符串,但會降至值。Android本地化字符串es_US

有人讓它工作?

編輯:解決。現在不能將我的答案標記爲已接受。

+0

確保這兩個字符串資源文件的命名一樣,例如RES /價值/ strings.xml中和RES /值 - es-rUS/strings.xml和資源名稱是相同的「你好!」和「 Ola!」這是基本的東西,但有時你可以忘了它... –

回答

1
  • 文件夾應該放置在res/values-es_rUS
  • strings.xml文件必須在本地化 所有字符串名稱相同的*

From here(表2 - 第2部分)

Language and region

The languag e由兩個字母ISO 639-1語言代碼定義,可選地後跟兩個字母ISO 3166-1-alpha-2區域代碼(,前面加小寫字母「r」)。

代碼不區分大小寫; r前綴用於區分區域部分。你不能單獨指定一個區域。

如果用戶在系統設置中更改他或她的語言,這可以在應用程序的生命週期中更改。有關在運行時如何影響應用程序的信息,請參閱Handling Runtime Changes

請參閱Localization瞭解有關將您的應用程序本地化爲其他語言的完整指南。

另請參閱語言環境配置字段,它指示當前的locale

2

問題出現在gradle構建文件配置中。我使用resConfigs「en」,「es」,因此構建可以排除其他資源。看來「es」也排除「es_US」。

當我把它改爲resConfigs「EN」,「es_US」它開始工作

+0

唷!我正在開發一個resConfig已經在build.gradle中定義的項目。在我遇到這個之前花了幾個小時。謝謝 !! –