UNPKG

@aws-amplify/core

Version:
1 lines 5.62 kB
{"version":3,"file":"I18n.mjs","sources":["../../../src/I18n/I18n.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nconst logger = new ConsoleLogger('I18n');\n/**\n * Language translation utility.\n */\nexport class I18n {\n constructor() {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n }\n /**\n * Sets the default language from the configuration when required.\n */\n setDefaultLanguage() {\n // Default to window language if not set in instance\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n setLanguage(lang) {\n this._lang = lang;\n }\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n get(key, defVal = undefined) {\n this.setDefaultLanguage();\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n const lang = this._lang;\n let val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n getByLanguage(key, language, defVal = null) {\n if (!language) {\n return defVal;\n }\n const langDict = this._dict[language];\n if (!langDict) {\n return defVal;\n }\n return langDict[key];\n }\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n putVocabulariesForLanguage(language, vocabularies) {\n let langDict = this._dict[language];\n if (!langDict) {\n langDict = this._dict[language] = {};\n }\n this._dict[language] = { ...langDict, ...vocabularies };\n }\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n putVocabularies(vocabularies) {\n Object.keys(vocabularies).forEach(key => {\n this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n }\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACzC;AACA;AACA;aACO,MAAM,IAAI,CAAC;AAClB,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACxB,KAAK;AACL;AACA;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;AACvB,YAAY,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,MAAM;AAClB,YAAY,MAAM,CAAC,SAAS,EAAE;AAC9B,YAAY,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnD,SAAS;AACT,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE;AACjC,QAAQ,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACzB,YAAY,OAAO,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;AAChE,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChD,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACnC,YAAY,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,SAAS;AACT,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS;AACT,QAAQ,OAAO,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;AAChD,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAA0B,CAAC,QAAQ,EAAE,YAAY,EAAE;AACvD,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;AAChE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,YAAY,EAAE;AAClC,QAAQ,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACjD,YAAY,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;;;"}