Merge pull request #891 from mwhudson/lp-1913624-big

put a full locale (language/location/codeset) in languagelist
This commit is contained in:
Michael Hudson-Doyle 2021-02-15 11:12:10 +13:00 committed by GitHub
commit 5305f0b7be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 34 deletions

View File

@ -1,28 +1,28 @@
console:en_US:English
console:en_GB:English (UK)
ssh:kab:Taqbaylit
console:ca:Català
ssh:zh_CN:中文(简体)
console:hr:Hrvatski
console:cs:Čeština
console:ast:Asturianu
console:be:Беларуская
console:nl:Nederlands
console:fi:Suomi
console:fr:Français
console:de:Deutsch
console:el:Ελληνικά
ssh:he:עברית
console:hu:Magyar
console:id:Bahasa Indonesia
console:lv:Latviski
console:lt:Lietuviškai
console:pl:Polski
console:ru:Русский
console:sr:Српски
console:es:Español
console:sv:Svenska
ssh:bo:བོད་ཡིག
console:uk:Українська
console:en_US.UTF-8:English
console:en_GB.UTF-8:English (UK)
ssh:kab_DZ.UTF-8:Taqbaylit
console:ca_ES.UTF-8:Català
ssh:zh_CN.UTF-8:中文(简体)
console:hr_HR.UTF-8:Hrvatski
console:cs_CZ.UTF-8:Čeština
console:ast_ES.UTF-8:Asturianu
console:be_BY.UTF-8:Беларуская
console:nl_NL.UTF-8:Nederlands
console:fi_FI.UTF-8:Suomi
console:fr_FR.UTF-8:Français
console:de_DE.UTF-8:Deutsch
console:el_GR.UTF-8:Ελληνικά
ssh:he_IL.UTF-8:עברית
console:hu_HU.UTF-8:Magyar
console:id_ID.UTF-8:Bahasa Indonesia
console:lv_LV.UTF-8:Latviski
console:lt_LT.UTF-8:Lietuviškai
console:pl_PL.UTF-8:Polski
console:ru_RU.UTF-8:Русский
console:sr_RS:Српски
console:es_ES.UTF-8:Español
console:sv_SE.UTF-8:Svenska
ssh:bo_IN:བོད་ཡིག
console:uk_UA.UTF-8:Українська
console:nb:Norsk bokmål
ssh:oc:Occitan (aprèp 1500)

View File

@ -29,8 +29,8 @@ import json
import os
import sys
LANGLIST_PATH = '/usr/share/localechooser/languagelist'
DATA_PATH = '/usr/share/localechooser/languagelist.data.gz'
JSON_CODES = '/usr/share/iso-codes/json/iso_639-3.json'
lang_dir = 'po'
@ -46,14 +46,15 @@ if not translations:
sys.exit(1)
langs = [
('console', 'en_US', 'English'),
('console', 'en_GB', 'English (UK)'),
('ssh', 'kab', 'Taqbaylit'),
('console', 'en_US.UTF-8', 'English'),
('console', 'en_GB.UTF-8', 'English (UK)'),
('ssh', 'kab_DZ.UTF-8', 'Taqbaylit'),
]
for level, code, name in langs:
if code in translations:
translations.remove(code)
for subcode in (code, code.split('.')[0], code.split('_')[0]):
if subcode in translations:
translations.remove(subcode)
def kind_for_level(level):
@ -63,6 +64,15 @@ def kind_for_level(level):
return "ssh"
code_to_fallbacklocale = {}
with open(LANGLIST_PATH) as data:
for line in data:
(code, supported_environments, countrycode, fallbacklocale, langlist,
console_setup) = line.strip().split(';')
code_to_fallbacklocale[code] = fallbacklocale
with gzip.open(DATA_PATH, mode='rt') as data:
for line in data:
level, code, name, desc = line.strip().split(':')
@ -104,4 +114,5 @@ for code in translations:
sys.exit(1)
for level, code, name in langs:
sys.stdout.write("{}:{}:{}\n".format(level, code, name))
locale = code_to_fallbacklocale.get(code, code)
sys.stdout.write("{}:{}:{}\n".format(level, locale, name))

View File

@ -164,11 +164,14 @@ class SubiquityModel:
return groups
def _cloud_init_config(self):
locale = self.locale.selected_language
if '.' not in locale and '_' in locale:
locale += '.UTF-8'
config = {
'growpart': {
'mode': 'off',
},
'locale': self.locale.selected_language + '.UTF-8',
'locale': locale,
'resize_rootfs': False,
}
if self.identity.hostname is not None: