Language 函数

适用于:画布应用桌面流 Power Platform CLI

返回当前用户的语言标记。

描述

Language 函数可使用语言标记的形式返回当前用户的语言、脚本或区域。

使用不同区域设置的语言信息定制应用。 例如,如果您正在创建要在意大利和法国使用的应用,可以使用 Language 函数自动向位于这些不同位置的用户显示意大利语和法语字符串。

语言标记

语言标记可以是下面三种格式之一:

返回值 说明
"lg‑RE" lg 是语言 (Language) 的两字符缩写形式,RE 是区域 (Region) 的两字符缩写形式。 这是最常见的返回类型。 例如,对于英国 (Great Britain),返回“en-GB”。
"lg" lg 是语言的两字符缩写形式。 如果 Power Apps 获得了语言信息,但没有特定区域信息,则使用此格式。
"lg‑scrp‑RE" lg 是语言的两字符缩写形式,scrp 是脚本 (Script) 的四字符缩写形式,RE 是区域的两字符缩写形式。

Power Apps 使用 IETF BCP-47 语言标记格式。

要查看支持的语言标记列表,请在公式栏或高级视图中输入 Value( "1", ),然后滚动查看建议作为第二个参数的值的区域设置列表。

TextValue 函数也使用语言标记。 这些函数可基于全球化考虑来回转换文本字符串。 将语言标记传递给这些函数时,如果区域没有区别,则只需使用标记的语言部分。

语法

Language()

示例

用户的区域设置

假设主机操作系统和/或浏览器正在使用当地的默认区域设置。

公式 Location 返回值
Language() 葡萄牙里斯本 “pt-PT”
Language() 巴西里约热内卢 “pt-BR”
Language() 美国亚特兰大 “en-US”
Language() 英国曼彻斯特 “en-GB”
Language() 法国巴黎 “fr-FR”
Language() 多米尼加罗索 “en”
Language() 塞尔维亚贝尔格莱德 “sr-cyrl-RS”或“sr-latn-RS”,具体取决于用户的系统设置

本地化表

实现本地化的一种简便方法是创建一个 Excel 电子表格,将作者定义的 TextID 映射到用户语言的翻译文本。 对于这个表,虽然也可以使用集合或其他数据源,但我们选择 Excel,因为这更便于翻译在应用外编辑和管理内容。

  1. 在 Excel 中创建下面的表︰

    本地化表。

    如果找不到指定语言的任何特定文本字符串,则使用空白作为语言列的默认值。 这个条目放在指定 TextID 的所有其他条目后。

    对我们而言,只需要查看区域设置(而不是区域)的语言。 如果区域因素很重要,我们可以在上面的表中包含完整的语言标记值。

  2. 使用插入功能区中的 Table 命令,将其设置为正确的 Excel 表。 默认情况下,其名称为 Table1,但随时可以使用最左侧的表工具/设计功能区和表名称:文本框对其重命名。

  3. 将 Excel 文件保存到本地文件系统。

  4. 在 Power Apps 中,在右侧窗格中,单击或点击数据源选项卡,然后单击或点击添加数据源

  5. 单击或点击将静态数据添加到应用,然后单击或点击保存的 Excel 文件,最后单击或点击打开

  6. 选择创建的表,然后单击或点击连接

在应用中之前使用过 "Hello" 的所有位置,现在使用以下公式:

  • LookUp( Table1, TextID = "Hello" && (LanguageTag = Left( Language(), 2 ) || IsBlank( LanguageTag ))).LocalizedText

这个公式用于查找用户语言的相应 LocalizedText 值,如果找不到,则恢复为默认的空白版本。

请注意,翻译为其他语言的字符串可能会显著长于用您的语言表示的字符串。 在很多情况下,要将在用户界面中显示字符串的标签和其他元素设计得稍宽一些,以便容纳较长的语言版本。

翻译服务

您可以根据需要使用翻译服务(如 Microsoft Translator 服务)来翻译文本:

  1. 在 Power Apps 中,在右侧窗格中,单击或点击数据源选项卡,然后单击或点击添加数据源
  2. 单击或点击 Microsoft Translator

在应用中之前使用过 "Hello" 的所有位置,现在使用以下公式:

  • MicrosoftTranslator.Translate( "Hello", Language() )

Microsoft Translator 服务使用与 Language 函数返回的相同语言标记。

跟之前使用文本字符串预翻译表的例子相比,这个方法有一些缺点:

  • 完成翻译比较耗时,需要通过网络调用服务才能实现。 这可能会导致在应用中查看翻译文本时出现延迟。
  • 翻译是机械式的,可能无法达到预期效果,或者对您的应用来说不是最佳选择。