本地化应用程序

本地化涉及不同资源的创建和使用,例如您要在应用程序中支持的地区的文本、纹理和样式等。 Kanzi 使用为每个地区保存一个单独值的资源 ID,间接使用本地化资源。Kanzi 使用本地化表记录本地化资源和地区。您可以在素材库 (Library) > 本地化 (Localization) 中的本地化表中看到应用程序使用的所有本地化资源和地区。

要本地化您的 Kanzi 应用程序:

  1. 将您的工程中要本地化的资源添加到本地化表中。请参阅添加资源至本地化表
  2. 本地化资源。请参阅本地化文本资源本地化其他资源
  3. 编辑本地化的资源。请参阅编辑本地化的资源

您也可以本地化主题。请参阅本地化主题

完成教程,了解如何本地化您的 Kanzi 应用程序。请参阅教程:本地化您的应用程序

添加资源至本地化表

如果具有要本地化的完整 Kanzi 应用程序,或者为已经本地化的 Kanzi 应用程序添加了内容,则您必须为要本地化的主题创建资源 ID 并将它们添加到本地化表中。为要本地化的资源创建了资源 ID 并将它们添加到本地化表中之后,您即可开始本地化您的 Kanzi 应用程序。请参阅本地化文本资源本地化其他资源

要创建资源 ID 并将它们添加到本地化表中:

  1. 工程 (Project) 中,右键点击屏幕 (Screen) 节点,并在上下文菜单中选择添加资源至本地化表 (Add Resources to a Localization Table)
    当在屏幕 (Screen) 节点上使用添加资源至本地化表 (Add Resources to a Localization Table) 命令时,您可以使用 Kanzi Studio 将工程中的所有资源添加到本地化表中并将它们本地化。要只将所选节点及其节点树的资源添加到本地化表,请右键点击节点并选择 添加资源至本地化表 (Add Resources to a Localization Table)
  2. 添加资源至本地化表 (Add Resources to a Localization Table) 窗口中设置:
    1. 本地化表 (Localization Table) 添加到您要添加资源的本地化表。如果您没有本地化表,选择<Create New>
      本地化表包含有关哪些地区使用哪些资源的信息。
    2. 选择要在添加资源至本地化表 (Add Resources to a Localization Table) 窗口中显示的资源类型。
      例如,要只显示文本和图像资源,请选择
    3. 在列出了您所选类型的所有资源的表格中,点击要添加到您所选本地化表中的资源旁边的复选框。要更改资源 ID,请右键点击资源 ID 并输入一个新名称。
      Kanzi Studio 会为对文本 (Text) 属性使用同一个值的多个文本块 (Text Block) 节点创建一个单个的资源 ID。这些节点在本地化表中共享同一个条目。
    4. 点击添加 (Add)
    5. Kanzi Studio 从您选择的所有资源类型创建资源和资源 ID,并将其添加到您选择的本地化表中。您可以在素材库 (Library) > 本地化 (Localization)中找到本地化表。现在您可以本地化资源,并在本地化表中设置要将哪个资源用于哪个地区。

  3. 您可以开始本地化您的 Kanzi 应用程序。请参阅本地化文本资源本地化其他资源编辑本地化的资源

本地化文本资源

Kanzi使用 gettext 的 .po 文件格式处理本地化的文本资源。请参阅 PO 文件格式。要使用其他格式导入和导出本地化的文本资源,您可以使用 Kanzi Localization Plugin API 根据规范创建一个支持该格式的Kanzi Studio插件。您可以在 <KanziWorkspace>/Examples/CsvPlugin 目录中找到类插件的示例。请参阅 Csv 插件示例

