2012-03-22 20 views
3

我剛剛找到nice tutorial這將幫助我在我的應用程序中實現簡單的用戶指南系統,因爲我可以使用任何普通的舊HTML編輯器來繪製該系統。Android中的可本地化資產

我的問題很簡單:因爲所有的res資源都是可本地化的,所以我可以很容易地將我的應用程序翻譯成新的語言。那麼assets呢?是否有自動定位機制?我不這麼認爲。

如何在加載幫助頁面的HTML文件時檢索系統區域設置以構建本地化URL?是否有一些調用檢索顯示大小/密度與編碼在資源世界中相同(即,public String getDensity()返回「xhdpi」,「ldpi」...)?

丹科;-)

回答

18

如果你真的需要檢查當前系統的語言環境,一個簡單的方法是在你的strings.xml文件中添加一個標識符字符串。

例如,在值/ strings.xml中,添加:

<string name="lang">en</string> 

在值-ES/strings.xml中,添加:

<string name="lang">es</string> 
在值-FR/strings.xml中

,加:

<string name="lang">fr</string> 

等等。然後,你就可以以編程方式檢查當前語言像這樣的東西(當然要加以改進,只是作爲一個例子):

if("es".equals(getString(R.string.lang))) { 

我希望這可以幫助你。

+2

絕對智能 – 2012-03-22 23:25:00

+0

如果您想獲取設備的選定語言,這可能對您有所幫助:Locale.getDefault()。getDisplayLanguage(); – Alan 2016-11-07 17:55:20

1

這是一個古老的問題,但以防萬一有人這樣做。我不認爲你需要一個額外的語言字符串上面建議:

<string name="lang">fr</string> 

只需添加資產URL字符串和翻譯它:

<string name="content_location">file:///android_asset/en/index.html</string> 
價值觀-FR/strings.xml中

,添加:

<string name="content_location">file:///android_asset/fr/index.html</string> 

然後在代碼訪問它爲:

String URL = getResources().getString(R.string.content_location); 

並且這應該顯示基於本地的URL,因爲您已將其定義到特定的本地化字符串文件中。

+0

嗨..所以我們需要創建一個名爲en和fr的文件夾? – Shadow 2017-03-31 06:51:37

+1

是的,這是正確的 – 2017-08-23 10:05:44