Como aceder a "locale" o valor (de um Internacionalização App) no lado do servidor em GWT?

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

  •  20-12-2019
  •  | 
  •  

Pergunta

Ok, eu estou desenvolvendo um aplicativo que oferece suporte a Internacionalização.Eu estou usando Static String Internationalization método para meu aplicativo.

Vamos dizer que meu app pode ter inglês e alemão, então -1º, I criado MyMessages.java que tem toda a mensagem de textos escritos em inglês.Então eu criei um MyMessages_ge o que é quase o mesmo que MyMessages.java exceto que o texto escrito em alemão

-2º, em MyProject.html eu <meta http-equiv="content-type" content="text/html; charset=UTF-8"> para se certificar de que todas as línguas

-3º, em MyProject.gwt.xml Eu <extend-property name="locale" values="ge"/>

Agora eu executar meu aplicativo no eclipse http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge e ele mostra todo o texto em alemão, como eu esperava.

No entanto, eu preciso saber se meu aplicativo é alemão At Server Side.Isso significa que sempre que o meu GWT Gui na versão em alemão, em seguida, meu servidor vai saber que languageCode=1 se ele está em inglês, portanto, o servidor usará o idioma padrão languageCode=0

Aqui está o que eu fiz.No HeaderPresenter.java

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

então, quando meu aplicativo seja executado primeiro tempo, ele deve deixar o servidor para saber qual idioma o aplicativo estiver usando Gwt

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

No entanto, ele não parece funcionar Quando eu vou para orderPage a url será http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge#!orderPage não, na forma http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997#!orderPage;locale=ge é por isso que o servidor não podia tirar a locale o valor.

Eu acho que eu mal entendido alguma coisa aqui.Eu estou muito confuso.

Assim Como acesso a "locale" o valor (de um Internacionalização App) no lado do servidor em GWT?

Foi útil?

Solução

Há uma classe de utilitário para lidar com informações de localidade no GWT SDK.Não há necessidade de analisar os parâmetros de URL si mesmo.Ter um olhar para LocaleInfo.getCurrentLocale() em seguida, use o getLocaleName() método para obter o código real, como uma Seqüência de caracteres.

Eu não entendo muito bem a forma de armazenar as informações de localidade no lado do servidor?A mente que os servlets são compartilhadas entre os usuários, você tem que anexar o local para a sessão ou passá-lo com cada chamada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top