11

ローカリゼーションについて少し心配しなければならない製品に取り組んでいます。現在、ローカライズされた文字列を使用 (または追加) する必要がある場合のワークフローは次のとおりです。

  1. resources.resx ファイルを検索します (数百のアイテムが含まれています)。
  2. 見つかった場合は、名前をコピーします。それ以外の場合は、新しい文字列を追加して名前をコピーします
  3. 次に、使用しますResourceFactory.ResourceMgr.GetString("MY_MAGIC_STRING")(ここでResourceMgr、ResourceManager への静的フィールドにすぎません)。

どの弦に対しても、この 3 ステップのプロセスは本当に大変です。このプロセスを簡単にするパターンや方法はありますか?

4

2 に答える 2

5

個々の文字列にアクセスできる自動生成ファイルの方がはるかに使いやすく、RESXファイルの「カスタムツール」をに設定しますPublicResXFileCodeGenerator

コードは次のようになります。

using MyProject.Resources;
...
localizedText = Resources.SomeReasonableName;

サイドノート:

  • 自動生成されたIDとともに複数のRESXファイルがあると、インテリセンスの追加の利点があり、妥当な数の選択肢が得られます。
  • 翻訳の処理方法によっては、RESXファイル内のテキストの重複を気にしない方がよい場合があります(OK /キャンセルの種類の文字列を除く)。翻訳時に重複した文字列を処理する方が簡単な場合があります。
于 2013-01-14T17:32:37.553 に答える
0

あなたにいくつかのアイデアを与えるかもしれないこの Java ソリューションがあります: http://rodionmoiseev.github.com/c10n/

アイデアは、インターフェイス メソッドの注釈を使用して、ソース コード自体に翻訳を格納することです。次に、特別なユーティリティを使用して、インターフェイス メソッドの呼び出し時にローカライズされた文字列値を返すプロキシ (インターフェイスを動的に実装するクラス) を動的に作成できます。

このように、メソッド"MY_MAGIC_STRING"の呼び出しに置き換えられMyMagicString()ます。これにより、スペル/タイプの安全性が確保され、リファクタリングしやすくなります。

于 2013-01-15T14:42:52.657 に答える