首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用msgfmt验证格式字符串中的位置符号占位符?

如何用msgfmt验证格式字符串中的位置符号占位符?
EN

Stack Overflow用户
提问于 2017-03-31 07:19:22
回答 1查看 178关注 0票数 4

在翻译文本中使用类printf格式字符串时,msgfmt --check检查翻译中是否仍然包含占位符。例如,在以下代码上运行xgettext

代码语言:javascript
复制
printf( gettext( "string: %s, int: %d" ), str, i )

生成一个.po文件,其msgid标记为c-format,其值为"string: %s, int: %d"。如果翻译程序在翻译中忘记了%s%d,那么msgfmt会抱怨:

“msgid”和“msgstr”中的格式规格数不匹配

不幸的是,此检查不适用于使用位置表示法格式化字符串,如

代码语言:javascript
复制
boost::format( gettext( "string: %1%, int %2%" ) ) % str % i

如何在翻译中验证位置符号占位符的存在?

EN

回答 1

Stack Overflow用户

发布于 2018-04-20 09:27:44

不是直接回答,但也许下面的解决方案可以解决您的问题:

boost::format( gettext( "string: %1$s, int %2$d" ) ) % str % i;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43134771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档