2021-03-01 13:55:58 +01:00
|
|
|
|
|
|
|
import { useKeycloakLanguage } from "./useKeycloakLanguage";
|
|
|
|
import { messages } from "./generated_messages/login";
|
|
|
|
import { useConstCallback } from "powerhooks";
|
2021-03-01 20:45:37 +01:00
|
|
|
import type { ReactNode } from "react";
|
2021-03-01 13:55:58 +01:00
|
|
|
|
|
|
|
export type MessageKey = keyof typeof messages["en"]
|
|
|
|
|
|
|
|
|
|
|
|
export function useKeycloakThemeTranslation() {
|
|
|
|
|
|
|
|
const { keycloakLanguage } = useKeycloakLanguage();
|
|
|
|
|
|
|
|
const t = useConstCallback(
|
2021-03-01 20:45:37 +01:00
|
|
|
(key: MessageKey, ...args: (string | undefined)[]): ReactNode => {
|
2021-03-01 13:55:58 +01:00
|
|
|
|
|
|
|
let out: string = messages[keycloakLanguage as any as "en"][key] ?? messages["en"][key];
|
|
|
|
|
2021-03-01 20:45:37 +01:00
|
|
|
args.forEach((arg, i) => {
|
|
|
|
|
|
|
|
if (arg === undefined) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
out = out.replace(new RegExp(`\\{${i}\\}`, "g"), arg);
|
|
|
|
|
|
|
|
});
|
2021-03-01 13:55:58 +01:00
|
|
|
|
|
|
|
return <span className={key} dangerouslySetInnerHTML={{ "__html": out }} />;
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
return { t };
|
|
|
|
|
|
|
|
}
|