IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Play! Java Discussion :

[2.1.3] Paramètre lang implicite


Sujet :

Play! Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    janvier 2011
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2011
    Messages : 99
    Points : 234
    Points
    234
    Par défaut [2.1.3] Paramètre lang implicite
    Bonjour,
    je dois internationaliser une application et je me trouve confronté à un petit problème.


    Dans mes vues je dois pour chaque message appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Messages.get(new Lang(Lang.forCode(lang)), "...<mon message>...")
    Je trouve la syntaxe HYPER lourde, n'y a t'il pas un moyen de l'alléger pour par exemple ne déclarer qu'une seule fois la langue?

  2. #2
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 470
    Points
    7 470
    Par défaut
    Citation Envoyé par pschiit Voir le message
    Bonjour,
    je dois internationaliser une application et je me trouve confronté à un petit problème.


    Dans mes vues je dois pour chaque message appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Messages.get(new Lang(Lang.forCode(lang)), "...<mon message>...")
    Salut,
    Tu as plusieurs manières de faire. Tu peux changer la langue de l'appel en cours dans le contrôleur () ou idéalement dans une pré-action pour éviter d'avoir à le répéter partout :

    Voici un bout du mien : (J'utilis un système qui stocke le code langue choisi en session)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class CommonAction extends Action.Simple {
     
    	@Override
    	public Result call(Context ctx) throws Throwable {
     
     
            ContextAdapter contextAdapter = new ContextAdapter(ctx );
     
            checkUserLang( contextAdapter.session() ); //méthode perso qui checke la session
            Http.Context.current().changeLang( contextAdapter.session().getUserLang() );
     
    		try
    		{
     
    			return delegate.call(ctx);
                            //(...)

    Ou alors tu redéfinis dans le scala.html un implicite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @implicitLang = @{ maVariableLangue }
    Si tu emploies cette dernière méthode, il se peut que dans tous les fichiers scala.html que tu appelles depuis ta vue principale (par exemple des morceaux de template perso) tu doives déclarer
    @( )(implicit lang : Lang ) en tête

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/02/2014, 11h56
  2. Réponses: 15
    Dernier message: 07/06/2011, 22h42
  3. [XHTML 1.0] Paramètre lang et xml:lang de la balise html
    Par elekaj34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/03/2009, 10h57
  4. Réponses: 7
    Dernier message: 23/01/2008, 12h36
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo