gpt4 book ai didi

python - Django + Mezzanine 中的翻译问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:33 26 4
gpt4 key购买 nike

我遵循了描述的方法 here .

在索引页上,我有一个表格可以让我在网站语言之间切换。我添加了“next”post 属性启用重定向到页面的正确语言版本。

<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="language" type="hidden" value="{{ language.code }}" />
<input name="next" type="hidden" value="/{{ language.code }}/{{ request.path|slice:"4:" }}" />
<input type="submit" value="{{ language.code }}"
class="btn-link{% if language.code == LANGUAGE_CODE %} current{% endif %}" /></form>

如第一个链接中所述,我有自己的 set_language View 。下面是在 session 中存储 LANGUAGE_SESSION_KEY 的 View 的最后一部分。

if language and check_for_language(language):
if hasattr(request, 'session'):
request.session[LANGUAGE_SESSION_KEY] = language
else:
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
return response

我的 urls.py 看起来像:

urlpatterns = i18n_patterns("",
("^admin/", include(admin.site.urls)),

("^", include("mezzanine.urls")),

url("^$", "mezzanine.pages.views.page", {"slug": "/"}, name="home"),
)

总的来说,方法工作正常。当用户在索引页面上时,他可以更改语言并被重定向到正确的页面。

第一个问题是夹层链接。如果用户点击链接,他将被重定向到 settings.py 中 LANGUAGE_CODE 定义的语言。同时,如果用户点击 Mezzanine 页面的菜单项,则一切正常。

第二个问题是当用户点击 Mezzanine 主页链接时。在这种情况下,用户还会被重定向到由 LANGUAGE_CODE 定义的网站版本。

问题是,为什么我在 session 中设置 LANGUAGE_SESSION_KEY 后,它对以后以正确语言呈现页面没有任何影响?

最佳答案

我已经通过以下方式解决了我的问题。首先,改变形式:

<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="language" type="hidden" value="{{ language.code }}" />
{% if request.path|slice:"4:"|length > 0 %}
<input name="next" type="hidden" value="/{{ language.code }}/{{ request.path|slice:"4:" }}" />
{% else %}
<input name="next" type="hidden" value="/" />
{% endif %}
<input type="submit" value="{{ language.code }}"
class="btn-link{% if language.code == LANGUAGE_CODE %} current{% endif %}" />
</form>

如果用户从主页选择语言,那么下一个值将为“/”,如果用户在其他页面上更改语言,则它会更改语言前缀。

我也不再使用 Mezzanine 中的链接,因为它们无法根据当前语言正确解析。我创建的不是链接,而是普通的夹层页面。

关于python - Django + Mezzanine 中的翻译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com