2015-08-05 4 views
1

Nous avons une application vaadin et un widget gwt personnalisé inclus comme pot externe. Widget a ses propres traductions (polonais et anglais). Le problème est, lors de l'exécution de widget personnalisé dans une application externe, il traduit correctement, mais quand il est dans une application vaadin, indépendamment de l'application (et même navigateur) locale - il est seulement en anglais, tout le temps. La question est: comment les widgets personnalisés de gwt obtiennent-ils des informations sur la langue à utiliser et y a-t-il une option pour surcharger ceci (forcer le langage/l'environnement local du widget)?Vaadin et Widget Gwt personnalisé - réglage du langage pour le widget

+0

Pouvez-vous fournir un lien vers ce widget? Est-ce public? Avez-vous essayé la méthode setLocale sur un composant? – kukis

+0

Malheureusement, je ne peux pas publier ce widget. J'ai essayé de mettre la méthode SetLocale sur le composant vaadin entourant ce widget, mais cela n'a pas aidé. Le problème est que, où vaadin locale est la méthode côté serveur, il peut changer les données envoyées au client. Les widgets GWT dont nous parlons sont comme une application gwt complète placée dans un composant vaadin. Lorsqu'il est publié en tant que site Web autonome, il prend les traductions des paramètres régionaux (par défaut ou GET param). Quand il est dans le widget vaadin, il ne se soucie pas du tout des paramètres régionaux du navigateur, de la demande de la balise de langue ou du paramètre GET. – Invader92

Répondre

0

L'un des problèmes était la non-concordance des noms de paramètres régionaux. Où l'application vaadin a pu être traduite en ony pour les paramètres régionaux de langue. par exemple. "pl" (polonais), le widget gwt nécessitait des paramètres régionaux avec le code du pays, par ex. "pl_PL" (polonais, Pologne).

La solution réelle est de forcer GWT pour rechercher locale dans la balise meta seulement et créer cette balise

<meta name="gwt:property" content="locale=x_X" /> 

côté serveur, en respectant la langue de l'application et avant toute javascripts GWT sont attachés. Malheureusement, cela conduit à une actualisation de la page après le changement de langue, mais je suppose que cela ne peut être fait autrement en raison des méthodes d'internationalisation de gwt.