tools: align locale diagnostics and generate native language names
Validate / Validate (push) Successful in 2m46s
Validate / Validate (push) Successful in 2m46s
This commit is contained in:
1 parent
b8089e8a7e
commit
d99c5d1dc5
13 files changed
+170
-46
No files matched your search
+1
-27
@@ -482,34 +482,8 @@ function fillSelect(id, entries, selected) {
|
||||
select.value=selected;
|
||||
}
|
||||
|
||||
// Stable native names also cover browsers with incomplete ICU locale data.
|
||||
const LOCALE_NAMES = {
|
||||
'cs-CZ':'čeština (Česko)', 'de-DE':'Deutsch (Deutschland)',
|
||||
'el-GR':'Ελληνικά (Ελλάδα)', 'en-US':'English (United States)',
|
||||
'es-ES':'español (España)', 'fa-IR':'فارسی (ایران)',
|
||||
'fi-FI':'suomi (Suomi)', 'fr-FR':'français (France)',
|
||||
'ga-IE':'Gaeilge (Éire)', 'hu-HU':'magyar (Magyarország)',
|
||||
'id-ID':'Indonesia (Indonesia)', 'is-IS':'íslenska (Ísland)',
|
||||
'it-IT':'italiano (Italia)', 'ja-JP':'日本語 (日本)',
|
||||
'ko-KR':'한국어 (대한민국)', 'lv-LV':'latviešu (Latvija)',
|
||||
'nl-NL':'Nederlands (Nederland)', 'pl-PL':'polski (Polska)',
|
||||
'pt-BR':'português (Brasil)', 'pt-PT':'português (Portugal)',
|
||||
'ru-RU':'русский (Россия)', 'si-LK':'සිංහල (ශ්රී ලංකාව)',
|
||||
'sk-SK':'slovenčina (Slovensko)',
|
||||
'sv-SE':'svenska (Sverige)', 'tr-TR':'Türkçe (Türkiye)',
|
||||
'uk-UA':'українська (Україна)', 'zh-CN':'中文 (简体,中国)',
|
||||
'zh-TW':'中文 (繁體,台灣)'
|
||||
};
|
||||
|
||||
function localeLabel(locale) {
|
||||
let name = LOCALE_NAMES[locale];
|
||||
if (!name) {
|
||||
try {
|
||||
if (Intl.DisplayNames.supportedLocalesOf([locale]).length) {
|
||||
name = new Intl.DisplayNames([locale], {type:'language', fallback:'none'}).of(locale);
|
||||
}
|
||||
} catch (_) { /* Unknown languages remain selectable by their locale code. */ }
|
||||
}
|
||||
const name = manifest?.language_names?.[locale];
|
||||
return name && name !== locale ? locale + ' — ' + name : locale;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user