def resolveLibs(self, jobs): config = self.get("jobs") console = self._console console.debug("Resolving libs/manifests...") console.indent() for job in jobs: if not self.getJob(job): raise RuntimeError, "No such job: \"%s\"" % job else: jobObj = self.getJob(job) console.debug("job '%s'" % jobObj.name) console.indent() if jobObj.hasFeature('library'): newlib = [] # Library() objects oldlib = jobObj.getFeature('library') # 'library' map entries for lib in oldlib: if 'manifest' not in lib: self.raiseConfigError("Attribute 'manifest' is mandatory in config key 'library'") manipath = lib.get('manifest') if not manipath.startswith("contrib://"): manipath = self.absPath(manipath) libObj = Library(manipath, self._console) # fresh Library() object; Generator.py handles cached versions libObj.uri = lib.get('uri', None) newlib.append(libObj) jobObj.setFeature('library', newlib) console.outdent() console.outdent()
def resolveLibs(self, jobs): console = self._console console.debug("Resolving libs/manifests...") console.indent() for job in jobs: if not self.getJob(job): raise RuntimeError, "No such job: \"%s\"" % job else: jobObj = self.getJob(job) console.debug("job '%s'" % jobObj.name) console.indent() if jobObj.hasFeature('library'): newlib = [] # Library() objects oldlib = jobObj.getFeature('library') # 'library' map entries for lib in oldlib: if 'manifest' not in lib: self.raiseConfigError("Attribute 'manifest' is mandatory in config key 'library'") manipath = lib.get('manifest') if not manipath.startswith(("contrib://","http://","https://")): manipath = self.absPath(manipath) libObj = Library(manipath, self._console) # fresh Library() object; Generator.py handles cached versions libObj.uri = lib.get('uri', None) newlib.append(libObj) jobObj.setFeature('library', newlib) console.outdent() console.outdent()
def resolveLibs(self, jobs): config = self.get("jobs") console = self._console console.debug("Resolving libs/manifests...") console.indent() for job in jobs: if not self.getJob(job): raise RuntimeError, "No such job: \"%s\"" % job else: jobObj = self.getJob(job) console.debug("job '%s'" % jobObj.name) console.indent() if jobObj.hasFeature('library'): newlib = [] seen = [] oldlib = jobObj.getFeature('library') for lib in oldlib: libObj = Library(lib, self._console) newlib.append(libObj) jobObj.setFeature('library', newlib) console.outdent() console.outdent()
def updateTranslations(self, namespace, translationDir, localesList=None): def parsePOEntryStrings(poset): for poentry in poset: poentry.msgid = self.parseAsUnicodeString(poentry.msgid) poentry.msgid_plural = self.parseAsUnicodeString(poentry.msgid_plural) if poentry.msgstr_plural: for pos in poentry.msgstr_plural: poentry.msgstr_plural[pos] = self.parseAsUnicodeString(poentry.msgstr_plural[pos]) def unescapeMsgIds(poset): for poentry in poset: if poentry.msgid.find(r'\\') > -1: poentry.msgid = self.recoverBackslashEscapes(poentry.msgid) # ---------------------------------------------------------------------- self._console.info("Updating namespace: %s" % namespace) self._console.indent() self._console.debug("Looking up relevant class files...") classList = [] classes = self._classesObj for classId in classes: if classes[classId].library.namespace == namespace: classList.append(classId) self._console.debug("Compiling filter...") pot = self.getPotFile(classList) # pot: translation keys from the source code pot.sort() allLocales = self._translation[namespace] if localesList == None: selectedLocales = allLocales.keys() else: selectedLocales = localesList for locale in selectedLocales: if locale not in allLocales: path = os.path.join(translationDir, locale + ".po") f = open(path, 'w') # create stanza file pof = self.createPoFile() f.write(str(pof)) f.close() allLocales[locale] = Library.translationEntry(locale, path, namespace) self._console.info("Updating %d translations..." % len(selectedLocales)) self._console.indent() for locale in selectedLocales: self._console.debug("Processing: %s" % locale) self._console.indent() entry = allLocales[locale] po = polib.pofile(entry["path"]) # po: .po file from disk po.merge(pot) po.sort() self._console.debug("Percent translated: %d" % (po.percent_translated(),)) #po.save(entry["path"]) poString = str(po) #poString = self.recoverBackslashEscapes(poString) filetool.save(entry["path"], poString) self._console.outdent() self._console.outdent() self._console.outdent()