サポート » テーマ » テーマ「default」内に有る、kubrick.pot 等の役割に関して

  • 解決済 imaru

    (@imaru)


    こんにちは。

    imaru と申します。
    WordPress 2.6.2 にて現在テーマを自作中です。
    少し古い本ですが、毎日コミュケーションズから出版されている「WordPress サイト構築スタイルブック」を参考に自作のテーマを作成中です。例題が豊かでとても参考になっています。

    テーマを自作する上で、参考にさせて頂いてるテーマは標準で用意されている「default」です。

    質問内容
    テーマ「default」内に有る kubrick.pot、ja.mo、ja.po ファイルの役割が判りません。

    疑問を持った経緯
    テーマ「default」で、エントリー作成日の日付を得る方法として
    <?php the_time(__('F jS, Y', 'kubrick')) ?>
    となっています。上記コードをそのまま自作中のテーマに記入すると、日付が希望する形式で表示出来ない。
    【10 月 13th, 2008】

    ちなみに、参考にしている書籍では
    <?php the_date('Y年n月j日 (D)'); ?>
    と記入することで、エントリ作成日の日付を希望する形式で得ることが出来ています。

    そこで疑問に思ったのが、テーマ「default」内に有る kubrick.pot、ja.mo、ja.po 各ファイルの役割です。

    理解していること。
    1,テーマ「default」は、Kubrickと言うテーマを日本語化している。
    2,テーマ「default」の index.php を見てみると WordPress のタグ内に「’kubrick’」の指定が入っている。
    3,テーマ「default」では、希望する形式で日付が表示されている。

    予想出来ること。
    オリジナルテーマの「Kubrick」では、WordPress のタグ内に「’kubrick’」を入れることで、kubrick.pot を参照している、テーマ「default」を日本語化にする為に、ja.mo、ja.poを参照しており、日付も希望形式で表示されている。

    検証
    上記の予想があっているか検証する為、自作のテーマ内に kubrick.pot、ja.mo、ja.po ファイルをコピーしましたが、下記のコードで日付の形式は直りません。
    <?php the_time(__('F jS, Y', 'kubrick')) ?>

    ここまで、検証して理解出来ない為質問させて頂きました。
    具体的に、kubrick.pot ファイルの役割はなんでしょか、また、ja.mo、ja.po でテーマを日本語化していると言う理解は間違いでしょうか。
    プログラミングの知識が無い為、kubrick.pot を開いても理解が出来ません。また、ja.po ファイルは開くことが出来ますが、ja.mo ファイルは UTF-8 で開いても文字化けをし、他の文字コードで開いても文字化けをしており判読が出来ません。

    利用している PC 環境
    Mac OS X 10.5.5 エディターは、jedit X を利用しています。

    何かアドバイスを頂ければ幸いです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター JOTAKI, Taisuke

    (@tai)

    質問内容
    テーマ「default」内に有る kubrick.pot、ja.mo、ja.po ファイルの役割が判りません。

    WordPressはローカライズの仕組みにgettextというのを使っていて、これらのファイルはその仕組みで利用されるものです。jaは表示させる言語のコードで、kubrickは任意の名称です。.potファイルは.poファイルの元となるテンプレートで、プログラムソース(この場合はテーマファイルの中身)から翻訳する文字列を抽出したものです。.poファイルはこの.potファイルに翻訳を追加したもので(両方をテキストエディターで比べてみてください)、翻訳者はこのファイルを翻訳します。.moファイルはバイナリファイルで.poファイルから生成され、 WordPress(この仕組みを取り入れているテーマ、プラグインを含む)はこの.moファイルを参照します。gettextやWordPressのローカライズについての詳細は検索してみてください。

    理解していること。
    1,テーマ「default」は、Kubrickと言うテーマを日本語化している。

    日本語版に添付のデフォルトテーマは日本語化したものではなく、gettextを使って表示言語を簡単に切り替えられるようにしているものです(i18n化、gettext化、国際化ともいいます)。このgettext化されたソースは読みにくいので、defaultテーマを参考にテーマを自作するのなら、最初はオリジナル英語版添付のdefaultテーマを参考した方がいいです。

    検証
    上記の予想があっているか検証する為、自作のテーマ内に kubrick.pot、ja.mo、ja.po ファイルをコピーしましたが、下記のコードで日付の形式は直りません。
    <?php the_time(__('F jS, Y', 'kubrick')) ?>

    その自作テーマの何れかのファイル(たいていはfunctions.php)内に
    load_theme_textdomain('kubrick');
    のような行はありますか?
    ここの「kubrick」という文字列がテーマの「kubrick」と一致していないとja.moは参照されません。

    トピック投稿者 imaru

    (@imaru)

    tai 様

    アドバイスをありがとうございます。
    WordPress ローカライズの仕組み、テーマ「default」の国際化の手法等、何を行っているのか理解出来ました。
    日本語化と言っても、単に訳した物に変更しているのでは無く、gettextライブラリを利用して、翻訳する文字列を抽出し、必要に応じて翻訳しているだと言うことを知り、とても参考になりました。

    今はテーマを自作中ですが、今後海外のテーマを参考にしたり、日本語化するには国際化と言うことを意識したいと思います。

    正直今回質問して、新たに functions.php ファイルの役割や、mo ファイルはバイナリーと言うことは、コンパイルしている言うことになると思います。テーマ「default」で、functions.php の具体的な方法等も知りたいと思いますが、今はそこまで学んでいると本来の目的、自作テーマの作成が遅れてしまいます。今後自分なりに調べながら進んでいければと思います。

    今回質問させて頂き、とても参考になりました。
    ありがとうございます。
    この質問はこれで解決とさせて頂きます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「テーマ「default」内に有る、kubrick.pot 等の役割に関して」には新たに返信することはできません。