当前位置:首页 » 安卓系统 » android切换语言广播

android切换语言广播

发布时间: 2023-08-18 18:10:25

安卓手机修改语言设置

如果您使用的是华为手机,可以按照以下方法操作:
1、进入设置 > 系统和更新 > 语言和输入法 > 语言和地区 ,选择要使用的语言。
如果语言列表中没有您要使用的语言,请点击添加语言,搜索并添加至语言列表后,再选择语言。
您可从语言列表中删除某个语言,点击编辑并根据界面提示操作。
2、点击当前地区选择国家和地区,系统界面会根据您选择地区的文化习惯进行显示。

② Android:应用多语言切换,国际化实现

生成多种语言的string.xml,里面放置对应的语言,修改配置(Configuration),重启之后就会加载对应语言的string.xml。

1:在res目录下,生成对应的语言包,比如英语:

在res目录下生成了可看到生成了:

<string name="hello">你好</string>
英语:
<string name="hello">hello</string>
之后就可以使用getResource.getString(R.string.hello),这个字符串会加载相对应的配置的语言。
3:修改语言配置

修改语言配置后,需要重新启动进程,并且杀死进程。

1:有些手机是可以在设置里直接切换语言的,这个也就是Configuration改变。用户重新设置系统语言导致应用的语言也会重新设置。Configuration改变,如果在Manifest中不设置android:configChanges忽略掉配置改变,Activity会重新创建,那么我们就可以在Activity的onCreate中,重新修改语言配置。
2:切换语言后,退出应用,重新进来,你会发现又是系统设置的语言。所以需要在Application开启时,需要再次切换语言配置。

③ Android 内多语言切换实现

网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好分享给各位同学,废话不多说,我们正式开始

我们在点击切换语言的按钮时候弹窗dialog 然后用户可以选择 简体中文 英文 繁体中文 跟随系统 四种选项 ,这是我们基本的需求

首先我们要在资源文件res目录下面创建多语言的目录文件夹 values values-en values-zh-rTW values-TW 如图所示:

我们适配多语言的只需要在 values values-en values-zh-rTW 这个三个目录下面的string.xml文件里面写入对应的引用的文本即可

我们只需要这样配置就然后在布局的xml文件里面引用可以达到适配多语言的效果 :
具体引用:

切换的dialog实现这个我用原生的AlertDialog 你们自己可以自定义继承系统的Dialog来实现

这里的语言种类获取到的sta是重SharedPreferences 缓存里面获取到的因为需要
SharedPreferences 工具类:

我们在dialog点击事件里发送一个广播通知 用来触发刷新

然我们在baseActivity里面接收广播重启activity 来刷新多语言切换

关于Locale
实现多语言切换用到了Locale。Locale里很多常见国家和地区以及语言,如果我们做常见的语言,可以直接调用系统的,比如Locale.CHINESE。但是这次做的繁体中文的适配,略我坑一下。
繁体中文我们直接在Locale 属性里面传入 zh-rTW 但是切换没有生效 我翻了下源码只有TW的属性配置我就要修改了
问题是,我最开始直接这样写的:

到此我们说明下开头提到到为什么多出了 values-TW目录 是因为我发现在多语言切换更新 Configuration 中的 locale 属性 的时候翻开源码看到繁体中文(泛指港澳台并没有看到zh-rTW的属性配置)

所以目前的解决方案就是用values-TW来替代:

我这边目前是这样处理来兼容繁体中文切换不生效的做法 ,如果你有更好的方案 麻烦留言大家一起探讨。

Android 内多语言的切换网上的文章也挺多的,基本都千篇一律 很多有纰漏 ,这边也是翻了一下源码勉强能够兼容繁体中文, 项目地址

④ Android应用内切换语言

最近接触到Android 应用内切换语言的问题,研究了两天,做个记录先。实现了中文,英文,泰语的切换。测试机器 Nexus5(Android p),HUAWEI荣耀9青春版(8.0.0),XIAOMI mi 4LTE(6.0.1)。
看下效果

定义一个BaseActivity,重写attachBaseContext方法,在此方法里进行语言切换

LanguageUtil中的attachBaseContext()方法

在attachBaseContext()方法中,我们判断一下,如果当前api大于24,那么就调用updateResources()方法更新context。

定义好BaseActivity以后,我们只需要让我们的Activity都继承这个基类即可。

自定义Application并在AndroidManifest.xml文件中声明,在Application的onCreate()方法中,调用更换语言的方法即可。

LanguageUtil中的changeAppLanguage方法

经过上面的操作就可以在7.0以下实现应用内切换语言。

定义一个ChangeLanguageActivity

如果是7.0以下,我们需要调用changeAppLanguage方法, 如果是7.0及以上系统,直接把我们想要切换的语言类型保存在SharedPreferences中,然后重新启动MainActivity即可。

如果控件尺寸固定,当切换语言的时候,文字长短发生变化如何解决?

可以使用google提供的新特性来解决。

完整的例子请移步
https://gitee.com/lyyon/InternationDemo

参考链接: https://www.jianshu.com/p/4f9db19d9383
1. https://www.jianshu.com/p/32ff13db1f0d#comment-24575608
2. http://www.cnblogs.com/travellife/p/Android-ying-yong-nei-o-yu-yan-qie-huan.html
3. https://yanlu.me/android-7-0-app-language-switch/
4. https://github.com/captain-miao/MultiLanguagesSwitch
5. https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview

⑤ 下载了中英双语的电影,用安卓手机怎么调语言就像VCD,可以调左声道和右声道来换语言的。安卓手机能

手机语言切换的步骤如下:

1、选择手机菜单中的“设置 (Settings)”选项。

2、选择设置菜单中的“语言和键盘 (Language和 keyboard) ”选项。

⑥ 安卓手机怎么语言转换

手机语言切换的步骤如下:

1、选择手机菜单中的“设置 (Settings)”选项。

2、选择设置菜单中的“语言和键盘 (Language和 keyboard) ”选项。

⑦ 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切换系统语言功能

1打开主菜单,进入【Settings(设置)】菜单,像手机一样操作,网上拖动屏幕,选择【Language & Keyboard(语言和键盘)】菜单: 2同样把屏幕往上拖动,知道最后出现【中文(简体)】的选项,然后选择它,你的手机就变成了中文界面了

⑨ android 语言切换问题

看看是不是代码里写死的,检查string文件检查value设置

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:235
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726