質問

私たちは、

フォーマット.e.gが含まれている私たちのリソースファイル内の文字列の多くを持っています
  

「{0}、{1}に移動しました」

これらの文字列は、そのため私は、内のすべての文字列かどうかをチェックツールを書く/見つけたい「フォーマットマーカー」時々翻訳者の混乱、アプリケーションによってのString.Formatの()のに渡されリソースファイルには、有効な形式を持っています。

私は、同様の検証に送り込むことができるようにString.Formatのに渡される引数の各キー番号を知っています。

だから、離れて「{」一致「}」ことを確認のフォーマット文字列で、ほとんどのエラーを見つけるための簡単な方法がありますか?

(私は.NETを使用しています、このチェックはもちろん、ビルドプロセスの一環として行われます)。

役に立ちましたか?

解決 3

私は合理的な結果を与える簡単な解決策が出ている、私はFORMAT文ではなく、引数の型に引数の数を知っています。しかし、ほとんどの引数は文字列です。

だから、

if (numberOfArguments == 3)
{
  try
  {
    String.Format(theTranslatorString, "", "", "")
  }
  catch
  {
     // tell the translator there is a problem with the string format
  }
}

もちろん、これは現実の生活の中で引数の数ごとの「if」なしに書き込まれます。

他のヒント

これは古典的なユニット・テストシナリオのように聞こえます。あなたはこれらのトリガをコミットし、ソースコードオフ自動ビルド/ユニットテストをドライブすることはできますか?ユニットテストは、単に、各書式文字列がまだ解析可能であることを確認します。

あなたが式の中で文字列を検証するようにあなたが に正規表現を使用する必要がありますので、

これは、見えます リンクテキスト

を見てください
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top