【问题标题】:How to generate links for all languages on top in Pelican site for current page (article)如何在 Pelican 网站的顶部为当前页面生成所有语言的链接(文章)
【发布时间】:2014-08-28 09:04:46
【问题描述】:

您好,我正在使用 Pelican/Python 构建一个小型静态多语言网站。

使用 i18n_subsites 插件,我可以在我的网站顶部添加显示其他可用语言的语言按钮。

有没有办法在这些语言按钮上指定指向当前页面(文章)翻译的链接?不是主页吗?留在同一页面(文章)上会很好。

任何帮助将不胜感激。

【问题讨论】:

    标签: python jinja2 pelican


    【解决方案1】:

    可能对其他人有用。

    这是一个诱人的问题。非常感谢smartass101

    你可以这样做:

    {% if lang_siteurls %}
    {% for lang, url in lang_siteurls.items() %}
    <li{% if lang == DEFAULT_LANG %} class="active"{% endif %}>
    <a href={% if article and lang != DEFAULT_LANG %}"{{ SITEURL }}/{{ article | extract_trans(lang, url) }}"
         {% elif article %}"{{ SITEURL }}/{{ article.url }}"
         {% elif page and lang != DEFAULT_LANG %}"{{ SITEURL }}/{{ page | extract_trans(lang, url) }}"
         {% elif page %}"{{ SITEURL }}/{{ page.url }}"
         {% else %}"{{ url }}"{% endif %}>{{ lang }}</a></li>
    {% endfor %}
    <!-- separator -->
    <li style="background-color: white; padding: 5px;">&nbsp</li>
    {% endif %}
    

    过滤器定义为

    def extract_trans(article, lang, url):
        for trans in article.translations:
            if trans.lang == lang:
                return trans.url
        return url
    

    并使用 JINJA_FILTERS 设置包含在内。此代码适用于我的所有页面和文章,但存档除外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2010-11-29
      • 2014-03-22
      • 2019-08-17
      • 2016-03-05
      • 2014-03-18
      • 1970-01-01
      相关资源
      最近更新 更多