GNOME

GLib Ref. translation has already done.

え〜と、いろいろとあって最後の報告からかなり間が空いてしまったけど、GLib リファレンス・マニュアルの glib 部の翻訳は完了
覚えている範囲で翻訳の ChangeLog をまとめてみると:
シーケンス

  • 新規の翻訳
  • 誤植
    • GSequenceItercompareGSequenceIterCompareFunc
    • g_sequence_append () の引数の型が間違っている

トラッシュ・スタック

  • g_trash_stack_peek() に説明が補足された
  • g_trash_stack_height() に説明が補足された

ハッシュ・テーブル

  • GHashTable 型がリファレンス・カウンタで管理されるようになった
  • GHashTableIter 型のイテレータが追加された
    • これにより、ハッシュ・テーブルを参照する方法が g_hash_table_foreach()関数とイテレータの2つになった
  • g_hash_table_lookup_extended() に説明が補足された (NULL なキーも検索できる)
  • g_hash_table_foreach() に説明が補足された
  • g_hash_table_find() に説明が補足された
  • g_hash_table_foreach_remove() に説明が補足された
  • 新規に追加された関数
    • g_hash_table_remove_all()
    • g_hash_table_steal_all()
    • g_hash_table_get_keys()
    • g_hash_table_get_values()
    • g_hash_table_ref()
    • g_hash_table_unref()
    • g_hash_table_iter_init()
    • g_hash_table_iter_next()
    • g_hash_table_iter_get_hash_table()
    • g_hash_table_iter_remove()
    • g_hash_table_iter_steal()

文字列

  • g_string_new_len() に説明が補足された
  • 新規に追加された関数
    • g_string_vprintf()
    • g_string_append_vprintf()
    • g_string_append_uri_escaped()

文字列チャンク

  • 日本語の見直し
  • 新規に追加された関数
    • g_string_chunk_clear()

配列

  • 日本語訳の見直し

ポインタ配列

  • 日本語訳の見直し
  • 誤植
    • g_ptr_array_free()関数の引数 free_segmentfree_seg の間違い

バイト配列

  • 日本語訳の見直し

平衡二分木

  • 日本語訳の見直し
    • 木->ツリー、節->ノード、根->ルート、葉->要素
  • 誤植
    • g_tree_foreach()関数の predicate は func の間違いだと思われる
    • g_tree_search ()関数のg_tree_search_func()関数はg_tree_search()関数の間違い

N分木

  • 日本語訳の見直し
    • 木->ツリー、節->ノード、根->ルート、葉->要素
  • 前バージョンの日本語訳で抜けていた部分の翻訳

クォーク

  • 文字列のインターンを提供する関数が追加された

キー付きデータ・リスト
データセット
リレーショナルとタプル

  • 日本語訳の見直し

キャッシュ

  • 短い概要の誤訳を修正した
  • 日本語訳の見直し

GLibのツール

  • gtester 向けの man ページの新規の翻訳

といったところか。誤植の報告は…途中から (どこからかは忘れたけど) やってません:/
See Also GLib リファレンスマニュアル: v2.18.1 版の API リファレンス (翻訳完了)
See Also SVN リポジトリ: 翻訳作業の SVN リポジトリ
See Also GLib Reference Manual: オリジナルのドキュメント
See Also バグ報告と追跡: 翻訳バグなどの報告はこちらへどうぞ
ちなみに現在は、同リファレンス・マニュアルの gobject 部の翻訳中。

G26 release note.

なんとか GNOME 2.26 の翻訳作業が完了し、先週末にはリリースノートの翻訳も完了した。Upstream では未だ公開されていないようだけれど、そのうち他の国の言語と合わせてコンパイルされて公開されるでしょう。とりあえずうちでコンパイルした結果を公開しておく:

gnome.png

See Also GNOME 2.26 リリースノート: commit 済
前回同様に、おおよそ2ヶ月くらい前の βリリースから翻訳準備を始めたんだけど、やっぱり公式リリースの日 (日本時間で3月20日) には間に合わず。新しいデスクトップ環境をビルドして構築するまでの手間を含めると仕方がないか。それでも今回のリリースから、Translators に配慮して tarballs due から公式リリースまで3日ほど猶予が設けられたんだけどそれでもきついな :|
それはともかく、リリースの翻訳作業は自分にとって今回がラスト。なんか肩の荷が下りた気分。ホント、この2ヶ月間はブログなんて書く暇も、他のことやる暇もなかったしね :)
今後は、ホントにやりたかった GTK+/GNOME の開発用ドキュメントの翻訳に注力していく予定。

GLib Ref. translation progress (TAKE 10).

第五章 「GLib のデータ型」の途中まで翻訳した。
この目次にあるように、長らく提供していたメモリ・チャンク (Since バージョン 1.2.x) が廃止 (Deprecated) になり、代わりに メモリ・スライス (Since バージョン 2.10) が追加された。共にメモリを一括して確保し管理するためのデータ構造とアルゴリズムなのだけれど、前者にはパフォーマンス上の問題があるため、後者では Linux スラブ・アロケータのアルゴリズムを採用することで、メモリチャンクを複数のスレッドから利用した時のようなオーバーヘッドを回避することができるようになった。要するに、目次でわざわざ強調しているように「メモリチャンクは効率が悪いデータ構造なので使うな!」ということ。メモリ・スライス、メモリ・チャンク共に利用頻度の高いデータ構造の GList 型GSList 型GHash 型なんかで利用されているから、このアルゴリズムの変更は GLib のバージョンを選定する上でかなり重要なポイントになるということか。
大量のデータを要素に持つリストを確保する場合や複数のスレッドからそのようなメモリにアクセスするようなケースが想定されるならば GLib バージョン 2.10 以降を選定すべきかと。むしろ GLib-2.8 を「実装がこなれているかどうか」 (実装の安定度とバグの総数に変動がない状態かどうか) の境界としていたが、GLib-2.10 を境界とした方が良さそうだ :|
次のセクションの翻訳が完了した:

  • メモリ・スライス
  • メモリ・チャンク
  • 双方向連結リスト
  • 単方向連結リスト
  • 両端キュー

