mirror of
https://github.com/Radarr/Radarr.git
synced 2026-04-23 22:25:14 -04:00
ed5c063127
(cherry picked from commit 73c5ec1da4dd00301e1b0dddbcea37590a99b045)
40 lines
827 B
TypeScript
40 lines
827 B
TypeScript
import createAjaxRequest from 'Utilities/createAjaxRequest';
|
|
|
|
function getTranslations() {
|
|
return createAjaxRequest({
|
|
global: false,
|
|
dataType: 'json',
|
|
url: '/localization',
|
|
}).request;
|
|
}
|
|
|
|
let translations: Record<string, string> = {};
|
|
|
|
export async function fetchTranslations(): Promise<boolean> {
|
|
return new Promise(async (resolve) => {
|
|
try {
|
|
const data = await getTranslations();
|
|
translations = data.Strings;
|
|
|
|
resolve(true);
|
|
} catch (error) {
|
|
resolve(false);
|
|
}
|
|
});
|
|
}
|
|
|
|
export default function translate(
|
|
key: string,
|
|
args?: (string | number | boolean)[]
|
|
) {
|
|
const translation = translations[key] || key;
|
|
|
|
if (args) {
|
|
return translation.replace(/\{(\d+)\}/g, (match, index) => {
|
|
return String(args[index]) ?? match;
|
|
});
|
|
}
|
|
|
|
return translation;
|
|
}
|