mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-17 02:00:56 +03:00
Added ability to select language in settings
Fixed locale support so that it actually works at runtime Removed unused library
This commit is contained in:
@@ -30,7 +30,7 @@
|
||||
"@angular/platform-browser": "^9.0.6",
|
||||
"@angular/platform-browser-dynamic": "^9.0.6",
|
||||
"@angular/router": "^9.0.6",
|
||||
"@soluling/angular": "^1.0.0",
|
||||
"@locl/core": "0.0.1-beta.2",
|
||||
"core-js": "^2.4.1",
|
||||
"file-saver": "^2.0.2",
|
||||
"ng-lazyload-image": "^7.0.1",
|
||||
@@ -49,6 +49,7 @@
|
||||
"@angular/cli": "^9.0.6",
|
||||
"@angular/compiler-cli": "^9.0.6",
|
||||
"@angular/language-service": "^9.0.6",
|
||||
"@locl/cli": "0.0.1-beta.6",
|
||||
"@types/core-js": "^2.5.2",
|
||||
"@types/file-saver": "^2.0.1",
|
||||
"@types/jasmine": "2.5.45",
|
||||
|
||||
735
src/app/settings/locales_list.ts
Normal file
735
src/app/settings/locales_list.ts
Normal file
@@ -0,0 +1,735 @@
|
||||
/**
|
||||
* @author Phil Teare
|
||||
* using wikipedia data
|
||||
* Link: https://stackoverflow.com/a/4900304
|
||||
*/
|
||||
export const isoLangs = {
|
||||
'ab': {
|
||||
'name': 'Abkhaz',
|
||||
'nativeName': 'аҧсуа'
|
||||
},
|
||||
'aa': {
|
||||
'name': 'Afar',
|
||||
'nativeName': 'Afaraf'
|
||||
},
|
||||
'af': {
|
||||
'name': 'Afrikaans',
|
||||
'nativeName': 'Afrikaans'
|
||||
},
|
||||
'ak': {
|
||||
'name': 'Akan',
|
||||
'nativeName': 'Akan'
|
||||
},
|
||||
'sq': {
|
||||
'name': 'Albanian',
|
||||
'nativeName': 'Shqip'
|
||||
},
|
||||
'am': {
|
||||
'name': 'Amharic',
|
||||
'nativeName': 'አማርኛ'
|
||||
},
|
||||
'ar': {
|
||||
'name': 'Arabic',
|
||||
'nativeName': 'العربية'
|
||||
},
|
||||
'an': {
|
||||
'name': 'Aragonese',
|
||||
'nativeName': 'Aragonés'
|
||||
},
|
||||
'hy': {
|
||||
'name': 'Armenian',
|
||||
'nativeName': 'Հայերեն'
|
||||
},
|
||||
'as': {
|
||||
'name': 'Assamese',
|
||||
'nativeName': 'অসমীয়া'
|
||||
},
|
||||
'av': {
|
||||
'name': 'Avaric',
|
||||
'nativeName': 'авар мацӀ, магӀарул мацӀ'
|
||||
},
|
||||
'ae': {
|
||||
'name': 'Avestan',
|
||||
'nativeName': 'avesta'
|
||||
},
|
||||
'ay': {
|
||||
'name': 'Aymara',
|
||||
'nativeName': 'aymar aru'
|
||||
},
|
||||
'az': {
|
||||
'name': 'Azerbaijani',
|
||||
'nativeName': 'azərbaycan dili'
|
||||
},
|
||||
'bm': {
|
||||
'name': 'Bambara',
|
||||
'nativeName': 'bamanankan'
|
||||
},
|
||||
'ba': {
|
||||
'name': 'Bashkir',
|
||||
'nativeName': 'башҡорт теле'
|
||||
},
|
||||
'eu': {
|
||||
'name': 'Basque',
|
||||
'nativeName': 'euskara, euskera'
|
||||
},
|
||||
'be': {
|
||||
'name': 'Belarusian',
|
||||
'nativeName': 'Беларуская'
|
||||
},
|
||||
'bn': {
|
||||
'name': 'Bengali',
|
||||
'nativeName': 'বাংলা'
|
||||
},
|
||||
'bh': {
|
||||
'name': 'Bihari',
|
||||
'nativeName': 'भोजपुरी'
|
||||
},
|
||||
'bi': {
|
||||
'name': 'Bislama',
|
||||
'nativeName': 'Bislama'
|
||||
},
|
||||
'bs': {
|
||||
'name': 'Bosnian',
|
||||
'nativeName': 'bosanski jezik'
|
||||
},
|
||||
'br': {
|
||||
'name': 'Breton',
|
||||
'nativeName': 'brezhoneg'
|
||||
},
|
||||
'bg': {
|
||||
'name': 'Bulgarian',
|
||||
'nativeName': 'български език'
|
||||
},
|
||||
'my': {
|
||||
'name': 'Burmese',
|
||||
'nativeName': 'ဗမာစာ'
|
||||
},
|
||||
'ca': {
|
||||
'name': 'Catalan; Valencian',
|
||||
'nativeName': 'Català'
|
||||
},
|
||||
'ch': {
|
||||
'name': 'Chamorro',
|
||||
'nativeName': 'Chamoru'
|
||||
},
|
||||
'ce': {
|
||||
'name': 'Chechen',
|
||||
'nativeName': 'нохчийн мотт'
|
||||
},
|
||||
'ny': {
|
||||
'name': 'Chichewa; Chewa; Nyanja',
|
||||
'nativeName': 'chiCheŵa, chinyanja'
|
||||
},
|
||||
'zh': {
|
||||
'name': 'Chinese',
|
||||
'nativeName': '中文 (Zhōngwén), 汉语, 漢語'
|
||||
},
|
||||
'cv': {
|
||||
'name': 'Chuvash',
|
||||
'nativeName': 'чӑваш чӗлхи'
|
||||
},
|
||||
'kw': {
|
||||
'name': 'Cornish',
|
||||
'nativeName': 'Kernewek'
|
||||
},
|
||||
'co': {
|
||||
'name': 'Corsican',
|
||||
'nativeName': 'corsu, lingua corsa'
|
||||
},
|
||||
'cr': {
|
||||
'name': 'Cree',
|
||||
'nativeName': 'ᓀᐦᐃᔭᐍᐏᐣ'
|
||||
},
|
||||
'hr': {
|
||||
'name': 'Croatian',
|
||||
'nativeName': 'hrvatski'
|
||||
},
|
||||
'cs': {
|
||||
'name': 'Czech',
|
||||
'nativeName': 'česky, čeština'
|
||||
},
|
||||
'da': {
|
||||
'name': 'Danish',
|
||||
'nativeName': 'dansk'
|
||||
},
|
||||
'dv': {
|
||||
'name': 'Divehi; Dhivehi; Maldivian;',
|
||||
'nativeName': 'ދިވެހި'
|
||||
},
|
||||
'nl': {
|
||||
'name': 'Dutch',
|
||||
'nativeName': 'Nederlands, Vlaams'
|
||||
},
|
||||
'en': {
|
||||
'name': 'English',
|
||||
'nativeName': 'English'
|
||||
},
|
||||
'eo': {
|
||||
'name': 'Esperanto',
|
||||
'nativeName': 'Esperanto'
|
||||
},
|
||||
'et': {
|
||||
'name': 'Estonian',
|
||||
'nativeName': 'eesti, eesti keel'
|
||||
},
|
||||
'ee': {
|
||||
'name': 'Ewe',
|
||||
'nativeName': 'Eʋegbe'
|
||||
},
|
||||
'fo': {
|
||||
'name': 'Faroese',
|
||||
'nativeName': 'føroyskt'
|
||||
},
|
||||
'fj': {
|
||||
'name': 'Fijian',
|
||||
'nativeName': 'vosa Vakaviti'
|
||||
},
|
||||
'fi': {
|
||||
'name': 'Finnish',
|
||||
'nativeName': 'suomi, suomen kieli'
|
||||
},
|
||||
'fr': {
|
||||
'name': 'French',
|
||||
'nativeName': 'français, langue française'
|
||||
},
|
||||
'ff': {
|
||||
'name': 'Fula; Fulah; Pulaar; Pular',
|
||||
'nativeName': 'Fulfulde, Pulaar, Pular'
|
||||
},
|
||||
'gl': {
|
||||
'name': 'Galician',
|
||||
'nativeName': 'Galego'
|
||||
},
|
||||
'ka': {
|
||||
'name': 'Georgian',
|
||||
'nativeName': 'ქართული'
|
||||
},
|
||||
'de': {
|
||||
'name': 'German',
|
||||
'nativeName': 'Deutsch'
|
||||
},
|
||||
'el': {
|
||||
'name': 'Greek, Modern',
|
||||
'nativeName': 'Ελληνικά'
|
||||
},
|
||||
'gn': {
|
||||
'name': 'Guaraní',
|
||||
'nativeName': 'Avañeẽ'
|
||||
},
|
||||
'gu': {
|
||||
'name': 'Gujarati',
|
||||
'nativeName': 'ગુજરાતી'
|
||||
},
|
||||
'ht': {
|
||||
'name': 'Haitian; Haitian Creole',
|
||||
'nativeName': 'Kreyòl ayisyen'
|
||||
},
|
||||
'ha': {
|
||||
'name': 'Hausa',
|
||||
'nativeName': 'Hausa, هَوُسَ'
|
||||
},
|
||||
'he': {
|
||||
'name': 'Hebrew (modern)',
|
||||
'nativeName': 'עברית'
|
||||
},
|
||||
'hz': {
|
||||
'name': 'Herero',
|
||||
'nativeName': 'Otjiherero'
|
||||
},
|
||||
'hi': {
|
||||
'name': 'Hindi',
|
||||
'nativeName': 'हिन्दी, हिंदी'
|
||||
},
|
||||
'ho': {
|
||||
'name': 'Hiri Motu',
|
||||
'nativeName': 'Hiri Motu'
|
||||
},
|
||||
'hu': {
|
||||
'name': 'Hungarian',
|
||||
'nativeName': 'Magyar'
|
||||
},
|
||||
'ia': {
|
||||
'name': 'Interlingua',
|
||||
'nativeName': 'Interlingua'
|
||||
},
|
||||
'id': {
|
||||
'name': 'Indonesian',
|
||||
'nativeName': 'Bahasa Indonesia'
|
||||
},
|
||||
'ie': {
|
||||
'name': 'Interlingue',
|
||||
'nativeName': 'Originally called Occidental; then Interlingue after WWII'
|
||||
},
|
||||
'ga': {
|
||||
'name': 'Irish',
|
||||
'nativeName': 'Gaeilge'
|
||||
},
|
||||
'ig': {
|
||||
'name': 'Igbo',
|
||||
'nativeName': 'Asụsụ Igbo'
|
||||
},
|
||||
'ik': {
|
||||
'name': 'Inupiaq',
|
||||
'nativeName': 'Iñupiaq, Iñupiatun'
|
||||
},
|
||||
'io': {
|
||||
'name': 'Ido',
|
||||
'nativeName': 'Ido'
|
||||
},
|
||||
'is': {
|
||||
'name': 'Icelandic',
|
||||
'nativeName': 'Íslenska'
|
||||
},
|
||||
'it': {
|
||||
'name': 'Italian',
|
||||
'nativeName': 'Italiano'
|
||||
},
|
||||
'iu': {
|
||||
'name': 'Inuktitut',
|
||||
'nativeName': 'ᐃᓄᒃᑎᑐᑦ'
|
||||
},
|
||||
'ja': {
|
||||
'name': 'Japanese',
|
||||
'nativeName': '日本語 (にほんご/にっぽんご)'
|
||||
},
|
||||
'jv': {
|
||||
'name': 'Javanese',
|
||||
'nativeName': 'basa Jawa'
|
||||
},
|
||||
'kl': {
|
||||
'name': 'Kalaallisut, Greenlandic',
|
||||
'nativeName': 'kalaallisut, kalaallit oqaasii'
|
||||
},
|
||||
'kn': {
|
||||
'name': 'Kannada',
|
||||
'nativeName': 'ಕನ್ನಡ'
|
||||
},
|
||||
'kr': {
|
||||
'name': 'Kanuri',
|
||||
'nativeName': 'Kanuri'
|
||||
},
|
||||
'ks': {
|
||||
'name': 'Kashmiri',
|
||||
'nativeName': 'कश्मीरी, كشميري'
|
||||
},
|
||||
'kk': {
|
||||
'name': 'Kazakh',
|
||||
'nativeName': 'Қазақ тілі'
|
||||
},
|
||||
'km': {
|
||||
'name': 'Khmer',
|
||||
'nativeName': 'ភាសាខ្មែរ'
|
||||
},
|
||||
'ki': {
|
||||
'name': 'Kikuyu, Gikuyu',
|
||||
'nativeName': 'Gĩkũyũ'
|
||||
},
|
||||
'rw': {
|
||||
'name': 'Kinyarwanda',
|
||||
'nativeName': 'Ikinyarwanda'
|
||||
},
|
||||
'ky': {
|
||||
'name': 'Kirghiz, Kyrgyz',
|
||||
'nativeName': 'кыргыз тили'
|
||||
},
|
||||
'kv': {
|
||||
'name': 'Komi',
|
||||
'nativeName': 'коми кыв'
|
||||
},
|
||||
'kg': {
|
||||
'name': 'Kongo',
|
||||
'nativeName': 'KiKongo'
|
||||
},
|
||||
'ko': {
|
||||
'name': 'Korean',
|
||||
'nativeName': '한국어 (韓國語), 조선말 (朝鮮語)'
|
||||
},
|
||||
'ku': {
|
||||
'name': 'Kurdish',
|
||||
'nativeName': 'Kurdî, كوردی'
|
||||
},
|
||||
'kj': {
|
||||
'name': 'Kwanyama, Kuanyama',
|
||||
'nativeName': 'Kuanyama'
|
||||
},
|
||||
'la': {
|
||||
'name': 'Latin',
|
||||
'nativeName': 'latine, lingua latina'
|
||||
},
|
||||
'lb': {
|
||||
'name': 'Luxembourgish, Letzeburgesch',
|
||||
'nativeName': 'Lëtzebuergesch'
|
||||
},
|
||||
'lg': {
|
||||
'name': 'Luganda',
|
||||
'nativeName': 'Luganda'
|
||||
},
|
||||
'li': {
|
||||
'name': 'Limburgish, Limburgan, Limburger',
|
||||
'nativeName': 'Limburgs'
|
||||
},
|
||||
'ln': {
|
||||
'name': 'Lingala',
|
||||
'nativeName': 'Lingála'
|
||||
},
|
||||
'lo': {
|
||||
'name': 'Lao',
|
||||
'nativeName': 'ພາສາລາວ'
|
||||
},
|
||||
'lt': {
|
||||
'name': 'Lithuanian',
|
||||
'nativeName': 'lietuvių kalba'
|
||||
},
|
||||
'lu': {
|
||||
'name': 'Luba-Katanga',
|
||||
'nativeName': ''
|
||||
},
|
||||
'lv': {
|
||||
'name': 'Latvian',
|
||||
'nativeName': 'latviešu valoda'
|
||||
},
|
||||
'gv': {
|
||||
'name': 'Manx',
|
||||
'nativeName': 'Gaelg, Gailck'
|
||||
},
|
||||
'mk': {
|
||||
'name': 'Macedonian',
|
||||
'nativeName': 'македонски јазик'
|
||||
},
|
||||
'mg': {
|
||||
'name': 'Malagasy',
|
||||
'nativeName': 'Malagasy fiteny'
|
||||
},
|
||||
'ms': {
|
||||
'name': 'Malay',
|
||||
'nativeName': 'bahasa Melayu, بهاس ملايو'
|
||||
},
|
||||
'ml': {
|
||||
'name': 'Malayalam',
|
||||
'nativeName': 'മലയാളം'
|
||||
},
|
||||
'mt': {
|
||||
'name': 'Maltese',
|
||||
'nativeName': 'Malti'
|
||||
},
|
||||
'mi': {
|
||||
'name': 'Māori',
|
||||
'nativeName': 'te reo Māori'
|
||||
},
|
||||
'mr': {
|
||||
'name': 'Marathi (Marāṭhī)',
|
||||
'nativeName': 'मराठी'
|
||||
},
|
||||
'mh': {
|
||||
'name': 'Marshallese',
|
||||
'nativeName': 'Kajin M̧ajeļ'
|
||||
},
|
||||
'mn': {
|
||||
'name': 'Mongolian',
|
||||
'nativeName': 'монгол'
|
||||
},
|
||||
'na': {
|
||||
'name': 'Nauru',
|
||||
'nativeName': 'Ekakairũ Naoero'
|
||||
},
|
||||
'nv': {
|
||||
'name': 'Navajo, Navaho',
|
||||
'nativeName': 'Diné bizaad, Dinékʼehǰí'
|
||||
},
|
||||
'nb': {
|
||||
'name': 'Norwegian Bokmål',
|
||||
'nativeName': 'Norsk bokmål'
|
||||
},
|
||||
'nd': {
|
||||
'name': 'North Ndebele',
|
||||
'nativeName': 'isiNdebele'
|
||||
},
|
||||
'ne': {
|
||||
'name': 'Nepali',
|
||||
'nativeName': 'नेपाली'
|
||||
},
|
||||
'ng': {
|
||||
'name': 'Ndonga',
|
||||
'nativeName': 'Owambo'
|
||||
},
|
||||
'nn': {
|
||||
'name': 'Norwegian Nynorsk',
|
||||
'nativeName': 'Norsk nynorsk'
|
||||
},
|
||||
'no': {
|
||||
'name': 'Norwegian',
|
||||
'nativeName': 'Norsk'
|
||||
},
|
||||
'ii': {
|
||||
'name': 'Nuosu',
|
||||
'nativeName': 'ꆈꌠ꒿ Nuosuhxop'
|
||||
},
|
||||
'nr': {
|
||||
'name': 'South Ndebele',
|
||||
'nativeName': 'isiNdebele'
|
||||
},
|
||||
'oc': {
|
||||
'name': 'Occitan',
|
||||
'nativeName': 'Occitan'
|
||||
},
|
||||
'oj': {
|
||||
'name': 'Ojibwe, Ojibwa',
|
||||
'nativeName': 'ᐊᓂᔑᓈᐯᒧᐎᓐ'
|
||||
},
|
||||
'cu': {
|
||||
'name': 'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic',
|
||||
'nativeName': 'ѩзыкъ словѣньскъ'
|
||||
},
|
||||
'om': {
|
||||
'name': 'Oromo',
|
||||
'nativeName': 'Afaan Oromoo'
|
||||
},
|
||||
'or': {
|
||||
'name': 'Oriya',
|
||||
'nativeName': 'ଓଡ଼ିଆ'
|
||||
},
|
||||
'os': {
|
||||
'name': 'Ossetian, Ossetic',
|
||||
'nativeName': 'ирон æвзаг'
|
||||
},
|
||||
'pa': {
|
||||
'name': 'Panjabi, Punjabi',
|
||||
'nativeName': 'ਪੰਜਾਬੀ, پنجابی'
|
||||
},
|
||||
'pi': {
|
||||
'name': 'Pāli',
|
||||
'nativeName': 'पाऴि'
|
||||
},
|
||||
'fa': {
|
||||
'name': 'Persian',
|
||||
'nativeName': 'فارسی'
|
||||
},
|
||||
'pl': {
|
||||
'name': 'Polish',
|
||||
'nativeName': 'polski'
|
||||
},
|
||||
'ps': {
|
||||
'name': 'Pashto, Pushto',
|
||||
'nativeName': 'پښتو'
|
||||
},
|
||||
'pt': {
|
||||
'name': 'Portuguese',
|
||||
'nativeName': 'Português'
|
||||
},
|
||||
'qu': {
|
||||
'name': 'Quechua',
|
||||
'nativeName': 'Runa Simi, Kichwa'
|
||||
},
|
||||
'rm': {
|
||||
'name': 'Romansh',
|
||||
'nativeName': 'rumantsch grischun'
|
||||
},
|
||||
'rn': {
|
||||
'name': 'Kirundi',
|
||||
'nativeName': 'kiRundi'
|
||||
},
|
||||
'ro': {
|
||||
'name': 'Romanian, Moldavian, Moldovan',
|
||||
'nativeName': 'română'
|
||||
},
|
||||
'ru': {
|
||||
'name': 'Russian',
|
||||
'nativeName': 'русский язык'
|
||||
},
|
||||
'sa': {
|
||||
'name': 'Sanskrit (Saṁskṛta)',
|
||||
'nativeName': 'संस्कृतम्'
|
||||
},
|
||||
'sc': {
|
||||
'name': 'Sardinian',
|
||||
'nativeName': 'sardu'
|
||||
},
|
||||
'sd': {
|
||||
'name': 'Sindhi',
|
||||
'nativeName': 'सिन्धी, سنڌي، سندھی'
|
||||
},
|
||||
'se': {
|
||||
'name': 'Northern Sami',
|
||||
'nativeName': 'Davvisámegiella'
|
||||
},
|
||||
'sm': {
|
||||
'name': 'Samoan',
|
||||
'nativeName': 'gagana faa Samoa'
|
||||
},
|
||||
'sg': {
|
||||
'name': 'Sango',
|
||||
'nativeName': 'yângâ tî sängö'
|
||||
},
|
||||
'sr': {
|
||||
'name': 'Serbian',
|
||||
'nativeName': 'српски језик'
|
||||
},
|
||||
'gd': {
|
||||
'name': 'Scottish Gaelic; Gaelic',
|
||||
'nativeName': 'Gàidhlig'
|
||||
},
|
||||
'sn': {
|
||||
'name': 'Shona',
|
||||
'nativeName': 'chiShona'
|
||||
},
|
||||
'si': {
|
||||
'name': 'Sinhala, Sinhalese',
|
||||
'nativeName': 'සිංහල'
|
||||
},
|
||||
'sk': {
|
||||
'name': 'Slovak',
|
||||
'nativeName': 'slovenčina'
|
||||
},
|
||||
'sl': {
|
||||
'name': 'Slovene',
|
||||
'nativeName': 'slovenščina'
|
||||
},
|
||||
'so': {
|
||||
'name': 'Somali',
|
||||
'nativeName': 'Soomaaliga, af Soomaali'
|
||||
},
|
||||
'st': {
|
||||
'name': 'Southern Sotho',
|
||||
'nativeName': 'Sesotho'
|
||||
},
|
||||
'es': {
|
||||
'name': 'Spanish; Castilian',
|
||||
'nativeName': 'español, castellano'
|
||||
},
|
||||
'su': {
|
||||
'name': 'Sundanese',
|
||||
'nativeName': 'Basa Sunda'
|
||||
},
|
||||
'sw': {
|
||||
'name': 'Swahili',
|
||||
'nativeName': 'Kiswahili'
|
||||
},
|
||||
'ss': {
|
||||
'name': 'Swati',
|
||||
'nativeName': 'SiSwati'
|
||||
},
|
||||
'sv': {
|
||||
'name': 'Swedish',
|
||||
'nativeName': 'svenska'
|
||||
},
|
||||
'ta': {
|
||||
'name': 'Tamil',
|
||||
'nativeName': 'தமிழ்'
|
||||
},
|
||||
'te': {
|
||||
'name': 'Telugu',
|
||||
'nativeName': 'తెలుగు'
|
||||
},
|
||||
'tg': {
|
||||
'name': 'Tajik',
|
||||
'nativeName': 'тоҷикӣ, toğikī, تاجیکی'
|
||||
},
|
||||
'th': {
|
||||
'name': 'Thai',
|
||||
'nativeName': 'ไทย'
|
||||
},
|
||||
'ti': {
|
||||
'name': 'Tigrinya',
|
||||
'nativeName': 'ትግርኛ'
|
||||
},
|
||||
'bo': {
|
||||
'name': 'Tibetan Standard, Tibetan, Central',
|
||||
'nativeName': 'བོད་ཡིག'
|
||||
},
|
||||
'tk': {
|
||||
'name': 'Turkmen',
|
||||
'nativeName': 'Türkmen, Түркмен'
|
||||
},
|
||||
'tl': {
|
||||
'name': 'Tagalog',
|
||||
'nativeName': 'Wikang Tagalog, ᜏᜒᜃᜅ᜔ ᜆᜄᜎᜓᜄ᜔'
|
||||
},
|
||||
'tn': {
|
||||
'name': 'Tswana',
|
||||
'nativeName': 'Setswana'
|
||||
},
|
||||
'to': {
|
||||
'name': 'Tonga (Tonga Islands)',
|
||||
'nativeName': 'faka Tonga'
|
||||
},
|
||||
'tr': {
|
||||
'name': 'Turkish',
|
||||
'nativeName': 'Türkçe'
|
||||
},
|
||||
'ts': {
|
||||
'name': 'Tsonga',
|
||||
'nativeName': 'Xitsonga'
|
||||
},
|
||||
'tt': {
|
||||
'name': 'Tatar',
|
||||
'nativeName': 'татарча, tatarça, تاتارچا'
|
||||
},
|
||||
'tw': {
|
||||
'name': 'Twi',
|
||||
'nativeName': 'Twi'
|
||||
},
|
||||
'ty': {
|
||||
'name': 'Tahitian',
|
||||
'nativeName': 'Reo Tahiti'
|
||||
},
|
||||
'ug': {
|
||||
'name': 'Uighur, Uyghur',
|
||||
'nativeName': 'Uyƣurqə, ئۇيغۇرچە'
|
||||
},
|
||||
'uk': {
|
||||
'name': 'Ukrainian',
|
||||
'nativeName': 'українська'
|
||||
},
|
||||
'ur': {
|
||||
'name': 'Urdu',
|
||||
'nativeName': 'اردو'
|
||||
},
|
||||
'uz': {
|
||||
'name': 'Uzbek',
|
||||
'nativeName': 'zbek, Ўзбек, أۇزبېك'
|
||||
},
|
||||
've': {
|
||||
'name': 'Venda',
|
||||
'nativeName': 'Tshivenḓa'
|
||||
},
|
||||
'vi': {
|
||||
'name': 'Vietnamese',
|
||||
'nativeName': 'Tiếng Việt'
|
||||
},
|
||||
'vo': {
|
||||
'name': 'Volapük',
|
||||
'nativeName': 'Volapük'
|
||||
},
|
||||
'wa': {
|
||||
'name': 'Walloon',
|
||||
'nativeName': 'Walon'
|
||||
},
|
||||
'cy': {
|
||||
'name': 'Welsh',
|
||||
'nativeName': 'Cymraeg'
|
||||
},
|
||||
'wo': {
|
||||
'name': 'Wolof',
|
||||
'nativeName': 'Wollof'
|
||||
},
|
||||
'fy': {
|
||||
'name': 'Western Frisian',
|
||||
'nativeName': 'Frysk'
|
||||
},
|
||||
'xh': {
|
||||
'name': 'Xhosa',
|
||||
'nativeName': 'isiXhosa'
|
||||
},
|
||||
'yi': {
|
||||
'name': 'Yiddish',
|
||||
'nativeName': 'ייִדיש'
|
||||
},
|
||||
'yo': {
|
||||
'name': 'Yoruba',
|
||||
'nativeName': 'Yorùbá'
|
||||
},
|
||||
'za': {
|
||||
'name': 'Zhuang, Chuang',
|
||||
'nativeName': 'Saɯ cueŋƅ, Saw cuengh'
|
||||
}
|
||||
};
|
||||
@@ -1,6 +1,15 @@
|
||||
<h4 i18n="Settings title" mat-dialog-title>Settings</h4>
|
||||
<!-- <ng-container i18n="Allow subscriptions setting"></ng-container> -->
|
||||
<mat-dialog-content>
|
||||
<!-- Language -->
|
||||
<div>
|
||||
Language: <mat-select class="locale-select" (selectionChange)="localeSelectChanged($event.value)" [(value)]="initialLocale">
|
||||
<mat-option *ngFor="let locale of supported_locales" [value]="locale">
|
||||
{{all_locales[locale]['nativeName']}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</div>
|
||||
|
||||
<!-- Host -->
|
||||
<mat-expansion-panel class="settings-expansion-panel">
|
||||
<mat-expansion-panel-header>
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
.settings-expansion-panel {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.locale-select {
|
||||
margin-bottom: 10px;
|
||||
width: 175px;
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { isoLangs } from './locales_list';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
|
||||
@Component({
|
||||
selector: 'app-settings',
|
||||
@@ -7,12 +9,15 @@ import { PostsService } from 'app/posts.services';
|
||||
styleUrls: ['./settings.component.scss']
|
||||
})
|
||||
export class SettingsComponent implements OnInit {
|
||||
all_locales = isoLangs;
|
||||
supported_locales = ['en', 'es'];
|
||||
initialLocale = localStorage.getItem('locale');
|
||||
|
||||
initial_config = null;
|
||||
new_config = null
|
||||
loading_config = false;
|
||||
|
||||
constructor(private postsService: PostsService) { }
|
||||
constructor(private postsService: PostsService, private snackBar: MatSnackBar) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.getConfig();
|
||||
@@ -46,4 +51,16 @@ export class SettingsComponent implements OnInit {
|
||||
})
|
||||
}
|
||||
|
||||
localeSelectChanged(new_val) {
|
||||
localStorage.setItem('locale', new_val);
|
||||
this.openSnackBar('Language successfully changed! Reload to update the page.')
|
||||
}
|
||||
|
||||
// snackbar helper
|
||||
public openSnackBar(message: string, action: string = '') {
|
||||
this.snackBar.open(message, action, {
|
||||
duration: 2000,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
35
src/main.ts
35
src/main.ts
@@ -1,12 +1,12 @@
|
||||
import '@angular/localize/init';
|
||||
|
||||
import { enableProdMode } from '@angular/core';
|
||||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||
|
||||
import { AppModule } from './app/app.module';
|
||||
import { environment } from './environments/environment';
|
||||
|
||||
import { loadTranslations } from '@angular/localize';
|
||||
import { getTranslations } from '@soluling/angular';
|
||||
import '@angular/localize/init';
|
||||
import { getTranslations, ParsedTranslationBundle } from '@locl/core';
|
||||
|
||||
if (environment.production) {
|
||||
enableProdMode();
|
||||
@@ -14,14 +14,27 @@ if (environment.production) {
|
||||
|
||||
const locale = localStorage.getItem('locale');
|
||||
if (locale) {
|
||||
fetch(`./assets/i18n/messages.${locale}.json`).then(res => res.json()).then((resp) => {
|
||||
console.log(resp);
|
||||
loadTranslations(resp);
|
||||
platformBrowserDynamic().bootstrapModule(AppModule);
|
||||
}, err => {
|
||||
platformBrowserDynamic().bootstrapModule(AppModule);
|
||||
});
|
||||
getTranslations(`./assets/i18n/messages.${locale}.json`).then(
|
||||
(data: ParsedTranslationBundle) => {
|
||||
loadTranslations(data as any);
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err => console.error(err));
|
||||
});
|
||||
}
|
||||
).catch(err => {
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err2 => console.error(err2));
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log('no locale');
|
||||
platformBrowserDynamic().bootstrapModule(AppModule);
|
||||
import('./app/app.module').then(module => {
|
||||
platformBrowserDynamic()
|
||||
.bootstrapModule(module.AppModule)
|
||||
.catch(err => console.error(err));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user