import re
import sys
+import os
def lang_file_name (p, langext, ext):
if langext != '':
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
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)
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 = ((' :', ' :'),
(' ;', ' ;'),
- (' ?', ' ?'),
- (' !', ' !'))
+ (' ?', '<font size="-4"> </font>?'),
+ (' !', '<font size="-4"> </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=' ', html_filter = french_html_filter)
es = LanguageDef ('es', 'español')
de = LanguageDef ('de', 'deutsch')
-
+# FIXME: should use localized name for ja
+ja = LanguageDef ('ja', 'japanese')
# 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, fr, es, de, ja)
if __name__ == '__main__':
print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
try:
import gettext
- import os
translation = {}
for l in LANGUAGES:
[l.code])
translation[l.code] = t.gettext
except:
- sys.stderr.write ('langdefs.py: warning: lilypond-doc gettext domain not found.\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])