草庐IT

android - 简体和繁体中文与地区

coder 2023-05-08 原文

在我的 Android 应用程序中实现繁体和简体中文支持的过程中,我对这应该如何工作感到困惑。

所以从阅读 documentation 以及一些讨论,如 thisthis我已经把简体中文放进去

  • 值(value)观-zh
  • 值-zh-rCN
  • 值(value)观-zh-rSG

和繁体中文成

  • 值(value)观-zh-rTW
  • 值(value)观-zh-rHK

这一切都很好,但不知何故对我来说没有意义(抱歉,如果我对简体中文和繁体中文的用法不够了解)。

据我了解,通过检查模拟器中的区域设置对话框以及在 Root手机上,用户可以将区域设置更改为简体中文或繁体中文。

现在问题来了。系统如何知道从哪里得到简体或繁体的strings.xml。是否有某种假设表明我是否应该显示简体中文从 values-zh 获取它并从 values-zh-rTW 获取繁体中文?

但如果用户位于香港并将其设备设置为显示简体中文怎么办?或者如果世界其他地方的移民将他的设备设置为繁体中文,但他的地区是例如。美国还是加州?

我必须做些什么才能让我的用户设置他们的语言环境并让我的应用程序以正确的语言环境显示?

更新:

通过进一步调查,我认为 Android 手机用户无法将国家/地区与语言分开设置。他们只能在 UI 中设置所谓的区域设置。它由语言和国家/地区组成,但列表有限,因此无法进行多种组合。

例如居住在美国的想要使用繁体中文的中国人可以将语言设置为繁体中文(至少在根电话上),然后将具有 zh-rTW 的语言环境。他绝不可能将他的国家单独设置为美国。以类似的方式,任何类型的移民都无法将他们的母语设置为他们目前居住的国家/地区..

基本上,这意味着只支持一组语言和国家/地区的组合。现在的问题是如何找出它们是哪些?

最佳答案

所以我认为在进一步调查和 Marks 回答之后,我将自己提供一个答案。是这样的:

开箱即用的 Android 只有两个语言环境 zh_rCN,即简体中文和 zh_rTW,即繁体中文。正如您从“设置”应用中看到的,这些是唯一提供的语言环境:

https://android.googlesource.com/platform/packages/apps/Settings/+/master/res/

但是任何其他 Android 系统的创建者,例如在中国销售的手机可能会改变他们添加的内容。通过查看 icu4c 应用程序中的语言环境列表,可以找到理论上支持的整体集合:

https://android.googlesource.com/platform/external/icu4c.git/+/master/data/locales/ 如您所见,中文有

  • zh.txt
  • zh_CN.txt
  • zh_HK.txt
  • zh_Hans.txt
  • zh_Hans_CN.txt
  • zh_Hans_HK.txt
  • zh_Hans_MO.txt
  • zh_Hans_SG.txt
  • zh_Hant.txt
  • zh_Hant_HK.txt
  • zh_Hant_MO.txt
  • zh_Hant_TW.txt
  • zh_MO.txt
  • zh_SG.txt
  • zh_TW.txt

Hant 是繁体中文的 ISO 代码,Hans 是简体中文的 ISO 代码。所以理论上这意味着我们可以拥有

  • 中国、香港、澳门和新加坡的简体中文
  • 香港、澳门和台湾的繁体中文

但请记住,必须修改“设置”应用以选择不同的区域设置。所以在这个阶段,简体中文翻译成 zh_rCN 和繁体 zh_rTW,你应该与拥有支持其他语言环境的修改过的 Android 图像的用户分开。

在任何情况下,您都可以使用 Configuration 类来获取语言环境,例如:在您的 Application 类中使用 getResources().getConfiguration().locale。

你可以例如记录并将数据发送到您的跟踪系统(无论您使用什么),或者您可以检查支持的系统并在消息中的区域设置中抛出异常,然后会显示在您的市场界面中......但这意味着您的应用程序至少会崩溃一次(如果您愿意的话,您可以在几分钟后发布和更新 ..)

所以回顾一下.. 最低设置将反射(reflect)设置应用程序中所做的事情(只有 zh-rCN 和 zh-rTW),但如果您想为新加坡、香港、澳门提供传统的默认语言环境中文默认你也可以这样做,它应该可以工作。然而,我没有证据表明这种配置在任何地方都可以使用..

