376d1d69ca
This patch added tools used for slicing and merging in translation process. The patch also includes the POT files for each documents. The PO files are not included, which can be downloaded from Transifex. Fixes: bug #1153415 Change-Id: Ia455134c99acb1129e8f10deda0d85867b1ef9a3
94 lines
2.4 KiB
Python
Executable File
94 lines
2.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
'''
|
|
Created on 2012-7-3
|
|
|
|
@author: daisy
|
|
'''
|
|
import os, sys
|
|
from xml2po import Main
|
|
from xml2po.modes.docbook import docbookXmlMode
|
|
|
|
class myDocbookXmlMode(docbookXmlMode):
|
|
def __init__(self):
|
|
self.lists = ['itemizedlist', 'orderedlist', 'variablelist',
|
|
'segmentedlist', 'simplelist', 'calloutlist', 'varlistentry', 'userinput',
|
|
'computeroutput','prompt','command','screen']
|
|
self.objects = [ 'figure', 'textobject', 'imageobject', 'mediaobject',
|
|
'screenshot','literallayout', 'programlisting' ]
|
|
|
|
default_mode = 'docbook'
|
|
operation = 'pot'
|
|
options = {
|
|
'mark_untranslated' : False,
|
|
'expand_entities' : True,
|
|
'expand_all_entities' : False,
|
|
}
|
|
|
|
ignore_folder = {"docbkx-example"}
|
|
ignore_file = {"api-examples.xml"}
|
|
|
|
root = "./doc/src/docbkx"
|
|
|
|
def generatePoT (folder):
|
|
if (folder==None) :
|
|
path = root
|
|
else :
|
|
generateSinglePoT(folder)
|
|
return
|
|
|
|
if (not os.path.isdir(path)) :
|
|
return
|
|
|
|
files = os.listdir(path)
|
|
for aFile in files :
|
|
if (not (aFile in ignore_folder)):
|
|
generateSinglePoT (aFile)
|
|
|
|
def generateSinglePoT(folder):
|
|
xmlfiles = []
|
|
abspath = os.path.join(root, folder)
|
|
if (os.path.isdir(abspath)) :
|
|
os.path.walk(abspath, get_all_xml, xmlfiles)
|
|
else:
|
|
return
|
|
|
|
if len(xmlfiles)>0 :
|
|
output = os.path.join(abspath,"locale")
|
|
if (not os.path.exists(output)) :
|
|
os.mkdir(output)
|
|
output = os.path.join(output, folder+".pot")
|
|
try:
|
|
xml2po_main = Main(default_mode, operation, output, options)
|
|
xml2po_main.current_mode = myDocbookXmlMode()
|
|
except IOError:
|
|
print "Error: cannot open aFile %s for writing." % (output)
|
|
sys.exit(5)
|
|
#print(xmlfiles)
|
|
#print(">>>outout: %s ", output)
|
|
xml2po_main.to_pot(xmlfiles)
|
|
|
|
def get_all_xml (sms, dr, flst):
|
|
if ((flst == "target") or (flst == "wadls")) :
|
|
return
|
|
if (dr.find("target")>-1) :
|
|
return
|
|
if (dr.find("wadls")>-1) :
|
|
return
|
|
|
|
for f in flst:
|
|
if (f.endswith(".xml") and (f != "pom.xml") and (not (f in ignore_file))) :
|
|
sms.append(os.path.join(dr,f))
|
|
|
|
def main():
|
|
try:
|
|
folder = sys.argv[1]
|
|
except:
|
|
folder = None
|
|
generatePoT(folder)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|