]> git.donarmstrong.com Git - lilypond.git/blob - buildscripts/langdefs.py
Merge branch 'master' of ssh://hanwen@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / buildscripts / langdefs.py
1 #!@PYTHON@
2
3 """
4 Documentation i18n module
5 """
6
7 import re
8
9 def _ (s):
10     return s
11
12 def lang_file_name (p, langext, ext):
13     if langext != '':
14         return p + '.' + langext + ext
15     return p + ext
16
17 class LanguageDef:
18     def __init__ (self, code, name, webext=None, double_punct_char_sep='', html_filter=lambda s: s):
19         self.code = code
20         self.name = name
21         self.enabled = True
22         if webext == None:
23             self.webext = self.code
24         else:
25             self.webext = webext
26         self.double_punct_char_sep = double_punct_char_sep
27         self.html_filter = html_filter
28     
29     def file_name (self, prefix, ext):
30         return lang_file_name (prefix, self.webext, ext)
31
32
33 # All language information needed for documentation i18n is defined
34 # here. For each 'Documentation/ab' directory containing docs
35 # translated in 'ab', there should be an entry in LANGUAGES.
36
37 site = LanguageDef ('en', _('English'), webext='')
38
39 html_page_body = re.compile ('</?body>', re.M | re.I)
40 french_html_typo_rules = ((' :', '&nbsp;:'),
41                           (' ;', '&nbsp;;'),
42                           (' ?', '&thinsp;?'),
43                           (' !', '&thinsp;!'))
44
45 def french_html_filter (page):
46     parts = html_page_body.split (page)
47     for r in french_html_typo_rules:
48         parts[1] = parts[1].replace (r[0], r[1])
49     return parts[0] + '<body>' + parts[1] + '</body>' + parts[2]
50
51 fr = LanguageDef ('fr', _('French'), double_punct_char_sep='&nbsp;', html_filter = french_html_filter)
52 es = LanguageDef ('es', _('Spanish') )
53 de = LanguageDef ('de', _('German') )
54 #nl = LanguageDef ('nl', 'Nederlands')
55
56 # Outdated or broken translations may be disabled
57 # (please run 'make web-clean' before doing that):
58 #fr.enabled = False
59
60 LANGUAGES = (site, fr, es, de)
61
62 if __name__ == '__main__':
63     print ' '.join ([l.code for l in LANGUAGES if l.enabled and l.code != 'en'])
64 else:
65     LANGDICT = {}
66     for l in LANGUAGES:
67         LANGDICT[l.code] = l