导航:首页 > 操作系统 > 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语言切换实现相关的资料

热点内容
苹果手机如何安装滴滴车主app 浏览:58
新服务器怎么预约 浏览:676
电视台回看用什么app 浏览:375
怎么删除命令块 浏览:419
女程序员乳腺癌 浏览:996
吃牛排富家女倒追网络程序员 浏览:614
android红米调试 浏览:14
cad左手快捷键命令 浏览:752
sketchup快捷命令 浏览:790
编程程序员死亡之谜 浏览:296
qt编译64位dll 浏览:889
分治算法经典 浏览:956
pdfeditor软件 浏览:459
pc最准算法 浏览:727
mysql登录命令as 浏览:815
如何虚拟机中做游戏服务器配置 浏览:454
如何在手机上传app到小米盒子 浏览:755
解压按摩全身视频 浏览:118
如何打mc服务器 浏览:517
有什么比较好用的约游戏app 浏览:129