Upload
takayuki-miyauchi
View
6.741
Download
3
Embed Size (px)
DESCRIPTION
2013/04/13で使う資料を先行公開します。
Citation preview
春の大翻訳祭WordBench Osaka2013/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日月曜日
poedithttp://sourceforge.jp/projects/sfnet_poedit/
13年4月15日月曜日
Google Translator Toolkithttp://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日月曜日
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;}
自作プラグイン等で、.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日月曜日