Link needs to be properly intergrated to the html href, translation
started earlier in sitemap and saved per language.
'en' special case as it is the original language of iso_639_3.xml
Updating templates with a Language menu item instead of a Level name
Levelname can be maintained in the template, translations are dynamic
as more pages in other languages gets created.
Problems will arrise when a language page is missing. This is first tests.. :)
import shutil
import pygraphviz as pgv
import glob
import shutil
import pygraphviz as pgv
import glob
from amara import bindery
from amara.xslt import transform
from Cheetah.Template import Template
from amara import bindery
from amara.xslt import transform
from Cheetah.Template import Template
def template(self,sitemap):
htmlmenu = sitemap.gen_menu(self._lang,None,None)
levelmenu = sitemap.gen_menu(self._lang,self,"tree")
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},
template = Template(file=style_tmpl,
searchList=[{'title':self._title},
{'menu':htmlmenu},
{'article':self._rendered_article},
{'levelmenu':levelmenu},
+ {'langmenu':langmenu}])
outfile = tmptarget+'html'.join(self._file.rsplit('xml',1))
mkdir_p(os.path.dirname(outfile))
out = open(outfile, 'w')
outfile = tmptarget+'html'.join(self._file.rsplit('xml',1))
mkdir_p(os.path.dirname(outfile))
out = open(outfile, 'w')
def __init__(self):
self._file = 'sitemap.txt'
self._tree = Trie()
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))
def add_link(self, link):
tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link))
link.prepare()
t2 = time.time()
print "Prepare [%5.2f s]" % (round(t2-t1,2))
link.prepare()
t2 = time.time()
print "Prepare [%5.2f s]" % (round(t2-t1,2))
- 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:
t3 = time.time()
print "Language [%5.2f s]" % (round(t3-t2,2))
for link in self._tree:
t5 = time.time()
print "Template [%5.2f s]" % (round(t5-t4,2))
sm = {}
t5 = time.time()
print "Template [%5.2f s]" % (round(t5-t4,2))
sm = {}
+ 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()
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()
def graph(self):
self._tree.graph()
def gen_menu(self,lang,page,cssclass):
return self._tree.menu(lang,page,cssclass)
def gen_menu(self,lang,page,cssclass):
return self._tree.menu(lang,page,cssclass)
+ def lang_menu(self,lang):
+ html = "<ul>"
+ for l in self._sitelang:
+ isoxml = u"//iso_639_3_entry[@*='"+l+"']"
+ ln = self._isocode.xml_select(isoxml)[0].name
+ if lang != 'en':
+ ln = self._tranlang[lang].gettext(ln)
+ html += '<li><a href="%s">%s</a></li>' % ('link'+'.'+l, ln)
+ html += "</ul>"
+ return html
+
def publish(self):
publish(tmptarget, args.output)
publish(args.style+"css", args.output)
def publish(self):
publish(tmptarget, args.output)
publish(args.style+"css", args.output)
</section><!-- end of #content -->
<aside id="sidebar"><!-- sidebar -->
</section><!-- end of #content -->
<aside id="sidebar"><!-- sidebar -->
+ <h3>Languages</h3>
+ $langmenu
+
+ <h3>Location</h3>
$levelmenu
<h3>More Stuff</h3>
$levelmenu
<h3>More Stuff</h3>
</ul>
<div class="tab_container">
<div id="tab1" class="tab_content">
</ul>
<div class="tab_container">
<div id="tab1" class="tab_content">
+ <h3>Languages</h3>
+ $langmenu
+
+ <h3>Location</h3>
$levelmenu
</div>
<div id="tab3" class="tab_content">
$levelmenu
</div>
<div id="tab3" class="tab_content">
</section><!-- end of #content -->
<aside id="sidebar"><!-- sidebar -->
</section><!-- end of #content -->
<aside id="sidebar"><!-- sidebar -->
+ <h3>Languages</h3>
+ $langmenu
+
+ <h3>Location</h3>
$levelmenu
<h3>More Stuff</h3>
$levelmenu
<h3>More Stuff</h3>
<aside id="left"><!-- start left sidebar -->
<div class="box">
<aside id="left"><!-- start left sidebar -->
<div class="box">
+ <h3>Languages</h3>
+ <div class="inner">
+ $langmenu
+ </div>
+
+ <h3>Location</h3>
<div class="inner">
$levelmenu
</div>
<div class="inner">
$levelmenu
</div>