]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/langdefs.py
Doc-es: various updates.
[lilypond.git] / python / langdefs.py
index 2b79caee70e581e5ee804ec9cbf5d55b46d58ee4..7511ffb2f155fd99d67ecff9e226fdae82a5d28c 100644 (file)
@@ -6,6 +6,8 @@ Documentation i18n module
 """
 
 import re
+import sys
+import os
 
 def lang_file_name (p, langext, ext):
     if langext != '':
@@ -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='', html_filter=lambda s: s):
+    def __init__ (self, code, name, webext=None, double_punct_char_sep='', html_filter=lambda s: s, enable_ly_identifier_l10n=True):
         self.code = code
         self.name = name
         self.enabled = True
@@ -23,7 +25,7 @@ class LanguageDef:
             self.webext = webext
         self.double_punct_char_sep = double_punct_char_sep
         self.html_filter = html_filter
-    
+        self.enable_ly_identifier_l10n = enable_ly_identifier_l10n
     def file_name (self, prefix, ext):
         return lang_file_name (prefix, self.webext, ext)
 
@@ -34,27 +36,49 @@ class LanguageDef:
 
 site = LanguageDef ('en', 'English', webext='')
 
-html_page_body = re.compile ('</?body>', re.M | re.I)
+html_body_re = re.compile ('<body.*?>', re.I)
+html_end_body_re = re.compile ('</body>', re.I)
 french_html_typo_rules = ((' :', '&nbsp;:'),
                           (' ;', '&nbsp;;'),
-                          (' ?', '&thinsp;?'),
-                          (' !', '&thinsp;!'))
+                          (' ?', '<font size="-4">&nbsp;</font>?'),
+                          (' !', '<font size="-4">&nbsp;</font>!'))
 
 def french_html_filter (page):
-    parts = html_page_body.split (page)
+    m = html_body_re.search (page)
+    if m:
+        body_begin = m.end ()
+    else:
+        body_begin = 0
+    m = html_end_body_re.search (page)
+    if m:
+        body_end = m.start ()
+    else:
+        body_end = len (page)
+    body = page[body_begin:body_end]
     for r in french_html_typo_rules:
-        parts[1] = parts[1].replace (r[0], r[1])
-    return parts[0] + '<body>' + parts[1] + '</body>' + parts[2]
+        body = body.replace (r[0], r[1])
+    return page[:body_begin] + body + page[body_end:]
 
-fr = LanguageDef ('fr', 'français', double_punct_char_sep='&nbsp;', html_filter = french_html_filter)
-es = LanguageDef ('es', 'español')
+ca = LanguageDef ('ca', 'català')
+cs = LanguageDef ('cs', 'česky', enable_ly_identifier_l10n=False)
 de = LanguageDef ('de', 'deutsch')
+es = LanguageDef ('es', 'español')
+fr = LanguageDef ('fr', 'français', double_punct_char_sep='&nbsp;', html_filter = french_html_filter)
+hu = LanguageDef ('hu', 'magyar')
+it = LanguageDef ('it', 'italiano')
+ja = LanguageDef ('ja', '日本語', enable_ly_identifier_l10n=False)
+nl = LanguageDef ('nl', 'nederlands')
+zh = LanguageDef ('zh', '中文', enable_ly_identifier_l10n=False)
 
 # Outdated or broken translations may be disabled
-# (please run 'make web-clean' before doing that):
+# (please run 'make doc-clean' before doing that):
 #fr.enabled = False
 
-LANGUAGES = (site, fr, es, de)
+LANGUAGES = (site, ca, cs, de, es, fr, hu, it, ja, nl, zh)
+WEB_LANGUAGES = (site, ca, cs, de, es, fr, hu, it, ja, nl, zh)
+
+if os.getenv("MAKEWEB") == '1':
+    LANGUAGES=WEB_LANGUAGES
 
 if __name__ == '__main__':
     print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
@@ -65,7 +89,6 @@ else:
 
     try:
         import gettext
-        import os
 
         translation = {}
         for l in LANGUAGES:
@@ -75,5 +98,6 @@ else:
                                         [l.code])
                 translation[l.code] = t.gettext
     except:
-        sys.stderr.write ('URGUHIU\n')
+        if os.environ.has_key ('LYDOC_LOCALEDIR'):
+            sys.stderr.write ('langdefs.py: warning: lilypond-doc gettext domain not found.\n')
         translation = dict ([(l.code, lambda x: x) for l in LANGUAGES])