PowerApps应用翻译咨询:将休假申请模板转为瑞典语
嘿Perry,刚好之前帮团队处理过PowerApps模板的多语言适配,完全懂你不想碰底层变量、只想改显示文本的需求!给你几个高效的方案,尤其是解决集合翻译的痛点:
方案1:集中式资源文件管理(最推荐,适合长期维护)
这是PowerApps官方推崇的多语言方案,能把所有需要翻译的内容集中管理,后续修改或加新语言都超级方便:
- 第一步:创建翻译资源库
可以用Excel表或者直接在PowerApps里创建一个集合,列名设为OriginalText(原英文文本)和SwedishText(瑞典语翻译),把所有需要翻译的内容都填进去——包括你提到的集合里的"Bereavement",比如:
把这段代码放在App的ClearCollect(colTranslations, {OriginalText:"Bereavement", SwedishText:"Sorgledighet"}, {OriginalText:"Annual Leave", SwedishText:"Årsledighet"}, {OriginalText:"Submit Request", SwedishText:"Skicka begäran"}, {OriginalText:"Leave Request", SwedishText:"Ledighetsbegäran"} )OnStart属性里,加载翻译资源。 - 第二步:替换所有控件的显示文本
把原来控件的Text属性,比如按钮的"Submit Request",替换成:LookUp(colTranslations, OriginalText = "Submit Request", SwedishText) - 第三步:处理集合的显示
不用修改原集合的底层逻辑值(比如用来判断休假类型的英文键),只需要在显示层做转换:
比如原集合是ClearCollect(colLeaveTypes, "Annual", "Bereavement", "Sick"),你可以在下拉框的Items属性里改成:
然后把下拉框的ForAll(colLeaveTypes, { Value: ThisValue, // 保留原英文值,不影响底层逻辑 DisplayText: LookUp(colTranslations, OriginalText = ThisValue, SwedishText) } )DisplayFields设为["DisplayText"],Value设为"Value"——这样用户看到的是瑞典语,后台逻辑还是用原来的英文值,完全不用改公式!
方案2:全局变量快速替换(适合小型应用,快速落地)
如果你的应用不大,不想搞资源文件,可以直接在App的OnStart里定义全局翻译变量:
Set(varLang, "sv"); // 设置当前语言为瑞典语 Set(varBereavement, If(varLang="sv", "Sorgledighet", "Bereavement")); Set(varSubmitBtn, If(varLang="sv", "Skicka begäran", "Submit Request")); Set(varLeaveTitle, If(varLang="sv", "Ledighetsbegäran", "Leave Request"));
然后控件的Text直接用对应的变量,比如按钮Text设为varSubmitBtn,集合显示的时候用varBereavement——同样不碰底层变量,只改显示层。
方案3:集合显示层动态翻译(零改动原集合)
如果你连原集合的创建公式都不想碰,直接在显示控件里用Switch函数做动态翻译:
比如下拉框的Items属性改成:
ForAll(colLeaveTypes, { Value: ThisValue, DisplayText: Switch( ThisValue, "Bereavement", "Sorgledighet", "Annual", "Årsledighet", "Sick", "Sjukledighet", ThisValue // 兜底,防止漏翻译 ) } )
同样设置下拉框的DisplayFields和Value,完美实现显示瑞典语、底层用原英文的需求。
小提示:
- 所有公式里的提示文本(比如
Notify("Request submitted")),同样用LookUp(colTranslations, OriginalText="Request submitted", SwedishText)替换,保持全应用语言一致 - 绝对不要修改底层变量名、集合的逻辑值(比如用来判断审批状态的英文键),只改显示层的Text属性或DisplayText字段,完全不会影响原有功能
内容的提问来源于stack exchange,提问作者Perry J
相关产品推荐
相关产品推荐

