Plugins y algunos trucos para WP
Viendo actualmente:idioma

¿Cómo cambiar el texto SALE de Woocommerce?

Cuando ponemos dos precios en los productos de Woocommerce, uno de ellos rebajado, se nos habilita una redonda bien chula con el texto SALE o REBAJADO muy llamativo.

¿Como se puede cambiar este texto? por ejemplo uno de mis clientes me ha pedido que salga un “-15%” y lo usará para hacer una rebaja de varios productos de forma manual.

Para cambiar el texto SALE se han de hacer unos cambios en un par de archivos: (más…)


Error al crear menú con WPML “…wp-admin/undefined?lang=en”

Estaba yo creando tan feliz un menu para una de mis páginas, y cuando voy a traducirlo, al guardarlo me encuentro con un error del tipo:

www.urldelaweb/wp-admin/undefined?lang=en

y ahí se queda, sin hacer nada, investigando, por suerte, he visto que se trata de alguna incomptabilidad entre la versión de WordPress 4.2.2 y la versión de WPML, en teoria la versión 3.1.9.7 ya deberia resolverlo.

Más información aquí:

https://wpml.org/errata/saving-menus-in-non-default-language-leads-to-404-error/

 

EDITADO 10 MIN DESPUÉS: FUNCIONA!


Traducir menu responsive con plantilla de Elegant Theme

¿Cómo traducir las palabras del menú responsive en las plantillas o themes de Elegant Themes?

Normalmente nos encontramos con palabras tipo “Navigation” o una vez desplegado con “Pages” o “Categories”, pero desde nuestro panel del tema no tenemos opción a traducirlo.

Tenemos que ir a Apariencia-Editor y allí modificar nuestro archivo functions.php pero antes como siempre haced una copia de seguridad por si acaso.

A continuación os mostramos una captura de pantalla, en nuestro caso ha sido fácil de identificar la parte a modificar.
traducir-menu-responsive-elegant-theme

Espero que os haya ayudado, al principio me costó localizarlo, pero luego en todas las plantillas de Elegant Themes encuentras la misma estructura.

//ACTUALIZACIÓN,

Glòria, en un comentario me decía que explicase mejor dónde hay que hacer los cambios. Lo más fácil es buscar con el propio buscador del navegador (CTR + F normalmente) la palabra del menú que quereis traducir, ya sea Navitacion, Pages, Categories..etc… Normalmente tiene esta estructura:

<?php esc_html_e(‘PALABRA A TRADUCIR’,’NOMBRE DE PLANTILLA’);?>

Ahora más fácil, ¿verdad?


Como redirigir a los usuarios según idioma con .htaccess

Manera de redirigir a tus usuarios según idioma del navegador por .htaccess

 

Muchas son las ventajas que tenemos al saber configurar correctamente nuestro archivo .htaccess, pero una cosa que puede ser muy interesante, es poder redireccionar a nuestros visitantes en función del idioma del navegador que estén usando al entrar en nuestra web.

Imaginenos que tenemos estas direcciones en nuestra web según el idioma:

www.pagina.com  (para español)

www.pagina.com/en  (para inglés)

www.pagina.com/fr  (para francés)

Pues bien, editando nuestro archivo .htaccess de la siguiente manera:

 


RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* http://www.pagina.com/en/ [R,L]

RewriteCond %{HTTP:Accept-Language} (es) [NC]
RewriteRule .* http://www.pagina.com/ [R,L]

RewriteCond %{HTTP:Accept-Language} (fr) [NC]
RewriteRule .* http://www.pagina.com/fr/ [R,L]

 

Sobre todo mucho cuidado al editar el arhivo .htaccess, cualquier mínimo fallo nos hacer que la web no funcione, antes de modificar hacer copia de seguridad.


Cómo traducir los mensajes de error del formulario de contacto de Elegant Themes

Trabajo mucho con Elegant Themes, y casi siempre todos son vantajas.

Ahora bien, me he encontrado con un problemilla, cuando se hace clic en ENVIAR formulario de contacto vacío, aparece este error:

  • Fill Name field
  • Fill Email Address field
  • Invalid email
  • Fill Subject field
  • Fill Captcha field
  • Fill Message field

¿Cómo traducir todo esto para que quede más bonito?

En primer lugar, traducir los campos es fácil con cualquier plugin de idiomas, por ejemplo WPML, o si se quiere hacer a lo bruto, editando la página (page-contact.php), buscaremos lineas tales como estas:

<input type="text" name="et_contact_name" value="<?php if ( isset($_POST&#91;'et_contact_name'&#93;) ) echo esc_attr($_POST&#91;'et_contact_name'&#93;); else esc_attr_e('Name','InStyle'); ?>" id="et_contact_name" class="input" />

y las cambiaremos por:

<input type="text" name="et_contact_name" value="<?php if ( isset($_POST&#91;'et_contact_name'&#93;) ) echo esc_attr($_POST&#91;'et_contact_name'&#93;); else esc_attr_e('NOMBRE TRADUCIDO','InStyle'); ?>" id="et_contact_name" class="input" />

Con ello tendremos parte de la traducción hecha..pero ¿Cómo cambiar el resto del mensaje?

