EPUB Output: Ensure that language setting is conformant to the specs

This commit is contained in:
Kovid Goyal 2010-06-28 19:29:05 -06:00
parent f861a14a08
commit b688d39934
5 changed files with 8 additions and 6 deletions

View File

@ -2347,7 +2347,7 @@ class ITUNES(DriverBase):
self.log.info(" add timestamp: %s" % metadata.timestamp) self.log.info(" add timestamp: %s" % metadata.timestamp)
# Force the language declaration for iBooks 1.1 # Force the language declaration for iBooks 1.1
metadata.language = get_lang() metadata.language = get_lang().replace('_', '-')
if DEBUG: if DEBUG:
self.log.info(" rewriting language: <dc:language>%s</dc:language>" % metadata.language) self.log.info(" rewriting language: <dc:language>%s</dc:language>" % metadata.language)

View File

@ -92,7 +92,7 @@ class CHMInput(InputFormatPlugin):
metadata.add('identifier', mi.isbn, attrib={'scheme':'ISBN'}) metadata.add('identifier', mi.isbn, attrib={'scheme':'ISBN'})
if not metadata.language: if not metadata.language:
oeb.logger.warn(u'Language not specified') oeb.logger.warn(u'Language not specified')
metadata.add('language', get_lang()) metadata.add('language', get_lang().replace('_', '-'))
if not metadata.creator: if not metadata.creator:
oeb.logger.warn('Creator not specified') oeb.logger.warn('Creator not specified')
metadata.add('creator', _('Unknown')) metadata.add('creator', _('Unknown'))

View File

@ -329,7 +329,7 @@ class HTMLInput(InputFormatPlugin):
metadata.add('identifier', mi.isbn, attrib={'scheme':'ISBN'}) metadata.add('identifier', mi.isbn, attrib={'scheme':'ISBN'})
if not metadata.language: if not metadata.language:
oeb.logger.warn(u'Language not specified') oeb.logger.warn(u'Language not specified')
metadata.add('language', get_lang()) metadata.add('language', get_lang().replace('_', '-'))
if not metadata.creator: if not metadata.creator:
oeb.logger.warn('Creator not specified') oeb.logger.warn('Creator not specified')
metadata.add('creator', self.oeb.translate(__('Unknown'))) metadata.add('creator', self.oeb.translate(__('Unknown')))

View File

@ -1069,7 +1069,8 @@ class OPFCreator(MetaInformation):
dc_attrs={'id':__appname__+'_id'})) dc_attrs={'id':__appname__+'_id'}))
if getattr(self, 'pubdate', None) is not None: if getattr(self, 'pubdate', None) is not None:
a(DC_ELEM('date', self.pubdate.isoformat())) a(DC_ELEM('date', self.pubdate.isoformat()))
a(DC_ELEM('language', self.language if self.language else get_lang())) a(DC_ELEM('language', self.language if self.language else
get_lang().replace('_', '-')))
if self.comments: if self.comments:
a(DC_ELEM('description', self.comments)) a(DC_ELEM('description', self.comments))
if self.publisher: if self.publisher:
@ -1194,7 +1195,8 @@ def metadata_to_opf(mi, as_string=True):
factory(DC('identifier'), mi.isbn, scheme='ISBN') factory(DC('identifier'), mi.isbn, scheme='ISBN')
if mi.rights: if mi.rights:
factory(DC('rights'), mi.rights) factory(DC('rights'), mi.rights)
factory(DC('language'), mi.language if mi.language and mi.language.lower() != 'und' else get_lang()) factory(DC('language'), mi.language if mi.language and mi.language.lower()
!= 'und' else get_lang().replace('_', '-'))
if mi.tags: if mi.tags:
for tag in mi.tags: for tag in mi.tags:
factory(DC('subject'), tag) factory(DC('subject'), tag)

View File

@ -131,7 +131,7 @@ class OEBReader(object):
stream = cStringIO.StringIO(etree.tostring(opf)) stream = cStringIO.StringIO(etree.tostring(opf))
mi = MetaInformation(OPF(stream)) mi = MetaInformation(OPF(stream))
if not mi.language: if not mi.language:
mi.language = get_lang() mi.language = get_lang().replace('_', '-')
self.oeb.metadata.add('language', mi.language) self.oeb.metadata.add('language', mi.language)
if not mi.title: if not mi.title:
mi.title = self.oeb.translate(__('Unknown')) mi.title = self.oeb.translate(__('Unknown'))