From 428f5ba3ee5d2d45364af7b30ed3e9c6eda8e0f0 Mon Sep 17 00:00:00 2001 From: rupor Date: Wed, 15 Nov 2017 20:15:50 -0500 Subject: [PATCH] Additional book language processing for epub and fb2 --- modules/epub.py | 19 +++++++++++++++---- modules/fb2html.py | 4 +++- version.py | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/modules/epub.py b/modules/epub.py index 3d8529d..a8d7bd2 100644 --- a/modules/epub.py +++ b/modules/epub.py @@ -26,9 +26,11 @@ def __init__(self, opffile, config): self.book_series_num = '' # Номер в книжной серии self.book_lang = 'ru' - self.hyphenator = MyHyphen(self.book_lang) + self.hyphenate = config.current_profile['hyphens'] - self.replaceNBSP = config.current_profile['hyphensReplaceNBSP'] + if self.hyphenate: + self.replaceNBSP = config.current_profile['hyphensReplaceNBSP'] + self.hyphenator = MyHyphen(self.book_lang) self.opffile = opffile self.path = os.path.dirname(opffile) @@ -81,8 +83,17 @@ def process(self): node.text = title for node in self.root.iter('{*}language'): - self.book_lang = node.text - self.hyphenator.set_language(self.book_lang) + self.book_lang = node.text if len(node.text) > 2 else node.text.lower() + + if self.book_lang in ('rus'): + self.book_lang = 'ru' + + if self.hyphenate and self.hyphenator: + try: + self.hyphenator.set_language(self.book_lang.replace("-", "_")) + except: + self.log.warning('Unable to set hyphenation dictionary for language code "{}" - turning hyphenation off'.format(self.book_lang)) + self.hyphenate = False self.tree.write(self.opffile, encoding='utf-8', method='xml', xml_declaration=True, pretty_print=True) diff --git a/modules/fb2html.py b/modules/fb2html.py index 52f5b66..c592e47 100644 --- a/modules/fb2html.py +++ b/modules/fb2html.py @@ -497,11 +497,13 @@ def parse_description(self, elem): self.book_lang = t.text if len(t.text) > 2 else t.text.lower() else: self.book_lang = 'ru' + if self.book_lang in ('rus'): self.book_lang = 'ru' + if self.hyphenate and self.hyphenator: try: - self.hyphenator.set_language(self.book_lang) + self.hyphenator.set_language(self.book_lang.replace("-", "_")) except: self.log.warning('Unable to set hyphenation dictionary for language code "{}" - turning hyphenation off'.format(self.book_lang)) self.hyphenate = False diff --git a/version.py b/version.py index eb3a66e..e9434ab 100644 --- a/version.py +++ b/version.py @@ -4,5 +4,5 @@ WINDOWS = platform.system().lower() == "windows" -VERSION = u'3.6.41' +VERSION = u'3.6.42'