{"version":3,"sources":["../../../packages/core/data/language.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,iBAAiB;IACnB,eAAe,EAAE,QAAQ,EAAE,CAmBhC;IACF,IAAW,gBAAgB,IAAI,QAAQ,EAAE,CAExC;IAED,OAAO,CAAC,sBAAsB;IA4O9B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;CAGhC","file":"language.d.ts","sourcesContent":["import { LogLevel } from '../diagnostics/log-level';\r\nimport { Logging } from '../diagnostics/logging';\r\n\r\n/**\r\n * Language object which has a corresponding culture information of locale, name, and localized name.\r\n */\r\nexport interface Language {\r\n    /**\r\n     * Language locale identifier.\r\n     */\r\n    id: string;\r\n\r\n    /**\r\n     * Language English name.\r\n     */\r\n    name: string;\r\n\r\n    /**\r\n     * Language localized name.\r\n     */\r\n    localizedName: string;\r\n}\r\n\r\nexport class LanguageInventory {\r\n    public neutralCultures: Language[] = [\r\n        { id: 'en-US', name: 'English', localizedName: 'English' },\r\n        { id: 'cs-CZ', name: 'Czech', localizedName: 'Čeština' },\r\n        { id: 'de-DE', name: 'German', localizedName: 'Deutsch' },\r\n        { id: 'es-ES', name: 'Spanish', localizedName: 'Español' },\r\n        { id: 'fr-FR', name: 'French', localizedName: 'Français' },\r\n        { id: 'hu-HU', name: 'Hungarian', localizedName: 'Magyar' },\r\n        { id: 'it-IT', name: 'Italian', localizedName: 'Italiano' },\r\n        { id: 'ja-JP', name: 'Japanese', localizedName: '日本語' },\r\n        { id: 'ko-KR', name: 'Korean', localizedName: '한국어' },\r\n        { id: 'nl-NL', name: 'Dutch', localizedName: 'Nederlands' },\r\n        { id: 'pl-PL', name: 'Polish', localizedName: 'Polski' },\r\n        { id: 'pt-BR', name: 'Portuguese (Brasil)', localizedName: 'Português (Brasil)' },\r\n        { id: 'pt-PT', name: 'Portuguese (Portugal)', localizedName: 'Português (Portugal)' },\r\n        { id: 'ru-RU', name: 'Russian', localizedName: 'Русский' },\r\n        { id: 'sv-SE', name: 'Swedish', localizedName: 'Svenska' },\r\n        { id: 'tr-TR', name: 'Turkish', localizedName: 'Türkçe' },\r\n        { id: 'zh-CN', name: 'Chinese (Simplified)', localizedName: '中文(简体)' },\r\n        { id: 'zh-TW', name: 'Chinese (Traditional)', localizedName: '中文(繁體)' }\r\n    ];\r\n    public get regionalCultures(): Language[] {\r\n        return this.getRegionalCulturesMap();\r\n    }\r\n\r\n    private getRegionalCulturesMap() {\r\n        const otherCultures = [\r\n            this.makeGermanCulture('be', 'Belgium', 'Belgien'),\r\n            this.makeGermanCulture('de', 'Germany', 'Deutschland'),\r\n            this.makeGermanCulture('li', 'Liechtenstein', 'Liechtenstein'),\r\n            this.makeGermanCulture('lu', 'Luxembourg', 'Luxemburg'),\r\n            this.makeGermanCulture('ch', 'Switzerland', 'Schweiz'),\r\n            this.makeGermanCulture('at', 'Austria', 'Österreich'),\r\n            this.makeEnglishCulture('as', 'American Samoa'),\r\n            this.makeEnglishCulture('ai', 'Anguilla'),\r\n            this.makeEnglishCulture('ag', 'Antigua and Barbuda'),\r\n            this.makeEnglishCulture('au', 'Australia'),\r\n            this.makeEnglishCulture('bs', 'Bahamas'),\r\n            this.makeEnglishCulture('bb', 'Barbados'),\r\n            this.makeEnglishCulture('be', 'Belgium'),\r\n            this.makeEnglishCulture('bz', 'Belize'),\r\n            this.makeEnglishCulture('bm', 'Bermuda'),\r\n            this.makeEnglishCulture('bw', 'Botswana'),\r\n            this.makeEnglishCulture('io', 'British Indian Ocean Territory'),\r\n            this.makeEnglishCulture('vg', 'British Virgin Islands'),\r\n            this.makeEnglishCulture('cm', 'Cameroon'),\r\n            this.makeEnglishCulture('ca', 'Canada'),\r\n            this.makeEnglishCulture('029', 'Caribbean'),\r\n            this.makeEnglishCulture('ky', 'Cayman Islands'),\r\n            this.makeEnglishCulture('cx', 'Christmas Island'),\r\n            this.makeEnglishCulture('cc', 'Cocos (Keeling) Islands'),\r\n            this.makeEnglishCulture('ck', 'Cook Islands'),\r\n            this.makeEnglishCulture('dm', 'Dominica'),\r\n            this.makeEnglishCulture('er', 'Eritrea'),\r\n            this.makeEnglishCulture('150', 'Europe'),\r\n            this.makeEnglishCulture('fk', 'Falkland Islands'),\r\n            this.makeEnglishCulture('fj', 'Fiji'),\r\n            this.makeEnglishCulture('gm', 'Gambia'),\r\n            this.makeEnglishCulture('gh', 'Ghana'),\r\n            this.makeEnglishCulture('gi', 'Gibraltar'),\r\n            this.makeEnglishCulture('gd', 'Grenada'),\r\n            this.makeEnglishCulture('gu', 'Guam'),\r\n            this.makeEnglishCulture('gg', 'Guernsey'),\r\n            this.makeEnglishCulture('gy', 'Guyana'),\r\n            this.makeEnglishCulture('hk', 'Hong Kong SAR'),\r\n            this.makeEnglishCulture('in', 'India'),\r\n            this.makeEnglishCulture('ie', 'Ireland'),\r\n            this.makeEnglishCulture('im', 'Isle of Man'),\r\n            this.makeEnglishCulture('jm', 'Jamaica'),\r\n            this.makeEnglishCulture('je', 'Jersey'),\r\n            this.makeEnglishCulture('ke', 'Kenya'),\r\n            this.makeEnglishCulture('ki', 'Kiribati'),\r\n            this.makeEnglishCulture('ls', 'Lesotho'),\r\n            this.makeEnglishCulture('lr', 'Liberia'),\r\n            this.makeEnglishCulture('mo', 'Macao SAR'),\r\n            this.makeEnglishCulture('mg', 'Madagascar'),\r\n            this.makeEnglishCulture('mw', 'Malawi'),\r\n            this.makeEnglishCulture('my', 'Malaysia'),\r\n            this.makeEnglishCulture('mt', 'Malta'),\r\n            this.makeEnglishCulture('mh', 'Marshall Islands'),\r\n            this.makeEnglishCulture('mu', 'Mauritius'),\r\n            this.makeEnglishCulture('fm', 'Micronesia'),\r\n            this.makeEnglishCulture('ms', 'Montserrat'),\r\n            this.makeEnglishCulture('na', 'Namibia'),\r\n            this.makeEnglishCulture('nr', 'Nauru'),\r\n            this.makeEnglishCulture('nz', 'New Zealand'),\r\n            this.makeEnglishCulture('ng', 'Nigeria'),\r\n            this.makeEnglishCulture('nu', 'Niue'),\r\n            this.makeEnglishCulture('nf', 'Norfolk Island'),\r\n            this.makeEnglishCulture('mp', 'Northern Mariana Islands'),\r\n            this.makeEnglishCulture('pk', 'Pakistan'),\r\n            this.makeEnglishCulture('pw', 'Palau'),\r\n            this.makeEnglishCulture('pg', 'Papua New Guinea'),\r\n            this.makeEnglishCulture('ph', 'Philippines'),\r\n            this.makeEnglishCulture('pn', 'Pitcairn Islands'),\r\n            this.makeEnglishCulture('pr', 'Puerto Rico'),\r\n            this.makeEnglishCulture('rw', 'Rwanda'),\r\n            this.makeEnglishCulture('kn', 'Saint Kitts and Nevis'),\r\n            this.makeEnglishCulture('lc', 'Saint Lucia'),\r\n            this.makeEnglishCulture('vc', 'Saint Vincent and the Grenadines'),\r\n            this.makeEnglishCulture('ws', 'Samoa'),\r\n            this.makeEnglishCulture('sc', 'Seychelles'),\r\n            this.makeEnglishCulture('sl', 'Sierra Leone'),\r\n            this.makeEnglishCulture('sg', 'Singapore'),\r\n            this.makeEnglishCulture('sx', 'Sint Maarten'),\r\n            this.makeEnglishCulture('sb', 'Solomon Islands'),\r\n            this.makeEnglishCulture('za', 'South Africa'),\r\n            this.makeEnglishCulture('ss', 'South Sudan'),\r\n            this.makeEnglishCulture('sh', 'St Helena, Ascension, Tristan da Cunha'),\r\n            this.makeEnglishCulture('sd', 'Sudan'),\r\n            this.makeEnglishCulture('sz', 'Swaziland'),\r\n            this.makeEnglishCulture('tz', 'Tanzania'),\r\n            this.makeEnglishCulture('tk', 'Tokelau'),\r\n            this.makeEnglishCulture('to', 'Tonga'),\r\n            this.makeEnglishCulture('tt', 'Trinidad and Tobago'),\r\n            this.makeEnglishCulture('tc', 'Turks and Caicos Islands'),\r\n            this.makeEnglishCulture('tv', 'Tuvalu'),\r\n            this.makeEnglishCulture('um', 'U.S. Outlying Islands'),\r\n            this.makeEnglishCulture('vi', 'U.S. Virgin Islands'),\r\n            this.makeEnglishCulture('ug', 'Uganda'),\r\n            this.makeEnglishCulture('gb', 'United Kingdom'),\r\n            this.makeEnglishCulture('us', 'United States'),\r\n            this.makeEnglishCulture('vu', 'Vanuatu'),\r\n            this.makeEnglishCulture('001', 'World'),\r\n            this.makeEnglishCulture('zm', 'Zambia'),\r\n            this.makeEnglishCulture('zw', 'Zimbabwe'),\r\n            this.makeSpanishCulture('ar', 'Argentina', 'Argentina'),\r\n            this.makeSpanishCulture('bo', 'Bolivia', 'Bolivia'),\r\n            this.makeSpanishCulture('cl', 'Chile', 'Chile'),\r\n            this.makeSpanishCulture('co', 'Colombia', 'Colombia'),\r\n            this.makeSpanishCulture('cr', 'Costa Rica', 'Costa Rica'),\r\n            this.makeSpanishCulture('cu', 'Cuba', 'Cuba'),\r\n            this.makeSpanishCulture('ec', 'Ecuador', 'Ecuador'),\r\n            this.makeSpanishCulture('sv', 'El Salvador', 'El Salvador'),\r\n            this.makeSpanishCulture('es', 'Spain, International Sort', 'España, alfabetización internacional'),\r\n            this.makeSpanishCulture('us', 'United States', 'Estados Unidos'),\r\n            this.makeSpanishCulture('ph', 'Philippines', 'Filipinas'),\r\n            this.makeSpanishCulture('gt', 'Guatemala', 'Guatemala'),\r\n            this.makeSpanishCulture('gq', 'Equatorial Guinea', 'Guinea Ecuatorial'),\r\n            this.makeSpanishCulture('hn', 'Honduras', 'Honduras'),\r\n            this.makeSpanishCulture('419', 'Latin America', 'Latinoamérica'),\r\n            this.makeSpanishCulture('mx', 'Mexico', 'México'),\r\n            this.makeSpanishCulture('ni', 'Nicaragua', 'Nicaragua'),\r\n            this.makeSpanishCulture('pa', 'Panama', 'Panamá'),\r\n            this.makeSpanishCulture('py', 'Paraguay', 'Paraguay'),\r\n            this.makeSpanishCulture('pe', 'Peru', 'Perú'),\r\n            this.makeSpanishCulture('pr', 'Puerto Rico', 'Puerto Rico'),\r\n            this.makeSpanishCulture('do', 'Dominican Republic', 'República Dominicana'),\r\n            this.makeSpanishCulture('uy', 'Uruguay', 'Uruguay'),\r\n            this.makeSpanishCulture('ve', 'Venezuela', 'Venezuela'),\r\n            this.makeFrenchCulture('dz', 'Algeria', 'Algérie'),\r\n            this.makeFrenchCulture('be', 'Belgium', 'Belgique'),\r\n            this.makeFrenchCulture('bf', 'Burkina Faso', 'Burkina Faso'),\r\n            this.makeFrenchCulture('bi', 'Burundi', 'Burundi'),\r\n            this.makeFrenchCulture('bj', 'Benin', 'Bénin'),\r\n            this.makeFrenchCulture('cm', 'Cameroon', 'Cameroun'),\r\n            this.makeFrenchCulture('ca', 'Canada', 'Canada'),\r\n            this.makeFrenchCulture('km', 'Comoros', 'Comores'),\r\n            this.makeFrenchCulture('cg', 'Congo', 'Congo'),\r\n            this.makeFrenchCulture('cd', 'French Congo (DRC)', 'Congo, République démocratique du'),\r\n            this.makeFrenchCulture('ci', 'Côte d’Ivoire', 'Côte d’Ivoire'),\r\n            this.makeFrenchCulture('dj', 'Djibouti', 'Djibouti'),\r\n            this.makeFrenchCulture('fr', 'France', 'France'),\r\n            this.makeFrenchCulture('ga', 'Gabon', 'Gabon'),\r\n            this.makeFrenchCulture('gp', 'Guadeloupe', 'Guadeloupe'),\r\n            this.makeFrenchCulture('gq', 'Equatorial Guinea', 'Guinée équatoriale'),\r\n            this.makeFrenchCulture('gn', 'Guinea', 'Guinée'),\r\n            this.makeFrenchCulture('gf', 'French Guiana', 'Guyane française'),\r\n            this.makeFrenchCulture('ht', 'Haiti', 'Haïti'),\r\n            this.makeFrenchCulture('re', 'Réunion', 'La Réunion'),\r\n            this.makeFrenchCulture('lu', 'Luxembourg', 'Luxembourg'),\r\n            this.makeFrenchCulture('mg', 'Madagascar', 'Madagascar'),\r\n            this.makeFrenchCulture('ml', 'Mali', 'Mali'),\r\n            this.makeFrenchCulture('ma', 'Morocco', 'Maroc'),\r\n            this.makeFrenchCulture('mq', 'Martinique', 'Martinique'),\r\n            this.makeFrenchCulture('mu', 'Mauritius', 'Maurice'),\r\n            this.makeFrenchCulture('mr', 'Mauritania', 'Mauritanie'),\r\n            this.makeFrenchCulture('yt', 'Mayotte', 'Mayotte'),\r\n            this.makeFrenchCulture('mc', 'Monaco', 'Monaco'),\r\n            this.makeFrenchCulture('ne', 'Niger', 'Niger'),\r\n            this.makeFrenchCulture('nc', 'New Caledonia', 'Nouvelle-Calédonie'),\r\n            this.makeFrenchCulture('pf', 'French Polynesia', 'Polynésie française'),\r\n            this.makeFrenchCulture('rw', 'Rwanda', 'Rwanda'),\r\n            this.makeFrenchCulture('cf', 'Central African Republic', 'République centrafricaine'),\r\n            this.makeFrenchCulture('bl', 'Saint Barthélemy', 'Saint-Barthélemy'),\r\n            this.makeFrenchCulture('mf', 'Saint Martin', 'Saint-Martin'),\r\n            this.makeFrenchCulture('pm', 'Saint Pierre and Miquelon', 'Saint-Pierre-et-Miquelon'),\r\n            this.makeFrenchCulture('sc', 'Seychelles', 'Seychelles'),\r\n            this.makeFrenchCulture('ch', 'Switzerland', 'Suisse'),\r\n            this.makeFrenchCulture('sy', 'Syria', 'Syrie'),\r\n            this.makeFrenchCulture('sn', 'Senegal', 'Sénégal'),\r\n            this.makeFrenchCulture('td', 'Chad', 'Tchad'),\r\n            this.makeFrenchCulture('tg', 'Togo', 'Togo'),\r\n            this.makeFrenchCulture('tn', 'Tunisia', 'Tunisie'),\r\n            this.makeFrenchCulture('vu', 'Vanuatu', 'Vanuatu'),\r\n            this.makeFrenchCulture('wf', 'Wallis and Futuna', 'Wallis-et-Futuna'),\r\n            ['it-IT', 'Italian (Italy)', 'Italiano (Italia)'],\r\n            ['it-SM', 'Italian (San Marino)', 'Italiano (San Marino)'],\r\n            ['it-CH', 'Italian (Switzerland)', 'Italiano (Svizzera)'],\r\n            ['hu-HU', 'Hungarian (Hungary)', 'Magyar (Magyarország)'],\r\n            ['nl-AW', 'Dutch (Aruba)', 'Nederlands (Aruba)'],\r\n            ['nl-BE', 'Dutch (Belgium)', 'Nederlands (België)'],\r\n            ['nl-BQ', 'Dutch (Bonaire, Sint Eustatius and Saba)', 'Nederlands (Bonaire, Sint Eustatius en Saba)'],\r\n            ['nl-CW', 'Dutch (Curaçao)', 'Nederlands (Curaçao)'],\r\n            ['nl-NL', 'Dutch (Netherlands)', 'Nederlands (Nederland)'],\r\n            ['nl-SX', 'Dutch (Sint Maarten)', 'Nederlands (Sint-Maarten)'],\r\n            ['nl-SR', 'Dutch (Suriname)', 'Nederlands (Suriname)'],\r\n            ['pl-PL', 'Polish (Poland)', 'Polski (Polska)'],\r\n            this.makePortugueseCulture('br', 'Brazil', 'Brasil'),\r\n            this.makePortugueseCulture('pt', 'Portugal', 'Portugal'),\r\n            ['sv-FI', 'Swedish (Finland)', 'Svenska (Finland)'],\r\n            ['sv-SE', 'Swedish (Sweden)', 'Svenska (Sverige)'],\r\n            ['sv-AX', 'Swedish (Åland Islands)', 'Svenska (Åland)'],\r\n            ['tr-CY', 'Turkish (Cyprus)', 'Türkçe (Kıbrıs)'],\r\n            ['tr-TR', 'Turkish (Turkey)', 'Türkçe (Türkiye)'],\r\n            ['cs-CZ', 'Czech (Czechia)', 'Čeština (Česko)'],\r\n            ['ru-BY', 'Russian (Belarus)', 'Русский (Беларусь)'],\r\n            ['ru-KZ', 'Russian (Kazakhstan)', 'Русский (Казахстан)'],\r\n            ['ru-KG', 'Russian (Kyrgyzstan)', 'Русский (Киргизия)'],\r\n            ['ru-MD', 'Russian (Moldova)', 'Русский (Молдова)'],\r\n            ['ru-RU', 'Russian (Russia)', 'Русский (Россия)'],\r\n            ['ru-UA', 'Russian (Ukraine)', 'Русский (Украина)'],\r\n            ['zh-CN', 'Chinese (Simplified, China)', '中文(中国)'],\r\n            ['zh-TW', 'Chinese (Traditional, Taiwan)', '中文(台灣)'],\r\n            ['zh-SG', 'Chinese (Simplified, Singapore)', '中文(新加坡)'],\r\n            ['zh-MO', 'Chinese (Traditional, Macao SAR)', '中文(澳門特別行政區)'],\r\n            ['zh-HK', 'Chinese (Traditional, Hong Kong SAR)', '中文(香港特別行政區)'],\r\n            ['ja-JP', 'Japanese (Japan)', '日本語 (日本)'],\r\n            ['ko-KP', 'Korean (North Korea)', '한국어 (조선민주주의인민공화국)'],\r\n            ['ko-KR', 'Korean (Korea)', '한국어(대한민국)']\r\n        ];\r\n\r\n        const map: Language[] = [];\r\n        otherCultures.forEach(item => {\r\n            const lang: Language = {\r\n                id: item[0],\r\n                name: item[1],\r\n                localizedName: item[2]\r\n            };\r\n\r\n            // Windows Admin Center uses browser's native Intl supports.\r\n            // Microsoft Edge and Chrome return different locale ID with the following API,\r\n            // here it checks only if it responds with supported one item.\r\n            const support = Intl.DateTimeFormat.supportedLocalesOf(lang.id);\r\n            if (support.length === 1) {\r\n                map.push(lang);\r\n            } else if (Intl.DateTimeFormat.supportedLocalesOf('ja-JP').length > 0) {\r\n                // Test environment lack of standard language support like ja-JP.\r\n                // If there is ja-JP but this reginal code is not supporte, sprits out warning message.\r\n                // This doesn't happen on Microsoft Edge and Google Chrome.\r\n                Logging.log({\r\n                    level: LogLevel.Warning,\r\n                    source: 'core/language',\r\n                    message: 'Unsupporte regional language by Intl.DateTimeFormat.supportedLocalesOf(\"{0}\")'.format(lang.id)\r\n                });\r\n            }\r\n        });\r\n\r\n        return map;\r\n    }\r\n\r\n    private makeEnglishCulture(code: string, englishSubCulture: string): string[] {\r\n        return [`en-${code.toUpperCase()}`, `English (${englishSubCulture})`, `English (${englishSubCulture})`];\r\n    }\r\n\r\n    private makeGermanCulture(code: string, englishSubCulture: string, nativeSubCulture: string): string[] {\r\n        return [`de-${code.toUpperCase()}`, `German (${englishSubCulture})`, `Deutsch (${nativeSubCulture})`];\r\n    }\r\n\r\n    private makeSpanishCulture(code: string, englishSubCulture: string, nativeSubCulture: string): string[] {\r\n        return [`es-${code.toUpperCase()}`, `Spanish (${englishSubCulture})`, `Español (${nativeSubCulture})`];\r\n    }\r\n\r\n    private makeFrenchCulture(code: string, englishSubCulture: string, nativeSubCulture: string): string[] {\r\n        return [`fr-${code.toUpperCase()}`, `French (${englishSubCulture})`, `Français (${nativeSubCulture})`];\r\n    }\r\n\r\n    private makePortugueseCulture(code: string, englishSubCulture: string, nativeSubCulture: string): string[] {\r\n        return [`pt-${code.toUpperCase()}`, `Portuguese (${englishSubCulture})`, `Português (${nativeSubCulture})`];\r\n    }\r\n}\r\n"]}