GTK+ Ref. translation (TAKE 10).

いろいろなセレクタ (ファイル/フォント/色/入力デバイス)」が完了。
これ系は GTK+ 2.0 の初期からあったオブジェクトだけれど、OS の (ファイルシステム関係の) 高機能化に伴って改良が加えられている。例えば GtkFileChooser 型のでプレビュー表示するためのインタフェースが追加されたり、GtkFontSelection クラスも pango の機能に合わせて API が増えている。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

GTK+ Ref. translation (TAKE 9).

アクションからなるメニューとツールバー系のウィジェット」が完了した。
このウィジェットで新規に追加されたアクションが、いわゆる「最近開いたファイルの一覧」をサブメニューとして表示する GtkRecentAction というクラス。これは一覧を表示するだけのクラスなので、activate して実際にファイルを開いたりするには、GtkUIManager クラスを使って、シグナルハンドラと一緒にアクションとして UI 定義する必要あり。
ちなみに「UI 定義」というと、同じ XML 記述の (以前は libglade ライブラリも提供していた) GtkBuilder と、この GtkUIManager とをごっちゃにしてしまいそう :$ だけど、これは実装の歴史に因るものであり、その対象が異なる。後者はメニューとツールバーのアイテムだけが対象。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

GTK+ Ref. translation (TAKE 8).

前回からかな〜り時間がかかってしまったけれど、「メニューやコンボ・ボックス、そしてツールバー系のウィジェット」が完了。
まだ GtkObject の API の半分も終わっていないなぁ :(
これらのウィジェットは前のバージョンからは特に大きな変更はなく、GtkMenuShellGtkToolShell クラスに整理され、各クラスでいくつか API が追加されたくらいか。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

GNOME Getting Started Docs in Japanese.

GNOME 3 を初めてさわるユーザ向けに、GNOME のドキュメンテーションの標準となった Mallard (トピックス指向の XML) を使って画像やアニメーションなんかと融合したスタイルでヘルプを提供している gnome-getting-started-docs:
GNOME_Getting_Started_Docs-01-20130729.png
Yelp ヘルプ・ブラウザから単独で参照できるけど、もともとは以前、紹介した gnome-initial-setup と連携した作りになっているようで、初期設定が済んだらこのヘルプが表示されるようになっていた。
インストールするとわかるけど、GNOME 3 を初めて利用するユーザ向けに、アプリケーションの起動方法とかタスクを切り替える方法なんかを文章 (*.xml, *.page) の他に、図 (*.svg) やアニメーション (*.webm) を使って説明している。
で、この日本語化だけれども、他のドキュメント系と同様に、基本的には ja.poitstool を使って XML に日本語を埋め込んでいくのだけれど、実は *.svg の図や *.webm なんかのアニメーションも「いくつか設定をすれば」日本語を埋め込んで表示させることが可能になっている:
GNOME_Getting_Started_Docs-02-20130729.png

(ja.po から日本語をエキスポートして SVG 画像に埋め込んだ例)

その方法は、文章や図の場合 ja.po を用意してメッセージを翻訳しておけば、あとは make するだけで自動的に xml の中に埋め込まれる。
但し、アニメーションの方は現在のバージョン (バージョン 3.8.x) だと make の対象外になっているので、少々、設定を行った後に、パッケージに同梱の render-localized.sh スクリプトを使って、コマ撮りにした *.png を生成し blender を使ってアニメーションを生成する必要がある。難しいアニメーションの生成は python スクリプトと blender を使って生成されるような仕組みがパッケージ化されていて楽ちん 8):

$ cat gnome-getting-started-docs/animation/render-localized.sh
case $1 in
osx)
export PYTHONPATH="/Users/jimmac/.blender/scripts"
blender="/Applications/blender.app/Contents/MacOS/blender";;
*)
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages:/usr/lib/python3.3
blender="blender";;
esac
for script in *py
do blend=`basename $script py`blend
$blender -b $blend -P $script
done

上のスクリプトの中で呼び出される python スクリプトと blender ファイルが既に用意されている。これらがトピックス毎に用意されたアニメーションを生成するために blender の中で実行される:

$ ls gnome-getting-started-docs/animation/*.py
gnome-getting-started-docs/animation/gnome-change-wallpaper.py
gnome-getting-started-docs/animation/gnome-launching-applications.py
gnome-getting-started-docs/animation/gnome-responding-to-messages.py
gnome-getting-started-docs/animation/gnome-task-switching.py
gnome-getting-started-docs/animation/gnome-timezone.py
gnome-getting-started-docs/animation/gnome-windows-and-workspaces.py
gnome-getting-started-docs/animation/gnome-yelp-intro.py
gnome-getting-started-docs/animation/gnomerender.py
$ ls gnome-getting-started-docs/animation/*.blend
gnome-getting-started-docs/animation/gnome-change-wallpaper.blend
gnome-getting-started-docs/animation/gnome-launching-applications.blend
gnome-getting-started-docs/animation/gnome-responding-to-messages.blend
gnome-getting-started-docs/animation/gnome-task-switching.blend
gnome-getting-started-docs/animation/gnome-timezone.blend
gnome-getting-started-docs/animation/gnome-windows-and-workspaces.blend
gnome-getting-started-docs/animation/gnome-yelp-intro.blend
gnome-getting-started-docs/animation/part-kbd-launch-help.blend

アニメーション単体を生成するのであれば、上のスクリプトに従って、例えば「日付と時刻とタイムゾーンの変更」のアニメーションを生成する際は、次のようなコマンドラインになる:

$ cd gnome-getting-started-docs/animation/
$ export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages:/usr/lib/python3.3
$ blender -b gnome-timezone.blend -P gnome-timezone.py

また言語別に生成したアニメーションを gnome-help のディレクトリに格納したいのであれば (そのまま yelp ヘルプ・ブラウザで参照できる場所)、次のファイルに言語 (日本語なら ja) を追記しておく:

$ ls gnome-getting-started-docs/animation/language-whitelist.txt
gnome-getting-started-docs/animation/language-whitelist.txt
$ cat gnome-getting-started-docs/animation/language-whitelist.txt
C
cs
de
es
gl
hu
it
ja
pl
pt_BR

そして前述の render-localized.sh を実行すると、上記の言語毎に、その po ファイルから翻訳メッセージを展開し、アニメーションのフレームに相当する PNG 画像を616個生成して、最後にアニメーション・ファイルに統合し、言語別のディレクトリに格納するという仕組み。
さすがに、この過程は結構時間がかかるようで、全7個のアニメーションを生成するまでに自分のマシンの場合 (Intel Core i7 1.2GHz✖12コア) で4時間ほどかかった :O
で、肝心のアニメーションのメッセージの日本語化だけれど、自分の環境では次のような設定を行うと日本語フォントでちゃんとメッセージが描画された:

  1. blender >= バージョン 2.67 にする (PPA からインストールし、ここを参照に日本語対応にする)
  2. パッケージに同梱されているフォントには日本語が含まれていないので、日本語のグリフを含むフォントで置き換える

フォントに関して補足すると、gnome-getting-started-docs のパッケージに同梱されているフォントは次のとおり:

$ cd gnome-getting-started-docs/animation/fonts
$ ls -1 *.*tf
Cantarell-Bold.otf
Cantarell-Regular.otf
Overpass_Bold.ttf*
Overpass_Regular.ttf*
SourceSansPro-Black.otf
SourceSansPro-BlackIt.otf
SourceSansPro-Bold.otf
SourceSansPro-BoldIt.otf
SourceSansPro-ExtraLight.otf
SourceSansPro-ExtraLightIt.otf
SourceSansPro-It.otf
SourceSansPro-Light.otf
SourceSansPro-LightIt.otf
SourceSansPro-Regular.otf
SourceSansPro-Semibold.otf
SourceSansPro-SemiboldIt.otf

上記のどのフォントを実際に使用するのか詳細はわからないものの、いろいろ試したところ、SourceSansPro-* 系のフォントを日本語を含むフォントでシンボリックリンクするなどして置き換えると日本語フォントに展開できた。
で、実際に日本語化した gnome-getting-started-docs のアニメーションはこんな感じ:

GNOME_Getting_Started_Docs-03-20130730.png

GNOME_Getting_Started_Docs-04-20130730.png

GNOME_Getting_Started_Docs-05-20130730.png

GNOME_Getting_Started_Docs-06-20130730.png

GNOME_Getting_Started_Docs-07-20130730.png

GNOME_Getting_Started_Docs-08-20130730.png

GNOME_Getting_Started_Docs-09-20130730.png
(一応、直接 .webm をダウンロードするリンクと colorbox 経由でポップアップして再生できるリンクの両方を用意したのでお好み方法でどうぞ)
blender ってちゃんと使い方マスターすると意外と使えそう。

Up to GNOME 3.8 (TAKE 01).

正式なリリースから大分時間がたってしまったけど、なんとか GNOME 3.8 のデスクトップへの移行が完了した。今日現在で最新のマイナーリリースのバージョン 3.8.3 (2003年6月16日リリース) なので、実際には一ヶ月程度の遅れだけれど :P
この春に (GNOME 3.8 リリースにむけて) 新マシンを購入したんだけれど手をつけている時間がまったくなくて、手っ取り早く Ubuntu 13.04 の GNOME フレーバーのベータ版のインストールから始めて、週末の度にパッケージをビルド・インストールしてきたという次第。
ちなみに、Ubuntu 13.04 から (混じりけなしの) 正式な multiarch のサポートになったため、例えばそれまでのように ia32-libs なんかで (32/64bit 版との間で異なるバージョンのライブラリを) 一括インストールする訳にはいかず、主要なライブラリはその 64bit 版と同じバージョンで 32bit 版をインストールしなければならなくて、その準備やらに結構時間をくってしまった。結論としては、ちゃんと便利な (chroot を使った) ビルド・システムが用意されていて、ベースのファイルシステムを作るのに多少ディスク容量と時間を必要とするものの、それ以降は簡単なスクリプトで amd64 のパッケージをビルドした後に i386 のパッケージをビルドして同時にインストールするってな具合で進めていったのだけれど。
GNOME 3.8 の方はビルド時の依存関係なんかを調べるのが面倒なので、いつもどおり build.gnome.org の jhbuild のビルド一覧を参考にしようと思ったのだけれど、いつの間にかシステムがアップグレードされて無くなってしまったので、仕方なく jhbuild のモジュールセットを直接参照しながら順番にビルドした。
あと、Ubuntu 13.04 って未だ systemd を完全にサポートしていないんだな :(systemd-services なんてパッケージが入っていたものだから、てっきりサポートしているものとして gnome-sessiongdm–enable-systemd=yes でビルドしていたんだけど、GDM や GNOME シェルからリブートやシャットダウンできなかったり、NetworkManager 経由でネットワーク・プロパティを変更できなかったりと、あとで色々トラブってしまった。よくよく確認してみるとサポートしているのはログイン、時刻と日付、ロケールぐらいだったよ :$
で、本当は一回で紹介してしまおうと思ったのだけど、しばらくぶりのブログで書くのに時間がかかってしまったので何回かにわけることにした ;)
Login Sessions
リリースノートにあるように「GNOME クラシック」とか「GNOME 初期設定」なんかが追加されていた。前者は GNOME 2 ライクなスタイルを GNOME 3 (GNOME シェル) で表現しただけ。別に GNOME 2 になるわけではない。Ubuntu が patch で用意している「GNOME Fallback」が実は metacity や GNOME パネルを使った GNOME 2 相当のセッション。あと後者は gnome-initial-setup という未だ中途半端なパッケージが提供するセッション。ひと通り環境設定が済んだら $HOME/.config/gnome-initial-setup-done なんてファイルが touch されて次回からはこのセッションに入らないような仕組みのようだ:
GNOME3.8-NewSessions-20130715.png
これが GNOME クラシック (GNOME 2風なパネルを GNOME シェルの拡張機能を使って表現しただけ) のセッション:
GNOME3.8-GNOME_Classic_Session-20130715.png
これが GNOME 初期設定のセッションの一部で、他にもいくつかのお決まりのステップが用意されている。どこかで見たことがあるかと思ったら Mac OS X を初めて設定する時に出てくる設定ダイアログそのままで、特に目新しさも無いし出来もまだまだ:
GNOME3.8-GNOME_InitialSetup_Session-20130715.png
GNOME3.8-GNOME_InitialSetup_Session-02-20130715.png
一応 GNOME シェルで利用できるセッションは次のコマンドラインから確認できる:

$ gnome-shell --list-modes
gdm
initial-setup
user
classic

そして実際に GDM からログインすると、なんと GNOME シェルのセッションに入る際に背景がズームインしてくる:
DesktopZoomIn-AfterLogin-20130713.png
DesktopZoomIn-Completed-20130713.png
GNOME 3.8 では、このように Clutter を使った画像効果が随所に追加されている。他には GNOME コントロールセンターの各ペインを切り替える時に前のペインの残像を残しつつ次のペインに遷移するなんかがある。
My Latest Desktop
これが、いろいろ GNOME シェルの拡張機能 (gnome-shell-extensions パッケージの他にウェブサイトの Extensions) を追加した現在のデスクトップ:
GNOME3.8-MyCurrentDesktop-20130715.png
アプリのランチャは前のバージョンのデスクトップ同様に Docky だけど、これ横に長くなるまでランチャを追加してしまうと GNOME シェルの下部にあるメッセージバーを表示させるためのホットスポットを探すのが面倒 (このバージョンからマウス・ポインタを移動させるだけでよくなった) なので、ある程度だけで残りは この拡張機能を使っている。
拡張機能に含まれているアプリケーション・メニューを使うという考えもあるけど、アプリを探すならアクティビティ画面からの検索の方が便利 (各アプリに付属する .desktop ファイルの Keywords に含まれる単語を使ってそのまま検索できる)。なので、慣れると [Super]+A キーだけで十分便利だ。このあたりはリリースノートの記述が詳しい。
これが検索時のアクティビティ画面。日本語でも検索 OK:
GNOME3.8-AppSearch-20130715.png
このバージョンから背景の描画方法が Nautilus から GNOME シェルに移行された。それも ReleaseCandidate 版で急に。そのため前のバージョンのデスクトップ設定が残っていると、デスクトップアイコンを表示する際に背景が単色で表示されてしまう。これ結構ユーザをいろいろ混乱させたようだ。Ubuntu では背景の描画処理を Nautilus にバックポートしているくらいだ (こっちは Unity とか他のデスクトップのことを配慮したため):
GNOME3.8-BackgroundByGnomeShell-20130715.png
そして背景の変更は Nautilus ではなく GNOME シェルのコンテキストメニューから選択できるようになっている:
GNOME3.8-SelectBackground_From_GNOME_Shell-20130715.png
とは言っても GNOME シェルの背景と Nautilus のデスクトップ・アイコンの統合は不可能ではないようで、次の設定を有効にするだけで OK だった:

$ gsettings set org.gnome.settings-daemon.plugins.background active true
$ gsettings set org.gnome.desktop.background show-desktop-icons true

バージョン 3.8 の GNOME シェルも長く使っていると操作が遅くなってくるので再起動の操作は必須だな。メモリ使用率 (RSS) を見ても上位に入るくらいだし。バージョンが上がる度に API も変更され、今まで慣れ親しんだ拡張機能が (一時的に) 使えなくなることもしばしば。このあたりが毎回アップグレードする際の悩みどころなのだけれど、個人的にはもう少しパフォーマンスが良くなってほしい :|
My Favorit Extensions
よく使いそうな拡張機能が、このバージョンの gnome-shell-extensions に含まれているので、あとはお好みで。赤色のマークがついているのがウェブサイトから入手した拡張機能:
GNOME3.8-GNOME_Shell_Extensions-20130715.png
その中でもお気に入りの拡張機能が、実はデスクトップ右上隅に固まっていたりする:
GNOME3.8-Favorit-Extensions-20130715.png

Weather は GNOME 3.8 から仮採用されている gnome-weather っていう天気を一覧で表示するアプリなんかよりも便利で見やすい。デスクトップ上にあるので直ぐに参照できるし、日本人には不評の libgweather ライブラリを使っていないので国内でも市区県レベルで天気を確認できる。あとは Web Search Dialog なんかもウェブ検索する際には直ぐにアクションできるので嬉しい:
GNOME3.8-Favoriit-Extension-WebSearch-20130716.png
とりあえず、こんなところまで。