语义UI:如何处理i18n

时间:2018-11-05 12:44:00

标签: jquery internationalization semantic-ui

我有一个下拉菜单,该下拉菜单具有特定于语言(i18n)的属性。

我目前的解决方案是:

$('.ui.dropdown').dropdown({
        fullTextSearch: true,
        match: "text"
    });

$('.ui.dropdown.de').dropdown({
        fullTextSearch: true,
        match: "text",
        message: {
            noResults: 'Keine Resultate gefunden.'
        }
    });

如您所见,我必须复制所有“非i18n”特定的属性!

使用语义UI的正确方法是什么。

1 个答案:

答案 0 :(得分:1)

您需要为所有应用程序实施某种i18n策略。这不是语义ui特有的。

一种简单的方法是保留一本包含所有句子的字典,并加载当前语言所需的句子。

示例:

const languages = {
  'en-US': {
    'noResults': 'No Results found.',
  },
  'de-DE': {
    'noResults' : 'Keine Resultate gefunden.',
  },
};

const i18n = languages[currentLanguage];

$('.ui.dropdown').dropdown({
      fullTextSearch: true,
      match: "text",
      message: {
          noResults: i18n[noResults],
      }
  });

还有一些库可以帮助您解决问题,例如http://airbnb.io/polyglot.js/