Language 函数

适用于: 画布应用 Copilot Studio Desktop 流 Power Platform CLI Dataverse 函数 Power Pages

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

描述

Language 函数将当前用户的语言、脚本和区域作为语言标记返回。

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

Language 标签

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

返回值 描述
lg-RE lg 是语言的双字符缩写, RE 是区域的双字符缩写。 这是最常见的返回类型。 例如,为英国返回“en-GB”。
LG LG 是该语言的双字符缩写。 它是 Power Apps 具有有关语言的信息但没有特定区域的信息时使用的格式。
lg-scrp-RE lg 是语言的双字符缩写, scrp 是脚本的四字符缩写, 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 中创建下面的表︰

    本地化表。

    如果没有为给定语言找到特定文本字符串,则列的Language空白条目将用作默认值。 这个条目放在指定 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

与使用预先转换的文本字符串表的上一个示例相比,此方法有一些缺点:

  • 翻译需要一段时间才能完成,需要通过网络调用服务。 这会导致在应用中查看翻译的文本时出现延迟。
  • 翻译是机械的,可能不是你预期或最适合应用中的情况。