~daisy-ycguo/document-translation-test/trunk

« back to all changes in this revision

Viewing changes to tools/generatepot

  • Committer: daisy-ycguo
  • Date: 2012-07-09 06:58:21 UTC
  • Revision ID: git-v1:c4ef7fbfafd919b403cda0d95823d1218f92e3f0
add tools

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
 
 
4
'''
 
5
Created on 2012-7-3
 
6
 
 
7
@author: daisy
 
8
'''
 
9
import os, sys
 
10
from xml2po import Main
 
11
default_mode = 'docbook'
 
12
operation = 'pot'
 
13
options = {
 
14
    'mark_untranslated'   : False,
 
15
    'expand_entities'     : True,
 
16
    'expand_all_entities' : False,
 
17
}
 
18
 
 
19
ignore_folder = {"docbkx-example"}
 
20
 
 
21
root = "./doc/src/docbkx"
 
22
 
 
23
def generatePoT (folder):
 
24
    if (folder==None) :
 
25
        path = root
 
26
    else :
 
27
        generateSinglePoT(folder)
 
28
        return
 
29
 
 
30
    if (not os.path.isdir(path)) :
 
31
        return
 
32
    
 
33
    files = os.listdir(path)
 
34
    for aFile in files :
 
35
        if  (not (aFile in ignore_folder)):
 
36
            generateSinglePoT (aFile)
 
37
 
 
38
def generateSinglePoT(folder):
 
39
    xmlfiles = []
 
40
    abspath = os.path.join(root, folder)
 
41
    if (os.path.isdir(abspath)) :
 
42
        os.path.walk(abspath, get_all_xml, xmlfiles)
 
43
    else:
 
44
        return
 
45
    
 
46
    if len(xmlfiles)>0 :
 
47
        output = os.path.join(abspath,"locale")
 
48
        if (not os.path.exists(output)) :
 
49
            os.mkdir(output)
 
50
        output = os.path.join(output, folder+".pot")
 
51
        try:
 
52
            xml2po_main = Main(default_mode, operation, output, options)
 
53
        except IOError:
 
54
            print "Error: cannot open aFile %s for writing." % (output)
 
55
            sys.exit(5)
 
56
        #print(xmlfiles)
 
57
        #print(">>>outout: %s ", output)
 
58
        xml2po_main.to_pot(xmlfiles)
 
59
    
 
60
    
 
61
def get_all_xml (sms, dr, flst):
 
62
    if ((flst == "target") or (flst == "wadls")) :
 
63
        return
 
64
    if (dr.find("target")>-1) :
 
65
        return
 
66
    if (dr.find("wadls")>-1) :
 
67
        return
 
68
 
 
69
    for f in flst:
 
70
        if ((f.endswith(".xml") and (f != "pom.xml"))) :
 
71
            sms.append(os.path.join(dr,f))
 
72
            
 
73
def main():
 
74
    try: 
 
75
        folder = sys.argv[1]
 
76
    except:
 
77
        folder = None
 
78
    generatePoT(folder)
 
79
    
 
80
if __name__ == '__main__':
 
81
    main()
 
82