步骤 2 - 为其他语言环境创建语言环境包

语言环境包是一个 kzb 文件,其中仅包含特定语言环境的资源。使用 Kanzi Engine API,您可以在设置特定语言环境时加载该语言环境使用的应用程序资源。这样可以减小应用程序中 kzb 文件的大小。

在本教程的此步骤中,您首先准备 Kanzi Studio 项目以加载其他语言环境,然后为 Japanese、Chinese 和 Korean 语言环境创建样式和语言环境包。

准备 Kanzi Studio 项目以加载其他语言环境。

在本节中,您将修改在教程第一步中创建的 Kanzi Studio 项目:

  • 导入包含其他地区资源的 PO 文件。

  • 您准备项目,以便 LocaleSelector 节点中的 LocaleButton 预设的实例使用自定义属性来控制应用程序的区域设置。

要准备用于加载其他地区的工程:

  1. 在 Library > Localization 中,右键单击 Localization Table (Main) 本地化表并选择 Import Localization Table Manually。转到 <KanziWorkspace>/Tutorials/Localization/Assets/Text 目录并导入包含 Japanese、Korean 和 Chinese 语言环境文本字符串的 ja-JP.po、ko-KR.po 和 zh-ZH.po 文件。

    Kanzi Studio 创建 PO 文件中指定的语言环境,并将这些 PO 文件中的翻译添加到本地化表中。

    ../../_images/import-localization-table-manually.png ../../_images/localization-table-step-2.png
  2. 创建一个自定义属性类型,您可以使用它来控制应用程序的区域设置:

    1. 在 Library 中,按 Alt 并右键单击 Property Types 并选择 Property Type。

      ../../_images/create-property-type2.png
    2. 在 New Property Type 窗口中,设置:

      • Name 到 Localization.LocaleID

      • Category 到 LocaleButton

      • Data Type 到 Text

      • Editor 到 Locale selector

      单击 Save。

      您使用自定义属性类型通过 LocaleSelector 节点中的按钮设置语言环境。

      ../../_images/localeid-property-type.png
  3. 在 Prefabs 中,选择 LocaleButton 预设。在 Properties 中,添加 Localization.LocaleID 属性。

    ../../_images/localebutton-in-prefabs-2.png ../../_images/localeid-added-property.png
  4. 在 Prefabs 中,选择 LocaleButton 预设。在 Toggle Button: Toggled On 触发器中的 Node Components 中,按 Alt 并右键单击 Actions,选择 Set Property 操作,并设置:

    • Target Item 到 Screen

    • Target Property 到 Locale

    • Value From 到 Property

    • Source Item 到 <Relative> 和 .

      通过这种方式,您可以从用于设置语言环境的预设实例中获取 Screen 节点 Locale 属性的值。

    • Source Property 到 Localization.LocaleID

    通过此 Set Property 操作,您可以设置应用程序在用户切换 LocaleButton 预设实例时切换语言环境。该操作从预设实例的 Localization.LocaleID 属性中获取语言环境的值。

    ../../_images/create-set-property-action.png ../../_images/localebutton-trigger.png
  5. 在第一个 LocaleButton 预设实例的 LocaleSelector 节点中的 Node Tree:

    1. 在 Properties 中,添加 Localization.LocaleID 属性,并将其设置为您希望通过此按钮设置的区域设置。

      例如,要设置为默认区域设置,在这种情况下为 English,请选择 Invariant Language (Invariant Country) () 值。

      ../../_images/localeid-add-property.png ../../_images/localeid-added-property.png
    2. 在 Node Components 中,选择 Toggle Button: Toggled On 触发器并按下 Delete 键。

      您将替换在每个预设实例中定义触发器切换到的区域设置的触发器,替换为在 LocaleButton 预设中定义的触发器。新触发器从每个预设实例的 Localization.LocaleID 属性中获取区域设置的值。

      ../../_images/toggled-on-trigger-selected.png ../../_images/toggled-on-trigger-deleted.png
  6. 对 LocaleSelector 节点中的每个 LocaleButton 实例重复上一步骤:

    • 对于设置 Finnish 语言环境的 LocaleButton 预设实例,将 Localization.LocaleID 属性设置为 Finnish (Finland) (fi-FI)。

    • 对于设置 Spanish 语言环境的 LocaleButton 预设实例,将 Localization.LocaleID 属性设置为 Spanish (Spain) (es-ES)。

  7. 在 Node Tree 中,按 Alt 并右键单击 LocaleSelector 节点,并选择 Alias。

    Kanzi Studio 在 Screen 节点的资源字典中创建到 LocaleSelector 节点的别名。

    您使用此别名通过 Kanzi Engine API 访问 LocaleSelector 节点,并向节点添加按钮以从语言环境包中加载语言环境。您将在此步骤的下一部分准备语言环境包。

    ../../_images/create-alias3.png ../../_images/localeselector-alias.png

