SlideShare a Scribd company logo
春の大翻訳祭
              WordBench Osaka
                2013/04/13


              Takayuki Miyauchi



13年4月15日月曜日
自己紹介




13年4月15日月曜日
@miya0001




13年4月15日月曜日
以上!
              (宣伝は自粛します。)




13年4月15日月曜日
では、さっそく本題!




13年4月15日月曜日
テーマやプラグインを翻訳しよう!




13年4月15日月曜日
翻訳でよく使用されるツール




13年4月15日月曜日
poedit
          http://sourceforge.jp/projects/sfnet_poedit/




13年4月15日月曜日
Google Translator Toolkit
               http://translate.google.com/toolkit/




13年4月15日月曜日
Gettext
                        黒い画面の人はこれ



              $ msgfmt -o wp-total-hacks-ja.mo 
                wp-total-hacks-ja.po


                   .poを編集後、上記コマンドを実行




13年4月15日月曜日
WordPress i18n Tools
                   プラグイン&テーマ開発者向け
        http://svn.automattic.com/wordpress-i18n/tools/trunk/



   $ php makepot.php wp-plugin /path/to/plugin




                 翻訳メッセージの抽出が超簡単!



13年4月15日月曜日
ポイント!

              ✓ 開発者じゃない人は poedit または Google

              ✓ 複数の人で共有しながら翻訳するならGoogle




13年4月15日月曜日
翻訳の流れ




13年4月15日月曜日
1. テーマやプラグインの中に専用のディレクトリ
                 があります。
                 (デフォルトでは languages)

              2. その中で .po ファイルを作成&翻訳

              3. .po をコンパイルして、.moを作成

              4. 作者さんに、.po と .mo を送る!




13年4月15日月曜日
ポイント!

              ✓ language/ 以下にある .po と .mo が言語フ
                ァイルです!

              ✓ .po は人が編集するためのファイル

              ✓ .mo はWordPressが実際に読むファイル




13年4月15日月曜日
ファイル名の規則




13年4月15日月曜日
‣ テーマは、常に ja.po (ja.mo)

               ‣ プラグインは、example-ja.po (example-ja.mo)



              example の部分はテキストドメインというやつ




13年4月15日月曜日
✓ textdomainわかんねー!
               ‣ languages/ 以下にある .pot のファイル名の部分が
                 テキストドメイン

               ‣ .pot がない場合はつくる必要があります。
                 (ちょっとむずかしい。。。)




13年4月15日月曜日
これは超簡単にサイトが高速化出来ると評判の
                  WP Boosterの言語ファイル




                超簡単にサイトを高速化したい場合は
                   http://ja.wpbooster.net/

13年4月15日月曜日
✓ まれに pot のファイル名が間違ってる場合も
                ある...orz
                (英語圏の人が開発したものは多言語化のテス
                トをしてないことが多い)




13年4月15日月曜日
これは超簡単に電子書籍が作れると評判の
              bookpressクライアントプラグインのソース




                超簡単に電子書籍を作りたい方は
                  http://ja.bookpress.me/

13年4月15日月曜日
✓ 他にも load_textdomain() という関数を探し
                て、その第一引数を見るという手も。




               これは誰でも超簡単にAWS上でWordPressが使えると評判の、
                   Amimotoでも使用されてるプラグインのソース
                        http://ja.megumi-cloud.com/




13年4月15日月曜日
ポイント!


              ✓ テキストドメイン間違えると翻訳結果が適用
                されないから要注意ね!




13年4月15日月曜日
というわけでさっそく翻訳




13年4月15日月曜日
✓ ちなみに今回は .pot があるのを前提にしま
                す。

              ✓ .pot がない場合は、黒い画面(ターミナル)の
                出番になります。。。




13年4月15日月曜日
poeditで翻訳作業




13年4月15日月曜日
ファイルの読み込み




13年4月15日月曜日
.pot を選ぶ!間違えないでね!

