多言語化、或いはローカライズ(壱)

 色々な言い方はあるけど、開発するアプリケーションで、表示したい言語に合わせて、画面に表示する文字(の言語)を切り替えられるようにする事を多言語化とか、ローカライズと言っている。自分の周りでは、多言語化の方かな。
自分で作り、自分だけが使うアプリケーションでは、不要な機能である。動作を遅くさせるだけのもの。でも、任意のユーザ、それも海外の人にも使ってもらおうと思った時には、必須の実装となる。というか、Windowsストアに公開するようなアプリだと、必須要件になっている。
Windows 8 アプリの認定の要件より引用。

6.5 サポートしているすべての言語でアプリをローカライズしなければならない
アプリでサポートできる言語は、Windows ストアの利用可能な言語だけです。また、サポートする少なくとも 1 つの言語が認定言語でなければなりません。アプリのエクスペリエンスは、サポートするどの言語でも同じように機能しなければなりません。
アプリのパッケージで宣言する各言語で、ユーザー向けにアプリの詳しい説明を提供する必要があります。 スクリーンショット、テキスト、プロモーション用の画像など、アプリを説明するその他の要素もローカライズする必要があります。ローカライズされたバージョンで特定の機能が使用できなくなるようにアプリをローカライズする場合は、アプリの説明の中にローカライズの制限を明確に記述、または表示する必要があります。

社内向けのアプリでも、ユーザ向けのアプリでも、使う人の中に日本語が通用しない人がいるのは、よくある事になってきたんだろう。
この多言語化に関する記事のリンクをメモっておく。
Windows 8アプリのローカライズ
多言語化対応を楽に行うには?[Win 8]
MetroTips #12 多言語化対応を楽に行うには?
Metro向けのアプリ開発環境では、上記のような感じで用意されている。では、Windows7以前は?というと、
Windowsフォームを多言語対応にするには?
というところか。

 仕事では、データベース内に管理される文字列リソース用テーブルから取得するという方法が採用されていた。
文字列(単語や文言)をコードをキーに管理し、各プロジェクトは、使用中の言事とコードを元に文字列をリソースとして取得する。
 これは、社内専用用語のような、アプリケーションの種類に関係なく使用する用語(文字列)を共有するという事が念頭に置かれている。それを各々のプロジェクトで定数定義してしまうと、変更対応が大変であり、且つリリースする必要も出てくる。そういう事をしなくて済ます為に、テーブルの値が持つ文字列を更新すれば、一斉に変更できる様にしてある。逆に「このアプリだけこの文言で表示したい」なんていう時には融通が効かなくなるんだけどね。
WPFでは、以下のサイトの記事を参考にMarkupという形で実装した。
Localization of a WPF application using a custom MarkupExtension
これだけでも十分に思えるんだけど、使っていくうちに、自分なりに(必要に迫られて)改造しつづけている。
続く
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m