导航:首页 > 操作系统 > android语言切换实现

android语言切换实现

发布时间:2025-05-05 02:21:09

① 如何在android APP中设置系统语言

  1. 在不同的 value 文件夹下添加不同语言的string.xml文件,项目添加了英文、简体中文、繁体中文三种语言,如下图所示:

② android应用内怎么设置语言切换

1.在工程res文件下添加对应语种的values文件,ar:阿拉伯语, en:英语 zh_rCN: 简体中文
截图如下:

2 .在功能清单文件中对要进行切换acitivity 进行配置添加

android:configChanges="locale"

3.对语言选择的处理

public class MainActivity extends Activity {

Context context = MainActivity.this;;
int languageId;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
read();//设置
setContentView(R.layout.main);

findViewById(R.id.btn_change).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
save();
}
});
}

//保存
private void save() {
String[] languages = { "默认", "CN", "EN" };
AlertDialog.Builder builder = new AlertDialog.Builder(context,
android.R.style.Animation_Dialog);
builder.setTitle("选择语言");
final SharedPreferences languagePre = context.getSharedPreferences(
"language_choice", context.MODE_PRIVATE);
final int id = languagePre.getInt("id", 0);
builder.setSingleChoiceItems(languages, id,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int index) {
switch (index) {
case 0:
// 系统默认语言
languageId = 0;
break;
case 1:
// 简体中文
languageId = 1;
break;
case 2:
// 英语
languageId = 2;

break;
case 3:
// 阿拉伯语
languageId = 3;

break;
default:
break;
}
languagePre.edit().putInt("id", languageId).commit();
}
});
// 保存
builder.setPositiveButton("保存", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((Activity) context).finish();
Intent intent = new Intent();
intent.setClass(context, MainActivity.class);
context.startActivity(intent);
}
});
builder.show();
}
//读取
private void read() {
SharedPreferences languagePre = getSharedPreferences("language_choice",
Context.MODE_PRIVATE);
int id = languagePre.getInt("id", 0);
Log.d("MainActivity", "langauge_id=" + id);
Toast.makeText(context, "langauge_id=" + id, Toast.LENGTH_LONG).show();
// 应用内配置语言
Resources resources = getResources();// 获得res资源对象
Configuration config = resources.getConfiguration();// 获得设置对象
DisplayMetrics dm = resources.getDisplayMetrics();// 获得屏幕参数:主要是分辨率,像素等。
switch (id) {
case 0:
config.locale = Locale.getDefault(); // 系统默认语言
break;
case 1:
config.locale = Locale.SIMPLIFIED_CHINESE; // 简体中文
break;
case 2:
config.locale = Locale.ENGLISH; // 英文
break;
default:
config.locale = Locale.getDefault();
break;
}
resources.updateConfiguration(config, dm);
}
}

③ Android切换系统语言会做哪些操作

以MIUI系统为例,来说明一下切换系统语言步骤:

1、打开手机设置应用页面,选择“系统高级设置”选项。

④ Android11海外版怎么改成中文版

通过设置修改成中文版。
第一步:打开手机主界面,找到“设置”(settings)图标。
第二步:在“设置”中找到“高级设置”(advanced settings)选项。
第三步:点开“高级设置"(advanced settings),找到“语言和输入法”(language&input)。
第四步:在“语言和输入法”(language&input)中,找到“语言和地区”(language_ion)设置选项。
第五步:点开“语言和地区”(language_ion)设置选项,我们看到现在的语言是英语切换成中文即可。
2020 年 9 月 14 日,ColorOS 以线上的形式举办了海外发布会,基于 Android 11 的 ColorOS 11 海外版正式亮相。全新的 ColorOS 11 在设计、效率和安全等方面都有不同程度的提升,为全球 OPPO 用户带来更极致的体验。

⑤ Android国际化多语言切换

关于App国际化,之前有讲到国际化资源、字符换、布局相关,想要了解的猛戳 用力抱一下APP国际化 。借着本次重构多语言想跟大家聊一下多语言切换,多语言切换对于一款国际化App来讲是重中之重,并非难事,但是若要做好也是一件不容易的事情。

当我们做了系统的配置更改,比如说切换了系统导航或者说更改了深色模式,那么我们一般的处理是也是要对Application作出处理。

如果项目中有用到ApplicationContext去getString(@StringRes int id)实现加载的提示语,那么如果只是单纯的重启界面则无法让当前的提示语跟随当前切换的语言,所以我们要么重启整个应用,要么对ApplicationContext中的Local也作出相应的更新方可,这里有一点问题,虽然Android N之后updateConfiguration是过时方法,官方给出使用createConfigurationContext代替,但是更新ApplicationContext的Local发现无效使用老版本updateConfiguration正常。

如果你发现你的应用广播通知栏适配无效,那就是context中的Local在切换语言是并未及时更新Local,这里调试一下便知,如果是Applicaiton注册的广播,那么多半情况下是没有更新ApplicationContext的Local所导致的。

多语言适配基本步骤大概就是如此了,下面看一下适配的细节问题。

[图片上传失败...(image-b42d06-1640685147639)]
还有一点Android N之后,手机系统的语言配置选项已经不是单选了,改为一个列表了,具体可以参考手机设置中的语言和输入法,所以 setLocal(@Nullable Locale loc) 方法建议不要再使用了,我相信很多人还在用,正确的用法应该是 setLocals(@Nullable LocaleList locales) ,需要传递一个集合。

当你的应用使用的是androidx.appcompat:appcompat:1.2.0及以上时,BaseActivity中需要实现下面方法。

这套方案目前不在推荐,直接去替换attatchBaseContext()中的context则可,经过测试是完全正常的。

以下则是多语言操作的工具类,现在提供出来,需要的朋友可以自行进行改造。

⑥ 如何实现Android切换系统语言功能

如果想获取手机的当前系统语言,可以通过Locale类获取,主要方法:Locale.getDefault().getLanguage(),返回的是es或者zh;通过Locale.getDefault().getCountry()获取当前国家或地区,返回为CN或US;如果当前手机设置为中文-中国,则使用此方法返回zh-CN,同理可得到其他语言与地区的信息。 查看原帖>>

阅读全文

与android语言切换实现相关的资料

热点内容
邮箱在线文档怎么设文件夹 浏览:873
区块链编译eth 浏览:781
安卓手机软件如何给照片加发光点 浏览:977
结构性存款在app哪里 浏览:968
iphone如何快速打开app 浏览:797
好玩的程序员笑话 浏览:82
linux下如何搭建web服务器 浏览:222
狼群之饥和命令之眼 浏览:369
xp使用telnet命令 浏览:159
安卓如何有苹果涂鸦笔 浏览:598
图好快压缩 浏览:295
华为思科命令手册 浏览:155
七公主中文版在哪个app看 浏览:646
周立功单片机实验与实践 浏览:259
新建文件夹命名怎么老是显示重试 浏览:797
云服务器如何建立社区 浏览:230
把pdf转成word文档的软件 浏览:248
云服务器的操作系统选什么好 浏览:974
python没用 浏览:833
丁晓钟外刊pdf 浏览:246