翻訳の ChangeLog は次のとおり:
メモリ・スライス

  • 新規の翻訳
  • g_slice_free_chain_with_offset () と g_slice_free_chain() は #GSList を使うことを前提にした実装なので、リストは解放せず、リストの中に格納したメモリ・ブロックを解放するという点に要注意 (リスト自身は解放しない)

メモリ・チャンク

  • スレッド使用時のオーバーヘッドが大きいためメモリ・スライスを使うと言うことで廃止候補になった
  • これを使ってはいけないし、実際動かない
  • これを利用したコードは書き直しが必要

双方向連結リスト

  • g_list_delete_link()関数の説明が補足されている
  • g_list_free()関数の後始末がメモリ・チャンクではなくメモリ・スライスに変更された
  • g_list_free_1()関数の別名としてg_list_free1()マクロが追加された
  • 新規に追加された関数
    • g_list_insert_sorted_with_data()

単方向連結リスト

  • g_list_delete_link()関数の説明が補足されている
  • g_list_free()関数の後始末がメモリ・チャンクではなくメモリ・スライスに変更された
  • 新規に追加された関数
    • g_slist_insert_sorted_with_data()

両端キュー

  • g_queue_free() の説明が増えた
  • 新しく追加された関数やマクロ
    • G_QUEUE_INIT() マクロ
    • g_queue_init() 関数
  • 誤植: g_queue_link_index () の @Gqueue

See Also GLib リファレンスマニュアル: v2.18.1 版の API リファレンス (翻訳中)
See Also SVN リポジトリ: 翻訳作業の SVN リポジトリ
See Also GLib Data Types: オリジナルのドキュメント (第五章)
See Also バグ報告と追跡: 翻訳バグなどの報告はこちらへどうぞ
ということで、引き続き 第五章の翻訳を行う予定。

Gtranslator, long time no see.

メーリングリストでも昨年からいろいろ活発に動いていた Gtranslator の開発版がリリースされたのでビルド・インストールしながら ja.po の方を更新しておく (Not completed yet as bellow)。
次期 Gtranslator 2.0 についてはメーリングリストの内容や付属の NEWS ファイルにあるように、GObject ベースで最新の GLib/GTK+ に合わせた実装になっている。もちろん UI のレイアウトも 1.0/1.1 系から変わっているし、翻訳エディタの方は plural なメッセージにも対応し、文字列の強調表示もできる。また翻訳メモリ (翻訳データベース) も強化され、ショートカットキーですぐに引用できる模様。ただ、今回の開発版はバグのためプラグインが一切起動せずレビューできなかったので ja.po の方もその辺は手を付けていない。
デスクトップ・メニュー

gtranslator-01-20090125.png

プロファイル作成アシスタント
この開発版から翻訳メモリは Berkeley DB を使ったデータベースになった。また、プロファイルを使って複数の翻訳作業とその環境設定を管理できるようになった。これらのファイルはデフォルトで $HOME/.config/gtranslator/ 以下に格納されている。そのため初めて起動するとプロファイルを作成するアシスタントが表示される:

gtranslator-02-20090125.png
gtranslator-03-20090125.png
gtranslator-04-20090125.png

メイン・ウィンドウ
複数のペインに分割されているが取り外したり移動することができないので、慣れるまで若干とまどうかも。キー操作はいちおう 1.0/1.1 系を踏襲しているような感じがする。あと同じプロファイルで複数の .po ファイルを編集できるが、その際はノートブック・タブが表示される:

gtranslator-05-20090125.png

翻訳メモリ
例えば “No comment” というメッセージを翻訳する際に翻訳メモリを Ctrl+K で表示すると、こんな感じで学習したデータベースから候補をピックアップしてくれる:

gtranslator-06-20090125.png

複数形の翻訳
実際はプロファイルに入力した gettext の指定子に応じた編集タブがいくつか表示される:

gtranslator-07-20090125.png

設定ダイアログ
翻訳エディタは gtksourceview を使いC言語の書式指定子などメッセージの書式に合わせた強調表示やフォントの選択が可能だし、従来版同様に数は少ないものの色スキームも利用できるし、プラグインもいろいろある。この辺りの実装はとてもテキスト・エディタにそっくり:

gtranslator-08-20090125.png
gtranslator-09-20090125.png
gtranslator-10-20090125.png

という感じだけど、やっぱり po-mode on Emacs が一番だったりして :P:

gtranslator-11-20090125.png

この開発版リリース、プラグインをビルド中にリンクエラーが起ったらこんなパッチが役に立つかもしれない。

New ja.po for Desktop Notification Daemon.

3月リリース予定の G26 で新たにモジュールとして追加された libnotify & notification-daemon だけれど、最新版には G-C-C のアプレットが追加された:
デスクトップ・メニュー

notification-daemon-01-20090125.png

設定ダイアログ

notification-daemon-02-20090125.png

プレビューの例

notification-daemon-03-20090125.png

ということで新たに (とはいっても 0.3.x 系から個人的に翻訳していたものをベースに) ja.po を作成し upstream の作者に送付しておいた。