Skip to content

多语言国际化支持库,暂只支持中英文切换,简单易用,无额外其他库依赖,修改可本地存储固化,

Notifications You must be signed in to change notification settings

feisher/LanguageChangeableDemo

Repository files navigation

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版本使用方式介绍

默认实现了TextviewButton,直接使用TextView2Button2即可, 其他控件需要实现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

微信交流

微信

About

多语言国际化支持库,暂只支持中英文切换,简单易用,无额外其他库依赖,修改可本地存储固化,

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages