7

Tengo 2 archivos Javascript con traducciones, que se incluirán según el idioma del usuario. Esto funciona bien para la mayoría de los casos. Pero no para el objeto Buttons dentro de un diálogo de UI de JQuery. ¿Alguna idea de como resolver esto?Traducir "Botones" en JQuery UI Diálogos

if (data.status == 'success') { 
    options = { 
     buttons: { 
      CLOSE: function() { 
         $(this).dialog('close'); 
        } 
      } 
     }; 

CERRAR debe traducirse ..

Respuesta

8

Crear los botones objeto como éste:

var myButtons = {}; 
myButtons[CLOSE] = function() { $(this).dialog('close'); }; 

if (data.status == 'success') { 
    options = { 
    buttons: myButtons 
    }; 
} 

Editar: Se ha actualizado para usa la variable CLOSE.

+0

+1 así es como hago la traducción a través de la interfaz de usuario de jQuery. Necesitamos cambiar un poco de nuestro código, pero funciona como un encanto. – balexandre

+0

¡Funciona como un amuleto, gracias! – opHASnoNAME

0

Sólo hay que poner en entre comillas: P

if (data.status == 'success') { 
    options = { 
    buttons: { 
     'translated text for close': function() { 
        $(this).dialog('close'); 
       } 
     } 
    }; 
+0

Las traducciones se almacenan en un archivo JS como: var CLOSE = 'Schließen'; entonces tu solución no funcionará – opHASnoNAME

3

Hay two ways to specify buttons in a dialog (since 1.8.5). Solo uno de ellos es útil para la internacionalización. Definir las opciones de la siguiente manera:

if (data.status == 'success') { 
    options = { 
     buttons: [{ 
      text: CLOSE, 
      click: function() { 
         $(this).dialog('close'); 
        } 
     }] 
    } 
} 

@ solución de dioslaska funciona tan bien, pero creo que de esta manera es más bonita.

+0

Prefiero esta respuesta también, ya que es más obvio de dónde provienen las traducciones. – markbernard

0

Debe modificar la declaración del widget Dialog en jquery-ui archivo javascript.

encontrar la línea

closeText: "Close", 

y reemplazar "Cerrar" con su traducción.