An android library with kotlin for changing multi-language.
Now we support any language but need you to define the connection between language's key and value !
一个用 Kotlin 写的多语言切换的 Android 第三方库。
现在我们支持任何一种语言啦!但是需要你自己定义你要支持的语言列表(Key 与 Value 间的关系),详情请看👉 Wiki (🚪传送门)。
项目历经9个月的演化,终于从一开始为宝可梦的那样记账研究的语言切换而写的Demo
进化成第三方库。
这是我的第一个开源第三方库,说起来还挺激动的(嗯...失眠了...)~
默认第二种刷新界面方式
更多请查看 Demo 的 源码地址,下载 Demo.apk(网络有问题可以下载这个 Demo.apk)
在 app.gradle 中加入以下内容:
repositories {
jcenter()
}
dependencies {
implementation 'com.mallotec.reb:plugin-locale:${last-version}'
}
混淆规则
# LocalePlugin 混淆规则
-keep class com.mallotec.reb.localeplugin.** { *; }
-dontwarn com.mallotec.reb.localeplugin.**
-
在 Application 中初始化
LocalePlugin.init(this)
-
定义好支持的语言列表对应关系,详情请看👉 Wiki (🚪传送门),如:
private fun getLocale(which : String): Locale { return when (which) { "0" -> Locale.ROOT // 跟随系统 "1" -> Locale.ENGLISH "2" -> Locale.SIMPLIFIED_CHINESE "3" -> Locale.TRADITIONAL_CHINESE else -> Locale.SIMPLIFIED_CHINESE } }
-
一句代码调用切换语言:
// 应用切换的语言 LocaleHelper.getInstance() .language(getLocale(which.toString())) .apply(this)
注意:这里的
this
必须是当前Activity
的Context
;which
是所选的语言标记,详情请看下方注意事项的对应关系
注意事项、常见问题以及更多用法,请转战 Wiki :🚪传送门
欢迎大家 Star、Fork 和提 Issue 提 PR 呀~
以下不分排名先后
- Thanks @MichaelJokAr. 感谢 @MichaelJokAr 的教程——Android国际化(多语言)实现,支持8.0
- Thanks @Bakumon. 感谢 @宝可梦 的指点
- Thanks @JessYan. 感谢 @JessYan 的教程——我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- Thanks @Yaroslav Berezanskyi. 感谢 @Yaroslav Berezanskyi 的教程——How to change the language on Android at runtime and don’t go mad