android应用内切换语言

author author     2023-05-13     731

关键词:

参考技术A 最近接触到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-duo-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

中英文切换:android应用内中英文切换(代码片段)

看效果图:新建values-en文件夹,步骤:右键res,new,AndroidResourceDirectory:把Locale选入右侧:再选择en,AnyRegion,点击ok。regino是区域、地方的意思。这样values-en文件夹,就自动生成了。手动添加strings.xml, 查看详情

ios开发之应用内快速切换语言包(不跟随系统语言,不用重启)

最近项目中用到手动切换语言功能,因为项目中大量用到Xib,所以网上查了很多方法,但是都需要重启app才可以生效,这就跟产品需求不一致,而且用户体验也不好github:https://github.com/zengqingf/iOSAppLanguageSw... 查看详情

语言切换

...APP语言改变是一个Configuration,但是这个Configuration和android手机屏幕旋转有点不大一样。屏幕旋转的时候,会destroy当前页面,并进行重新绘制。而切换语言后不会重新绘制页面,所以这种情况的出现造 查看详情

[android]应用语言切换的三种方法(代码片段)

Android对国际化与多语言切换已经做得不错了,一个应用只要命名相应语系的values-[language]文件夹,通过“设置”→“语言&键盘”→“选择语言”即可实现应用多种语言的切换。      但如何在应用里自己实现?... 查看详情

ios开发之应用内快速切换语言包(不跟随系统语言,不用重启)

最近项目中用到手动切换语言功能,因为项目中大量用到Xib,所以网上查了很多方法,但是都需要重启app才可以生效,这就跟产品需求不一致,而且用户体验也不好github:https://github.com/zengqingf/iOSAppLanguageSw... 查看详情

android8.0app内切换语言不生效的问题记录(代码片段)

国内大部分简单应该都只做了中文简体版,但是有部分项目需要面向国际化,甚至可能就是主打国外市场。因此我们有时候会遇到需要APP内做多语言切换的功能需求。如何做多语言切换,网上资料还是很多的,本... 查看详情

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

...言也会重新设置。Configuration改变,如果在Manifest中不设置android:configChanges忽略掉配置改变,Activity会重新创建,那么我们就可以在Activity的onCreate中,重新修改语言配置。2:切换语言后,退出应用,重新进来,你会发现又是系统... 查看详情

android内多语言切换实现

参考技术A网上有很多安卓内多语言切换的文章,我也看了一些,很多都千篇一律,而且还是有问题,我就自己重新改了一下。整好分享给各位同学,废话不多说,我们正式开始我们在点击切换语言的按钮时候弹窗dialog然后用户... 查看详情

切换应用内 GPS UISwitch,当用户切换应用的位置服务时

】切换应用内GPSUISwitch,当用户切换应用的位置服务时【英文标题】:Togglein-appGPSUISwitch,whentheusertogglestheapp\'slocationservices【发布时间】:2015-06-2212:14:21【问题描述】:这个想法是在用户从“设置”屏幕切换应用的定位服务时切换... 查看详情

我应该在应用内购买后使用本地数据库并切换到 Firestore 吗?

...】:2020-02-1217:01:24【问题描述】:我正在开发一款适用于Android的个人健康记录管理应用,该应用目前使用Firestore作为其后端。我想提供一个仅在设备上存储数据的应用程序的免费版本。一旦用户购 查看详情

swiftui:极简实现app内快速切换本地化语言

...可。这样当App安装到设备上或设备的语言更改后,App就会应用对应的语言。但如果用户需要在App内手动切换本地化语言又该如何呢?如上所示,当用户在英文、简体中文和日文中切换时,App的显示也随之切换为对应的本地化内容... 查看详情

android语言切换问题

我在每个活动和Application里都添加了android:configChanges="locale"这个属性,可是总有几个地方文字始终切换不来,为什么呢,求大神!!参考技术A在android2.0的平台上,如果你使用了强制语言转换,你会看到屏幕在不断的闪烁... 查看详情

ios多语言-跟随系统/应用内切换

参考技术A结果:Localizable.strings(Chinese,Simplified)Localizable.strings(English)PS:使用[NSLocalizedString(@"TITLE",nil);]这种方式赋值的,多语言文件的名字必须是Localizable,否则只会显示它的key手机系统为英文时:手机系统为中文时:多语言文件名字... 查看详情

内联函数替代有参宏

...都默认使用英文)。其实如果只是添加多语言支持,不再应用内切换语言,苹果的开发就能很好的支持了。就是多了这个应用内切换语言(像微信那样),逻辑就复杂 查看详情

为啥 Android Studio 不断切换“语言级别”?

】为啥AndroidStudio不断切换“语言级别”?【英文标题】:WhydoesAndroidStudiokeeptoggling`languageLevel`?为什么AndroidStudio不断切换“语言级别”?【发布时间】:2018-12-0412:44:10【问题描述】:很多时候,当我查看使用AndroidStudio构建的Androi... 查看详情

Android - 如何在应用程序内保持音乐播放?

】Android-如何在应用程序内保持音乐播放?【英文标题】:Android-Howtokeepmusicplayingwhileinsidetheapp?【发布时间】:2014-12-1002:52:53【问题描述】:我想设置我的应用程序的背景音乐,这样当我在应用程序上时它会继续播放,当我按下... 查看详情

不只是切换多语言android

接着前面的内容往下走不只是切换多语言Android(一),我们来实现一下androidapp内切换语言。思路一:1、把所有的activity用一个集合装起来2、改变app的语言环境3、干掉所有的activity,然后进入重新启动app思路... 查看详情

从 CallKit UI 切换到应用内 UI

】从CallKitUI切换到应用内UI【英文标题】:SwitchingfromCallKitUItoin-appUI【发布时间】:2018-07-1211:15:21【问题描述】:我有一个VoIP应用程序。它过去可以在没有CallKit的情况下工作,因此它有自己的应用内通话UI。我现在正在集成CallKit... 查看详情