Pango Ref. translation is up.

と言っても、なんだかんだ一年もかかってしまった :O
それも最新版はかなり先に行ってしまったようだけど、他のライブラリ・バージョンとのリリースセットの関係からこればかりは仕方がない。時間はかかったけれど完訳と言うことで。
それに最新版と見比べてもセクションはそれほど変化は無いようだし。
ちなみにリリースセットの開始は GLib バージョン 2.18 の 2008年10月だから3年も経っていたのか。で、次は最近サイトがリニューアルした GTK+ (正確にはさらに細分化されて gdk-pixbuf、GDK、GTK+ の順だけど) のバージョン 2.14.x だ。
そんなわけで、このバージョンの API で何が新しくなったかはよく覚えていないけど参考にでもして下さい。
See Also Pango リファレンスマニュアル: v1.22.4 版の API リファレンス
See Also SVN リポジトリ: Pango リファレンスマニュアルの SVN リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

GNOME Shell Cheat Sheet in Japanese.

ひとまず GNOME 3.0 のビルドとインストールがひととおり完了し、先週末にはバージョン 3.0.1 にアップデートして、初物の不安定さからは少しばかり解放された感じ。
今では最初に受けた印象よりもかなり良い具合で、Nvidia のドライバも高速になってビジュアルな部分はまあまあ満足。部分的に不安定なところやメモリリークなんかがあるのが気になるが、日常的な作業には (今とのところ) 支障はない。前の G32 の環境に戻りたいか?と言われると否定はできないけれど、現実的にはもうフォールバックできないので諦めて新しい User Experience になじむ努力中。
そんなこんなで、早速 GNOME シェルの Cheat Sheet (使い方のガイド) を翻訳してみた。まだ完訳ではないけど、参考にどうぞ ;)
See Also GNOME シェルの使い方: Cheat Sheet の日本語訳

ATOK 3X for GTK+ 3.0.

Canna から乗り換えて以来、ATOK for Linux 一本でやってきたのだが、GTK+ 3.0 でビルド中の GNOME 3.0 アプリでは日本語入力はできないだろうなぁという不安がふとよぎったので、まずは確認してみる。良くも悪くも慣れ親しんだ ATOK で日本語が入力できなければ GNOME 3.0 デスクトップ作業はかなりキツイかなぁと。
ここでは、既にビルドした testgtk にある GtkEntry クラスのテスト・ウィジットを使ってみた:
atokx-gtk3-20110306-01.png
予想通り正しく入力はできないが、X経由で入力しているので変換前のコンテキストは表示されているようだ。とはいえ、キーボードからは「にほんごの」と入力したのだがこれでは全く使い物にならない。
GtkEntry ウィジェットの上で右クリックしてコンテキスト・メニューを表示してみる:
atokx-gtk3-20110306-02.png
この [入力メソッド(M)] のメニュー項目に、該当する入力メソッド (IIIM) がないのは、GTK+ 3.0 の入力メソッド・モジュール (Input Method Modules) に ATOK X3 で利用できるクライアント・ライブラリ、通称 iiimgcf が登録されていないからだ。当たり前だが。
GTK+ 3.0 では 2.0 と同様にいくつかの immodules (XIM とかタイ語の独自系フレームワークなど) がデフォルトで用意されているが、ATOK 用は Justsystem の製品に含まれていた im-iiim.so なるモジュールをインストールしておく必要がある。今使っている GTK+ 2.0 だと:

aihana@mikeforce3:~>cat /etc/gtk-2.0/gtk.immodules
# GTK+ Input Method Modules file
# Automatically generated file, do not edit
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.22.1
#
"/usr/lib/gtk-2.0/2.10.0/immodules/im-ipa.so"
"ipa" "IPA" "gtk20" "/usr/share/locale" ""
(省略)
"/usr/lib/gtk-2.0/immodules/im-iiim.so"
"iiim" "Internet/Intranet Input Method" "iiimgcf" "/usr/share/locale" ""

ちなみに ATOK を使った日本語入力要求の流れはこんな感じかな。変換や確定、表示といった結果はこの逆ということで。

GTK アプリ → (X経由) → GTK IMConext → im-iiim.so クライアント → libiiim*.so ライブラリ → (IIIM プロトコル) →  iiimd デーモン → 日本語辞書

