def make_listing(pot, pos, table=False): from plone.i18n.locales.languages import LanguageAvailability languagelist = LanguageAvailability().getLanguages(combined=True) msgids = pot.keys() total = len(msgids) values = {} for po in [p for p in pos if p.mime_header['Language-Code'] != 'en']: code = po.mime_header.get('Language-Code') if code in IGNORE: continue name = po.mime_header.get('Language-Name') language = languagelist.get(code) if language is not None: desc = "%s (%s)" % (language['name'], code) else: desc = "%s (%s)" % (name, code) value = 0 for msgid in msgids: if msgid in po and po[msgid].msgstr: # translated if not [1 for fuzzy in po[msgid].comments if 'fuzzy' in fuzzy]: value += 1 percentage = int(value / (total * 1.0) * 100) if percentage == 99: percentage = 100 values[code] = dict(percentage=percentage, desc=desc) total = len(msgids) if table: output_table(values.copy(), languagelist, total) else: output_list(values.copy(), languagelist, total)
def make_listing(pot, pos, table=False): from plone.i18n.locales.languages import LanguageAvailability languagelist = LanguageAvailability().getLanguages(combined=True) msgids = pot.keys() total = len(msgids) values = {} for po in [p for p in pos if p.mime_header['Language-Code'] != 'en']: code = po.mime_header.get('Language-Code') if code in IGNORE: continue name = po.mime_header.get('Language-Name') language = languagelist.get(code) if language is not None: desc = "%s (%s)" % (language['name'], code) else: desc = "%s (%s)" % (name, code) value = 0 for msgid in msgids: if msgid in po and po[msgid].msgstr: # translated if not [1 for fuzzy in po[msgid].comments if 'fuzzy' in fuzzy]: value += 1 percentage = int(value / (total * 1.0) * 100) if percentage == 99: percentage = 100 values[code] = dict(percentage=percentage, desc=desc) total = len(msgids) if table: output_table(values.copy(), languagelist, total) else: output_list(values.copy(), languagelist, total)
def html_formatter(data): # generate a table domains = tuple(sorted(data.keys())) headings = ['Language'] + list(domains) languages = LanguageAvailability().getLanguages(combined=True) lang_codes = set(reduce(lambda x, y: x + y, map(dict.keys, data.values()))) rows = [] for lang_code in lang_codes: lang_title = languages.get(lang_code, {}).get('name', lang_code) if lang_title: title = '%s (%s)' % (lang_title, lang_code) else: title = lang_code row = [{'content': title, 'classes': 'bold'}] for domain in domains: value = data.get(domain, {}).get(lang_code, None) if value: classes = '' if value <= 50: classes = 'red' elif value <= 80: classes = 'yellow' elif value <= 99: classes = 'blue' else: classes = 'green' row.append({'content': '%s%%' % value, 'classes': classes}) else: row.append({'content': '-', 'classes': 'red'}) rows.append(row) rows.sort(key=lambda item: item[0]) template_path = os.path.join(os.path.dirname(__file__), 'template.html') return Template(filename=template_path).render(headings=headings, rows=rows)
def getLanguageListing(self, combined=False): """Return a sequence of language code and language name tuples. """ langs = LanguageAvailability.getLanguageListing(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a list of tuples (code, name) langs = [l for l in langs if l[0] in supported] return langs
def getAvailableLanguages(self, combined=False): """Return a sequence of language tags for available languages. """ langs = LanguageAvailability.getAvailableLanguages(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a list of languages codes langs = [l for l in langs if l in supported] return langs
def getLanguageListing(self, combined=False): """Return a sequence of language code and language name tuples. """ langs = LanguageAvailability.getLanguageListing(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a list of tuples (code, name) langs = [l for l in langs if l[0] in supported] return langs
def getAvailableLanguages(self, combined=False): """Return a sequence of language tags for available languages. """ langs = LanguageAvailability.getAvailableLanguages(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a list of languages codes langs = [l for l in langs if l in supported] return langs
def getLanguages(self, combined=False): """Return a sequence of Language objects for available languages. """ langs = LanguageAvailability.getLanguages(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a dictonary of dictonaries, keyed by language code new_langs = dict() for s in supported: new_langs[s] = langs[s] langs = new_langs return langs
def getLanguages(self, combined=False): """Return a sequence of Language objects for available languages. """ langs = LanguageAvailability.getLanguages(self, combined=combined) # Filter languages to the supported ones site = getSite() langtool = getattr(site, 'portal_languages', None) if langtool is not None: supported = [unicode(l) for l in langtool.getSupportedLanguages()] # We have a dictonary of dictonaries, keyed by language code new_langs = dict() for s in supported: new_langs[s] = langs[s] langs = new_langs return langs