* adding Brazilian Portuguese translation; added a repository on Docker Hub to use in Umbrel — version ptbr jovaniojunior/kan-ptbr:latest * add notes to changelog.md * adjust pt-BR date format in date-fns * improve Portuguese integration across code functions and other small pt-BR tweaks * chore: gen missing translations --------- Co-authored-by: Henry <henry_ball@hotmail.co.uk>
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import { i18n } from "@lingui/core";
|
|
|
|
import type { Locale } from "~/locales";
|
|
import { defaultLocale } from "~/locales";
|
|
import { messages as enMessages } from "~/locales/en/messages";
|
|
|
|
const loadMessages = async (locale: Locale) => {
|
|
switch (locale) {
|
|
case "en":
|
|
return enMessages;
|
|
case "fr":
|
|
return (await import("~/locales/fr/messages")).messages;
|
|
case "de":
|
|
return (await import("~/locales/de/messages")).messages;
|
|
case "es":
|
|
return (await import("~/locales/es/messages")).messages;
|
|
case "it":
|
|
return (await import("~/locales/it/messages")).messages;
|
|
case "nl":
|
|
return (await import("~/locales/nl/messages")).messages;
|
|
case "ru":
|
|
return (await import("~/locales/ru/messages")).messages;
|
|
case "pl":
|
|
return (await import("~/locales/pl/messages")).messages;
|
|
case "ptbr":
|
|
return (await import("~/locales/ptbr/messages")).messages;
|
|
default:
|
|
return enMessages;
|
|
}
|
|
};
|
|
|
|
let isInitialized = false;
|
|
const loadedLocales = new Set<string>();
|
|
|
|
export function initializeI18n(locale: Locale = defaultLocale) {
|
|
if (!isInitialized) {
|
|
i18n.load(defaultLocale, enMessages);
|
|
i18n.activate(defaultLocale);
|
|
loadedLocales.add(defaultLocale);
|
|
isInitialized = true;
|
|
}
|
|
|
|
return i18n;
|
|
}
|
|
|
|
export async function activateLocale(locale: Locale) {
|
|
if (!loadedLocales.has(locale)) {
|
|
const messages = await loadMessages(locale);
|
|
i18n.load(locale, messages);
|
|
loadedLocales.add(locale);
|
|
}
|
|
|
|
i18n.activate(locale);
|
|
return i18n;
|
|
}
|
|
|
|
initializeI18n();
|
|
|
|
export { i18n };
|