0

msgfmtpo ファイルを検査するユーティリティを書いていますが、説明できない動作を理解しようとしています。

私がテストに使用している po ファイル (vlc プロジェクトから) には、不思議なことにファイルに表示されないこれらの文字列が含まれており、フラグを使用しても.moエラーレポートはありません。msgfmt--check --verbose

ここに小さなmvceがあります:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR VideoLAN
# This file is distributed under the same license as the PACKAGE package.
# 
# Translators:
# Fumio Nakayama <fumio.n6a@gmail.com>, 2002,2009-2013
# Tadashi Jokagi <elf@elf.no-ip.org>, 2004-2009
msgid ""
msgstr ""
"Project-Id-Version: VLC - Trans\n"
"Report-Msgid-Bugs-To: vlc-devel@videolan.org\n"
"POT-Creation-Date: 2013-10-23 15:09+0200\n"
"PO-Revision-Date: 2016-01-22 13:19+0000\n"
"Last-Translator: Fumio Nakayama <fumio.n6a@gmail.com>\n"
"Language-Team: Japanese (http://www.transifex.com/yaron/vlc-trans/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"


#: modules/control/rc.c:1878
#, c-format
msgid "| audio decoded    :    %5<PRIi64>"
msgstr "| オーディオ デコード済み数            :    %5<PRIi64>"

#: modules/control/rc.c:1880
#, c-format
msgid "| buffers played   :    %5<PRIi64>"
msgstr "| 再生済みバッファー数                 :    %5<PRIi64>"

#: modules/control/rc.c:1882
#, c-format
msgid "| buffers lost     :    %5<PRIi64>"
msgstr "| 失われたバッファー数                 :    %5<PRIi64>"

msgfmtこれを出力で処理します

3 translated messages.

しかし、libintl を使用してこれらの po ファイルをロードすると、これらの msgid のクエリは変換ミスを返し、moファイルをダンプすると、それらが存在しないように見えます。ヘッダーのみが含まれています。

この動作の理由を知っている人はいますか /msgfmtこれらのメッセージをスキップするためにどの基準を使用していますか?

4

1 に答える 1

0

Ubuntu (15.10) をチェックインしました。すべてがファイルで正しく機能します。 msgunfmt コメントを除いて、入力とまったく同じファイルを生成します。

于 2016-03-21T20:27:44.870 に答える