【问题标题】:Using the pelican i18n subsites plugin with a static home page使用带有静态主页的 pelican i18n 子站点插件
【发布时间】:2016-01-02 21:31:21
【问题描述】:

我有一个静态主页,但我也在使用 i18n 子站点插件。所以对于我在 pelicanconf.py 中的主页:

INDEX_SAVE_AS = 'blog/index.html'
INDEX_URL = 'blog'

对于英文版:

I18N_SUBSITES = {
    'en': {
        'OUTPUT_PATH': 'output/en/',
        'INDEX_SAVE_AS': 'blog/index.html',
        'INDEX_URL': 'blog',
    }
}

(截断不必要的位)

问题在于主页的翻译链接。翻译宏有:

{% for translation in article.translations %}
    <a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang | lookup_lang_name }}</a>

所以对于英文主页,我可以将 url 和输出文件名设置为:

    <meta name="save_as" content="en/index.html">
    <meta name="url" content="en/">

这使翻译链接转到 site.com/en/en/(并且有效),或将它们设置为:

    <meta name="save_as" content="index.html">
    <meta name="url" content="/">

这与标准语言主页冲突。

另一个相关的问题是索引页面(博客页面)没有指向英语或返回标准语言版本的翻译链接。

我能做些什么来解决这个问题?

【问题讨论】:

    标签: python internationalization jinja2 pelican


    【解决方案1】:

    关于您问题的第二部分,请查看creating language buttons

    【讨论】:

    • 谢谢!不过,这实际上已经在我的翻译宏中的 {% else %} 语句中作为备份!
    【解决方案2】:

    我能够使用以下翻译宏解决我的问题:

    {% macro translations_for(article) %}
    
        {% if extra_siteurls %}
            {% for lang, url in extra_siteurls.items() %}
                {% if article %}
                <a href="{{ url }}/{{article.permalink}}">{{ lang | lookup_lang_name }}</a>
                {% else %}
                <a href="{{ url }}">{{ lang | lookup_lang_name }}</a>
                {% endif %}
            {% endfor %}
        {% endif %}
    
    {% endmacro %}
    

    通过为每篇文章和页面添加一个永久链接选项,我还可以翻译所述文章或页面的 URL(否则你可以只在上述宏中使用 slug)。

    最后但同样重要的是,我还从两个主页中删除了 url 和 save_as 数据。

    为了修复博客页面,我将其添加到 index.html 模板中:

    {% block translation_links %}
        {% if lang == 'nl' %}
        <a href="/en/blog/">English</a>
        {% else %}
        <a href="/blog/">Nederlands</a>
        {% endif %}
    {% endblock %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多