From 0e4e082ed7efac305ba05894d3c7af8b1e8614c5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 21 Aug 2011 10:57:06 -0600 Subject: [PATCH] When adding books that have no language specified, do not automaticallly set the langauge to calibre's interface language. Fixes #830092 (Downloading and adding books causes default language to be assigned) --- src/calibre/ebooks/metadata/opf2.py | 5 +++-- src/calibre/ebooks/metadata/worker.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index c52d089c70..9b8ae12b10 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -1312,7 +1312,7 @@ class OPFCreator(Metadata): ncx_stream.flush() -def metadata_to_opf(mi, as_string=True): +def metadata_to_opf(mi, as_string=True, default_lang=None): from lxml import etree import textwrap from calibre.ebooks.oeb.base import OPF, DC @@ -1328,7 +1328,8 @@ def metadata_to_opf(mi, as_string=True): '[http://calibre-ebook.com]' if not mi.languages: - lang = get_lang().replace('_', '-').partition('-')[0] + lang = (get_lang().replace('_', '-').partition('-')[0] if default_lang + is None else default_lang) mi.languages = [lang] root = etree.fromstring(textwrap.dedent( diff --git a/src/calibre/ebooks/metadata/worker.py b/src/calibre/ebooks/metadata/worker.py index ca8707258b..cab582a264 100644 --- a/src/calibre/ebooks/metadata/worker.py +++ b/src/calibre/ebooks/metadata/worker.py @@ -33,7 +33,7 @@ def serialize_metadata_for(formats, tdir, id_): if not mi.application_id: mi.application_id = '__calibre_dummy__' with open(os.path.join(tdir, '%s.opf'%id_), 'wb') as f: - f.write(metadata_to_opf(mi)) + f.write(metadata_to_opf(mi, default_lang='und')) if cdata: with open(os.path.join(tdir, str(id_)), 'wb') as f: f.write(cdata)