diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py index 4c5b19ea99..14021cb142 100644 --- a/src/calibre/web/feeds/news.py +++ b/src/calibre/web/feeds/news.py @@ -842,12 +842,22 @@ class BasicNewsRecipe(Recipe): finally: self.cleanup() + @property + def lang_for_html(self): + try: + lang = self.language.replace('_', '-').partition('-')[0].lower() + if lang == 'und': + lang = None + except: + lang = None + return lang + def feeds2index(self, feeds): - templ = templates.IndexTemplate() + templ = (templates.TouchscreenIndexTemplate if self.touchscreen else + templates.IndexTemplate) + templ = templ(lang=self.lang_for_html) css = self.template_css + '\n\n' +(self.extra_css if self.extra_css else '') timefmt = self.timefmt - if self.touchscreen: - templ = templates.TouchscreenIndexTemplate() return templ.generate(self.title, "mastheadImage.jpg", timefmt, feeds, extra_css=css).render(doctype='xhtml') @@ -871,8 +881,6 @@ class BasicNewsRecipe(Recipe): return ans+u'\u2026' if isinstance(ans, unicode) else ans + '...' return ans - - def feed2index(self, f, feeds): feed = feeds[f] if feed.image_url is not None: # Download feed image @@ -900,12 +908,11 @@ class BasicNewsRecipe(Recipe): feed.image_url = feed.image_url.decode(sys.getfilesystemencoding(), 'strict') - templ = templates.FeedTemplate() + templ = (templates.TouchscreenFeedTemplate if self.touchscreen else + templates.FeedTemplate) + templ = templ(lang=self.lang_for_html) css = self.template_css + '\n\n' +(self.extra_css if self.extra_css else '') - if self.touchscreen: - templ = templates.TouchscreenFeedTemplate() - return templ.generate(f, feeds, self.description_limiter, extra_css=css).render(doctype='xhtml') diff --git a/src/calibre/web/feeds/templates.py b/src/calibre/web/feeds/templates.py index 225a78be5c..6fd40848c3 100644 --- a/src/calibre/web/feeds/templates.py +++ b/src/calibre/web/feeds/templates.py @@ -22,6 +22,9 @@ class Template(object): IS_HTML = True + def __init__(self, lang=None): + self.html_lang = lang + def generate(self, *args, **kwargs): if not kwargs.has_key('style'): kwargs['style'] = '' @@ -100,6 +103,8 @@ class IndexTemplate(Template): ul, CLASS('calibre_rescale_100')) self.root = HTML(head, BODY(div)) + if self.html_lang: + self.root.set('lang', self.html_lang) class FeedTemplate(Template): @@ -174,6 +179,9 @@ class FeedTemplate(Template): div.append(ul) div.append(self.get_navbar(f, feeds, top=False)) self.root = HTML(head, body) + if self.html_lang: + self.root.set('lang', self.html_lang) + class NavBarTemplate(Template): @@ -262,6 +270,9 @@ class TouchscreenIndexTemplate(Template): DIV(CLASS('divider')), toc) self.root = HTML(head, BODY(div)) + if self.html_lang: + self.root.set('lang', self.html_lang) + class TouchscreenFeedTemplate(Template): @@ -363,6 +374,9 @@ class TouchscreenFeedTemplate(Template): div.append(BR()) div.append(bottom_navbar) self.root = HTML(head, body) + if self.html_lang: + self.root.set('lang', self.html_lang) + class TouchscreenNavBarTemplate(Template):