フォーラムへの返信

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • フォーラム: テーマ
    返信が含まれるトピック: テーマ L10N 化スクリプト
    トピック投稿者 aozorablog

    (@aozorablog)

    sample テーマのソースです。

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

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

    sample_non_l10n.zip
    sample_l10n.zip

    フォーラム: テーマ
    返信が含まれるトピック: テーマ L10N 化スクリプト
    トピック投稿者 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 です。

2件の返信を表示中 - 1 - 2件目 (全2件中)