mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #888029 (downloaded index/feed page do not display Japanese charactor on Sony T1)
This commit is contained in:
parent
5e56b3dd60
commit
a893ed6fca
@ -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')
|
||||
|
||||
|
@ -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):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user