今天分享一个比较特别的案例。
我们在工作中有时也能遇到在国内有业务的国外客户,这类客户对我们的表单设计有一个非常常见的需求——多语言支持。
非常合理但又没那么简单的一个需求😂。
但如果我们了解了Power Apps多语言切换的方法,那么其实这个需求也没有多难,我们想要实现应用内语言的切换主要可以用两种方法。
- 第一种方法:使用Power Apps自带的翻译能力
这种方法用起来非常简单,经过简单的配置即可使用,但缺点就是多少带点机翻味。
首先我们给表单合适的位置加一个选择语言的下拉框。
我就把这个下拉框加到右上角去了。
然后我们需要为表单添加一个数据源。
就是这个“微软翻译器”,我们就是用这个东西来实现自动翻译。
添加完数据源之后我们要在应用启动时新建一个变量,用来记录我们选择的语言。
这个变量就默认为“zh”了,默认中文嘛。
然后选择我们的语言选择下拉框,配置OnChange事件。
这一步其实就是在语言选择下拉框的值改变之后,将改变的值记录到“lang”变量中。
然后我们需要在每一个需要翻译的文本上,是的,每一个,手动添加上翻译函数。
MicrosoftTranslator.Translate 这个函数就可以帮助我们将指定文本翻译为指定语言。
在这里我们只需要用到这个函数的两个参数,就是待翻译文本和目标语言,目标语言我们已经用“lang”变量保存下来了,至于第一个待翻译文本,那就按需求填写了呗,如果是要翻译表单字段的名称可以直接写Parent.DisplayName。
这样配置好以后我们更改语言选择下拉框,就可以直接将特定部分的语言翻译成指定语言了。
这个方法用起来方便快捷,但就是如果咱们对翻译质量有较高要求,看不上机翻,咱就是得整人工翻译,翻个最合适的,那可以试试下边这个方法。
- 第二种方法:建一个翻译对照表,使用LookUp函数查询每个文本所对应的翻译
这种方法就没上一种那么简单快捷了,简单来说,这种方法就是人工建一个词典库,翻译的时候系统自动来这个词典库匹配对应的文本,这样的话我们可以把我们人工翻译的更合适的外语文本放到这个词典库里,翻译质量更好;缺点就是还要额外维护一个繁杂的词典库,肯定没有上一种方法用着方便。
首先,我们建表,这个词典库只需要三个字段即可,翻译所对应的语言、原文本、翻译后的文本。
建好表之后,我们把这个表也添加到表单的数据源。
然后在表单中添加一个选择语言的下拉框,以及一个记录所选语言的变量,这里跟上一种方法里讲的是一样的,这里不再赘述。
然后我们在要翻译的文本处设置LookUp函数。
这个语句就是在“翻译对照表”这个数据源中查找Key字段的值等于指定值,并且“语言代码”字段的值等于我们选择的语言那一行数据,将这行数据的Value字段返回回来。
Key字段其实就是待翻译文本,Value字段是翻译后的文本。
注意,虽然我们的待翻译文本本身就是中文,但还是要在表中设置对应的中文,不然的话当我们选择中文时,LookUp在表中会找不到对应的翻译;当然我们也可以设置当“lang”变量为zh时不使用LookUp函数,而是直接显示中文。
这样设置完成后我们也可以实现出翻译的效果。
---
欢迎加vx交流:vAfi_FeiFei