在Django i18n中,区域设置路径不';行不通

在Django i18n中,区域设置路径不';行不通,django,internationalization,locale,Django,Internationalization,Locale,我想在项目的根目录中创建一个django.po(包含所有模型和模板) 在我的settings.py文件中 本地路径=('/path/to/project/locale/,) 但是它不起作用。在makemessages和compilemessages之后,成功生成了po/mo文件,但是当我更改语言设置时,什么也没有发生(modeltranslation工作正常)。因此,我认为可能无法在项目根目录中识别区域设置目录。 以下是我的项目结构: project -app/ -app/ -pro

我想在项目的根目录中创建一个django.po(包含所有模型和模板) 在我的
settings.py
文件中

本地路径=('/path/to/project/locale/,)

但是它不起作用。在makemessages和compilemessages之后,成功生成了
po/mo
文件,但是当我更改语言设置时,什么也没有发生(modeltranslation工作正常)。因此,我认为可能无法在项目根目录中识别区域设置目录。 以下是我的项目结构:

project
  -app/
  -app/
  -project/
      -settings.py
      -urls.py
  -templates/
  -static/
  -locale/
然后我将locale目录放在app目录下,并使用
makemessages/compilemessages
工具, 它起作用了。但它只包含此应用程序中标记的翻译,这意味着我无法制作模板或其他应用程序中标记的翻译


对于这种情况有更好的解决方案吗?

以下是我如何实施的:

我在我的项目中保留了如下区域设置文件夹:

-Project  #*main Project directory
  -apps
  -apps
  -templates
  -project
     -settings.py
  -locale              #outside project folder but within main Project
     -ru_RU
       -LC_MESSAGES
          -django.po
现在我在settings.py中给出了区域设置路径,如下所示:

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))

 LOCALE_PATHS = (
    os.path.join(PROJECT_PATH, '../locale'),

)
语言选择:

LANGUAGES = (
    ('en-us', 'English'),
    ('ru_RU', 'Russian'),
)


LANGUAGE_CODE = 'en-us' 'ru_RU' 
最后添加了中间件:

django.middleware.locale.LocaleMiddleware

希望这会有所帮助。我在我的博客上详细描述了这一点:。

根据文档,你应该能够做到这一点。在local下是否有
/LC\u MESSAGES
目录?当然有。当我执行
django-admin.py makemessages-l zh_CN
时,它将自动生成/LC_消息/目录。@schillingt您是否尝试将
本地路径更改为
本地路径
?我想你有打字错误。遇到同样的问题,您将应用程序和模板目录放在哪里?你能告诉我你的主要项目结构吗?(app/、locale/、project/、settings/、tempates/)当然,我已经用我的项目结构编辑了我的答案。你使用哪个django版本?我的结构和你一样。但它仍然不起作用。似乎locale_path参数不起作用。我在django 1.6.1上试过。你添加中间件了吗?因为没有它,本地化将无法工作(它至少对我不起作用):)是的,我添加了它。若我把我的区域设置目录放在应用程序的目录中,它运行得很好。真奇怪。