A veces puede ser bastante difícil traducir cadenas dinámicas en WordPress. Y esto se debe principalmente a dos razones:
- vienen de un plugin o tema que no está usando gettext para sus cuerdas;
- son creadas por el usuario y se guardan en las opciones del plugin o del tema, en la metainformación de usuario (user meta) o en una tabla personalizada que el plugin de traducción desconoce.
Temas como Hestia utilice la interfaz del Personalizador de WordPress para crear rápidamente una hermosa página de inicio que contenga un control deslizante, varias columnas para información, una lista de Productos de WooCommerce si es necesario, así como un formulario de contacto.
Mucho contenido de esa página principal no se almacena en wp_posts ni en wp_postmeta. Si bien algunos expresarán su preocupación sobre por qué romper la convención de entradas y páginas es una mala idea, Personalmente, me gusta lo fluida que fue la experiencia de configurar esa página inicial.
Esta flexibilidad es genial cuando quieres hacer las cosas a tu manera, sin embargo, también es la razón principal traduciendo un sitio de WordPress El 100% puede resultar un poco más difícil de conseguir, sobre todo si no se tiene mucha experiencia en temas técnicos.
Soluciones actuales

Cada plugin de traducción de WordPress tiene su propio flujo de trabajo al traducir cadenas dinámicas.
- Las cadenas de gettext se traducen por plugin/tema o directamente desde https://translate.wordpress.org/;
- las cadenas generadas por el usuario en el plugin/tema deben marcarse para traducción utilizando la API de traducción del plugin.
Lo bueno de esta solución es que funciona.
Lo malo es que la traducción se realiza fuera de contexto y necesita el apoyo de los desarrolladores de complementos y temas para funcionar con una variedad de plugins de traducción.
Lo peor de esto es que si Los desarrolladores de plugins y temas no admiten el plugin de traducción, simplemente no funcionará en absoluto.
Traducir cadenas dinámicas con TranslatePress
Sabíamos que traducir cadenas dinámicas sería un reto cuando empezamos el desarrollo para TranslatePress. Lo que considerábamos complicado resultó ser mucho más complicado una vez que empezamos a trabajar en el problema.
Lo que considerábamos complicado resultó ser mucho más complicado.
Para hacer posible la traducción tanto de los campos gettext como de las cadenas dinámicas añadidas por los usuarios, implementamos una interacción más directa:
- si un plugin o un tema ya estaba traducido, conservaremos la traducción, pero aún puedes cambiarla si no estás de acuerdo con ella;
- las cadenas que se almacenan en la tabla de opciones y se muestran en el front-end se pueden traducir fácilmente, por lo que ya no es necesario buscar en una tabla compleja de traducción de cadenas;
- estás usando la misma interfaz para traducir todas las cadenas de tu sitio.

Una mirada a las peculiaridades y características
Dado que los campos añadidos por gettext difieren de las cadenas normales, existen pequeñas pero notables diferencias entre ellos.
%1$s
Empezaremos con %1$s. Estos representan variables dinámicas que dependen del usuario actual, el número de compras, la configuración del complemento, etc.
Esta es la forma adecuada de traducir estas cadenas y, como beneficio adicional, si el plugin ya está traducido a un idioma en particular, también rellenaremos esos campos con la traducción correcta.
Cadena original
La implementación de gettext no te permite definir en qué idioma están las cadenas. Así que si eres un desarrollador de complementos de Francia, eres libre de desarrollar tu complemento en francés. Es por eso que verás la “Cadena original” y todos los idiomas debajo de ella. Incluso el inglés. Las cadenas que podemos detectar se resaltan usando el botón de edición verde.
Un efecto secundario genial es que incluso puedes cambiar la cadena predeterminada “traduciéndola” al inglés, por ejemplo.
Un efecto secundario desafortunado es que es diferente del idioma original → Flujo de trabajo de idioma traducido que tenemos disponible para las cadenas normales. Así que debes prestar un poco más de atención al idioma al que estás traduciendo hasta que encontremos una mejor manera de representar esto en la interfaz.
Cuerdas ocultas
Las cadenas de Gettext que se añaden con Javascript, así como otras cadenas que no son visibles en la parte frontal del sitio (como los correos electrónicos de WooCommerce o los slugs de URL, por ejemplo), se pueden acceder desde el Traducción de cadenas interfaz. De esta manera puedes traducir contenido que no es accesible desde el Editor Visual.
Y finalmente, hay flujos de trabajo específicos (digamos que un formulario se muestra solo para usuarios no conectados, por lo que como administrador no lo ves) que no expondrán esas cadenas, por lo que no puedes traducirlas. Usando el Navegar como rol complemento puedes navegar por el sitio web desde el editor de traducción como tú mismo u otro rol (iniciado sesión) o como un usuario no iniciado sesión. De esta manera podrás traducir cadenas que se muestran dinámicamente según el estado de inicio de sesión o no inicio de sesión.
Si tienes curiosidad por saber más, aquí tienes un breve vídeo sobre cómo traducir cualquier tipo de contenido dinámico o variable con TranslatePress:
TranslatePress facilita la traducción de todas las cadenas dinámicas
Puedes Descargar TranslatePress gratis en WordPress.org. Fue creado para facilitarte mucho la gestión de la traducción de cadenas dinámicas y hacer que tu sitio sea multilingüe.
Descárgalo, juégalo y cuéntanos lo que necesitas para que tu experiencia traduciendo un sitio de WordPress sea mucho mejor.
Si estás satisfecho con ello, podrías considerar actualizar a la versión premium para idiomas ilimitados, funciones SEO avanzadas, y más.
TranslatePress Multilingüe
Un gran Gracias a todos nuestros beta-testers e Ionuț Neagu de parte de CodeinWP para sus comentarios iniciales.
¿Todavía tienes preguntas sobre cómo traducir cadenas dinámicas? ¡Háznoslo saber en la sección de comentarios a continuación!
Si encontraste útil esta publicación, por favor visita nuestro Canal de YouTube, donde subimos constantemente tutoriales en video cortos y fáciles de seguir. También puedes seguirnos en Facebook y Twitter ser el primero en enterarte cada vez que publicamos.
[…] Traducir cadenas dinámicas en WordPress – una nueva forma de traducir cadenas dinámicas en WordPress. […]