🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2281閲覧

PHPの英語→日本語に修正したらエラーが起こる現象 Wordpress プラグイン

shibaco

総合スコア18

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/02/08 04:40

編集2021/02/08 05:05

PHP初心者です。

Wordpressのemail-subscribersというプラグインの
一部表示メッセージ英語から日本語に変更したく
プラグインエディターで下記のように修正しました。

修正前

PHP

1$es_data = array( 2'messages' => array( 3'es_email_exists_notice' => __( 'Email Address already exists!', 'email-subscribers' ) 4), 5'es_ajax_url' => admin_url( 'admin-ajax.php' ), 6); 7

修正後

PHP

1$es_data = array( 2'messages' => array( 3'es_email_exists_notice' => __( '既に登録済みのアドレスです', 'email-subscribers' ) 4), 5'es_ajax_url' => admin_url( 'admin-ajax.php' ), 6); 7

上記のように変更したところ、

wp-content/plugins/email-subscribers/lite/public/class-email-subscribers-public.php ファイルの111行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。

syntax error, unexpected ' ' (T_STRING), expecting ')'

というメッセージが表示されてしまいます。
日本語に変更したことで表示されるエラーかと思いますが正しい表記がわからず困っています。
何か日本語を有効化するような記述が必要なのでしょうか...?

ご存知の方いましたら、助言いただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/08 04:51

そのファイルのその行付近で、タイプミスをしてカッコとか記号が欠落したのではないのですか?
shibaco

2021/02/08 04:54

何度もタイプミスは確認し、 Email Address already exists!のところを「既に登録済みのアドレスです」に変更しただけでエラーになってしまいました。 何か日本語を有効化するような記述が必要なのでしょうか...?
退会済みユーザー

退会済みユーザー

2021/02/08 04:58

その行番号はあくまで参考程度に捉えてください。どこかに必ずミスが紛れています。$es_dataの直前や、直後などもチェックしてください。
m.ts10806

2021/02/08 05:06

回答したらコードがなんの説明もなく変えられてしまった
shibaco

2021/02/08 05:08

回答に対して返信させていただいております。
m.ts10806

2021/02/08 05:14

質問に書いておいてください。 質問と回答見たときに整合性取れなくなるので、わざわざこちらで「質問が修正される前の回答です」などと補足するか、回答内容削除しなければなりません。
退会済みユーザー

退会済みユーザー

2021/02/08 05:17

全角空白は、webブラウザ越しに入力していると気づきにくいところなので、phpファイル全体を一度チェックしたほうがいいかもしれませんよ。
guest

回答2

0

ベストアンサー

プラグインのファイルを直接編集するというリスキーなことはやめて
lite/languages/email-subscribers.pot
翻訳ファイルのテンプレートを用意してくれてるようなので

poeditでpotから翻訳ファイルを作って翻訳してmoファイルを作って
wp-content/languages/plugins/email-subscribers-ja.mo
として保存してやりましょう

一応シンタックスエラーについても多少
もしかして「アドレス」の「ド」を抜いたら通ったりしますかね?
であればブラウザの文字コードとサーバーの文字コードが合ってないのではないかと思います

投稿2021/02/08 06:24

KazuhiroHatano

総合スコア7819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shibaco

2021/02/08 23:59

翻訳ファイルを作成できるとは知らず、とても参考になりました。 ご丁寧にリンクまでありがとうございました。
guest

0

ドキュメントによると、
第一引数は英文テキスト(翻訳する文字列)らしいので、日本語入れたら駄目ってことなのでは。
それか、第二引数で調整?
ざっと読んだだけで本来やるべきコアソース確認までしていないので、自身でも調整してみてください。

以下、質問が修正される前の回答

元のコードでも同じ構文エラー出るはずです。

php

1$es_data = array( 2[  ]'messages' => array(

文字列や変数名ではないところに全角空白が2つ

投稿2021/02/08 05:01

編集2021/02/08 05:19
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shibaco

2021/02/08 05:06

ご指摘ありがとうございます。 こちら、投稿時に誤ってつけてしまったものでした。(修正いたしました) 実際の構文は全角空白はなく、日本語表記を英語にし、更新したらエラーは解消されます。
m.ts10806

2021/02/08 05:07

手で修正するのではなくコピペで提示してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問