将本地化标签表添加到 Power BI 报表

报表标签翻译提供与数据模型对象不直接关联的报表上的文本元素的本地化值。 报表标签的示例包括报表标题、节标题和按钮标题的文本值。 Power BI 不提供用于跟踪或集成报表标签的内置功能。 Translations Builder 使用“本地化标签”表为此方法提供支持。

注意

如果你尚未安装 Translations Builder,请参阅使用 Translations Builder 创建多语言报表

比较本地化标签和硬编码文本

生成多语言报表时,应避免使用一些通过 Power BI Desktop 生成数据模型和报表的设计方法。 由于缺少本地化支持,这些元素会导致问题:

  • 使用带有硬编码文本值的文本框或按钮。
  • 为视觉对象的标题添加硬编码文本值。
  • 向用户显示页面选项卡。

添加到报表布局的任何硬编码文本值无法进行本地化。 假设向报表添加柱形图。 默认情况下,笛卡尔视觉对象(如柱形图)会为其“标题”属性分配一个动态值。 该值基于已添加到数据角色中的列和度量值的名称,例如“轴”、“图例”和“值”。

Screenshot shows a report visual with its generated title highlighted.

笛卡尔视觉对象的默认“标题”属性以支持本地化的方式动态解析在一起。 只要为基础数据模型定义中的列和度量值的名称提供元数据翻译,视觉对象的“标题”属性就会使用此翻译。 因此,如果翻译“Sales Revenue”、“Day”和“Year”,视觉对象将创建本地化标题。

下表显示了如何针对五种语言中的每一种更新此视觉对象的默认“标题”属性。

语言 视觉对象标题
英语 (en-US) Sales Revenue by Day and Year
西班牙语 (es-ES) Ingresos Por Ventas por Día y Año
法语 (fr-FR) Chiffre D'Affaires par Jour et Année
德语 (de-DE) Umsatz nach Tag und Jahr

你可能不喜欢动态生成的视觉对象“标题”,但请勿将其替换为硬编码文本。 “标题”属性的任何硬编码文本都无法本地化。 保留视觉对象“标题”属性的默认值,或使用“本地化标签”表策略创建支持本地化的报表标签。

使用本地化标签表策略

Power BI 本地化功能在数据模型级别受支持,但在报表布局级别不受支持。 使用“本地化标签”表基于以下事实:Power BI 支持特定类型的数据模型对象(包括度量值)的元数据转换。 使用 Translations Builder 添加报表标签时,它会自动向后台的“本地化标签”表添加新度量值。

为每个报表标签创建度量值后,Power BI 可以采用与元数据翻译相同的方式存储和管理其翻译。 事实上,“本地化标签”表策略使用元数据转换来实现报表标签翻译。

Translations Builder 将创建“本地化标签”表,并在每次需要报表标签时添加一个度量值。 “本地化标签”表创建为隐藏表。 你可以在 Translation Builder 用户体验中完成创建和管理报表标签的所有工作。 无需使用 Power BI Desktop 模型或数据视图检查或修改“本地化标签”表。

下面是示例项目中的“本地化标签”表的示例。 它为整个报表中使用的导航按钮提供报表标题、视觉对象标题和标题的本地化报表标签。

Screenshot shows the Localized Labels table.

创建本地化标签表

你可以为 .pbix 项目创建“本地化标签”表:

  1. 从“生成已翻译的表”菜单中,选择“创建本地化标签表”。

    Screenshot shows Translations Builder with the Create Localized Labels Table selected.

  2. 系统会弹出一个信息对话框,询问你是否需要有关“本地化标签”表策略的详细信息。 选择“是”查看文档,或选择“否”继续下一步。

创建“本地化标签”表后,将有三个示例报表标签,如以下屏幕截图所示。 在大多数情况下,需要删除这些示例报表标签,并将其替换为当前项目所需的实际报表标签。

Screenshot shows the localized labels entries in the Name column.

无需与 Power BI Desktop 中的“本地化标签”表交互。 你可以在 Translations Builder 中添加和管理所需的任何报表标签。

填充本地化标签表

若要创建第一个报表标签,请执行以下步骤:

  1. 从“生成已翻译的表”菜单中,选择“向本地化标签表添加标签”。 还可以使用快捷键 Ctrl+A 运行命令。

    Screenshot shows Translations Builder with Add Labels to Localized Labels Table selected.

  2. 通过键入标签的文本,一次添加一个报表标签。 然后选择“添加标签”。

    Screenshot shows the Add Localized Labels dialog box with the label Product Sales Report.

    或者选择“高级模式”,批量添加标签。

    Screenshot shows the Add Localized Labels dialog box with Advanced Mode selected.

将报表标签添加到 .pbix 项目后,这些标签将显示在翻译网格中。 现在,你可以添加和编辑本地化标签翻译,就像翻译网格中的任何其他类型的翻译一样。

Screenshot shows the Translations Builder grid with the report labels added.

关于本地化标签表

