From 3b9fd595b4150593619a6cfab6d216b50d303e46 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 2 Feb 2023 15:01:34 +0530 Subject: [PATCH] When updating metadata in EPUB 2 files and no language is specified, do not remove the tag as this causes epubcheck to complain. Instead set the language to "und". Fixes #2004522 [sendtokindle fails after editing](https://bugs.launchpad.net/calibre/+bug/2004522) --- src/calibre/ebooks/metadata/opf2.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/calibre/ebooks/metadata/opf2.py b/src/calibre/ebooks/metadata/opf2.py index d3a7a6744a..50dc3384a9 100644 --- a/src/calibre/ebooks/metadata/opf2.py +++ b/src/calibre/ebooks/metadata/opf2.py @@ -1106,9 +1106,14 @@ class OPF: # {{{ for x in matches: x.getparent().remove(x) + num_done = 0 for lang in val: l = self.create_metadata_element('language') self.set_text(l, str(lang)) + num_done += 1 + if num_done == 0: + l = self.create_metadata_element('language') + self.set_text(l, 'und') @property def raw_languages(self):