言語ファイルを編集する

たいしたことじゃないけど、ずーっと気になっていたことがあります。それは記事にパスワードをかけたとき記事のタイトルの前に「保護されている投稿:タイトル」が挿入されてしまうこと。なんかかっこわるいってずっと思ってて。でも直し方なんかわからないし。でもあきらめきれない。

ファイル検索で「保護されている投稿」を含むものを探したり、SQLの中を覗いたり、ちょー地味に探ってたんだけど見つからなかったんです。でも先日どうやら言語ファイルってもので制御してることがわかりました。/wp-includes/languages/ja_UTF.poをテキストエディタで開いたら「保護されている投稿」ってテキストが書いてあったから。でもpoなんて拡張子当然聞いたことないから大変でした。当然moも。

po (Locale File)
UNIX系のシステムで使用される言語ファイルで、このファイルは拡張子「mo」への変換前のバイナリの状態のファイルです。指示に従ってコンパイルすれば、各言語に対応した言語ファイルが出来上がります。UNIX系のソフトのローカライズは、主にこれでやっているそうです。

mo (Compiled Locale File)
拡張子「po」のロケールファイルをコンパイルしたもので、中身はプレーンテキストになっています。各アプリケーションに応じて、どこかのディレクトリに保管されています。

拡張子辞典より

んでまたひっかかる、コンパイルって?

コンパイル 【compile】

人間がプログラミング言語を用いて作成したソフトウェアの設計図(ソースコード)を、コンピュータ上で実行可能な形式(オブジェクトコード)に変換すること。そのためのソフトウェアをコンパイラという。変換のみを一括して行い、生成したオブジェクトコードの実行は行わない。

e-wordsより

早速UTF用のpoEditをダウンロード。これはpoファイルをコンパイルしてmoファイルを作成してくれるソフトです。もちろんpoファイルの編集も簡単に出来ちゃいます。ja_UTF.poをテキストエディタで開くとわかると思いますが、ヘッダー以下は

#: wp-includes/template-functions-post.php:36
msgid "Protected: %s"
msgstr "保護されている投稿:%s"

こんな感じにそのテキストが書かれてるファイルの場所とオリジナル言語と翻訳された言語がセットになっていっぱい書いてあると思います。そこで「msgstr “保護されている投稿:%s”」を「msgstr “Protected:%s”」に書き換えサーバーにmoファイルをアップ。

↑こんな感じに無事変更できました。本当はこのやり方はよくないのかもしれないけど、とりあえず手っ取り早いので。テキストが書かれているPHPファイルのほうに翻訳しないって命令文を書いてあげたほうがきっといいんだろうな。。


追記:「保護されてる投稿」とか「Protected」とかそのテキスト自体ウザイんですけどって人のために。

そういう人はwp-includes/template-functions-post.phpの31行目あたりに

function get_the_title($id = 0) {
$post = &get_post($id);

$title = $post->post_title;
if ( !empty($post->post_password) )
$title = sprintf(__('Protected: %s'), $title);

return $title;
}

って書いてある箇所があります。そこの

if ( !empty($post->post_password) )
$title = sprintf(__('Protected: %s'), $title);,

を丸々削除してください。簡単に書くと「もしパスワードになんか入ってたらタイトルに「Protected:」をくっつけてください」みたいなことが書いてあります。削除してアップするとこんな感じ↓

こっちのほうがすっきりしてていいかも。

Trackback URI: http://blog.ochanocosaisai.com/wp-trackback.php?p=46

気軽に記事を評価してみて下さい。
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

コメントする

RSS feed for comments on this post · TrackBack URI · add to hatena hatena.comment 0 user add to del.icio.us 0 user add to livedoor.clip 0 user