diff options
Diffstat (limited to 'misc')
| -rwxr-xr-x | misc/genFAQ.py | 104 | 
1 files changed, 104 insertions, 0 deletions
| diff --git a/misc/genFAQ.py b/misc/genFAQ.py new file mode 100755 index 00000000..5306cef7 --- /dev/null +++ b/misc/genFAQ.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +# Quick and dirty script to generate googlecode wiki pages + +import codecs +import xml.dom.minidom as dom +import os.path + +faqpath = "/Users/arne/oss/ics-openvpn.wiki" + +header=""" +<wiki:comment> +This page is autogenerated. Do not edit +</wiki:comment> + += Frequently aksed questions = +""" + +def getString(strid,lang): +    ostr="" +    if strid in strres[lang]: +        ostr=strres[lang][strid] +    else: +        ostr=strres["default"][strid] + +    ostr = ostr.replace("<","<") +    ostr = ostr.replace(">",">") +    ostr = ostr.replace("\\\"","\"") +    ostr = ostr.replace("\\'","'") +    ostr = ostr.replace("\\n","<p>") +    return ostr + +def genPage(faqdom,lang): +    out ="" +     +    out+="#summary %s\n" % getString("faq_summary",lang) +    out+= header + +    for xmld in faqdom.firstChild.childNodes: +        for xmle in xmld.childNodes: +            if xmle.nodeName == "TextView": +                style =  xmle.getAttribute("style") + +                textstyle = None +                if style == "@style/faqhead": +                    textstyle = "== %s ==\n" +                elif style == "@style/faqitem": +                    textstyle = "%s\n" + +                atext = xmle.getAttribute("android:text") +                aid = xmle.getAttribute("android:id") +                if atext: +                    atextid = atext.replace("@string/","") +                else: +                    atextid = aid.replace("@+id/","") + +                out += textstyle % getString(atextid,lang) + +    return out +             +	 +strres={} + +def loadstrres(filename,lang): +    xmlstr = dom.parse(filename) +    strres[lang]={} +    for xmld in xmlstr.childNodes: +        for xmle in xmld.childNodes: +            if xmle.nodeName == "string": +                strname= xmle.getAttribute("name") +                strdata = xmle.firstChild.data +                strres[lang][strname]=strdata +     + +def main(): +     +    loadstrres("res/values/strings.xml","default") +     +    faqdom = dom.parse("res/layout/faq.xml") +    faq= genPage(faqdom,"default") + +    open(faqpath + "/FAQ.wiki","w").write(faq) + +    for directory in os.listdir("res"): +        if directory.startswith("values-") and directory.find("-sw")==-1: +            lang = directory.split("-",1)[1] +            print lang +            loadstrres("res/values-%s/strings.xml" % lang,lang) + +            langdir= "%s/%s" %(faqpath,lang) +            if lang=="zh-rCN": +                langdir= "%s/%s" %(faqpath,"zh-Hans") +            elif lang=="zh-rTW": +                langdir= "%s/%s" %(faqpath,"zh-Hant") + +                 +            if not os.path.exists(langdir): +                os.mkdir(langdir) + +            faq= genPage(faqdom,lang) +            open("%s/FAQ.wiki" % langdir,"w").write(faq.encode("utf-8")) + + +if __name__=="__main__": +    main() | 
