2010-06-10 10 views
7

Ich habe eine GWT-App mit i18n Internationalisierung entwickelt. Im Host/Dev-Modus funktioniert es gut, aber das Starten von GWT kompiliert gibt diesen Fehler: Keine Ressource gefunden für Schlüssel xxx, wie unten.GWT 2.X Keine Ressource für Schlüssel gefunden

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' 

Nachrichten werden mit späte Bindung geladen.

public class RTEValidationMessages { 
    private RTEMessages additionalMessages; 

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

die Methode löscht, die den Fehler verursacht, führt zu einer anderen Zufallsmethode mit dem Fehler, sagt nicht das Verfahren vor oder nach dem in der Schnittstelle ... client.i18n.RTEMessages.

Hilfe wird sehr geschätzt.

Antwort

14

Ich hatte einen ähnlichen Fehler einmal bei der Verwendung von Internationalisierung. Ich hatte Eigenschaftendateien für Englisch und Polnisch: labels_en.properties und labels_pl.properties. Die Lösung war, auch eine Datei labels.properties zu erstellen (in meinem Fall war es nur eine Kopie von labels_en.properties). Es ist komisch, aber irgendwie hat es geholfen.

Sie sollten Ihre Eigenschaftendateien auch im selben Paket wie Ihre RTEMessages-Klasse aufbewahren.

+1

Dank. Google hätte ihr Showcase-Projekt modularer gestalten sollen. Die Verwendung von Code-Snippets ist aufgrund von Abhängigkeiten wie diesem extrem unbequem. – expert

+0

GWT verwendet diese Datei als Standard, wenn der Schlüssel in einer bestimmten Länderdatei nicht gefunden wird. Als Alternative können Sie Ihre Methoden in der Schnittstelle mit '@ DefaultMessage' kommentieren – damluar

1

auch 2 wichtige Dinge (siehe 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.

Verwandte Themen