diff options
Diffstat (limited to 'template.py')
-rwxr-xr-x | template.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/template.py b/template.py index aab6fddd..1fdf3b85 100755 --- a/template.py +++ b/template.py | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | import os | 3 | import os |
4 | import sys | 4 | import sys |
5 | import re | ||
5 | import gettext | 6 | import gettext |
6 | import jinja2 | 7 | import jinja2 |
7 | 8 | ||
@@ -10,7 +11,8 @@ if len(sys.argv) < 3: | |||
10 | 11 | ||
11 | in_file = sys.argv[1] | 12 | in_file = sys.argv[1] |
12 | locale = sys.argv[2] | 13 | locale = sys.argv[2] |
13 | out_file = sys.argv[3] | 14 | |
15 | name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups() | ||
14 | 16 | ||
15 | tr = gettext.translation("messages", | 17 | tr = gettext.translation("messages", |
16 | localedir="locale", | 18 | localedir="locale", |
@@ -23,12 +25,19 @@ env.install_gettext_translations(tr, newstyle=True) | |||
23 | 25 | ||
24 | tmpl = env.get_template(in_file) | 26 | tmpl = env.get_template(in_file) |
25 | 27 | ||
28 | def self_localized(x): | ||
29 | return ".".join((name, x, ext)) | ||
30 | |||
31 | def url_localized(my_file): | ||
32 | my_name, my_ext = re.match(r"(.*)\.([^.]+)$", my_file).groups() | ||
33 | return ".".join((my_name, locale, my_ext)) | ||
34 | |||
26 | def url(x): | 35 | def url(x): |
27 | # TODO: look at the app root environment variable | 36 | # TODO: look at the app root environment variable |
28 | # TODO: check if file exists | 37 | # TODO: check if file exists |
29 | return x | 38 | return x |
30 | 39 | ||
31 | import codecs | 40 | import codecs |
32 | f = codecs.open(out_file, "w", "utf-8") | 41 | f = codecs.open(".".join((name, locale, ext)), "w", "utf-8") |
33 | f.write(tmpl.render(lang=locale, url=url)) | 42 | f.write(tmpl.render(lang=locale, url=url, self_localized=self_localized, url_localized=url_localized)) |
34 | f.close() | 43 | f.close() |