Quick AdSense プラグインの日本語化とその作業手順
概要
広告コード管理で今だ人気のQuick AdSense プラグイン。3年以上も更新が無く、この先の動作が気になります。少しでも楽して使うには日本語表示にしなければならないですが、ネット上には日本語化ファイル等は全く存在しません。ならば作ってしまえ!とアホな性格なので頑張ってみました。(汗
自分専用に日本語化を行ったので翻訳内容はかなり雑です。後で修正するかもしれないと思い、その手順を残しておいた方がイイと予感。それでこの記事を書きました。(疲
タイトルとは異なりますがQuick AdSense プラグインと100%上位互換を明言している WP QUADS – Quick AdSense Reloaded プラグインが公開されています。これもすでに別サイトで使っています。後で少し触れます。
目次
- 概要
- 日本語表示ファイル
- Quick AdSense プラグインの特徴と問題点
- PHPソースの修正
- ヘッダーコメントの追加
- 翻訳ファイルの読み込み設定
- _e 関数の修正
- 日本語文字への対応修正
- その他のPHPソース修正
- Poedit の準備
- Poedit でWordPressプラグインの翻訳準備
- 翻訳テンプレートファイル POT の作成
- po , mo ファイルの作成
- 翻訳結果を修正したい時
- PHPソースを修正した時
- Quick AdSense プラグインの英語版と日本語表示版の同時運用
- 登録個数を10以上に変更
- CodeStyling Localization プラグイン
- WP QUADS – Quick AdSense Reloaded プラグイン
- 備考
- リンク
日本語表示ファイル
「先に出せ。日本語化、日本語表示できるファイルが有ればすぐに出せ。」と言う人がいると思うので先に渡しておきます。
ダウンロード : Quick AdSense 1.9.2 修正版+日本語化ファイル (R1) (323.2 KB, 作成 2016年4月30日)
インストール手順、再配布、サポート、免責事項、等はダウンロードファイルの「かならず読んでね.txt」ファイルに書いてあります。必読です。
Quick AdSense プラグインの特徴と問題点
機能では無く、日本語表示に対応させる上でのこのプラグイン独自の問題点と特徴です。
- 3年以上も更新がされて無い
- 国際化、多言語化の作業が途中で終わっている
- 最新の多言語化に全く未対応
- 日本語文字に未対応の不具合有り
よってPHPソースの修正無しでの日本語表示対応、つまり国際化は無理と結論が出ました。
PHPソースの修正
通常の日本語化は専用の PO 、MO ファイルを作成して終わりとなります。しかしQuick AdSense プラグインはそのファイルを作っても日本語化出来ないほど古い形のソースコードです。PHPソースには対応させようとした気配が残っていましたが、途中で作業は終了しています。
これ以降はしばらくパソコンのローカル環境にQuick AdSense プラグインのPHPファイル一式を置いての作業になります。
ヘッダーコメントの追加
quick-adsense.php ファイルのプラグインヘッダーのコメントに9から10行の2行を追加します。ただのコメントでは無く、それなりの意味と機能を持っています。
<?php /* Plugin Name: Quick Adsense Plugin URI: http://quicksense.net/ Description: Quick Adsense offers a quicker & flexible way to insert Google Adsense or any Ads code into a blog post. Author: Quicksense Version: 1.9.2 Text Domain: quick-adsense Domain Path: languages Author URI: http://quicksense.net/ */
Text Domain: quick-adsense
「Text Domain:」の後に「翻訳されたテキストを取得するドメイン」つまりプラグイン名を指定します。と書いても判らないですネ。日本語に置き換える時のキーワードみたいな物です。今回はプラグインのインストールフォルダ名と同じ「quick-adsense」を指定しました。
Domain Path: languages
「Domain Path: 」の後に言語ファイル MO , PO を入れる相対フォルダ名を指定します。「languages」が一般的です。
上記2つのヘッダーコメントはオマジナイです。あまり深く考えない方がイイです。将来のことも考えて入れました。
翻訳ファイルの読み込み設定
言語ファイルを扱えるようにするにはそれなりの命令をPHPソースに入れる必要があるみたいです。quick-adsense.php ファイルのヘッダーコメントの後に以下の31行から35行を追加します。
*/ // 翻訳ファイルの読み込み設定 add_action( 'plugins_loaded', 'quick_adsense_load_textdomain' ); function quick_adsense_load_textdomain() { load_plugin_textdomain( 'quick-adsense', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); }
上記で重要な部分は34行目の「’quick-adsense‘」と「’/languages‘」です。ヘッダーコメントで追加した「翻訳されたテキストを取得するドメイン」と「言語ファイルを入れる相対フォルダ名」の同じ内容を指定します。
_e 関数の修正
Quick AdSense プラグインのPHPソース上には国際化対応の_e 関数が使用されていました。しかし完了せずに途中で作業を終了しています。そこを修正する必要があります。
ここからの説明は quick-adsense-admin.php ファイルが対象です。
修正前
<h2>Quick Adsense <?php _e('Setting'); ?> </h2>
修正後
<h2>Quick Adsense <?php _e('Setting','quick-adsense'); ?> </h2>
「_e(‘Setting’)」を
「_e(‘Setting’,’quick-adsense’)」の形に修正します。
‘quick-adsense’ は「翻訳されたテキストを取得するドメイン」の文字を、つまり翻訳対象の抽出キーワードを当てます。quick-adsense-admin.php ファイル内で使用している全ての _e 関数を修正します。_e 関数を使わなければいけないのに使ってない部分も有りましたが、それは後で微調整しました。
日本語文字への対応修正
内部データの広告コードに日本語文字を含むと文字化けを起こす現象が出ています。それに対する修正です。これはプラグインを使う前から既に修正済みでしたが、再度メモしておきます。
quick-adsense-admin.php ファイルの280行目、303行目の2箇所に存在します。
修正前
$cod = htmlentities(get_option('AdsCode'.$i));
修正後 : 下に1行追加します。
$cod = htmlentities(get_option('AdsCode'.$i)); $cod = htmlentities(get_option('AdsCode'.$i), ENT_QUOTES, 'UTF-8');
その他のPHPソース修正
最後に微調整をした細かい作業をメモしておきます。
- 「(NEW)」の表示が単独文字と他の文字列の一部が有ります。分けて_e 関数を修正します。
- 特殊文字「→」 を 「→」で表しているのを「→」に戻します。但し意味が異なる場所と区別するために「→」を一箇所だけ残します。
- _e 関数ではうまく処理できない文字列が一箇所だけ存在しました。文字列の中に変数(定数)を使用していた為にこの後の日本語への翻訳対象から外れてしまったのです。定数を文字列に変えて処理の流れに影響が無いことを再確認し、修正をしました。
ここまで出来たら
- quick-adsense.php
- quick-adsense-admin.php
の2ファイルをWordPress の「/wp-content/plugins/quick-adsense/」フォルダにFTPでアップロードします。
Poedit の準備
日本語の言語ファイルを作るのに無償版のPoedit を使いました。Poedit は国際化対応の言語ファイルを作るソフトです。ダウンロード、インストール、そしてメニュー等の日本語表示の為の設定変更を以下のページで解説しています。
Poedit でWordPressプラグインの翻訳準備
ローカルパソコンの Quick AdSense プラグインのフォルダに languages フォルダを追加します。
ここからはPoedit の操作説明になります。
翻訳テンプレートファイル POT の作成
Blank-WordPress-Pot サイトから「Download ZIP」をクリックして Blank-WordPress-Pot-master.zip をダウンロードします。
Blank-WordPress-Pot-master.zip ファイルからBlank-WordPress.potファイルのみ取り出します。
「Blank-WordPress.pot」を「plugin-textdomain.pot」にリネームします。リネームしなくても使えますが、一応です。このファイルはMO,POファイルを作る為の一時的な作業ファイルとなります。
この plugin-textdomain.pot ファイルをローカルパソコンの Quick AdSense プラグインの languages フォルダにコピーします。
Poeditを起動します。その画面中央にplugin-textdomain.potファイルをドラック&ドロップします。「開く」からでも構いません。
以下の画面に変わります。「翻訳が存在しません。何かがおかしいようです。」と出ますが、何もおかしくないです。「ソースから抽出」部分をマウスでクリックします。
次の画面が出たら「翻訳の設定」タブを開いて、
- プロジェクト名とバージョン:Quick AdSense 1.9.2 日本語の言語ファイル
- 翻訳チーム:nori
- 翻訳チームのメールアドレス:(なし)
を入力します。お約束的なコメントの情報です。翻訳結果に影響するモノでは無いです。入力したら「OK」ボタンをクリックします。
一瞬ですが、画面中央に以下の様な画面が表示されます。
Poeditにquick-adsense-admin.phpファイルから抽出した _e 関数の文字列が一覧表示されます。
この時点で一旦画面上部の「保存」ボタンをクリックします。
これでplugin-textdomain.potファイルに編訳対象の情報が全て登録されました。前にも書いたようにpotファイルには翻訳結果は登録されない事を覚えておいて下さい。
po , mo ファイルの作成
ここから翻訳結果を入力する作業に入ります。
画面下の「翻訳プロジェクトを新規作成する」ボタンをクリックします。
「翻訳言語」画面から「日本語」を選んで「OK」ボタンをクリックします。
以下の画面が出たら、上部の一覧をクリックします。そして画面下部の「翻訳:」部分に翻訳結果を入力します。
全ての翻訳が終わったら「保存」ボタンをクリックします。
保存ダイアログが表示されます。そのまま「保存」ボタンをクリックします。そうすると languages フォルダに以下の2つの言語ファイルが出来ます。以下の様にリネームします。
- 「ja.po」 -> 「quick-adsense-ja.po」
- 「ja.mo」-> 「quick-adsense-ja.mo」
以上で日本語の言語ファイルが出来上がりました。この2ファイルをWordPress の「/wp-content/plugins/quick-adsense/languages/」フォルダにFTPでアップロードします。
PHPソースを修正した Quick AdSense 1.9.2 プラグインはこの言語ファイルを読み込んで日本語での表示をします。
これ以降、plugin-textdomain.potファイルは必要無いと思うのですが、削除せずに別途保存しておきます。何か?で必要になるかもしれません。
翻訳結果を修正したい時
Poeditを起動します。quick-adsense-ja.poファイルをPoeditで開きます。翻訳内容を修正します。修正後に「保存」ボタンをクリックします。po , mo ファイル共に更新されますので、入れ替えます。
PHPソースを修正した時
Poeditを起動します。quick-adsense-ja.poファイルをPoeditで開きます。そして画面上部の「更新する」ボタンをクリックします。これでPHPソースの再読み込みを行い、同時に以前の翻訳結果とのマージン等を行うみたいです。以前の翻訳結果が消えることは無いです。この後は必要であれば翻訳内容を修正します。最後に「保存」ボタンをクリックします。po , mo ファイル共に更新されますので、入れ替えます。
Quick AdSense プラグインの英語版と日本語表示版の同時運用
PHPソースの国際化によるソース修正に不安を抱く人は当然要るでしょう。そこでQuick AdSense プラグインの英語版と日本語表示版の同時運用の仕方を提案します。
- 設定の確認は国際化でPHPソースを修正した日本語表示版を使う。
- サイトの運用は修正前の英語版を使う。
これなら不安は無いでしょう。やり方はこうです。
- WordPress に「/wp-content/plugins/quick-adsense-jp」フォルダを作る。
- 当サイトで公開したファイルを以下にFTPでアップロードします。
/wp-content/plugins/quick-adsense-jp/ フォルダ下に- quick-adsense-admin.php
- quick-adsense.php
- /languages/quick-adsense-ja.po
- /languages/quick-adsense-ja.mo
- quick-adsense.php を開いて4行目の
「Plugin Name: Quick Adsense」を
「Plugin Name: Quick Adsense JP」に修正します。
WordPressのダッシュボード/プラグインを開くと以下の様になっています。
- 上は英語版、下は国際化した日本語表示版です。「停止」と「有効化」で切り替えて使用します。
- 間違っても両方を有効化しないでください。試してませんが何が起こるのか想像も出来ません。
登録個数を10以上に変更
Quick AdSenseプラグインの広告コード個数とウイジェットコード個数を10以上に出来ます。以下参照。
CodeStyling Localization プラグイン
WordPress テーマやプラグインの各国対応の言語ファイルを作成する上で強力に威力を発揮するWordPress公式プラグインです。
残念ながらQuick AdSense プラグインは内部で記号を沢山使用している影響なのか、最初は日本語表示化が出来ていましたが。途中からエラーが出始めて処理が続行できませんでした。このCodeStyling Localization プラグインもすでにソフトの更新が停止している。今後は手法の1つとして残しておきます。
なおPoeditで作成した今回のpoファイルはこのプラグインでは読み込めませんでした。原因は不明です。
WP QUADS – Quick AdSense Reloaded
Quick AdSense プラグインと100%上位互換の WP QUADS – Quick AdSense Reloaded プラグインが公開されています。最新のWordPressでの動作保証、パフォーマンスの改善、操作性の向上を目的としています。更新もかなりの頻度です。すでに別サイトで使用中です。今後はQuick AdSense からWP QUADS – Quick AdSense Reloaded に移行していく予定です。
備考
- Googleアドセンス広告だけを考えたら、Google Adsense プラグインは非常に便利です。でも現実は他の広告も使用する人は多いはずです。Quick AdSenseプラグイン的なモノは今後も必要でしょう。
リンク
- WordPressの国際化
- 関数リファレンス/ _e
- Webで使える特殊文字
- WordPress プラグイン・テーマ翻訳: Poedit 無料版で新規 POT ファイルを作成する
- 2014年版: WordPress プラグイン・テーマの翻訳を始めてみよう
以上。