Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku Django翻译公司_Python_Django_Heroku - Fatal编程技术网

Python Heroku Django翻译公司

Python Heroku Django翻译公司,python,django,heroku,Python,Django,Heroku,我正在Django应用程序中使用rosetta。我已经设置了所有的翻译字符串,它正在与我的本地环境一起工作。问题是当我将代码推送到heroku时,我得到了错误:CommandError:找不到msguniq。确保已安装GNU gettext tools 0.15或更高版本。运行代码时heroku run python manage.py makemessages-l en 编辑 按照@nik_m的建议,我添加了post_编译脚本,但我得到了错误: In post-compile hook

我正在Django应用程序中使用
rosetta
。我已经设置了所有的翻译字符串,它正在与我的本地环境一起工作。问题是当我将代码推送到heroku时,我得到了错误:
CommandError:找不到msguniq。确保已安装GNU gettext tools 0.15或更高版本。
运行代码时
heroku run python manage.py makemessages-l en

编辑

按照@nik_m的建议,我添加了post_编译脚本,但我得到了错误:

In post-compile hook        
remote: -----> Compiling translation files        
remote:        CommandError: Can't find msgfmt. 
Make sure you have GNU gettext tools 0.15 or newer installed. 

您很可能已经检查过了,但是requirements.txt文件是否是pip安装的最新版本

pip freeze>requirements.txt

git添加

git commit-m“new req.txt”

git推送heroku主机

我希望这有帮助!
-干杯

您很可能已经检查过了,但是requirements.txt文件是否是pip安装的最新版本

pip freeze>requirements.txt

git添加

git commit-m“new req.txt”

git推送heroku主机

我希望这有帮助!
-干杯

虽然这不是同一个问题,但我对另一个问题的回答也可能对您有所帮助

,将自动为默认Python构建包添加
gettext
。这仅在生成期间,而不是在运行时。因此,该命令应在生成之后立即执行。因为
gettext
是自动添加的,所以不应该再出现错误

正如@nik_m已经提到的,这可以通过使用
bin/post_compile
中的post compile文件(没有类似procfile的扩展名)和以下行来完成:

python manage.py compilemessages
您可以选择添加特定语言(例如,
python manage.py compilemessages-l nl

由于Heroku会自动添加gettext,因此不再需要像注释中提到的那样添加额外的构建包(至少对于
gettext


您不应该在Heroku环境中运行
makemessages
命令。这可以在本地完成,并且这些文件可以提交到存储库(假设您在此处填写正确的翻译)。

虽然这不是同一个问题,但我对另一个问题的回答也可能对您有所帮助

,将自动为默认Python构建包添加
gettext
。这仅在生成期间,而不是在运行时。因此,该命令应在生成之后立即执行。因为
gettext
是自动添加的,所以不应该再出现错误

正如@nik_m已经提到的,这可以通过使用
bin/post_compile
中的post compile文件(没有类似procfile的扩展名)和以下行来完成:

python manage.py compilemessages
您可以选择添加特定语言(例如,
python manage.py compilemessages-l nl

由于Heroku会自动添加gettext,因此不再需要像注释中提到的那样添加额外的构建包(至少对于
gettext


您不应该在Heroku环境中运行
makemessages
命令。这可以在本地完成,并且这些文件可以提交到存储库(假设您在这里填写正确的翻译)。

您的
requirements.txt
文件中是否有
django rosetta
?是的,我目前有django rosetta==0.7.12没有理由在heroku上运行
makemessages
。你应该把heroku master推到git上,就是这样。出于某种原因,网站没有改变Herokus的语言,这应该是另一个原因。可能是因为django rosetta。我从来没用过,所以我不知道。我总是使用Django的内置翻译,从来没有遇到过任何问题。
Django rosetta
是否在您的
requirements.txt
文件中?是的,我目前有Django rosetta==0.7.12没有理由在heroku上运行
makemessages
。你应该把heroku master推到git上,就是这样。出于某种原因,网站没有改变Herokus的语言,这应该是另一个原因。可能是因为django rosetta。我从来没用过,所以我不知道。我总是使用Django的内置翻译,从来没有遇到过任何问题。