界面多语言设置
– 本实例是将英文转为中文,其他的可以灵活发挥–
方案一:自定义翻译
一、数据源
-
excel
-
表结构
LanguageTag LocalizedText TextId zh-cn 主页 header_home -
LanguageTag:区域标识(要翻译的语言);LocalizedText:翻译好的内容;TextId:文本标签id号
将excel转成数据表结构
更改表名为staticLocalizations(自定义的)
-
-
将excel导入canvas app
二、使用
-
添加转换器(Toggle),当然也可以添加下拉框(Drop down),代码相应修改即可
-
OnSelect
-
If( Self.Value, Set(gblUserLanguage,"zh-cn"), Set(gblUserLanguage,Blank()) ); ClearCollect( colLocalization, Filter( staticLocalizations, LanguageTag = gblUserLanguage ) );
-
-
-
在需要翻译的文本(Text)属性里
-
With( { varDefault: "Home", varTextId: "header_home" }, With( { varLocalizationText: LookUp( colLocalization, TextId = varTextId, LocalizedText ) }, Coalesce( varLocalizationText, varDefault ) ) )
-
方案二:使用自带的翻译API
-
官方文档(有些没有即使更新):https://docs.microsoft.com/zh-cn/powerapps/maker/canvas-apps/connections/connection-microsoft-translator
-
添加连接
-
在需要翻译的文本(Text)属性里
-
With( {varDefault: "Home"}, With( { varLocalizationText: If( Toggle1.Value, MicrosoftTranslator.Translate( varDefault, 'zh-CN' ) ) }, Coalesce( varLocalizationText, varDefault ) ) )
-
总结
- 使用API免去制作数据源的麻烦,但是机翻的效果一般
- 性能方面:个人认为自定义的会好些
- 结合使用更好,先用API,再用自定义的翻译调整不合适的位置