android实现多语言切换

  在安卓开发中,常会遇到需要切换不同语言的情况。语言不同意味着需要进行不同语种字符的动态切换、不同布局的动态切换。

  安卓实现这一功能非常的简单:

  首先在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就可以了。

   

转载于:https://www.cnblogs.com/dlkdqpi/p/3719102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值