2009-12-03 5 views
1

J'essaie d'internationaliser une application de test avec GWT following the instruction et j'ai:GWT Internationalisation lève une exception en reconsolidation

com.example.client.MyConstants.java 
com.example.client.MyConstants_en.properties 
com.example.client.MyConstants_fr.properties 
com.example.client.MyAppEntryPoint.java 

Dans ce code que j'ai:

public interface MyConstants extends Constants 
{ 
     @DefaultStringValue("HelloWorld") 
     String hellowWorld(); 
} 

Et

public class MyAppEntryPoint implements EntryPoint 
{ 
    public void onModuleLoad() 
    { 
     MyConstants constants = GWT.create(MyConstants.class); 

     VerticalPanel mainPanel = new VerticalPanel(); 
     mainPanel.add(new Label(constants.hellowWorld())); 
     RootPanel.get("myContainer").add(mainPanel); 
    } 
} 

Pour MyApp.gwt.xml J'ai:

<module rename-to="myModule"> 
    <inherits name="com.google.gwt.xml.XML" /> 
     <inherits name="com.google.gwt.i18n.I18N"/> 

    <inherits name='com.google.gwt.user.theme.standard.Standard'/> 

    <!-- Specify the app entry point class.       --> 
    <entry-point class='com.example.client.MyAppEntryPoint'/> 

    <extend-property name="locale" values="en,fr"/> 
</module> 

Dans le html j'ai:

...

Tout semble fonctionner aussi longtemps que je ne comprends pas dans le fichier xml. Dès que je fais, je reçois l'exception suivante:

[ERROR] Generator 'com.google.gwt.i18n.rebind.LocalizableGenerator' threw threw an exception while rebinding 'com.example.client.myConstants' 
java.lang.NullPointerException: null 
... 

Toute aide serait grandement apprécié pourquoi il est jeter l'exception.

    -

Répondre

1

La réponse est que le nom du module doit être le même que le nom des propriétés. Donc, si j'utiliser:

<module rename-to="MyApp"> 

Ensuite, les fichiers de propriétés doivent être:

com.example.client.MyAppConstants.java 
com.example.client.MyApp_en.properties 
com.example.client.MyApp_fr.properties 

En d'autres termes, le nom du module doit être le même que les fichiers de propriétés.

0

Il pourrait être l'extension-propriété n'accepte pas plusieurs valeurs. Je pense que vous devriez écrire:

<extend-property name="locale" values="en"/> 
<extend-property name="locale" values="fr"/> 
+0

L'exemple de code GWT a "" –

0

Après avoir essayé différentes options je me suis dit, vous n'avez pas besoin « en option », je suppose parce que c'est la valeur par défaut donc vous avez besoin:

com.example.client.MyAppConstants.java (Interface) 
com.example.client.MyAppConstants.properties (Default) 
com.example.client.MyAppConstants_fr.properties (Other language) 

Espérons que cela aide le temps de quelqu'un d'autre.

Questions connexes