真的在努力解决这个问题。
我最近设置了一个 bash shell 脚本来提取、连接和删除字符串以翻译出整个网站的视图页面(使用 MVC 框架),它看起来像这样:
for x in *.php; do xgettext --no-wrap --language=PHP -e --flag=_:1:pass-c-format -a "$x" -o "${x%.php}.pot"; done
msgcat -u -s --output-file=$WEBSITENAME-concat.pot *.pot
msguniq -u --output-file=$WEBSITENAME-unique.pot $WEBSITENAME-concat.pot
msgmerge -s -v -U $WEBSITENAME.po $WEBSITENAME-unique.pot
除了这两件事之外,上述工作绝对正常,以便克服困难:
在所有网站源代码中,我一直小心翼翼地确保所有需要翻译的字符串都被函数_('string to translate here')包围,但是xgettext命令几乎从我的文件中提取了文件中的每个字符串可以说,不仅仅是被_('')函数包围的那些。这意味着我生成的.pot文件包含变量名、URL、格式字符串、函数参数、配置数据和其他不应传递给我们的翻译器的不适当的字符串。由于网站的大小,手动删除这些是不切实际的 - 我们正在查看近 80,000 个字符串条目,这只是我需要在接下来的 6 个中以相同方式处理的数字的第一个网站周!如何将xgettext配置为仅提取用于翻译的字符串?
提取的许多字符串中都有换行符,这些换行符作为\n插入到字符串中。有没有办法配置xgettext不这样做,或者一个简单的方法来删除这些?
我一直在阅读文档并在网上搜索数小时甚至数天,试图找到一个解决方案,特别是解决问题。1,非常感谢gettext专家的帮助!提前致谢..