如何在Angular 5中加载语言环境

时间:2018-03-08 07:36:58

标签: angular internationalization

我使用NgLocaleLocalization,它是Angular中i18n代码的一部分。从Angular 4转到5我现在需要做这样的事情,详见docs

import { registerLocaleData } from '@angular/common';
import localeFr from '@angular/common/locales/fr';

// the second parameter 'fr' is optional
registerLocaleData(localeFr, 'fr');

哪种语言很棒。我有更多(大约50)。

这是一种明智的方法吗?:

import locale_ar from "@angular/common/locales/ar";
import locale_bg from "@angular/common/locales/bg";
import locale_cs from "@angular/common/locales/cs";
import locale_da from "@angular/common/locales/da";
// around 45 more import statements
import locale_sv from "@angular/common/locales/sv";


const locales: [string, (string | number | string[] | string[][] | number[] | ((n: number) => number))[]][] = [
    ["ar", locale_ar], ["bg", locale_bg], ["cs", locale_cs], ["da", locale_da],
    // around 45 more items here
    ["sv-SE", locale_sv]
];

(() => {
    for (const locale of locales) {
        registerLocaleData(locale[1], locale[0]);
    }
})();

在我看来,这看起来有点疯狂。 但这是正确的做法吗?

另外,是否有任何理由我应该推迟调用registerLocaleData,直到我知道我需要它或者是否可以立即在这里注册它们?

如果我推迟注册,我是否需要跟踪以便我不进行双重注册?

0 个答案:

没有答案