Blog de programación Web y SEO, Ingeniero Industrial

Cómo traducir páginas Woocommerce y modificar los textos

Después de estar luchando con Prestashop durante más de 3 años (desde 2011 que no es poco), he decidido dar el salto a la plataforma Web más intuitiva que conozco: WORDPRESS (viva WP!)

Desde hace un par de años tenía la intención de empezar a jugar con el plugin Woocommerce, pero ya en este 2014 he empezado en serio a adentrarme. Finalmente he decidido a dar el salto y dejar atrás el engorroso y farragoso Prestashop.

He de decir ahora que en favor de Prestashop echo de menos algunas características como son la gestión de stocks, la velocidad de carga, el sistema de traducción y la gestión de pedidos. Pero a pesar de ello no me arrepiento de haber dado el salto y por ahora las dificultades que he encontrado en Woocommerce las estoy superando. Wocommerce es válido para pequeños y medianos proyectos que son el 99%.

Traducir partes de Woocommerce

Antes de nada decir que el según el siguiente artículo   http://docs.woothemes.com/document/woocommerce-localization/   Woocommerce no descarga las traducciones del plugin si no que las carga online, por lo que si tenemos en el archivo wp_config.php configurada la variable de nuestro idioma WP_LANG no hace falta descargar ni actualizar las traducciones. Muy interesante.

El problema viene cuando deseamos personalizar alguna de las traducciones de Woocommerce.

En mi caso deseaba traducir un texto de la ficha de producto: “Disponible bajo envío”

Cómo modificar textos de Woocommerce

 

En este tutorial voy a hacer una recapitulación de las maneras que existen de traducir los textos de Woocommerce en 4 métodos:

  1.  Descargando los archivos .mo y .po
  2. Utilizando el plugin Codestyling Localization
  3. Cambiando el texto directamente en el código (menos recomendado pero efectivo si es un idioma)
  4. Utilizando el functions.php de nuestro tema y sustituyendo la cadena de caracteres

Método 1, Descargando los archivos .mo y .po

  1. Accedemos al sitio de descarga y buscamos los ficheros es_ES   https://github.com/woothemes/woocommerce-language-packs/tree/master/packages
  2. Descargamos el programa gratuido poEdit y accedemos.
  3. Buscamos la línea que queremos modificar, la modificamos.
  4. Guardamos el .mo y exportamos el .po
  5. Subimos por FTP a la carpeta tudominio/wp-content/plugins/woocommerce/i18n/languages los archivos mo y po

Método 2, Utilizando el plugin Codestyling Localization (abandonado), usar Loco Translate

  1. Accedemos a nuestro WordPress > Plugins > Instalar nuevo > “Loco Translate”
  2. Vamos a Herramientas y a Localización.
  3. Buscamos el plugin Woocommerce. Buscamos dentro el texto que deseemos cambiar.
  4. Finalmente pinchamos sobre guardar .po
  5. Este método me produce el fallo de tener que traducir todos los textos y no únicamente el texto que deseo cambiar. Es el método recomendado por Woocommerce.

Actualización 25 de diciembre de 2015

Han retirado el plugin Codestyling del depositorio de WordPress, pero lo podemos encontrar en:

http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en

Otro plugin similar es Loco Translate:

https://es.wordpress.org/plugins/loco-translate/

Método 3, Por la fuerza bruta modificando los php

  1. Descargo el proyecto completo de Wordpress.
  2. Lo dejamos en nuestro disco local.
  3. Abro el editor de archivos. Siempre uso notepad ++
  4. Buscamos dentro de los archivos, opción search in files. El texto a buscar es:  Available on backorder
  5. Cómo modificar textos de Woocommerce2
  6. El texto aparece en 3 archivos php a parte de en el archivo .pot de traducciones.
  7. Archivo abstract-wc-product.php línea 588, lo voy a sustituir directamente:

} elseif ( $this->backorders_allowed() && $this->backorders_require_notification() ) {

// CODIGO COMENTADO $availability = __( ‘Available on backorder’, ‘woocommerce’ );
$availability = __( ‘Disponible bajo pedido’ );

 

Archivo class-wc-product-variable.php línea 533:
} elseif ( $this->backorders_allowed() && $this->backorders_require_notification() ) {
//$availability = __( 'Available on backorder', 'woocommerce' );
$availability = __( 'Disponible bajo pedido' );

Archivo cart.php línea 71:

if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) )
//echo '

‘ . __( ‘Available on backorder’, ‘woocommerce’ ) . ‘

‘;
echo ‘

‘ . __( ‘Disponible bajo pedido’ ) . ‘

‘;

Método 4, Utilizando el functions.php de nuestro tema y sustituyendo la cadena de caracteres

  1. Este es el método que recomiendo y es el que uso.
    En este caso tenemos que entrar en el archivo functions.php del tema que estamos usando. Se encuentra en la carpeta wp-content/themes/nombre-del-tema
  2. Dentro del archivo incluiremos el código.
  3. En caso de que usáramos el plugin en inglés la cadena a sustituir sería “Available on backorder“, pero como estamos usando el español hay que sustituir el texto que aparece en español, en este caso “Disponible para reservar”.
  4. Este método lo podemos usar con otras variables y otras cadenas de caracteres.

//
// WOOCOMMERCE
// SUSTITUIR EL TEXTO AVAILABLE ON BACKORDER
// O DISPONIBLE PARA RESERVAR
// POR OTRO TEXTO
//
function backorder_text($available) {
foreach($available as $i) {
//$available = str_replace('Available on backorder', 'Product is available but backordered. Could take up to 2-3 weeks for shipping.', $available);
$available = str_replace('Disponible para reservar', 'Este producto está disponible bajo pedido. Envío en 2-3 semanas.', $available);
}
return $available;
}
add_filter('woocommerce_get_availability', 'backorder_text');

5 respuestas a Cómo traducir páginas Woocommerce y modificar los textos

Página 1 de 11
  • Raúl dice:

    Hola Eduardo. Gracias por el post. Tengo un problema. Utilizando el método 4, hace desaparecer el texto “disponible para reservar”, pero no me lo sustituye por el “Este producto está disponible bajo pedido. Envío en 2-3 semanas.”. Se queda vacío. ¿Alguna idea de por qué?

    Muchas gracias.

    • Soluciones:
      1- Utiliza otro método.
      2- O si no descarga todas tus carpetas de tu proyecto al disco local.
      Luego con Notepad ++ (te lo descargas que es gratis), te vas a Buscar > Buscar en Archvios
      Pones la cadena de caracteres inicial (en este caso disponible para reservar) y que lo busque en todas las carpetas.
      En la parte de abajo te dirá dónde está la cadena de caracteres “disponible para reservar”, y ahí lo podrás cambiar,
      Woocommerce no tiene muy bien resuelto lo de las traducciones, a veces está en un .mo .po del tema, otras veces en código, otras veces en .mo.po de Woocommerce…

      Suerte, que el que busca encuentra

Página 1 de 11

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Categorías del Blog
Comprueba dominios libres