Apostrophe no se traduce correctamente cuando se coloca en un paquete de recursos.
key = {0}'s brush is {1} centimeters tall
(e.g. Sam's brush is 4 centimeters tall)
El apóstrofe se pierde si formateo la clave anterior desde un java.util.ResourceBundle
¿Cuál podría ser el problema aquí?
java
resourcebundle
usuario339108
fuente
fuente
Respuestas:
Debes escapar de la comilla simple como
key = {0}''s brush is {1} centimeters tall
fuente
Creo firmemente que el problema no es el paquete de recursos, sino el MessageFormater que usa para imprimir el mensaje:
Desde MessageFormater java doc :
Entonces necesitas escribir:
{0}''s brush is {1} centimeters tall
fuente
Mira el javadoc aquí
fuente
Debe escribir comillas simples dobles, es decir, el pincel de {0} '' mide {1} centímetros de alto.
fuente
Agregando a la respuesta de @ Ralph: te darás cuenta de que esto es
MessageFormat
algo cuando tienes un mensaje de texto comotext1=It's too late
versus
text2={0}''s too late
text1
probablemente no se ejecutaría a través de MessageFormater (por ejemplo, spring tiene diferentes rutas de código si se pasan argumentos o no), mientras quetext2
sí. Por lo tanto, si usó dos comillas simplestext1
, es posible que se muestren como tales. Por lo tanto, deberá verificar si algún argumento se formatea o no y usar una o dos comillas simples en consecuencia.fuente
Si está completamente atascado, como yo (nada de lo anterior funcionó), puede reemplazar el signo de apóstrofo con su Unicode: \ u0027. Recuerde que siempre puede usar el símbolo UTF en su archivo de propiedades.
fuente
Considere usar el complemento Editor de propiedades (para Eclipse)
http://propedit.sourceforge.jp/index_en.html
fuente
Para todos los que tengan problemas de Android en el string.xml, use \ '\' en lugar de comillas simples.
fuente