2010-06-10 5 views
7

J'ai développé une application GWT utilisant l'internationalisation i18n. En mode Host/Dev, cela fonctionne bien, mais le lancement de la compilation GWT donne cette erreur: Aucune ressource trouvée pour la clé xxx, comme ci-dessous.GWT 2.X Aucune ressource trouvée pour la clé

Compiling module ...rte.RTE 
    Scanning for additional dependencies: file:/home/.../client/i18n/RTEValidationMessages.java 
     Computing all possible rebind results for '...client.i18n.RTEMessages' 
     Rebinding ...client.i18n.RTEMessages 
      Invoking [email protected] 
       Processing interface ...client.i18n.RTEMessages 
        Generating method body for txtIndirizzo3() 
        [ERROR] No resource found for key 'txtIndirizzo3' 

Les messages sont chargés avec une liaison tardive.

public class RTEValidationMessages { 
    private RTEMessages additionalMessages; 

    public RTEValidationMessages() { 
     additionalMessages = GWT.create(RTEMessages.class); 
    } 
} 

Suppression de la méthode qui donne l'erreur, se traduit par une autre méthode aléatoire avec l'erreur, disent pas la méthode avant ou après dans l'interface ... client.i18n.RTEMessages.

L'aide est grandement appréciée.

Répondre

14

J'ai eu une erreur similaire une fois lors de l'utilisation de l'internationalisation. J'avais des fichiers de propriétés pour les langues anglais et polonais: labels_en.properties et labels_pl.properties. La solution était de créer aussi un fichier labels.properties (dans mon cas c'était juste une copie de labels_en.properties). C'est bizarre mais d'une certaine manière ça a aidé.

Vous devez également conserver vos fichiers de propriétés dans le même package que votre classe RTEMessages.

+1

Merci. Google aurait dû rendre leur projet Showcase plus modulaire. Utiliser des extraits de code est extrêmement gênant en raison de dépendances comme celle-ci. – expert

+0

GWT utilise ce fichier par défaut lorsque la clé n'est pas trouvée dans un fichier de paramètres régionaux spécifique. Comme alternative, vous pouvez annoter vos méthodes dans l'interface avec '@ DefaultMessage' – damluar

1

aussi 2 choses importantes (voir docs):

In order to use internationalized characters, make sure that your host HTML file contains the charset=utf8 content type in the meta tag in the header:

<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 

You must also ensure that all relevant source and .properties files are set to be in the UTF-8 charset in your IDE.

Questions connexes