[英]xgettext incorrectly infers 'c-format' in cpp files
我有一堆 .cpp 文件,其中包含包含文字百分號的文本。 這些文件根本不使用printf
,它們使用iostream
的東西:
std::cout << _( "50 % of 10 is 5" ) << std::endl;
但是,包含%
的字符串仍被xgettext
標記為c-format
:
#: test.cpp:5
#, c-format
msgid "50 % of 10 is 5"
msgstr ""
然后這個模板被msgmerge
處理並翻譯,翻譯工具(例如 Poedit)抱怨這樣的條目:
#: test.cpp:5
#, c-format
msgid "50 % of 10 is 5"
msgstr "50 % de 10 est 5"
“msgid”和“msgstr”中的格式規范不匹配
手動刪除#, c-format
注釋會有所幫助,但它們會在每次合並后返回。 如何強制xgettext
或msgmerge
刪除這些評論? 我知道我可以用sed
過濾掉它們,但是有沒有更聰明的方法可以保留來自 C 文件的字符串的此類注釋?
gettext
文檔在這里討論了這個完全相同的問題: https://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html
根據文檔,您應該在以下行之前使用此特殊注釋:
xgettext:no-c-format
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.