Linux can';我不能通过debian软件包翻译我的程序,但使用autotools可以
我使用autotools作为构建系统,也在代码中使用gettext进行翻译。 我几乎没有.po文件(de.po、es.po和th.po),使用自动工具可以让它们正常工作。之后:Linux can';我不能通过debian软件包翻译我的程序,但使用autotools可以,linux,translation,gettext,autotools,deb,Linux,Translation,Gettext,Autotools,Deb,我使用autotools作为构建系统,也在代码中使用gettext进行翻译。 我几乎没有.po文件(de.po、es.po和th.po),使用自动工具可以让它们正常工作。之后: ./configure, make sudo make install 安装程序和Translations.mo文件。 要测试是否打开终端并更改区域设置,例如: $ export LANG=de_DE.UTF-8 $ ./myprogram 而且翻译工作正常 我用相同的源代码做了一个debian deb包。 在.
./configure,
make
sudo make install
安装程序和Translations.mo文件。
要测试是否打开终端并更改区域设置,例如:
$ export LANG=de_DE.UTF-8
$ ./myprogram
而且翻译工作正常
我用相同的源代码做了一个debian deb包。
在.posinst脚本中安装deb期间,我将翻译mo文件部署到区域设置目标(docklight是程序名):
生成的Translations.mo文件正确,并安装在语言的区域设置文件夹中:
dir=/usr/local/share/locale/$lang/LC_MESSAGES;
与自动工具的构建过程完全相同。
测试语言后:
$ export LANG=de_DE.UTF-8
$ ./myprogram
我的程序没有任何翻译。
我不知道问题出在哪里。deb安装工作正常
在创建debian deb包的过程中,我还需要关注其他方面吗
据我所知,当你准备好myprogramm.mo文件时,你应该翻译程序
有什么想法吗
提前感谢您的帮助。如果找到解决方案:
我只需要设置mo文件所在的PROGRAMNAME\u LOCALEDIR路径。
gettext初始化可以找到mo文件,然后所有内容都被转换有效
bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR);
%s\n",domain,GETTEXT_PACKAGE,PROGRAMNAME_LOCALEDIR);
bind_textdomain_codeset - set encoding of message trans‐lations
btdcodeset = bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
谢谢大家 如果找到解决方案:
我只需要设置mo文件所在的PROGRAMNAME\u LOCALEDIR路径。
gettext初始化可以找到mo文件,然后所有内容都被转换有效
bindtextdomain(GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR);
%s\n",domain,GETTEXT_PACKAGE,PROGRAMNAME_LOCALEDIR);
bind_textdomain_codeset - set encoding of message trans‐lations
btdcodeset = bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
谢谢大家