希望对您有所帮助。

关于android - 简体和繁体中文与地区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189875/

有关android - 简体和繁体中文与地区的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. 「想体验ChatGPT中文聊天?」那快进来,你用不上算我输 - 2

    ♥️作者:白日参商🤵‍♂️个人主页:白日参商主页♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!「想体验ChatGPT中文聊天?」那快进来,你用不上算我输项目场景:项目条件一、那就开始吧1、安装ChatGPT-Desktop2、OpenAPI设置二、使用实例恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!项目场景:近几个月可以说ChatGPT是火得一

  4. 阿里云,华为云,腾讯云三大公有云厂商,香港地区主机测评 - 2

    三大公有云厂商,香港地区主机测评一、ping时延比对(厦门电信本地测试):Ping时延测试腾讯云阿里云华为云延迟率最低时延44ms,最高72ms,平均46ms47.242段:最低时延59ms,最高204ms,平均107ms最低时延45ms,最高93ms,平均47ms丢包率丢包率小有的ip段丢包率较大每个段都会有概率丢包阿里云:47.242段:最低时延59ms,最高204ms,平均107ms,有的ip段丢包率较大8.210段:最低时延64ms,最高232ms,平均119ms,丢包率较好腾讯云:最低时延44ms,最高72ms,平均46ms,丢包率小华为云:最低时延45ms,最高93ms,平均47m

  5. 对于体育新闻中文文本关键字提取有哪些关键字提取算法及其步骤 - 2

    对于体育新闻中文文本的关键字提取,常用的算法包括TF-IDF、TextRank和LDA等。它们的基本步骤如下:1.TF-IDF算法: -将文本进行分词和词性标注处理。-统计每个词在文本中的词频(TF)。-计算每个词在整个语料库中出现的文档频率(DF)和逆文档频率(IDF)。-计算每个词的TF-IDF值,并按照值的大小进行排序,选择排名前几的词作为关键字。2.TextRank算法:-将文本进行分词和词性标注处理。-将分词结果转化成图模型,每个词语为节点,根据词语之间的共现关系建立边。-对图模型进行迭代计算,计算每个节点的PageRank值,表示该节点的重要性。-选择排名前几的节点作为关键字。3.

  6. ruby-on-rails - Rails_Admin - 如何更改 Post View 中文本字段的大小 - 2

    RailsAdmin中Post的“正文”输入区域的默认高度非常小。我想弄清楚如何增加高度。有什么建议么?config.modelPostdolabel'Blog'weight0editdofield:userfield:titlefield:body_formatfield:bodydo(somethinghere?)end 最佳答案 configure:descriptiondohtml_attributesrows:20,cols:50end 关于ruby-on-rails-Rail

  7. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

  8. Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复 - 2

    1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La

  9. ruby-on-rails - 使用 Rails 在 PaperClip 中文件上传 Base64 编码的字符串 - 2

    我有一个图像文件的base64编码字符串。我需要用回形针保存它我的Controller代码是@driver=User.find(6)encoded_file=Base64.encode64(File.open('/pjt_path/public/test.jpg').read)decoded_file=Base64.decode64(encoded_file)@driver.profile_pic=StringIO.open(decoded_file)@driver.save在我的用户模型中has_attached_file:profile_pic,:styles=>{:medium=

  10. AiBote 2022 新研发的自动化框架,支持 Android 和 Windows 系统。速度非常快 - 2

    Ai-Bot基于流行的Node.js和JavaScript语言的一款新自动化框架,支持Windows和Android自动化。1、Windowsxpath元素定位算法支持支持Windows应用、.NET、WPF、Qt、Java和Electron客户端程序和ie、edgechrome浏览器2、Android支持原生APP和H5界面,元素定位速度是appium十倍,无线远程自动化操作多台安卓设备3、基于opencv图色算法,支持找图和多点找色,1080*2340全分辨率找图50MS以内4、内置免费OCR人工智能技术,无限制获取图片文字和找字功能。5、框架协议开源,除官方node.jsSDK外,用户可

随机推荐