Я разрабатываю многоязычное приложение с использованием React, i18next
и i18next-browser-languagedetector
.
Я инициализирую i18 следующим образом:
i18n
.use(LanguageDetector)
.init({
lng: localStorage.getItem(I18N_LANGUAGE) || "pt",
fallbackLng: "pt",
resources: {
en: stringsEn,
pt: stringsPt
},
detection: {
order: ["localStorage", "navigator"],
lookupQuerystring: "lng",
lookupLocalStorage: I18N_LANGUAGE,
caches: ["localStorage"]
}
});
export default i18n;
И я применил селектор языка, который просто изменяет значение в localStorage
на то, что выбрал пользователь.
Это правильный способ сделать это?
Я прошу, потому что, хотя это работает, я чувствую, что я "обманываю", установив localStorage.getItem(I18N_LANGUAGE) || "pt"
и что я не использую определение языка так, как должен.