android實現多語言切換

來源:互聯網
上載者:User

標籤: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就可以了。

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.