UNPKG

@keycloakify/keycloak-account-ui

Version:

<p align="center"> <img src="https://github.com/user-attachments/assets/e31c4910-7205-441c-9a35-e134b806b3a8"> </p> <p align="center"> <i>Repackaged Keycloak Account UI</i> <br> <br> <a href="https://github.com/keycloakify/keycloak-a

48 lines (38 loc) 1.36 kB
import { LanguageDetectorModule, createInstance } from "i18next"; import HttpBackend from "i18next-http-backend"; import { initReactI18next } from "react-i18next"; import { environment } from "@keycloakify/keycloak-account-ui/environment"; import { joinPath } from "@keycloakify/keycloak-account-ui/utils/joinPath"; const DEFAULT_LOCALE = "en"; type KeyValue = { key: string; value: string }; // This type is aliased to any, so that we can find all the places where we use it. // In the future all casts to this type should be removed from the code, so // that we can have a proper type-safe translation function. export type TFuncKey = any; export const keycloakLanguageDetector: LanguageDetectorModule = { type: "languageDetector", detect() { return environment.locale; }, }; export const i18n = createInstance({ fallbackLng: DEFAULT_LOCALE, interpolation: { escapeValue: false, }, backend: { loadPath: joinPath( environment.serverBaseUrl, `resources/${environment.realm}/account/{{lng}}`, ), parse: (data: string) => { const messages = JSON.parse(data); const result: Record<string, string> = {}; messages.forEach((v: KeyValue) => (result[v.key] = v.value)); return result; }, }, }); i18n.use(HttpBackend); i18n.use(keycloakLanguageDetector); i18n.use(initReactI18next);