ということは、GTK+ 3.0 用の im-iiim.so クライアントを用意すれば 2.0 同様に日本語入力できるわけで、それも 2.0 と 3.0 の両クライアントからそれぞれ利用できるということになる。
というわけで、製品版を購入すると IIIMF のソースアーカイブと Justsystem が独自に作成したパッチがいくつかついてくるので、これを GTK+ 3.0 とリビルドしてみる。サーバ側の iiimd デーモンや libiiim*.so ライブラリは既にシステムにインストール済のものを利用したりリンクするので、今回は iiimgcf を GTK+ 2.0 から 3.0 へ移植するといった感じ。
結果からいうと、移植してリビルドすると見事日本語入力できるようになった 8)
移植の際は Migrating from GTK+ 2.x to GTK+ 3 と testgtk.c を参考にした。前のブログでも書いておいたけど、GtkStyle クラスは全く利用できないため書き換えが必要だった。Justsystem が提供している iiimgcf は GTK+ 2.0 の初期バージョンからまったく更新されておらず、この GtkStyle を使ったコードが多くて手こずったが。あと、ステータスバーとかは GDK を使っているが、こちらは GTK+ 3.0 になって deprecated になったものが多く、Cairo を使うことが推奨されているため、いくつか書き直した (例えば gdk_draw_rectangle() なんか)。コードの書き換えは、前述の testgtk のソースコードが大変役に立った。バージョン 2.0 と 3.0 の testgtk.c を比較すると書き換え時の違いがよく分かる。どこぞの掲示板とかで GTK+ プログラミングを教えて!とか書き込まれているのをみると、まずは testgtk.c を読め!とでも返事した方がイイな :X
とはいえ、最初は iiimgcf の GTK+ 3.0 を誰かビルドしているかなぁと思い、最新の IIIMF のソースコードを探してみたけど、配布元と思われる OpenI18n という団体にもアクセスできないし、ウェブにもころがっていなかったので、仕方なく移植したといった次第。まぁ、Justsystem はこの団体が公開しているソースコードを利用して売っているだけなので、コードが古いのはある程度仕方がないか。
実行時の注意点としては、ビルドした im-iiim.so を GTK+ 3.0 の所定の場所にインストールして、gtk-query-immodules-3.0 した結果を、GTK+ 2.0 のように /etc/gtk-3.0/gtk.immodules というファイルではなく、このドキュメントGTK_IM_MODULE_FILE の説明に従って、/usr/lib/gtk-3.0/3.0.0/immodules.cache といったファイルに保存すること:

aihana@mikeforce3:~>ls -al /usr/lib/gtk-3.0/3.0.0/immodules/
合計 480
drwxr-xr-x 2 root root   4096 2011-03-06 21:46 ./
drwxr-xr-x 5 root root   4096 2011-02-27 16:11 ../
-rw-r--r-- 1 root root  19488 2011-02-27 16:08 im-am-et.so
-rw-r--r-- 1 root root   6256 2011-02-27 16:08 im-cedilla.so
-rw-r--r-- 1 root root   7800 2011-02-27 16:08 im-cyrillic-translit.so
-rw-r--r-- 1 root root 309004 2011-03-06 21:46 im-iiim.so
-rw-r--r-- 1 root root   8224 2011-02-27 16:08 im-inuktitut.so
-rw-r--r-- 1 root root   6904 2011-02-27 16:08 im-ipa.so
-rw-r--r-- 1 root root  14576 2011-02-27 16:08 im-multipress.so
-rw-r--r-- 1 root root  14408 2011-02-27 16:08 im-thai.so
-rw-r--r-- 1 root root  19472 2011-02-27 16:08 im-ti-er.so
-rw-r--r-- 1 root root  19472 2011-02-27 16:08 im-ti-et.so
-rw-r--r-- 1 root root   8120 2011-02-27 16:08 im-viqr.so
-rw-r--r-- 1 root root  31512 2011-02-27 16:08 im-xim.so
aihana@mikeforce3:~>sudo bash -c 'gtk-query-immodules-3.0 > /usr/lib/gtk-3.0/3.0.0/immodules.cache'
aihana@mikeforce3:~>ls -al /usr/lib/gtk-3.0/3.0.0/immodules.cache
-rw-r--r-- 1 root root 1838 2011-03-06 21:46 /usr/lib/gtk-3.0/3.0.0/immodules.cache
aihana@mikeforce3:~>cat  /usr/lib/gtk-3.0/3.0.0/immodules.cache
# GTK+ Input Method Modules file
# Automatically generated file, do not edit
# Created by gtk-query-immodules-3.0 from gtk+-3.0.1
#
(省略)
#
"/usr/lib/gtk-3.0/3.0.0/immodules/im-iiim.so"
"iiim" "Internet/Intranet Input Method" "iiimgcf" "/usr/share/locale" "*"
(省略)

こんな感じで先ほどの testgtk から日本語を入力してみる。まずは[入力メソッド(M)]のメニュー項目には IIIM が表示されていることを確認:
atokx-gtk3-20110306-03.png
GtkEntry に実際に「にほんご」を入力して変換することもできた:
atokx-gtk3-20110306-04.png
ということで、GTK+ 3.0 でも今までと同じように日本語入力ができるようになったので、GNOME 3.0 のビルドを再開する。
次回はパッチとビルド方法について解説する予定。