为其他地区创建样式

在本节中,您将为使用包含 Japanese、Chinese 和 Korean 字形的字体的其他语言环境创建样式。

要为其他地区创建样式:

  1. 在 Kanzi Studio 主菜单中,选择 File > Import > Import Fonts。在 Import Fonts 对话框中,点击 Browse,选择 <KanziWorkspace>/Tutorials/Localization/Assets/Fonts 文件夹,并导入包含 Japanese、Korean 和 Chinese 字形的字体:

    • 对于 Japanese,使用 Noto Sans CJK JP。

    • 对于 Korean,使用 Noto Sans CJK KR。

    • 对于 Chinese,使用 Noto Sans CJK SC。

    确保您使用的字体提供应用程序中文本所需的字形。使用 FreeType 字体引擎时,您可以为不同的 Unicode 书写系统配置后备 Font Families。请参阅 使用字体后备。

    ../../_images/import-the-fonts.png ../../_images/library-fonts1.png
  2. 创建设置每个地区的字体的样式:

    1. 在 Localization Editor 中,点击 + Add Resource,选择 Create > Named Style,并将其命名为 LocaleStyle。

      ../../_images/create-named-style1.png
    2. 在 Library > Styles 中,右键单击 LocaleStyle,选择 Duplicate,并根据使用它的区域命名样式。

      例如,将样式命名为:

      • 对于 Japanese 区域设置 LocaleStyle-jp

      • 对于 Korean 区域设置 LocaleStyle-kr

      • 对于 Chinese 区域设置 LocaleStyle-zh

      ../../_images/duplicate-localestyle.png ../../_images/name-the-localestyles.png
    3. 在 Library 中,选择一个样式,并在 Properties 中,添加并设置 Font Family 属性为包含该区域设置样式所用字形的字体。

      例如:

      • 对于 English、Finnish 和 Spanish 区域设置样式 LocaleStyle,将 Font Family 属性设置为 Noto Sans。

      • 对于 Japanese 区域设置样式 LocaleStyle-jp,将 Font Family 属性设置为 Noto Sans CJK JP。

      • 对于 Korean 区域设置样式 LocaleStyle-kr,将 Font Family 属性设置为 Noto Sans CJK KR。

      • 对于 Chinese 区域设置样式 LocaleStyle-zh,将 Font Family 属性设置为 Noto Sans CJK SC。

      ../../_images/locale-font-korean.png
  3. 在您要应用所创建样式的每个区域设置的 Localization Table 列中,双击 LocaleStyle 单元格并选择要应用于该区域设置的样式。

    例如,对于 Japanese 区域设置,选择 LocaleStyle-jp。Finnish 和 Spanish 区域设置使用 LocaleStyle,该区域设置使用默认字体。

    ../../_images/set-styles-in-localization-editor.png
  4. 在 Node Tree 中,选择 RootPage 节点。在 Properties 中,移除 Font Family 属性,添加 Style 属性,并将其设置为 <ResourceID>,将资源 ID 设置为 LocaleStyle。

    您将 RootPage 中的 Font Family 属性设置替换为来自当前选择的语言环境的本地化表的资源。

    ../../_images/rootpage-in-project2.png ../../_images/set-style-resourceid-localstyle.png
  5. 在 LocaleSelector 节点中的 Node Tree 中,选择 LocaleButton 预设的所有实例。在 Properties 中,添加 Style 属性并将其设置为 LocaleStyle 样式。

    通过这种方式,您可以为 English、Finnish 和 Spanish 区域设置的区域名称设置字体系列。

    ../../_images/node-tree-localeselector-en-fi-sp.png ../../_images/properties-style-localestyle.png

