From 3208e0439b1e806a6a472d25f1976954fa84515b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 12 May 2008 06:37:57 -0700 Subject: [PATCH] Updated translations --- src/calibre/__init__.py | 26 +- src/calibre/translations/__init__.py | 17 +- src/calibre/translations/bg.po | 243 +-- src/calibre/translations/ca.po | 245 +-- src/calibre/translations/data.py | 2 +- src/calibre/translations/de.po | 245 +-- src/calibre/translations/es.po | 245 +-- src/calibre/translations/fr.po | 245 +-- src/calibre/translations/it.po | 245 +-- src/calibre/translations/nds.po | 2271 ++++++++++++++++++++++++++ src/calibre/translations/sl.po | 243 +-- 11 files changed, 3231 insertions(+), 796 deletions(-) create mode 100644 src/calibre/translations/nds.po diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index 8cbe0fddbe..777cb2203d 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -276,21 +276,23 @@ def set_translator(): lang = locale.getdefaultlocale()[0] if lang is None and os.environ.has_key('LANG'): # Needed for OS X try: - lang = os.environ['LANG'][:2] + lang = os.environ['LANG'] except: pass if lang: - lang = lang[:2] - buf = None - if os.access(lang+'.po', os.R_OK): - buf = cStringIO.StringIO() - make(lang+'.po', buf) - buf = cStringIO.StringIO(buf.getvalue()) - elif translations.has_key(lang): - buf = cStringIO.StringIO(translations[lang]) - if buf is not None: - t = GNUTranslations(buf) - t.install(unicode=True) + match = re.match('[a-z]{2,3}', lang) + if match: + lang = match.group() + buf = None + if os.access(lang+'.po', os.R_OK): + buf = cStringIO.StringIO() + make(lang+'.po', buf) + buf = cStringIO.StringIO(buf.getvalue()) + elif translations.has_key(lang): + buf = cStringIO.StringIO(translations[lang]) + if buf is not None: + t = GNUTranslations(buf) + t.install(unicode=True) set_translator() diff --git a/src/calibre/translations/__init__.py b/src/calibre/translations/__init__.py index ca402941b9..7dc22e548e 100644 --- a/src/calibre/translations/__init__.py +++ b/src/calibre/translations/__init__.py @@ -4,7 +4,7 @@ __copyright__ = '2008, Kovid Goyal ' Manage translation of user visible strings. ''' -import sys, os, cStringIO, tempfile, subprocess, functools, tarfile +import sys, os, cStringIO, tempfile, subprocess, functools, tarfile, re check_call = functools.partial(subprocess.check_call, shell=True) from calibre.translations.pygettext import main as pygettext @@ -18,6 +18,7 @@ TRANSLATIONS = [ 'es', 'it', 'bg', + 'nds', ] def source_files(): @@ -29,7 +30,21 @@ def source_files(): return ans +def update_po_files(tarball): + tf = tarfile.open(tarball, 'r:gz') + next = tf.next() + while next is not None: + if next.name.endswith('.po'): + po = re.search(r'-([a-z]{2,3}\.po)', next.name).group(1) + print 'Updating', po + tf.extract(next, os.path.abspath(po)) + next = tf.next() + + return 0 + def main(args=sys.argv): + if args[-1].endswith('.tar.gz'): + return update_po_files(args[-1]) tdir = os.path.dirname(__file__) files = source_files() buf = cStringIO.StringIO() diff --git a/src/calibre/translations/bg.po b/src/calibre/translations/bg.po index 88527f8c85..7a83947792 100644 --- a/src/calibre/translations/bg.po +++ b/src/calibre/translations/bg.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: calibre 0.4.51\n" -"POT-Creation-Date: 2008-05-09 22:40+PDT\n" +"POT-Creation-Date: 2008-05-12 06:21+PDT\n" "PO-Revision-Date: 2008-05-05 05:15+PDT\n" "Last-Translator: Automatically generated\n" "Language-Team: bg\n" @@ -33,7 +33,8 @@ msgid "" msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:91 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:608 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:235 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:623 msgid "Unknown" msgstr "" @@ -55,7 +56,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/ebooks/lrf/__init__.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:16 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:336 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:351 msgid "Publisher" msgstr "" @@ -316,90 +317,90 @@ msgstr "" msgid "Fetching of recipe failed: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:308 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:310 msgid "\tBook Designer file detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:310 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:312 msgid "\tParsing HTML..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:332 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:334 msgid "\tBaen file detected. Re-parsing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:348 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:350 msgid "Written preprocessed HTML to " msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:361 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:367 msgid "Processing %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:375 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:381 msgid "\tConverting to BBeB..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:513 -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:520 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:519 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:526 msgid "Could not parse file: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:532 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:538 msgid "Failed to parse link %s %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:575 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:581 msgid "Cannot add link %s to TOC" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:917 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:923 msgid "Unable to process image %s. Error: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:955 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:961 msgid "Unable to process interlaced PNG %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:970 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:976 msgid "" "Could not process image: %s\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1660 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1667 msgid "An error occurred while processing a table: %s. Ignoring table markup." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1662 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1669 msgid "" "Bad table:\n" "%s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1684 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1691 msgid "Table has cell that is too large" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1714 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1721 msgid "" "You have to save the website %s as an html file first and then run html2lrf " "on it." msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1754 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1761 msgid "Could not read cover image: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1757 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1764 msgid "Cannot read from: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1886 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1893 msgid "Failed to process opf file" msgstr "" -#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1892 +#: /home/kovid/work/calibre/src/calibre/ebooks/lrf/html/convert_from.py:1899 msgid "" "Usage: %prog [options] mybook.html\n" "\n" @@ -657,15 +658,38 @@ msgstr "" msgid "OEB ebook created in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:42 -msgid "Choose Format" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:27 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:28 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:14 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:232 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:346 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:693 +msgid "Title" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info.py:29 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:69 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:628 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:325 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:218 +msgid "Comments" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:66 +msgid "Dialog" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:67 +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/book_info_ui.py:68 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:43 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:62 msgid "TextLabel" msgstr "" +#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_ui.py:42 +msgid "Choose Format" +msgstr "" + #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:89 msgid "
Must be a directory." msgstr "" @@ -858,7 +882,7 @@ msgid "Convert %s to LRF" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single.py:97 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:149 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:151 msgid "Set conversion defaults" msgstr "" @@ -1068,12 +1092,6 @@ msgstr "" msgid "Book " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:628 -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:325 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:218 -msgid "Comments" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/lrf_single_ui.py:629 msgid "Base &font size:" msgstr "" @@ -1354,12 +1372,6 @@ msgstr "" msgid "&Show password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:14 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:331 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:678 -msgid "Title" -msgstr "" - #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:15 msgid "Author" msgstr "" @@ -1370,12 +1382,12 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:18 #: /home/kovid/work/calibre/src/calibre/gui2/library.py:223 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:353 msgid "Series" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/search.py:19 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:612 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:627 msgid "Format" msgstr "" @@ -1743,9 +1755,9 @@ msgid "None" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library.py:208 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:337 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:618 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:682 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:352 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:633 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:697 msgid "Tags" msgstr "" @@ -1757,38 +1769,39 @@ msgstr "" msgid "Book %s of %s." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:323 -msgid "Double click to edit me

