70 likes | 248 Views
SWAT I18N. 概要 swat は cgi タイプのプログラム。 web ブラウザから入力しサーバの smb.conf に書きこむ。 swat の国際化を目指す。 付け足した機能 ( 実行時に言語の切り替え -i18n の範囲で ) 問題点 ( 細かい技術的問題、根本的問題 ) 今後. 付け足した機能 (1). HTTP の ACCEPT-LANGUAGE ヘッダを読む部分を付け足した。 HTTP の言語ネゴシエーション IE, Netscape, w3m, lynx など、対応ブラウザは多い。 英語 / 日本語の切り替えも容易。
E N D
SWAT I18N • 概要 • swatはcgiタイプのプログラム。webブラウザから入力しサーバのsmb.confに書きこむ。 • swatの国際化を目指す。 • 付け足した機能(実行時に言語の切り替え-i18nの範囲で) • 問題点(細かい技術的問題、根本的問題) • 今後
付け足した機能(1) • HTTP の ACCEPT-LANGUAGE ヘッダを読む部分を付け足した。 • HTTP の言語ネゴシエーション • IE, Netscape, w3m, lynxなど、対応ブラウザは多い。 • 英語/日本語の切り替えも容易。 • cookieやメニューを使った切り替えをサポートするべきか。
付け足した機能(2) • gettextを使ってメッセージを切り替えられるようにした。 • プログラミングは容易。すでにgnomeなどで使われて移植性なども実績がある。 • gettextそのものの簡単な説明。printf(“hello, world.\n”); => printf(gettext(“hello, world.\n”)); • ACCEPT-LANGUAGEヘッダからlocaleの変換。
問題点(1) • catgets互換機能も使えるようになるはずだが、sjisのメッセージカタログの生成が今うまく行ってない。 • gettextがなくてもcatgetsはあるシステムは多い。 • 現在euc/sjisどちらでも動くようにswatを改良中。 • gettextを使ったためswatのあるサーバでサポートされるlocaleの言語でないと使えない。(webブラウザを使ってるにもかかわらず) • 自分でgettext風ライブラリを作るべきだったか? (移植性の問題、バグを作りこんじゃう)
問題点(2) • データの問題 • パラメータ名やメッセージをどう訳すか。 何らかのポリシーが必要では? • 画面のレイアウトは?日本語、英語パラメータ併記で良いのか? • swat/sambaでの文字コードの扱い • 内部はdosコード(sjis)。smb.confの文字コードは codingsystem=で決まる。 • 読み取りはこの扱いに応じて適正に文字コードが変換される。 • swatからの書き込みには文字コード変換にバグがいくつもあり現在は出来ない(現在修正中)。
問題点(3) • swat/sambaでの文字コードの扱い(その2) • デバッグ方法がよく分からない。(特定の文字コードで起きる問題について) • codingsystem=はsjis,euc,jisなど日本語のコードしかサポートしていないが、将来的にはもっと大変になるかもしれない。
今後は? • とりあえずgettext/catgetsを使ってsjis,eucをサポートし、 自由に読み書きできるようにする。 • 文字コードの扱いはi18nの範囲でもまだまだ統一的で一般的なものにする必要がある。(内部/外部の厳密な変換) これにあわせてメッセージ変換のライブラリも考えたい。 • 日本語以外の外国語のサポート (特にマルチバイト文字)が出来るか? • ドキュメント翻訳との連携(画面の用語を合わせるなど)