要本地化文本资源:

  1. 在您的 Kanzi Studio 工程中,使用文本块 (Text Block) 节点创建文本内容,并将文本资源添加到本地化表中。请参阅添加资源至本地化表
  2. 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要本地化的资源的本地化表,然后选择导出本地化表 (Export Localization Table)Kanzi Studio 会向 <ProjectName>/Localization/<LocalizationTableName> 中的 .pot 文件导出本地化表模板,同时向目录中导出与您在本地化表中拥有的地区数量相同的 .po 文件。
  3. 本步骤取决于您是在首次翻译您的 Kanzi 应用程序还是在更新翻译:
  4. 从译员那里收到 .po 文件之后,将它们保存到 <ProjectName>/Localization/<LocalizationTableName> 中。
  5. Kanzi Studio 中的素材库 (Library) > 本地化 (Localization) 中,右键点击您的译员已本地化其内容的本地化表,然后选择 导入本地化表 (Import Localization Table)Kanzi Studio 会将 <ProjectName>/Localization/<LocalizationTableName> 目录中的所有 .po 文件导入到所选的本地化表中。

本地化其他资源

除将文本内容翻译成多种语言外,Kanzi 还针对各地区提供不同的资源供您使用,包括动画、笔刷、编辑器、字体、材质、网格、纹理和样式。 您可以使用这个过程对所有类型的资源进行本地化。

要本地化其他资源:

  1. 为您的 Kanzi Studio 工程创建或导入内容,并将内容所使用的资源添加到本地化表中。请参阅添加资源至本地化表
    例如,如果您拥有 5 个地区并希望为每个地区使用不同的一组纹理,请为您的 Kanzi Studio 工程导入每个地区的纹理图像。请参阅导入
  2. 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要本地化的资源的本地化表。
    Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
  3. 本地化编辑器 (Localization Editor) 中查找要本地化的资源,双击要本地化的地区中的资源单元格,然后输入文本或选择要用于该地区的资源的资源 ID。
  4. 重复上一步,直到为所有资源和地区选择了资源为止。

本地化主题

Kanzi 可以让您将主题应用程序本地化。

要本地化主题:

  1. 对于每个您要将其内容本地化的主题,从包含要本地化的文本节点的内容创建预设件。请参阅创建和使用预设件
  2. 本地化文本资源:
    1. 预设件 (Prefabs) 中选择您在上一步中创建的预设件并将其资源添加到本地化表。请参阅添加资源至本地化表
    2. 素材库 (Library) > 本地化 (Localization) 中双击上一步中创建的本地化表,使其在本地化编辑器 (Localization Editor) 中打开,然后添加要将其主题本地化的地区,并本地化文本资源。请参阅本地化文本资源
      要添加地区,点击+ 创建地区 (+ Create Locale),输入地区名称,然后点击确定 (OK)
  3. 使用预设件视图 (Prefab View) 节点显示已本地化的内容:
    1. 在要显示您已本地化的内容的节点下的预设件 (Prefabs) 中,创建一个预设件视图 (Prefab View) 节点并在属性 (Properties) 中添加和设置预设件模板 (Prefab Template) 属性为您在第 1 步中创建的预设件之一。
      您必须使用预设件视图 (Prefab View) 节点,以便动态更改预设件视图 (Prefab View) 实例化的预设件。请参阅预设件占位符 (Prefab Placeholder) 和预设件视图 (Prefab View) 节点
    2. 预设件 (Prefabs) 中右键点击在上一步中创建的预设件视图 (Prefab View) 节点并选择添加资源至主题组 (Add Resources to a Theme Group)
    3. 添加资源至主题组 (Add Resources to a Theme Group) 窗口中:
      • 主题组 (Theme Group) 设为要添加资源的主题组。
        主题组包含有关哪个主题使用哪些资源的信息。
      • 资源 ID (Resource ID) 重命名为在工程上下文中有意义的内容。
      点击添加 (Add)
      Kanzi Studio 向主题组添加指向值 (Value) 列中所示预设件的资源 ID。在您将资源从中添加到主题组 (Theme Group)预设件视图 (Prefab View)节点中,Kanzi Studio 会将预设件模板 (Prefab Template) 属性的值设置为资源 ID。
    4. (可选)预设件 (Prefabs) 中将第一步中创建的 预设件视图 (Prefab View) 节点复制到要显示相同内容的位置。

    5. 素材库 (Library) > 主题 (Theme) 中双击添加了资源的主题组,然后在主题编辑器 (Theme Editor) 中为第 3 步中创建的资源 ID 选择每个主题的正确预设件。
  4. 要在字典 (Dictionaries) 窗口中查看工程中的本地化表和主题组资源字典,点击地区和主题 (Locales and Themes),然后选择不同的地区和主题以查看预览 (Preview) 中的本地化主题。

