Django国际化 - Gettext错误

时间:2018-01-13 18:00:59

标签: python django

正在使用Django构建网站。下载后gettext-0.19.8.tar.gz ---> /Users/cohen/Downloads/gettext-0.19.8并运行所有步骤./configure make和sudo make install我在安装时收到此错误python manage.py makemessages -l en

使用Gettext部分,一切顺利进行,直到安装。 我正在使用MAC,使用Pycharm作为我的IDE。 请指教!

PS有一种方法可以使用gettext instalation来制作消息吗?

谢谢!

xgettext: ./venv/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg/pip/_vendor/webencodings/__init__.py:1: Unknown encoding "utf8". Proceeding with ASCII instead.
xgettext: Non-ASCII string at ./venv/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg/pip/_vendor/webencodings/__init__.py:64.
          Please specify the source encoding through --from-code or through a comment
          as specified in http://www.python.org/peps/pep-0263.html.

为什么我收到此错误。我无法使用此命令进行正确的翻译

我接受了这次训练: Django internationalization minimal example

http://www.marinamele.com/taskbuster-django-tutorial/internationalization-localization-languages-time-zones

https://gist.github.com/mbillard/1647940

稍后编辑: 在virtualenv中重新安装gettext后我收到了这个错误:

make[4]: Nothing to be done for `install-exec-am'.
 ../build-aux/install-sh -c -d '/Users/cohen/PycharmProjects/gettext/share/doc/gettext/examples/build-aux'
 /usr/bin/install -c -m 644 ../build-aux/javacomp.sh.in ../build-aux/javaexec.sh.in ../build-aux/csharpcomp.sh.in ../build-aux/csharpexec.sh.in '/Users/cohen/PycharmProjects/gettext/share/doc/gettext/examples/build-aux'
 ../build-aux/install-sh -c -d '/Users/cohen/PycharmProjects/gettext/share/gettext'
 /usr/bin/install -c ../build-aux/config.rpath '/Users/cohen/PycharmProjects/gettext/share/gettext'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.

制作检查结果: gettext-tools的Testsuite摘要0.19.8

> ============================================================================
> # TOTAL: 198
> # PASS:  187
> # SKIP:  10
> # XFAIL: 0
> # FAIL:  1
> # XPASS: 0
> # ERROR: 0
> ============================================================================ See gnulib-tests/test-suite.log Please report to
> bug-gnu-gettext@gnu.org
> ============================================================================ make[7]: *** [test-suite.log] Error 1 make[6]: *** [check-TESTS] Error
> 2 make[5]: *** [check-am] Error 2 make[4]: *** [check-recursive] Error
> 1 make[3]: *** [check] Error 2 make[2]: *** [check-recursive] Error 1
> make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2

3 个答案:

答案 0 :(得分:1)

为了修复此错误,您必须编辑出现错误的文件。在我的情况下,我从我的venv /venv/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg/pip/_vendor/webencodings/__init__.py输入了文件并编辑了3个文件

1的初始化的.py
2. tests.py
3.x_user_defined.py

在他们的头脑中我改变了字符串

  

UTF8

进入

  

UTF-8。

这帮助我在Pycharm中创建了消息。

祝你有美好的一天!

答案 1 :(得分:0)

我宁愿通过Homebrew安装它,而不是为自己构建它 - 从长远来看,它更容易维护:

brew install gettext

如果它抱怨类似

  

警告:gettext仅为keg,必须与--force

链接

你需要运行

brew link gettext --force

然后它应该工作正常。 (如果它仍然没有,重建virtualenv。)

答案 2 :(得分:0)

只需打开文件./venv/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg/pip/_vendor/webencodings/__init__.py,然后在第一行将“ utf8”更改为“ utf-8”即可。