Traducir el "No soy un robot" del reCAPTHA de Google
En una página multi-idioma de WordPress deseamos traducir todas las páginas de nuestro sitio. El origen de estas traducciones pueden ser código estático (plantillas, plugins, etc.) o dinámicas (básicamente los contenidos de entradas, páginas, etc., de nuestra base de datos).
No obstante hay partes de código que no siempre nos es fácil encontrar su origen. No queda más remedio que observar soluciones en la red y, si tenemos suerte, solucionarlo y compartir las soluciones. Es lo que voy a realizar a continuación.
Aunque WMPL soluciona la mayoría de los problemas tuve un problema en el caso de un texto localizado en el plugin de Contact Form 7, en concreto con su sistema inteligente de reCAPTCHA. Funciona de forma fenomenal pero el problema lo tenía al intentar traducir el texto "No soy un robot"
Solución
En el caso que observamos de nuestro reCAPTHA disponemos de varios idiomas. Como vemos gallego, inglés, catalán, euskera y portugués. Tenemos que añadir el siguiente código en el fichero functions.php del template o, mejor, si no queremos ser invasivos, utilizar el magnífico plugin Code Snippets para este fin (esta opción ya lo mecionamos en Cargar estilos propios en WordPress).
remove_action( 'wpcf7_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts' ); add_action( 'wpcf7_enqueue_scripts', 'wpcf7_recaptcha_enqueue_scripts_custom' ); function wpcf7_recaptcha_enqueue_scripts_custom() { $hl = 'es'; //You can find the list of supported language codes here: https://developers.google.com/recaptcha/docs/language if (ICL_LANGUAGE_CODE == 'gl') $hl = 'gl'; if (ICL_LANGUAGE_CODE == 'en') $hl = 'en'; if (ICL_LANGUAGE_CODE == 'ca') $hl = 'ca'; if (ICL_LANGUAGE_CODE == 'eu') $hl = 'eu'; if (ICL_LANGUAGE_CODE == 'pt-pt') $hl = 'pt'; $url = 'https://www.google.com/recaptcha/api.js'; $url = add_query_arg( array( 'hl' => $hl, 'onload' => 'recaptchaCallback', 'render' => 'explicit' ), $url ); wp_register_script( 'google-recaptcha', $url, array(), '2.0', true ); }
Buena aportación