使用 rosetta 的 Django 翻译不反映更改
Django translation using rosetta not reflecting changes
我目前在使用 saleor 时遇到一个小问题:
首先,我在saleor/settings.py中设置如下配置:
# other settings config
LANGUAGE_CODE = 'pt_BR'
PROJECT_ROOT = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
LOCALE_PATHS = (
os.path.join(PROJECT_ROOT, "locale"),
)
USE_I18N = True
USE_L10N = True
USE_TZ = True
然后我在项目的根目录下创建了目录树/locale/pt_BR/LC_MESSAGES
。
之后,我打开了 rosetta 并开始将所有内容翻译成我的语言代码 (pt_BR)。一切都按预期工作,但我在网站上看不到我所做的更改。
我已经试过了:
- 正在重新启动服务器 (
python manage.py runserver
)
- 手动 运行
python manage.py compilemessages
我编辑的 .po 文件没有错误。
它在预期的文件夹中生成了 .po 和 .mo 文件,但似乎没有任何变化(一切仍然是英文的)
附加信息:
Django 版本 1.9.3
Python 版本 2.7
有人遇到同样的问题吗?
谢谢
-----编辑-----
这是我最终的(问题已解决).po 文件:
我的问题是:
我的 django.po 文件没有填入正确的语言代码:
"Language: \n"
所以我改成了
"Language: pt_BR\n"
重新编译消息后 (python manage.py compilemessages
) 一切正常。
此外,我发现 LOCALE_PATHS 设置在路径后需要一个斜杠,如下所示:
LOCALE_PATHS = (
os.path.join(PROJECT_ROOT, "locale/"),
)
我目前在使用 saleor 时遇到一个小问题:
首先,我在saleor/settings.py中设置如下配置:
# other settings config
LANGUAGE_CODE = 'pt_BR'
PROJECT_ROOT = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
LOCALE_PATHS = (
os.path.join(PROJECT_ROOT, "locale"),
)
USE_I18N = True
USE_L10N = True
USE_TZ = True
然后我在项目的根目录下创建了目录树/locale/pt_BR/LC_MESSAGES
。
之后,我打开了 rosetta 并开始将所有内容翻译成我的语言代码 (pt_BR)。一切都按预期工作,但我在网站上看不到我所做的更改。
我已经试过了:
- 正在重新启动服务器 (
python manage.py runserver
) - 手动 运行
python manage.py compilemessages
我编辑的 .po 文件没有错误。
它在预期的文件夹中生成了 .po 和 .mo 文件,但似乎没有任何变化(一切仍然是英文的)
附加信息: Django 版本 1.9.3 Python 版本 2.7
有人遇到同样的问题吗? 谢谢
-----编辑-----
这是我最终的(问题已解决).po 文件:
我的问题是:
我的 django.po 文件没有填入正确的语言代码:
"Language: \n"
所以我改成了
"Language: pt_BR\n"
重新编译消息后 (python manage.py compilemessages
) 一切正常。
此外,我发现 LOCALE_PATHS 设置在路径后需要一个斜杠,如下所示:
LOCALE_PATHS = (
os.path.join(PROJECT_ROOT, "locale/"),
)