Come accedere al valore "Locale" (di un'app di internazionalizzazione) nel lato server in GWT?

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

  •  20-12-2019
  •  | 
  •  

Domanda

OK, sto sviluppando un'app che supporti l'internazionalizzazione. Sto usando il metodo Static String Internationalization per la mia app.

Lascia dire che la mia app può avere la versione inglese e tedesca, quindi -1st, ho creato MyMessages.java che ha tutti i messaggi di messaggi scritti in inglese. Quindi ho creato un MyMessages_ge che è quasi lo stesso di MyMessages.java, tranne che il testo scritto in tedesco

-2nd, in MyProject.html ho <meta http-equiv="content-type" content="text/html; charset=UTF-8"> per assicurarti che supporterà tutte le lingue

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

Ora eseguo la mia app in Eclipse http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge e mostra tutto il testo tedesco come mi aspettavo.

Tuttavia, ho bisogno di sapere che la mia app è At Server Side German. Ciò significa che ogni volta che la mia GWT GUI in versione tedesca, il mio server saprà che languageCode=1 se è in inglese, quindi il server utilizzerà la lingua predefinita languageCode=0

Ecco cosa ho fatto. A HeaderPresenter.java

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

Quindi quando la mia app ha eseguito la prima volta che dovrebbe consentire al server di sapere quale lingua l'app GWT sta usando

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

Tuttavia, non sembra funzionare Quando vado a OrderPage L'URL sarà http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge#!orderPage non nel modulo http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997#!orderPage;locale=ge è il motivo per cui il server non può catturare il valore locale.

Penso di aver frainteso qualcosa qui. Sono abbastanza confuso.

Quindi come accedere al valore "Locale" (di un'app di internazionalizzazione) nel lato server in GWT?

È stato utile?

Soluzione

C'è una classe di utilità per gestire le informazioni sulla locale nell'SDK GWT.Non è necessario analizzare i parametri URL da solo.Dai un'occhiata a localeinfo.getcurrentlocale () Quindi utilizzare il metodo GetLoCalename () per ottenere il codice effettivo come una stringa.

Non ho capito il modo in cui memorizzi le informazioni sulla posizione locale sul lato server?Mente che i servlet sono condivisi tra gli utenti, devi allegare il locale alla sessione o passarlo con ogni chiamata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top