|
import English from './languages/Eng'; |
|
import Chinese from './languages/Zh'; |
|
import Italy from './languages/It'; |
|
import Portuguese from './languages/Br'; |
|
import Spanish from './languages/Es'; |
|
|
|
|
|
|
|
|
|
interface String { |
|
format(...replacements: string[]): string; |
|
} |
|
|
|
if (!String.prototype.format) { |
|
String.prototype.format = function () { |
|
var args = arguments; |
|
return this.replace(/{(\d+)}/g, function (match, number) { |
|
return typeof args[number] != 'undefined' ? args[number] : match; |
|
}); |
|
}; |
|
} |
|
|
|
|
|
|
|
export const getTranslations = (langCode: string) => { |
|
if (langCode === 'en') { |
|
return English; |
|
} |
|
if (langCode === 'cn') { |
|
return Chinese; |
|
} |
|
if (langCode === 'it') { |
|
return Italy; |
|
} |
|
if (langCode === 'Br') { |
|
return Portuguese; |
|
} |
|
if (langCode === 'Es') { |
|
return Spanish; |
|
} |
|
|
|
return English; |
|
}; |
|
|
|
|
|
|
|
export const localize = (langCode: string, phraseKey: string, ...values: string[]) => { |
|
const lang = getTranslations(langCode); |
|
if (phraseKey in lang) { |
|
return lang[phraseKey].format(...values); |
|
} |
|
|
|
if (phraseKey in English) { |
|
|
|
return English[phraseKey].format(...values); |
|
} |
|
|
|
|
|
return ''; |
|
}; |