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:
|
finally:
|
||||||
self.cleanup()
|
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):
|
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 '')
|
css = self.template_css + '\n\n' +(self.extra_css if self.extra_css else '')
|
||||||
timefmt = self.timefmt
|
timefmt = self.timefmt
|
||||||
if self.touchscreen:
|
|
||||||
templ = templates.TouchscreenIndexTemplate()
|
|
||||||
return templ.generate(self.title, "mastheadImage.jpg", timefmt, feeds,
|
return templ.generate(self.title, "mastheadImage.jpg", timefmt, feeds,
|
||||||
extra_css=css).render(doctype='xhtml')
|
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+u'\u2026' if isinstance(ans, unicode) else ans + '...'
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def feed2index(self, f, feeds):
|
def feed2index(self, f, feeds):
|
||||||
feed = feeds[f]
|
feed = feeds[f]
|
||||||
if feed.image_url is not None: # Download feed image
|
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')
|
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 '')
|
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,
|
return templ.generate(f, feeds, self.description_limiter,
|
||||||
extra_css=css).render(doctype='xhtml')
|
extra_css=css).render(doctype='xhtml')
|
||||||
|
|
||||||
|
@ -22,6 +22,9 @@ class Template(object):
|
|||||||
|
|
||||||
IS_HTML = True
|
IS_HTML = True
|
||||||
|
|
||||||
|
def __init__(self, lang=None):
|
||||||
|
self.html_lang = lang
|
||||||
|
|
||||||
def generate(self, *args, **kwargs):
|
def generate(self, *args, **kwargs):
|
||||||
if not kwargs.has_key('style'):
|
if not kwargs.has_key('style'):
|
||||||
kwargs['style'] = ''
|
kwargs['style'] = ''
|
||||||
@ -100,6 +103,8 @@ class IndexTemplate(Template):
|
|||||||
ul,
|
ul,
|
||||||
CLASS('calibre_rescale_100'))
|
CLASS('calibre_rescale_100'))
|
||||||
self.root = HTML(head, BODY(div))
|
self.root = HTML(head, BODY(div))
|
||||||
|
if self.html_lang:
|
||||||
|
self.root.set('lang', self.html_lang)
|
||||||
|
|
||||||
class FeedTemplate(Template):
|
class FeedTemplate(Template):
|
||||||
|
|
||||||
@ -174,6 +179,9 @@ class FeedTemplate(Template):
|
|||||||
div.append(ul)
|
div.append(ul)
|
||||||
div.append(self.get_navbar(f, feeds, top=False))
|
div.append(self.get_navbar(f, feeds, top=False))
|
||||||
self.root = HTML(head, body)
|
self.root = HTML(head, body)
|
||||||
|
if self.html_lang:
|
||||||
|
self.root.set('lang', self.html_lang)
|
||||||
|
|
||||||
|
|
||||||
class NavBarTemplate(Template):
|
class NavBarTemplate(Template):
|
||||||
|
|
||||||
@ -262,6 +270,9 @@ class TouchscreenIndexTemplate(Template):
|
|||||||
DIV(CLASS('divider')),
|
DIV(CLASS('divider')),
|
||||||
toc)
|
toc)
|
||||||
self.root = HTML(head, BODY(div))
|
self.root = HTML(head, BODY(div))
|
||||||
|
if self.html_lang:
|
||||||
|
self.root.set('lang', self.html_lang)
|
||||||
|
|
||||||
|
|
||||||
class TouchscreenFeedTemplate(Template):
|
class TouchscreenFeedTemplate(Template):
|
||||||
|
|
||||||
@ -363,6 +374,9 @@ class TouchscreenFeedTemplate(Template):
|
|||||||
div.append(BR())
|
div.append(BR())
|
||||||
div.append(bottom_navbar)
|
div.append(bottom_navbar)
|
||||||
self.root = HTML(head, body)
|
self.root = HTML(head, body)
|
||||||
|
if self.html_lang:
|
||||||
|
self.root.set('lang', self.html_lang)
|
||||||
|
|
||||||
|
|
||||||
class TouchscreenNavBarTemplate(Template):
|
class TouchscreenNavBarTemplate(Template):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user