安卓手机APP开发__支持不同的语言和文化

安卓手机APP开发__支持不同的语言和文化

目录

概述

创建本地的目录和资源文件

在你的app中使用资源

结构化消息中的文本


概述

APP包括了能被指定为一种特定的文件的资源。例如,一个APP能够包括
特定的文件的字符串,这个字符串能被翻译为本地的语言。

保持特定文化的资源与你的APP的其它部分独立开来是很好的实践。
安卓基于系统的本地化设置来解决特定的语言和特定的文化的资源问题。
你能提供对不同的本地化的支持,使用的方法是在你的安卓项目的资源目录
下使用不同的本地化设置。

你能根据使用你的APP的人的不同的文化,来指定资源的后缀。你能提供
任何类型的资源,来匹配你的用户的语言和文化。

当你使用安卓SDK工具创建一个项目时,工具在项目的顶层目录下,生成了一个
res/的目录。这个res/目录是各种资源类型的子目录。这也有一些默认的文件,
例如res/values/strings.xml文件,这个文件放你的字符串的值。

使用特定的本地的资源,来支持不同的语言已经超过它的范围了。
一些用户选择了一个从右向左阅读的语言,例如阿拉伯语。其他的
用户设置了从左向右读的语言,例如英语,可能生成的内容中有右
向左的内容。为了支持这两类用户,你的APP需要做如下的事:

对于右向左的本地化设置,使用一个右向左的用户界面布局。
检查和声明文本数据的方向,这些文本是显示在结构化的消息里的。
通常,你能调用一个方法,来确定文本的方向。


创建本地的目录和资源文件

为了添加更多的本地化设置的支持,在res/目录下,创建一个额外
的目录,名称必须是如下的格式:

<resource type>-b+<language code>[+<country code>]

例如,values-b+es/包括了字符串资源,它的语言编号是es。相似的是
mipmap-b+es+ES/包括了本地化的图标,它的语言编号是es,国家编号是ES。

安卓根据在运行时的设备的本地化设置加载合适的资源。更多的信息见备选的资源。

当你决定支持哪一个本地化后,创建资源的子目录和文件,例如:


MyProject/
    res/
       values/
           strings.xml
       values-b+es/
           strings.xml
       mipmap/
           country_flag.png
       mipmap-b+es+ES/
           country_flag.png

用本地化的资源生成资源文件。如下的内容是本地化的字符串和图像的资源文件的例子:

英语的字符串(默认的本地化)在/values/strings.xml:

<resources>
    <string name="hello_world">Hello World!</string>
</resources>


西班牙语的字符串(本地化是es)在 /values-b+es/strings.xml:

<resources>
    <string name="hello_world">?Hola Mundo!</string>
</resources>

美国标识的图标(默认的本地化)在/mipmap/country_flag.png:

西班牙标识的图标(本地化为es_ES)在/mipmap-b+es+ES/country_flag.png:

注意的是:你能使用配置修饰词,例如在任何的资源类型上,使用本地化的修饰词。
例如,你可能要提供你的位图的本地化版本。更多的信息,请见本地化你的app。

在你的app中使用资源

在你的源代友和其它的XML文件中通过使用每个资源名称的属性R.<资源类型>.<资源名称>
来引用资源。在这个方式上有一些方法来接收一个资源,如下的例子所示:


Kotlin

// Get a string resource
val hello = resources.getString(R.string.hello_world)// Or supply a string resource to a method that requires a string
TextView(this).apply {setText(R.string.hello_world)
}

在XML文件中,你能引用一个资源使用的语法是@<资源类型>/<资源名称>,当XML的属性
接收了一个可兼容的值,如下的例子所示:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/country_flag" />

注意的是,为了确保用户的语言设置是正确的优先的,要合适的使用resConfigs
来指定你的app支持的语言。更多的信息,见指定你的app支持的语言。

结构化消息中的文本

在一个app中最常用的任务之一是结构化的文本。本地化的消息通过插入文本和数值的数据
到合适的位置上,来结构化。不幸的是,当处理一个右向左的用户界面和右向左的数据时,
简单地结构化能显示不正确,甚至是不可读的文本输出。

