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

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

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

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

Q&A

解決済

4回答

2460閲覧

翻訳ファイルの読み込みでしょうか

suzumedai

総合スコア19

WordPress

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

0グッド

0クリップ

投稿2016/03/09 06:27

load_textdomain( 'sample', dirname(__FILE__).'/languages/' . get_locale() . '.mo');
上記の記述がfunctions.phpにあり、コード内のsampleはテーマ内で多く使われていますが
このsampleの部分に非常に不適切な言葉が使われています。サイトの前任者が切り替わる時に
嫌がらせの様に書き換えていったと聞いています。

このsampleを通常の言葉に換えたいのですがどのファイルから直せばよろしいでしょうか?

.mo .po 色んな事を調べたのですが答えに至らずでこちらで質問させて頂きます

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

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

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

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

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

guest

回答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

kei344

総合スコア69364

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

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

0

翻訳を呼び出す側の load_textdonain や _e 関数の部分で置き換えられているのであれば、オリジナルの翻訳ファイルを定義している可能性もあり、単純に .po .mo ファイルを WordPress やテーマのオリジナルに入れ替えると、WordPress の表示にも影響が出るかもしれないですね。

具体的な状況がわからないので、現時点で言えることは、不適切な言葉をエディタの置換機能などを使って、確認しながら、Wordpress ディレクトリの中を置換していくしかないかもしれません。

投稿2016/03/11 03:28

CHERRY

総合スコア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

amaranthine

総合スコア501

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

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

退会済みユーザー

退会済みユーザー

2016/03/10 23:37

あー、だったら、それファイル全て、削除して入れ直せばよくないか Pot 普通それらのファイルは、いじらないからさ
guest

0

WordPress の ファイルであることは、わかりました。
ファイルを検索すればよいだけでは?

// moの拡張子のファイルを検索する

$ find / -type f -name '*.mo'

このファイルが見つからない時の、デフォルトがあったと記憶しているですが、度忘れ。

投稿2016/03/09 06:50

編集2016/03/09 06:52
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

suzumedai

2016/03/10 12:42

ご指摘ありがとうございます。 .mo .poはテーマ/languages内にあり、編集も出来ます。 問題は使用している"sample"の文言で、この文字を替えたいのです。 テーマファイル内の全ての"sample"を置き換える事も理解しています
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問