Как я могу вернуться к исходному языку в переводе на 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));