def check_format_specifiers(source, translation, errors, numerus):
    source_f = split_format_specifiers(find_format_specifiers(source))
    assert (not (source_f[0] and source_f[1]))
    try:
        translation_f = split_format_specifiers(find_format_specifiers(translation))
    except IndexError:
        errors.append(("Parse error in translation for '%s': '%s'" % (sanitize_string(source), sanitize_string(translation))))
        return False
    else:
        if (source_f != translation_f):
            if (numerus and (source_f == (set(), ['n'])) and (translation_f == (set(), [])) and (translation.find('%') == (- 1))):
                return True
            errors.append(("Mismatch between '%s' and '%s'" % (sanitize_string(source), sanitize_string(translation))))
            return False
    return True
def check_format_specifiers(source, translation, errors, numerus):
    source_f = split_format_specifiers(find_format_specifiers(source))
    assert (not (source_f[0] and source_f[1]))
    try:
        translation_f = split_format_specifiers(find_format_specifiers(translation))
    except IndexError:
        errors.append(("Parse error in translation for '%s': '%s'" % (sanitize_string(source), sanitize_string(translation))))
        return False
    else:
        if (source_f != translation_f):
            if (numerus and (source_f == (set(), ['n'])) and (translation_f == (set(), [])) and (translation.find('%') == (- 1))):
                return True
            errors.append(("Mismatch between '%s' and '%s'" % (sanitize_string(source), sanitize_string(translation))))
            return False
    return True