ドキュメント構築に必要なパッケージをインストールします。
sudo apt-get install git xsltproc po4a
Pokyの`Gitリポジトリ`_をクローンして、`GitHub`_に登録します。
mkdir yocto cd yocto git clone git://git.yoctoproject.org/poky cd poky git remote set-url origin [email protected]:m-shibata/poky git push origin master
翻訳用のブランチを作り、pushします。
git branch -b i18n git push origin i18n
Poky関係のドキュメント(documentation)とBitbake関係のドキュメント (bitbake/doc)があります。
例えばYocto Project Quick StartのHTMLを生成、表示する場合は、 次のコマンドを実行します。
cd documentation/ make DOC=yocto-project-qs xdg-open yocto-project-qs/yocto-project-qs.html
PokyのドキュメントはDocBookを使っています。そこで`po4a`_を使って 国際化対応を行います。
ここで説明した内容は、i18nブランチでは対応済です。 単純に作業を行いたいだけであれば、次章に移動してください。
最初に翻訳テンプレートであるpotファイルを作成します。
cd documentation/yocto-project-qs mkdir po po4a-gettextize -f docbook -m yocto-project-qs.xml -M UTF-8 -p po/yocto-project-qs.pot
yocto-project-qs.xmlはASCII文字のみで構成されていないようなので、 文字コードを指定しています。
翻訳する言語のpoファイルがまだ存在しなければ、言語コードを使って potファイルをコピーします。
cp po/yocto-project-qs.pot po/ja.po
さらにヘッダーを適切に設定します。
# Translation for "The Yocto Project Quick Start" # Copyright (C) 2012-2013 Linux Foundation # This file is distributed under the same license as the Poky. # Mitsuya Shibata <[email protected]>, 2012-2013. # msgid "" msgstr "" "Project-Id-Version: poky mastern" "POT-Creation-Date: 2012-12-29 20:43+0900n" "PO-Revision-Date: 2012-12-29 20:43+0900n" "Last-Translator: Mitsuya Shibata <[email protected]>n" "Language-Team: Japanese <[email protected]>n" "Language: jan" "MIME-Version: 1.0n" "Content-Type: text/plain; charset=UTF-8n" "Content-Transfer-Encoding: 8bitn" "Plural-Forms: nplurals=1; plural=0;n"
あとは、ja.poを翻訳していくだけです。
翻訳したデータを反映したドキュメントは次のコマンドで作成できます。
po4a-translate -f docbook -m yocto-project-qs.xml -M UTF-8 \ -p po/ja.po -k 0 -l yocto-project-qs.ja.xml
オプション`-k`を指定しないと、翻訳率が80%以下なら翻訳が反映されなくなります。 これは不用意に品質の低いpoファイルを取り込むことを防止するためのしきい値ですが、 翻訳開始当初は不便なのでしきい値を0に下げています。
例えば、yocto-project-qs.xmlに名前を変更すれば、既存のmakeコマンドで 日本語化されたドキュメントを作成できます。
原文が更新されたら、それにあわせてpoファイルをアップデートする必要があります。
po4a-updatepo -f docbook -m yocto-project-qs.xml -M UTF-8 -p po/ja.po
多少表現が変わった程度であれば、以下のようにfuzzyタグがつくだけなので、 fuzzyと元の文章を削除すればいいだけです。例えば、"Welcome!"の エクスクラメーションマークが削除された場合は、次のように poファイルが更新されます。
#,fuzzy #| msgid "Welcome!" msgid "Welcome" msgstr "ようこそ!"
i18nブランチのPokyのMakefileでは、po4aを使った翻訳ファイルの管理方法が 統合されています。そのためmakeコマンドで、翻訳の反映やpoのアップデートが できます。
まず、翻訳したいドキュメントフォルダーにpoフォルダーが存在しない場合は、 作成しておきます。
mkdir documentation/yocto-project-qs/po
updatepoターゲットを使ってpotファイルを作成します。
make DOC=yocto-project-qs updatepo
作成されたpotファイルを、翻訳したい言語コードを使ってpoファイルに コピーします。詳しいことは「各言語ごとのpoファイルを作成する」を 参照してください。
作成されたpoファイルを使って翻訳が完了したら、それを反映した ドキュメントを作成します。通常のドキュメント作成時のコマンドに、 LN変数に翻訳したい言語コードを付与するだけです。 例えば日本語の場合は言語コードが"ja"なので、次のようにします。
make DOC=yocto-project-qs LN=ja xdg-open yocto-project-qs/yocto-project-qs.html
これで翻訳されたドキュメントが作成されるはずです。
翻訳用のブランチの内容を上流のそれと常に同期しておく必要があります。
まず、masterを上流を指定してpullし、ローカルにpushします。 masterブランチはいじっていないはずなので、単純にpullできるはずです。
git checkout master git pull git://git.yoctoproject.org/poky master git push origin master
次に翻訳用のブランチをrebaseしておきます。Makefile以外は元データを いじっておらず、Makefile自体もそれほど大きな改変ではないので、 大抵の場合は単純にrebaseできるものと思います。
git checkout i18n git rebase master
ドキュメントが更新されているようなら、poファイルやpotファイルを 更新しておきましょう。
make DOC=yocto-project-qs updatepo git commit -av
最後にpushすれば完了です。ただしrebase前のものがpushされている 場合はあらかじめrebase分のコミットを巻き戻しておきます。
git push -f origin HEAD~6:i18n git push origin i18n
翻訳後makeで作成したドキュメントは、ウェブサーバーなどで そのまま公開できます。ウェブサーバーを持っていない場合は、 DropboxのPubilicフォルダーを使うと便利です。
既に存在するPubilicフォルダーの中に適当な名前でフォルダーを 作成し、そこにmakeしたhtml、css、figuresフォルダーとその中身を アップロードします。
htmlファイルを選択した上で、「パブリックリンクのコピー」を 選択すればクリップボードにそのページのURLがコピーされますので、 これを人に教えれば誰でも翻訳したドキュメントにアクセスできます。