LanguageChangeableDemo
多语言国际化支持库,暂只支持中英文切换,简单易用,无额外其他库依赖,修改可本地存储固化,无需重启
集成方式
1.在你的项目根目录 build.gradle 结尾添加(Add it in your root build.gradle at the end of repositories):
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2. 在modle的gradle中添加依赖
dependencies {
implementation 'com.github.feisher:LanguageChangeableDemo:v1.1.0'
//注意上面jitpack版本号,
}
1.1.0版本发布,,采用完全和1.0.0不同的方案,抛弃需要重写控件的限制,如下
继承方式同上,版本号为1.1.0
####1.使用前必须在Application
中初始化
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
CLang.init(this);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
CLang.swithLang(this);//这里为1.1.0版本新增处理方式,,兼容安卓8.0以上系统
}
}
2.调用方式
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CLang.swithLang(MainActivity.this);//注意这里要传activity,否则8.0以上会失效
MainActivity.this.recreate();//这句代码很有必要,如设置页面从其他页面跳转则需要再onActivtyRsult中recreate();
//针对组件化使用Router框架的:如设置页面有接受传入数据,需要自行处理重新加载逻辑
}
});
以下为1.0版本使用方式和介绍,,上方为1.1版本使用方式介绍
默认实现了Textview
和Button
,直接使用TextView2
或Button2
即可, 其他控件需要实现LangChangableView
接口,
内部方法实现拷贝TextView2
中的即可 使用前必须在Application
中初始化
CLang.init(this);
亦可指定语言环境使用
CLang.init(this, Locale.CHINA);
初始化 需要修改语言的时候
CLang.swithLang(context);
即可,语言环境会使用SharedPreferences
存储到本地
PS:注意事项
为了简化流程默认 以 values/strings.xml 文件作为英文文件 以 values-zh/strings.xml 作为中文文件,,具体操作可参考demo
问题
发现bug或好的建议欢迎 issues or Email 458079442@qq.com