X-Git-Url: https://source.tree.se/git?p=treecutter.git;a=blobdiff_plain;f=src%2Ftree-cutter.py;h=7a5d6cf7d577c214616c2c5c7d6d0aea10e610e5;hp=14c94a76dadfd0790ebc2604a1cc5ae19ffbc962;hb=c382f50f4d6b3285dcdac852f39227b336d530d2;hpb=85835b59898bdb2d99bc053b154732519c772a10 diff --git a/src/tree-cutter.py b/src/tree-cutter.py index 14c94a7..7a5d6cf 100755 --- a/src/tree-cutter.py +++ b/src/tree-cutter.py @@ -11,6 +11,7 @@ import argparse import shutil import pygraphviz as pgv import glob +import gettext from amara import bindery from amara.xslt import transform from Cheetah.Template import Template @@ -148,12 +149,13 @@ class Page(): def template(self,sitemap): htmlmenu = sitemap.gen_menu(self._lang,None,None) levelmenu = sitemap.gen_menu(self._lang,self,"tree") + langmenu = sitemap.lang_menu(self._lang) template = Template(file=style_tmpl, searchList=[{'title':self._title}, {'menu':htmlmenu}, {'article':self._rendered_article}, {'levelmenu':levelmenu}, - {'levelname':'Menu'}]) + {'langmenu':langmenu}]) outfile = tmptarget+'html'.join(self._file.rsplit('xml',1)) mkdir_p(os.path.dirname(outfile)) out = open(outfile, 'w') @@ -290,6 +292,9 @@ class Sitemap(): def __init__(self): self._file = 'sitemap.txt' self._tree = Trie() + self._sitelang = set() + self._isocode = bindery.parse('/usr/share/xml/iso-codes/iso_639_3.xml') + self._tranlang = {} def add_link(self, link): tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link)) @@ -319,9 +324,11 @@ class Sitemap(): link.prepare() t2 = time.time() print "Prepare [%5.2f s]" % (round(t2-t1,2)) - sitelang = set() for link in self._tree: - sitelang = sitelang.union(set(link.languages())) + self._sitelang = self._sitelang.union(set(link.languages())) + for tran in self._sitelang: + if tran != 'en': + self._tranlang[tran] = gettext.translation('iso_639_3', languages=[tran]) t3 = time.time() print "Language [%5.2f s]" % (round(t3-t2,2)) for link in self._tree: @@ -333,12 +340,12 @@ class Sitemap(): t5 = time.time() print "Template [%5.2f s]" % (round(t5-t4,2)) sm = {} - for l in sitelang: + for l in self._sitelang: sm[l] = Page((l,'/sitemap')) sm[l].set_article(self.gen_menu(l,None,"tree sitemap")) sm[l].template(self) t6 = time.time() - print "Sitemap [%5.2f s]" % (round(t6-t5,2)) + print "Sitemap [%5.2f s]" % (round(t6-t5,2)) def graph(self): self._tree.graph() @@ -346,6 +353,17 @@ class Sitemap(): def gen_menu(self,lang,page,cssclass): return self._tree.menu(lang,page,cssclass) + def lang_menu(self,lang): + html = "" + return html + def publish(self): publish(tmptarget, args.output) publish(args.style+"css", args.output)