2012-12-18 38 views
2

有沒有一種方法來標記具有多種語言(values-en-es)的字符串資源文件夾?多種語言的Android一個值文件夾

我的問題是,希伯來語在某些設備上的語言代碼「iw」和其他人是「他」。 我目前的解決方案是製作兩個具有相同內容的文件夾,並分別只更名爲 。

我想知道是否有更準確的方法來做到這一點?

回答

0

您可以製作eclipse中的文件鏈接,如here所述。 所以你有你的values-iw/strings.xml與真實值,你做一個文件鏈接該文件在您的values-he文件夾。這有利於您不必編輯2個文件,鏈接的「文件」會自動更新。

+0

我的解決方案是創建一個ANT腳本複製和更改文件夾的名稱。在我發佈應用程序之前,我只是運行它。 我不知道關於文件鏈接,我會檢查出來。 謝謝。 – dora2010

1

資源文件夾的名稱可以有多個限定符但每個類型只有一個定性:

例如

values-en-rGB //Language + Region 

是有效的,但

values-en-fr//Language + Language 

是無效的,因爲它有多個值爲單個限定符。所以

values-iw-he 

是不可能的。

來源:Android開發者,Q ualifier Name Rules.

然而,這並不意味着你必須複製的文件。相反,您可以創建一個別名資源

Android開發者解釋別名Resouces是這樣的:

創建別名資源:當你有,你想使用一個以上的設備配置資源(但不希望得到作爲默認資源),則不需要將同一資源放在多個備用資源目錄中。相反,您可以(在某些情況下)創建替代資源,充當保存在默認資源目錄中的資源的別名。

例如,一個文件夾

<string name="app_name">My Awesome App</string> 

在字符串資源可以在另一個字符串資源被引用到另一文件夾爲:

<string name="application_name">@string/app_name</string> 

More about alias-resources上Android開發。

+0

據我所知,使用別名仍然需要我創建兩個文件夾並引用一個字符串資源到另一個。 如果我錯了,請糾正我。 – dora2010

+0

你是對的。主要好處是你只需要對其中一個字符串進行修改/更新。也有可能在一個字符串數組中有一個引用可以引用字符串的whoe數組中的字符串。取決於您的應用程序要求,您是否可以接受訪問陣列位置來檢索單個字符串。淨,如果Android資源系統(字符串,字符串數組等)中有一個xml「對象類型」,您可以創建一個對它的引用。但你不能創建一個引用來說20個字符串沒有封裝這些字符串在一個XML對象,你可以指向 –