适用于: 画布应用
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”), 并滚动浏览为第二个参数建议的区域设置列表。
Text 和 Value 函数也使用语言标记。 这些函数可基于全球化考虑来回转换文本字符串。 将语言标记传递给这些函数时,区域不会有所作为,只需使用标记的语言部分即可。
语法
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,因为翻译人员可以轻松编辑和管理应用外部。
在 Excel 中创建下面的表︰
如果没有为给定语言找到特定文本字符串,则列的Language空白条目将用作默认值。 这个条目放在指定 TextID 的所有其他条目后。
对我们而言,只需要查看区域设置(而不是区域)的语言。 如果区域注意事项很重要,我们可以在上表中包括完整的语言标记值。
使用插入功能区中的 Table 命令,将其设置为正确的 Excel 表。 默认情况下,它名为 Table1 ,但你可以使用 表工具/设计 功能区和 表名称: 最左侧的文本框命名它。
将 Excel 文件保存到本地文件系统。
在 Power Apps 的右侧窗格中,单击或点击 “数据源 ”选项卡,然后单击或点击“ 添加数据源”。
单击或点击 “向应用添加静态数据”、“单击”或点击保存的 Excel 文件,然后单击或点击“ 打开”。
选择创建的表,然后单击或点击 “连接”。
在应用中,无论在何处使用文本 “Hello” ,请改用以下公式:
- LookUp( Table1, TextID = “Hello” && && (LanguageTag = Left( Language), 2 ) ||IsBlank(LanguageTag))。LocalizedText
此公式将查找用户语言的相应 LocalizedText 值,如果未找到,则会回退到默认 空白 版本。
其他语言的翻译字符串可能比语言中的字符串长。 在许多情况下,需要在用户界面中显示字符串的标签和其他元素范围更广才能容纳。
翻译服务
您可以根据需要使用翻译服务(如 Microsoft Translator 服务)来翻译文本:
- 在 Power Apps 中,在右侧窗格中,单击或点击数据源选项卡,然后单击或点击添加数据源。
- 单击或点击 Microsoft Translator。
在应用中之前使用过 "Hello" 的所有位置,现在使用以下公式:
- MicrosoftTranslator.Translate(“Hello”, Language()
Microsoft Translator 服务使用函数返回的相同语言标记 Language 。
与使用预先转换的文本字符串表的上一个示例相比,此方法有一些缺点:
- 翻译需要一段时间才能完成,需要通过网络调用服务。 这会导致在应用中查看翻译的文本时出现延迟。
- 翻译是机械的,可能不是你预期或最适合应用中的情况。