mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Switch to using more modern language names/translations from the iso-codes package, rather than pycountry
This commit is contained in:
parent
b950d14b0c
commit
a30460bda8
@ -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
|
||||
|
2169
setup/iso639.xml
2169
setup/iso639.xml
File diff suppressed because it is too large
Load Diff
3
setup/iso_639/README
Normal file
3
setup/iso_639/README
Normal 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
33228
setup/iso_639/zu.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
||||
# }}}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user