标签: msgfmt

编译器错误 - 找不到msgfmt命令

我正在尝试从我的共享主机更新Git.为此,我遵循以下步骤:

  1. 下载最新的Git版本
  2. 打开包装并将其放在服务器上
  3. 配置并创建Makefile - > ./configure --prefix=$HOME/dev/git/src --without-tcltk
  4. 构建包 - > make然后make install
  5. 更新PATH .bash_profile

我被困在第4点.当我运行make命令时,我得到以下内容:

user@ssh1:~/dev/git/src$ make
SUBDIR gitweb
SUBDIR ../
make[2]: ? GIT-VERSION-FILE ? est ? jour.
GEN git-instaweb
SUBDIR perl
SUBDIR git_remote_helpers
SUBDIR templates
MSGFMT po/build/locale/is/LC_MESSAGES/git.mo
/bin/sh: msgfmt: command not found
make: *** [po/build/locale/is/LC_MESSAGES/git.mo] Erreur 127
Run Code Online (Sandbox Code Playgroud)

编译器抛出msgfmt command not found错误.

我用Google搜索它,它似乎与gettext包有关.

知道如何在共享主机上修复该错误吗?

git shared-hosting compiler-errors gettext msgfmt

57
推荐指数
4
解决办法
7万
查看次数

是否可以将两个.po翻译文件组合在一起?

我们有两个.po文件,每个文件来自一个软件的不同分支.

我们需要将它们组合成一个.po文件.

这两个文件之间存在重复,理想的处理方式是使一个文件的字符串受到青睐(一致).

我们有一个SUSE系统,因此--output-file似乎没有根据我从网络搜索中找到的手册页忽略/合并Sun版本所具有的重复项的行为.(我们没有太阳机方便!)

translation gettext msgfmt

24
推荐指数
2
解决办法
2万
查看次数

不使用 gettext 编译 Git

我正在尝试在 Debian(Linux 的 Windows 子系统)上编译静态 Git 2.17.1:

$ mkdir _git
$ make configure
$ ./configure --prefix=$PWD/_git NO_TCLTK=true NO_GETTEXT=true CFLAGS="${CFLAGS} -static"
$ make all
Run Code Online (Sandbox Code Playgroud)

但我收到错误

...
    MSGFMT po/build/locale/pt_PT/LC_MESSAGES/git.mo
/bin/sh: 1: msgfmt: not found
Makefile:2309: recipe for target 'po/build/locale/pt_PT/LC_MESSAGES/git.mo' failed
make: *** [po/build/locale/pt_PT/LC_MESSAGES/git.mo] Error 127
Run Code Online (Sandbox Code Playgroud)

NO_GETTEXT我从配置文件中得到的信息:

# Define NO_GETTEXT if you don't want Git output to be translated.
Run Code Online (Sandbox Code Playgroud)

还需要吗msgfmt

git gettext msgfmt

7
推荐指数
2
解决办法
3408
查看次数

如何在{%blocktrans%}和{%plural%}标记之间保留空格而不会导致msgfmt错误?

我正在使用blocktrans标签渲染一些复数 ; 这是模板文件中的相关代码段:

{% blocktrans count choice_count=choice_count %}
  You have {{ choice_count }} choice:
{% plural %}
  You have {{ choice_count }} choices:
{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud)

运行后python manage.py makemessages --all,这是我的,如有关片段django.po文件en:

msgid ""                                                                        
"\n"                                                                            
"  You have %(choice_count)s choice:\n"                                         
msgid_plural ""                                                                 
"\n"                                                                            
"  You have %(choice_count)s choices:\n"                                        
msgstr[0] "You have one choices:"                                               
msgstr[1] "You have %(choice_count)s choice(s):"   
Run Code Online (Sandbox Code Playgroud)

但是当我运行时python manage.py compilemessages,这是我收到的错误消息:

$ ./manage.py compilemessages 
processing file django.po in /home/yiqing/repos/training/site/training/locale/en/LC_MESSAGES
/home/yiqing/repos/training/site/training/locale/en/LC_MESSAGES/django.po:60: `msgid' …
Run Code Online (Sandbox Code Playgroud)

django msgfmt plural django-i18n

6
推荐指数
2
解决办法
1043
查看次数

如何告诉 bash 从自定义位置获取 gettext .mo 文件?

我正在为一个非常具体的项目创建一个 bash 脚本,并且字符串必须是可翻译的。

我已成功遵循以下教程:gettext 支持 bash 脚本: http:
//mywiki.wooledge.org/BashFAQ/098

但是,本教程的一部分要求运行 msgfmt 命令来为每种语言生成已编译的 .mo 文件。为了使其工作,我必须以 root 身份运行该命令,并且 .mo 文件保存在 /usr/share/locale/(lang)/LC_MESSAGES 下。

我希望将 .mo 文件保存在相对于 bash 脚本的子目录中,这很容易。但是,当脚本运行时,bash 必须知道必须在适当的自定义位置查找 .mo 文件。

如何实现这一目标?

我想做的是让整个项目以及 .pot 和 .mo 文件成为独立的,并且能够更新翻译而无需使用 sudo。

linux bash gettext msgfmt

6
推荐指数
1
解决办法
1322
查看次数

如何将 .po 文件编译为 .mo 文件,msgfmt 不起作用

我必须使用 msgfmt 将文件 .po 编译为 .mo,所以我安装了 gettext(最新版本)并对chmod 777我的整个文件夹执行了操作。

当我编译文件时:

msgfmt /home/myuser/file.po -o /home/myuser/file.mo 
Run Code Online (Sandbox Code Playgroud)

没有错误,没有生命信号,什么都没有。

我该如何解决?

bash msgfmt

3
推荐指数
1
解决办法
8287
查看次数