jaz*_*elu 7 django locale internationalization
我想在我的settings.py文件中在项目的根目录中创建一个django.po(包含所有模型和模板).
LOCAL_PATHS = ('/path/to/project/locale/', )
但它不起作用..在makemessages和compilemessages之后,po/mo文件生成成功,但是当我更改语言设置时没有任何反应(模型转换效果很好).所以我认为可能无法在项目根目录中识别语言环境目录.这是我的项目结构:
project
-app/
-app/
-project/
-settings.py
-urls.py
-templates/
-static/
-locale/
Run Code Online (Sandbox Code Playgroud)
然后我将locale目录放在app目录下并使用该makemessages/compilemessages工具,它的工作原理.但它只包含在此应用程序中标记的翻译,这意味着我无法进行在模板或其他应用程序中标记的翻译.
这种情况有没有更好的解决方案?
这是我实施的方式:
我在我的项目中保留了这样的locale文件夹:
-Project #*main Project directory
-apps
-apps
-templates
-project
-settings.py
-locale #outside project folder but within main Project
-ru_RU
-LC_MESSAGES
-django.po
Run Code Online (Sandbox Code Playgroud)
现在我在settings.py中给出了locale路径,如:
PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
LOCALE_PATHS = (
os.path.join(PROJECT_PATH, '../locale'),
)
Run Code Online (Sandbox Code Playgroud)
语言选择:
LANGUAGES = (
('en-us', 'English'),
('ru_RU', 'Russian'),
)
LANGUAGE_CODE = 'en-us' 'ru_RU'
Run Code Online (Sandbox Code Playgroud)
最后添加了中间件:
django.middleware.locale.LocaleMiddleware
Run Code Online (Sandbox Code Playgroud)
希望它会有所帮助.我在博客上详细介绍了它:http://ruddra.com/2015/09/17/django-translation-using-po-file/.
| 归档时间: |
|
| 查看次数: |
5669 次 |
| 最近记录: |