def test_validate_translation_c_format(self): # Correct c-format translations will be validated. english = "English %s number %d" flags = ["c-format"] translations = {0: "Translation %s number %d"} # This should not raise GettextValidationError. validate_translation(english, None, translations, flags)
def test_validate_translation_no_flag(self): # Mismatched format specifiers don't matter if no format has been # specified. english = "English %s number %d" flags = [] translations = {0: "Translation number %d"} # This should not raise GettextValidationError. validate_translation(english, None, translations, flags)
def test_validate_translation_c_format_plural_no_singular_format(self): # As a special case, the singular does not need format specifiers. english_singular = "English %s number %d" english_plural = "English plural %s number %d" flags = ["c-format"] translations = { 0: "Translation singular", 1: "Translation plural %s number %d", } # This should not raise GettextValidationError. validate_translation( english_singular, english_plural, translations, flags)
def test_validate_translation_c_format_plural(self): # Correct c-format translations will be validated on plurals. english_singular = "English %s number %d" english_plural = "English plural %s number %d" flags = ["c-format"] translations = { 0: "Translation singular %s number %d", 1: "Translation plural %s number %d", } # This should not raise GettextValidationError. validate_translation( english_singular, english_plural, translations, flags)
def _validateMessage(self, potmsgset, message, translations, message_data): """Validate the message and report success or failure.""" try: validate_translation(potmsgset.singular_text, potmsgset.plural_text, translations, potmsgset.flags) except GettextValidationError as e: self._addUpdateError(message_data, potmsgset, unicode(e)) message.validation_status = ( TranslationValidationStatus.UNKNOWNERROR) return False message.validation_status = TranslationValidationStatus.OK return True
def _validateMessage(self, potmsgset, message, translations, message_data): """Validate the message and report success or failure.""" try: validate_translation( potmsgset.singular_text, potmsgset.plural_text, translations, potmsgset.flags) except GettextValidationError as e: self._addUpdateError(message_data, potmsgset, unicode(e)) message.validation_status = ( TranslationValidationStatus.UNKNOWNERROR) return False message.validation_status = TranslationValidationStatus.OK return True
def _check_message_for_error(self, translationmessage): """Return error message for `translationmessage`, if any. :return: Error message string if there is an error, or None otherwise. """ potmsgset = translationmessage.potmsgset # validate_translation takes a dict but translations are a list. msgstrs = dict(enumerate(translationmessage.translations)) try: validate_translation(potmsgset.singular_text, potmsgset.plural_text, msgstrs, potmsgset.flags) except GettextValidationError as error: self._error_count += 1 return unicode(error) return None