Open棟梁 wiki
目次 †
概要 †
リソース ファイルではなく、国際化(多言語化)辞書テーブルを用いてプログラムでコントロールの表示を国際化(多言語化)することもできる。
設計 †
国際化(多言語化)辞書テーブルを下記のように設計すると良い。
ID | 画面名 | コントロール名 | 日本語 | 英語 | 中国語 | ・・・ |
1 | xxx | | あああ | aaa | 亜亜亜 | ・・・ |
2 | xxx | yyyy | いいい | iii | 威威威 | ・・・ |
3 | yyy | | えええ | eee | 獲獲獲 | ・・・ |
4 | yyy | zzzz | かかか | kkk | 華華華 | ・・・ |
テーブルのストレージ †
スタンドアロンのアプリケーションの場合は、DBとして以下の利用も考えられる。
SQL Compact 、SQL Server Express(共に無償)、 †
XMLファイル †
XmlDocument? †
実装も定義も面倒。
DataTable? †
- DataTable?.WriteXml?メソッドを使用して、XMLにデータを保存。
- DataTable?.ReadXml?メソッドを使用して、DataTable?をロード、
- DataTable?.Selectメソッドを使えばDBレスでも実装可能である。
国際化(多言語化)する方法 †
国際化(多言語化)辞書テーブルをしてコントロールのキャプションを国際化(多言語化)する方式を以下に示す。
Form上のコントロールを再帰処理する。 †
この実装は、”Open棟梁”の各レイヤの「ベースクラス2」(画面コード親クラス2)上に共通処理として実装できる(画面内のコントロールを再帰的に処理する)。
- 画面表示時に画面名をキーにして、国際化(多言語化)辞書テーブルの結果セットを取得する。
- Control.HasControls?メソッド & Controlsプロパティの再起処理により画面上のコントロールを取得する。
- コントロールのID(名前)を取得し、結果セットから対応する国際化(多言語化)辞書レコードを取得。
- 上記の国際化(多言語化)辞書レコードから、必要に応じてコントロールのプロパティ(画面に出力する情報)を変更する。
その他の方式 †