Python Heroku Django翻译公司
我正在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
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的内置翻译,从来没有遇到过任何问题。