2017-07-18 36 views
0

我正在維護公司中銷售代理商的默認語言爲荷蘭語的Android應用程序。如何在Android中指定默認資源語言

所有在我的默認資源文件夾指標(如值)的資源是荷蘭人,我已經specifc區域資源nl-rBEfr-rBE指標(如values-nl-rBEraw-nl-rBE)。 在應用程序中,您可以將區域更改爲荷蘭語(荷蘭語),佛蘭芒語(荷蘭語比利時語部分)或Wallonical(比利時法語區)。

Programatticaly我改變本地化配置的其中之一: nl_NL nl_BE fr_BE

nl-rBE資源,只有一些特定的原始文件(銷售千卡和條件),並且不同的一些地址字符串資源從默認。

這已經工作了很長時間,但突然在當前在Android中構建的東西決定,當我選擇nl_NL它不會回退到默認資源文件夾,但它使用nl_rBE變體。當你的默認資源是f.e時,這似乎是合乎邏輯的。當沒有nl_rNL時,英語比nl_rBE「更好」,但過去從未如此。

有什麼方法可以在默認資源的哪個語言/地區指定某處,所以Android知道當我選擇nl_NL時,我寧願使用默認值代替nl_BE?

編輯2017年7月18日:即使當我添加一個values-nl文件夾一些資源指定,回退,從values-nl-rBE資源時反而沒有指定該資源的資源從默認values所以創建一個emty值-nl不起作用。

我可以將所有默認資源移動到values-nl和raw-nl等,但我不想指定默認英語資源,因爲它們不是必需的。

現在,我選擇NL_nl時,通過將區域設置設置爲EN_us來解決這個問題,因爲我真的需要荷蘭值作爲後備(也適用於法語)。但是也應該有一種方法來指定默認值不是EN_us。

編輯2017年7月19日:看起來這是Android的7.0(對三星Galaxy Tab A(2016)SM-T580)中的錯誤或更改,因爲客戶對生產沒有問題,它(上我的平板電腦它選擇了錯誤的資源也對量產版)

context.getContentResolver().openInputStream(uri)更糟糕:它永諾挑選了錯誤的資源:它永諾挑選drawable-nl-rBE-nodpi即使在語言環境設置爲fr-BE或沒有資源的隨機區域(這完全沒有意義,因爲drawable-fr-rBE-nodpidrawable-nodpi也存在)。這也只發生在三星的Android 7.0上,而不是生產設備上。

回答

0

我建議只複製文件夾或重命名它並放置一個描述發生了什麼的note.txt。我真的不明白爲什麼有人會爲此生氣:)

+0

你究竟是什麼意思?將值重命名爲values-nl?但是,我的應用程序沒有默認資源。 – Roel

+0

另一個問題是,當我將'values'更改爲'values-nl'時,我希望'values-fr-rBE'能夠回退到'values-nl' ...所以我真正需要的是Android知道'values'是荷蘭語。 – Roel