当前位置: 首页 > news >正文

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 用于运行时确定应用支持的语言。

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

相关文章:

Android 多语言

0. Locale方法 Locale locale Locale.forLanguageTag("zh-Hans-CN"); 执行如下方法返回字符串如下&#xff1a; 方法 英文下执行 中文下执行 备注 getLanguage()zhzhgetCountry()CNCNgetDisplayLanguage()zh中文getDisplayCountry()CN中国getDisplayName()zh (…...

Thingsboard规则链:Message Type Filter节点详解

一、Message Type Filter节点概述 二、具体作用 三、使用教程 四、源码浅析 五、应用场景与案例 智能家居自动化 工业设备监控 智慧城市基础设施管理 六、结语 在物联网&#xff08;IoT&#xff09;领域&#xff0c;数据处理与自动化流程的实现是构建智能系统的关键。作…...

SQLI-labs-第二十五关和第二十五a关

目录 第二十五关 1、判断注入点 2、判断数据库 3、判断表名 4、判断字段名 5、获取数据库的数据 第二十五a关 1、判断注入点 2、判断数据库 第二十五关 知识点&#xff1a;绕过and、or过滤 思路&#xff1a; 通过分析源码和页面&#xff0c;我们可以知道对and和or 进…...

Windows、Linux添加路由

目录 一、Windows添加路由 1. 查看路由规则 2. 添加路由规则 3. 添加默认路由 4. 删除路由规则 二、Linux添加路由 1. 查看路由 2. 添加路由 3. 删除路由 4. 修改路由 5. 临时路由 6. 默认网关设置 一、Windows添加路由 1. 查看路由规则 route print 2. 添加…...

Swift 初学者交心:在 Array 和 Set 之间我们该如何抉择?

概述 初学 Swift 且头发茂密的小码农们在日常开发中必定会在数组&#xff08;Array&#xff09;和集合&#xff08;Set&#xff09;两种类型之间的选择中“摇摆不定”&#xff0c;这也是人之常情。 Array 和 Set 在某些方面“亲如兄弟”&#xff0c;但实际上它们之间却有着“云…...

C++ 类模板 函数模板

类模板 #include <bits/stdc.h> using namespace std; //多少变量就写多少个 template<typename T1, typename T2> class Cat { public:Cat(){}Cat(T1 name, T2 age){this->age age;this->name name;}void print(){cout << this->name << …...

OTP8脚-全自动擦鞋机WTN6020-低成本语音方案

一&#xff0c;产品开发背景 首先&#xff0c;随着人们生活质量的提升&#xff0c;对鞋子的保养需求也日益增加。鞋子作为人们日常穿着的重要组成部分&#xff0c;其清洁度和外观状态直接影响到个人形象和舒适度。因此&#xff0c;一种能够自动清洁和擦亮鞋子的设备应运而生&am…...

GpuMall智算云:meta-llama/llama3/Llama3-8B-Instruct-WebUI

LLaMA 模型的第三代&#xff0c;是 LLaMA 2 的一个更大和更强的版本。LLaMA 3 拥有 35 亿个参数&#xff0c;训练在更大的文本数据集上GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Llama 3 的推出标志着 Meta 基于 Llama 2 架构推出了四个新…...

内存泄漏案例分享4-异步任务流内存泄漏

案例4——异步任务内存泄漏 异步任务&#xff0c;代指起子线程异步完成一些数据操作、网络接口请求等&#xff0c;通常会使用以下API&#xff1a; Runnbale&#xff0c;Thread,线程池RxJavaHandlerThread 而这些异步任务很有可能操作内存泄漏&#xff0c;下面我们以Rxjava为…...

【机器学习300问】100、怎么理解卷积神经网络CNN中的池化操作?

一、什么是池化&#xff1f; 卷积神经网络&#xff08;CNN&#xff09;中的池化&#xff08;Pooling&#xff09;操作是一种下采样技术&#xff0c;其目的是减少数据的空间维度&#xff08;宽度和高度&#xff09;&#xff0c;同时保持最重要的特征并降低计算复杂度。池化操作不…...

RPA机器人流程自动化如何优化人力资源工作流程

