Django翻译未更新求助:俄文翻译显示异常
问题
尝试实现英文到俄文的翻译功能,但翻译内容始终不更新。已尝试清除缓存、删除locale文件夹、修改po文件内容等操作,均无效。
当前po文件配置:
#: core/templates/core/layout.html:59 core/templates/core/layout.html:112 msgid "Home" msgstr "Главная"
页面实际显示的是Начало而非Главная,settings.py配置如下:
LANGUAGE_CODE = 'en' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True LANGUAGES = ( ("en", ('English')), ("ru", ('Russian')), ) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale/'), )
解决思路
- 确认po文件路径正确性:检查修改的是否是
locale/ru/LC_MESSAGES/django.po(或对应app的po文件),避免误改了其他位置的文件。 - 重新编译翻译文件:修改po文件后必须执行
django-admin compilemessages命令,确保生成对应的django.mo文件,且终端无编译报错。 - 检查模板翻译标签:确认页面中的
Home文本是通过{% trans "Home" %}模板标签实现翻译的,而非硬编码内容,同时排查是否存在翻译上下文冲突。 - 验证当前激活语言:在模板或视图中输出
{{ request.LANGUAGE_CODE }},确认页面确实切换到了俄语(ru),排除语言切换失效的问题。 - 排查翻译优先级:第三方应用或Django内置翻译可能覆盖自定义内容,可给翻译添加上下文区分,比如模板中用
{% trans "Home" context "nav_bar" %},po文件中对应添加:msgctxt "nav_bar" msgid "Home" msgstr "Главная" - 彻底清除缓存:执行
python manage.py clearcache(若启用缓存框架),同时重启开发服务器,确保旧翻译缓存被完全清空。
内容的提问来源于stack exchange,提问作者skagamer543
相关产品推荐
相关产品推荐

