標籤:android java tar c get 檔案
在安卓開發中,常會遇到需要切換不同語言的情況。語言不同意味著需要進行不同語種字元的動態切換、不同布局的動態切換。
安卓實現這一功能非常的簡單:
首先在res中建立其它語種對應的value、layout等檔案夾,比如添加英文版和越南版,命名如value-en-US、value-vi、layout-en-US、layout-vi。
命名規則在網上可以查到,value-en-US中,en表示英文,US表示美國。國家可不寫。越南版可全寫為layout-vi-VN。
如此,便有了幾套同名,同id,但內容屬性不同多版本布局。
然後,編寫代碼。
import java.util.Locale;
Locale locale;
String language = Locale.getDefault().getLanguage();
if (language.equals("en")){
...
}
可在切換語言的onclick事件中:
case *:
locale = Locale.ENGLISH;
或者: locale = new Locale("vi", "VN"); //越南
重啟改變語言:
private void changeLanguage(Locale locale) {
try {
IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
config.locale = locale;
config.userSetLocale = true;
am.updateConfiguration(config);
} catch (RemoteException e) { Log.e(TAG, e.toString()); } }
至此代碼部分完成。
最後,改變編譯部分設定檔,增加語言支援:
/build/target/product目錄下,language_full.mk|language_small.mk 看你的編譯選項使用那個檔案了,修改PRODUCT_LOCALES
在full.mk的檔案,這裡面有這樣的片段:$(call inherit-product, build/target/product/languages_small.mk),後者路徑就是我們要設定的地方。
上面是摘自其它部落格,
其實在我的編譯環境裡,在locales_full.mk裡加上vi_Vn就可以了。