人力资源部门在支持员工和改善整体工作环节方面扮演着至关重要的角色&#xff0c;但是在人资管理的日常工作中&#xff0c;充斥着大量基于规则的重复性任务&#xff0c;例如简历筛选、面试安排、员工数据管理、培训管理、绩效管理等&#xff0c;这些任务通常需要工作人员花费大…...

OpenHarmony开发者大会2024:鸿心聚力 智引未来

2024年5月25日&#xff0c;OpenAtom OpenHarmony&#xff08;简称“OpenHarmony")委员会以“鸿心聚力&#xff0c;智引未来”为主题&#xff0c;在创新之城深圳举办OpenHarmony开发者大会2024&#xff0c;为开发者、产业组织、生态伙伴和行业客户搭建一个交流、分享和学习…...

新楚文化知网收录文学艺术类期刊投稿

《新楚文化》是由国家新闻出版总署批准&#xff0c;湖北省文学艺术界联合会主管&#xff0c;湖北今古传奇传媒集团有限公司主办的正规期刊。主要刊登文化、文学、艺术类稿件&#xff1b;包括传统文化、非遗、历史文化、地方文化、中外友好文化交流、文学作品研究、艺术研究等方…...

基于vue3速学angular

因为工作原因&#xff0c;需要接手新的项目&#xff0c;新的项目是angular框架的&#xff0c;自学下和vue3的区别&#xff0c;写篇博客记录下&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/546843290?utm_id0 1.结构上&#xff1a; vue3:一个vue文件&#xff…...

链游中的代币(Token)或加密货币(Cryptocurrency)是如何产生和使用的?

在区块链游戏&#xff08;链游&#xff09;中&#xff0c;代币和加密货币不仅是游戏经济的核心&#xff0c;也是连接现实世界与虚拟游戏世界的桥梁。这些数字货币不仅赋予了游戏内资产的真实价值&#xff0c;还为玩家提供了全新的互动和交易方式。下面&#xff0c;我们将深入探…...

2024年5月23日 (周四) 叶子游戏新闻

《Unclogged》Steam页面上线 马桶主题恐怖逃脱解谜Brody制作并发行&#xff0c;一款奇葩创意马桶主题恐怖逃脱解谜新游《Unclogged》Steam页面上线&#xff0c;本作暂不支持中文。 Meta人工智能主管杨立昆 大语言模型不会达到人类智能水平IT之家今日&#xff08;5月23日&#x…...

猫毛过敏终结者!宠物空气净化器让你告别红眼和喷嚏

猫毛过敏是一种常见的过敏性疾病&#xff0c;影响着全球数百万人的日常生活。这种过敏反应通常是由于对猫皮屑、唾液或尿液中的蛋白质产生免疫反应而引起的。症状可能包括打喷嚏、流鼻涕、眼睛痒、皮肤疹和呼吸困难&#xff0c;严重影响患者的舒适度和生活质量。对于猫毛过敏者…...

xgboost项目实战-保险赔偿额预测与信用卡评分预测001

目录 算法代码 原理 算法流程 xgb.train中的参数介绍 params min_child_weight gamma 技巧 算法代码 代码获取方式&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1QV7nMC5ds5wSh-M9kuiwew?pwdx48l 提取码&#xff1a;x48l 特征直方图统计&#xff1a; fig, …...

子网划分,交换机原理与配置

子网划分 IP地址 IPv4由32位二进制数组成&#xff0c;一般用点分十进制来表示 IPv4是由32位二进制数组成&#xff0c;分成四组,第组八位。例如:11000000.10101000.00000000.00000010 为了便于配置通常表示成点分十进制形式例如:192.168.0.2 255.255.255.0 IPv6由128位组成&…...

记mapboxGL实现鼠标经过高亮时的一个问题

概述 mapboxGL实现鼠标经过高亮可通过注册图层的mousemove和moveout事件来实现&#xff0c;在mousemove事件中可以拿到当前经过的要素&#xff0c;但是当使用该要素时&#xff0c;发现在某个地图级别下会有线和面数据展示不全的情况。究其原因&#xff0c;发现是mapboxGL在绘图…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...