# Possible endings for the strings. Make sure to put longer # endings before shorter ones, for example: '...', '.' # otherwise this pair: 'a...', 'b..' will pass the test. ends = [(':', u':'), u'…', '...', ('.', u'。'), ' '] # First find the appropriate ending of msgid for end in ends: if entry.msgid.endswith(end): break else: continue # ... then check that msgstr ends with it as as well if not entry.msgstr.endswith(end): matches = par.findall(entry.msgstr) if matches and entry.msgstr[:-len(matches[0])].endswith(end): pass else: fails.append(entry) self.conclude(fails, "ending punctuation missing") def current_po_path(self) -> Path: return PO_PATH / f"{self.lang}.po" for lang in gettextutil.list_languages(PO_PATH): testcase = type('PO.' + str(lang), (TestCase, POMixin), {}) testcase.lang = lang globals()['PO.' + lang] = testcase
if not entry.msgstr or entry.obsolete or 'fuzzy' in entry.flags: continue # Possible endings for the strings. Make sure to put longer # endings before shorter ones, for example: '...', '.' # otherwise this pair: 'a...', 'b..' will pass the test. ends = [(':', u':'), u'…', '...', ('.', u'。'), ' '] # First find the appropriate ending of msgid for end in ends: if entry.msgid.endswith(end): break else: continue # ... then check that msgstr ends with it as as well if not entry.msgstr.endswith(end): matches = par.findall(entry.msgstr) if matches and entry.msgstr[:-len(matches[0])].endswith(end): pass else: fails.append(entry) self.conclude(fails, "ending punctuation missing") for lang in gettextutil.list_languages(PODIR): testcase = type('PO.' + str(lang), (TestCase, POMixin), {}) testcase.lang = lang globals()['PO.' + lang] = testcase