Как я могу вернуться к исходному языку в переводе на Angular 6?

В настоящее время я работаю над проектом, в котором мы используем функцию перевода i18n в настройке JIT и переключаемся между различными языками, устанавливая параметр lang в localStorage, который работает как charm, кстати, и дает пользователю возможность квазидинамического переключения язык приложения.

Однако, если я хочу вернуться к исходному языку, я немного SOL. Простое использование непереведенного файла messages.xlf или переключение LOCALE_ID обратно на пустой, неопределенный или "en" (если это был исходный язык) вызывает только те ошибки, в которых angular пропускает перевод, то есть часть перевода файл. Но, поскольку это только исходный язык, перевода нет (плохой, плохой, постыдный, дурачок!), И я действительно чувствую, что простое повторение строки и переименование ее в получит работу выполнено, но, что касается обходных путей, это просто немного перегружено.

Вот соответствующая часть кода из main.ts:

import { enableProdMode, TRANSLATIONS, TRANSLATIONS_FORMAT } from '@angular/core';

...

if (environment.production) {
  enableProdMode();
}

const lang = window.localStorage.getItem("lang") || "nl";

declare const require;
const translations = {
  "": require(`raw-loader!./assets/locale/messages.xlf`),
  "nl": require(`raw-loader!./assets/locale/messages.nl.xlf`),
  "fr": require(`raw-loader!./assets/locale/messages.fr.xlf`)
};

platformBrowserDynamic()
  .bootstrapModule(AppModule, {
    providers: [
      {provide: TRANSLATIONS, useValue: translations[lang]},
      {provide: TRANSLATIONS_FORMAT, useValue: 'xlf'}
    ]
  })
  .catch(err => console.log(err));

0 ответов

Другие вопросы по тегам