Why does ICE03 state my localized template string is invalid?


When I run ICE validation, why does ICE03 state the following error?

ICE03 ERROR Invalid template string; Table: Error, Column: Message, Key(s): 1958

The string reads,

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [いいえ] を選択するとインストールは終了します。


This ICE error can appear in several columns in several tables that use the Formatted column type or a derivative, like the Template column type used by the Message column of the Error table shown above. Formatted column types allow properties to be inserted between square brackets while the Template column type additionally allows field numbers to be inserted between square brackets. But because properties are of the Identifier column type which allows only alphanumeric ASCII characters, the period (.), and underscores (_), unsupported characters cannot appear between square brackets in a Formatted column type or its derivative.

Take a closer look at the highlighted substring below,

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [いいえ] を選択するとインストールは終了します。

Since that is not a valid property identifier, ICE03 pumps an error message to the validation message handler because it knows from the _Validation table that the containing column is a Formatted column.

To resolve this issue, escape the square brackets using [[] in place of [ and []] in place of ] as shown below.

ユーザー [2] の特権が不十分です。必要な特権をユーザーに付与してインストールを続行しますか? [[]いいえ[]] を選択するとインストールは終了します。