Cómo importar traducciones de temas y plugins en WordPress.org
Existen dos vías para poner los archivos .po y .mo traducidos a disposición de los usuarios de WordPress.org. Puede solicitar el acceso CLPTE (4-6 días) o incluir los archivos .mo en su lanzamiento (al día siguiente). Ambas opciones funcionan. La diferencia radica en elegir entre la distribución canónica o la rapidez. Esta guía explica cuándo utilizar cada vía y los pasos a seguir para ambas.
Usted ha traducido su plugin o tema con PTC (Private Translation Cloud) y ya tiene los archivos .po y .mo. Los usuarios que instalan su plugin desde WordPress.org no ven esas traducciones de forma predeterminada. Los paquetes de idioma de WordPress.org y sus archivos integrados son dos canales de distribución distintos. Elija uno en función de su ritmo de lanzamientos y de su audiencia.
Vía 1: Publicar traducciones a través de los paquetes de idioma de WordPress.org (CLPTE)
Tiempo total: 4-6 días.
Paso 1: Crear una cuenta CLPTE
El rol CLPTE (Cross-Locale Project Translation Editor) le permite enviar traducciones en nombre de su tema o plugin para todos los idiomas de destino desde una sola cuenta. Una cuenta de editor de traducción estándar es por idioma; la cuenta CLPTE no lo es.
Si ya tiene una cuenta en WordPress.org, es posible que se encuentre con el problema de que su nueva cuenta CLPTE aparezca como desactivada. WordPress no permite tener varias cuentas. Para solucionarlo, envíe un correo electrónico a forum-password-resets@wordpress.org y explique que está intentando crear una cuenta CLPTE. Compartir la documentación pertinente de Polyglots con el moderador y avisar al equipo de Polyglots en Slack suele ayudar.
Tiempo estimado: ~3-5 días (incluye el tiempo de espera si su nueva cuenta queda desactivada).
Paso 2: Solicitar acceso CLPTE en el blog de Polyglots
Una vez activada su cuenta, publique una solicitud en el blog de Polyglots de WordPress.org. Utilice su plantilla:
PTE/CLPTE Request
Plugin URL: https://wordpress.org/plugins/my-plugin/
Authors / Editors: @your-wp-username
Type of request: CLPTE
Recibirá una notificación cuando su solicitud sea aprobada.
Tiempo estimado: ~1 día (el equipo global de Polyglots revisa las solicitudes por lotes).
Paso 3: Importar los archivos .po traducidos
- Inicie sesión en
https://translate.wordpress.org/con su cuenta CLPTE. - Vaya a la página del proyecto de traducción de su plugin o tema (por ejemplo,
translate.wordpress.org/projects/wp-plugins/{your-plugin-slug}/). - Abra el proyecto de la configuración regional para cada idioma que haya traducido.
- Desplácese hacia abajo y haga clic en Import Translations.
- Suba su archivo
.po(o.mo). - Marque las cadenas importadas como “current” en el editor de traducción. Las cadenas aprobadas se incorporarán a la siguiente generación de paquetes de idioma (normalmente de carácter diario).
- Repita el proceso para cada idioma de destino. Cada configuración regional tiene su propia página de traducción.
Tiempo estimado: ~10-30 minutos por idioma.
Tras un periodo de 24-48 horas para la generación del paquete de idioma, los sitios que utilicen su plugin empezarán a recibir las nuevas traducciones a través de las actualizaciones automáticas de paquetes de idioma de WordPress. Los usuarios no verán ningún aviso de actualización; las traducciones simplemente aparecerán.
Lo que CLPTE hará y no hará por usted
- No puede reemplazar traducciones de la comunidad ya existentes. Solo se importan las cadenas no traducidas. Actualizar una traducción comunitaria existente requiere seguir el proceso estándar y esperar a la revisión del equipo local.
- Las actualizaciones requieren subidas manuales para cada lanzamiento. Cada nueva versión implica una nueva ronda de subidas.
- La creación y aprobación de la cuenta suele tardar entre 4 y 6 días en total.
Vía 2: Incluir los archivos .mo dentro de su plugin o tema
Si necesita que las traducciones estén disponibles más rápido de lo que permite CLPTE, o si prefiere no depender del canal de distribución de WordPress.org, incluya los archivos .mo directamente en el lanzamiento de su plugin o tema. Tiempo total: 15-30 minutos.
Paso 1: Añadir los archivos .mo al directorio /languages/
Coloque sus archivos .mo compilados dentro del directorio /languages/ de su plugin o tema para que WordPress los encuentre al cargar su dominio de texto:
my-plugin/
├─ my-plugin.php
├─ readme.txt
├─ languages/
│ ├─ my-plugin-es_ES.mo
│ ├─ my-plugin-es_ES.po
│ ├─ my-plugin-fr_FR.mo
│ ├─ my-plugin-fr_FR.po
│ ├─ my-plugin-de_DE.mo
│ └─ my-plugin-de_DE.po
Utilice el mismo dominio de texto en los nombres de sus archivos de traducción y en sus llamadas a load_plugin_textdomain() o load_theme_textdomain().
Paso 2: Priorizar sus archivos integrados sobre las traducciones de la comunidad
Por defecto, WordPress prioriza las traducciones de la comunidad de WordPress.org sobre las integradas. Para asegurarse de que su plugin o tema utilice los archivos .mo incluidos, añada el filtro load_textdomain_mofile.
Para plugins, añada esto a su archivo principal del plugin (por ejemplo, my-plugin.php):
function my_plugin_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/plugins/' ) ) {
$locale = apply_filters( 'plugin_locale', determine_locale(), $domain );
$local_mofile = WP_PLUGIN_DIR . '/' . dirname( plugin_basename( __FILE__ ) ) .
'/languages/' . $domain . '-' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_plugin_load_embedded_translation_file', 10, 2 );
Para temas, añada esto al archivo functions.php de su tema:
function my_theme_load_embedded_translation_file( $mofile, $domain ) {
if ( 'my-domain' === $domain && false !== strpos( $mofile, WP_LANG_DIR . '/themes/' ) ) {
$locale = apply_filters( 'theme_locale', determine_locale(), $domain );
$local_mofile = get_template_directory() . '/languages/' . $locale . '.mo';
if ( file_exists( $local_mofile ) ) {
return $local_mofile;
}
}
return $mofile;
}
add_filter( 'load_textdomain_mofile', 'my_theme_load_embedded_translation_file', 10, 2 );
Confirme también que su plugin o tema carga el dominio de texto en el gancho (hook) correcto:
add_action( 'init', function() {
load_plugin_textdomain(
'my-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
} );
Paso 3: Verificar que las traducciones integradas se cargan en un sitio de prueba
Instale su plugin o tema en un sitio de prueba y cambie WordPress a uno de los idiomas que ha proporcionado:
- Vaya a Ajustes > Generales > Idioma del sitio y seleccione un idioma cuyo archivo
.moesté en su carpeta/languages/. - Cargue una página o pantalla que contenga cadenas que sepa que están traducidas.
- Confirme que las cadenas aparecen en el idioma correcto y coinciden con las traducciones que añadió.
Si sigue viendo las traducciones antiguas de la comunidad, revise el fragmento de código del Paso 2. Debe dirigir correctamente a WordPress hacia sus archivos .mo integrados.
Haga el commit de los archivos .mo, cree una etiqueta de versión y súbalo a wordpress.org a través de SVN como hace habitualmente.
La balanza entre rapidez y distribución canónica
- Ventaja: instantáneo. Las nuevas traducciones están disponibles en el momento en que los usuarios actualizan su plugin (o lo instalan por primera vez). Sin esperas de varios días por CLPTE. Sin ciclos de aprobación del equipo de Polyglots.
- Ventaja: usted controla el flujo de trabajo. El ritmo de traducción coincide exactamente con su ritmo de lanzamientos.
- Ventaja: sin dependencia de insignias de plugin. Las traducciones funcionan independientemente de si su plugin tiene permisos CLPTE o no.
- Desventaja: el tamaño del archivo del plugin aumenta. Cada
.moes pequeño (normalmente 5-50 KB), pero 20 idiomas añaden unos 500 KB a la descarga. - Desventaja: no hay actualización automática de traducciones entre lanzamientos del plugin. Con CLPTE, las traducciones actualizadas en wordpress.org se propagan a los usuarios en 48 horas, incluso si usted no lanza una nueva versión. Al integrarlas, las traducciones solo se actualizan cuando lanza una nueva versión.
- Desventaja: sin insignia de “traducido”. WordPress.org muestra una insignia de finalización de traducción en los listados de plugins basada en la cobertura de los paquetes de idioma, no en los archivos
.mointegrados. La integración por sí sola no otorga la insignia.
¿Qué vía se adapta mejor a su ritmo de lanzamientos?
| Situación | Recomendación |
|---|---|
| Distribución canónica a largo plazo; desea la insignia de traducción | CLPTE: realice la solicitud a través de Polyglots |
| Lanza actualizaciones del plugin mensualmente o con más frecuencia, y el ritmo de traducción puede coincidir | Integrar archivos MO |
| Necesita que las traducciones estén disponibles esta semana y no puede esperar a CLPTE | Integre los archivos MO ahora y solicite CLPTE en paralelo |
| Quiere ambas opciones | Utilice ambas: no son mutuamente excluyentes |
El enfoque dual es común: integre los archivos MO para una disponibilidad inmediata y envíelos a CLPTE para la distribución canónica. Los usuarios obtienen las traducciones integradas al actualizar, y la capa del paquete de idioma las refresca entre lanzamientos.
Traduzca su próximo lanzamiento de plugin con PTC
Comience su prueba gratuita de 30 días: 20.000 palabras por nuestra cuenta, sin tarjeta de crédito. Genere su archivo .pot, súbalo a PTC y obtenga los archivos .po y .mo traducidos en minutos, listos para CLPTE o para su integración.
Relacionado:
- Internacionalización de WordPress: cómo traducir temas y plugins: el tutorial principal que cubre la generación de POT, dominios de texto y carga de traducciones.
- ¿No aparecen las traducciones del plugin de WordPress? Solucione las traducciones faltantes: guía de resolución de problemas para los errores de carga más comunes.
- GlotPress frente a PTC para la traducción de plugins/temas de WordPress: cuándo elegir la traducción comunitaria frente a PTC.
- Manual de solicitud de PTE/CLPTE de Polyglots en WordPress.org: el proceso canónico de solicitud de CLPTE.