我正在使用gettext来处理我的C++项目的翻译。我使用xgettext生成.pot文件,然后使用msginit(en.po和es.po)为西类牙语和英语创建.po文件。问题是,虽然我系统上的语言环境设置为西类牙语,但自动填充的.po文件是en.po,它应该在哪里es.po,因为在我的项目中所有字符串默认都是用西类牙语写的。总之,en.po中的内容应该是es.po中的内容,反之亦然。有没有办法让xgettext和/或msginit将西类牙语作为默认语言? 最佳答案 长期以来,使用英语以外的其他语言作为项目的基本语言一直被认为是麻烦
msginit提示输入电子邮件地址。有没有一种方法可以告诉msginit使用哪个电子邮件地址而不提示它,例如命令行参数?cat>hellogt.cxx#include#includeintmain(){setlocale(LC_ALL,"");bindtextdomain("hellogt","./");textdomain("hellogt");std::cout 最佳答案 您的问题是由于msginit使用/usr/lib64/gettext/user-email提示您输入电子邮件。如果您改为使用--no-translator选项
msginit提示输入电子邮件地址。有没有一种方法可以告诉msginit使用哪个电子邮件地址而不提示它,例如命令行参数?cat>hellogt.cxx#include#includeintmain(){setlocale(LC_ALL,"");bindtextdomain("hellogt","./");textdomain("hellogt");std::cout 最佳答案 您的问题是由于msginit使用/usr/lib64/gettext/user-email提示您输入电子邮件。如果您改为使用--no-translator选项
msgfmt“invalidmultibytesequence”erroronaPolishtext通过手动编辑模板文件中的MIME内容类型字符集来更正。是否有用于设置MIME类型的xgettext、msginit、msgfmt序列的命令或选项?cat>plt.cxx#include#includeintmain(){setlocale(LC_ALL,"");bindtextdomain("plt",".");textdomain("plt");std::cout 最佳答案 只需提供完整的语言环境名称,msginit就会正确设置字符