Bonjour,
Je veux internationaliser mon application GWT mais j'ai l'impression de me retrouver face à un mur.
Après avoir lu et tenter d'appliquer ceci :
http://projectpossibility.org/projec...alization.html
http://code.google.com/p/google-web-...ingStartedI18n
Je n'arrive pas à faire fonctionner ma pauvre classe dynamique d'internationalisation :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| package fr.societe.projet.i18n;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Messages implements com.google.gwt.i18n.client.Messages {
private static final String BUNDLE_NAME = "fr.societe.projet.i18n.messages"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Messages() {
}
public String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
}
catch (MissingResourceException e) {
return '!' + key + '!';
}
}
} |
Avec le fichier messages.properties dans le même package :
Dans le XML GWT, on trouve bien :
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='monmodule'>
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.user.theme.chrome.Chrome'/>
<entry-point class='fr.societe.projet.client.MonModule'/>
<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="fr"/>
<set-property name="locale" value="fr" />
</module> |
Et dans ma classe de démarrage :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| package fr.societe.projet.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import fr.societe.projet.i18n.Messages;
public class MonModule implements EntryPoint {
public void onModuleLoad() {
Label labelTest = new Label();
// Technique 1
Messages messages = GWT.create(Messages.class);
labelTest.setText(messages.getString("label.test"));
// Technique 2
labelTest.setText(Messages.getString("label.test"));
RootPanel.get().add(labelTest);
}
} |
Technique 3 :
Et dans mon XML GWT principal, j'ai ajouté la ligne :
<entry-point class='fr.societe.projet.i18n.Messages'/>
Technique 4 :
Dans mon package fr.societe.projet.i18n, j'ai rajouté le fichier Messages.gwt.xml avec le contenu suivant :
1 2 3 4 5 6
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module>
<inherits name="com.google.gwt.user.User" />
<entry-point class='fr.societe.projet.i18n.Messages'/>
</module> |
Et dans mon XML GWT principal, j'ai remplacé com.google.gwt.i18n.I18N par fr.scoiete.projet.i18n.Messages.
Résultat :
Et malgré toutes ces techniques, j'ai toujours l'erreur :
[ERROR] Line XX: No source code is available for type fr.societe.projet.i18n.Messages; did you forget to inherit a required module?
J'ai loupé un truc ?
Partager