Ticket #4449: profile_icu.py

File profile_icu.py, 848 bytes (added by manuq, 11 years ago)
Line 
1import sys
2import subprocess
3
4from PyICU import Locale as PyICULocale
5
6
7def get_locale_name_pyicu(code):
8    locale = PyICULocale(code)
9    return locale.getDisplayName(locale)
10
11def read_all_codes():
12    fdp = subprocess.Popen(['locale', '-a'], stdout=subprocess.PIPE)
13    lines = fdp.stdout.read().split('\n')
14    codes = []
15
16    for line in lines:
17        if line.endswith('utf8'):
18            codes.append(line)
19
20    #FIXME: This is a temporary workaround for locales that are essential to
21    # OLPC, but are not in Glibc yet.
22    for code in ['ht_HT.utf8', 'fa_AF.utf8', 'ps_AF.utf8']:
23        codes.append(code)
24
25    return codes
26
27if __name__ == '__main__':
28    available_codes = read_all_codes()
29
30    names_pyicu = {}
31    for code in available_codes:
32        locale_name = get_locale_name_pyicu(code)
33        names_pyicu[code] = locale_name