Definimos todas nuestras cadenas constantes internacionalizadas en un solo archivo de propiedades LocalizableResource_xx.properties
(una por idioma) ubicado en google.gwt.i18n.client
.¿Cómo manejar las comillas simples en las constantes de internacionalización?
De esta manera es posible acceder a las constantes en el código Java a través de la interfaz de constantes
Window.alert(myConstants.helloWorld());
, así como para usarlos dentro de la UiBinder .ui.xml
<ui:attribute key="some.key" name="text" description="useful info" />
Este enfoque no funciona bien si la cadena contiene una comilla simple ('
). Esto se debe a que el compilador GWT arroja un java.text.ParseException: Unterminated single quote:
cuando procesa los archivos .ui.xml
. Si escapamos de la cita, es decir, duplicarla (''
), el compilador pasa pero las cadenas accedidas a través de la interfaz constante contienen ambas comillas simples (como en You can''t do that
).
Reemplazar las comillas simples con la codificación utf-8 \ u0027 no ayuda (la misma excepción que en el ejemplo anterior).
¿Es de alguna manera posible utilizar el mismo archivo de propiedades en las plantillas de UiBinder y en el código de Java sin toparse con molestos problemas de comillas simples?
Ha intentado escapar de esta manera: \ '? –
(Solo como referencia: El Javadoc para ['java.util.Properties.load (Reader)'] (http://download.oracle.com/javase/6/docs/api/java/util/Properties.html# load (java.io.Reader)) dice: "Los escapes no son necesarios para comillas simples o dobles, sin embargo, según la regla anterior, los caracteres de comillas simples y dobles precedidos por una barra diagonal inversa aún producen caracteres de comillas simples y dobles, respectivamente.") –
@ Paweł Dyda: Sí, lo he intentado, pero la 'java.text.ParseException' aún se ha producido. – z00bs