编辑本地化的资源

本地化编辑器 (Localization Editor) 中,您可以设置和编辑地区所使用的资源。

要编辑本地化的资源:

  1. 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要编辑的资源的本地化表。
    Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
  2. 本地化编辑器 (Localization Editor) 中:

对地区中的资源使用 kzb 文件 URL

将您的工程中使用的资源添加到本地化表中之后,您可以使用一个 kzb URL 指向另一个 Kanzi Studio 工程中的资源。

要对地区中的资源使用 kzb 文件 URL:

  1. 素材库 (Library) > 本地化 (Localization) 中,右键点击包含要对其使用 kzb 文件 URL 的资源的本地化表。
    Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
  2. 本地化编辑器 (Localization Editor) 中,右键点击资源的单元格,然后从下拉菜单中选择 < URL >
  3. 在单元格中,输入要使用的资源的 kzb 文件 URL。
    例如,要使用来自另一个 Kanzi Studio 工程的字体,请输入指向字体的 kzb 文件 URL。

创建地区包

地区包是只包含特定地区的资源的 kzb 文件。 使用 Kanzi Engine API 可以在设置地区时加载该地区使用的应用程序资源。这样可以减少应用程序中 kzb 文件的大小。

要将地区包使用的资源导出到主工程 kzb 文件,在素材库 (Library) 中选择资源,然后在属性 (Properties) 中添加并启用已被代码使用 (Is Used By Code) 属性。所有启用已被代码使用 (Is Used By Code) 属性的资源仅导出到主工程 kzb 文件,而不导出到使用它们的任何地区包。

要创建一个地区包:

  1. 素材库 (Library) > 本地化 (Localization) 中将您要添加到 Kanzi 应用程序地区包中的地区使用的资源添加到本地化表中。
  2. 素材库 (Library) > 本地化 (Localization) 中双击任一本地化表,然后在本地化编辑器 (Localization Editor) 中点击您要导出到地区包中的资源的地区名称旁的
  3. Kanzi Studio 中选择文件 (File) > 导出 (Export) > 导出 KZB (Export KZB)。该命令:

  4. 使用 Kanzi Engine API 将地区包加载到您的 Kanzi 应用程序中。请参阅教程:本地化您的应用程序

显示资源的使用情况

本地化编辑器 (Localization Editor) 中,您可以在 工程 (Project) 中当前所选的上下文中看到是否和在何处使用了资源。

要显示资源的使用情况:

  1. 素材库 (Library) > 本地化 (Localization) 中,右键点击要检查其资源使用情况的本地化表。
    Kanzi Studio 打开本地化编辑器 (Localization Editor) 中的本地化表。
  2. 使用 本地化编辑器 (Localization Editor)

创建本地化表

Kanzi 使用为每个地区保存一个单独值的资源 ID,间接使用本地化资源。Kanzi 使用本地化表记录本地化资源和地区。您可以在素材库 (Library) > 本地化 (Localization) 中的本地化表中看到应用程序使用的所有本地化资源和地区。

您可以创建多个本地化表,以便:

要创建本地化表,请在 素材库 (Library) 按下 Alt 并右键点击 本地化 (Localization) 中选择 本地化表 (Localization Table),并命名本地化表。

在多个 Kanzi Studio 工程组合到 Kanzi 应用程序中使用本地化

要在组合多个 Kanzi Studio 工程到 Kanzi 应用程序时使用本地化,您必须通过以下方式之一制作应用程序的主工程屏幕 (Screen) 节点可访问的本地化表。

另请参阅

使用地区

教程:本地化您的应用程序

本地化

使用预设件

组合Kanzi Studio 工程到Kanzi 应用程序