MessageFormat の問題を報告します。
不明なフォーマットタイプ
MessageFormat は以下のフォーマットタイプのみをサポートします。
引用符が対になっていない
property.key=Shouldn't happen: {0}
シングルクォートはプロパティの末尾までのエスケープとして解釈され、結果の文字列に表示されません。 多くの場合、これは意図的ではありません。 シングルクォートを結果の文字列に表示する必要がある場合、プロパティ内で重複させる必要があります。
波括弧が一致しない
各プレースホルダーには右波括弧が必要です。
引用符が多すぎる
場合によっては、結果の文字列に 1 つの引用符のみを表示する必要があります (例: it's)。
結果の文字列内で 2 つ以上の引用符が続けて記述されている場合は報告されます。
ネストした ChoiceFormat の下限が不正である
下限は数値であり、昇順に並べ替えられる必要があります。
パラメーターを囲む引用符の数が不正である
java.text.MessageFormat パターンでは、シングルクォートはエスケープに使用されます。
引用符が見える状態を維持するには、引用符を重複させる必要があります。
たとえば、1 を渡す場合は次のようになります。
'{0}' → {0}''{0}'' → '1'
choice フォーマットを使用する場合、ネストしたフォーマットはフォーマット文字列そのものとして評価されるため、引用符を 2 回重複させる必要があります。
たとえば、1 を渡す場合は次のようになります。
{0, choice, 0#no|#1''{0}'' files} → {0} files{0, choice, 0#no|#1''''{0}'''' files} → '1' filesメモ
プロパティ値は、リテラルテキスト {0}、{0,、{1} または {1, が含まれる場合にのみ検証されます。
この検証は、これらのプロパティ値が MessageFormat パターンとして実際に使用されていることを確認するために行われます。
2023.2 の新機能です