创建地区包

地区包是只包含特定地区的资源的 kzb 文件。

在本节中,您将为项目添加 Japanese、Korean 和 Chinese 语言环境的本地化资源,并创建语言环境包。在下一节中,您将使用 Kanzi Engine API 加载语言环境包。

在 <KanziWorkspace>/Tutorials/Localization/Assets/Text 目录中,您可以找到包含在本教程中用于 Kanzi Studio 项目的所有文本字符串的 PO 文件,这些文件已本地化为 Japanese、Korean 和 Chinese。

要创建一个地区包:

  1. 创建用于在 LocaleButton 节点中显示语言环境名称的文本资源:

    1. 在 Library > Localization 中,双击 Localization Table (Main) 本地化表以在 Localization Editor 中打开它。

    2. 单击 + Add Resource,选择 Create > Text,并将新的文本资源命名为 LocaleDisplayName。

      在下一步中,您使用 Kanzi Engine API 设置此文本资源,以显示您用于加载该语言环境的 LocaleButton 中的语言环境名称。

      ../../_images/create-new-text.png
    3. 在从语言环境包加载资源的每个语言环境的列中,单击 LocaleDisplayName 单元格,并输入您希望在每个语言环境的 LocaleButton 中显示的文本。

      由于您要让地区的用户找到其地区,所以使用每个地区的本名。例如:

      • 对于 Japanese,输入 日本語。

      • 对于 Korean,输入 한국어。

      • 对于 Chinese,输入 中文。

      ../../_images/korean-and-japanese-localization-editor.png
  2. 在 Localization Table 中,设置您要用于 Japanese、Korean 和 Chinese 区域设置的图像。

    例如:

    • 对于 Japanese 区域设置,使用 Image04。

    • 对于 Korean 区域设置,使用 Image05。

    • 对于 Chinese 区域设置,使用 Image06。

    ../../_images/set-images-for-additional-locales.png
  3. 在 Localization Table 中,单击 Japanese、Chinese 和 Korean 区域设置的区域名称旁边的 image1。

    这样您可以标记要为其创建地区包 kzb 文件的地区,文件仅包含该地区使用的资源。Kanzi Studio 不会将本地化表中标记为地区包的地区的资源导出到主 kzb 文件中。

    ../../_images/export-locale-in-localilzation-editor.png
  4. 在 Kanzi Studio 中,选择 File > Export > Export KZB。此命令:

    • 为您在本地化表中标记为语言环境包的每个语言环境创建一个 kzb 文件。当 Kanzi Studio 导出语言环境包时,它会根据所包含资源的语言环境命名 kzb 文件。每个语言环境包文件仅包含该语言环境使用的资源。

    • 创建包含整个 Kanzi Studio 项目的主 kzb 文件,但不包括您在本地化表中标记为语言环境包的语言环境资源。

    • 将语言环境包 kzb 文件存储在 <ProjectName>/Application/bin/Locale_packs 目录中,或存储在您在 Project > Properties 中指定位置的 Locale_packs 目录中,在 Binary Export Directory 属性中。

    ../../_images/export-kzb-binary.png

另请参阅

本地化应用程序

使用 locales

使用别名

使用 styles

导入字体

属性类型