| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/calibre/calibre/spell/ |
Upload File : |
#!/usr/bin/env python3
__license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
from collections import namedtuple
from calibre.utils.localization import canonicalize_lang, load_iso3166
DictionaryLocale = namedtuple('DictionaryLocale', 'langcode countrycode')
def get_codes():
data = load_iso3166()
return data['codes'], data['three_map']
def parse_lang_code(raw):
raw = raw or ''
parts = raw.replace('_', '-').split('-')
lc = canonicalize_lang(parts[0])
if lc is None:
raise ValueError('Invalid language code: %r' % raw)
cc = None
for sc in ['Cyrl', 'Latn']:
if sc in parts:
parts.remove(sc)
if len(parts) > 1:
ccodes, ccodemap = get_codes()[:2]
q = parts[1].upper()
if q in ccodes:
cc = q
else:
cc = ccodemap.get(q, None)
return DictionaryLocale(lc, cc)