Power BI 服务加载的每个报表都使用标识语言的用户上下文和被称为区域设置的地理区域进行初始化。 在大多数情况下,区域设置标识国家/地区。 Power BI 服务使用区域性名称跟踪用户语言和区域设置的组合。
区域性名称通常是小写语言标识符和用连字符分隔的大写区域设置标识符。 区域性名称 en-US
标识在美国说英语的用户。 es-ES
的区域性名称标识在西班牙说西班牙语的用户。 fr-FR
的区域性名称标识在法国说法语的用户。 de-DE
的区域性名称标识在德国说德语的用户。
USERCULTURE | 语言 | Locale |
---|---|---|
zh-CN | 英语 | 美国 |
es-ES | 西班牙语 | 西班牙 |
fr-FR | 法语 | 法国 |
de-DE | 德语 | 德国 |
注意
在某些情况下,区域性名称还包括其他信息。 例如,塞尔维亚语有两个不同的区域性名称,即 sr-Cyrl-RS
和 sr-Latn-RS
。 中间部分称为脚本 (Cyrl 和 Latn),指示是使用西里尔文字母还是拉丁字母。 有关详细信息,请参阅 RFC 4646。
有关区域性名称值的列表,请参阅 ISO 639 语言代码和联机浏览平台。
组织元数据翻译项目
在涉及使用元数据转换创建新的 Power BI 语义模型的项目开始时,列出计划支持的区域性名称。 接下来,通过为每个区域性名称添加元数据转换来扩展语义模型。
下图显示了默认语言设置为 en-US
的语义模型。 语义模型已使用其他三个区域性名称的元数据转换进行了扩展:es-ES
、fr-FR
和 de-DE
。
每个元数据转换都与特定的区域性名称相关联。 区域性名称充当查找键,用于在 Power BI 语义模型的上下文中添加和检索元数据转换。
无需为语义模型的默认语言提供元数据转换。 Power BI 可以直接将语义模型对象名称用于该区域性名称。 考虑这一点的一种方法是,语义模型对象名称充当默认语言的一组虚拟元数据转换。
可以显式添加默认语言的元数据翻译。 请谨慎使用此方法。 Power BI Desktop 不支持在其报表设计器中加载元数据翻译。 相反,Power BI Desktop 只加载语义模型对象名称。 如果显式添加默认语言的元数据翻译,Power BI 报表在 Power BI Desktop 中看起来与在 Power BI 服务中不同。
在 Power BI 中加载报表
当用户使用 HTTP GET 请求导航到 Power BI 报表时,浏览器会传输名为 Accept-Language
的 HTTP 标头,并将值设置为有效的区域性名称。 以下屏幕截图显示了传输 Accept-Language
标头值的 en-US
GET 请求。
当 Power BI 服务加载报表时,它会读取在标头中Accept-Language
传递的区域性名称,并使用它初始化报表加载上下文的语言和区域设置。 在其设备上,用户可以通过配置区域设置来控制在标头值中 Accept-Language
传递的区域性名称。
在 Power BI 服务 中打开 Power BI 报表时,可以通过在报表 URL 末尾添加 language
参数并将其值设置为有效的区域性名称来替代 Accept-Language
标头值。 例如,可以通过将language
参数值设置为 fr-CA
来测试加载在加拿大说法语的用户的报告。
注意
将 language
参数添加到报告 URL 提供了一种在 Power BI 服务中测试元数据转换的便捷方法。 此方法不需要在本地计算机或浏览器中重新配置任何设置。
支持单个语言的多个区域设置
对于一种口语,可能需要支持多个区域设置。 考虑使用法语但居住在不同国家/地区(如法国、比利时和加拿大)的用户的方案。 发布一个语义模型,默认语言为 en-US
,另外三个区域性名称的元数据转换包括 es-ES
、fr-FR
和 de-DE
。
当讲法语的加拿大用户打开具有 Accept-Language 标头值为 fr-CA
的报表时会发生什么情况? Power BI 服务加载法语 (fr-FR
) 的转换,还是回退到英语语义模型对象名称上?
度量值目前的作用与 Power BI 中的表和列不同。 使用度量值,Power BI 服务尝试查找最接近的匹配项。 对于 fr-CA
区域性名称,将使用 fr-FR
的元数据翻译来加载度量值的名称。
对于表和列,Power BI 服务要求请求中的区域性名称与支持的元数据翻译完全匹配。 如果没有完全匹配项,则 Power BI 服务回退到加载语义模型对象名称。 在此方案中,将使用英语语义模型对象名称加载表和列的名称。
注意
使用表和列名称的默认语言是 Power BI 的一个已知问题。
建议为想要支持的任何区域性名称添加元数据翻译。 在此示例中,添加三组法语翻译以支持 fr-FR
、fr-BE
和 fr-CA
的区域性名称。 此方法适用于法国用户的法语翻译与加拿大用户的法语翻译不同的情况。
使用度量值和 USERCULTURE 实现翻译
Power BI 中有助于生成多语言报表的另一个功能是数据分析表达式 (DAX) USERCULTURE
函数。 在度量值内调用时,USERCULTURE
函数返回当前报表加载上下文的区域性名称。 通过此方法,可以在动态实现转换的度量值中编写 DAX 逻辑。
可以通过在度量值中调用 USERCULTURE
来动态实现转换,但不能使用计算表或计算列实现相同的结果。 计算表和计算列的 DAX 表达式在语义模型加载时计算。 如果在 DAX 表达式中为计算表或计算列调用 USERCULTURE
函数,它将返回语义模型默认语言的区域性名称。 在度量值中调用 USERCULTURE
将返回当前用户的区域性名称。
示例报表在 USERCULTURE
报表横幅的右上角显示返回值。 通常不会在实际应用程序中显示这样的报表元素。
此代码是为实现动态转换的度量值编写 DAX 表达式的简单示例。 可以使用调用 USERCULTURE
的 SWITCH
语句来形成实现动态转换的基本模式。
Product Sales Report Label = SWITCH( USERCULTURE() ),
"es-ES", "Informe De Ventas De Productos",
"fr-FR", "Rapport Sur Les Ventes De Produits",
"fr-BE", "Rapport Sur Les Ventes De Produits",
"fr-CA", "Rapport Sur Les Ventes De Produits",
"de-DE", "Produktverkaufsbericht",
"Product Sales Report"
)
有关详细信息,请参阅 Power BI Desktop 中的;了解 DAX 基本概念。
使用当前用户区域设置设置日期和数字的格式
可以通过使用基于用户区域性名称的条件逻辑在度量值中编写 DAX 表达式来动态转换。 在大多数情况下,不需要根据用户的区域设置编写条件 DAX 逻辑,因为 Power BI 视觉对象会在后台自动处理特定于区域设置的格式。
在一个简单的方案中,你为位于纽约 (en-US
) 和伦敦 (en-GB
) 的报表使用者受众生成报表。 所有用户都讲英语 (en
) ,但有些用户生活在不同的地区(US
和 GB
),日期和数字的格式不同。 例如,来自纽约的用户希望查看 mm/dd/yyyy
格式的日期,而来自伦敦的用户希望查看 dd/mm/yyyy
格式的日期。
如果使用支持区域格式格式的格式字符串配置列和度量值,则一切正常。 如果要设置日期格式,建议使用短日期或长日期等格式字符串,因为它们支持区域格式。
下面是使用短日期格式的日期值在不同区域设置下加载时的显示方式的几个示例。
Locale | Format |
---|---|
zh-CN | 12/31/2022 |
en-GB | 31/12/2022 |
pt-PT | 31-12-2022 |
de-DE | 31.12.2022 |
ja-JP | 2022/12/31 |