私の知る限り、.NETのリソースファイルを使用してローカライズされた文字列の動的データを処理する最適な方法は、resources.resxファイルにローカライズされた文字列を含めることですその中のプレースホルダ:Lorem {0} ipsum。とコード内で、このように処理します:string.Format(Resources.My_Localized_Key, myValue);
。リソースファイル、string.Formatと.NET内のプレースホルダ
私の懸念は、次のとおりです。
1 /どのようにプレースホルダは、実際の値に置き換えられますことを確認しますか?たとえば、チームの新しい開発者は、このローカライズされた文字列を書いている新しいコードで使用する必要があるかもしれませんが、データを入力する必要があることは認識していません。どのような種類のデータでもない。
2 /後で何らかの理由でローカライズされた文字列がLorem {0} ipsum {1}に変わります。、アプリケーション全体でこの文字列のすべての使用が更新されるようにするにはどうすればよいですか?
これを処理する方法はありますか?たとえば、リフレクションを使用することなく、またはローカライズされた文字列の内容を解析することなく、厳密に型付けされた方法でこれらのプレースホルダを処理する方法...?それともそれを行う方法ですか?
この新しい開発者は、このメッセージを最初に使用する方法をどのように知っていますか?既存のコードを見つけたり(すでに 'Format'でそれをラップしているか、リソースをブラウズしています(この場合、彼はメッセージを読んで' {0} 'プレースホルダを見ます)。 –
それは本当ですが、おそらく私にとって最も重要な第2のポイントはまだ有効です。そうすることでプレースホルダの集計が強制されません。 – Guillaume