我正在使用i18n angular 7翻译我的应用程序,并且ICU表达式 select 遇到问题。问题是我希望条件能够识别并清空这样的值:animal: string
<div i18n="@@example>
{ animal, select, EMPTY { Cat } dog { Dog } other { Pig } }
</div>
我尝试使用
{ animal, select, undefined { Cat } dog { Dog } other { Pig } }
但是没有用
当动物是:
(空字符串,null或未定义)->翻译Cat
狗->翻译狗
其他->翻译猪
答案 0 :(得分:1)
不幸的是,对于选择的每种翻译情况,键似乎都是字符串,而不是表达式,因此您的undefined
被当作"undefined"
,而EMPTY
被当作"EMPTY"
。
作为解决方法,您可以将animal + ""
评估为选择条件。 undefined + "" === "undefined"
,并且在您选择的情况下将与"undefined"
相匹配:
{ animal + "", select, undefined { Cat } dog { Dog } other { Pig } }
也就是说,对于相同的结果,您可以将undefined
转换为您认为实际上不会出现在animal
变量中的任何字符串值:
{ animal === undefined? "geranium" : animal , select, geranium { Cat } dog { Dog } other { Pig } }