Wie greife ich serverseitig in GWT auf den „Gebietsschema“-Wert (einer Internationalisierungs-App) zu?

StackOverflow https://stackoverflow.com//questions/25009115

  •  20-12-2019
  •  | 
  •  

Frage

Ok, ich entwickle eine App, die die Internationalisierung unterstützt.ich benutze Static String Internationalization Methode für meine App.

Nehmen wir an, meine App kann eine englische und deutsche Version haben, also -1st habe ich erstellt MyMessages.java in dem alle Nachrichtentexte auf Englisch verfasst sind.Dann habe ich eine erstellt MyMessages_ge was fast das Gleiche ist wie MyMessages.java außer dass der Text auf Deutsch verfasst ist

-2., in MyProject.html Ich habe <meta http-equiv="content-type" content="text/html; charset=UTF-8"> um sicherzustellen, dass alle Sprachen unterstützt werden

-3., in MyProject.gwt.xml Ich habe <extend-property name="locale" values="ge"/>

Jetzt führe ich meine App in Eclipse aus http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge & es zeigt den gesamten deutschen Text, wie ich erwartet hatte.

Allerdings muss ich wissen, dass meine App deutsch ist At Server Side.Das heißt, wann immer meine GWT-GUI in deutscher Version ist, wird mein Server das wissen languageCode=1 Wenn es auf Englisch ist, verwendet der Server die Standardsprache languageCode=0

Hier ist, was ich getan habe.Bei HeaderPresenter.java

@Override
public void prepareFromRequest(PlaceRequest request){
    super.prepareFromRequest(request);
    String locale=request.getParameter("locale", "");
    setLanguage(locale); // servercall back here
}

Wenn meine App also zum ersten Mal ausgeführt wird, sollte sie dem Server mitteilen, welche Sprache die GWT-App verwendet

@Override
public SetLanguageResult execute(SetLanguage action, ExecutionContext context)
        throws ActionException {
    String locale=action.getLocale();
    if("ge".equals(locale)){
        Data.languageType=1;
    }
    return null;
}

Es scheint jedoch keine Arbeit zu sein, wenn ich zu Ordersage gehe, die URL wird sein http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge#!orderPage es nicht in der Form http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997#!orderPage;locale=ge Aus diesem Grund konnte der Server das nicht erfassen locale Wert.

Ich glaube, ich habe hier etwas falsch verstanden.Ich bin ziemlich verwirrend.

Wie greife ich serverseitig in GWT auf den Wert „Gebietsschema“ (einer Internationalisierungs-App) zu?

War es hilfreich?

Lösung

Im GWT SDK gibt es eine Dienstprogrammklasse zum Umgang mit Gebietsschemainformationen.Sie müssen die URL-Parameter nicht selbst analysieren.Schauen Sie mal vorbei LocaleInfo.getCurrentLocale() Dann nutzen Sie die getLocaleName() Methode, um den eigentlichen Code als String zu erhalten.

Ich habe nicht ganz verstanden, wie Sie die Gebietsschemainformationen auf der Serverseite speichern?Beachten Sie, dass Servlets von Benutzern gemeinsam genutzt werden. Sie müssen das lokale Servlet an die Sitzung anhängen oder es bei jedem Aufruf übergeben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top