soyinquiryのエラーメッセージの英語表記について 投稿する

投稿者:オフィスニコ  投稿日時:2023-01-28 17:45:37
お世話になっております。
現在、SOYCMSにて英語サイトを作成しており、
先日こちらでご相談した メールの送信内容については英語表記にすることができましたが、
できればエラーメッセージの部分についても英語で表記できればと思いました。

添付画像の「●●を入力してください」の部分です。

テンプレートに修正できる箇所が無かったので
どのファイルをどのようにしたらよいか、お教えいただけますと助かります。

よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-01-29 04:43:26
SOY Inquiryの各カラムのエラーメッセージは、今までの多言語化サイトでは、英語版のカラムを新規で作成して対応していました。
※お問い合わせの項目の追加の項目のことをカラムと呼んでいます。

この内容はハードルが高い為、簡単に対応できる仕組みを設けます。

取り急ぎ、
・1行テキスト
・複数行テキスト
・メールアドレス
のカラムで良いですか?
投稿者:齋藤毅  投稿日時:2023-01-29 04:44:22
ちなみにですが、多言語サイトプラグインは利用していますか?
利用していなければ、それを介さない方法も整理しておきます。
投稿者:オフィスニコ  投稿日時:2023-01-29 07:21:20
ご返信ありがとうございます!
はい、今のところ上記の3項目で作成しております。

多言語サイトプラグインは
今回はURLの構成がちょっと違った為使っていません。

よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2023-01-30 11:11:33
エラーメッセージの英語表記の仕組みを設けました。
対応版は下記のページからダウンロードできます。
https://saitodev.co/soycms/soyinquiry/

今回の改修では多言語サイトプラグインの利用していることが前提で書かれていますが、
多言語サイトプラグインを利用していないということで、新規でプラグインを作成して頂く必要があります。

これからプラグインの作成方法を記載しますので、要件を整理しながら、今回のサイトを満たすプラグインを構築していきましょう。
投稿者:齋藤毅  投稿日時:2023-01-30 11:22:10
プラグインの詳細説明になりますが、エラーメッセージの英語表記では、フォームのページを開く前にSOYCMS_PUBLISH_LANGUAGE
という定数を定義しておく必要があります。

最初にすべてのページで英語表記の設定方法を記載します。
プラグインの書き方 - SOY CMSを使ってみようプラグインでページ読み込み開始時に定数定義等を行う - SOY CMSを使ってみようを参考にして進めます。

最初に下記のパスになるようにディレクトリとファイル名を作成します。
/CMSインストールディレクトリ/common/site_include/plugin/multi_language_custom/multi_language_custom.php

multi_language_custom.phpの記述は下記にします。
<?php

class MultiLanguageCustomPlugin{

	const PLUGIN_ID = "multi_language_custom";

	function getId(){
		return self::PLUGIN_ID;
	}

	function init(){
		CMSPlugin::addPluginMenu(self::PLUGIN_ID,array(
			"name" => "英語フォーム用の定数設定プラグイン",
			"type" => Plugin::TYPE_NONE,
			"description" => "",
			"author" => "",
			"url" => "",
			"mail" => "",
			"version" => "1.0"
		));
		
		if(CMSPlugin::activeCheck(self::PLUGIN_ID)){
			if(defined("_SITE_ROOT_")){
				CMSPlugin::setEvent("onSiteAccess", self::PLUGIN_ID, array($this, "onSiteAccess"));
			}else{
				//
			}
		}
	}

	function onSiteAccess($args){
		// 下記のコードで英語表記のフォームが利用できるようになります。
		if(!defined("SOYCMS_PUBLISH_LANGUAGE")) define("SOYCMS_PUBLISH_LANGUAGE", "en");
	}

	public static function register(){
		$obj = CMSPlugin::loadPluginConfig(self::PLUGIN_ID);
		if(!$obj) $obj = new MultiLanguageCustomPlugin();
		CMSPlugin::addPlugin(self::PLUGIN_ID, array($obj, "init"));
	}
}
MultiLanguageCustomPlugin::register();

ファイルを保存した後にフォームを設置するサイトの管理画面を開き、プラグインのページの下の方に英語フォーム用の定数設定プラグインがありますので、このプラグインを有効にすると、英語表記のエラーメッセージに切り替わります。

後はこのプラグインを必要に応じて改修していきます。
投稿者:オフィスニコ  投稿日時:2023-01-30 13:58:52
ありがとうございます!
早速試してみます。

結果はご報告いたします。
投稿者:オフィスニコ  投稿日時:2023-01-30 23:07:36
お世話になっております。

お教えいただいたプラグインの設置で、エラーメッセージが英語表示になりました。
ありがとうございます。

いつも素早いご対応に感謝です!
投稿者:齋藤毅  投稿日時:2023-01-31 11:52:02
無事に動作して良かったです。
今回のプラグインはすべてのページで英語表記の設定になりますので、日本語用のフォームを設置する場合にプラグインの改修が必要になります。

改修が必要になりましたらご連絡ください。
投稿者:オフィスニコ  投稿日時:2023-01-31 20:24:17
ありがとうございます。

日本語用サイトもありますが、別サイトとして作成しておりフォームも別々です。
inquiryはプラグインも共有していますが今のところ大丈夫のようです^

また何かありましたらご連絡させていただきます。

いつもありがとうございます!
ログインして投稿する