【发布时间】:2019-08-26 13:01:12
【问题描述】:
我正在开发一个使用 angular i18n 进行本地化的 UI。我的问题是枚举生成的下拉列表。我不知道如何根据手头的语言按字母顺序排列它们。
我尝试使用一些管道,但似乎它们是在应用翻译之前执行的。我也尝试在 xlf 中更改顺序,但没有任何运气。
有没有办法直接从组件运行本地化,所以我会在组件中拥有本地化的字符串,我可以在将它们发送到表单之前按照我的意愿对它们进行排序?还是有其他方法可以做这种事情?
模板:
<mat-label i18n="@@dropdown-id">This is test</mat-label>
<mat-select id="dropdown" formControlName="dropdown"required>
<mat-option *ngFor="let enum of enums | enumToArray | slice:1" [value]="enum.key" i18n="@@values-id"> {enum.value, select, apple {Apple} banana {Banana} cucumber {Cucumber}}
</mat-option>
</mat-select>
messages.fi.xlf(芬兰语本地化):
<source>
<x id="ICU" equiv-text="{enum.value, select, apple {...} banana {...} cucumber {...}}"/>
</source>
<target state="final">
<x id="ICU" equiv-text="{enum.value, select, apple {...} banana {...} cucumber {...}}"/>
</target>
<source>
{VAR_SELECT, select, apple {Apple} banana {Banana} cucumber {Cucumber} }
</source>
<target state="final">
{VAR_SELECT, select, apple {Omena} banana {Banaani} cucumber {Kurkku} }
</target>
非常感谢任何解决此问题的提示!
【问题讨论】:
标签: angular internationalization