语言例如,阿拉伯语,波斯语和乌尔都语都是从右向左写的。然而,一些元素,例如
数字和内嵌的从左向右的文本是从左向右写的,否则是右向左的文本。语言使用左向右
的文本,包括英语也是双向的,因为它也能内嵌右向左的文本。

app中经常生成这种包括了反向的文本的实例。这种混合的不能包括一个清晰的方向,
所以生成的文本能引起不好的用户体验。

尽管系统默认处理双向的文本通常是按预期渲染,当你的app把它放入一个本地化的消息中时
文本可能没有合适的被渲染。

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

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

相关文章

pg数据库的热备

Pg数据库主从复制 ​ 前言&#xff1a;公司的一台服务器因为断电导致系统损坏&#xff0c;经过3天的抢修&#xff0c;将服务器和数据恢复。为了避免数据的丢失&#xff0c;先将数据备份&#xff0c;并进行高可用。 ​ 采用技术&#xff1a;keepalivedpg ​ 后期并实现zabbix…

传说中的运维门户设计

在IT服务管理这片广阔天地中&#xff0c;运维门户如同一位技艺高超的魔术师&#xff0c;轻轻一挥手&#xff0c;便将纷繁复杂的运维世界化繁为简&#xff0c;编织成一张便捷高效、触手可及的网络。它不仅是ITSM系统中不可或缺的一环&#xff0c;更是连接用户与技术世界的桥梁&a…

Spring WebFlux:响应式编程

在软件开发领域&#xff0c;随着互联网应用的规模和复杂性不断增加&#xff0c;传统的编程模型逐渐暴露出一些局限性&#xff0c;尤其是在面对高并发、大规模数据流处理等场景时。为了应对这些挑战&#xff0c;响应式编程&#xff08;Reactive Programming&#xff09;应运而生…

Java字符串去除空格的方法

前言 在Java编程实践中&#xff0c;处理字符串中的空格是一项基本且频繁的操作。本文将深入探讨如何使用Java原生方法以及Apache Commons Lang库中的StringUtils类&#xff0c;全方位解决字符串去空格的需求&#xff0c;让你的代码更加健壮和高效。 1. Java原生方法 a. trim…

电商核心技术揭秘56:客户关系管理与忠诚度提升

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 文章目录 引言客户关系管理&#xff08;CRM&#xff09;的重要性提升顾客体验数据驱…

AWS之云种类与云服务模式

云种类分为3种&#xff1a; 公有云&#xff1a;任何个人或者企业都可以通过注册的方式直接使用的云。&#xff08;特点&#xff1a;使用简单&#xff1b;通过web界面快速购买。缺点&#xff1a;安全性低&#xff1b;使用资源是与其他用户共享。&#xff09; 私有云&#xff1…

Intel HDSLB 高性能四层负载均衡器 — 快速入门和应用场景

目录 文章目录 目录前言与背景传统 LB 技术的局限性HDSLB 的特点和优势HDSLB 的性能参数基准性能数据对标竞品 HDSLB 的应用场景HDSLB 的发展前景参考文档 前言与背景 在云计算、SDN、NFV 高速发展并普遍落地的今天&#xff0c;随着上云业务的用户数量越来越多、数据中心的规模…

umi项目配置之项目构建时配置umirc.ts

对于 umi 中能使用的自定义配置&#xff0c;你可以使用项目根目录的 .umirc.ts 文件或者 config/config.ts&#xff0c;值得注意的是这两个文件功能一致&#xff0c;仅仅是存在目录不同&#xff0c;2 选 1 &#xff0c;.umirc.ts 文件优先级较高 umi 的配置文件是一个正常的 n…

【vivado】 IBERT GT收发器误码率测试

一、前言 IBERT(Integrated Bit Error Ratio Tester),集成误码率测试仪。作为用户来说可以使用这个工具对自己设计的板子中的高速串行收发器进行简单测试&#xff0c;从而判断设计的接口是否有问题。因为这个工具是直接集成到FPGA上&#xff0c;这样一来直接使用这个工具来测试…

