Fixed: Replacing 'appName' translation token

(cherry picked from commit 2e51b8792db0d3ec402672dc92c95f3cb886ef44)

Closes #4284
This commit is contained in:
Stevie Robinson 2023-11-10 01:00:54 +01:00 committed by Bogdan
parent 7d38336bb5
commit a53cefec51
1 changed files with 9 additions and 11 deletions

View File

@ -25,20 +25,18 @@ export async function fetchTranslations(): Promise<boolean> {
export default function translate( export default function translate(
key: string, key: string,
tokens: Record<string, string | number | boolean> = { appName: 'Lidarr' } tokens: Record<string, string | number | boolean> = {}
) { ) {
const translation = translations[key] || key; const translation = translations[key] || key;
if (tokens) { tokens.appName = 'Lidarr';
// Fallback to the old behaviour for translations not yet updated to use named tokens
Object.values(tokens).forEach((value, index) => {
tokens[index] = value;
});
return translation.replace(/\{([a-z0-9]+?)\}/gi, (match, tokenMatch) => // Fallback to the old behaviour for translations not yet updated to use named tokens
String(tokens[tokenMatch] ?? match) Object.values(tokens).forEach((value, index) => {
); tokens[index] = value;
} });
return translation; return translation.replace(/\{([a-z0-9]+?)\}/gi, (match, tokenMatch) =>
String(tokens[tokenMatch] ?? match)
);
} }