Cómo importar traducciones de temas y plugins a WordPress.org
Dos vías ponen los archivos .po y .mo traducidos al alcance de los usuarios de WordPress.org. Solicite acceso CLPTE (1-2 semanas) o incluya los archivos .mo en su versión (disponibles al día siguiente). Ambas funcionan. El equilibrio está entre la distribución canónica y la rapidez. Esta guía explica cuándo usar cada vía y el paso a paso de ambas.
Usted tradujo su plugin o tema con PTC (Private Translation Cloud) y dispone de 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 incluidos son dos canales de distribución distintos. Elija uno según su cadencia de publicación y su audiencia.
Vía 1: Publicar traducciones mediante 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 normal de Translation Editor es por idioma; CLPTE no lo es.
Si ya tiene una cuenta en WordPress.org, puede encontrarse con que su nueva cuenta CLPTE queda deshabilitada. WordPress no permite varias cuentas. Para resolverlo, escriba a forum-password-resets@wordpress.org y explique que está intentando crear una cuenta CLPTE. Compartir la documentación de Polyglots correspondiente con el moderador y avisar al equipo de Polyglots en Slack también ayuda.
Tiempo estimado: ~3-5 días (incluye el tiempo de espera si su nueva cuenta queda deshabilitada).
Paso 2: Solicitar acceso CLPTE en el blog de Polyglots
Con su cuenta habilitada, publique una solicitud en el blog de Polyglots de WordPress.org. Siga 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 Polyglots Global Team 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 local de 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 incorporan a la siguiente generación del paquete de idioma (normalmente diaria).
- Repita esto 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 una ventana de paquete de idioma de 24-48 horas, los sitios que ejecutan su plugin empiezan a recibir las nuevas traducciones mediante las actualizaciones automáticas de paquetes de idioma de WordPress. Los usuarios no ven ningún aviso de actualización. Las traducciones simplemente aparecen.
Qué hace y qué no hace CLPTE por usted
- No puede reemplazar traducciones existentes de la comunidad. Solo se importan las cadenas sin traducir. Actualizar una traducción existente de la comunidad requiere el proceso estándar y esperar la revisión del equipo de la configuración regional.
- Las actualizaciones requieren subidas manuales en cada versión. Cada nueva versión implica una nueva ronda de subidas.
- La creación y aprobación de la cuenta pueden tardar hasta una semana.
Vía 2: Incluir los archivos .mo dentro de su plugin o tema
Si necesita que las traducciones estén activas más rápido de lo que permite CLPTE, o si prefiere no depender del flujo de distribución de WordPress.org, incluya los archivos .mo directamente en la versión 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
Use 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: Dar prioridad a sus archivos incluidos sobre las traducciones de la comunidad
De forma predeterminada, WordPress prioriza las traducciones de la comunidad de WordPress.org sobre las incluidas. Para asegurarse de que su plugin o tema use en su lugar los archivos .mo incluidos, añada el filtro load_textdomain_mofile.
Para plugins, añada esto a su archivo principal del plugin (p. ej., 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 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 hook correcto:
add_action( 'init', function() {
load_plugin_textdomain(
'my-plugin',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
} );
Paso 3: Verificar que las traducciones incluidas 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 traducciones antiguas de la comunidad, revise el fragmento del Paso 2. Debe apuntar correctamente a sus archivos .mo incluidos.
Haga commit de los archivos .mo, etiquete una versión y súbala a wordpress.org mediante SVN como hace habitualmente.
El equilibrio entre rapidez y distribución canónica
- Ventaja: inmediato. Las nuevas traducciones están activas en el momento en que los usuarios actualizan su plugin (o lo instalan por primera vez). Sin esperar 1-2 semanas por CLPTE. Sin ciclo de aprobación del equipo de Polyglots.
- Ventaja: usted controla el flujo de trabajo. La cadencia de traducción coincide exactamente con su cadencia de publicación.
- Ventaja: sin dependencia de la insignia del plugin. Las traducciones funcionan tenga o no su plugin permisos CLPTE.
- Desventaja: el tamaño del archivo del plugin crece. Cada
.moes pequeño (normalmente 5-50 KB), pero 20 idiomas añaden unos 500 KB a la descarga. - Desventaja: sin actualización automática de las traducciones entre versiones del plugin. Con CLPTE, las traducciones actualizadas en wordpress.org se propagan a los usuarios en 48 horas, aunque no publique una nueva versión. Con la inclusión, las traducciones solo se actualizan cuando publica una nueva versión.
- Desventaja: sin insignia de «traducido». WordPress.org muestra en los listados de plugins una insignia de finalización de la traducción basada en la cobertura del paquete de idioma, no en los archivos
.moincluidos. La inclusión por sí sola no obtiene la insignia.
Qué vía se ajusta a su cadencia de publicación
| Situación | Recomendación |
|---|---|
| Distribución canónica a largo plazo; quiere la insignia de traducción | CLPTE - pase por la solicitud de Polyglots |
| Publica actualizaciones del plugin mensualmente o con más frecuencia, y la cadencia de traducción puede seguir el ritmo | Incluir archivos MO |
| Necesita las traducciones activas esta semana y no puede esperar a CLPTE | Incluya archivos MO ahora y solicite CLPTE en paralelo |
| Quiere ambas | Use ambas - no son mutuamente excluyentes |
El enfoque dual es común: incluir archivos MO para disponibilidad inmediata y enviar a CLPTE para la distribución canónica. Los usuarios obtienen las traducciones incluidas al actualizar; la superposición del paquete de idioma las refresca entre versiones.
Traduzca su próxima versión del plugin con PTC
Comience su prueba gratuita de 30 días - 20.000 palabras de regalo, sin tarjeta de crédito. Genere su archivo .pot, súbalo a PTC y obtenga archivos .po y .mo traducidos en minutos, listos para CLPTE o para la inclusión.
Relacionado:
- Internacionalización de WordPress: cómo traducir temas y plugins - el tutorial principal que cubre la generación de POT, los dominios de texto y la carga de traducciones.
- ¿Las traducciones del plugin de WordPress no aparecen? Solucione las traducciones que faltan - guía de resolución de problemas para los fallos de carga más comunes.
- GlotPress vs. PTC para la traducción de plugins/temas de WordPress - cuándo elegir la traducción comunitaria frente a PTC.
- Manual de solicitud PTE/CLPTE de Polyglots de WordPress.org - el proceso canónico de solicitud de CLPTE.