私が現在行っているプロジェクトでは、特別なフォーマットの文字列をサードパーティのサービスに送って処理する必要があります。そして私はそうのような文字列を構築しています:フォーマット文字列をリソースに格納する必要がありますか?
string someString = string.Format("{0}{1}{2}: Some message. Some percentage: {3}%", token1, token2, token3, number);
むしろその後、私はプロジェクトのリソースにそれを移動することを考えていた文字列をハードコード:
string someString = string.Format(Properties.Resources.SomeString, token1, token2, token3, number);
目のオプションは、私の意見であります最初のものと同じように読みやすいものではありません。すなわち、コードを読んでいる人は、最終結果がどのように見えるかを調べるために文字列リソースをプルアップする必要があります。
どうすればこの問題を回避できますか?この場合、ハードコードされた書式文字列は必要不可欠ですか?
をuseingてる途中で私を毎回
を動的にメッセージを与えたか
見ることができますリソースファイルにパラメータが何であるかを説明するコメントを追加します。ファイルが翻訳に移行した場合、これはローカライザーにとって非常に便利です。 –
@ CodeMonkey:合意しました。できるだけローカライゼーションエンジニアの人生を楽にしてください。翻訳の推測を望まない。 –
@MichaelPetrotta>これらの{0}文字列が不要になるように、コードをどのように安定させますか?私は個人的に 'string.Format'を使わないことを考えていますが、' 'begin {middle} end" .Replace( "{middle}"、middle) 'を使います。このアプローチには独自の問題があります... – Laoujin