aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Gillmann <ng0@n0.is>2018-10-14 12:55:21 +0000
committerNils Gillmann <ng0@n0.is>2018-10-14 12:55:21 +0000
commitaa55a1897afbbeb3ef0dd0426219e1739b851c7a (patch)
treeb3d3832bb8d9508f819e9befd405d6e2b305cd65
parent672cdf7e7f69f8ae932a178f0d9dbdc9833b65d2 (diff)
downloadwww-aa55a1897afbbeb3ef0dd0426219e1739b851c7a.tar.gz
www-aa55a1897afbbeb3ef0dd0426219e1739b851c7a.zip
template + i18nfix: Minor cleanup + make it build compatible
Signed-off-by: Nils Gillmann <ng0@n0.is>
-rw-r--r--i18nfix.py2
-rwxr-xr-xtemplate.py44
2 files changed, 29 insertions, 17 deletions
diff --git a/i18nfix.py b/i18nfix.py
index b7fb4561..de58b954 100644
--- a/i18nfix.py
+++ b/i18nfix.py
@@ -7,8 +7,8 @@ Extract translations from a Jinja2 template, stripping leading newlines.
7@author Florian Dold 7@author Florian Dold
8""" 8"""
9 9
10import jinja2.ext
11import re 10import re
11import jinja2.ext
12 12
13 13
14def normalize(message): 14def normalize(message):
diff --git a/template.py b/template.py
index 6d587954..acf79b70 100755
--- a/template.py
+++ b/template.py
@@ -7,19 +7,31 @@
7# 7#
8# Note that the gettext files need to be prepared first. This script 8# Note that the gettext files need to be prepared first. This script
9# is thus to be invoked via the Makefile. 9# is thus to be invoked via the Makefile.
10#
11# We import unicode_literals until people have understood how unicode
12# with bytes and strings changed in python2->python3.
13from __future__ import unicode_literals
10import os 14import os
11import os.path 15import os.path
12import sys 16import sys
13import re 17import re
14import gettext 18import gettext
15import jinja2
16import glob 19import glob
17import codecs 20import codecs
18import os 21import jinja2
19sys.path.append(os.getcwd()) 22
20# ImportError: attempted relative import with no known parent package 23# FIXME: lint will complain about this. Do NOT! fix this by writing
21#from . import i18nfix 24# import i18nfix again, send an email to our developer list if you
22import i18nfix 25# have a problem with your system specific python integration!
26# PACKAGE_PARENT = '..'
27# SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
28# sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT)))
29# sys.path.append(os.getcwd())
30#from www import i18nfix
31try:
32 from . import i18nfix
33except ImportError:
34 import i18nfix
23 35
24env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)), 36env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
25 extensions=["jinja2.ext.i18n"], 37 extensions=["jinja2.ext.i18n"],
@@ -27,6 +39,7 @@ env = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__
27 trim_blocks=True, 39 trim_blocks=True,
28 undefined=jinja2.StrictUndefined, 40 undefined=jinja2.StrictUndefined,
29 autoescape=False) 41 autoescape=False)
42print(sys.path)
30 43
31langs_full = {"en": "English", "fr": "Français", "it": "Italiano", "es": "Español", "de": "Deutsch"} 44langs_full = {"en": "English", "fr": "Français", "it": "Italiano", "es": "Español", "de": "Deutsch"}
32 45
@@ -45,7 +58,7 @@ for in_file in glob.glob("*.j2"):
45 58
46 def svg_localized(filename): 59 def svg_localized(filename):
47 lf = filename + "." + locale + ".svg" 60 lf = filename + "." + locale + ".svg"
48 if "en" == locale or not os.path.isfile(lf): 61 if locale == "en" or not os.path.isfile(lf):
49 return "../" + filename + ".svg" 62 return "../" + filename + ".svg"
50 else: 63 else:
51 return "../" + lf 64 return "../" + lf
@@ -66,15 +79,14 @@ for in_file in glob.glob("*.j2"):
66 79
67 env.install_gettext_translations(tr, newstyle=True) 80 env.install_gettext_translations(tr, newstyle=True)
68 81
69 content = tmpl.render( 82 content = tmpl.render(lang=locale,
70 lang=locale, 83 lang_full=langs_full[locale],
71 lang_full=langs_full[locale], 84 url=url,
72 url=url, 85 self_localized=self_localized,
73 self_localized=self_localized, 86 url_localized=url_localized,
74 url_localized=url_localized, 87 svg_localized=svg_localized,
75 svg_localized=svg_localized, 88 filename=name + "." + ext)
76 filename=name + "." + ext)
77 out_name = "./" + locale + "/" + in_file.rstrip(".j2") 89 out_name = "./" + locale + "/" + in_file.rstrip(".j2")
78 os.makedirs("./" + locale, exist_ok=True) 90 os.makedirs("./" + locale, exist_ok=True)
79 with codecs.open(out_name, "w", "utf-8") as f: 91 with codecs.open(out_name, "w", encoding='utf-8') as f:
80 f.write(content) 92 f.write(content)