From 57ee28fbd1fcf79f19a550bea64ab88ab3c60e1d Mon Sep 17 00:00:00 2001 From: John Mandereau Date: Tue, 1 May 2007 13:36:41 +0200 Subject: [PATCH] Add Texinfo HTML postprocessing for better French typography --- buildscripts/html-gettext.py | 1 + buildscripts/langdefs.py | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/buildscripts/html-gettext.py b/buildscripts/html-gettext.py index 7ac33dccc3..1aebf6ca34 100644 --- a/buildscripts/html-gettext.py +++ b/buildscripts/html-gettext.py @@ -91,6 +91,7 @@ for filename in args[3:]: page = re.sub (r'(.+?)', rglos_gettext, page) for w in ('Next:', 'Previous:', 'Up:'): page = re.sub (w, _(w), page) + page = langdefs.LANGDICT[lang].html_filter (page) f = open (os.path.join (outdir, filename), 'w') f.write (page) f.close () diff --git a/buildscripts/langdefs.py b/buildscripts/langdefs.py index 915d5087ed..6886a60347 100644 --- a/buildscripts/langdefs.py +++ b/buildscripts/langdefs.py @@ -4,6 +4,8 @@ Documentation i18n module """ +import re + def _ (s): return s @@ -13,7 +15,7 @@ def lang_file_name (p, langext, ext): return p + ext class LanguageDef: - def __init__ (self, code, name, webext=None, double_punct_char_sep=''): + def __init__ (self, code, name, webext=None, double_punct_char_sep='', html_filter=lambda s: s): self.code = code self.name = name self.enabled = True @@ -22,6 +24,7 @@ class LanguageDef: else: self.webext = webext self.double_punct_char_sep = double_punct_char_sep + self.html_filter = html_filter def file_name (self, prefix, ext): return lang_file_name (prefix, self.webext, ext) @@ -32,7 +35,20 @@ class LanguageDef: # translated in 'ab', there should be an entry in LANGUAGES. site = LanguageDef ('en', _('English'), webext='') -fr = LanguageDef ('fr', _('French'), double_punct_char_sep=' ') + +html_page_body = re.compile ('', re.M | re.I) +french_html_typo_rules = ((' :', ' :'), + (' ;', ' ;'), + (' ?', ' ?'), + (' !', ' !')) + +def french_html_filter (page): + parts = html_page_body.split (page) + for r in french_html_typo_rules: + parts[1] = parts[1].replace (r[0], r[1]) + return parts[0] + '' + parts[1] + '' + parts[2] + +fr = LanguageDef ('fr', _('French'), double_punct_char_sep=' ', html_filter = french_html_filter) es = LanguageDef ('es', _('Spanish') ) de = LanguageDef ('de', _('German') ) #nl = LanguageDef ('nl', 'Nederlands') -- 2.39.5