- 适配Android14的广播权限,库迁移到mavencentral
- 修改广播名称,避免出现错误接收,demo改为解耦模式
- 修复一个因为比对语言造成项目不能正常切换语言的问题
- 在gradle中:
implementation 'io.github.liyuhaolol:LanguagePack:1.0.4'
<languages>
<item name="simplified_chinese" language="zh" country="CN">中文(简体)</item>
<item name="traditional_chinese" language="zh" country="TW">中文(繁體)</item>
<item name="english" language="en">English</item>
<item name="russian" language="ru">русский язык</item>
<item name="japanese" language="ja">日本語</item>
<item name="korean" language="ko">한국어.</item>
</languages>
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
LanguagesPack.init(this);
}
@Override
protected void attachBaseContext(Context base) {
// 国际化适配(绑定语种)
super.attachBaseContext(LanguagesPack.attach(base));
}
}
public class BaseActivity extends AppCompatActivity {
@Override
protected void attachBaseContext(Context newBase) {
// 国际化适配(绑定语种)
super.attachBaseContext(LanguagesPack.attach(newBase));
}
}
public class MainActivity extends AppCompatActivity implements LanguageReceiver.Message {
LanguageReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
loadData();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (receiver != null){
LanguageReceiver.unregister(this,receiver);//注销广播
}
}
private void initView(){
receiver = new LanguageReceiver(this);//初始化广播
LanguageReceiver.register(this,receiver);//注册广播到当前位置
}
private void loadData(){
//加载对应的文本或图片资源
}
@Override
public void onLanguageChange() {
loadData();
}
}