使用 Translations Editor 本地化界面 (View)

概念和 Jetpack Compose 实现

Translations Editor 提供了一个合并的可修改视图,方便您查看所有默认和已翻译的字符串资源

有关将应用翻译成不同语言的说明,请参阅支持不同的语言和文化

图 1. 显示翻译前的应用文本的 Translations Editor

从 Design Editor 中打开 Translations Editor

您可以从 Layout Editor 的 Design Editor 中打开 Translations Editor,以修改默认译文,使其更好地匹配您的布局。如需了解如何在 Design Editor 中切换语言,请参阅在 Design Editor 中显示译文

  1. 在左侧的 Project > Android 面板中,依次选择 ModuleName > res > layout
  2. 双击 content_main.xml 将其打开,以供修改。
  3. 点击左下角的 Design 标签页以显示 Design Editor
  4. 在 Design Editor 中,选择 Language 下拉列表。
  5. 选择 Edit Translations 图标

在 Design Editor 中显示译文

如要查看译文在应用布局中的显示效果,请在 Design Editor 中切换默认版和翻译版文本,如下所示:

  1. 在左侧的 Project > Android 面板中,依次选择 ModuleName > res > layout
  2. 双击 content_main.xml 将其打开,以供修改。
  3. 点击左下角的 Design 标签页以显示 Design Editor
  4. 在 Design Editor 中,选择 Language 下拉列表。
  5. 选择 Edit Translations 图标
  6. 选择要以何种语言查看应用。

    图 2. 选中西班牙语的语言下拉列表

Design Editor 会以所选语言(在本示例中为西班牙语)显示应用布局。

图 3. 显示西班牙语译文的 Design Editor

将 Design Editor 的语言设置为默认语言

如要将语言恢复为默认值,请依次选择 es > Language 图标

管理和测试可本地化的文本

Android 平台和 Android Studio 提供了多种功能来帮助您管理和测试可本地化的应用文本。这些功能提供了一些选项来帮助您确定从右到左 (RTL) 显示的文本(如阿拉伯语或希伯来语)中的问题。通过测试可本地化的文本,您可以在将消息提交到源代码库以便之后送交翻译之前,对界面文本及其布局进行调整。

针对 RTL 支持重构项目

Android Studio 包含一个重构命令,该命令实现了对 TextViewConstraintLayoutLinearLayout 元素中的双向文本的支持,因此应用可以按从左到右 (LTR) 和从右到左 (RTL) 的方向显示文本,并允许用户修改文本。该命令还提供了应用界面布局和所有视图微件的自动镜像功能。如要查看文本方向更改和布局镜像,您还必须在布局编辑器中设置文本和布局方向属性

以下过程说明了如何通过重构项目来支持 RTL:

  1. 依次选择 Refactor > Add RTL support where possible,以显示如图 4 所示的对话框。

    图 4. 添加 RTL 支持

    • 如果 AndroidManifest.xml 文件中的 <application> 元素没有 android:supportsRTL="true" 属性,请选中 Update AndroidManifest.xml 复选框。
    • 如果应用的 targetSdkVersion 为 17 或更高,请选中 Replace Left/Right Properties with Start/End Properties 复选框。在这种情况下,您的属性应使用“start”和“end”,而不是“left”和“right”。例如,android:paddingLeft 会变为 android:paddingStart
    • 如果应用的 targetSdkVersion 为 16 或更低,请选中 Generate -v17 Versions 复选框。在本示例中,XML 应同时使用这两组属性。例如,XML 应同时使用 android:paddingLeftandroid:paddingStart
  2. 如需显示 Find Refactoring Preview 窗口,请点击 Run

    图 5. 检查预览

  3. 点击 Do Refactor

如需详细了解如何通过重构项目来支持 RTL,请参阅 Android 4.2 中的原生 RTL 支持

文本和布局方向属性

右侧的“Properties”窗口中提供了与文本 widget 搭配使用的 textDirection 属性和与布局 widget 搭配使用的 layoutDirection 属性,分别用于更改文本和布局组件的方向。右侧的 Properties 窗口中列出了方向属性,并适用于 API 级别 17 或更高级别。

如需查看文本方向更改和布局镜像,您还必须通过重构项目来支持 RTL。在英语中,文本方向更改仅会将标点符号从文本右侧移到左侧;例如,“Hello World!”会变为“!Hello World”。如要查看 LTR 文本切换成 RTL 文本的效果,您必须在应用中使用 RTL 语言。如果您想使用英语来查看文本切换成 RTL 后的测试效果,请使用伪语言区域。伪语言区域独立于重构命令和方向属性。

如需访问和使用方向属性,请执行以下操作:

  1. 布局编辑器中,选择一个文本 widget。
  2. 打开 Properties 窗口,然后搜索要使用的 RTL 属性。如要设置属性值,请选择以下选项之一:

    • firstStrong:根视图的默认值。第一个强方向字符决定了段落方向。如果没有强方向字符,段落方向将为视图的已解析布局方向。
    • anyRtl:如果段落中包含任何强 RTL 字符,则段落方向为 RTL;如果段落中包含任何强 LTR 字符,则段落方向为 LTR。如果这两种情况都不是,段落方向将为视图的已解析布局方向。
    • ltr:段落方向是 LTR。
    • rtl:段落方向是 RTL。
    • locale:段落方向由系统语言区域确定。
    • inherit:默认值。使用父级中设置的方向。

    注意:强方向字符具有自己的预定义方向,例如大多数字母和音节字符、非欧洲和非阿拉伯数字、汉字象形文字以及这些文字专用的标点符号字符。

  3. 如要查看反方向的文本和布局,请运行应用。