Android 多语言

0. Locale方法

Locale locale = Locale.forLanguageTag("zh-Hans-CN");

执行如下方法返回字符串如下:

方法

英文下执行

中文下执行

备注

getLanguage()zhzh
getCountry()CNCN
getDisplayLanguage()zh中文
getDisplayCountry()CN中国
getDisplayName()zh (Hans,CN)中文 (简体中文,中国)
getISO3Language()zhozho传入不支持的字符串会发生Exception
getISO3Country()CHNCHN
getDisplayScript()Hans简体中文
getDisplayVariant()
getScript()HansHans
getVariant()
toLanguageTag()zh-Hans-CNzh-Hans-CN
toString()zh_CN_#Hanszh_CN_#Hans

1.数据库字段

Setting数据库字段:system_locales

Setting数据库取值:zh-Hans-CN 或者 zh-Hans-CN,en-US,chr-US,th-TH,dje-NE

说明:为一个值是代表当前值,多个值的时候如下如所示,代表可选语言(当前添加了5种,第一个值为当前语言,还可以点击添加语言继续添加)

2.获取当前语言:

public static Locale getCurrentLocale() {

    try {

        Locale configLocale = ActivityManager.getService().getConfiguration().getLocales().get(0);

        return configLocale != null ? configLocale : Locale.getDefault();

    catch (RemoteException e) {

        return Locale.getDefault();

    }

}

3 获取支持的语言

配置:frameworks/base/core/res/res/values/locale_config.xml

String[] locales =LocalePicker.getSupportedLocales(context);

Locale locale = Locale.forLanguageTag(newlanguage);

4.更新语言

public static void setLanguage(String language) {

    Locale locale = Locale.forLanguageTag(language);

    LocalePicker.updateLocale(locale);

}

//下面的方法不要使用

public static void setLanguageTest(String language) {

    Locale locale = new Locale(language);

    LocalePicker.updateLocale(locale);

}

添加权限

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

说明:

setLanguage("zh")       OK, 原生设置中显示中文
setLanguageTest("zh")   OK, 原生设置中显示中文
setLanguage("zh-CN")    OK, 原生设置中显示中文(中国)
setLanguageTest("zh-CN")   Failed, 原生设置中显示und
setLanguage("zh-Hans-CN") OK, 原生设置中显示简体中文(中国)
setLanguageTest("zh-Hans-CN")   Failed, 原生设置中显示und

5. 支持的语言配置

overlay/frameworks/base/core/res/res/values/locale_config.xml

<resources>

    <string-array translatable="false" name="supported_locales">

        <item>zh</item>

        <item>en</item>

        ....

    </string-array>

</resources>

makefile

PRODUCT_LOCALES := \

        zh \

        en

PRODUCT_LOCALES 用于编译时确定哪些语言资源会被打包到 APK 中, locale_config.xml 用于运行时确定应用支持的语言。

两个配置都对应着应用在不同阶段所支持的语言,但起作用的时机不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微前端框架 之 定义全局状态管理库(五)

假设你正在使用基于单页面应用&#xff08;SPA&#xff09;的微前端框架。以下简化一个应用之间共享状态的例子。 1. 使用发布/订阅模式 // globalStateManager.js class GlobalStateManager { constructor() { this.subscribers {}; this.state {}; } subscribe(key…

XGBoost算法详解:机器学习分类中的强力工具

课程链接&#xff1a;AI小天才&#xff1a;让你轻松掌握机器学习 引言&#xff1a; XGBoost&#xff08;Extreme Gradient Boosting&#xff09;是一种高效的机器学习算法&#xff0c;被广泛应用于分类、回归、排序等任务中。其优秀的性能和灵活性使得它成为了数据科学领域的瑰…

RocketMQ实战教程之常见概念和模型

RocketMQ实战教程之常见概念和模型 常见概念与模型 官方文档: https://rocketmq.apache.org/zh/docs/introduction/02concepts 1 常见概念[重点] 消息&#xff08;Message) 消息是 Apache RocketMQ 中的最小数据传输单元。生产者将业务数据的负载和拓展属性包装成消息发送…

JavaWeb-JS

目录 学习重点 什么是 JavaScript? Web标准 JS的引入方式 JS的基本语法 JS的函数 JS的对象 JS事件监听 学习重点 js 引入方式 js 基础语法 js 函数 js 对象 js 事件监听 什么是 JavaScript? Web标准 Web 标准也称为网页标准 &#xff0c;由一系列的标准组成&#xff0…

七年之痒!一个 PHP 程序员职业生涯的自述

大家好&#xff0c;我是码农先森。 今年刚好是我毕业的第七个年头&#xff0c;在婚姻感情当中都有一种「七年之痒」的说法&#xff0c;这次我把这个词「七年之痒」用一次在我的职业生涯复盘上。七年前我从告别校园&#xff0c;踏入互联网编程行业&#xff0c;七年后我依旧在编…

FFmpeg之转码

文章目录 概述transcode小结 概述 上一篇说了主要的流程&#xff0c;也就是ffmpeg_parse_options的流程&#xff0c;如下图&#xff1a; 红色箭头的流程说的差不多了&#xff0c;接下来看看绿色框框&#xff0c;也就是transcode的流程。 transcode 还是先给出我画的流程图&…

如何利用InputStream类实现文件读取与处理?

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

mysql - 为什么MySQL不建议使用NULL作为列默认值?

为什么MySQL不建议使用NULL作为列默认值&#xff1f; InnoDB有4中行格式&#xff1a; Redundant : 非紧凑格式,5.0 版本之前用的行格式,目前很少使用,Compact : 紧凑格式,5.1 版本之后默认行格式,可以存储更多的数据Dynamic , Compressed : 和Compact类似,5.7 版本之后默认使…

K8S中Prometheus+Grafana监控

1.介绍 phometheus:当前一套非常流行的开源监控和报警系统。 运行原理&#xff1a;通过HTTP协议周期性抓取被监控组件的状态。输出被监控组件信息的HTTP接口称为exporter。 常用组件大部分都有exporter可以直接使用&#xff0c;比如haproxy,nginx&#xff0c;Mysql,Linux系统信…

C++质数的那些事(判断指数、区间筛质数、互质等等)

质数的定义&#xff1a;若一个正整数除了1和它自身之外不能被任何自然数整除&#xff0c;则该数称为质数&#xff0c;也叫素数。否则为合数。 质数的性质&#xff1a;质数的分布较为稀疏&#xff0c;对于一个足够大的数S&#xff0c;不超过S的质数大约有个&#xff0c;也就是说…

自组网实现

实现自组网的方法主要有以下几种&#xff0c;设备形态以及各自的特点归纳如下&#xff1a; 实现方法&#xff1a; 窄带自组网技术&#xff1a;以语音通信系统为代表&#xff0c;通常以12.5kHz和25kHz的信道间隔承载数据&#xff0c;能够支持包括语音、传感器数据等在内的低速…

有趣的css - 水波纹按钮

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是一个好看有质感的水波纹按钮。 最新文章通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面渲染效果 整体效果 &a…

Unity 代码实现Animator开始和结束播放动画回调

文章目录 1.代码2.使用方式3.注意事项 1.代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;// 播放Animator并加入播放完成回调。 [RequireComponent(typeof(Animator))] public class AnimatorCallback : MonoBehaviour {…

【Spring Cloud】远程调用

目录 Spring Cloud Netflix Feign简介前言Feign是什么OpenFeign组件和Spring Cloud OpenFeignOpenFeign组件Spring Cloud OpenFeign OpenFeign-微服务接口调用需求说明1. 启动Eureka Server服务2.创建两个项目&#xff0c;将其注册到Eureka Server3.在服务提供者中添加业务处理…

【UE Websocket】“WebSocket Server”插件使用记录

1. 在商城中下载“WebSocket Server”插件 该插件具有如下节点&#xff0c;基本可以满足WebSocket服务端的所有需求 2. 如果想创建一个基本的服务端&#xff0c;我们可以新建一个actor蓝图&#xff0c;添加如下节点 3. UE运行后&#xff0c;我们可以使用在线的websocket测试助手…

RuntimeError: CUDA out of memory. Tried to allocate 1.77 GiB?如何解决

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

开源与闭源AI模型的对决:数据隐私、商业应用与社区参与

引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;模型的发展路径主要分为“开源”和“闭源”两条。这两种模型在数据隐私保护、商业应用以及社区参与与合作方面各有优劣&#xff0c;是创业公司、技术巨头和开发者们必须仔细权衡的重要选择。那么&#xff0c;面对这些…

ubuntu 22.04 apt非源码安装ros1 noetic

教程 https://zhuanlan.zhihu.com/p/679914618?utm_id0 文章目录 安装安装后配置验证安装卸载 安装 添加源&#xff1a; echo "deb [trustedyes archamd64] http://deb.repo.autolabor.com.cn jammy main" | sudo tee /etc/apt/sources.list.d/autolabor.list sud…

数据库中的事务槽(Transaction Slots)解析

事务槽&#xff08;Transaction Slots&#xff09;是Oracle数据库中与事务处理相关的概念&#xff0c;特别是与回滚段&#xff08;Rollback Segments&#xff09;的设计紧密相连。在早期的Oracle数据库版本中&#xff0c;回滚段是管理事务回滚信息的关键结构&#xff0c;而事务…