web: add locale detection

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer
2021-10-01 14:06:32 +02:00
parent 3493d35af9
commit 1252c6b07d
6 changed files with 38 additions and 12 deletions

View File

@ -1,16 +1,20 @@
import { en } from "make-plural/plurals";
import { en, fr } from "make-plural/plurals";
import { i18n } from "@lingui/core";
import { detect, fromUrl, fromStorage, fromNavigator } from "@lingui/detect-locale";
import { messages as localeEN } from "../locales/en";
import { messages as localeFR_FR } from "../locales/fr_FR";
import { messages as localeDEBUG } from "../locales/pseudo-LOCALE";
i18n.loadLocaleData("en", { plurals: en });
i18n.loadLocaleData("debug", { plurals: en });
i18n.loadLocaleData("fr_FR", { plurals: fr });
i18n.load("en", localeEN);
i18n.load("fr_FR", localeFR_FR);
i18n.load("debug", localeDEBUG);
i18n.activate("en");
if (window.location.search.includes("debugLocale")) {
i18n.activate("debug");
}
const DEFAULT_FALLBACK = () => "en";
const result = detect(fromUrl("lang"), fromStorage("lang"), fromNavigator(), DEFAULT_FALLBACK);
i18n.activate(result || DEFAULT_FALLBACK());