西堀です。

git master (2859c2541d0da5dc689d912a166f370ced9dc8de) のビルド後 .pot を生成してみたところ、これまで経験した憶えがない事象に遭遇しました。一部の .pot で msgid が二重定義されている旨のエラーが発生しました。

1. 再現方法
1-1. git master (2859c2541d0da5dc689d912a166f370ced9dc8de) をビルドする。
1-2. make translations を実行して workdir/pot を生成する。
3-3. 各 .pot に msgfmt -cv -o /dev/null を実行する。具体的には (カレントが workdir で)for i in `find pot -name "*.pot" -print|sort`;do msgfmt -cv -o /dev/null $i >> pots-status 2>&1; done; grep --before-context=0 --after-context=1 -e '定義' pots-status > pots-error; rm pots-status
# 拙いコマンドですみません……

2. 結果
上記の方法にて生成した pots-error を以下に記します。
--(ここから)--
pot/basic/source/classes.pot:893: メッセージが二重に定義されています... pot/basic/source/classes.pot:814: ...これは最初の定義の場所です
msgfmt: 1 個の致命的エラーが見つかりました
--
pot/formula/source/core/resource.pot:193: メッセージが二重に定義されています... pot/formula/source/core/resource.pot:184: ...これは最初の定義の場所です pot/formula/source/core/resource.pot:413: メッセージが二重に定義されています... pot/formula/source/core/resource.pot:224: ...これは最初の定義の場所です
msgfmt: 2 個の致命的エラーが見つかりました
--
pot/sc/source/ui/src.pot:24279: メッセージが二重に定義されています... pot/sc/source/ui/src.pot:24260: ...これは最初の定義の場所です pot/sc/source/ui/src.pot:24689: メッセージが二重に定義されています... pot/sc/source/ui/src.pot:24670: ...これは最初の定義の場所です pot/sc/source/ui/src.pot:24739: メッセージが二重に定義されています... pot/sc/source/ui/src.pot:24720: ...これは最初の定義の場所です pot/sc/source/ui/src.pot:24789: メッセージが二重に定義されています... pot/sc/source/ui/src.pot:24770: ...これは最初の定義の場所です
msgfmt: 4 個の致命的エラーが見つかりました
--
pot/scaddins/source/analysis.pot:2165: メッセージが二重に定義されています... pot/scaddins/source/analysis.pot:2146: ...これは最初の定義の場所です pot/scaddins/source/analysis.pot:2265: メッセージが二重に定義されています... pot/scaddins/source/analysis.pot:2256: ...これは最初の定義の場所です pot/scaddins/source/analysis.pot:2285: メッセージが二重に定義されています... pot/scaddins/source/analysis.pot:2276: ...これは最初の定義の場所です
msgfmt: 3 個の致命的エラーが見つかりました
--
pot/sd/source/core.pot:574: メッセージが二重に定義されています...
pot/sd/source/core.pot:565: ...これは最初の定義の場所です
msgfmt: 1 個の致命的エラーが見つかりました
--
pot/svtools/source/misc.pot:611: メッセージが二重に定義されています... pot/svtools/source/misc.pot:602: ...これは最初の定義の場所です
msgfmt: 1 個の致命的エラーが見つかりました
--
pot/svx/source/dialog.pot:4385: メッセージが二重に定義されています... pot/svx/source/dialog.pot:4236: ...これは最初の定義の場所です pot/svx/source/dialog.pot:4485: メッセージが二重に定義されています... pot/svx/source/dialog.pot:4476: ...これは最初の定義の場所です
msgfmt: 2 個の致命的エラーが見つかりました
--
pot/svx/source/src.pot:63: メッセージが二重に定義されています...
pot/svx/source/src.pot:54: ...これは最初の定義の場所です
pot/svx/source/src.pot:133: メッセージが二重に定義されています...
pot/svx/source/src.pot:124: ...これは最初の定義の場所です
pot/svx/source/src.pot:363: メッセージが二重に定義されています...
pot/svx/source/src.pot:304: ...これは最初の定義の場所です
pot/svx/source/src.pot:825: メッセージが二重に定義されています...
pot/svx/source/src.pot:816: ...これは最初の定義の場所です
msgfmt: 4 個の致命的エラーが見つかりました
--
pot/sw/source/ui/utlui.pot:1976: メッセージが二重に定義されています... pot/sw/source/ui/utlui.pot:1957: ...これは最初の定義の場所です
msgfmt: 1 個の致命的エラーが見つかりました
--(ここまで)--

エラー箇所付近を見てみると、msgid, msgctxt, keyid(を示すコメント)が確かに重複しています。

3. 相談事項
3-1. まず、皆さんのところでは再現するでしょうか。
3-2. 過去にもこのようなことはあったのでしょうか。
3-3. LibreOffice は gettext の仕組みをそのまま利用しているわけではないので、このエラーは、そもそも心配する必要がないのでしょうか。

ご存じの方、ご教示いただければ幸いです。

西堀


--
Unsubscribe instructions: E-mail to discuss+unsubscr...@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted

メールによる返信