【问题标题】:How can you sort / order angular material dropdown after localization本地化后如何对角材料下拉列表进行排序/排序
【发布时间】: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


    【解决方案1】:

    尝试从您的控制器执行 i18n 转换。 就个人而言,我用过https://github.com/ngx-translate/core;加载带有转换的 JSON 文件并使用 ES6 的数组函数(find/foreach)。

    【讨论】:

      猜你喜欢
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2021-07-03
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多