load_textdomain( 'sample', dirname(__FILE__).'/languages/' . get_locale() . '.mo');
上記の記述がfunctions.phpにあり、コード内のsampleはテーマ内で多く使われていますが
このsampleの部分に非常に不適切な言葉が使われています。サイトの前任者が切り替わる時に
嫌がらせの様に書き換えていったと聞いています。
このsampleを通常の言葉に換えたいのですがどのファイルから直せばよろしいでしょうか?
.mo .po 色んな事を調べたのですが答えに至らずでこちらで質問させて頂きます
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
翻訳ファイルを使用している個所については、フックで処理できると思います。
【WordPressで翻訳ファイルを修正せずにテキストを変更する方法 | Simple Colors】
http://www.warna.info/archives/1581/
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 'ユーザー名' => 'ログイン名(半角英数字)' 10 , '名' => '店舗名(半角英字)' 11 // 換字表。 12 // , '表示されている文字' => '表示したい文字' 13 ) 14 , 'sample' => array( // テキストドメインがわかっている場合 15 'へんなもじ' => '氏名' 16 , 'あやたか' => 'ふりがな' 17 ) 18 ); 19 // テキストドメインがわかっていない場合 20 if ( $translated === 'いずも' ) { return '表示名'; // 表示されている文字が「いずも」の場合「表示名」に換える処理 21 } else if ( $translated === 'うわばみ' ) { return '表示'; // 示されている文字が「うわばみ」の場合「表示」に換える処理 22 }; 23 24 return ( isset( $custom[ $domain ][ $translated ] ) ) ? $custom[ $domain ][ $translated ] : $translated; 25} 26function trans_custom_gettext() { 27 $args = func_get_args(); 28 return $this->custom_gettext( $args[ 0 ], $args[ 1 ], array_pop( $args ) ); 29}
投稿2016/04/02 12:30
総合スコア69398
0
翻訳を呼び出す側の load_textdonain や _e 関数の部分で置き換えられているのであれば、オリジナルの翻訳ファイルを定義している可能性もあり、単純に .po .mo ファイルを WordPress やテーマのオリジナルに入れ替えると、WordPress の表示にも影響が出るかもしれないですね。
具体的な状況がわからないので、現時点で言えることは、不適切な言葉をエディタの置換機能などを使って、確認しながら、Wordpress ディレクトリの中を置換していくしかないかもしれません。
投稿2016/03/11 03:28
総合スコア25171
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
load_textdomain()の第一引数であるところの'sample'は、テキストドメインです。任意の指定IDのようなもので、翻訳ファイル(mo/po)の中にもこのテキストドメインがあり、一致すれば当該翻訳が利用されるという仕組みだったかと思います。(ja.moファイルがあり、その内容としてテキストドメインが含まれる。とはいえmoファイルはバイナリで中身見れなかった気がしますが。)
質問の趣旨が不明確なのですが、翻訳が不適切ということなのでしょうか?
であれば、この'sample'部分を変更すれば、既存の翻訳ファイルが読み込まれたとしても、テキストドメインが一致しませんので、翻訳されなくなるはずです。
wordpressの翻訳ファイルは、potファイルを作り、それをpoeditで読み込んだ上で、翻訳を設定し、poファイルとmoファイルを生成、該当フォルダに置くという流れが一般的かと思います。
poeditでもpotファイル生成が可能ですが、有料だった気がします。無料ですと、makepot.phpなどのコマンドラインツールを利用することになります。
2014年版: WordPress プラグイン・テーマの翻訳を始めてみよう | ja.naoko.cc
投稿2016/03/10 15:00
総合スコア501
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
WordPress の ファイルであることは、わかりました。
ファイルを検索すればよいだけでは?
// moの拡張子のファイルを検索する
$ find / -type f -name '*.mo'
このファイルが見つからない時の、デフォルトがあったと記憶しているですが、度忘れ。
投稿2016/03/09 06:50
編集2016/03/09 06:52退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。