2010-10-19 6 views
7

J'ai une boîte de dialogue modale JQueryUI et tout fonctionne correctement, sauf pour un problème ... comment localiser les boutons OK et Annuler? Je suis passé par les démonstrations et la documentation et à moins que je me manque quelque chose évidente, ne peux pas comprendre comment faire ...Comment localiser les boutons dans la boîte de dialogue modale JQueryUI

Mon code:

$("#MyDialog").dialog({ 
. 
. 
. 
    buttons: { 
     OK: function() { 
. 
. 
. 

     }, 
     Cancel: function() { 
. 
. 
. 
     } 
    } 
}); 

Cette affiche une boîte de dialogue avec deux boutons , "OK" et "Annuler". Comment puis-je obtenir les boutons pour lire, par exemple, "Si" et "Cancellare" ..?

Ce que je dois faire, c'est de pouvoir INJECTER une valeur localisée. Donc ce dont j'ai besoin est de ne pas coder en dur "Si" ou "Cancellare" dans le code de configuration de la boîte de dialogue mais de pouvoir régler le bouton OK pour afficher "OK" ou "Si" ou toute autre valeur la machine du client.

Tout le reste de la boîte de dialogue fonctionne correctement.

Répondre

6

Vous venez de changer le nom de la propriété ...

var buttons = {}; 
buttons[getLocalizedCaptionForYesButton()] = function() { }; 
buttons[getLocalizedCaptionForCancelButton()] = function() { }; 

$("#MyDialog").dialog({ 
    buttons: buttons 
}); 
+0

Merci Ken, mais pas la réponse que je cherchais! En relisant ma question, je n'étais pas clair sur ce que je voulais dire. Ce que je dois faire, c'est être capable d'INJECTER une valeur localisée. Donc ce dont j'ai besoin n'est pas de TYPE "Si" ou "Cancellare" comme ci-dessus mais de pouvoir régler le bouton OK pour afficher "OK" ou "Si" ou toute autre valeur en fonction des paramètres régionaux de la machine du client. – Alfamale

+0

@Alfamale C'est le même concept. J'ai mis à jour ma réponse pour refléter vos besoins. –

1

OK, trouvé le moyen de faire ceci, vous devez créer un objet avec vous des traductions dans ce (cet objet peut être transmis dans la fonction), puis créer un second objet qui lie vos fonctions d'action aux éléments des objets traductions:

var translations = {}; 
translations["ok"] = "Si"; 
translations["cancel"] = "Cancellare"; 

var buttonsOpts = {}; 
buttonsOpts[translations["ok"]] = function() { 
      . 
      . 
      . 
     }; 
buttonsOpts[translations["cancel"]] = function() { 
      . 
      . 
      . 
     }; 

$("#MyDialog").dialog({ 
    . 
    . 
    . 
    buttons: buttonsOpts 
}); 

réponse de base fournie par Alexey Ogarkov à la question jQuery UI Dialog Buttons from variables

21

La meilleure façon de localiser les boutons consiste à utiliser le format de tableau pour l'option des boutons.

$("#MyDialog").dialog({ 
    buttons: [ 
     { 
      text: "OK", 
      click: function() { ... } 
     }, 
     { 
      text: "Cancel", 
      click: function() { ... } 
     } 
    ] 
}); 

Il est donc naturel de travailler avec des étiquettes dynamiques. Avec ce format, vous pouvez également spécifier d'autres attributs, tels que class, disabled, etc.

http://api.jqueryui.com/dialog/#option-buttons

+0

Excellent! Je vous remercie ;) – themis