Apóstrofe no consigue traducido correctamente cuando se coloca en un paquete de recursos
-
10-10-2019 - |
Pregunta
apóstrofe no sean traducidas 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 perdió si puedo dar formato a la clave anterior de un java.util.ResourceBundle
Cuál podría ser el problema aquí?
Solución
Se debe escapar la comilla simple como
key = {0}''s brush is {1} centimeters tall
Otros consejos
Me creer firmemente que el problema no es el paquete ressource pero el MessageFormater utiliza para imprimir el mensaje:
dentro de una cadena, '' ( dos comillas simples ) representa una una frase. Una lata QuotedString contener caracteres arbitrarios, excepto comillas simples; la única que rodea cotizaciones se eliminan. un UnquotedString puede contener caracteres arbitrarios excepto comillas simples e izquierda rizado soportes. Por lo tanto, una cadena que debe como resultado el mensaje formateado '{0}' puede escribirse como '' '{' 0} '' o '' '{0}' ''.
Así que hay que escribir:
{0}''s brush is {1} centimeters tall
Mire la javadoc aquí
dentro de una cadena, " ''" representa una una frase. Una lata QuotedString contener caracteres arbitrarios, excepto comillas simples; la única que rodea cotizaciones se eliminan. un UnquotedString puede contener caracteres arbitrarios excepto comillas simples e izquierda rizado soportes. Por lo tanto, una cadena que debe como resultado el mensaje formateado " '{0}'" se puede escribir como " '' '{' 0} ''" o " '' '{0}' ''".
Es necesario duplicar comilla simple es decir, {0} '' s cepillo es {1} centímetros de altura
Adición a @ respuesta de Ralph:
Se dará cuenta de que esto es una cosa MessageFormat
cuando se tiene un texto como
text1=It's too late
frente
text2={0}''s too late
text1
probablemente no correr a través de un MessageFormater (por ejemplo resorte tiene diferentes rutas de código si se pasan argumentos o no), mientras que text2
haría.
Así que si utilizó dos comillas simples en text1
, pueden / se mostrará como tal. Por lo que tendrá que comprobar si los argumentos consiguen formateados o no y el uso de uno o dos comillas simples en consecuencia.
Si no está completamente atascado, ya que estaba (ninguna de las anteriores trabajado), puede reemplazar el signo apóstrofe con su Unicode: \ u0027. Recuerde que siempre se permite el uso de símbolos UTF en el archivo de propiedades.
Considere el uso de plug-in editor de propiedades (para Eclipse)
Para todos los que tienen problemas de Android en el string.xml, use \ '\' en lugar de comilla simple.