Title: theme my loginで英語表記の部分を日本語にしたい
Last modified: 2013年3月11日

---

# theme my loginで英語表記の部分を日本語にしたい

 *  [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 7ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/)
 * 数日前に、
    [日本語化されていない部分を日本語にしたい](http://ja.forums.wordpress.org/topic/14468?replies=5)
   というトピックをたてましたが、
 * 質問の内容が、途中でトピックとズレているかもしれないと思い、
    改めてトピックを
   たてました。
 * 質問の内容としましては、
    theme my loginというプラグインを使っているのですが、
   プロフィール画面のところで、パスワードとメールアドレスの部分を 空欄にしたり、
   不備があったりすると、 エラーが英語で表記されてしまうので、日本語にしたい、という
   ものです。
 * 私は、poeditというものを使って日本語にしようとしたのですが、
    poeditでも不可能
   でした。
 * すると、言語ファイルを直すわけではない、という指摘がありました。
    しかし、私が
   言語ファイル以外で修正する方法というものがわかりませんでした。
 * そのため、今回のようなトピックをたてさせていただきました。
 * theme my loginのプロフィール画面での英語表記のエラーを
    日本語化したいのですが、
   なにかわかる方がいらっしゃいましたら、ぜひなにか 教えていただきたいです。

9件の返信を表示中 - 1 - 9件目 (全9件中)

 *  [yah!!](https://ja.wordpress.org/support/users/yahss/)
 * (@yahss)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159110)
 * 4か月も前の投稿なので、もはや回答は不要かもしれませんが・・・
    最近、この件を
   まとめましたので参考にしてみてください。 [ユーザー登録時のエラーメッセージの制御（翻訳不可文字列の対応）](http://yahss.net/wordpress/765-registration-form2-with-theme-my-login/#tml04)
 *  トピック投稿者 [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159111)
 * yah!!さん、
    ご返信ありがとうございます。
 * ２点確認したいのですが、
    このコードは具体的にどこに記述するのがよいのでしょう
   か？ functions.phpではないかも・・と思いました
 * また、私の希望としては、プロフィール画面のエラーの英語表記の
    変更なのですが、
   コアファイルなどを いじることなく、プロフィールのエラーを日本語化することが出来る
   ということで大丈夫なのでしょうか？
 *  [yah!!](https://ja.wordpress.org/support/users/yahss/)
 * (@yahss)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159112)
 * ご紹介した記事は、Theme My Loginを使って登録フォームを作成するシリーズの一部分
   です。
    そこから紹介すべきでした。失礼いたしました。
 * この記事は、[入力項目のバリデートを紹介した記事](http://yahss.net/wordpress/729-registration-form1-with-theme-my-login/#tml04)
   の続きとなっています。
    「新規ユーザー登録時のバリデート」のコードをfunctions.
   phpに記述します。 バリデートがエラーメッセージをはきだしますので、そのロジック
   に追加記述することで英語のままの文字列をお好みの日本語に置換しているということ
   です。
 * 必要に応じて編集する必要がありますが、functions.phpに記述するfunctionはバリデート
   部分と英語→日本語置換部分とをマージして以下のような感じになります。
 *     ```
       /***********************************************
       * 新規ユーザー登録時のバリデート
       ***********************************************/
       function tml_registration_errors( $errors ) {
   
       	$tel_format="/^[0-9]{2,3}\-[0-9]{3,4}\-[0-9]{3,4}$/";
   
       	if ( empty( $_POST['last_name'     ] ) ) $errors->add( 'empty_last_name',      '<strong>エラー</strong>: お名前を入力してください');
       	if ( empty( $_POST['user_name_kana'] ) ) $errors->add( 'empty_user_name_kana', '<strong>エラー</strong>: お名前フリガナを入力してください' );
       	if ( empty( $_POST['user_tel'] ) ) {
       		//電話番号が入力されていな場合のエラー
       		$errors->add( 'empty_user_tel',       '<strong>エラー</strong>: 電話番号を入力してください' );
       	} else {
       		//電話番号は入力されているが書式が間違っている場合のエラー
       		if ( !preg_match($tel_format,$_POST["user_tel"]) ) {
       			$errors->add( 'error_user_tel',   '<strong>エラー</strong>: 電話番号の書式が間違っています' );
       		}
       	}
       	if ( !empty( $_POST['user_fax'] ) && !preg_match($tel_format,$_POST["user_fax"]) ) {
       		//FAX番号は入力されているが書式が間違っている場合のエラー（空はOK）
       		$errors->add( 'error_user_fax',   '<strong>エラー</strong>: FAX番号の書式が間違っています' );
       	}
       	if ( empty( $_POST['user_confirm'  ] ) ) $errors->add( 'empty_user_confirm',   '<strong>エラー</strong>: 会員規約に同意をチェックしてください' );
   
       	// tml_registration_errors に追記部分
       	$rep1 = array();
       	$rep2 = array();
       	array_push($rep1, "<strong>ERROR</strong>");
       	array_push($rep2, "<strong>エラー</strong>");
       	array_push($rep1, "Please enter your password twice.");
       	array_push($rep2, "パスワードを2回入力してください。");
       	array_push($rep1, "Please enter the same password in the two password fields.");
       	array_push($rep2, "パスワードは同じものを2回入力してください。");
       	array_push($rep1, "This username is already registered, please choose another one.");
       	array_push($rep2, "同じメールアドレスがすでに登録されているため、ユーザー名を確定できません。");
       	array_push($rep1, "ユーザー名を入力してください。");
       	array_push($rep2, "ユーザー名を確定できません。メールアドレスを入力してください。");
       	$custom_error = new WP_Error();
       	foreach ( $errors -> errors as $key => $val ) {
       		$tmp = str_replace($rep1,$rep2,$val[0]);
       		$custom_error -> add($key, $tmp);
       	}
       	return $custom_error;
       //	return $errors;
   
       }
       add_filter( 'registration_errors', 'tml_registration_errors' );
       ```
   
 * functions.phpの記述で完結できますので、コアファイル等は使用する必要はありません。
 * しかしながら、これは登録時のエラーをフックする方法です。
    firthさんのトピック
   を見ると、プロフィールページということでしたね。 user_profile_update_errorsという
   フックがあるようです。 試していませんが、add_filterのところをuser_profile_update_errors
   にフックするようにすればよいのかもしれません。 参考に。
 *  トピック投稿者 [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159113)
 * yah!!さん
    たびたび失礼します。
 * yah!!さんが上記のコードでも記述してくださっている通りですが、
    まさしくプロフィール
   のパスワードとメールアドレスの部分だけが 英語表記のままとなってしまいます。
 * そこで、yah!!さんのサイトやここでのお話をもとに、
    プロフィールの英語表記について
   以下のようなコードを functions.phpに記述したのですが、 特に変化が見られません
   でした。
 *     ```
       <?php
       function tml_registration_errors( $errors ) {
   
           $rep1 = array();
           $rep2 = array();
           array_push($rep1, "<strong>ERROR</strong>");
           array_push($rep2, "<strong>エラー</strong>");
           array_push($rep1, "Please enter your password twice.");
           array_push($rep2, "パスワードを2回入力してください。");
           array_push($rep1, "Please enter the same password in the two password fields.");
           array_push($rep2, "パスワードは同じものを2回入力してください。");
           array_push($rep1, "This username is already registered, please choose another one.");
           array_push($rep2, "同じメールアドレスがすでに登録されています。");
           $custom_error = new WP_Error();
           foreach ( $errors -> errors as $key => $val ) {
               $tmp = str_replace($rep1,$rep2,$val[0]);
               $custom_error -> add($key, $tmp);
           }   
   
           return $custom_error;
           return $errors;
       }
       add_filter( 'user_profile_update_errors', 'tml_registration_errors' );
       ?>
       ```
   
 * なにか他に書き加える必要などあるのでしょうか？
    やはりコアファイルを書き換える
   必要があるのでしょうか？ もしよろしければご意見をいただけますと幸いです。
 *  トピック投稿者 [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159114)
 * 何度もすいません。
    報告という形になるのですが、
 * yah!!さんがこのトピックで提示してくださいましたコードを
    add_filterのところを
   registration_errorsから user_profile_update_errorsに変更して 貼り付けてみました。
 * その結果、
    エラー: お名前を入力してください エラー: お名前フリガナを入力して
   ください エラー: 電話番号を入力してください エラー: 会員規約に同意をチェックし
   てください というのが表示されましたが、 パスワードとメールアドレスのエラーは英語
   表記のままでした。
 * また、英語表記でのエラーなのですが、
    私の画面では、 ERROR: You entered your 
   new password only once. ERROR: Please enter the same password in the two password
   fields. ERROR: Please enter an e-mail address. というように表示され、 yah!!さん
   の提示して下さっているコードと 若干の違いが見られました。 これらも、英語表記が
   変化しない原因なのでしょうか。
 * この後も自分で調べてみたのですが、
    やはり変更方法がわからないので、 もしわかる
   ようでしたら、教えていただけますと幸いです。
 *  [yah!!](https://ja.wordpress.org/support/users/yahss/)
 * (@yahss)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159115)
 * firthさん、コメントしてくださったいたのに気付いていませんでした。
    大変失礼い
   たしました。
 *     ```
       return $custom_error;
           return $errors;
       ```
   
 * の2行目ですが、これを削除（もしくはコメントアウト）していただくとどうなるでしょう
   か。
    この$errorsは置換前の英語が含まれる配列ですから、これはreturnしません。
 *  トピック投稿者 [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159116)
 * yah!!さん
    こちらこそ、返信が遅くなってしまい、 大変申し訳ありませんでした。
 * return $custom_error;
    return $errors;
 * の２行を削除したのですが、
    特に変化は見られませんでした。
 * ご報告という形になってしまいましたが、
    よろしくお願い致します。
 *  [yah!!](https://ja.wordpress.org/support/users/yahss/)
 * (@yahss)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159117)
 * 実装してみました。
    以下のコードで出来ました！（私の環境では・・・）
 *     ```
       //プロフィール編集時のエラー
       	function tml_profile_errors( $errors ) {
       		$rep1 = array();
       		$rep2 = array();
       		array_push($rep1, "<strong>ERROR</strong>");
       		array_push($rep2, "<strong>エラー</strong>");
       		array_push($rep1, "You entered your new password only once.");
       		array_push($rep2, "新しいパスワードが1回しか入力されていません。");
       		array_push($rep1, "Please enter the same password in the two password fields.");
       		array_push($rep2, "パスワードは同じものを2回入力してください。");
       		array_push($rep1, "Please enter an e-mail address.");
       		array_push($rep2, "メールアドレスをご入力ください。");
   
       		foreach ( $errors -> errors as $key => $val ) {
       			for ($i = 0; $i <= count($val); $i++) {
       				$tmp = str_replace($rep1,$rep2,$val[$i]);
       				if ( $tmp ) {
       					unset($errors->errors[$key][$i]);
       					$errors -> add($key, $tmp);
       				}
       			}
       		}
       	}
       	add_filter( 'user_profile_update_errors', 'tml_profile_errors' );
       ```
   
 * 登録時とプロフィール更新時とではエラーの持ち方がちょっと違ったようですね。
 * 簡単に説明すると、
    $errorを受け取って解析しているわけですが、 エラー文字列を
   一行ずつ（$val[$i]）解析して、 $rep1にマッチする文字列があった場合 　その配列
   をunset（削除）して 　かつ、$rep2の該当する文字列を$errorに追加 という感じの処理
   をしています。
 * 今度こそ・・・
 *  トピック投稿者 [firth](https://ja.wordpress.org/support/users/firth/)
 * (@firth)
 * [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159118)
 * yah!!さん!!
    こちらの環境でも無事出来ました！！
 * 驚いたことに、仕組み上、英語だけでなく日本語でも
    いけるということがわかり、 
   さらに重宝するという感じです。
 * もちろん、最初から日本語表記出来ている部分については、
    poeditなどで編集するの
   も良いのでしょうが、 yah!!さんのコードの応用で変更できるのは、大変助かります。※
   私は、メールアドレスがすでに利用されている時のエラー表示を 　変更させていただき
   ました。
 * この問題は、私の中でも常に問題として抱えていたのですが、
    このような形で対応する
   ことが出来て、 本当に感謝しています。 半ば興奮のような感じです。
 * このコードはぜひ使わせていただきたいと思います。
    ありがとうござます！！！

9件の返信を表示中 - 1 - 9件目 (全9件中)

 トピック「theme my loginで英語表記の部分を日本語にしたい」には新たに返信すること
はできません。

## タグ

 * [プロフィール](https://ja.wordpress.org/support/topic-tag/%e3%83%97%e3%83%ad%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab/)
 * [英語](https://ja.wordpress.org/support/topic-tag/%e8%8b%b1%e8%aa%9e/)
 * [Theme My Login](https://ja.wordpress.org/support/topic-tag/theme-my-login/)
 * [変更](https://ja.wordpress.org/support/topic-tag/%e5%a4%89%e6%9b%b4/)
 * [文章](https://ja.wordpress.org/support/topic-tag/%e6%96%87%e7%ab%a0/)
 * [日本語表記](https://ja.wordpress.org/support/topic-tag/%e6%97%a5%e6%9c%ac%e8%aa%9e%e8%a1%a8%e8%a8%98/)

 * フォーラム: [プラグイン](https://ja.wordpress.org/support/forum/plugins/)
 * 9件の返信
 * 2人の参加者
 * 最後の返信者: [firth](https://ja.wordpress.org/support/users/firth/)
 * 最後の活動: [13年、 2ヶ月前](https://ja.wordpress.org/support/topic/theme-my-login%e3%81%a7%e8%8b%b1%e8%aa%9e%e8%a1%a8%e8%a8%98%e3%81%ae%e9%83%a8%e5%88%86%e3%82%92%e6%97%a5%e6%9c%ac%e8%aa%9e%e3%81%ab%e3%81%97%e3%81%9f%e3%81%84/#post-159118)
 * 状態: 未解決

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
