如何在Windows上安装gnu gettext(> 0.15)?所以我可以在Django中生成.po / .mo文件

时间:2016-08-06 16:44:52

标签: python django windows gnu gettext

运行django make messages时:

./manage.py makemessages -l pt

我明白了:

CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.

我尝试安装但是我在Instalation Setup中找到的最新版本是0.14。我在哪里可以找到最新版本以及如何安装它?

6 个答案:

答案 0 :(得分:12)

Django从最近的文档中删除了这个解释,我花了一些时间才找到它,所以我在这个旧文档下线之前粘贴它:

来源:Django Docs 1.7

GNOME servers

下载以下zip文件
  • gettext-runtime-X.zip
  • gettext-tools-X.zip
  

X是版本号(需要为0.15或更高)

将两个文件中的bin\目录的内容解压缩到系统上的同一文件夹(即C:\Program Files\gettext-utils

更新系统路径:

Control Panel > System > Advanced > Environment Variables

在“系统变量”列表中,单击“路径”,单击“编辑”,然后单击“新建” 添加C:\Program Files\gettext-utils\bin值。

  

您也可以使用在其他地方获得的gettext二进制文件,只要xgettext --version命令正常工作即可。如果在Windows命令提示符下输入的命令xgettext --version导致弹出窗口显示“xgettext.exe已生成错误并将被Windows关闭”,请不要尝试将Django转换实用程序与gettext包一起使用。

执行此操作后,我测试了./manage.py makemessages -l pt

答案 1 :(得分:4)

最简单的方法是下载precompiled binary installer。下载操作系统的“静态”风格(32位或64位)并简单地运行安装程序。

更新系统路径:

Control Panel > System > Advanced > Environment Variables

在“系统变量”列表中,单击“路径”,单击“编辑”,然后单击“新建” 添加C:\Program Files\gettext-iconv\bin值。

要检查它是否正常工作,请转到cmd,导航到项目文件夹并输入

"manage makemessages -l de".

您可能必须配置存储翻译的路径。在项目目录中创建一个名为“locale”的目录,并在settings.py

指向它

还要确保在settings.py文件中设置本地路径:

LOCALE_PATHS = (
    BASE_DIR + 'locale/', )

答案 2 :(得分:1)

我也有同样的问题。之后,我下载并安装了此文件,一切正常。https://mlocati.github.io/articles/gettext-iconv-windows.html

答案 3 :(得分:1)

让我节省许多时间来解决这个问题。

一种可能性是,在您成功完成以上所有操作之后,

pip install python-gettext

您可能未正确配置IDE或venv。为了绕过此操作,请转到命令提示符,导航到您的根文件夹并从此处运行py manage.py makemessages。它将起作用。

答案 4 :(得分:0)

提取相关文件并将其位置添加到路径后,我仍然遇到相同的问题。但是后来我在命令提示符而不是powershell中运行了django-admin makemessages -l sr-Latn命令,它起作用了。更确切地讲,我首先收到libstdc ++-6.dll丢失的通知,并且按照https://www.dll-files.com/support/#200924305所述将其安装在相关目录中后,它可以正常工作。

答案 5 :(得分:0)

感谢您分享经验。 最好的答案是linear time。 经过许多努力,值得一提的是: 如果要在Pycharm IDE中使用此工具,使其在不同的环境下工作(更改python路径和路径变量(例如:OSGeo)),则必须制作一个批处理文件并将这两个目录添加到更改的路径中:

path %PATH%;C:\Program Files\gettext-iconv\bin
path %path%;C:\Program Files\gettext-iconv\lib\gettext
SET PYCHARM="D:\Program Files\JetBrains\PyCharm 2020.2.2\bin\pycharm64.exe"
start "PyCharm aware of get text" /B %PYCHARM% %*

使用此批处理文件运行Pycharm后,转到工具/运行manage.py任务。在出现的窗口中,如下所示编写命令: makemessages -l'fa_IR' 有关更多信息,请参考: [1] https://stackoverflow.com/a/45574890/3786145 [2] https://www.jetbrains.com/help/idea/creating-message-files.html