" -msgstr "" - -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:332 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:679 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:237 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:347 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:694 msgid "Author(s)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:333 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:680 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:338 +msgid "Double click to edit me

" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:348 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:695 msgid "Size (MB)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:334 -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:349 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:696 msgid "Date" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:335 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:350 msgid "Rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:613 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:628 msgid "Path" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:617 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:632 msgid "Timestamp" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/library.py:717 +#: /home/kovid/work/calibre/src/calibre/gui2/library.py:732 msgid "Search (For Advanced Search click the button to the left)" msgstr "" @@ -1852,73 +1865,73 @@ msgstr "" msgid "Configure" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:72 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:73 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:102 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:104 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:103 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:105 msgid "Send to storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:106 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:108 msgid "Edit metadata individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:107 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:109 msgid "Edit metadata in bulk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:112 msgid "Add books from a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:111 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:113 msgid "" "Add books recursively (One book per directory, assumes every ebook file is " "the same book in a different format)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:112 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:114 msgid "" "Add books recursively (Multiple books per directory, assumes every ebook " "file is a different book)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:126 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:128 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:289 msgid "Save to disk" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:127 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:129 msgid "Save to disk in a single directory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:130 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:132 #: /home/kovid/work/calibre/src/calibre/gui2/main_ui.py:292 msgid "View" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:131 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:133 msgid "View specific format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:146 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:148 msgid "Convert individually" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:147 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:149 msgid "Bulk convert" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:260 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:261 msgid "Device database corrupted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:261 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:262 msgid "" "\n" "

The database of books on the reader is corrupted. Try the " @@ -1934,113 +1947,121 @@ msgid "" " " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:313 -#: /home/kovid/work/calibre/src/calibre/gui2/main.py:379 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:314 +#: /home/kovid/work/calibre/src/calibre/gui2/main.py:380 msgid "" "

Books with the same title as the following already exist in the database. " "Add them anyway?