wp-content/themes/NOMBRE-DE-LA-PLATILLA/epanel/page_templates/js/et-ptemplates-frontend.js (aquí encontraremos el código que usa para devolveros el error:

$et_inputs.each(function(index, domEle){
			if ( jQuery(domEle).val() === '' || jQuery(domEle).val() === jQuery(this).siblings('label').text() ) {
				jQuery(domEle).addClass('et_contact_error');
				et_contact_error = true;

				var default_value = jQuery(this).siblings('label').text();
				if ( default_value == '' ) default_value = et_ptemplates_strings.captcha;

				et_message += '<li> Rellena' + default_value + ' correctamente.</li>'; ////TRADUCCIÓN EDITADA
			}
			if ( (jQuery(domEle).attr('id') == 'et_contact_email') && !et_email_reg.test(jQuery(domEle).val()) ) {
				jQuery(domEle).removeClass('et_contact_error').addClass('et_contact_error');
				et_contact_error = true;

				if ( !et_email_reg.test(jQuery(domEle).val()) ) et_message += '<li>Email incorrecto.</li>'; ////TRADUCCIÓN EDITADA
			}
		});

Editando esas 2 lineas de código todo arreglado:

  • Rellena Nombre correctamente.
  • Rellena Email correctamente.
  • Email incorrecto.
  • Rellena Asunto correctamente.
  • Rellena Captcha correctamente.
  • Rellena Mensage correctamente.

WPML, cambiar imágenes y HTML en theme según idioma

Tenemos el Plugin de WPML con que el traducimos nuestra web de una manera más o menos fácil.

Pero, ¿Cómo podemos cambiar una imágen por ejemplo del header de nuestro tema en función del idioma?

Una manera ya la explicamos, usado la función: ICL_LANGUAGE_CODE; que nos devuelve el idioma que estamos usando (es si es español, etc.) Con esto y trasteando nuestro CSS podíamos crear diferentes imágenes según el idioma.

Peró, ¿y si quero no sólo usar diferentes imágenes según el idioma si no también los enlaces? Pues modificando en este caso el header.php de la siguiente manera:

 

La idea es mostrar un código HTML en función del idioma que tengamos en ese momento:

 

// Código HTML en función del idioma //
<?php if (ICL_LANGUAGE_CODE == 'es'): ?>
<a href="enlace en castellano"><img src="http://www.web.com/fotografia-castellano.jpg"/></a>
<?php else: ?>
<a href="enlace si no es castellano"><img src="http://www.web.com/fotografia-nocastellano.jpg"/></a>
<?php endif ?>

 

De esta manera si estamos en idioma castellano veremos la imagen fotografia-castellano.jpg enlazada a enlace en castellano y si estamos en ingles, veremos la imagen fotografia-nocastellano.jpg enlazada a enlace si no es castellano.

 

 


WPML, el mejor plugin de traducción de idiomas para WordPress

WPML, el mejor plugin de traducción de idiomas para WordPress:

Sin lugar a dudas, es el mejor plugin. La versión de pago te tiene al tanto de las actualizaciones y es un plugin que al principio puede ser un poco complicado de entender, pero rápidamente se le pilla el truco.

Muy potente y fácil de modificar e ir añadiendo nuevas posibilidades.

Multilingual WordPress

No solo traduce si no que permite personalizar la web según el idoma.

Enlace a la web: http://wpml.org/es/

Yo por ahora con el plugin principal y WPML String Translation voy sobrado.

Es sin duda el mejor plugin para idiomas en WordPress que he usado nunca. Y la versión de pago sirve para instalaciones ILIMITADAS!


Cambiar fotos de fondo según idioma con WPML

Cambiar fotos de fondo según idioma con WPML:

Si usas el plugin de traducción WPML me he encontrado con un problema, cuando hago alguna personalización en mi tema de Elegant Theme del tipo poner foto de fondo en un DIV o por ejemplo poner un logotipo diferente según el idioma.

¿Cómo solucionarlo? con un poco de CSS y la función ICL_LANGUAGE_CODE;

En mi caso tenia esto:

 

Esto en el código del HEADER:

<div id=”header” class=”clearfix”>

y su css correspondiente:

#header { position: relative; padding:20px 35px 3px;}

 

Pues bien, la idea es esta:

<div id=”header_<?php echo ICL_LANGUAGE_CODE; ?>” class=clearfix”>  // Le indicamos mediante la función que llame a header_es o header_ca o header_en según el idioma

y solo falta generar en el CSS lo siguiente:

#header_ca { position: relative; padding:20px 35px 3px;  background: url(http://direccion.com/wp-content/uploads/333/33/foto-ca.png);background-repeat:no-repeat; background-position:right bottom;  }
#header_es { position: relative; padding:20px 35px 3px;  background: url(http://dirección.com/wp-content/uploads/333/33/foto-es.png);background-repeat:no-repeat; background-position:right bottom;  }
… y por cada idioma que tengamos uno diferente, como podeis ver la imagen cambia para cada idioma

De esta misma manera podemos tener un logo para cada idioma, o incluso una estructura de header o footer diferente para cada idioma.

 

 

 


Powered by WordPress | Designed by Elegant ThemesPolítica de privacidad