def merge(): if Lokalize.projectOverview(): files=Lokalize.projectOverview().selectedItems() elif Editor.isValid(): files=[Editor.currentFile()] forms = Kross.module("forms") if not files: return if files[0].endswith('.po'): mergeOne=mergeOneGettext if os.system('which msgmerge')!=0: forms.showMessageBox("Error", i18n("Gettext not found"), i18n("Install gettext package for this feature to work")) else: if not tt_present: print 'error' #forms = Kross.module("forms") #forms.showMessageBox("Error", i18n("Translate-tolkit not found"), i18n("Install translate-toolkit package for this feature to work")) mergeOne=mergeOneOdf okCount=0 progress=0 if len(files)>1: progress=forms.showProgressDialog(i18n("Updating from templates..."), "") progress.setRange(0,len(files)) #progress.setMaximum(len(files)) counter=0 for po in files: if progress: progress.addText(po) progress.setValue(counter) counter+=1 ok=mergeOne(po) okCount+=ok if ok: editor=Lokalize.editorForFile(po) if editor: editor.reloadFile() if progress: progress.deleteLater() if mergeOne==mergeOneGettext: if len(files)==1: pot=potForPo(files[0]) if okCount: potModifSeconds=os.path.getmtime(pot) potModifDelta=datetime.timedelta(seconds=time.time()-potModifSeconds) potModifStr=time.strftime('%X %x %Z', time.localtime(potModifSeconds)) forms.showMessageBox("Information", i18n("Merge has been completed"), i18n("Merge has been completed.\nTemplate modification time: %1 (%2 days ago).",[str(potModifStr),potModifDelta.days])) else: if not os.path.exists(pot): forms.showMessageBox("Error", i18n("Merge failed."), i18n("Could not find template file for the merge:\n%1",[pot]))
def run_standalone(): import subprocess ourPath=([p for p in sys.path if os.path.exists(p+'/newprojectwizard_win.py')]+[''])[0] os.system(ourPath+'/newprojectwizard.py') try:file=open(ourPath+'/projectconf.tmp','r') except: return projectFile=file.readline()[:-1] projectKind=file.readline()[:-1] projectName=file.readline()[:-1] projectSourceLang=file.readline()[:-1] projectTargetlang=file.readline()[:-1] file.close() os.remove(ourPath+'/projectconf.tmp') Project.init(projectFile, projectKind, projectName, projectSourceLang, projectTargetlang) Lokalize.openProject(projectFile)
def merge(): if Lokalize.projectOverview(): files = Lokalize.projectOverview().selectedItems() elif Editor.isValid(): files = [Editor.currentFile()] forms = Kross.module("forms") if not files: return if files[0].endswith('.po'): mergeOne = mergeOneGettext if os.system('which msgmerge') != 0: forms.showMessageBox( "Error", i18n("Gettext not found"), i18n("Install gettext package for this feature to work")) else: if not tt_present: print 'error' #forms = Kross.module("forms") #forms.showMessageBox("Error", i18n("Translate-tolkit not found"), i18n("Install translate-toolkit package for this feature to work")) mergeOne = mergeOneOdf okCount = 0 progress = 0 if len(files) > 1: progress = forms.showProgressDialog(i18n("Updating from templates..."), "") progress.setRange(0, len(files)) #progress.setMaximum(len(files)) counter = 0 for po in files: if progress: progress.addText(po) progress.setValue(counter) counter += 1 ok = mergeOne(po) okCount += ok if ok: editor = Lokalize.editorForFile(po) if editor: editor.reloadFile() if progress: progress.deleteLater() if mergeOne == mergeOneGettext: if len(files) == 1: pot = potForPo(files[0]) if okCount: potModifSeconds = os.path.getmtime(pot) potModifDelta = datetime.timedelta(seconds=time.time() - potModifSeconds) potModifStr = time.strftime('%X %x %Z', time.localtime(potModifSeconds)) forms.showMessageBox( "Information", i18n("Merge has been completed"), i18n( "Merge has been completed.\nTemplate modification time: %1 (%2 days ago).", [str(potModifStr), potModifDelta.days])) else: if not os.path.exists(pot): forms.showMessageBox( "Error", i18n("Merge failed."), i18n("Could not find template file for the merge:\n%1", [pot]))
# -*- coding: utf-8 -*- import Kross import Lokalize import Project import Editor import sys,os,re from translate.convert import xliff2odf from translate.storage import factory Lokalize.busyCursor(True) class XliffInput: def __init__(self, name, contents): self.name=name self.contents=contents self.read=lambda: contents def close(self): return def convert(): if not Editor.isValid() or Editor.currentFile()=='': return xliffpathname=Editor.currentFile() (path, filename)=os.path.split(xliffpathname) if not filename.endswith('.xlf'): return store = factory.getobject(xliffpathname) odfpathname=store.getfilenames()[0] if odfpathname.startswith('NoName'): print 'translate-toolkit is too old'
import os,sys import Lokalize for p in sys.path: if os.path.exists(p+'/../scripts/lokalize') and not p.endswith('/scripts/lokalize'): sys.path=sys.path+[p+'/../scripts/lokalize'] try: import multitarget except: print "svn up l10n-kde4/scripts OR fix search path?" observer=multitarget.MultiTarget(Lokalize,'/nn/','/nb/') Lokalize.connect('editorActivated()',observer.editorActivated)
class ProjectAssistant(QWizard): def __init__(self): QWizard.__init__(self) for p in pages: exec "self.addPage( %s(self) )" % p #for page in [self.page(pageId) for pageId in self.pageIds()]: for page in [self.page(pages.index(pageId)) for pageId in pages]: self.connect(page,SIGNAL("nextRequested()"),self,SLOT("next()")) self.connect(self,SIGNAL("finished(int)"),self,SLOT("deleteLater()")) self.connect(self,SIGNAL("accepted()"),self.handleAccept) def handleAccept(self): fs=lambda name:self.field(name).toString() fi=lambda name:self.field(name).toInt()[0] fb=lambda name:self.field(name).toBool() kinds=['odf','kde'] projectKind=kinds[self.page(0).group.checkedId()] langs=allLanguagesList doInit=True projectfilename='index.lokalize' #if projectKind=='odf' and fb('odf-template-source-files'): #projectfilename=QFileInfo(fs('odf-template-files')).baseName()+'.lokalize' if projectKind=='odf': loc=QDir(fs('location')) loc.mkdir(fs('name')) projectFilePath=loc.absoluteFilePath(fs('name')+'/'+projectfilename) targetlang=langs[fi('target-lang')] name=fs('name').toLower() elif projectKind=='kde': name='kde' loc=QDir(fs('kde-existing-location')) targetlang=loc.dirName() print 'project lang: %s' % targetlang print 'project loc: %s' % fs('kde-existing-location') l=loc.entryList(QStringList('*.lokalize'), QDir.Filter(QDir.Files)) if len(l): doInit=False projectfilename=l[0] projectFilePath=loc.absoluteFilePath(projectfilename) if projectKind=='odf': files=[fs('odf-template-files')] for f in files: info=QFileInfo(f) xlf=QDir.toNativeSeparators(info.absolutePath()+'/'+info.baseName()+'.xlf') #this makes Lokalize crash on close #try: odf2xliff.main(tt_args(unicode(f), unicode(xlf))) #except: if True: print 'odf2xliff via subprocess.call', unicode(f), unicode(xlf) try: retcode = subprocess.call(['odf2xliff', unicode(f), unicode(xlf)]) print >>sys.stderr except OSError, e: print >>sys.stderr, "Execution failed:", e self.projectName=name+'-'+targetlang self.projectSourceLang=langs[fi('source-lang')] self.projectTargetLang=targetlang self.projectKind=projectKind self.projectFilePath=projectFilePath self.projectShouldBeInitialized=doInit if doInit and not standalone: Lokalize.openProject(projectFilePath) Project.init(projectFilePath, projectKind, self.projectName, self.projectSourceLang, targetlang) Lokalize.openProject(projectFilePath)
# -*- coding: utf-8 -*- import Kross import Lokalize import Project import Editor import sys, os, re from translate.convert import xliff2odf from translate.storage import factory Lokalize.busyCursor(True) class XliffInput: def __init__(self, name, contents): self.name = name self.contents = contents self.read = lambda: contents def close(self): return def convert(): if not Editor.isValid() or Editor.currentFile() == '': return xliffpathname = Editor.currentFile() (path, filename) = os.path.split(xliffpathname) if not filename.endswith('.xlf'): return store = factory.getobject(xliffpathname) odfpathname = store.getfilenames()[0]