作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在翻译文本中使用类似 printf 的格式字符串时,msgfmt --check
检查翻译是否仍然包含占位符。例如,在以下代码上运行 xgettext
printf( gettext( "string: %s, int: %d" ), str, i )
生成一个 .po
文件,其中 msgid
标记为 c-format
并且其值为 "string: %s,整数:%d"
。如果翻译者在翻译中忘记了 %s
或 %d
,则 msgfmt
会提示:
number of format specifications in 'msgid' and 'msgstr' does not match
不幸的是,此检查不适用于使用位置符号的格式字符串,例如
boost::format( gettext( "string: %1%, int %2%" ) ) % str % i
如何验证翻译中位置符号占位符的存在?
最佳答案
不是直接的答案,但也许以下解决方案可以解决您的问题:
boost::format( gettext( "string: %1$s, int %2$d") ) % str % i;
关于c++ - 如何使用 msgfmt 验证格式字符串中的位置符号占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134771/
我是一名优秀的程序员,十分优秀!