FreeCAD/src/Tools/updatets.py
2012-01-03 09:34:20 +01:00

120 lines
3.2 KiB
Python

#! python
# -*- coding: utf-8 -*-
# (c) 2010 Werner Mayer LGPL
Usage = """updatets - update all .ts files found in the source directories
Usage:
updatets
Autor:
(c) 2010 Werner Mayer
Licence: GPL
Version:
0.1
"""
import os, re
# folders that should not be treated by standard Qt tools
DirFilter = ["^Attic$",
"^CVS$",
"^\\.svn$",
"^\\.deps$",
"^\\.libs$",
"src/Mod/Cam",
"src/Mod/Import",
"src/Mod/JtReader",
"src/Mod/Sandbox",
"src/Mod/TemplatePyMod",
"src/Mod/Draft",
"src/Mod/Arch",
"src/Mod/Start"]
# folders that need a special pylupdate command
PyCommands = [["src/Mod/Draft",
"pylupdate *.py draftlibs/*.py Resources/ui/*.ui -ts Resources/translations/Draft.ts"],
["src/Mod/Arch",
"pylupdate *.py Resources/ui/*.ui -ts Resources/translations/Arch.ts"],
["src/Mod/Start",
"pylupdate StartPage/*.py -ts Gui/Resources/translations/StartPage.ts"]]
QMAKE = ""
LUPDATE = ""
PYLUPDATE = ""
def find_tools():
global QMAKE, LUPDATE, PYLUPDATE
if (os.system("qmake-qt4 -version") == 0):
QMAKE = "qmake-qt4"
elif (os.system("qmake -version") == 0):
QMAKE = "qmake"
else:
raise Exception("Cannot find qmake")
if (os.system("lupdate-qt4 -version") == 0):
LUPDATE = "lupdate-qt4"
elif (os.system("lupdate -version") == 0):
LUPDATE = "lupdate"
else:
raise Exception("Cannot find lupdate")
if (os.system("pylupdate -version") == 0):
PYLUPDATE = "pylupdate"
elif (os.system("pylupdate4 -version") == 0):
PYLUPDATE = "pylupdate4"
else:
raise Exception("Cannot find pylupdate")
print "Qt tools:", QMAKE, LUPDATE, PYLUPDATE
def filter_dirs(item):
global DirFilter
if not os.path.isdir(item):
return False
for regexp in DirFilter:
a = re.compile(regexp)
if (re.match(a, item)):
return False
return True
def update_translation(path):
global QMAKE, LUPDATE
cur = os.getcwd()
os.chdir(path)
filename = os.path.basename(path) + ".pro"
os.system(QMAKE + " -project")
os.system(LUPDATE + " " + filename)
os.remove(filename)
os.chdir(cur)
def update_python_translation(item):
global PYLUPDATE
cur = os.getcwd()
os.chdir(item[0])
execline = item[1].replace("pylupdate",PYLUPDATE)
print "Executing special command in ",item[0],": ",execline
os.system(execline)
os.chdir(cur)
def main():
find_tools()
path = os.path.realpath(__file__)
path = os.path.dirname(path)
os.chdir(path)
os.chdir("..")
os.chdir("..")
dirs=os.listdir("src/Mod")
for i in range(len(dirs)):
dirs[i] = "src/Mod/" + dirs[i]
dirs.append("src/Base")
dirs.append("src/App")
dirs.append("src/Gui")
dirs = filter(filter_dirs, dirs)
for i in dirs:
update_translation(i)
for j in PyCommands:
update_python_translation(j)
if __name__ == "__main__":
main()