13年4月15日月曜日
翻訳作業




13年4月15日月曜日
13年4月15日月曜日
✓ 保存すれば .mo も同時に生成されます。

              ✓ まめに保存しながら確認しましょうね。^^




13年4月15日月曜日
Google Translator Toolkitで
                         翻訳




13年4月15日月曜日
ファイルの読み込み




13年4月15日月曜日
.po ファイルは .potをコピーして、
              ファイル名の .pot を -ja.po に変更する。


13年4月15日月曜日
13年4月15日月曜日
翻訳が完了したら .poをダウンロード


13年4月15日月曜日
✓ これだけでは、.mo が生成されてないので、
                poeditで、 .mo を作りましょう。

              ✓ 漢なら以下のコマンドで。
                $ msgfmt -o hoge-ja.mo hoge-ja.po




13年4月15日月曜日
翻訳の予備知識




13年4月15日月曜日
翻訳にはガイドラインがあるので
               いちおう目を通しましょう。




                      http://bit.ly/wpjatranslate


13年4月15日月曜日
13年4月15日月曜日
✓ お金をください。=> お金を下さい。

              ✓ お金を払って下さい。
                => お金を払ってください。



                 わかりますか?この違い。
              英語力や技術よりも、国語力が重要。




13年4月15日月曜日
✓ Howdy, %s
                => こんにちは、 %s さん !




13年4月15日月曜日
✓ %s とか %d は、プレースホルダーと呼ばれる
                もので、動的に値が変わります。


              printf(__('We deleted %d spam messages.'), $count);




                        %d の部分に $count の値が入る。
                   「%d件のスパムを削除しました。」




