質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

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

Q&A

解決済

1回答

1778閲覧

wordpress poファイルのローカライズが適用されない

omusoba

総合スコア29

WordPress

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

0グッド

0クリップ

投稿2016/06/12 07:06

こんにちは。

現在wordpressで多言語に対応したサイトを作成しています。

その際に、poファイルで言語を振り分けてローカライズさせて問題なく稼動していました。

ですが、いつの間にかwp-includesの中にあるファイルだけが翻訳できなくなってしまいました。

確かにpoファイルの中には登録してあるのですが、poエディットでソースから更新をかけてみると、該当する文言が出てこず、編集もpoエディットでできなくなってしまいました。

wp-content,wp-adminは問題なくローカライズはできているのですが、結果としてなぜかwp-includesのファイル内だけローカライズが対応できなくなりました。
試しにwp-includes内に直接langageファイルを設けてpoファイルを作成したところ、poエディットを使ってソースから更新をかけたところ、編集はできることは確認できましたが、画面上にローカライズして出てくることはありませんでした。

多言語化自体は初めての試みなので、調べてみましたが特にダッシュボードでの設定では言語の変更しかないですし、そもそもrequireで読み込みを行うタイプではないのであろうと思っており少々困惑しております。

似たような事例や解決策、原因などがご存知の方がいらっしゃいましたら共有いただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

具体的な解決につながらないかもしれませんが、WordPressの翻訳ファイルの管理方法が変わっていくようです。変わっている途中なため、まだしばらくは混乱しそうな気がします。

【GlotPressでの翻訳をテーマ・プラグインに反映させるには ? モンキーレンチ】
http://2inc.org/blog/2015/11/01/5066/

【WordPressで一部だけ多国語化されない場合の解決方法 ? Monaural Sound】
https://ka2.org/tips-of-the-case-that-are-not-translated-only-part-in-wordpress/


力技なので、最後の手段ですが、gettext 系フィルタフックで書き換えていくという手段もあります。

PHP

1add_filter( 'gettext', 'custom_gettext', 999, 3 ); 2add_filter( 'gettext_with_context', 'trans_custom_gettext', 999, 4 ); 3add_filter( 'ngettext', 'trans_custom_gettext', 999, 5 ); 4add_filter( 'ngettext_with_context', 'trans_custom_gettext', 999, 6 ); 5 6function custom_gettext( $translated, $text, $domain ) { 7 $custom = array( 8 'default' => array( 9 '表示されている文字列1' => '変えたい文字列1' 10 , '表示されている文字列2' => '変えたい文字列2' 11 ) 12 ); 13 if ( $translated === '表示されている文字列3' ) { 14 return '変えたい文字列3'; 15 }; 16 return ( isset( $custom[ $domain ][ $translated ] ) ) ? $custom[ $domain ][ $translated ] : $translated; 17} 18function trans_custom_gettext() { 19 $args = func_get_args(); 20 return $this->custom_gettext( $args[ 0 ], $args[ 1 ], array_pop( $args ) ); 21}

投稿2016/06/12 08:13

kei344

総合スコア69407

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

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

omusoba

2016/06/12 09:52

wordpressの翻訳ファイルの管理方法が変わるとありますが、それはアップデートを行うたびに起きてしまう場合があるということでしょうか? なにぶんローカライズ項目が大量にあるので教えていただいた力技は最終手段になりそうですね....。 サイトを拝見し、ヒントを得られた気がしますので色々試してみます!
kei344

2016/06/12 10:40

> それはアップデートを行うたびに起きてしまう場合がある そのあたりもちょっと手持ちの情報がありませんが、プラグインと同じようにアップデートが可能になる模様です。ということは切り替わりがコアのアップデートのタイミングで起こると予想しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問