SWAT I18N 概要 付け足した機能(実行時に言語の切り替え-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での文字コードの扱い パラメータ名やメッセージをどう訳すか。 何らかのポリシーが必要では? 画面のレイアウトは?日本語、英語パラメータ併記で良いのか? swat/sambaでの文字コードの扱い 内部はdosコード(sjis)。smb.confの文字コードは codingsystem=で決まる。 読み取りはこの扱いに応じて適正に文字コードが変換される。 swatからの書き込みには文字コード変換にバグがいくつもあり現在は出来ない(現在修正中)。
問題点(3) swat/sambaでの文字コードの扱い(その2) デバッグ方法がよく分からない。 (特定の文字コードで起きる問題について) デバッグ方法がよく分からない。 (特定の文字コードで起きる問題について) codingsystem=はsjis,euc,jisなど日本語のコードしかサポートしていないが、将来的にはもっと大変になるかもしれない。
今後は? とりあえずgettext/catgetsを使ってsjis,eucをサポートし、 自由に読み書きできるようにする。 文字コードの扱いはi18nの範囲でもまだまだ統一的で一般的なものにする必要がある。(内部/外部の厳密な変換) これにあわせてメッセージ変換のライブラリも考えたい。 日本語以外の外国語のサポート (特にマルチバイト文字)が出来るか? ドキュメント翻訳との連携(画面の用語を合わせるなど)