Translations Builder 仅使用“报表视图”中未隐藏的数据模型对象填充翻译网格。 “本地化标签”表中的度量值在“报表视图”中隐藏,它们是排除隐藏对象在翻译网格中显示的规则的一个例外。

在“本地化标签”表策略中,可以在保存表、列和度量值名称的元数据翻译的同一 .pbix 项目文件中创建、管理和存储报表标签。 “本地化标签”表策略可以在翻译网格中的统一体验中将元数据翻译与报表标签翻译合并在一起。 编辑翻译或使用 Translations Builder 功能生成机器翻译时,无需区分元数据翻译和报表标签翻译。

还有其他常用的本地化方法用于在单独的 CSV 文件中跟踪报表标签翻译。 虽然这些方法可以正常使用,但并不那么精简。 报表标签翻译必须单独创建,其管理方式与 .pbix 项目中的元数据翻译不同。 此策略允许将报表标签翻译和元数据翻译存储在一起,并采用相同的方式进行管理。

生成已翻译的本地化标签表

“本地化标签”表包含一个度量值,其中包含 .pbix 项目中每个报表标签的翻译。 “本地化标签”表中的度量值是隐藏的,目的是避免报表作者直接使用。 此策略基于运行代码来生成第二个表。 “已翻译的本地化标签”表中包含的度量值可以直接在报表页上使用。

若要创建“已翻译的本地化标签”表,请执行以下步骤。

  • 在 Translations Builder 的“生成已翻译的表”菜单中,选择“生成已翻译的本地化标签表”。

    Screenshot shows Translations Builder with Generate Translated Localized Labels Table selected.

首次生成“已翻译的本地化标签”表时,Translations Builder 会创建该表并使用度量值填充表。 再次生成表时将删除“已翻译的本地化标签”表中的所有度量值并重新创建它们。 此操作将同步“本地化标签”表和“已翻译的本地化标签”表之间的所有报表标签翻译。

Screenshot shows the Localized Labels table mapped to the Translated Localized Labels table.

与“本地化标签”表不同,“已翻译的本地化标签”表在“报表视图”中不会隐藏。 该表提供的度量值用作报表中的报表标签。 下面是当报表位于 Power BI Desktop 的“报表视图”中时,“已翻译的本地化标签”表在“数据”窗格中向报表作者显示的方式。

Screenshot shows the Data pane with the Translated Localized Labels field selected.

“已翻译的本地化标签”表中的每个度量值都有一个以“标签”一词结尾的名称。 原因是同一数据模型中的两个度量值不能具有相同的名称。 度量值名称在项目范围内必须是唯一的。 无法在“已翻译的本地化标签”表中创建与“本地化标签”表中的度量值同名的度量值。

如果检查“已翻译的本地化标签”表中度量值的计算机生成的数据分析表达式 (DAX),则它们基于使用度量值和 USERCULTURE 实现翻译中显示的相同 DAX 模式。 此模式将 DAX 函数 USERCULTURESWITCH 函数配合使用,为当前用户返回最适合的翻译。 如果未找到匹配项,则此 DAX 模式默认为数据模型的默认语言。

Screenshot shows Product Sales Report Label derived from a SWITCH command in a DAX expression.

每次对“本地化标签表”进行更改时,都必须运行“生成已翻译的本地化标签表”。

请勿在“已翻译的本地化标签”表中编辑度量值的 DAX 表达式。 你所做的任何编辑都将丢失,因为每次生成表时,都会删除并重新创建此表中的所有度量值。

在报表页上显示本地化标签

报表标签在“已翻译的本地化标签”表中作为动态度量值实现。 因此它们在 Power BI 报表中易于显示。 例如,可以将卡片视觉对象添加到报表,然后使用“已翻译的本地化标签”表中的度量值在“可视化效果”窗格中配置其“数据”角色。

Screenshot shows a card visual with a translated localized label.

示例多语言项目使用“矩形”形状显示报表标题的本地化报表标签。 以下屏幕截图显示如何选择一个“矩形”形状,然后导航到“格式”窗格的“形状”>“文本”部分中配置其“文本”属性值。

Screenshot shows the text box for a rectangle.

可以使用硬编码字符串配置形状的“文本”属性。 创建多语言报表时,必须避免将文本值硬编码到报表布局中。 若要使用本地化度量值,请执行以下步骤。

  1. 在 Power BI Desktop 中,选择形状(本例中为“矩形”)。

  2. 在“格式”下,选择“形状”>“文本”。 在“文本”窗格中,选择 fx 按钮。

    Screenshot shows the function button next to the text box for this rectangle.

    Power BI Desktop 会显示一个对话框,用于配置“矩形”形状的“文本”属性。

  3. 在“文本 - 样式 - 文本”对话框中,展开“已翻译的本地化标签”表并选择任意度量值。

    Screenshot shows the Text - Style - Text dialog box with the Product Sales Report Label field selected.

  4. 选择“确定”

可以使用同一方法通过“已翻译的本地化标签”表中的度量值来本地化视觉对象“标题”。