我已经完成了makemessages
,compilemessages
并且两个文件都包含{%blocktranslate%}内部的翻译。我什至重新运行了makemessages以确保msgid中没有任何变化,除了.po之外,它没有对我的.po文件进行任何更改POT-Creation-Date
。但是这些{%blocktranslate%}段落没有翻译。我坚持使用msgid
而不是msgstr
。
对于很长的msgid,有什么窍门吗?
我假设键不匹配,但不确定为什么不匹配,因为工具在重新运行时不会更改值。
问题变得更糟了,现在一些短译本也不起作用。
这是渲染的页面:
这是渲染它的来源:
<li class="nav-item {% is_active_tab 'home' %}">
<a class="nav-link" href="{% url 'home' %}">
{% translate "Home" %}
</a>
</li>
{% if request.user.is_authenticated %}
<li class="nav-item {% is_active_tab 'games:list' %}">
<a class="nav-link" href="{% url 'games:list' %}">
{% translate "My Quizzes" %}
</a>
</li>
<li class="nav-item {% is_active_tab 'games:create' %}">
<a class="nav-link" href="{% url 'games:create' %}">
{% translate "New Quiz" %}
</a>
</li>
这是.po文件
#: templates/site_base.html:41
msgid "Home"
msgstr "Inicio"
#: templates/site_base.html:47
msgid "My Quizzes"
msgstr "Mis Cuestionarios"
#: templates/site_base.html:52
#, fuzzy
msgid "New Quiz"
msgstr "Nuevo Cuestionario"
是的,我已经运行了compilemessages
(bb) $ manage compilemessages
processing file django.po in .../locale/es_MX/LC_MESSAGES
基于第一个翻译,它正在查找文件,但随后它仅翻译了一些术语。管理员的翻译效果更好(更完整),但我不确定自己做错了什么。我以为可能是LOCALE_PATHS
这样,所以我将其添加到了设置中,但随后想起了compilemessages已经找到了该文件,因此没有任何效果。
LOCALE_PATHS = [
BASE_DIR / 'locale',
]
更新:我正在使用es_MX的语言环境。当我重新转换为es时,它开始工作,而修复#fuzzy的另一部分是。我不确定你如何在西班牙语上进行变化,但是就目前而言,我只是不必担心。
你的代码未显示任何内容,{% blocktranslate %}
因此很难提供适当的答案。
对于简短的翻译,#, fuzzy
不允许使用.po条目,并且不会翻译。
他可能使用过
--use-fuzzy
,但是无论哪种方式都不能解释“我的测验”。我认为您的项目不足以提供更好的目标。您的模板和生成的html的很大一部分将非常有帮助。