Devo usar java.text.MessageFormat para mensagens localizadas sem espaços reservados?

Estamos localizando o texto da interface do usuário para um aplicativo Web executado no Java 5 e temos um dilema sobre como produzimos mensagens definidas em arquivos de propriedades - o tipo usado porjava.util.Properties.

Algumas mensagens incluem um espaço reservado que será preenchido usandojava.text.MessageFormat. Por exemplo:

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

MessageFormat é irritante, porque uma única citação é um caractere especial, apesar de ser comum no texto em inglês. Você precisa digitar dois para uma aspas simples literal:

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

No entanto, três quartos das aproximadamente 1000 mensagens do aplicativo não incluem um espaço reservado. Isso significa que podemos produzi-los diretamente, evitando MessageFormat, e deixar as aspas simples sozinhas:

help.url = The web page's URL

Pergunta, questão: devemos usar o MessageFormat para todas as mensagens, para obter uma sintaxe consistente ou evitar o MessageFormat onde pudermos, para que a maioria das mensagens não precise escapar?

Há claramente prós e contras de qualquer maneira.

Observe que a documentação da API para MessageFormat reconhece o problema e sugere uma não solução:

Infelizmente, as regras para o uso de aspas nos padrões de formato de mensagem mostraram-se um pouco confusas. Em particular, nem sempre é óbvio para os localizadores se aspas simples precisam ser duplicadas ou não. Certifique-se de informar os localizadores sobre as regras e diga-lhes (por exemplo, usando comentários nos arquivos de origem do pacote de recursos) quais seqüências de caracteres serão processadas pelo MessageFormat.

questionAnswers(5)

yourAnswerToTheQuestion