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