Cómo localizar botones en el diálogo modal de JQueryUI

Tengo un diálogo modal de JQueryUI y todo funciona bien, excepto por un problema … ¿cómo localizo los botones Aceptar y Cancelar? He pasado por las demostraciones y documentación y, a menos que me falta algo muy obvio, no puedo encontrar la manera de hacer esto …

Mi código:

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

Esto muestra un diálogo con dos botones, “Aceptar” y “Cancelar”. ¿Cómo obtengo los botones para leer, por ejemplo, “Si” y “Cancelar”?

Lo que debo hacer es poder INYECTAR un valor localizado. Entonces, lo que necesito no es codificar el código “Si” o “Cancelar” en el código de configuración del cuadro de diálogo, sino poder configurar el botón Aceptar para que muestre “OK” o “Si” o cualquier otro valor dependiendo de la configuración regional de La máquina del cliente.

Todo lo demás sobre el diálogo funciona bien.

Usted acaba de cambiar el nombre de la propiedad …

 var buttons = {}; buttons[getLocalizedCaptionForYesButton()] = function() { }; buttons[getLocalizedCaptionForCancelButton()] = function() { }; $("#MyDialog").dialog({ buttons: buttons }); 

La mejor manera de localizar botones es usar el formato de matriz para la opción de botones.

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

Esto hace que sea natural trabajar con tags dinámicas. Con este formato, también puede especificar cualquier otro atributo, como class , disabled , etc.

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

Bien, encontré la forma de hacerlo: necesita crear un objeto con sus traducciones en él (este objeto se puede pasar a la función) y luego crear un segundo objeto que vincule sus funciones de acción con los elementos de los objetos de traducción:

 var translations = {}; translations["ok"] = "Si"; translations["cancel"] = "Cancellare"; var buttonsOpts = {}; buttonsOpts[translations["ok"]] = function () { . . . }; buttonsOpts[translations["cancel"]] = function () { . . . }; $("#MyDialog").dialog({ . . . buttons: buttonsOpts }); 

Respuesta básica provista por Alexey Ogarkov para cuestionar los botones de diálogo de jQuery UI desde las variables