2017-01-18 7 views
2

言語選択が可能なJekyll 3プロジェクトがあります。私たちは国際化のために 'jekyll-multiple-languages-plugin'宝石を使用しています。 選択した言語に応じてドイツ語または英語の用語を表示する用語集があります。私は 'jekyll-multiple-languages-plugin' gemが提供する変数site.langを使って、選択した言語を取得します。 は今glossary.htmlこのJekyllで文字列補間を使用するにはどうすればよいですか?

<div id="glossary"> 
    {% if site.lang == "de" %} 
     {% for term in site.data['terms_de'] %} 
     <!-- German glossary goes here --> 
     {% endfor %} 
    {% elsif site.lang == "en" %} 
     {% for term in site.data['terms_en'] %} 
     <!-- English glossary goes here --> 
     {% endfor %} 
    {% endif %} 
    </div> 

のように見えますが、私はこの

<div id="glossary"> 
    {% for term in site.data["terms_#{site.lang}"] %} 
     <!-- Glossary goes here --> 
    {% endfor %} 
    </div> 

のようなものを持っているのが大好きです。しかし、何らかの理由で、文字列の補間"terms_#{site.lang}"は動作しません。また、私はページに{{ site.lang }}を入れたときに、私が選択した言語を参照してくださいので、私は補間が動作していないと思いますが、私は{{ "terms_"+site.lang }}を書くとき、私は何も表示されません'terms_'+site.lang

を試してみました。

ありがとうございます。

答えて

2

あなたが代わりにそれを変数にセットした値を表示するので、captureタグを利用することができます:

site.data[term_lang] 

{% capture term_lang %}{{ 'terms_' | append: site.lang }}{% endcapture%} 

次に、あなたが配列のインデックスとしてその変数を使用することができます

あなたの例:

{% capture term_lang %}{{ 'terms_' | append: site.lang }}{% endcapture%} 
<div id="glossary"> 
{% for term in site.data[term_lang] %} 
    <!-- Glossary goes here --> 
{% endfor %} 
</div> 
+0

これは私の問題を解決しました。あなたの説明には少し構文エラーがありますが、あなたは '{{'terms_' | append:site.lang' –

+0

@JorgeJuniorArteagaCarvalhoあなたは正しいです、私は例でそれを修正しました! – marcanuy

関連する問題