サポート » テーマ » テーマを日本語化したい

  • 解決済 jump-up

    (@jump-up)


    現在、「Supernova」(ver.1.4.3)という海外テーマを利用しています。

    管理画面のテーマオプションとテーマの外観を日本語化したいと思い、テーマのlanguagesフォルダを覗くと、default.po/moファイルとtxtファイルがあり、txtファイルには、作者より、ローカライズしたければ直接書き換えたら良いと書いてありました。

    早速、default.po/moファイルをエディターで書き換えpoeditで再度、保存しなおして出来たja.po/moの二つのファイルをアップロードしたのですが、読み込んでくれません。

    phpの知識がほとんどないので、とりあえず、色々なテーマのfunctions.phpを覗いて比較していたのですが、だいたいのテーマは以下のようになっていましたが、

    // Make theme available for translation
    load_theme_textdomain( 'shiword', get_template_directory() . '/languages' );

    supernovaは

    //Loading Language File
    load_theme_textdomain( 'Supernova', SUPERNOVA_ROOT.'/languages/' );

    のようになっています。
    それで、SUPERNOVA_ROOTの部分をget_template_directory() に変更すればうまくいくのでしょうか?

    子テーマでカスタマイズしているので、子テーマのfunctins.phpで試してみたいのですが、
    その場合、どこからどこまでをコピーして書き換えれば良いのかわかりませんでした。
    functions.phpの以下の部分の全部をコピーする必要はないと思うのですが、どこからどこまでコピーして該当部分を書き換えて試してみたらいいのかわかりません。

    (この上の部分は略、ここから一連だと自分勝手に思ってるところからコピーしています。)
    //Default Values for Custom Header
    $header_defaults = array(
    'default-image' => '',
    'random-default' => false,
    'width' => 960,
    'height' => 100,
    'flex-height' => true,
    'flex-width' => true,
    'default-text-color' => '000',
    'header-text' => true,
    'uploads' => true,
    'wp-head-callback' => 'supernova_header_style',
    'admin-head-callback' => 'supernova_admin_header_style',
    'admin-preview-callback' => 'supernova_admin_header_image',
    );

    add_action('after_setup_theme', 'supernova_theme_setup');
    function supernova_theme_setup(){
    global $background_defaults, $header_defaults, $wp_version;

    //Featured image for both page and post
    add_theme_support('post-thumbnails');

    //Adds automatic feed links
    add_theme_support( 'automatic-feed-links' );

    //Adds Custom background
    add_theme_support('custom-background', $background_defaults);

    //Adds Custom Header
    add_theme_support( 'custom-header', $header_defaults );

    //Setting Avatar Size
    wp_list_comments('avatar_size=80');

    // Visual Editor Style
    add_editor_style();

    //Loading Language File
    load_theme_textdomain( 'Supernova', SUPERNOVA_ROOT.'/languages/' );

    //Navigation Registration
    register_nav_menus(
    array(
    'Header_Nav'=>__('Header Navigation', 'Supernova'),
    'Header_Cat'=> __('Header Categories', 'Supernova'),
    'Main_Nav'=> __('Main Navigation', 'Supernova'),
    'Footer_Nav'=> __('Footer Navigation', 'Supernova'),
    )
    );
    }

    if ( ! isset( $content_width ) ) $content_width = 900;

    /*Replaces [...] to read more
    * @param $more
    * returns read more link
    */
    add_filter('excerpt_more', 'supernova_new_excerpt_more');
    function supernova_new_excerpt_more($more) {
    global $post;
    return 'ID) . '">'.__('... Read More', 'Supernova').'';}

    長くなりましたが、そもそも書き換え自体うまくいかないとか、仮に書き換えるならどこからどこまでをコピーしたうえで、書き換えれば良いのかご教授頂けると幸いです。

    以上よろしくお願いします。

10件の返信を表示中 - 16 - 25件目 (全25件中)
  • Miyauchiさんが作り直したja.poファイルをダウンロードして
    それを自分のパソコン上で翻訳して今使えるpoeditでja.poを保存すると勝手に出来るja.mo
    ファイルとあわせてサーバーにアップロードするという方法で良いのでしょうか?

    はい、それでもいいです。

    翻訳が適用されない部分は、たとえば、comments.phpの31行目など、決め打ちでテキストが書かれているからです。

    翻訳結果を適用するには、テーマの.php内に以下のように記述する必要があるのですが、テーマの作者さんが決め打ちで書いてしまうと、その部分は翻訳されません。
    (翻訳の対象として抽出もされません。)

    現状:
    'reply_text' => 'Reply <span>&darr;</span>'

    改善:
    'reply_text' => __('Reply', 'Supernova').' <span>&darr;</span>'

    この場合、テーマの開発者さんに直してって頼んでもなかなかやってくれないでしょうから、jump-upさんでこのような場所を一箇所ずつ手作業で治していく感じになるいと思います。

    (開発者さんはこのようなコミュニティによる改善を期待して無料でだれでも使えるように配布しているんです。)

    そんなわけで、

    • ご自身で修正する。
    • ダメ元で作者さんにお願いしてみる。
    • 我慢する。

    のいずれかだと思います。^^

    あー、あと、ここもおかしいっすね。

    functions.php : 106行目

    load_theme_textdomain( 'Supernova', SUPERNOVA_ROOT.'/languages/' ); // 誤
    load_theme_textdomain( 'Supernova', get_template_directory().'/languages' ); // 正

    他にもいろいろバグっぽいとこがありますね。
    管理画面のフッターが崩れてるし。

    スレッド開始 jump-up

    (@jump-up)

    Miyauchiさんへありがとうございます。
    翻訳ソースとして抽出されてない部分については本当におっしゃるとおりだと思います。

    ただ、画像で上げた部分はご覧頂くとわかりますように、ソースは抽出されていて、一応、該当するphpも確認して、翻訳関数があるのに、それでも反映されてない部分と思われるものだけ、ピックアップしたつもりです。

    たとえばGeneralですが、ソースとして抽出されています。
    そして、適用を見ると、
    admin-int.phpの16行目ということで

    <li id="tab_one"><i class="general"></i><span><?php _e('General', 'Supernova'); ?></span></li>

    となっており、実際に管理画面の該当場所も表示されています。
    ところが、同じGeneralは他にも適用箇所があって
    arrays.phpの15行目以下、いくつかるんですが、これは、上記の表示のGeneralタブをクリックすると表示される画面に表示されるGeneralだと思うんですが、こちらは適用されていません。

    $supernova_defaults[]=array(
    		'name'=>__('Upload Favicon', 'Supernova'),
    		'type'=>'text',
    		'desc'=>__('Favicon is the tiny icon that you see on your browser\'s tab. Either create a 16x16px image or create it online and upload it here .', 'Supernova'),		'id'=> 'favicon',
    		'page'=>__('General', 'Supernova'),
    		);

    という感じで、いくつかソースとして抽出され、翻訳しているのに反映されてないと思われる部分があるのが悩みの種です。

    これはいったい何がおかしいのでしょうか・・・
    ご教授いただけると幸いです。

    あー、そこは僕も気がつきましたけどテーマ側のバグっぽいですね。

    header.phpの上の方に以下のようなコードを入れると翻訳結果が出力されるので、.poとか.moの問題じゃなくてテーマそのものの問題です。

    <?php echo __('Upload Favicon', 'Supernova'); ?>

    上でも書きましたが、あまり国際化に詳しくない作者さんなので、いろいろやりとりしながら地道にテーマ側を修正するか諦めるかですね。

    スレッド開始 jump-up

    (@jump-up)

    お世話になります。
    functions.php : 106行目については、Miyauchiさんが正として表示して下さった
    形に訂正して最初やってたんですが、作者が、SUPERNOVA_ROOTを別で定義してくれて、あまりphpの知識はないんですが、結局、SUPERNOVA_ROOTをget_template_directory()と定義しているようなので、作者のものをそのまま使っています。
    これ、最初に全く翻訳を受け付けなかったときにこのフォーラムで質問して解決したんです。
    とても良いテーマだと思うんですが、バグ多いですか・・・

    実は、トップページで表示される、「LatestBlogs」というのが、管理画面でテキスト変更できるように設定されているんですが、日本語受け付けないんですよね><
    あと、いくつか翻訳するといきなりサイドバーにPagesウィジェットが表示される部分があったりして困ってます><
    あと、翻訳ファイルなど全く入ってないし、翻訳のソースにも該当箇所ないんですが、トップページの個別記事の部分にmoreタグをつけると(さらに・・・)と表示されるんですが、この日本語がどこから来てるのかもわからないです><
    と言った感じですが、テーマ自体は凄く気に入っているので、利用続けたいと思ってます。

    スレッド開始 jump-up

    (@jump-up)

    Miyauchiさん、やっぱりテーマ側のバグですか・・・
    どうすれば解決すると提示できればいいんですが、とりあえず、一度完成した日本語ファイルと問題点をピックアップして作者に提示してみます。
    本当にありがとうございました。

    結局、SUPERNOVA_ROOTをget_template_directory()と定義しているようなので、作者のものをそのまま使っています

    ソース自体をちゃんと追いかけてないですが、そこを僕が書いたとおりに修正すれば、管理画面側のグレーの部分が日本語になりますよ。

    //Loading Language File
    //load_theme_textdomain( 'Supernova', SUPERNOVA_ROOT.'/languages/' );
    load_theme_textdomain( 'Supernova', get_template_directory().'/languages' );
    スレッド開始 jump-up

    (@jump-up)

    そうでしたかあああ。以前、管理画面のその部分が日本語で表示された時があったんですが、なんか色々試しすぎてpoファイルも100%(自分なりに)完成してたやつも削除してたりして、混乱してたんですが、そうですかそうですかああ。試してみます!
    ありがとうございました。本当にありがとうございました。
    後は頑張って作者と談判やります!!!

    スレッド開始 jump-up

    (@jump-up)

    Miyauchiさんへ

    お世話になります。
    本日、Supernovaが1.4.7にバージョンアップされました。
    もし、よろしければ昨日Miyauchiさんがpotファイルを作成した手順を教えて頂けないでしょうか。
    私はwindows7でpoeditを利用していますが、環境が全く違うもので作成されたのであればあきらめます。
    先ほど、ファイル比較をしてみたら結構変更されていたので、今後のバージョンアップにも備えて、自分で作成できるよう間違いの無いpotファイルの作成方法を確認しておければありがたいです。
    以前、自分で作成したpoファイルでは、漏れがあったとご指摘いただきましたので、少し不安なもので・・・
    一応、Miyauchiさんのスライドを拝見してpotファイルの作成手順は理解しているつもりですが、漏れのないようにpotファイルを作成できればと思いました。

    あつかましいかもしれませんが、よければよろしくお願いします。

    スレッド開始 jump-up

    (@jump-up)

    一応、poeditでMiyauchiさんが作成されたja.poファイルと全く同じ設定(パスとかキーワードとかの部分)にして、ダウンロードしたsupernova1.47のlanguagesフォルダにja.poファイルを作成し、初期状態のja.poファイルをsupernova.potにリネームしてみました。これでいけそうですね。
    後は、今1.44で作成したja.poファイルを手作業でコピペで1.47に移し変えてますが・・・これ翻訳メモリー設定で1.44で作成したja.poファイルを指定すればもっと早くできたんでしょうね><

10件の返信を表示中 - 16 - 25件目 (全25件中)
  • トピック「テーマを日本語化したい」には新たに返信することはできません。