0

次のような内容の PO ファイルがあります。

msgid "or"
msgstr "or-translation"

msgid "orand"
msgstr "orand-translation"

特定の msgid の翻訳を取得する必要があります。コマンド「msggrep -K -e 'orand' template2.pot」を使用すると、「orand」の翻訳が得られます。これで問題ありません。

しかし、「msggrep -K -e 'or' template2.pot」を使用すると、両方の翻訳 ('or' と 'orand') が返されます。コマンド "msggrep -K -e '^or' template2.pot" は期待どおりに機能し、両方の翻訳を返しますが、"msggrep -K -e '^or' template2.pot" は何も返さないため失敗します。「$」文字が msggrep 正規表現パーサーを壊すようです。

他の msggrep フラグ (-F、-E など) を試してみましたが、それらはすべてファイルからテスト パターンを読み取るため、実際のニーズには受け入れられません。私は msggrep 0.14.6 を使用しています (そして、より新しいライブラリに更新することはできません)。

msggrep を使用して「orand」の翻訳を取得する方法を誰かが知っていますか?

4

1 に答える 1

1

代わりに、単語の終わりチェックを使用できます。

msggrep -K -e 'or\b' template2.pot

の後に単語境界があることを確認する'or'ため、一致しません'orand'

于 2009-08-25T13:20:31.187 に答える