You've already forked tf2wikipricing
refactor: debuggable localization function
This commit is contained in:
@@ -1,32 +1,41 @@
|
||||
const localizations: {[lang: string]: any} = {
|
||||
import { logDebug } from "./log";
|
||||
|
||||
const localizations: Record<string, object> = {
|
||||
'en': require('../../strings/en'), // English
|
||||
'es': require('../../strings/es'), // Spanish
|
||||
'ja': require('../../strings/ja'), // Japanese
|
||||
'it': require('../../strings/it'), // Italian
|
||||
'ar': require('../../strings/ar') as object, // Arabic
|
||||
'cs': require('../../strings/cs') as object, // Czech
|
||||
'da': require('../../strings/da') as object, // Danish
|
||||
'de': require('../../strings/de') as object, // German
|
||||
'fi': require('../../strings/fi') as object, // Finnish
|
||||
'fr': require('../../strings/fr') as object, // French
|
||||
'hu': require('../../strings/hu') as object, // Hungarian
|
||||
'ko': require('../../strings/ko') as object, // Korean
|
||||
'nl': require('../../strings/nl') as object, // Dutch
|
||||
'no': require('../../strings/no') as object, // Norwegian Bokmål
|
||||
'pl': require('../../strings/pl') as object, // Polish
|
||||
'pt': require('../../strings/pt') as object, // Portuguese
|
||||
'pt-BR': require('../../strings/pt-BR') as object, // Brazilian Portuguese
|
||||
'ro': require('../../strings/ro') as object, // Romanian
|
||||
'ru': require('../../strings/ru') as object, // Russian
|
||||
'sv': require('../../strings/sv') as object, // Swedish
|
||||
'tr': require('../../strings/tr') as object, // Turkish
|
||||
'zh-Hans': require('../../strings/zh-Hans') as object, // Simplified Chinese
|
||||
'zh-Hant': require('../../strings/zh-Hant') as object, // Traditional Chinese
|
||||
'ar': require('../../strings/ar'), // Arabic
|
||||
'cs': require('../../strings/cs'), // Czech
|
||||
'da': require('../../strings/da'), // Danish
|
||||
'de': require('../../strings/de'), // German
|
||||
'fi': require('../../strings/fi'), // Finnish
|
||||
'fr': require('../../strings/fr'), // French
|
||||
'hu': require('../../strings/hu'), // Hungarian
|
||||
'ko': require('../../strings/ko'), // Korean
|
||||
'nl': require('../../strings/nl'), // Dutch
|
||||
'no': require('../../strings/no'), // Norwegian Bokmål
|
||||
'pl': require('../../strings/pl'), // Polish
|
||||
'pt': require('../../strings/pt'), // Portuguese
|
||||
'pt-BR': require('../../strings/pt-BR'), // Brazilian Portuguese
|
||||
'ro': require('../../strings/ro'), // Romanian
|
||||
'ru': require('../../strings/ru'), // Russian
|
||||
'sv': require('../../strings/sv'), // Swedish
|
||||
'tr': require('../../strings/tr'), // Turkish
|
||||
'zh-Hans': require('../../strings/zh-Hans'), // Simplified Chinese
|
||||
'zh-Hant': require('../../strings/zh-Hant'), // Traditional Chinese
|
||||
}
|
||||
|
||||
export function $T(s: string, locale?: Intl.LocalesArgument): string {
|
||||
const code = locale ? locale.toString() : extractLocaleFromURL(document.URL)
|
||||
return localizations.hasOwnProperty(code) ? (localizations[code as unknown as keyof object])[s] || s : s;
|
||||
if (code in localizations) {
|
||||
const translation = localizations[code] as Record<string, string>;
|
||||
const result = translation[s] ?? s;
|
||||
logDebug(`Translating "${s}" to locale "${code}": ${result}`);
|
||||
return result;
|
||||
}
|
||||
logDebug(`Untranslated string "${s}" in locale "${code}`);
|
||||
return s;
|
||||
}
|
||||
|
||||
export function extractLocaleFromURL(url: string): string {
|
||||
|
||||
Reference in New Issue
Block a user