def convertcsv(inputfile, outputfile, templatefile, charset=None, columnorder=None): """reads in inputfile using csvl10n, converts using csv2tbx, writes to outputfile""" inputstore = csvl10n.csvfile(inputfile, fieldnames=columnorder) convertor = csv2tbx(charset=charset) outputstore = convertor.convertfile(inputstore) if len(outputstore.units) == 0: return 0 outputfile.write(str(outputstore)) return 1
def convertstore(self, inputstore, columnorder=None): outputstore = csvl10n.csvfile(fieldnames=columnorder) for inputunit in inputstore.units: outputunit = self.convertunit(inputunit) if outputunit is not None: outputstore.addunit(outputunit) if inputunit.hasplural(): outputunit = self.convertplurals(inputunit) if outputunit is not None: outputstore.addunit(outputunit) return outputstore
def buildcsv(self, sources, targets=None): """Build a csvfile store with the given source and target strings""" if targets is None: targets = sources else: assert len(sources) == len(targets) csvfile = csvl10n.csvfile() for source, target in zip(sources, targets): unit = csvfile.addsourceunit(source) unit.target = target return csvfile
def csv2po(self, csvsource, template=None): """helper that converts csv source to po source without requiring files""" inputfile = BytesIO(csvsource) inputcsv = csvl10n.csvfile(inputfile) if template: templatefile = BytesIO(template.encode()) inputpot = po.pofile(templatefile) else: inputpot = None convertor = csv2po.csv2po(templatepo=inputpot) return convertor.convertstore(inputcsv)
def csv2po(self, csvsource, template=None): """helper that converts csv source to po source without requiring files""" inputfile = wStringIO.StringIO(csvsource) inputcsv = csvl10n.csvfile(inputfile) if template: templatefile = wStringIO.StringIO(template) inputpot = po.pofile(templatefile) else: inputpot = None convertor = csv2po.csv2po(templatepo=inputpot) outputpo = convertor.convertstore(inputcsv) return outputpo
def convertstore(self, inputstore, columnorder=None): if columnorder is None: columnorder = ['location', 'source', 'target'] outputstore = csvl10n.csvfile(fieldnames=columnorder) for inputunit in inputstore.units: outputunit = self.convertunit(inputunit) if outputunit is not None: outputstore.addunit(outputunit) if inputunit.hasplural(): outputunit = self.convertplurals(inputunit) if outputunit is not None: outputstore.addunit(outputunit) return outputstore
def convertcsv(inputfile, outputfile, templatefile, charset=None, columnorder=None, duplicatestyle="msgctxt"): """reads in inputfile using csvl10n, converts using csv2po, writes to outputfile""" inputstore = csvl10n.csvfile(inputfile, fieldnames=columnorder) if templatefile is None: convertor = csv2po(charset=charset, duplicatestyle=duplicatestyle) else: templatestore = po.pofile(templatefile) convertor = csv2po(templatestore, charset=charset, duplicatestyle=duplicatestyle) outputstore = convertor.convertstore(inputstore) if outputstore.isempty(): return 0 outputfile.write(str(outputstore)) return 1
def test_quotes(self): """Test the escaping of quotes (and slash)""" minicsv = r''',"Hello ""Everyone""","Good day ""All""" ,"Use \"".","Gebruik \""."''' print minicsv csvfile = csvl10n.csvfile(wStringIO.StringIO(minicsv)) print str(csvfile) pofile = self.csv2po(minicsv) unit = first_translatable(pofile) assert unit.source == 'Hello "Everyone"' assert pofile.findunit('Hello "Everyone"').target == 'Good day "All"' print str(pofile) for unit in pofile.units: print unit.source print unit.target print
def upload(self, request, project, language, fileobj, method): """ Handles dictionary update. """ # Load file using translate-toolkit store = AutoFormat.load(fileobj) ret, skipped = self.import_store(request, project, language, store, method) if ret == 0 and skipped > 0 and isinstance(store, csvfile): # Retry with different CSV scheme fileobj.seek(0) store = csvfile(fileobj, ("source", "target")) ret, skipped = self.import_store(request, project, language, store, method) return ret
def test_quotes(self): """Test the escaping of quotes (and slash)""" minicsv = r''',"Hello ""Everyone""","Good day ""All""" ,"Use \"".","Gebruik \""."''' print(minicsv) csvfile = csvl10n.csvfile(wStringIO.StringIO(minicsv)) print(bytes(csvfile)) pofile = self.csv2po(minicsv) unit = first_translatable(pofile) assert unit.source == 'Hello "Everyone"' assert pofile.findunit('Hello "Everyone"').target == 'Good day "All"' print(bytes(pofile)) for unit in pofile.units: print(unit.source) print(unit.target) print()
def upload(self, request, project, language, fileobj, method): ''' Handles dictionary update. ''' # Load file using translate-toolkit store = AutoFormat.load(fileobj) ret, skipped = self.import_store(request, project, language, store, method) if ret == 0 and skipped > 0 and isinstance(store, csvfile): # Retry with different CSV scheme fileobj.seek(0) store = csvfile(fileobj, ('source', 'target')) ret, skipped = self.import_store(request, project, language, store, method) return ret
def upload(self, request, project, language, fileobj, method): ''' Handles dictionary update. ''' filecopy = fileobj.read() fileobj.close() # Load file using translate-toolkit store = AutoFormat.load(StringIOMode(fileobj.name, filecopy)) ret, skipped = self.import_store(request, project, language, store, method) if ret == 0 and skipped > 0 and isinstance(store, csvfile): # Retry with different CSV scheme store = csvfile(StringIOMode(fileobj.name, filecopy), ('source', 'target')) ret, skipped = self.import_store(request, project, language, store, method) return ret
def upload(self, request, project, language, fileobj, method): ''' Handles dictionary update. ''' filecopy = fileobj.read() fileobj.close() # Load file using translate-toolkit store = AutoFormat.load(StringIOMode(fileobj.name, filecopy)) ret, skipped = self.import_store( request, project, language, store, method ) if ret == 0 and skipped > 0 and isinstance(store, csvfile): # Retry with different CSV scheme store = csvfile( StringIOMode(fileobj.name, filecopy), ('source', 'target') ) ret, skipped = self.import_store( request, project, language, store, method ) return ret
def initcsv(inputfile, columnorder=None): return csvl10n.csvfile(inputfile, columnorder)
def get_storage(self): return csvfile(fieldnames=self.fieldnames)
def get_storage(self): return csvfile()