現在、いくつかの言語で使用されるインターフェイスの GUI の作成に取り組んでいます。
私が取り組んでいる環境は、Unity 4.2 with Mono C# です。アプリケーションは、プラットフォーム間の互換性を維持する必要があります (Web、iOS、Linux、Windows を含む)。
私が達成しようとしているのは、複数の言語を処理する優れた方法であり、追加の言語または追加のフィールドを簡単に追加できるようにすることです。Ruby または Python で作業していた場合、これはまともな解決策になると思います。
class RegionalDB:
def __init__(self):
# Maybe connect to a data source such as a db, or files
def set_language(self, lang):
# Verify we have this lang, error if not
# Set an attribute on self for every field entry in this language
text = RegionalDB()
text.set_language('de')
print text.exit_button
上記の方法により、実行時にメンバーを動的に割り当てることができる Python オブジェクトの強力な機能を使用できるようになります。上記のコードは、データ ソースの「exit_button」フィールドにあるテキストをドイツ語で出力します。Ruby でも同様のことができます。または、メモリ内のすべての変数を一度にオブジェクトに割り当てる代わりに、attribute_missing 関数を使用してデータ ソースを直接クエリすることもできます。
残念ながら、C# の Reflection コードは、上記のスクリプトほど洗練されていません。だから私の問題は次のとおりです。
- コンパイルされた厳密に型指定された言語で、エレガントで保守可能な地域化ツールを作成します。
- Unityを使用して効果的な方法で言語のデータを保存する
問題 1 については、設計パターン、または正直なところ多くの情報を見つけることができませんでした。
問題 2. Unity エディター プログラミングで解決できると思いますが、このトピックにはあまり触れておらず、提案を受け付けています。
質問形式で。
- 地域化のためにC#でうまく機能する設計パターンを知っている人はいますか
- Unity エディターのインターフェイス/ストレージ メカニズムを前進させるための提案
ありがとう。
PS 実行時に言語を変更できる必要があります