orlando_marin Posted February 27, 2013 Share Posted February 27, 2013 (edited) Saludos compañeros, Este es mi primer post en el foro, ya antes había resulto muchas dudas gracias a su colaboración. He estado desarrollando un modulo para prestashop 1,5 el cual ya se encuentra en su fase final, por lo que he me dedicado a realizar su traducción al ingles. He traducido toda la parte del front y el back en cuanto a archivos TPL se refiere, pero me he topado con varios problemas. Traducir texto dinámico generado por archivos javascript. Ej: $("#item_ajax_error_msg").text("The URL is not valid."); $("#item_ajax_error_msg").text('Error processing the request'); Traducir texto dinámico recibido del controlador después de una petición AJAX. Ej: El controlador envía: $this->jsonError('ID producto es incorrecto'); $this->jsonConfirmation('Item saved.'); El archivo JavaScript Recibe : if(data.status == 'error'){ $("#item_ajax_error_msg").text('Error: '+ data.error); }else{ $("#item_ajax_success_msg").text("The item was successfully saved"); } Quisiera saber si hay alguna técnica para traducir estas fracciones de código. De ante mano agradezco su colaboración. Solución Agradecimientos al usuario : petete2008 Lo que he hecho es lo siguiente: Almacenar el texto a traducir dentro de variables JavaScript que son declaradas dentro del archivo TPL. Traducir texto dinámico generado por archivos javascript. EJ: Dentro del archivo TPL var msg={}; msg["url"]='{l s='The URL is not valid.' mod='mymodule'}'; msg["error_request"]='{l s='Error processing the request' mod='mymodule'}'; msg["Product_not_exist"]='{l s='Producto not exist.' mod='mymodule'}'; msg["Product_is_incorrect"]='{l s='ID Product is incorrect.' mod='mymodule'}'; Nota: La variable msg no la declare como un array porque presentaba inconsistencias e inestabilidad. Dentro del archivo JavaScript $("#item_ajax_error_msg").text(msg["url"]); $("#item_ajax_success_msg").text(msg["saved"]); Traducir texto dinámico recibido del controlador después de una petición AJAX. Se declararon las posibles variables de error dentro del archivo TPL correspondiente: Dentro del TPL: msg["Product_not_exist"]='{l s='Producto not exist.' mod='mymodule'}'; msg["Product_is_incorrect"]='{l s='ID Product is incorrect.' mod='mymodule'}'; Dentro del archivo JavaScript success: function(data) { if (data.status == 'error') { $("#item_ajax_success_msg").hide(); $("#item_ajax_error_msg").fadeIn("normal"); $("#item_ajax_error_msg").text('Error: ' + msg[data.error]); Y el controlador envia: if (Validate::isInt(Tools::getValue('id_product'))) { $product = new Product(Tools::getValue('id_product')); if ($product->id) { //Codigo } else { $this->jsonError('Product_not_exist'); //aqui se envia el error que es recibido por el script para invocar el mensaje msg['Product_not_exist']. } } else { $this->jsonError('Product_is_incorrect'); } Bueno, espero que la solución le sirva a alguien mas.. Hasta pronto. Edited February 28, 2013 by orlando_marin (see edit history) Link to comment Share on other sites More sharing options...
petete2008 Posted February 28, 2013 Share Posted February 28, 2013 Revisa este enlace : http://www.prestashop.com/forums/topic/37401-solucionado-traducir-texto-de-un-javascript/ 1 Link to comment Share on other sites More sharing options...
Recommended Posts