Run Java's MessageFormat to see if the specified string gets formatted correctly.
MessageFormat info
Infinitode 2 uses localization features of LibGDX but is also able to include strings into other strings with [@other_string_alias] and icon textures with <@texture-name>
Things it can't do:
Tags explained:
Each format tag is encapsulated into {} and the first thing inside of it is a digit from 0 to 9, which is basically a name of a variable (actually it is called an index of an argument but whatever).
For example, if we take a string "Tower deals {0} damage and costs {1} coins", the game will replace {0} with some damage number and {1} with the cost of the tower. If we swap those tags, the resulting string will no longer make a sense, so it is important to pay attention to what each variable means.
Note: variable {0} is used in the list below but it can be anything like {1}/{4}... too.