サポート » テーマ » テーマ L10N 化スクリプト

  • トピック違いかもしれませんが…

    非 L10N のテーマで、個別のファイルに、”__(” などのコード埋め込み面倒なので、そのスクリプト「ライオン」 を、ruby で作りました。(ほんとは、php だと良かったんですが、スキルがありません。しかも ruby としても汚いコードで恐縮です。)

    lion.rb

    使い方は、テーマファイルディレクトリで、「../lion.rb テーマ名」とするだけです。日本語化ファイルは、default テーマのディレクトリにある、ja.mo をコピーして使ってください。若干、足らない訳語がありますので、追加して、po と mo ファイルも作りました。ruby が入っていれば、Windows でも工夫次第で、動くはずです。

    po ファイル
    mo ファイル

    お断りですが、また、変換するテーマのターゲットは、Artisteer トライ版で作成したファイルとしました。したがって、公開されているすべてのテーマを変換できるとは限りません。また、まだまだ、β版で、バグもあろかと思います。その点を御承知の上、よかったら使ってみてください。以下は、そのサンプルです。

    lion スクリプトでの変換実例

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    なかなかおもしろい試みですね。Artisteer が最初から I18N なテーマファイルを出力すればいいんですが……。

    ほんとは、php だと良かったんですが、スキルがありません。しかも ruby としても汚いコードで恐縮です。)

    ruby がお分かりなら、PHP もすぐ理解できると思いますよ。メソッド呼び出しが . じゃなくて -> になっているとか、オブジェクト回りの実装がダサいとかが分かれば、すぐに PHP コードが書けるようになると思います。

    トピック違いかもしれませんが…

    よりふさわしいのは「自作品の告知」ですが、「テーマ」はもともと話題が少ないのであまり問題ないと思います。管理者が移動する方がよいと思えば移動されるでしょう。

    あと、変換実例として WordPress サイトを挙げられても、参考にしようがありません (直接日本語を埋め込んだ場合と区別がつかないため)。変換前と変換後の PHP ファイルのソースが直接見られれば、分かりやすいと思います。

    トピック投稿者 aozorablog

    (@aozorablog)

    ご評価ありがとうございます。

    ruby がお分かりなら、PHP もすぐ理解できると思いますよ。メソッド呼び出しが . じゃなくて -> になっているとか、オブジェクト回りの実装がダサいとかが分かれば、すぐに PHP コードが書けるようになると思います。

    どうも、perl が苦手だったもので、php もその系統の印象が強くて…php の勉強かたがた、テーマファイルの zip をアップロードすれば、自動的に、L10N 化した、zip ファイルが作成できる、web スクリプトを目論んでいます。

    変換実例として WordPress サイトを挙げられても、参考にしようがありません (直接日本語を埋め込んだ場合と区別がつかないため)。変換前と変換後の PHP ファイルのソースが直接見られれば、分かりやすいと思います。

    今回は、直接日本語は埋め込んでいません。php の、gettext を利用し、翻訳は、mo ファイルを使っています。でもって、ソースと言っても、Wordpress の default テーマと同じような、コードを吐くだけですが、少し「はまった」部分を挙げると、(single.php です。)

    <?php printf(__('This entry was posted %1$s on %2$s at %3$s and is filed under
    %4$s.', 'sample_L10N'), $time_since, get_the_time(__('l, F jS, Y','sample_L10N')),
    get_the_time(), get_the_category_list(',')); ?>
    <?php printf(__("You can follow any responses to this entry through the <a
    href='%s'>RSS 2.0</a> feed.", 'sample_L10N'), get_post_comments_feed_link());
    if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
        printf(__('You can <a href="#respond">leave a response</a>, or <a href="%s"
    rel="trackback">trackback</a> from your own site.', 'sample_L10N'),
    trackback_url(false));
    }
    elseif (!('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
        printf(__("Responses are currently closed, but you can <a href='%s'
    rel='trackback'>trackback</a> from your own site.", 'sample_L10N'), trackback_url
    (false));}
    elseif (('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
     _e('You can skip to the end and leave a response. Pinging is currently not
    allowed.', 'sample_L10N');}
    elseif (!('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
     _e('Both comments and pings are currently closed.', 'sample_L10N');}
    edit_post_link(__('Edit this entry', 'sample_L10N'),'','.'); ?>

    と、php スクリプトをまとめ、あとに注釈を持ってくるように変換しないとうまくいかないようです。

    引き続き、お気づきの点があれば、コメントください。もちろん、スクリプトの再利用も OK です。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    今回は、直接日本語は埋め込んでいません

    いえいえ、そういう話ではなくて (直接日本語を埋めるわけではないのは百も承知です)、例を出されるならば、スクリプトによって変換されたテンプレートそのもの (PHP ファイル) を見せてほしい、という話です。スクリプトで作ったテンプレートを適用した *サイト* を紹介されても意味がない、ということです。

    でもって、ソースと言っても、Wordpress の default テーマと同じような、コードを吐くだけですが、

    はい、それが見たい、ということです。それがこのスクリプトのポイントだと思うんですが。

    トピック投稿者 aozorablog

    (@aozorablog)

    sample テーマのソースです。

    index.php
    single.php
    comments.php
    archive.php

    あと、変換前後のテーマファイル一式の zip です。

    sample_non_l10n.zip
    sample_l10n.zip

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「テーマ L10N 化スクリプト」には新たに返信することはできません。