13年4月15日月曜日
✓ %1$s とか %1$d は複数のプレースホルダー
                がある場合に使用します。
              printf(__('Your city is %1$s, and your zip code is
              %2$s.'), $city, $zipcode);




                %1$s の部分に $city が、%2$s の部分に $zipcode が入ります。

      「あなたの 郵便番号は %2$s 、都市名は %1$s です。」




13年4月15日月曜日
✓ %s とか %1$s と、%d とか %1$d は、文字
                列か数字の違いです。




13年4月15日月曜日
✓ 一部の翻訳のみ適用されない!?
               ‣ .po に fuzzy って行があると思います。

               ‣ これは他にも同じようなのがあるけど、オッケー?み
                 たいな意味です。

               ‣ fuzzy って書いてある行を1行まるごと削除し
                 て、.moをつくれば翻訳が適用されます。




13年4月15日月曜日
作者さんに送ろう!




13年4月15日月曜日
✓ 作者さんとのコンタクト方法
               ‣ メール、ブログへのコメント、twitter、フォーラムな
                 ど。

               ‣ リアクションがなければ、コンタクト方法を変えて数
                 日様子を見る感じ。




13年4月15日月曜日
✓ 英語のやり取り怖い!
               ‣ 僕のとこにくる翻訳のメールは、ほとんどが1行。

               ‣ Hi, I have translated your ○○ plugin to
                 Japanese. Your plugin is awesome great !
                 Thanks !

               ‣ ぼくが送る時も、だいたいこんな感じです。




13年4月15日月曜日
なおさんは、こんな感じ



                   コンタクト方法がわかんない時は
                     フォーラムで投げる!




13年4月15日月曜日
翻訳の心構え(?)




13年4月15日月曜日
✓ メンテを継続できないかも。。。
               ‣ 僕も放置した経験があります。笑

               ‣ オープンソースなので、あまり目くじらを立てない感
                 じで。^^




13年4月15日月曜日
✓ 作者さん、知らない人だから遠慮しちゃ
                う。。。
               ‣ 仲良くなろうとされても逆に困りますw

               ‣ そんなこと言ってたらオープンソース成り立たないw




13年4月15日月曜日
✓ 翻訳ファイルはGitHubで公開するのがおすすめ!
              ‣ 続きを誰かがやってくれるかも!

              ‣ バージョンアップなどの際にpullリクエストがくるかも!




13年4月15日月曜日
matuboさんが公開してた、テーマの翻訳を修正したのが、
         はじめてGitHubを使ったきっかけ。

13年4月15日月曜日
✓ とにかく気軽な感じで!




13年4月15日月曜日
(上級者・開発者向け)
              .potをつくる!




13年4月15日月曜日
✓ .potをつくるには、phpのソースからメッセー
                ジを抽出する必要があります。




13年4月15日月曜日
(まあまあ簡単な方法)
              poeditを使って抽出する!




13年4月15日月曜日
13年4月15日月曜日
赤いところがミソ!




13年4月15日月曜日
✓ この方法では完全には抽出できないこともあ
                ります。

              ✓ その時は、黒い画面(ターミナル)の登場
                (詳細はいつか誰かがブログに書くかもw)




13年4月15日月曜日
WordPress i18n Tools
                  を使った抽出




13年4月15日月曜日
まず環境を構築


              1. Xcodeをインストール

              2. gettextライブラリを homebrew 等でインス
                 トール

              3. i18n Tools をインストール




13年4月15日月曜日
Xcodeをインストール

              1. App Storeからインストールするだけ!




13年4月15日月曜日
gettextライブラリをインストール

              $ ruby -e "$(curl -fsSL https://
              raw.github.com/mxcl/homebrew/go)"
              $ brew install gettext




13年4月15日月曜日
WordPress i18n Toolsを
                    インストール
        $ cd

        $ mkdir wordpress-i18n-tools

        $ cd wordpress-i18n-tools

        $ svn co http://i18n.svn.wordpress.org/tools/trunk/ .




13年4月15日月曜日
抽出方法
              $ cd wp-content/plugins/example-plugin

              $ cd lnaguages

              $ ~/wordpress-i18n-tools/makepot.php wp-plugin .




                    以上で .pot が生成される(はず)。




13年4月15日月曜日
最後に翻訳を使った裏ワザ




13年4月15日月曜日
✓ せっかく翻訳したのに、作者が適用してくれ
                ねー!

              ✓ アップデートしたら翻訳ファイルが消えたじ
                ゃねーかっ!




13年4月15日月曜日
自作プラグイン等で、.mo のパスを書き換えること
         で、暫定的に日本語を適用できます。

              add_filter(
                 "load_textdomain_mofile",
                 "my_load_textdomain_mofile",
                 10,
                 2
              );

              function my_load_textdomain_mofile($mo, $domain){
                  if ($domain === 'example') {
                      return ‘/path/to/example-ja.mo’;
                  }
                  return $mo;
              }
                                    この方法ならプラグインがアップデー
                                           トされてもオッケー!


13年4月15日月曜日
✓ テーマの翻訳を手っ取り早くするなら、
                twentytwelveなどのデフォルトテーマの
                ja.mo を、そのまま適用しちゃおう。笑



               // 子テーマの functions.php に以下のようなソースを。
               load_theme_textdomain(
                   'ここにテーマのテキストドメイン',
                    dirname(__FILE__).'/languages'
               );




13年4月15日月曜日
✓ いまいち活用しきれてない投稿フォーマット
                もこうすれば!?




13年4月15日月曜日
<?php

    add_filter('gettext', 'change_post_to_article');
    add_filter('gettext_with_context', 'change_post_to_article');
    add_filter('ngettext', 'change_post_to_article');
    add_filter('ngettext_with_context', 'change_post_to_article');

    function change_post_to_article($translated) {
         $translated = str_ireplace('アサイド', 'プレスリリース',
    $translated);
         return $translated;
    }




13年4月15日月曜日
おわり
              あざました!




13年4月15日月曜日

More Related Content

WordBench Osaka 春の大翻訳祭り