Switch to using more modern language names/translations from the iso-codes package, rather than pycountry

This commit is contained in:
Kovid Goyal 2011-08-25 08:34:28 -06:00
parent b950d14b0c
commit a30460bda8
84 changed files with 2673807 additions and 2197 deletions

View File

@ -9,6 +9,12 @@ License: GPL-2 or later
The full text of the GPL is distributed as in
/usr/share/common-licenses/GPL-2 on Debian systems.
Files: setup/iso_639/*
Copyright: Various
License: LGPL 2.1
The full text of the LGPL is distributed as in
/usr/share/common-licenses/LGPL-2.1 on Debian systems.
Files: src/calibre/ebooks/BeautifulSoup.py
Copyright: Copyright (c) 2004-2007, Leonard Richardson
License: BSD

File diff suppressed because it is too large Load Diff

3
setup/iso_639/README Normal file
View File

@ -0,0 +1,3 @@
These files are taken from the iso-codes package, licensed under the LGPL 2.1
All the files are from the iso_639_3 sub-directory.

34266
setup/iso_639/af.po Normal file

File diff suppressed because it is too large Load Diff

33173
setup/iso_639/am.po Normal file

File diff suppressed because it is too large Load Diff

33365
setup/iso_639/ar.po Normal file

File diff suppressed because it is too large Load Diff

33394
setup/iso_639/az.po Normal file

File diff suppressed because it is too large Load Diff

30849
setup/iso_639/bg.po Normal file

File diff suppressed because it is too large Load Diff

33998
setup/iso_639/bn_IN.po Normal file

File diff suppressed because it is too large Load Diff

30899
setup/iso_639/br.po Normal file

File diff suppressed because it is too large Load Diff

33078
setup/iso_639/bs.po Normal file

File diff suppressed because it is too large Load Diff

33173
setup/iso_639/byn.po Normal file

File diff suppressed because it is too large Load Diff

33938
setup/iso_639/ca.po Normal file

File diff suppressed because it is too large Load Diff

30926
setup/iso_639/crh.po Normal file

File diff suppressed because it is too large Load Diff

33542
setup/iso_639/cs.po Normal file

File diff suppressed because it is too large Load Diff

34256
setup/iso_639/cy.po Normal file

File diff suppressed because it is too large Load Diff

34952
setup/iso_639/da.po Normal file

File diff suppressed because it is too large Load Diff

35241
setup/iso_639/de.po Normal file

File diff suppressed because it is too large Load Diff

32435
setup/iso_639/el.po Normal file

File diff suppressed because it is too large Load Diff

34969
setup/iso_639/eo.po Normal file

File diff suppressed because it is too large Load Diff

34978
setup/iso_639/es.po Normal file

File diff suppressed because it is too large Load Diff

33392
setup/iso_639/et.po Normal file

File diff suppressed because it is too large Load Diff

33195
setup/iso_639/eu.po Normal file

File diff suppressed because it is too large Load Diff

34699
setup/iso_639/fa.po Normal file

File diff suppressed because it is too large Load Diff

35015
setup/iso_639/fi.po Normal file

File diff suppressed because it is too large Load Diff

30860
setup/iso_639/fr.po Normal file

File diff suppressed because it is too large Load Diff

35031
setup/iso_639/ga.po Normal file

File diff suppressed because it is too large Load Diff

33173
setup/iso_639/gez.po Normal file

File diff suppressed because it is too large Load Diff

30865
setup/iso_639/gl.po Normal file

File diff suppressed because it is too large Load Diff

30893
setup/iso_639/gu.po Normal file

File diff suppressed because it is too large Load Diff

33228
setup/iso_639/he.po Normal file

File diff suppressed because it is too large Load Diff

33178
setup/iso_639/hi.po Normal file

File diff suppressed because it is too large Load Diff

33298
setup/iso_639/hr.po Normal file

File diff suppressed because it is too large Load Diff

35252
setup/iso_639/hu.po Normal file

File diff suppressed because it is too large Load Diff

34070
setup/iso_639/id.po Normal file

File diff suppressed because it is too large Load Diff

33229
setup/iso_639/is.po Normal file

File diff suppressed because it is too large Load Diff

39178
setup/iso_639/iso_639_3.xml Normal file

File diff suppressed because it is too large Load Diff

30851
setup/iso_639/it.po Normal file

File diff suppressed because it is too large Load Diff

43196
setup/iso_639/ja.po Normal file

File diff suppressed because it is too large Load Diff

30927
setup/iso_639/kn.po Normal file

File diff suppressed because it is too large Load Diff

33380
setup/iso_639/ko.po Normal file

File diff suppressed because it is too large Load Diff

33153
setup/iso_639/kok.po Normal file

File diff suppressed because it is too large Load Diff

30897
setup/iso_639/lt.po Normal file

File diff suppressed because it is too large Load Diff

33227
setup/iso_639/lv.po Normal file

File diff suppressed because it is too large Load Diff

33247
setup/iso_639/mi.po Normal file

File diff suppressed because it is too large Load Diff

33236
setup/iso_639/mk.po Normal file

File diff suppressed because it is too large Load Diff

34585
setup/iso_639/mn.po Normal file

File diff suppressed because it is too large Load Diff

30867
setup/iso_639/mr.po Normal file

File diff suppressed because it is too large Load Diff

33374
setup/iso_639/ms.po Normal file

File diff suppressed because it is too large Load Diff

34967
setup/iso_639/mt.po Normal file

File diff suppressed because it is too large Load Diff

34114
setup/iso_639/nb.po Normal file

File diff suppressed because it is too large Load Diff

34201
setup/iso_639/nl.po Normal file

File diff suppressed because it is too large Load Diff

33810
setup/iso_639/nn.po Normal file

File diff suppressed because it is too large Load Diff

33062
setup/iso_639/nso.po Normal file

File diff suppressed because it is too large Load Diff

30863
setup/iso_639/oc.po Normal file

File diff suppressed because it is too large Load Diff

30863
setup/iso_639/or.po Normal file

File diff suppressed because it is too large Load Diff

30932
setup/iso_639/pa.po Normal file

File diff suppressed because it is too large Load Diff

30850
setup/iso_639/pl.po Normal file

File diff suppressed because it is too large Load Diff

31615
setup/iso_639/ps.po Normal file

File diff suppressed because it is too large Load Diff

34936
setup/iso_639/pt.po Normal file

File diff suppressed because it is too large Load Diff

32497
setup/iso_639/pt_BR.po Normal file

File diff suppressed because it is too large Load Diff

33391
setup/iso_639/ro.po Normal file

File diff suppressed because it is too large Load Diff

34947
setup/iso_639/ru.po Normal file

File diff suppressed because it is too large Load Diff

34991
setup/iso_639/rw.po Normal file

File diff suppressed because it is too large Load Diff

33228
setup/iso_639/sk.po Normal file

File diff suppressed because it is too large Load Diff

34187
setup/iso_639/sl.po Normal file

File diff suppressed because it is too large Load Diff

35064
setup/iso_639/sr.po Normal file

File diff suppressed because it is too large Load Diff

35064
setup/iso_639/sr@latin.po Normal file

File diff suppressed because it is too large Load Diff

35702
setup/iso_639/sv.po Normal file

File diff suppressed because it is too large Load Diff

30933
setup/iso_639/ta.po Normal file

File diff suppressed because it is too large Load Diff

30938
setup/iso_639/th.po Normal file

File diff suppressed because it is too large Load Diff

33173
setup/iso_639/ti.po Normal file

File diff suppressed because it is too large Load Diff

33173
setup/iso_639/tig.po Normal file

File diff suppressed because it is too large Load Diff

34572
setup/iso_639/tr.po Normal file

File diff suppressed because it is too large Load Diff

33506
setup/iso_639/tt.po Normal file

File diff suppressed because it is too large Load Diff

30851
setup/iso_639/uk.po Normal file

File diff suppressed because it is too large Load Diff

34473
setup/iso_639/ve.po Normal file

File diff suppressed because it is too large Load Diff

34958
setup/iso_639/vi.po Normal file

File diff suppressed because it is too large Load Diff

34192
setup/iso_639/wa.po Normal file

File diff suppressed because it is too large Load Diff

33142
setup/iso_639/xh.po Normal file

File diff suppressed because it is too large Load Diff

33214
setup/iso_639/zh_CN.po Normal file

File diff suppressed because it is too large Load Diff

33204
setup/iso_639/zh_TW.po Normal file

File diff suppressed because it is too large Load Diff

33228
setup/iso_639/zu.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,6 @@ __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import os, tempfile, shutil, subprocess, glob, re, time, textwrap
from distutils import sysconfig
from functools import partial
from setup import Command, __appname__, __version__
@ -142,19 +141,18 @@ class Translations(POT): # {{{
os.makedirs(base)
self.info('\tCompiling translations for', locale)
subprocess.check_call(['msgfmt', '-o', dest, f])
if locale in ('en_GB', 'en_CA', 'en_AU', 'si', 'ur', 'sc', 'ltg', 'nds', 'te', 'yi'):
continue
pycountry = self.j(sysconfig.get_python_lib(), 'pycountry',
'locales', locale, 'LC_MESSAGES')
if os.path.exists(pycountry):
iso639 = self.j(pycountry, 'iso639.mo')
dest = self.j(self.d(dest), self.b(iso639))
if self.newer(dest, iso639) and os.path.exists(iso639):
iscpo = {'bn':'bn_IN', 'zh_HK':'zh_CN'}.get(locale, locale)
iso639 = self.j(self.d(self.SRC), 'setup', 'iso_639',
'%s.po'%iscpo)
if os.path.exists(iso639):
dest = self.j(self.d(dest), 'iso639.mo')
if self.newer(dest, iso639):
self.info('\tCopying ISO 639 translations')
shutil.copy2(iso639, dest)
else:
self.warn('No ISO 639 translations for locale:', locale,
'\nDo you have pycountry installed?')
subprocess.check_call(['msgfmt', '-o', dest, iso639])
elif locale not in ('en_GB', 'en_CA', 'en_AU', 'si', 'ur', 'sc',
'ltg', 'nds', 'te', 'yi', 'fo', 'sq', 'ast', 'ml'):
self.warn('No ISO 639 translations for locale:', locale)
self.write_stats()
self.freeze_locales()
@ -212,7 +210,7 @@ class Translations(POT): # {{{
# }}}
class GetTranslations(Translations):
class GetTranslations(Translations): # {{{
description = 'Get updated translations from Launchpad'
BRANCH = 'lp:~kovid/calibre/translations'
@ -273,24 +271,25 @@ class GetTranslations(Translations):
subprocess.check_call(['bzr', 'commit', '-m',
'IGN:Translation corrections', cls.PATH])
# }}}
class ISO639(Command):
class ISO639(Command): # {{{
description = 'Compile translations for ISO 639 codes'
DEST = os.path.join(os.path.dirname(POT.SRC), 'resources', 'localization',
'iso639.pickle')
def run(self, opts):
src = self.j(self.d(self.SRC), 'setup', 'iso639.xml')
src = self.j(self.d(self.SRC), 'setup', 'iso_639')
if not os.path.exists(src):
raise Exception(src + ' does not exist')
dest = self.DEST
if not self.newer(dest, src):
if not self.newer(dest, [src, __file__]):
self.info('Pickled code is up to date')
return
self.info('Pickling ISO-639 codes to', dest)
from lxml import etree
root = etree.fromstring(open(src, 'rb').read())
root = etree.fromstring(open(self.j(src, 'iso_639_3.xml'), 'rb').read())
by_2 = {}
by_3b = {}
by_3t = {}
@ -298,12 +297,16 @@ class ISO639(Command):
m3to2 = {}
m3bto3t = {}
nm = {}
codes2, codes3t, codes3b = set([]), set([]), set([])
for x in root.xpath('//iso_639_entry'):
codes2, codes3t, codes3b = set(), set(), set()
for x in root.xpath('//iso_639_3_entry'):
two = x.get('part1_code', None)
threet = x.get('id')
threeb = x.get('part2_code', None)
if threeb is None:
# Only recognize langauges in ISO-639-2
continue
name = x.get('name')
two = x.get('iso_639_1_code', None)
threeb = x.get('iso_639_2B_code')
threet = x.get('iso_639_2T_code')
if two is not None:
by_2[two] = name
codes2.add(two)
@ -313,13 +316,10 @@ class ISO639(Command):
by_3t[threet] = name
if threeb != threet:
m3bto3t[threeb] = threet
codes3b.add(x.get('iso_639_2B_code'))
codes3t.add(x.get('iso_639_2T_code'))
codes3b.add(threeb)
codes3t.add(threet)
base_name = name.lower()
nm[base_name] = threet
simple_name = base_name.partition(';')[0].strip()
if simple_name not in nm:
nm[simple_name] = threet
from cPickle import dump
x = {'by_2':by_2, 'by_3b':by_3b, 'by_3t':by_3t, 'codes2':codes2,
@ -331,4 +331,5 @@ class ISO639(Command):
if os.path.exists(self.DEST):
os.remove(self.DEST)
# }}}