{ "version": 3, "sources": ["libs/galaxy/i18n/src/browser-locale/language.ts", "libs/galaxy/i18n/src/browser-locale/browser-locale.ts", "libs/galaxy/i18n/src/assets/en_devel.json", "libs/galaxy/i18n/src/i18n.module.ts", "libs/galaxy/i18n/public_api.ts", "libs/galaxy/i18n/index.ts"], "sourcesContent": ["export enum Language {\n AFRIKAANS = 'af',\n CZECH = 'cs',\n DUTCH = 'nl',\n ENGLISH = 'en',\n FRENCH = 'fr',\n FRENCH_CANADA = 'fr-ca',\n FRENCH_FRANCE = 'fr-fr',\n GERMAN = 'de',\n ITALIAN = 'it',\n JAPANESE = 'ja',\n PORTUGUESE = 'pt',\n RUSSIAN = 'ru',\n SPANISH_LATIN_AMERICA = 'es-419',\n}\n\nexport interface LanguageMapping {\n code: string;\n label: string;\n flag?: string;\n totalStrings?: number;\n translatedStrings?: number;\n}\n\nexport const LanguageMap: LanguageMapping[] = [\n { code: Language.ENGLISH, label: 'English', flag: '🇺🇸' },\n { code: Language.SPANISH_LATIN_AMERICA, label: 'English', flag: '🇪🇸' },\n { code: Language.FRENCH_FRANCE, label: 'Français', flag: '🇫🇷' },\n { code: Language.FRENCH_CANADA, label: 'Français', flag: '🇨🇦' },\n { code: Language.CZECH, label: 'Čeština', flag: '🇨🇿' },\n { code: Language.DUTCH, label: 'Nederlands', flag: '🇳🇱' },\n { code: Language.GERMAN, label: 'Deutsch', flag: '🇧🇪' },\n { code: Language.ITALIAN, label: 'Italiano', flag: '🇮🇹' },\n];\n", "import { loadTranslations as _loadTranslations } from '@angular/localize';\nimport { LEXICON_FILE_FORMAT_OPTION } from '@galaxy/lexicon';\nimport { Language } from './language';\n\nconst LOCALE_LOCALSTORAGE_KEY = 'e5190deccf484eea9d9676c8fd75dbc0';\nconst LANGUAGE_OPTIONS = [\n Language.AFRIKAANS,\n Language.CZECH,\n Language.DUTCH,\n Language.ENGLISH,\n Language.FRENCH,\n Language.FRENCH_CANADA,\n Language.GERMAN,\n Language.ITALIAN,\n Language.PORTUGUESE,\n Language.RUSSIAN,\n Language.SPANISH_LATIN_AMERICA,\n];\n\ndeclare global {\n interface Window {\n partnerId: string;\n }\n}\n\n// public function for boostrapping internationalization for the application\n// weblateComponentName format example: 'advertising-intelligence/digital-ads-client'\nexport function bootstrapI18n(\n weblateComponentName: string,\n baseTranslations?: any,\n overrideLanguageOptions?: Language[],\n format?: LEXICON_FILE_FORMAT_OPTION,\n forceOtw?: boolean,\n environment?: string,\n): void {\n loadTranslationFile(\n getLocale(overrideLanguageOptions),\n weblateComponentName,\n baseTranslations,\n format,\n forceOtw,\n environment,\n );\n}\n\n// todo: I don't think I like this overrideLanguageOptions dealio, refactor\nexport function getLocale(overrideLanguageOptions?: Language[]): string {\n const language =\n getLanguageFromLocalStorage(overrideLanguageOptions) || detectLanguageFromBrowser() || Language.ENGLISH;\n let locale = language.toString();\n // safeguard/default\n if (!locale) {\n locale = 'en';\n }\n return locale;\n}\n\n// public function for setting the current language in local storage\nexport function setLanguage(language: Language | string): void {\n if (localStorage) {\n localStorage.setItem(LOCALE_LOCALSTORAGE_KEY, language);\n }\n}\n\nexport function getLanguageFromLocalStorage(overrideLanguageOptions?: Language[]): Language | undefined {\n if (localStorage) {\n const languageCode = localStorage.getItem(LOCALE_LOCALSTORAGE_KEY);\n if (languageCode) {\n return findLanguageFromCode(languageCode.toLowerCase(), overrideLanguageOptions);\n }\n }\n return undefined;\n}\n\nexport function detectLanguageFromBrowser(): Language | undefined {\n const browserLanguageCode = getBrowserCultureLang().toLowerCase();\n return findLanguageFromCode(browserLanguageCode);\n}\n\nexport function getBrowserCultureLang(): string {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return '';\n }\n // Select language from various browser sources\n let browserCultureLang = Intl.NumberFormat().resolvedOptions().locale;\n if (!browserCultureLang && window.navigator.languages && window.navigator.languages.length) {\n browserCultureLang = window.navigator.languages[0];\n }\n browserCultureLang =\n browserCultureLang ||\n window.navigator.language ||\n (window.navigator as any).browserLanguage ||\n (window.navigator as any).userLanguage;\n return browserCultureLang.replace(/_/g, '-');\n}\n\nexport function findLanguageFromCode(languageCode: string, overrideLanguageOptions?: Language[]): Language | undefined {\n const languageOptions = overrideLanguageOptions ? overrideLanguageOptions : LANGUAGE_OPTIONS;\n // Search for full string\n let language = languageOptions.find((opt) => {\n return opt.toString().startsWith(languageCode);\n });\n // Search by partial language code\n if (!language && languageCode.indexOf('-') === 2) {\n language = languageOptions.find((opt) => {\n return opt.toString().startsWith(languageCode.slice(0, 2));\n });\n }\n return language;\n}\n\nexport function buildFilePath(\n locale: string,\n weblateComponentName: string,\n format?: LEXICON_FILE_FORMAT_OPTION,\n environment = 'prod',\n): string {\n const env = environment === 'prod' ? 'prod' : 'demo';\n const I18N_ASSETS_BASE_URL = `https://lexicon-${env}.apigateway.co/get-translations`;\n\n let filepath = I18N_ASSETS_BASE_URL + `?componentNames=${weblateComponentName}&languageCode=${locale}`;\n switch (format) {\n case LEXICON_FILE_FORMAT_OPTION.XLIFF1:\n filepath += `&format=xlf`;\n break;\n default:\n filepath += `&format=json`;\n break;\n }\n if (typeof window !== 'undefined' && window.partnerId) {\n filepath += `&partnerId=${window.partnerId}`;\n }\n return filepath;\n}\n\nexport function loadTranslationFile(\n locale: string,\n weblateComponentName: string,\n baseTranslations?: any,\n format?: LEXICON_FILE_FORMAT_OPTION,\n forceOtw?: boolean,\n environment?: string,\n): void {\n if (!('deployment' in window) && !forceOtw && baseTranslations) {\n loadTranslations(locale, flattenObject(baseTranslations));\n return;\n }\n\n const filepath = buildFilePath(locale, weblateComponentName, format, environment);\n const xhr = new XMLHttpRequest();\n xhr.onload = () => {\n if (xhr.status === 200) {\n let translations: Record;\n switch (format) {\n case LEXICON_FILE_FORMAT_OPTION.XLIFF1:\n translations = parseXliff(xhr.responseText);\n break;\n case LEXICON_FILE_FORMAT_OPTION.NESTED_JSON:\n translations = parseNestedJSON(xhr.responseText);\n break;\n case LEXICON_FILE_FORMAT_OPTION.FLAT_JSON:\n translations = parseFlatJSON(xhr.responseText);\n break;\n default:\n translations = parseNestedJSON(xhr.responseText);\n break;\n }\n if (Object.keys(translations).length !== 0) {\n loadTranslations(locale, translations);\n }\n }\n };\n const async = false;\n xhr.open('GET', filepath, async);\n xhr.send();\n}\n\nexport function loadTranslations(locale: string, translations: Record): void {\n if (translations && Object.keys(translations).length) {\n _loadTranslations(translations);\n }\n if (locale) {\n $localize.locale = locale;\n }\n}\n\nexport function parseXliff(content: string): Record {\n const translations: Record = {};\n const document = new DOMParser().parseFromString(content, 'text/xml');\n const textUnits = Array.from(document.getElementsByTagName('trans-unit'));\n textUnits.forEach((unit) => {\n const target = unit.getElementsByTagName('target').item(0);\n if (target) {\n translations[unit.id] = Array.from(target.childNodes)\n .map((child) => {\n if (child instanceof Text) {\n return child.wholeText;\n } else if (child instanceof Element) {\n return `{$${child.id}}`;\n }\n return '';\n })\n .join('');\n }\n });\n return translations;\n}\n\nexport function parseNestedJSON(content: string): Record {\n const parsedTranslationBundle = JSON.parse(content);\n return flattenObject(parsedTranslationBundle);\n}\n\nexport function parseFlatJSON(content: string): Record {\n return JSON.parse(content);\n}\n\nexport function flattenObject(ob: Record): any {\n const toReturn: Record = {};\n let flatObject: Record;\n for (const i in ob) {\n if (!(i in ob)) {\n continue;\n }\n if (typeof ob[i] === 'object') {\n flatObject = flattenObject(ob[i]);\n for (const x in flatObject) {\n if (!(x in flatObject)) {\n continue;\n }\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = ob[i];\n }\n }\n return toReturn;\n}\n", "{\n \"GALAXY\": {\n \"PAGE_NOT_FOUND_404\": {\n \"TITLE\": \"Page not found\",\n \"SUBTITLE\": \"Please verify the address and try again.\"\n },\n \"PAGE_NO_ACCESS\": {\n \"TITLE\": \"No access\",\n \"SUBTITLE\": \"You are not authorized to view this page.\"\n },\n \"CONFIRMATION_MODAL\": {\n \"CONFIRM\": \"Confirm\",\n \"CANCEL\": \"Cancel\",\n \"DONT_SHOW_AGAIN\": \"Don't show again\"\n },\n \"AI_TEXT_BUTTON\": {\n \"SUGGEST\": \"Suggest\",\n \"CREATE_FROM_CURRENT\": \"Create from current content\",\n \"SPELLING_AND_GRAMMAR\": \"Fix spelling & grammar\",\n \"CHANE_TONE\": \"Change tone\",\n \"TONE\": {\n \"FRIENDLY\": \"Friendly\",\n \"LUXURIOUS\": \"Luxurious\",\n \"PROFESSIONAL\": \"Professional\",\n \"RELAXED\": \"Relaxed\",\n \"BOLD\": \"Bold\",\n \"ADVENTUROUS\": \"Adventurous\",\n \"WITTY\": \"Witty\",\n \"PERSUASIVE\": \"Persuasive\",\n \"EMPATHETIC\": \"Empathetic\"\n }\n },\n \"INPUT\": {\n \"CORE\": {\n \"VALIDATION_ERROR_REQ\": \"This is required.\",\n \"REQUIRED\": \"Required\"\n },\n \"EMAIL\": {\n \"LABEL\": \"Email\",\n \"VALIDATION_ERROR\": \"Invalid Email Address.\"\n },\n \"PASSWORD\": {\n \"VALIDATION_ERROR_NO_MATCH\": \"Passwords do not match.\",\n \"STRENGTH_STRONG\": \"strong\",\n \"STRENGTH_MEDIUM\": \"medium\",\n \"STRENGTH_WEAK\": \"weak\",\n \"STRENGTH_NONE\": \"none\",\n \"CONFIRM\": \"Confirm\",\n \"PASS_STRENGTH\": \"Password Strength\"\n },\n \"PHONE\": {\n \"LABEL\": \"Phone number\",\n \"VALIDATION_ERROR\": \"Invalid phone number entered.\"\n }\n },\n \"SNACKBAR\": {\n \"ACTION_BUTTON\": {\n \"DISMISS\": \"Dismiss\"\n },\n \"ERROR_MESSAGE\": \"Something went wrong. Refreshing the page might help, but let us know if this keeps happening.\"\n },\n \"CHAT\": {\n \"YOU\": \"You\",\n \"MESSAGE_STATUS\": {\n \"SENDING\": \"Sending\",\n \"SENT\": \"Sent\",\n \"FAILED\": \"Failed\",\n \"DELIVERED\": \"Delivered\",\n \"UNDELIVERED\": \"Not delivered\"\n }\n },\n \"DATEPICKER\": {\n \"SELECT_DATE\": \"Select a date\",\n \"INVALID_DATE\": \"Invalid date\",\n \"MAX_DATE_ERROR\": \"Cannot select a date in the future\"\n },\n \"DATE_RANGE\": {\n \"SELECT_DATE_RANGE\": \"Select a date range\",\n \"NO_PERIOD\": \"No date range selected\",\n \"SELECTED_DATE_RANGE\": \"Selected date range\",\n \"COMPARE_TO\": \"Compare to\",\n \"CANCEL\": \"Cancel\",\n \"ERROR_MESSAGE\": \"Invalid date range\",\n \"APPLY\": \"Apply\",\n \"MONTHS\": {\n \"MONTH_0\": \"Jan\",\n \"MONTH_1\": \"Feb\",\n \"MONTH_2\": \"Mar\",\n \"MONTH_3\": \"Apr\",\n \"MONTH_4\": \"May\",\n \"MONTH_5\": \"Jun\",\n \"MONTH_6\": \"Jul\",\n \"MONTH_7\": \"Aug\",\n \"MONTH_8\": \"Sep\",\n \"MONTH_9\": \"Oct\",\n \"MONTH_10\": \"Nov\",\n \"MONTH_11\": \"Dec\"\n },\n \"PERIOD_SELECTOR\": {\n \"CUSTOM\": \"Custom\",\n \"LAST_7_DAYS\": \"Last 7 days\",\n \"LAST_30_DAYS\": \"Last 30 days\",\n \"LAST_90_DAYS\": \"Last 90 days\",\n \"LAST_6_MONTHS\": \"Last 6 months\",\n \"LAST_12_MONTHS\": \"Last 12 months\",\n \"BY_MONTH\": \"Month\",\n \"BY_QUARTER\": \"Quarter\"\n },\n \"INVALID_START_DATE\": \"Invalid start date\",\n \"INVALID_END_DATE\": \"Invalid end date\"\n },\n \"UPLOADER\": {\n \"CONSTRAINTS\": {\n \"MAX_FILES_PREFIX\": \"Up to\",\n \"IMAGE_TYPE\": \"image\",\n \"IMAGE_TYPE_PLURAL\": \"images\",\n \"VIDEO_TYPE\": \"video\",\n \"AUDIO_TYPE\": \"audio\",\n \"FILES\": \"files\",\n \"MAX_FILE_SIZE\": \"max file size\",\n \"AND\": \"and\"\n },\n \"ERROR\": {\n \"MAX_FILE_SIZE_EXCEEDED\": \"Max file size exceeded. Please use a different file\",\n \"MAX_FILES_EXCEEDED\": \"Max files exceeded\",\n \"MAX_DIMENSIONS_EXCEEDED\": \"Image dimensions are larger than allowed\",\n \"NO_VALID_FILE_IMAGE\": \"No valid image file to upload\",\n \"DUPLICATE_FILE_ATTEMPT\": \"This file has already been uploaded\",\n \"GENERIC\": \"An error occurred, please try again\",\n \"FILE_TYPE_NOT_SUPPORTED\": \"File type not supported\"\n },\n \"DRAG_AND_DROP\": \"Drag and drop a file here\",\n \"DRAG_AND_DROP_PL\": \"Drag and drop files here\",\n \"CHOOSE_FILE\": \"Choose file\",\n \"CHOOSE_FILE_PL\": \"Choose files\",\n \"DRAG_AND_DROP_IMAGE\": \"Drag and drop an image here\",\n \"DRAG_AND_DROP_IMAGE_PL\": \"Drag and drop images here\",\n \"CHOOSE_IMAGE\": \"Choose image\",\n \"CHOOSE_IMAGE_PL\": \"Choose images\",\n \"SELECT_ASPECT\": \"Aspect ratio\",\n \"FREE_ASPECT\": \"Free\",\n \"CANCEL\": \"Cancel\",\n \"SAVE\": \"Save\",\n \"NO_IMAGE\": \"No image selected\"\n },\n \"TIMEZONE\": {\n \"LABEL\": \"Timezone\"\n },\n \"FILTER\": {\n \"CHIP\": {\n \"DATE_DEFAULT\": {\n \"INVALID\": \"Exact date\",\n \"TODAY\": \"Today\",\n \"YESTERDAY\": \"Yesterday\",\n \"TOMORROW\": \"Tomorrow\",\n \"THIS_WEEK\": \"This week\",\n \"LAST_WEEK\": \"Last week\",\n \"NEXT_WEEK\": \"Next week\",\n \"THIS_MONTH\": \"This month\",\n \"LAST_MONTH\": \"Last month\",\n \"NEXT_MONTH\": \"Next month\",\n \"THIS_QUARTER\": \"This quarter\",\n \"LAST_QUARTER\": \"Last quarter\",\n \"NEXT_QUARTER\": \"Next quarter\",\n \"THIS_YEAR\": \"This year\",\n \"LAST_YEAR\": \"Last year\",\n \"NEXT_YEAR\": \"Next year\"\n },\n \"ACTIONS.APPLY\": \"Apply\",\n \"TOGGLE_BUTTON\": \"Filters\",\n \"APPLIED_INDICATOR\": \"Filters applied\",\n \"ADD_FILTER\": \"Add filter\",\n \"CLEAR_FILTERS\": \"Clear all\",\n \"FIND_FILTER\": \"Find filter\",\n \"INVALID_FILTER_TYPE\": \"Filter type is invalid\",\n \"INCOMPLETE_FILTER\": \"Filter is incomplete. Complete the filter before applying it.\",\n \"SELECT_OPERATOR_PLACEHOLDER\": \"Select operator...\",\n \"SELECT_EXPRESSION_PLACEHOLDER\": \"Select...\",\n \"SELECT_START_PLACEHOLDER\": \"Start date\",\n \"SELECT_END_PLACEHOLDER\": \"End date\",\n \"OPERATOR\": {\n \"INVALID\": \"invalid\",\n \"IS_EMPTY\": \"\u2715 is empty\",\n \"IS_NOT_EMPTY\": \"\u2713 is not empty\",\n \"IS\": \"= is\",\n \"IS_NOT\": \"\u2260 is not\",\n \"IS_ANY\": \"\u220B is any of\",\n \"IS_NOT_ANY\": \"\u220C is not any of\",\n \"IS_ALL\": \"= is all of\",\n \"IS_NOT_ALL\": \"\u2260 is not all of\",\n \"CONTAINS\": \"\u220B contains\",\n \"DOES_NOT_CONTAIN\": \"\u220C does not contain\",\n \"IS_EQUAL_TO\": \"= is equal to\",\n \"IS_NOT_EQUAL_TO\": \"\u2260 is not equal to\",\n \"IS_GREATER_THAN\": \"> is greater than\",\n \"IS_GREATER_THAN_OR_EQUAL_TO\": \"\u2265 is greater than or equal to\",\n \"IS_LESS_THAN\": \"< is less than\",\n \"IS_LESS_THAN_OR_EQUAL_TO\": \"\u2264 is less than or equal to\",\n \"IS_BEFORE\": \"< is before\",\n \"IS_BEFORE_OR_ON\": \"\u2264 is before or on\",\n \"IS_AFTER\": \"> is after\",\n \"IS_AFTER_OR_ON\": \"\u2265 is after or on\",\n \"IS_BETWEEN\": \"= is between\",\n \"IS_NOT_BETWEEN\": \"\u2260 is not between\"\n },\n \"SYMBOL\": {\n \"INVALID\": \"is INVALID\",\n \"IS_EMPTY\": \"\u2715\",\n \"IS_NOT_EMPTY\": \"\u2713\",\n \"IS\": \"=\",\n \"IS_NOT\": \"\u2260\",\n \"IS_ANY\": \"\u220B\",\n \"IS_NOT_ANY\": \"\u220C\",\n \"IS_ALL\": \"=\",\n \"IS_NOT_ALL\": \"\u2260\",\n \"CONTAINS\": \"\u220B\",\n \"DOES_NOT_CONTAIN\": \"\u220C\",\n \"IS_EQUAL_TO\": \"=\",\n \"IS_NOT_EQUAL_TO\": \"\u2260\",\n \"IS_GREATER_THAN\": \">\",\n \"IS_GREATER_THAN_OR_EQUAL_TO\": \"\u2265\",\n \"IS_LESS_THAN\": \"<\",\n \"IS_LESS_THAN_OR_EQUAL_TO\": \"\u2264\",\n \"IS_BEFORE\": \"<\",\n \"IS_BEFORE_OR_ON\": \"\u2264\",\n \"IS_AFTER\": \">\",\n \"IS_AFTER_OR_ON\": \"\u2265\",\n \"IS_BETWEEN\": \"=\",\n \"IS_NOT_BETWEEN\": \"\u2260\"\n },\n \"VALUE_PLACEHOLDER\": \"Value...\",\n \"START_VALUE_PLACEHOLDER\": \"Start value\",\n \"END_VALUE_PLACEHOLDER\": \"End value\"\n }\n },\n \"FREQUENCY\": {\n \"SHORT\": {\n \"DAILY\": \"/da\",\n \"WEEKLY\": \"/wk\",\n \"BI_WEEKLY\": \"/bw\",\n \"MONTHLY\": \"/mo\",\n \"QUARTERLY\": \"/qtr\",\n \"YEARLY\": \"/yr\"\n },\n \"LONG\": {\n \"DAILY\": \"/day\",\n \"WEEKLY\": \"/week\",\n \"BI_WEEKLY\": \"/two weeks\",\n \"MONTHLY\": \"/month\",\n \"QUARTERLY\": \"/quarter\",\n \"YEARLY\": \"/year\"\n },\n \"VERBOSE\": {\n \"DAILY\": \"per day\",\n \"WEEKLY\": \"per week\",\n \"BI_WEEKLY\": \"every two weeks\",\n \"MONTHLY\": \"per month\",\n \"QUARTERLY\": \"per quarter\",\n \"YEARLY\": \"per year\"\n }\n },\n \"PAGINATION\": {\n \"INDETERMINATE_AMOUNT\": \"many\",\n \"OF\": \"of\",\n \"ITEMS_PER_PAGE\": \"Items per page\",\n \"NEXT_PAGE\": \"Next Page\",\n \"PREVIOUS_PAGE\": \"Previous Page\"\n },\n \"PAGE\": {\n \"TOGGLE_MENU\": \"Toggle menu\"\n },\n \"PAGE_NAV\": {\n \"TOGGLE_LABEL\": \"Contents\"\n },\n \"TABLE\": {\n \"FILTERS\": {\n \"TOGGLE_BUTTON\": \"Filters\",\n \"APPLIED_INDICATOR\": \"Filters applied\"\n }\n },\n \"TAGS\": {\n \"PLACEHOLDER\": \"Add a tag...\",\n \"STRING_LIMIT_HINT\": \"Maximum {{maxLength}} characters\"\n }\n }\n}\n", "import { TranslateModule } from '@ngx-translate/core';\nimport { NgModule } from '@angular/core';\n\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from './assets/en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/galaxy',\n baseTranslation: baseTranslation,\n }),\n ],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class GalaxyI18NModule {}\n", "export * from './src/i18n.module';\nexport * from './src/browser-locale/language';\nexport { bootstrapI18n, setLanguage, getLocale } from './src/browser-locale/browser-locale';\n", "export * from './public_api';\n"], "mappings": "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", "names": ["Language", "LanguageMap", "init_language", "__esmMin", "code", "ENGLISH", "label", "flag", "SPANISH_LATIN_AMERICA", "FRENCH_FRANCE", "FRENCH_CANADA", "CZECH", "DUTCH", "GERMAN", "ITALIAN", "bootstrapI18n", "weblateComponentName", "baseTranslations", "overrideLanguageOptions", "format", "forceOtw", "environment", "loadTranslationFile", "getLocale", "locale", "getLanguageFromLocalStorage", "detectLanguageFromBrowser", "Language", "ENGLISH", "toString", "setLanguage", "language", "localStorage", "setItem", "LOCALE_LOCALSTORAGE_KEY", "languageCode", "getItem", "findLanguageFromCode", "toLowerCase", "browserLanguageCode", "getBrowserCultureLang", "window", "navigator", "browserCultureLang", "Intl", "NumberFormat", "resolvedOptions", "languages", "length", "browserLanguage", "userLanguage", "replace", "languageOptions", "LANGUAGE_OPTIONS", "find", "opt", "startsWith", "indexOf", "slice", "buildFilePath", "filepath", "LEXICON_FILE_FORMAT_OPTION", "XLIFF1", "partnerId", "loadTranslations", "flattenObject", "xhr", "XMLHttpRequest", "onload", "status", "translations", "parseXliff", "responseText", "NESTED_JSON", "parseNestedJSON", "FLAT_JSON", "parseFlatJSON", "Object", "keys", "open", "send", "_loadTranslations", "$localize", "content", "document", "DOMParser", "parseFromString", "textUnits", "Array", "from", "getElementsByTagName", "forEach", "unit", "target", "item", "id", "childNodes", "map", "child", "Text", "wholeText", "Element", "join", "parsedTranslationBundle", "JSON", "parse", "ob", "toReturn", "flatObject", "i", "x", "init_browser_locale", "__esmMin", "init_localize", "init_src", "init_language", "AFRIKAANS", "CZECH", "DUTCH", "FRENCH", "FRENCH_CANADA", "GERMAN", "ITALIAN", "PORTUGUESE", "RUSSIAN", "SPANISH_LATIN_AMERICA", "en_devel_default", "init_en_devel", "__esmMin", "GalaxyI18NModule", "init_i18n_module", "__esmMin", "init_ngx_translate_core", "init_src", "init_en_devel", "TranslateModule", "LexiconModule", "forChild", "componentName", "baseTranslation", "_GalaxyI18NModule", "init_public_api", "__esmMin", "init_i18n_module", "init_language", "init_browser_locale", "init_i18n", "__esmMin", "init_public_api"] }