【android studio 简单配置多语言国际化app 一行代码实现切换语言】

前言

新版本的android studio配置多语言其实很简单,不过目前网上找到的几个博客都搞得很复杂,可能是版本比较老的时候出的方案,今天分享一下怎么一行代码切换语言.

一、语言文件

1.切换语言你得先有语言对应的文本,推荐插件一键生成.在设置里搜索Androidlocalize,直接安装即可

2.安装好了以后右键需要翻译的默认语言文本文件,一般都是写在res里面values的string中,找到新增加的翻译按钮

3.勾选上需要翻译的语言.上面这里是覆盖已有翻译,看自己是否需要勾上.选好语言直接点ok就会生成语言文件

4.语言文件类似这样

二、一行代码切换语言

1.切换语言

代码如下(示例):

less 复制代码
AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags("en"));

有了文件夹以后可以直接通过这行代码来切换语言,传入的语言字符一般就是语言文件夹values-后面的两个字母,英文就是en,俄语是ru,中文是zh,不过还有繁体中文,这个可以使用tw,可以在Google的Locale类里面查,直接看文件也可以.或者网上也都有. 注意跟随系统语言可以传入null 发现一个坑,tw有时候会不能设置成功,需要用zh-TW

2.保存语言状态

一行代码虽然能切换语言,但是杀掉进程以后重启应用又会恢复默认语言,为了保存状态需要配置下AndroidManifest.xml

在application里面加入这个service

代码如下(示例):

ini 复制代码
        <service
            android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
            android:enabled="true"
            android:exported="true">
            <meta-data
                android:name="autoStoreLocales"
                android:value="true"/>
        </service>

3.界面闪动解决之返回主界面

切换语言以后会闪一下重新启动当前界面,为了避免闪一下的情况可以切换语言后直接回到主界面

context是当前界面的上下文

ini 复制代码
                Intent myIntent = new Intent(context.getApplicationContext(), MainActivity.class);
                reIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                context.startActivity(myIntent);

总结

翻译多语言文件在android的实现其实已经很简单了,主要可能需要有质量的翻译文本.这部分不属于技术范围,可以自学下多国语言来优化插件的机翻.

相关推荐
踏雪羽翼5 小时前
android TextView实现文字字符不同方向显示
android·自定义view·textview方向·文字方向·textview文字显示方向·文字旋转·textview文字旋转
lxysbly5 小时前
安卓玩MRP冒泡游戏:模拟器下载与使用方法
android·游戏
夏沫琅琊7 小时前
Android 各类日志全面解析(含特点、分析方法、实战案例)
android
程序员JerrySUN8 小时前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构
TeleostNaCl9 小时前
Android | 启用 TextView 跑马灯效果的方法
android·经验分享·android runtime
TheNextByte110 小时前
Android USB文件传输无法使用?5种解决方法
android
quanyechacsdn11 小时前
Android Studio创建库文件用jitpack构建后使用implementation方式引用
android·ide·kotlin·android studio·implementation·android 库文件·使用jitpack
程序员陆业聪11 小时前
聊聊2026年Android开发会是什么样
android
编程大师哥12 小时前
Android分层
android
极客小云13 小时前
【深入理解 Android 中的 build.gradle 文件】
android·安卓·安全架构·安全性测试