サブサイト利用の英語言語設定において、一部のシステムが出力するエラーメッセージが日本語のままになる

4系4.2.3 にて、サブサイト 管理機能を使用して英語サイトの作成をしています。
Localeフォルダ内に英語翻訳のPOおよびMOファイルを設置し、英語言語設定ブラウザにてメールフォームから意図的に必須項目を未入力のままサブミットボタンを押したところ、同一の日本語のエラーメッセージにもかかわらず、英語翻訳が出力される部分とされない部分があります。
具体的には、添付の画像を確認お願いします。
修正が必要なファイル等アドバイスいただけないでしょうか。
よろしくお願いいたします。

こんにちは
お使いになっているテーマ内で必須項目です。というワードを検索し、該当した箇所をすべて__("必須項目です。")に書き換えてみてください。

__()が多言語対応する機能なので、それが抜けている可能性があります。

2 Likes

いつもご回答ありがとうございます。
さっそく確認しましたところ、検索でヒットしたファイルは、/lib/Baser/Plugin/Mail/Test/Case/Model/MailMessageTest.phpのみで、内容は、添付の通りご指摘の記述になっていました。
ですが、なぜかemail_1およびemail_2は、「形式が無効です。」となっています。

該当するファイルは、先ほどのものではなく、elementsフォルダ内のmail_input.phpだということがわかりました。
申し訳ありません。

1 Like

/lib/Baser/Plugin/Mail/View/Elements/mail_input.phpの記述に倣って、該当箇所を

echo $this->Mailform->error(“MailMessage.” . $field[‘group_field’] , __(‘必須項目です。’));

のように記述することで正しい表示になりました。
ちなみにこのファイルは、当初よりOmotenashiテーマのElementsフォルダ内に存在していたのですが、細かな記述は、/lib/Baser/Plugin/Mail/View/Elements/mail_input.phpと異なります。
/lib/Baser/Plugin/Mail/View/Elements/mail_input.phpをElementsフォルダにコピーして運用する方がよいのでしょうか?

コアのほうが継続的にメンテされていると思うので、libからコピーで問題なければそちらのほうがいいですね。

表示上の崩れが発生する場合は、クラス名やHTML構造の調整が必要になってしまいますが。

1 Like

アドバイス、ありがとうございます。