¿Debo usar java.text.MessageFormat para mensajes localizados sin marcadores de posición?

Estamos localizando el texto de la interfaz de usuario para una aplicación web que se ejecuta en Java 5, y tenemos un dilema sobre cómo enviamos mensajes que se definen en archivos de propiedades, el tipo utilizado porjava.util.Properties.

Algunos mensajes incluyen un marcador de posición que se completará usandojava.text.MessageFormat. Por ejemplo:

search.summary = Your search for {0} found {1} items.

MessageFormat es molesto, porque una comilla simple es un carácter especial, a pesar de ser común en el texto en inglés. Tiene que escribir dos para una comilla simple literal:

warning.item = This item''s {0} is not valid.

Sin embargo, tres cuartos de los aproximadamente 1000 mensajes de la aplicación no incluyen un marcador de posición. Esto significa que podemos generarlos directamente, evitando MessageFormat, y dejar solo las comillas simples:

help.url = The web page's URL

Pregunta: ¿deberíamos usar MessageFormat para todos los mensajes, para una sintaxis coherente, o evitar MessageFormat donde podamos, para que la mayoría de los mensajes no necesiten escapar?

Hay claramente ventajas y desventajas de cualquier manera.

Tenga en cuenta que la documentación de la API para MessageFormat reconoce el problema y sugiere una falta de solución:

Desafortunadamente, las reglas para usar comillas dentro de los patrones de formato de mensajes han demostrado ser algo confusas. En particular, no siempre es obvio para los localizadores si las comillas simples deben duplicarse o no. Asegúrese de informar a los localizadores sobre las reglas y dígales (por ejemplo, mediante el uso de comentarios en los archivos fuente del paquete de recursos) qué cadenas procesará MessageFormat.