def msgfmt_check_po_file(locale_dir, filename):
    """
    Call GNU msgfmt -c on each .po file to validate its format.
    Any errors caught by msgfmt are logged to log.

    Returns a boolean indicating whether or not problems were found.
    """
    found_problems = False

    # Use relative paths to make output less noisy.
    rfile = os.path.relpath(filename, locale_dir)
    out, err = call('msgfmt -c -o /dev/null {}'.format(rfile), working_directory=locale_dir)
    if err:
        log.info(u'\n' + out.decode('utf8'))
        log.warning(u'\n' + err.decode('utf8'))
        found_problems = True

    return found_problems
Call GNU msgfmt -c on each .po file to validate its format.
    Any errors caught by msgfmt are logged to log.

    Returns a boolean indicating whether or not problems were found.