翻译编辑器提供所有默认和翻译字符串资源的统一且可编辑的视图。
有关翻译不同语言的应用程序的介绍,请阅读 支持不同的语言和文化。
图1.在翻译编辑器显示应用文本翻译之前
字符串资源
项目的字符串资源包含在strings.xml文件中。您的项目有一个默认strings.xml文件,其中包含应用程序默认语言的字符串资源,这是您希望大多数应用程序用户可以使用的语言。您还可以翻译strings.xml包含您希望应用程序容纳的其他语言的字符串资源的文件。
strings.xml完成 默认文件后,您可以自行添加翻译,或者支付专业服务进行翻译。无论哪种方式,您都应该利用Android Studio功能来帮助您管理和测试可本地化的文本。有关专业翻译服务的信息,请参阅订单翻译服务。
打开翻译编辑器
您可以从Android Studio中的以下位置访问翻译编辑器。
从Android视图打开
- 在左侧的Project> Android面板中,选择ModuleName > res> values。
- 右键单击strings.xml文件,然后选择Open Translations Editor。 翻译编辑器显示文件中的键和值对 strings.xml。
注意: 当您翻译strings.xml文件时,您的项目有多个相应的 值文件夹,后缀表示语言,例如 西班牙语的值-es。您的默认strings.xml文件始终位于 值(无后缀)文件夹中。
图1显示了翻译工作完成之前简单应用程序的翻译编辑器中的默认应用程序文本(在本例中为英语)。翻译strings.xml文件的内容 将显示在Untranslatable列的右侧,每种语言一列,如图2所示。
从strings.xml中打开
您可以从任何文件中访问翻译编辑器strings.xml。
- 在左侧的Project> Android面板中,选择 ModuleName > res> values。
- 双击strings.xml以将其打开以进行编辑。
- 在strings.xml中,单击右上角的 Open editor链接。
注意:如果单击“ 隐藏通知”链接,则“ 打开编辑器”链接将消失。要将其恢复,请关闭并重新打开项目。
从设计编辑器打开
您可以从布局编辑器的设计编辑器中打开翻译编辑器,以编辑默认和翻译的文本,以更好地适应您的布局。有关在设计编辑器中切换语言的信息,请参阅在设计编辑器中显示已翻译的文本。
- 在左侧的Project> Android面板中,选择 ModuleName > res> layout。
- 双击content_main.xml以将其打开以进行编辑。
- 单击左下角的Design 选项卡以显示Design “编辑器”。
- 在“设计编辑器”中,选择Language下拉列表。
- 选择Edit Translations 。
配置不可翻译的行
在“ 翻译编辑器”中,您可以选择“ Unstranslatable”以指示您不希望翻译此行中的文本。您不希望翻译的文本可能是特定于产品的文本,如商品名称和商标,或者没有翻译的技术术语。
当您检查Untranslatable时,默认strings.xml文件中的相应行 添加translatable =“false”。在以下示例中, 顶部的EasyApp未翻译,因为它是产品名称。
EasyApp </ string> 设置</ string> 我是一个简单的应用程序!</ string> 下一页</ string> 我是第二页!</字符串>
“title_activity_second” > SecondActivity </ string> </ resources>
添加和删除语言
翻译编辑器支持 BCP 47,并结合区域和区域(国家)代码转换成用于靶向本地化单个选择。语言环境定义的不仅仅是语言。区域设置包括与日期和时间,货币和小数等内容相关的国家/地区格式。
要添加语言,请执行以下操作:
- 在“ 翻译编辑器”中,单击地球图标 。
- 从下拉列表中,选择要添加的语言。 新语言出现在翻译编辑器中, 带有文件的values-
*文件夹strings.xml将添加到项目中。例如, 西班牙语的值为es。
要删除语言,请执行以下操作:
您可以通过删除列中的每个值来删除翻译编辑器中的语言(请参阅 编辑,添加或删除文本),也可以删除该语言的项目文件夹,如下所示:
- 在左侧的Project> Android面板中,选择 ModuleName > res。
- 右键单击要删除的语言的values- *文件夹。例如, 印地语的值为hi。
- 从下拉列表中,选择“ 删除”以删除该文件夹及其 strings.xml文件。
编辑,添加和删除文本
您可以直接在strings.xml文件中或通过翻译编辑器操作文本设置。本节介绍 翻译编辑器方法。在翻译编辑器中,您可以通过列表视图或翻译编辑器底部的翻译字段编辑,添加或删除文本。
图2.顶部的列表视图和底部的Translation字段
列表显示
要编辑或添加文本,请执行以下操作:
- 双击要编辑的单元格或添加文本。
- 进行键盘复制粘贴,或者如果您的键盘支持变音符号,请直接在列表视图中键入。
- 选项卡或将光标移出字段。
要删除文本,请执行以下操作:
- 双击要删除的单元格。
- 在列表视图中,选择文本并按Delete。
- 选项卡或将光标移出字段。
翻译领域
要编辑或添加文本,请执行以下操作:
- 在列表视图中,单击要编辑的单元格或添加文本。
- 在“ 翻译”字段中,执行键盘复制粘贴,或者如果您的键盘支持变音符号,请直接在“ 翻译”字段中键入。
- 选项卡或将光标移出字段。
要删除文本,请执行以下操作:
- 单击要删除的单元格。
- 在“ 翻译”字段中,选择文本并按“ 删除”。
添加和删除Key
在“翻译编辑器”中,“ Key”列列出了strings.xml文件中每个数据项的唯一标识符。您可以通过翻译编辑器添加和删除键。删除密钥时,“翻译编辑器”会删除该密钥及其所有相关翻译。翻译编辑器使用安全删除重构来删除密钥,以便您知道密钥文本是否在其他地方使用,并且在删除密钥之前有机会进行必要的调整。安全删除重新定位可确保在删除密钥后仍然可以编译代码。
要添加密钥,请执行以下操作:
- 在“ 翻译编辑器”中,单击 Add Key 。
- 在对话框中,输入密钥名称,默认值以及默认strings.xml文件的位置。
图3.添加密钥
要删除密钥,请执行以下操作:
-
在“翻译编辑器”中,选择要删除的Key。
-
单击删除密钥。
-
在“ 删除”对话框中,确定是否要安全删除以及是否要在注释和字符串中进行搜索,然后单击“ 确定”。
图4.删除对话框如果没有对已删除密钥的引用(用法),或者所有引用都是安全可折叠的,则删除该密钥。否则,翻译编辑器将显示Usages Detected对话框,其中包含有关检测到的问题的信息。
图5.删除对话框 -
选择查看用法以查看将删除的内容。“ 查找安全删除冲突”对话框显示了无法安全删除的所有用法,因此您可以编辑相应的代码。
图6.不安全的用法 -
右键单击用法以显示上下文菜单,然后选择“ 跳转到源”,以便进行所需的更改。
-
在“ 查找安全删除冲突”面板中,选择“ 重新运行安全删除”以确保没有其他需要注意的用法。
-
清除用法后,单击“ 执行重构”以删除密钥。
纠正错误
图7显示了翻译编辑器,显示了英语,西班牙语和法语 strings.xml文件的内容。红色文本表示有错误的行。
图7.红色文本表示您必须修复的错误情况
要更正错误,请执行以下操作:
- 将鼠标悬停在红色文本上可显示问题及其解决方案的说明。
- 要更正错误,请将鼠标悬停在红色文本上以显示问题及其解决方案的说明。
在“ 翻译编辑器”中进行更改时,基础 strings.xml文件将随更改一起更新。在strings.xml文件中进行更改时,“ 翻译编辑器”中的相应列将 随更改一起更新。
翻译编辑器更正示例:
- 图7显示app_name行已经过Untranslatable检查,但提供了西班牙语翻译。删除西班牙语翻译以更正错误。
- 图7显示next_page行缺少法语翻译。使用键盘将Page
Suivante复制到单元格中以更正错误。键盘复制粘贴操作将带有变音符号的文本复制到单元格中。
在设计编辑器中显示翻译的文本
要查看翻译文本在应用布局中的显示方式,请在设计编辑器中切换默认和翻译版本之间的文本,如下所示:
- 在左侧的Project> Android面板中,选择 ModuleName > res> layout。
- 双击content_main.xml以将其打开以进行编辑。
- 单击左下角的“ 设计”选项卡以显示“ 设计编辑器”。
- 在“设计编辑器”中,选择“ 语言” 下拉列表。
- 选择编辑翻译 。
- 选择您要用于查看应用的语言。
图8.选择了西班牙语的语言下拉列表
设计编辑器以所选语言显示您的应用程序布局,在本例中为西班牙语。
图9.设计编辑器以西班牙语显示翻译文本
将设计编辑器设置为默认语言
要将语言设置回默认值,请选择es>语言 。
图10.设置为默认语言
管理和测试可本地化的文本
Android平台和Android Studio提供了多种功能,可帮助您管理和测试可本地化的应用文本。这些功能可以帮助您定位从右到左(RTL)脚本(如阿拉伯语或希伯来语)的问题。测试可本地化的文本允许您在将消息提交到源存储库以便稍后发送以进行转换之前,对UI文本及其布局进行调整。
重构您的项目以获得RTL支持
Android Studio具有重构命令,可以支持和/和 元素中的双向文本TextView, 以便您的应用程序可以显示并允许用户以从左到右(LTR)和从右到左(RTL)脚本编辑文本。该命令还提供应用程序UI布局和所有视图窗口小部件的自动镜像。要查看文本方向更改和布局镜像,还必须 在布局编辑器中设置 文本和布局方向属性。 ConstraintLayoutLinearLayout
以下过程说明如何重构项目以获得RTL支持:
- 选择Refactor > Add RTL support where possible显示如图11所示的对话框。 图11.添加RTL支持
如果文件中的元素
AndroidManifest.xml没有该android:supportsRTL="true"属性,请选中“
更新AndroidManifest.xml”复选框。
如果您的应用targetSdkVersion是17或更高,请选择用开始/结束属性替换左/右属性。在这种情况下,您的属性应使用“开始”和“结束”而不是“左”和“右”。例如,android:paddingLeft成为android:paddingStart。
如果您的应用程序 targetSdkVersion是16或更少,请选择 生成-v17版本
在这种情况下,您的XML应使用这两组属性。例如,您的XML应该使用
android:paddingLeft和android:paddingStart。 - 要显示Find Refactoring Preview窗口,请单击Run。 图12.检查预览
- 单击Do Refactor。
有关重构项目以获得RTL支持的更多信息,请参阅 Android 4.2中的Native RTL支持。
文本和布局方向属性
右边的属性窗口中提供了textDirection文本控件和使用性质的layoutDirection属性与布局小部件用于更改文本和布局组件的方向。方向属性列在右侧的“ 属性”窗口中,并使用API级别17或更高级别。
要查看文本方向更改和布局镜像,还必须 重构项目以获得RTL支持。在英语中,文本方向更改仅从文本的右侧向左侧移动标点符号; 例如,“Hello World!” 成为“!Hello World”。要查看LTR文本切换到RTL,您必须在应用程序中使用RTL语言。如果您想使用英语并查看文本切换到RTL以进行测试,请使用pseudolocales。Pseudolocales独立于重构命令和方向属性。
要访问和使用方向属性,请执行以下操作:
-
在布局编辑器中,选择文本小部件。
-
打开“ 属性”窗口,然后搜索要使用的RTL属性。 要设置属性值,请选择以下选项之一:
firstStrong:根视图的默认值。第一个强方向字符决定段落方向。如果没有强方向字符,则段落方向是视图的已解析布局方向。
anyRtl:段落方向是RTL,如果它包含任何强 RTL字符;
否则,如果它包含任何强LTR字符,则为LTR。如果两者都没有,则段落方向是视图的已解析布局方向。
ltr:段落方向是LTR。
rtl:段落方向是RTL。
locale:段落方向来自系统区域设置。
inherit:默认。使用父级中设置的方向。
注意:强方向字符具有自己的预定义方向,例如大多数字母和音节字符,非欧洲和非阿拉伯数字,汉字表意文字以及仅针对这些脚本的标点字符。 -
要查看反转的文本和布局,请运行该应用程序。
Pseudolocales
伪语言是一种模拟语言环境,旨在承担在翻译应用程序时导致UI,布局,RTL和其他翻译问题的语言特征。Pseudolocales提供即时和自动翻译,可以用英语阅读所有可本地化的消息。这使您可以在源代码中捕获不可翻译的消息。
有关如何使用pseudolocales的信息,请参阅 使用Pseudolocales测试您的应用程序。
订单翻译服务
在翻译编辑器中,单击右上角的订购翻译链接。
将打开用于订购翻译的Android Studio页面。
按照订购页面上的说明上传您的默认strings.xml文件,选择目标语言,选择供应商,然后付款。