これは Craft CMS Advent Calendar 2020 24日目の記事です。

Craft CMS はマルチサイト・多言語サイトというのが作りやすいので色々な使い方が出来ると思う。

管理画面の翻訳も辞書を追加したりすれば問題なくうごくしやりやすい。

フィールドラベルを翻訳する

管理画面側に翻訳を適用するのは Craft CMS のインストールディレクトリに translations/ja/app.php を設置することで翻訳が適用出来る。

サイトとローカライゼーション | Craft CMS ドキュメント | 3.x
https://craftcms.com/docs/3.x/...

app.php に以下を定義すると翻訳が適用される。

'Buy Craft Pro' => 'Proを購入',

管理画面はこれが使われるとずっと思っていたのだけど、フィールドラベルに反映されずに何でだろうなぁ??と @tinybeans @BUN と話したりしてた。

↑この testwebp に相当するところ。

フィールドレイアウトまわりの設定が変わったりしたのが影響してるからなのかなー、、、、とおもって何度も試してみたりしたけど変わらず。

再度、安倍さんのエントリを読み返していたら、 site.php で設定してた!!

Craft CMS 3で管理画面をローカライズ(翻訳)する | Another Sky
https://www.anothersky.pw/2018...

管理画面のだから site.php は勝手に脳内で app.php に変換されてた。。
 site.php で設定したら確かに翻訳が適用された。

<?php

return [
    'testwebp' => 'テストwebp',
    'test' => 'テスト',
];

ユーザーの言語設定が日本語の時。

テストwebp に翻訳されている

英語の時。

いやー、反映されてるわー。。。。
管理画面だけど、ここは site.php なのね。。。

セクション名とかも site.php 側っぽいな。
test のセクションが テスト セクションになった。

シングルのセクション名を翻訳する

安倍さんのエントリで、シングルのセクション名の話が出てるのだけど、ここはセクションの入力タイプの設定でタイトルとして利用するフィールドの設定を調整すれば良さそうだった。

デフォルトの状態

タイトルのフィールドを見るように変更する

その上で、それぞれの言語(サイト)でタイトルを翻訳すればそれぞれのものが表示されるようになった。

英語サイトの方の設定。

日本語側で翻訳を変える。

まぁ、これはタイトルの変更が誰でも出来てしまうことにもなるので、確かに翻訳辞書側で調整出来た方が良さそうな気もする。

とここまで書いて思ったけど、デフォルトの設定で |raw にしない方法がありそうな?ということで再度試してみる。

タイトルの設定を |raw から |t に変更する

site.php の翻訳を以下のようにする

<?php

return [
    'testwebp' => 'テストwebp',
    'test' => 'テスト',
    'testsingle' => 'てすとしんぐる',
];

これで管理画面を確認すると、 site.php で適用した内容が反映されている。

こっちの方がいいのかもしれないなー。

いやー、勘違いもあったけど勉強になった。