Fix and improve language handling
- Refactor plugs to detect and set language - Translate ecto validation errors - Use Gettext directly, not Mobilizon.Web.Gettext - Set the language in the <html> attribute according to the one loaded on front-end Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -39,9 +39,19 @@ const loadedLanguages = [DEFAULT_LOCALE];
|
||||
|
||||
function setI18nLanguage(lang: string): string {
|
||||
i18n.locale = lang;
|
||||
setLanguageInDOM(lang);
|
||||
return lang;
|
||||
}
|
||||
|
||||
function setLanguageInDOM(lang: string): void {
|
||||
const fixedLang = lang.replaceAll("_", "-");
|
||||
const html = document.documentElement;
|
||||
const documentLang = html.getAttribute("lang");
|
||||
if (documentLang !== fixedLang) {
|
||||
html.setAttribute("lang", fixedLang);
|
||||
}
|
||||
}
|
||||
|
||||
function fileForLanguage(matches: Record<string, string>, lang: string) {
|
||||
if (Object.prototype.hasOwnProperty.call(matches, lang)) {
|
||||
return matches[lang];
|
||||
|
||||
Reference in New Issue
Block a user