サポート » プラグイン » WP Auctions 日本語化(CodeStyling Localization)の仕方

  • nspenchan

    (@nspenchan)


    よろしくお願いいたします。
    PHP初心者で、ネットで調べながら、WordPressを運用しています。

    有料のプラグイン WP Auvctions を購入しました。v4.0 が出たので、プラグインインストールしました。このプラグインの日本語化の部分でつまづいています。

    添付の readme ファイルを読みますと、CodeStyling Localizationプラグインを利用して、日本語化できるようです。さっそくインストールして有効化しました。
    ツール -> Localization -> WP Auctions 
    Add New Language -> 日本語を選択 -> Rescan -> Edit
    エディット画面に入ってから、
    Edit -> Save を繰り返して、翻訳を入力しました。generate mo-file で保存するところまで作業を進めました。
    そのあとがわかりません。翻訳が WP Auctions に反映されません。

    ‘WP Auctions’ ‘CodeStyling Localization’ の日本語化に成功した方がいらっしゃれば、アドバイスを頂けますようお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • redcocker

    (@redcocker)

    はじめまして

    ※無償版を元に書いていますが、無償版とProではディレクトり構成やファイル名が違うかもしれませんので注意して下さい。

    そこまで作業を進めていられるなら、

    /wp-content/plugins/wp-auctions/locales/

    に「WPAuctions-ja_JP.po」というファイルがありませんか?

    ※WPAuctionsの部分は、別の名称である可能性もあります。

    このファイル名を「WPAuctions-ja.po」に変えてみて下さい。

    要は、ファイル名から「_JP」を取り除き、「-ja.po」で終わるようにします。

    「.mo」も同様に変更します。(こちらの方が大事!)

    なお、ファイル名を変更すると「CodeStyling Localization」では管理できなくなりますので、「CodeStyling Localization」から変更を加える際には、ファイル名を元に戻してください。

    トピック投稿者 nspenchan

    (@nspenchan)

    ありがとう、ありがとう!
    日本語化されました。wp-config.php に
    define (‘WPLANG’, ‘ja’);
    と記述があり、ja-JP.po は変だなとは思っていました。
    -JP を取ればいいとは思いつきませんでした。
    無事解決で、公開が近づきました。redcocker様にかさねて感謝いたします。

    追記)ダッシュボード内は日本語化されても、外(公開するWebページ)のウィジェットは日本語化されないんですね。これは、.phpファイルの該当箇所を書き換えるしかなさそうです。

    redcocker

    (@redcocker)

    無事解決、おめでとう御座います。
    私もファイル名については、随分とハマりました。

    ルール上は、

    define ('WPLANG', 'ja_JP');

    ではないかと思うのですが、理由は分かりませんが、

    define ('WPLANG', 'ja');

    になっています。

    日本語化されているプラグインは、基本的に「XXXX-ja.mo」を使ってますし、WordPress日本語版自体がそうですので、wp-config.phpを直すわけにもいけませんし。

    「CodeStyling Localization」は、日本語を例外として扱ってないので、日本語訳の「.mo」ファイルを作ろうとすると上手くいきません。
    この件は、フォーラムに上げておきましたので、将来のバージョンで修正される可能性もあります。

    ウィジェットについては、それを追加しているテーマやプラグインが多言語に対応しているか否かに依存しますが、英語ベースでも、タイトルくらいは管理画面から変えられることが多いので、それほど苦労はないと思います。

    chestnut_jp

    (@chestnut_jp)

    ほぼ解決されているようですが、

    追記)ダッシュボード内は日本語化されても、外(公開するWebページ)のウィジェットは日本語化されないんですね。これは、.phpファイルの該当箇所を書き換えるしかなさそうです。

    という箇所に対するヒントだけ。

    ※わたしも有償版は所有していませんので無償版のスクリプトを斜め読みしただけですが。

    日本語化したい箇所を、以下のような形で囲めば新たに翻訳することができるようになると思います。(変更前の英語はあくまでも例です。実際にスクリプトに書かれているものとは無関係です。)

    【変更前】
    This is my auction description.

    【変更後】
    __(‘This is my auction description.’,’WPAuctions’)

    ※場合によって、「__」は「_e」にする必要があったり、「.」で囲む必要があったりと、一定のルールがありますので、その辺は一度調べておくと、今後使いたいプラグインが翻訳対象となっていない時に役立ちますが、よくわからないようであれば、仰る通りスクリプトに直接日本語を書いてしまうのも手ではあります。(編集時文字コードには注意が必要)

    あと、これは余談ではありますが、オークションサイトを運営される場合、その形態によっては「古物商」「古物市場主」「古物競りあっせん業」といったものの許可・届出が必要です。

    ご存知ないようでしたら、
    http://www.keishicho.metro.tokyo.jp/tetuzuki/kobutu/kobutu.htm
    あたりから一度お読みになられておくことを強くお勧めします。

    トピック投稿者 nspenchan

    (@nspenchan)

    詳しく教えていただき、ありがとうございます。このフォーラムは親切な方が多いですね。
    WordPressは奥が深くて、いじれるようになってくると、すごく面白いソフトです。

    教えていただいた多言語化のしくみを調べて、さっそく翻訳したい箇所を
    <?php _e(“***”,’wp-auctions’); ?>
    で囲んで、実験してみました。CodeStyling Localization でRescan したところ、追加箇所を読み込みできました。Edit -> Save -> generate mo-file で保存するところまで作業を進めました。
    これで日本語化完成か! と思ったのですが、公開するWebページには変化ありませんでした。残念。JavaScript でページを表示する影響かな? と思うのですが、私の力ではここまでが限界です。諦めて、直接コードに翻訳を書き込んで、utf-8で保存して、力技で 翻訳出来ましたwww

    また時間があるときに挑戦したいと思います。ありがとうございました。

    追記)古物を取り扱う法律があるのは知りませんでした。ただ古物は扱う予定はないので、こちらは大丈夫でした。ご親切に教えていただき、感謝します。

    chestnut_jp

    (@chestnut_jp)

    確かにJavaScriptの場合は(ブラウザの言語判定をするなど方法はいくつかありますが)一筋縄ではいかないことが多いかもしれませんね。

    もし、あとから追加翻訳してみたけどうまくいかなかったものの中にJavaScriptで出力しないものが含まれているとしたら、それは恐らく

    <?php _e(“***”,’wp-auctions’); ?>

    の中の「wp-auctions」が間違っているからだと思います。

    前にも書きましたが、わたしは実際に使っていないので無償版を落としてきて中のスクリプトをザッと見ただけですが、無償版の場合は「WPAuctions」です(前にわたしが書いたもの)。

    有償版ではこれが「wp-auctions」になっているのならいいのですが、そうでなければ翻訳ファイル(言語ファイル)を作成しても、それを見にいってくれないためオリジナル言語のままになってしまいます。

    ちょっと話が込み入ってきていますが、乗りかかった船なのでもう少しだけ具体的に書いておくと、無償版だとwp_auctions.phpになりますが、

    load_plugin_textdomain('WPAuctions', '', $localedir );

    という設定があります。この「load_plugin_textdomain」定義に書かれている「WPAuctions」が無償版の場合になります。

    有償版でも同じようなファイルまたは別のファイルであっても、「textdomain」を手がかりに検索すればきっと設定があると思いますので、一度確認されてみることをお勧めします。

    redcocker

    (@redcocker)

    エラーにはなっていないようなので、多分、javaスクリプトファイルを直接書き換えられたという意味ではないと思いますが、Javaスクリプトファイルには、この多言語化の方法は通用しません。PHPファイルののみが対象になります。

    また、WordPressの管理下にないPHPファイルにもこの方法は通用しません。
    例えば、Javaスクリプトで呼ばれたPHPファイルなどが該当します。
    (wp-load.phpなどを読み込んで、これを回避する方法もありますが・・・。)

    あと、

    <?php _e("***",'wp-auctions'); ?>

    と書かれていますが、正しくは

    <?php _e("***",'WPAuctions'); ?>

    ではないでしょうか?

    無償版のwp_auctions.phpを見ると、

    load_plugin_textdomain('WPAuctions', '', $localedir );

    とあるので無償版の場合は、WPAuctionsです。

    有償版は、異なる可能性もありますが、load_plugin_textdomainの第1引数を確認して下さい。

    追記:chestnut_jpさんと重複してしまいました。私も同じ事を指摘しています。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「WP Auctions 日本語化(CodeStyling Localization)の仕方」には新たに返信することはできません。