En las últimas actualizaciones de Prestashop (concretamente tengo instalada en este momento en la tienda de un cliente la versión 1.6.0.6) vemos que cuando necesitamos traducir los textos desde el apartado del panel de administración Localización > Traducciones nos encontramos con un problema que antes por lo menos en mi caso no tenía.
Para situarnos nos encontramos en el apartado donde podemos configurar el tipo de traducción que queremos hacer, ya sea del Front Office, panel de administración, mensajes de error, nombres de los campos, módulos instalados, de los PDF o plantillas de Email. En este apartado también se puede seleccionar la plantilla y el idioma. Lo vemos en la imagen:
Hasta aquí todo bien, hasta que pulsamos el botón «Modificar» y los salta el siguiente error:
¡Advertencia! La configuración de PHP limita el número máximo de campos para enviar en un formulario 1000 = max_input_vars.
¡Vaya tela! ya empezamos con prestashop y sus típicos problemas que nos vuelven locos. Pero bueno, en este caso la solución es fácil y como dice el mensaje de error el problema está en la configuración del servidor, donde tenemos que hacer un pequeño cambio para que desaparezca el error.
En nuestro caso utilizamos Hostgator para el alojamiento del software de Prestashop. La relación calidad precio es estupenda y tiene todo lo necesario para el perfecto funcionamiento del software de una tienda online. Aunque en este caso falta añadir un archivo con una pequeña regla para solucionar lo anterior.
Para encontrar la solución nos dirigimos a Cpanel de Hostgator. Si en tu caso tienes otro servicio de alojamiento pero tiene Cpanel es exactamente la misma operación. Una vez que estamos aquí nos dirigimos a Administración de Archivos (o via FTP) y nos vamos a la raiz del servidor, ¡OJO! a la raiz del servidor, no a la raiz del sitio web. Como vemos en la imagen, en la ruta no debe de aparecer ninguna:
En esta parte añadimos un nuevo archivo como vemos arriba con el nombre php.ini. Dentro de este archivo añadimos la siguiente regla:
max_input_vars=5000;
Una vez incluida dicha regla en el archivo lo guardamos y esperamos a que haga su trabajo. En el error nos aparecia esto «número máximo de campos para enviar en un formulario 1000 = max_input_vars» y ahora lo hemos modificado para una capacidad de 5000. Este archivo php.ini hace la llamada al archivo .htaccess de nuestro Prestashop y le dice que aumente la capacidad para evitar el problema.
Si ves que el problema persiste espera unos minutos. Es posible que no se realicen los cambios de inmediato en el servidor y necesite un tiempo mínimo para recibir la orden.
Berenes dice
Hola amigo, a mi en un principio me surgía el problema que comentabas de php.ini:
max_input_vars=5000;
Una vez resuelto esto me sigue lanzando el siguiente error. Me gustaría mandarte una captura de pantalla pero no he visto la acción de poder adjuntar archivos. Copio y pego lo que sale al darle en la modificación de idiomas.
Some of these expressions use this special syntax: %d.
You MUST use this syntax in your translations. Here are several examples:
«There are %d products»: «%d» will be replaced by a number.
«List of pages in %s»: «%s» will be replaced by a string.
«Feature: %1$s (%2$d values)»: The numbers enable you to reorder the variables when necessary.
¿Alguna sugerencia? Gracias por anticipado
Pedro Mendez dice
Hola Berenes. El informe te dice que debes utilizar la sintaxis especial %d en las traducciones y te pone varios ejemplos. Resumiendo, que al hacer las traducciones debes dejar esos símbolos intactos y solo traducir las palabras.
El archivo php.ini como le puedo crear, me queda mas o menos claro donde situarle, pero no se muy bien con que programa editarle o crearle.
Hola Joselu. Pues lo puedes crear con Notepad o Gedit para linux y subirlo por ftp, o desde el panel de administración de tu hosting si usas CPanel o similar, en la parte de Administración de archivos le das a «Nuevo archivo» y lo creas desde ahí, para posteriormente añadir el código que hemos mencionado en el artículo
Hola, he echo todos lo que has escrito pero en el frontpage no me sale el idioma. Me sale como a Berenes
“There are %d products”: “%d” will be replaced by a number.
“List of pages in %s”: “%s” will be replaced by a string.
“Feature: %1$s (%2$d values)”: The numbers enable you to reorder the variables when necessary.
y también dice que
Expressions to translate 5093
Total missing expressions 65
Que hago por favor?
Muchas gracias
Pues no se a que puede ser debido Valeria. En los foros tampoco veo nada al respecto. Ponte en contacto con tu proveedor de hosting a ver si te pueden guiar para solucinarlo
Yo he encontrado una solución más pesada pero funciona. En mi caso no puedo añadir ningun archivo a la raiz dado que no tengo permisos de escritura y no quiero esperar a que mi hosting aumente la capacidad de esta variable asi que:
He hecho una instalación de prestashop localmente (usando xampp); en mi caso he cambiado al tema que uso y que quiero traducir. Al principio me daba el mismo error, pero como esta vez el servidor está en mi ordenador solo he tenido que acceder al archivo PHP.INI de mi servidor apache (C:\xampp\php) y alli he buscado la variable max_input_vars y le he puesto 15000 ( o la cantidad que quieras). Recuerda eliminar el punto y coma ´;´ que hay delante de la variable para que funcione. Guardas el archivo y reinicias xampp.
Ahora ya puedo traducir los modulos de mi tema en mi instalacion local de prestahop. Una vez traducido todo solo queda exportarlo a un archivo GZIP desde la misma pantalla de traducciones que tiene prestashop.
Volvemos a la tienda prestashop que tenemos online e importamos el archivo GZIP teniendo cuidado de seleccionar el tema que queremos traducir, y listos!
Hola Jose! Seguro que a mas de uno le viene de perlas tu comentario. Hacer pruebas con la web en local es la mejor opción sin duda para un desarrollo web. Gracias por tu aportación. Saludos!
Hola Pedro,
A mi me pasa lo mismo, ayer seguí tus pasos pero no hace nada, he dejado toda la noche y parte del día para que el servidor lo capte tal y como dices.
Me he puesto en contacto con los de mi hosting y me ha dicho que lo tengo que poner directamente en .htaccess y al hacerlo la pagina no se veía debido a un error con el servidor.
¿Que hago? Estoy super perdida.
Muchas gracias!!
Hola Vanessa que ¿hosting usas?
tengo el problema que todos comentan , quiero traducir algunos textos como el de cart , My Account , Wishlist, Checkout , son el titulo o link que me lleva a mi cuenta y los otros modulos , como
Hola!, teng otro error lo que explicas me funciono pero cuando trato de traducis el front office redirige a al dominio principal y no me toma los cambios que puedo hacer?
Yo también he creado el php.ini, lo he instalado en el directorio raíz y después de 48 horas sigue sin funcionarme.
Haciendo mención al comentario sobre la instalación en local con XAMPP, he intentado hacer lo mismo pero con mi instalación en servidor externo y el archivo php.ini no lo crea, al menos yo no lo encuentro o mi versión de Prestashop (1.6.1.4) no lo ha creado durante el proceso, ni en el directorio raíz ni en ninguna carpeta de Prestashop.
Con respecto a dicha limitante donde se debe crear el archivo .ini
value max_input_vars 5000
Solo creo un archivo con esta linea y coloco en el directorio raiz???
Saludos,
Hola David. Tienes que crear un nuevo archivo con el nombre php.ini. Dentro de este archivo añadimos la siguiente regla: max_input_vars=5000; y luego sube el archivo al directorio raiz de tu sitio web