GNOMEと国際化
田郷 明 / Akira TAGOH
レッドハット株式会社 tagoh@redhat.com
日本GNOMEユーザ会 tagoh@gnome.gr.jp
(page 1)
国際化の必要性
- GNOMEユーザは各国に存在する
- native言語で使いたい
- GNOME標準でもnative言語が扱えない国では標準にはなり得ない
(page 2)
これまでの作業過程
- メニューやメッセージなどの翻訳
- 日本語に問題のあるアプリケーションなどの修正
- ヘルプなどを含むドキュメントの翻訳
(page 3)
これまでの問題点
- 翻訳
- アプリケーションなどの修正
- upstreamへマージされない(or しない)
- 新しくreleaseされる度にpatchを修正するのは不毛である
- 誰かがJapanese patchなどのメンテナンスをしなければならない
(page 4)
ローカライズと国際化の違い
言語固有の対処と言語に依存しない対処
- ローカライズ
- 日本では確実に利用できる
- 正常に動作していた言語では動かなくなることが多い
- 他の言語でも利用できないことが多い
- 国際化
- 日本でも利用できる
- 正常に動作していた言語でもそのまま利用できる
- 他の言語でも利用できる
(page 5)
国際化が必要な例(1)
- フォントの問題
- fontsetが必要なケースを全く考慮されていない
- gdk_fontset_load ()が使われてない
- gdk_fontset_load ()しか使われていない
- フォント名がコードに埋め込まれている
- 埋め込まれたencodingの範囲内の文字しか扱えない
- 独自にフォントの情報をもつ
(page 6)
国際化が必要な例(2)
- コードの書き方の問題
- マルチバイトを意識していない
- glyphの数が固定されている
- 行などの折返しの処理
- カーソルなどの処理
- BSやDELなどの処理
- XIMをサポートしていない
(page 7)
対処方法の例(1)
- fontsetの問題
- メニューなどのオプションで切替えられるようにする
- localeで判断する
(page 8)
対処方法の例(2)
- フォント名が埋め込まれている
- glyphの数が固定されている
- 行などの折返し処理
- カーソルなどの処理
- BSやDELなどの処理
(page 9)
対処方法の例(3)
- XIMをサポートしていない
- 正しく動作するようにコードを追加する
- 該当するwidgetを探す
- initialize/realize/unrealize/size allocate/focus in/focus out などのeventに処理を追加する
- 新しくclassを作った際にコードを書かずとも動作するようなframeworkを作る
(page 10)
gnome-printの場合?(1)
- 現状
- Type1フォントのもつ範囲のglyphしか表示/印刷できない
- gdk_font_load ()を使っているためマルチバイトは表示できない
- PostScriptプリンタが標準的に持つフォント以外はフォントを埋め込む
(page 11)
gnome-printの場合?(2)
- 解決策
- freetypeを利用することで他言語を表示させられる可能性を上げる
- 現状の内部的に持つフォントに関係する情報の形を維持する
- gdk_fontset_load ()が必要なケースを考慮する
(page 12)
gnome-print screenshot(1)
(page 13)
gnome-print screenshot(2)
Latin1
(page 14)
gnome-print screenshot(3)
日本語
(page 15)
gnome-print screenshot(5)
簡体字中国語
(page 16)
gnome-print screenshot(6)
繁体字中国語
(page 17)
gnome-print screenshot(7)
(page 18)
gnome-print screenshot(8)
Latin1
(page 19)
gnome-print screenshot(9)
日本語
(page 20)
gnome-print screenshot(10)
簡体字中国語
(page 21)
gnome-print screenshot(11)
繁体字中国語
(page 22)
gnome-print screenshot(12)
日本語
(page 23)
gnome-print screenshot(13)
簡体字中国語
(page 24)
gnome-print screenshot(14)
繁体字中国語
(page 25)
gnome-print 残りの問題点
- フォントの検索方法の見なおし
- XLFDのfamily nameとTrueTypeフォントのfamily nameが一致しなくてはならない
- デフォルトフォントを言語毎に用意できるようにする
(page 26)
どうしましょう?(1)
- 他の言語で本当に問題ないかをチェックする
- 修正が有用な言語が他にないか探してみる
- マルチバイト関係
- Korean
- Simplified Chinese
- Traditional Chinese
- パッチを作る
(page 27)
どうしましょう?(2)
- bugzillaへ登録する
- メーリングリストなどに報告してみる
- IRCなどで開発者を捕まえる
(page 28)
最近の動向
- 国際化への関心が高まっている
- UTF-8へ移行
- GTK+ 2.0/GNOME 2.0ではUTF-8が標準で使われる
- GNOME Aplication Library (GAL)
- GtkHTML
- gnome-print
(page 29)
おわり
(page 30)