Wagtail i18n:仅显示指向已翻译页面的链接
Wagtail i18n: only show links to pages that are translated
我正在使用 Wagtail 2.11.3 构建一个 i18n 网站,并遵循 https://docs.wagtail.io/en/stable/advanced_topics/i18n.html?highlight=i18n 上的文档和四种语言。我还使用 django.middleware.locale.LocaleMiddleware
来确定用户的首选语言,哪种“类型”有效(请阅读下文)。
所以我有四种语言:
WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [
('de', "Deutsch"),
('fr', "Français"),
('it', "Italiano"),
('en', "English"),
]
只有部分网站应该是多语言的,有些页面只提供一种语言。我最终得到了四个页面树,每种语言一个,而且我能够创建翻译。
然而,正如所指出的,我有一些页面根本没有翻译,但仍然有本地化版本(在我创建页面时自动创建)。所以这里 https://docs.wagtail.io/en/stable/advanced_topics/i18n.html?highlight=i18n#basic-example 是一个如何在模板中实现语言链接的示例,但我只想显示指向已翻译页面的链接。使用 django_debug_toolbar
我找不到模板变量来检查页面是否已翻译。
我怎样才能做到这一点?
也相关:使用 django.middleware.locale.LocaleMiddleware
检测到首选语言,我在 /about_us
。但是,如果我没有在 url 之前明确设置语言代码(如 /de/about_us
),则当我浏览该站点时,以下页面将变回我浏览器的语言。因此,一旦 Locale 中间件检测到该语言,我想要像重定向到 /de/...
这样的东西。这可能吗(很抱歉,可能不仅与鹡鸰有关)。
要查找位于语言环境语言树中但未翻译的页面,可以使用 alias_of
属性。
template.html
{% if self.alias_of %}
not translated
{% else %}
translated
{% endif %}
views.py
if self.alias_of:
is_translated = self.alias_of.locale is self.locale
如需更多隐藏内容,请查看 wagtail-localize 存储库。我在 wagtail_hooks.py
中找到了这个
我正在使用 Wagtail 2.11.3 构建一个 i18n 网站,并遵循 https://docs.wagtail.io/en/stable/advanced_topics/i18n.html?highlight=i18n 上的文档和四种语言。我还使用 django.middleware.locale.LocaleMiddleware
来确定用户的首选语言,哪种“类型”有效(请阅读下文)。
所以我有四种语言:
WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [
('de', "Deutsch"),
('fr', "Français"),
('it', "Italiano"),
('en', "English"),
]
只有部分网站应该是多语言的,有些页面只提供一种语言。我最终得到了四个页面树,每种语言一个,而且我能够创建翻译。
然而,正如所指出的,我有一些页面根本没有翻译,但仍然有本地化版本(在我创建页面时自动创建)。所以这里 https://docs.wagtail.io/en/stable/advanced_topics/i18n.html?highlight=i18n#basic-example 是一个如何在模板中实现语言链接的示例,但我只想显示指向已翻译页面的链接。使用 django_debug_toolbar
我找不到模板变量来检查页面是否已翻译。
我怎样才能做到这一点?
也相关:使用 django.middleware.locale.LocaleMiddleware
检测到首选语言,我在 /about_us
。但是,如果我没有在 url 之前明确设置语言代码(如 /de/about_us
),则当我浏览该站点时,以下页面将变回我浏览器的语言。因此,一旦 Locale 中间件检测到该语言,我想要像重定向到 /de/...
这样的东西。这可能吗(很抱歉,可能不仅与鹡鸰有关)。
要查找位于语言环境语言树中但未翻译的页面,可以使用 alias_of
属性。
template.html
{% if self.alias_of %}
not translated
{% else %}
translated
{% endif %}
views.py
if self.alias_of:
is_translated = self.alias_of.locale is self.locale
如需更多隐藏内容,请查看 wagtail-localize 存储库。我在 wagtail_hooks.py
中找到了这个