O apóstrofo não é traduzido corretamente quando colocado em um pacote de recursos.
key = {0}'s brush is {1} centimeters tall
(e.g. Sam's brush is 4 centimeters tall)
O apóstrofo passa despercebido se eu formatar a chave acima de um java.util.ResourceBundle
Qual poderia ser o problema aqui?
java
resourcebundle
user339108
fonte
fonte
Respostas:
Você deve escapar da aspa simples como
fonte
Acredito fortemente que o problema não é o pacote de recursos, mas o MessageFormater que você usa para imprimir a mensagem:
Do documento java MessageFormater :
Então você precisa escrever:
fonte
Olhe para o javadoc aqui
fonte
Você precisa fazer aspas simples, ou seja, o pincel de {0} tem {1} centímetros de altura
fonte
Adicionando à resposta de @Ralph: Você vai perceber que isso é uma
MessageFormat
coisa quando você tem um texto comoversus
text1
provavelmente não seria executado por meio de um MessageFormater (por exemplo, spring tem caminhos de código diferentes se os argumentos são passados ou não), mastext2
sim. Portanto, se você usou duas aspas simplestext1
, elas podem / serão exibidas como tal. Portanto, você precisará verificar se algum argumento foi formatado ou não e usar uma ou duas aspas simples de acordo.fonte
Se você estiver completamente preso, como eu estava (nenhuma das opções acima funcionou), você pode substituir o sinal de apóstrofo por seu Unicode: \ u0027. Lembre-se de que você sempre tem permissão para usar o símbolo UTF em seu arquivo de propriedades.
fonte
Considere usar o plugin do Editor de Propriedades (para Eclipse)
http://propedit.sourceforge.jp/index_en.html
fonte
Para todos que têm problemas com Android no string.xml, use \ '\' em vez de aspas simples.
fonte