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 ってちゃんと使い方マスターすると意外と使えそう。

GTK+ Ref. translation (TAKE 7).

ツリー・ビューとリスト・ビュー系のウィジェット」が完了。
ふーぅ、派生を含む API の規模としては一番大きなウィジェット・グループが何とか完了した。とは言っても、ウィジェットの API 全体からみると、未だ半分にも到達していないが。ここんところずーっと多忙のため、今までのように毎日少しずつというよりは、なんとか週末にまとめてやるって感じ :$
これらのウィジェットは前のバージョンからは GtkCellRenderer クラスの子クラスが増えたとか、GtkTreeStore クラスの API が GtkListStore クラスに合わせて増えたくらいか。翻訳は全て見直して誤植・誤訳の修正と訳語の統一など。
あと、xref のリンクで Pango リファレンスマニュアルへのリンクが切れていたので修正しておいた。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。
あと、かなり前に複雑なツリー・ビューのプログラミングのチュートリアルを翻訳した。古いけど「モデル/ビュー」アーキテクチャについて十分参考になるはず:
See Also GTK+ 2.0 ツリー・ビューのチュートリアル: GTK+ バージョン 2 系で実装し直されたクラスやインタフェースのチュートリアル
そうそう、先日 GNOME 3.8 がリリースされたけど、個人的には全くビルドしている時間も無く。ちょっと大人しいリリースだったせいもあるけど。せっかく SSD 付きの New Build マシンを用意したのだけれど・・・;(

GTK+ Ref. translation (TAKE 6).

テキスト・ビュー系のウィジェット」が完了。これらのウィジェットは前のバージョンから特に大きな変更はなし。API がいくつか追加されたくらい。
今気づいたけれど、HTML に変換しても &ltfootnote>&lt/footnote> が崩れなくなったな。以前までは注釈の番号が上にずれたりしていたけど。
See Also GTK+ リファレンスマニュアル: v2.14.7 版の API リファレンス
See Also GIT リポジトリ: 作業用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。

Nautilus Renames Extension 3.2 RC1 supports GSettings.

先日翻訳した移行ガイドを参考に GConf から GSetting に変更してみた。概ねこのガイドに従っていけば移行はできるけど、GSettings の API を使って設定情報を保管したり取得するコードは別途追加が必要。このあたりを中心に気づいた点などをまとめてみる。あと、前バージョンでは Deprecated なウィジェット (コンテナ) を残したまま GTK+ 3 をサポートしていたのだけれど、GTK+ 3.6 系の環境で使用するとウィジェットの配置が崩れてくるのが目に付いたので、それらを新しいコンテナらで置き換えておいた
今回の移行対象となるスキーマはアプリケーションの設定情報とかオプションとか呼ばれる類のもので、いわゆる Microsoft Windows のレジストリみたいなもの。詳細はこちらのドキュメントを参照のこと。以下、前者が GConf のスキーマ XML で、後者が (GConf スキーマを変換し修正した結果でもある) GSettings のスキーマ XML の一部である:

(nautilus-renames.schemas)
<gconfschemafile>
<schemalist>
<schema>
<key>/schemas/apps/nautilus-renames/last_template</key>
<applyto>/apps/nautilus-renames/last_template</applyto>
<owner>nautilus-renames</owner>
<type>string</type>
<default></default>
<locale name="C">
<short>Last template used to rename</short>
<long>
Used to store which a template used for renaming filenames
or folder names with some special character in pattern.
</long>
</locale>
</schema>
...
(org.gnome.nautilus-renames.command-history.gschema.xml)
<?xml version="1.0" encoding="UTF-8"?>
<schemalist>
<schema path="/org/gnome/nautilus-renames/command-history/" id="org.gnome.nautilus-renames.command-history" gettext-domain="nautilus
-renames">
<key type="s" name="last-template">
<default>''</default>
<summary>Last template used to rename</summary>
<description>Used to store which a template used for renaming filenames or folder names with some special character in pattern.<
/description>
</key>
...

上の例では両者共にちょうど1個のキーとその値の定義をスキーマで記述してある。移行ガイドにもあるけど、両者の大きな違いはキーの名前が GConf では絶対パス名で、GSettings では名称になっている点。あとで両者の違いを吸収するコンバータについて説明する。
で、その移行作業としては:

  1. configure.ac に専用の m4 マクロを追加する移行ガイドにあるように GLIB_GSETTINGS を追加し pkg-config を使った検出では古い GConf 向けの条件を外して、代わりに gsettings-desktop-schemas を利用するための条件を追加する。
    @@ -66,6 +66,7 @@ AC_HEADER_STDC
    GNOME_COMMON_INIT
    GNOME_MAINTAINER_MODE_DEFINES
    GNOME_COMPILE_WARNINGS([maximum])
    +GLIB_GSETTINGS
    
    @@ -84,8 +84,8 @@ PKG_CHECK_MODULES([DEPENDENCIES], [
    gmodule-2.0
    gio-2.0
    gtk+-3.0 >= $GTK_REQUIRED
    -    gconf-2.0 >= $GCONF_REQUIRED
    libnautilus-extension >= $NAUTILUS_EXTENSION
    +    gsettings-desktop-schemas
    ])
    

    gconftool も不要なので configure スクリプトから外す:

    @@ -161,16 +161,6 @@ else
    -AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
    -if test x"$GCONFTOOL" = xno; then
    -        AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
    -fi
    -AM_GCONF_SOURCE_2
    

    GSettings は GLib バージョン 2.26 以降から利用できるので、それをビルド条件として追加しても構わない:

    @@ -75,7 +76,6 @@ PKG_PROG_PKG_CONFIG
    GLIB_REQUIRED=2.28.0     // >= 2.26 であることを明示する
    GTK_REQUIRED=3.4.0       // Deprecated なコンテナを使わないようにするため
    NAUTILUS_EXTENSION=3.0.0
    
  2. Makefile.am に専用のルールを追加するこのアプリでは GConf のスキーマを $(topdir)/data に格納しているので、このディレクトリの Makefile.am を修正する。まず GConf 向けのルールを GSettings のルールで置き換える。ここにあるとおり GSettings のスキーマ XML ファイルの名前は org.gnome.nautilus-renames.command-history.gschema.xml で、後で説明するけど <summary> (サマリ) と <description> (説明) は l10n 向けに翻訳カタログにエキスポートするため、実際には *.gschema.xml.in というファイルを作成して、その後の @INTLTOOL_XML_NOMERGE_RULE@ というルールを介して *.gschema.xml に変換している:
    @@ -14,24 +14,27 @@ icon_DATA =                                 \
    ## Man page
    man_MANS = nautilus-renames.1
    -## Schemas and about.ini
    -schemadir = @GCONF_SCHEMA_FILE_DIR@
    -schema_in_files = nautilus-renames.schemas.in
    -schema_DATA = $(schema_in_files:.schemas.in=.schemas)
    +## GSettings schemas
    +gsettings_schema_in_files =                                            \
    +       org.gnome.nautilus-renames.command-history.gschema.xml.in       \
    +       $(NULL)
    +gsettings_SCHEMAS = $(gsettings_schema_in_files:.xml.in=.xml)
    -@INTLTOOL_SCHEMAS_RULE@
    +@INTLTOOL_XML_NOMERGE_RULE@
    +@GSETTINGS_RULES@
    

    ちなみに dconf-editor といった GUI の類でスキーマのサマリや説明を参照しても日本語になっていない理由は、この @INTLTOOL_XML_NOMERGE_RULE@ ルールがあるため。このルールを外せば日本語のままスキーマに埋め込まれるのだけれどバイナリに変換する際にエラーが出る。単純にせっかく翻訳した日本語の文章が表示されないのはそれが原因。

  3. GConf/GSettings のスキーマ変換一覧のファイルを作成し、
    Makefile.am に専用のルールを追加する
    つづいて、移行ガイドのここにあるように、GConf/GSettings のスキーマを相互に自動変換してデータを保存できるようにするために、GSettings のスキーマにあるキーと GConf のパス名の対応づけを記述したファイル (コンバータ) を nautilus-renames.convert なる名前で作成しておき、これを /usr/share/GConf/gsettings というディレクトリにインストールするルールを書いておく:

    +## About informations
    +convertdir = $(datadir)/GConf/gsettings
    +convert_DATA = nautilus-renames.convert
    

    次がコンバータの中身。GSettings のスキーマ毎にキーを左辺に、それに対応する GConf のキー (/schemas を除いた絶対パス) を右辺に記述する:

    [org.gnome.nautilus-renames.command-history]
    last-template = /apps/nautilus-renames/last_template
    last-start-at = /apps/nautilus-renames/last_start_at
    last-sort-by = /apps/nautilus-renames/last_sort_by
    last-reverseorder = /apps/nautilus-renames/last_reverseorder
    last-change-case = /apps/nautilus-renames/last_change_case
    last-leave-original = /apps/nautilus-renames/last_leave_original
    

    最後にソース・アーカイブを配布するためのお決まりのターゲットでも、GConf スキーマファイルを削除して GSettings のスキーマとコンバータを追加しておく:

    EXTRA_DIST =                           \
    -       nautilus-renames.schemas        \
    -       nautilus-renames.schemas.in     \
    +       $(gsettings_schema_in_files)    \
    +       nautilus-renames.convert        \
    $(icon_DATA)                    \
    $(man_MANS)                     \
    $(aboutdialog_DATA)             \
    @@ -42,9 +45,18 @@ DISTCLEANFILES =     \
    $(NULL)
    CLEANFILES =                           \
    -       $(schema_DATA)                  \
    +       $(gsettings_SCHEMAS)            \
    $(NULL)
    
  4. GConf スキーマの XML ファイルを
    GSettings スキーマの XML ファイルに変換する
    次は、移行ガイドのここにあるように、GConf のパッケージに付属している gsettings-schema-convert なるツールを使って実際に GConf から GSettings のスキーマ XML に変換する。GSettings の場合、スキーマ名「イコール」ファイル名が慣例らしく名前空間みたいにドットで区切った名称にし、拡張子はこれも慣例に従い .gschema.xml にする。ということで、GSettings のスキーマ XML のファイル名は org.gnome.nautilus-renames.command-history.gschema.xml になる。とはいえ、GConf / GSettings 共に実際の XML ファイルは l10n 対応ということで intltool のマクロを介して展開されるようにしておくため *.in という拡張子になっており、移行ガイドに従って実行するコマンドラインは次のようになる:

    $ gsettings-schema-convert \
    --gconf --xml   \
    --schema-id "org.gnome.nautilus-renames.command-history"           \
    --output org.gnome.nautilus-renames.command-history.gschema.xml.in \
    nautilus-renames.schemas.in
    
  5. 変換した GSettings スキーマの XML ファイルを修正するgsettings-schema-convert ツールで変換した結果を修正する。ここではコマンドラインからスキーマ id を “org.gnome.*” に変更しているが、変換された path の内容は GConf の絶対パスのままなので手動で修正する。例えば
    <schema id="org.gnome.nautilus-renames.command-history"
    path="/schemas/apps/nautilus-renames/last_template" ...
    

    を次のように修正する (これを全キーに対して繰り返す):

    <schema id="org.gnome.nautilus-renames.command-history"
    path="/org/gnome/nautilus-renames/command-history/" ...
    

    その他に、各キーのスキーマにある <summary> を <_summary>、<description> を <_description> にそれぞれ変更し、スキーマ id の中に gettext のドメインを追加して intltool の @INTLTOOL_XML_NOMERGE_RULE@ のルールでエキスポートされるようにしておく:

    <schema id="org.gnome.nautilus-renames.command-history"
    path="/org/gnome/nautilus-renames/command-history/"
    gettext-domain="nautilus-renames">
    
  6. POTFILES.in に GSettings スキーマファイルを追加する上で追加した intltool のルールと intltool-update を使って l10n のメッセージ・カタログ・ファイルにスキーマの日本語訳をエキスポートできるように、GSettings のスキーマ XML ファイルの名前を po/POTFILES.in に追加しておく:
    [encoding: UTF-8]
    # List of source files containing translatable strings.
    # Please keep this file sorted alphabetically.
    ...
    data/org.gnome.nautilus-renames.command-history.gschema.xml.in
    

    あとは po ディレクトリで次のコマンドを実行すると、GSettings のスキーマ XML ファイルにある &lt_summary> と <_description> でそれぞれ囲った部分が翻訳メッセージのエントリとして追加されるようになる:

    $ intltool-update ja
    
  7. GConf の API を GSettings の API に置き換えてコンパイルしてみる最後に、プログラムから GConf の API を使ってアプリの設定情報を取得したり、別の値で上書きするなどしているコードをそれぞれ修正しておく。このアプリではアプリの設定に応じた GConf のラッパーを提供しているので、これを GSetting の API置き換えた。同様に、直接アプリの設定を取得するコードも GSetting の API でそれぞれ置き換えた

    それが完了したら、configure スクリプトが正しく GSetting を検出し、GSettings のスキーマ XML ファイルが生成され、GSettings の API を使ったコードがコンパイルされるか autogen.sh を実行して確認する。

といった流れになった。さらに、このアプリでは run-in-place をサポートするようにしており、せっかくなのでスキーマをシステム規模でインストールすることなく、ビルド直後にそのまま GSettings を利用できるようにちょっと fake な処理を追加している。
本来ならばスキーマをシステム規模の /usr/share/glib-2.0/schemas というディレクトリにインストールしてコンパイルする必要があるが、それは $XDG_DATA_DIRS という環境変数に基底ディレクトリが定義されているから:

$ echo $XDG_DATA_DIRS
/usr/share/gnome:/usr/local/share/:/usr/share/

すなわち、上記の基底ディレクトリ配下の glib-2.0/schemas に GSettings のスキーマ XML とそのバイトコンパイルが存在ししていないとアプリが起動しない:

$ nautilus-renames *.*
...
(nautilus-renames:14782): GLib-GIO-ERROR **: No GSettings schemas are installed on the system

ということで、システム規模にインストールせずにローカルのディレクトリで上記の条件を満足させるようにした上で、このアプリの起動時に次のように環境変数を変更してローカルのディレクトリを優先するようなコードを追加した:

#ifdef RUN_IN_PLACE
{
gchar             *val_string;
const gchar       *old_env;
old_env = g_getenv ("XDG_DATA_DIRS");
if (old_env) {
val_string = g_strdup_printf ("%s:$(XDG_DATA_DIRS)", DATADIR);
g_setenv ("XDG_DATA_DIRS", val_string, TRUE);
} else {
val_string = g_strdup_printf ("%s", DATADIR);
g_setenv ("XDG_DATA_DIRS", val_string, TRUE);
}
#ifdef DEBUG
mkf_debug_message (DEBUG_PRINT, "$XDG_DATA_DIRS = %s", val_string);
#endif /* Def: DEBUG */
g_free (val_string);
}
#endif /* Def: RUN_IN_PLACE */

そしてビルドした後に次のコマンドで GSettings のスキーマをローカルでバイトコンパイルして利用できる環境にする:

$ make compile-local-schemas
cd data && make compile-local-schemas
make[1]: ディレクトリ `nautilus-renames/data' に入ります
top_builddir=`cd .. && pwd`
Compiling schemas in local
mkdir -p ../data/glib-2.0/schemas/
install -c -m644 org.gnome.nautilus-renames.command-history.gschema.xml ../data/glib-2.0/schemas/
GLIB_COMPILE_SCHEMAS=/usr/bin/glib-compile-schemas && /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas ../data/glib-2.0/schemas
make[1]: ディレクトリ `nautilus-renames/data' から出ます

次が上のターゲットのルール:

+if RUN_IN_PLACE
+compile-local-schemas: org.gnome.nautilus-renames.command-history.gschema.xml
+       top_builddir=`cd $(top_builddir) && pwd`
+       @echo Compiling schemas in local
+       mkdir -p $(top_builddir)/data/glib-2.0/schemas/
+       install -c -m644 org.gnome.nautilus-renames.command-history.gschema.xml $(top_builddir)/data/glib-2.0/schemas/
+       GLIB_COMPILE_SCHEMAS=$(shell which glib-compile-schemas) && $(GLIB_COMPILE_SCHEMAS) $(top_builddir)/data/glib-2.0/schemas
+endif

これでアプリをシステム規模でインストールしなくても即行で起動できる。
あとGTK+ バージョン3を使った GUI の方も、Deprecated になったテーブルやボックスといったコンテナを全て Glade を使って書き直した。ウィジェットをコンテナを介して階層的に管理することは理論的に良いとは思うけど、実際にレイアウトを視覚的に決めるのが難しくなった。あれこれパラメータを変更しながらじゃないと一意にきまらないというか、やり直しが多くなるというか。一箇所操作するだけでレイアウトが決まれば良いのだけれど、Glade は個々のウィジェットをそれぞれ操作しないとうまくいかない。
ということで、以下がスクリーンショット:
nautilus-renames-2013010501.png
今バージョンからコンテキスト・メニューの項目でショートカットキーを利用できるようにした:
nautilus-renames-2013010401.png
See Also nautilus-renames-3.1.92.tar.xz: Release Candidate2
See Also 開発リポジトリ
See Also ホームページ
そういえば前のバージョンも未だ stable を出していなかったような気もするな…:O

Migrating from GConf to GSettings.

GSettings クラスはアプリケーションの設定を保管したり参照するための便利な API を提供しているクラスで、GLib のバージョン 2.26 以降で利用できる。
ちなみに従来まで使われていた GNOME 標準の GConf と dconf とで似たような単語が使われていて混乱してしまいそうだけど、GSettings からみると共に低位で同等の実装を持つバックエンドに相当するものであり、このような機能を持っていないプラットフォーム向けに提供されているという位置づけになる。なので当然ならがスキーマとその意味が異なっているんだけど、まぁ、共に「何たらエディタ」みたいなツールが存在していることがユーザにとって混乱の種のような気がするのだが :$ (というか、GConf は低位と上位の両方の API が用意されているってことだけど)。
従来の GConf を使っていたアプリケーションを GSettings に移行する方法に関しては、同バージョンのリファレンスマニュアルに移行ガイドとしてまとめられており、こちらを翻訳してみた。
内容的には GConf と GSettings との間で互換性のある API の紹介 (GConf はバックエンドという位置づけなので、本来は互換性とかのレベルでは無いのだけれど、移行作業中に両方の設定システムにアクセスできるように配慮されている)、GIO を利用して設定情報の変更を通知する機能、ツールを使った両者のスキーマの変換、実行時に動的に GConf から GSettings へ切り替える方法などが解説されている。また、スキーマに含まれる設定情報のローカライズについても触れられており、<summary><descrition> とでは翻訳の仕方が異なる点もきちんと定義されている (前者は句読点なし、後者は句読点や改行あり)。
See Also GConf から GSettings への移植: GIO 関連の追加ドキュメント
See Also GIT リポジトリ: 翻訳用の GIT リポジトリ (英文併記)
See Also 誤植/誤訳の報告はメールの他にこちらにて。
このドキュメントを参考に、以前作ったアプリをアップグレードしてみる予定。