import { ILogger } from '@lenovo-software/lsa-clients-common'; export class LocalizeUtils { public static isLanguageRTL() { let uiLang = chrome.i18n.getUILanguage(); return uiLang === 'ar'; } public static localizeDialog() { let elements = document.getElementsByTagName('html'); for (let i = 0; i < elements.length; i++) { let element = elements[i]; let currentStr = element.innerHTML.toString(); let newStr = currentStr.replace(/__MSG_(\w+)__/g, (match, v1) => { return v1 ? chrome.i18n.getMessage(v1) : ''; }); if (newStr !== currentStr) { element.innerHTML = newStr; } } if (document && document.body) { document.body.dir = this.isLanguageRTL() ? 'rtl' : 'ltr'; } } public static getLanguageOnly(fromLocale: string) { if (!fromLocale || fromLocale.length === 0) { return ''; } let n = fromLocale.indexOf('_'); if (n < 0) { n = fromLocale.indexOf('-'); } if (n < 0) { return fromLocale; } return fromLocale.substr(0, n); } public static getLanguage(logger?: ILogger) { let uiLang = chrome.i18n.getUILanguage(); logger?.logMessage('Browser language: ' + uiLang); let lang = this.getLanguageOnly(uiLang); logger?.logMessage('Language returned from getLanguage(): ' + lang); return lang; } }