ubuntu下安装wireshark

1、安装wireshark 打开终端&#xff0c;输入安装命令 sudo apt-get install wireshark 2、启动 输入命令回车&#xff0c;一定要加上sudo sudo wireshark 3、看到有很多UDP、ARP、ICMP协议等的网络报文 4、以太网口抓取到的报文&#xff0c;列表属性分别为&#xff1a; 编号| 时…

STL----push,insert,empalce

push_back和emplace_back的区别 #include <iostream> #include <vector>using namespace std; class testDemo { public:testDemo(int n) :num(n) {cout << "构造函数" << endl;}testDemo(const testDemo& other) :num(other.num) {cou…

数据分析——对比思维、A/B test

对比分析 数据大小 &#xff1a;与中值、平均值、目标值、标准做对比数据波动&#xff1a;变异系数、方差、标准差数据趋势&#xff1a;时间维度和空间维度 其中 时间维度 横向比较&#xff08;连续7天每天的销售量&#xff09; 纵向比较&#xff08;同一时期不同品类对比&…

iframe父级元素高度百分比不生效

<iframe :src"iframeUrl" width"100%" height"100%" frameborder"0" /> 1、使用绝对定位&#xff1a;将 iframe 的父级元素设置为相对定位&#xff0c;并将 iframe 设置为绝对定位。这样&#xff0c;iframe 就可以根据父级元素…

实验十 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 完成以下页面设计。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; Wxml <view class"container"> <view class"header"> <view class"logo"…

景源畅信:抖音小店比较冷门的品类分享?

在抖音小店的世界里&#xff0c;热门品类总是吸引着众多商家和消费者的目光。然而&#xff0c;就像星空中的繁星&#xff0c;虽不那么耀眼却依然存在的冷门品类同样值得我们关注。它们或许不似服装、美妆那样日进斗金&#xff0c;但正是这些小众市场的存在&#xff0c;为平台带…

Java面试之SpringCloud篇

Nacos有什么用&#xff1f; ①服务注册与发现 ②配置管理 Es为什么查询效率快&#xff1f; &#xff08;1&#xff09;首先&#xff0c;ES使用了倒排索引这种数据结构来快速查找文档。倒排索引是一种针对文本搜索而优化的数据结构&#xff0c;它将每个词与出现这个词的文档列…

Linux 服务器配置共享文件夹(NFS)

一、准备三台 linux 服务器 三台服务器: manger:172.16.11.178 ap1:172.16.11.179 ap2:172.16.11.180 /root/serverfiles/ 为共享目录 二、配置步骤 1、在服务端01的机器上安装nfs和rpcbind程序 yum -y install nfs* yum -y install rpcbind* 2、在安装完nfs以及rpcb…

基于IDEA快速创建一个SpringMVC项目并且配置Tomcat

1&#xff0c;打开IDEA&#xff0c;新建Maven项目【使用web模板创建】 使用社区版的同学创建普通的maven项目&#xff0c;并配置项目的webapp&#xff0c;详情可参考 快速创建一个SpringMVC项目&#xff08;IDEA&#xff09; 2&#xff0c;在main目录下创建Java和resource目录…

2024洗地机爆款榜单,哪个牌子洗地机值得买?助你轻松选对洗地机

随着现代生活节奏的加快&#xff0c;人们对于家庭清洁的需求也越来越高。家用洗地机作为一种高效清洁工具&#xff0c;能够帮助您轻松应对家庭地板的清洁问题&#xff0c;节省时间和精力。然而&#xff0c;在选择洗地机时&#xff0c;究竟哪个牌子的洗地机值得买呢&#xff1f;…

Protobuf(基本使用和IDA中的protobuf解包逆向识别和重新利用)

文章目录 安装protobuf 基本使用如何使用 .pb.cc&#xff08;实现文件&#xff09;和.pb.h&#xff08;头文件&#xff09;.pb.h&#xff08;头文件&#xff09;.pb.cc&#xff08;实现文件&#xff09; 生成的c和h文件ida中解包打包解题1. 定义.proto文件2. 生成Python代码3. …