2016-01-02 39 views
1

我有一個靜態主頁,但我也使用i18n子插件插件。所以對於網頁我有,在pelicanconf.py:使用鵜鶘i18n子插件插件與靜態主頁

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="/"> 

與標準的語言主頁衝突。

另一個相關的問題是,索引頁面(博客頁面)沒有翻譯鏈接到英語或回到標準語言版本。

我能做些什麼來解決這個問題?

回答

0

我能解決我的問題與下面的轉換宏:

{% 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 %} 

若再加上一個固定鏈接選項每篇文章並且頁面I也可以翻譯所述文章或頁面的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 %} 
0

對於你的問題的第二部分,看看creating language buttons

+0

謝謝!儘管這已經在我的翻譯宏中的{%else%}語句中作爲備份了! – Flobin