Como lidar com aspas simples em constantes de internacionalização?
efinimos todas as nossas cadeias constantes internacionalizadas em um único arquivo de propriedadeLocalizableResource_xx.properties
(um por idioma) localizado emgoogle.gwt.i18n.client
.
Desta forma, é possível acessar as constantes no código Java através da interface de constantes
Window.alert(myConstants.helloWorld());
e também para usá-los dentro do UiBinder.ui.xml
<ui:attribute key="some.key" name="text" description="useful info" />
Esta abordagem não funciona bem se a string contiver uma aspas simples '
). Isso ocorre porque o compilador GWT lança umjava.text.ParseException: Unterminated single quote:
quando processa o.ui.xml
arquivos. Se escaparmos da citação, o que significa duplicá-la ''
), o compilador passa, mas as strings acessadas pela interface constante contêm ambas as aspas simples (como emYou can''t do that
).
Substituir as aspas simples com a codificação utf-8 \ u0027 não ajuda (mesma exceção que acima
e alguma forma, é possível usar o mesmo arquivo de propriedades nos modelos do UiBinder e no código Java sem ter problemas irritantes de aspas simple