setTemplateでエントリー化してない部分の多言語対応
同一テーマ内で多言語対応させて困ったこと
エントリーはエイリアスIDで表示を切り変えることでスムーズにできました。
困ったのはエントリーと同一htmlにあるエントリー化されていない、直書きしているテキスト。

今まで多言語対応したことがなくて、表示を変えたい時はincludeで済ませてました。
ただ、今回多数のページにエントリー化されていないテキストがちょこちょこあって、エントリー自体はエイリアエスで多言語に切り替わるのに、直書きのテキストのみ日本語の状態に。
直書きのテキストをincludeさせて%{ALIAS_ID}で出し分けもできるけど、テキストごとに個別にincludeファイルを作るのはいやだし、めんどくさい!なにか良い方法ないのかなーと調べてたところ、去年の夏前に参加したa-blog cms Training Camp OKINAWAで、SetなんとかとかGetなんとかを『便利だなー』って言ってたのをうっすらと思い出して再検索。
SetTemplateの記事がいくつかヒットしたので、参考にしてやってみたらincludeファイル1つで済みました!
Set Templateにidを付与して出し分けする
setTemplate setRenderedを使いこなそうを参考に、テーマ内のincludeフォルダにset_template.htmlを作成
<!-- インクルードファイル -->
<!-- BEGIN_SetTemplate id="summary_a" -->
<p>Aが呼ばれました。</p>
<!-- END_SetTemplate -->
<!-- BEGIN_SetTemplate id="summary_b" -->
<p>Bが呼ばれました。</p>
<!-- END_SetTemplate -->
上のコードをset_template.htmlにコピペ
<!-- 上のインクルードファイルをインクルード 。この時点では何も表示されません。-->
<!--#include file="/include/set_template.html" -->
<!-- 以下の一行のコードを呼び出すと、Aが呼ばれました。と表示されます。-->
<!-- GETは一度だけではなく何度でも呼び出せます。 -->
<!-- GET_Template id="summary_a" -->
そのあと表示させたいhtmlファイルに上のコードをコピペ
すると、ページには<!-- GET_Template id="summary_a" -->で指定した、
idの"summary_a"の内容【Aが呼ばれました。】が表示されます
このidにエイリアス番号を付与して多言語の出し分けをしてみました
set_template.htmlに記述
<!-- ▼▽▼ serval.html ▼▽▼ -->
<!-- 日本語 -->
<!-- BEGIN_SetTemplate id="serval" -->
<p>すごーい!</p>
<!-- END_SetTemplate -->
<!-- 英語 -->
<!-- BEGIN_SetTemplate id="serval1" -->
<p>Wow!</p>
<!-- END_SetTemplate -->
<!-- ▼▽▼ toki.html ▼▽▼ -->
<!-- 日本語 -->
<!-- BEGIN_SetTemplate id="toki" -->
<p>わたしはトキ</p>
<!-- END_SetTemplate -->
.
.
.
続けて記述
serval.htmlに記述
<!--#include file="/include/set_template.html" -->
<!-- GET_Template id="serval%{ALIAS_ID}" -->
エイリアス設定で英語はID1、コードネームはenに設定しているので、エイリアスが設定されてない時はid="serval"の日本語を読み込み。
エイリアエスIDが付いている時はid="serval1"が読み込まれ、英語が表示されます。
toki.htmlには<!-- GET_Template id="toki%{ALIAS_ID}" -->とidを書き換えたものを記述。
idで表示の出し分けができるので、エントリー化していないテキストはset_template.htmlにばばばーっと書いて、それぞれにidとエイリアスあり/なしを記述していくと、includeファイルは1つで済みました。
下の画像みたいなイメージ。

今回はエントリー化していないテキストがパラパラあるくらいだったので、ひとつのhtmlにまとめて記述しましたが細かく分ける場合はカテゴリーごとにファイルを分けた方が分かりやすいかもしれません。
普段多言語対応とかしたことなくて、そんなに難しい機能も使ってないので少し苦戦しました。
でもSetTemplate使ってみたらincludeファイル減るし便利!
次からも使っていきたいなーと思います。
参考にしたサイト
【a-blog cms】SetTemplate SetRenderedを使った新しいサイト制作
setTemplate setRenderedを使いこなそう
aicocco/かんろ