gpt4 book ai didi

c++ - 如何使用 msgfmt 验证格式字符串中的位置符号占位符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:21:24 25 4
gpt4 key购买 nike

在翻译文本中使用类似 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com