- 追加された行はこの色です。
- 削除された行はこの色です。
[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
-[[戻る>アプリケーション設計のポイント]]
*目次 [#s1a14a59]
#contents
*概要 [#t2436305]
リソース ファイルではなく、国際化(多言語化)辞書テーブルを用いてプログラムでコントロールの表示を国際化(多言語化)することもできる。
*設計 [#g694e1c1]
国際化(多言語化)辞書テーブルを下記のように設計すると良い。
国際化(多言語化)の実装は、”Open棟梁”の各レイヤの「[[ベースクラス2]]」(画面コード親クラス2)上に共通処理として実装できる(画面内のコントロールを再帰的に処理する)。これにより、開発技術に左右されずに同じ方式で国際化(多言語化)対応が可能になる。
多言語化辞書テーブルの説明
|ID|画面名|コントロール名|日本語|英語|中国語|・・・|
|1|xxx||あああ|aaa|亜亜亜|・・・|
|2|xxx|yyyy|いいい|iii|威威威|・・・|
|3|yyy||えええ|eee|獲獲獲|・・・|
|4|yyy|zzzz|かかか|kkk|華華華|・・・|
*DB [#yf989f80]
スタンドアロンのアプリケーションの場合は、DBとして以下の利用も考えられる。
**SQL Compact 、SQL Server Express(共に無償)、 [#naecfa85]
-極小SQL Server Compactでデータベース・アプリをお手軽作成 - @IT~
http://www.atmarkit.co.jp/fdotnet/joyofprogram/20080701devssce/devssce_01.html
-Windows デスクトップ用 Microsoft SQL Server Compact 3.5 Service Pack 2~
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24
-ダウンロード詳細 Microsoft® SQL Server® 2008 R2 SP1 - Express Edition~
http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=ff38db3d-b0fb-4dad-bcd4-e9a4c509b017
**XML [#j78df3cf]
-DataTable.WriteXmlメソッドを使用して、XMLにデータを保存。
-DataTable.ReadXmlメソッドを使用して、DataTableをロード、
-DataTable.Selectメソッドを使えばDBレスでも実装可能である。
-DataTableからレコードを抽出するサンプル~
http://asp35.com/adoDataSet/Chapter2/ch2-09.aspx
*国際化(多言語化)する方法 [#y135b8cb]
国際化(多言語化)辞書テーブルをしてコントロールのキャプションを国際化(多言語化)する方式を以下に示す。
**Form上のコントロールを再帰処理する。 [#ce4d6cc8]
+画面表示時に画面名をキーにして、国際化(多言語化)辞書テーブルの結果セットを取得する。
+Control.HasControlsメソッド & Controlsプロパティの再起処理により画面上のコントロールを取得する。
+コントロールのID(名前)を取得し、結果セットから対応する国際化(多言語化)辞書レコードを取得。
+上記の国際化(多言語化)辞書レコードから、必要に応じてコントロールのプロパティ(画面に出力する情報)を変更する。