Craft CMS に独自の翻訳ファイルを適用する

Craft CMS に独自の翻訳を適用する方法をご紹介します。

Craft CMS Logo

この記事は「Craft CMS Advent Calendar 2017」の5日目の記事です。

Craft CMS は最初から日本語にも対応していますが、別の翻訳の方がクライアントに分かりやすい場合もあります。

例えば、下記の画像にある「有効期限の日付」。

craft-translation-00-min.png

これは個人的には「公開終了日」の方が分かりやすい気がします。そのような場合は、独自の翻訳ファイルを用意して本体の翻訳を上書きすることができます。

独自の翻訳ファイルを設置

独自の翻訳ファイルを設置する方法は BUN さんが下記の記事ですでに書いてくれていますね。

ここでもざっくり説明しておくと、下記の手順になります。

  1. craft ディレクトリに translations ディレクトリを作成
  2. 本体の craft/app/translations/ja.php ファイルを作成した craft/translations にコピー

あとはこのコピーした ja.php を修正していけばOKです。

先程あげた「有効期限の日付」を修正してみると、

'Expiry Date' => '有効期限の日付',

という部分を、

'Expiry Date' => '公開終了日',

として保存すると翻訳が上書きされます。

craft-translation-01-min.png

プラグインの翻訳も修正できる

さて、実はこの自分で設置した ja.php はプラグインの翻訳にも使えます。

例えば、無料でメールフォームを作成できる高機能なプラグイン「amforms」の初期状態の画面は下図のようになっています。

craft-translation-02-min.png

フィールド設定 だけ翻訳されていて少し違和感ありますよね。

そこで、独自 ja.php に下記のように追加してみます。

// amforms
'Forms' => 'フォーム',
'Exports' => 'エクスポート',
'Submitted from' => '送信フォーム',
'Submissions' => '投稿されたデータ',
'All submissions' => '全ての投稿データ',

すると下図のようになりました。

craft-translation-03-min.png

フィールド名にも適用できる

さらにこの独自の ja.php は自分で追加したフィールド名などにも適用できます。

例えば、「Caption」という名前のプレーンテキストのフィールドを作ったとして、独自の ja.php に以下のコードを追加すれば管理画面上は「キャプション」と表示されます。

'Caption' => 'キャプション',

したがって、多言語サイトで管理画面も多国籍の人が利用する場合は、初めからフィールド名を英語で追加して、独自の ja.php 等に翻訳を追加していくというのもありかもしれませんね。僕は今作業している案件のサイトではそうしています。

また、翻訳ファイルを1箇所で管理できたり、他の案件に使い回したりできるというメリットもあります。

以上です。

Published 2017-12-05
Updated 2019-06-25