2012-03-09 100 views
1

我正在测试django系统,并且我为它启动了一个项目和一个应用程序。我对i18n系统有问题。django消息文件在项目文件夹中工作,但在应用程序文件夹中不起作用

  • 我在应用程序的view.py中使用了_()函数。
  • 我把'django.middleware.locale.LocaleMiddleware'这一行放在项目的settings.py文件的MIDDLEWARE_CLASSES中。
  • 我在应用程序文件夹中运行django-admin.py makemessages -l tr。
  • 我在应用程序文件夹中运行django-admin.py compilemessages。

当我运行该服务时,它不起作用。在我搜索这里和其他地方后,我看到django如何查看这些消息文件。首先它看起来应用程序的文件夹,在项目的文件夹后。还有另外一个地方。

我在项目文件夹中移动了我的消息文件,它工作。我再次将应用程序文件夹中的区域设置文件夹移开,并且不再工作。

我需要理解为什么。我想每个翻译,消息文件在相关的应用程序。

问候,


我发现这个问题,我忘了该应用程序名称添加到INSTALLED_APPS设置。当我补充说,它的作品。

回答

1

我为自己测试了它,发现它工作正常。

你确定你用正确的方式在代码中使用它吗?

应用程序/ views.py:

from django.utils.translation import ugettext as _ 
from django.contrib import messages 
...some code here... 
if saved_changes: 
    messages.success(request, _('Item \'%s\' was saved.') % item.name) 
+1

它工作时,语言文件夹项目文件夹中,但是当我移动的应用程序文件夹中的语言文件夹,这是行不通的。 这不起作用:./project_name/app_name/locale/tr/LC_MESSAGES/django.po和.MO 这项工作: ./project_name/locale/tr/LC_MESSAGES/django.po和.MO 一切都是一样的。我只是移动文件夹。 – 2012-03-13 21:45:46

+0

我认为,你不能移动区域设置文件。您需要再次为应用程序和项目分别生成语言环境。 尝试从./project/app/locale/tr/LC_MESSAGES/目录中删除.po和.mo文件,并尝试进入应用程序目录和'django-admin.py makemessages -l tr' 然后打开_。翻译软件中的/project/app/locale/tr/LC_MESSAGES/django.po_文件,如Lokalize或POEdit,翻译所有字符串。保存更改并返回到您的应用程序目录并运行'django-admin.py compilemessages' – 2012-03-27 09:19:17

相关问题