Si utilizas la versión gratuita del plugin Polylang para WordPress, ya sabes que la nueva página o post que genera para su traducción no copia el contenido original.
Esta es una de las características de su versión de pago y en la gratis hay que pegarlo a mano.
Para solucionar esto y agilizar el proceso, bastará añadir unas funciones en el archivo functions.php de tu plantilla.
Es aconsejable siempre añadirlo en un "tema hijo", en tu plugin propio de funciones o usando Code Snippets por si no rula en tu caso y puedas revertir los cambios fácilemente o por si se rompe algo por obra y gracia de alguna actualización futura de WordPress, tu plantilla, Polylang o la versión de PHP.
// Copying content when creating a translation with Polylang
function jb_editor_content( $content ) {
// Polylang sets the 'from_post' parameter
if ( isset( $_GET['from_post'] ) ) {
$my_post = get_post( $_GET['from_post'] );
if ( $my_post )
return $my_post->post_content;
}
return $content;
}
add_filter( 'default_content', 'jb_editor_content' );
// Copying content when creating a translation with Polylang
function jb_editor_title( $title ) {
// Polylang sets the 'from_post' parameter
if ( isset( $_GET['from_post'] ) ) {
$my_post = get_post( $_GET['from_post'] );
if ( $my_post )
return $my_post->post_title;
}
return $title;
}
add_filter( 'default_title', 'jb_editor_title' );
Desconozco si funciona en todas las plantillas (aquí va bien con GeneratePress). Lo encontré en una nota de diciembre de 2020, así que lo suyo es probarlo antes en un entorno aislado para pruebas (staging).
Traducción de etiquetas con Polylang, otra historia
Un inciso. Polylang, pese a ser una de los plugins gratuitos para crear un blog multilingüe más populares y ligeros, es de los pocos que uso que creo que no mejora demasiado en su versión PRO. He probado ambas versiones y por momentos resulta aparatoso. Creo que necesita evolucionar para simplificar su uso, mejorar la traducción de cadenas y hacerlo más intuitivo.
Ahora que ya podemos copiar el contenido original con Polylang a la nueva página a traducir ya tendremos el título, el contenido y normalmente también las etiquetas.
El problema aquí, en el caso de los post, es que se copian las etiquetas en español y enseguida se guardan como nuevas añadiéndoles al final el prefijo del idioma en el slug, por ejemplo "nombredeetiqueta-en" (en el caso del idioma ingles).
Eso provoca la creación de una nueva etiqueta más sin vínculo con la del idioma original y además sin traducir. Muy probablemente termine quedándose huérfana o usada en un sólo post.
Y lo que es peor, las etiquetas se amontonarán hasta alcanzar cifras de risa. Créeme, antes de la última revisión y limpieza (que hay que hacer con mucho cuidado si las indexas en el robots.txt y crear redirecciones 301 ya que finalmente son URL´s de tu página que quedarán rotas) sumaban la abultada cifra de 8848.
Además, tener demasiadas etiquetas ralentiza mucho las consultas a la base de datos y perjudica al rendimiento.
La solución no es quitarlas en el editor y añadir nuevas en el nuevo idioma porque eso no hará que se borren, sólo estarás creado otra vez las mismas palabras con el prefijo "-en" en el slug.
El camino ideal, aunque tedioso, es tener claro qué etiquetas (cuatro o cinco como mucho) vas a usar exactamente en el post a traducir y CREAR ANTES sus correspondientes traducciones.
Una vez grabadas las traducciones, al crear la nueva copia del post, Polylang exportará también las etiquetas, pero ahora traducidas para el idioma correspondiente elegido.
Las etiquetas sirven fundamentalmente para mejorar las búsquedas internas en tu blog y aunque muchos expertos en SEO aconsejan no indexar ni etiquetas ni categorías, si se hace con una estrategia racional y cuidada pueden llegar a generar una nada despreciable cantidad de visitas orgánicas. Doy fe.
Se le puede sacar mucha chicha a las etiquetas creando buenas descripciones y una jerarquía lógica que no solape los nombres de las categorías y evitando la creación de contenido que pueda ser considerado duplicado.