PTC

Cómo importar traducciones de temas y plugins a WordPress.org

Dos vías ponen los archivos .po y .mo traducidos a disposición de los usuarios de WordPress.org. Solicite acceso CLPTE (de 4 a 6 días) o incluya los archivos .mo en su lanzamiento (al día siguiente). Ambas funcionan. La elección es entre distribución canónica o velocidad. Esta guía explica cuándo usar cada vía y el proceso paso a paso para ambas.

Usted ha traducido su plugin o tema con PTC (Private Translation Cloud) y 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 idiomas de WordPress.org y sus archivos incluidos son dos canales de distribución separados. Elija uno en función de su frecuencia de lanzamientos y su público.

Vía 1: Publicar traducciones a través de paquetes de idiomas de WordPress.org (CLPTE)

Tiempo total: de 4 a 6 días.

Paso 1: Cree una cuenta CLPTE

El rol CLPTE (Cross-Locale Project Translation Editor) le permite enviar traducciones en nombre de su tema o plugin en cada idioma de destino desde una sola cuenta. Una cuenta de editor de traducciones normal es por idioma; CLPTE no lo es.

Si ya tiene una cuenta en WordPress.org, puede encontrarse con el problema de que su nueva cuenta CLPTE esté desactivada. WordPress no permite múltiples 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 mencionar al equipo Polyglots en Slack son de gran ayuda.

Tiempo estimado: ~3-5 días (incluye el tiempo de espera si su nueva cuenta está desactivada).

Paso 2: Solicite acceso como CLPTE en el blog de Polyglots

Con su cuenta activada, 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 se apruebe su solicitud.

Tiempo estimado: ~1 día (el equipo global de Polyglots revisa las solicitudes por lotes).

Paso 3: Importe los archivos .po traducidos

  1. Inicie sesión en https://translate.wordpress.org/ con su cuenta CLPTE.
  2. 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}/).
  3. Abra el proyecto local para cada idioma que haya traducido.
  4. Desplácese hacia abajo y haga clic en Importar traducciones.
  5. Suba su archivo .po (o .mo).
  6. Marque las cadenas importadas como «actual» en el editor de traducciones. Las cadenas aprobadas se unen a la siguiente generación del paquete de idiomas (normalmente diaria).
  7. Repita este proceso para cada idioma de destino. Cada locale tiene su propia página de traducción.

Tiempo estimado: ~10-30 minutos por idioma.

Después de un periodo de 24 a 48 horas para el paquete de idiomas, los sitios que ejecutan su plugin comienzan a recibir las nuevas traducciones a través de las actualizaciones automáticas de paquetes de idiomas de WordPress. Los usuarios no ven ningún aviso de actualización. Las traducciones simplemente aparecen.

Qué hará y qué no hará CLPTE por usted

  • No puede reemplazar las traducciones de la comunidad preexistentes. Solo se importan las cadenas sin traducir. Actualizar una traducción de la comunidad existente requiere el proceso estándar y esperar la revisión del equipo del locale.
  • Las actualizaciones requieren subidas manuales para cada lanzamiento. Cada nuevo lanzamiento 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 publicadas más rápido de lo que permite CLPTE, o si prefiere no depender del pipeline de distribución de WordPress.org, incluya los archivos .mo directamente en el lanzamiento de su plugin o tema. Tiempo total: de 15 a 30 minutos.

Paso 1: Añada 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: Dé prioridad a sus archivos incluidos sobre las traducciones de la comunidad

De forma predeterminada, WordPress da prioridad a las traducciones de la comunidad de WordPress.org sobre las incluidas en el paquete. Para asegurarse de que su plugin o tema utilice en su lugar los archivos .mo incluidos, añada el filtro load_textdomain_mofile.

Para los plugins, añádalo 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 los temas, añádalo 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 hook correcto:

add_action( 'init', function() {
    load_plugin_textdomain(
        'my-plugin',
        false,
        dirname( plugin_basename( __FILE__ ) ) . '/languages'
    );
} );

Paso 3: Verifique 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:

  1. Vaya a Ajustes > General > Idioma del sitio y seleccione un idioma cuyo archivo .mo esté en su carpeta /languages/.
  2. Cargue una página o pantalla que contenga cadenas que sepa que están traducidas.
  3. Confirme que las cadenas aparecen en el idioma correcto y coinciden con las traducciones que añadió.

Si sigue viendo traducciones de la comunidad antiguas, revise el fragmento de código del Paso 2. Debe dirigir a WordPress correctamente hacia sus archivos .mo incluidos.

Haga un commit de los archivos .mo, etiquete un lanzamiento y haga un push a wordpress.org mediante SVN como lo hace normalmente.

El balance entre la velocidad y la distribución canónica

  • Ventaja: es instantáneo. Las nuevas traducciones se publican en el momento en que los usuarios actualizan su plugin (o lo instalan por primera vez). No hay una espera de varios días por CLPTE. No hay ciclo de aprobación del equipo Polyglots.
  • Ventaja: usted controla el flujo de trabajo. La frecuencia de traducción coincide exactamente con su frecuencia de lanzamientos.
  • Ventaja: sin dependencia de la insignia del plugin. Las traducciones funcionan independientemente de si su plugin tiene permisos CLPTE o no.
  • Desventaja: el tamaño del archivo del plugin aumenta. Cada .mo es pequeño (normalmente de 5 a 50 KB), pero 20 idiomas añaden ~500 KB a la descarga.
  • Desventaja: no hay actualización automática de las traducciones entre lanzamientos del plugin. Con CLPTE, las traducciones actualizadas en wordpress.org se propagan a los usuarios en un plazo de 48 horas, incluso si no publica un nuevo lanzamiento. Con la inclusión en el paquete, las traducciones solo se actualizan cuando publica un nuevo lanzamiento.
  • Desventaja: no hay insignia de «traducido». WordPress.org muestra una insignia de finalización de traducción en las fichas de los plugins en función de la cobertura del paquete de idiomas, no de los archivos .mo incluidos. La inclusión en el paquete por sí sola no permite obtener la insignia.

¿Qué vía se adapta a su frecuencia de lanzamientos?

Situación Recomendación
Distribución canónica a largo plazo; desea la insignia de traducción CLPTE: pase por la solicitud de Polyglots
Publica actualizaciones del plugin mensualmente o con mayor frecuencia, y la frecuencia de traducción puede coincidir Incluir archivos MO en el paquete
Necesita que las traducciones estén publicadas esta semana y no puede esperar a CLPTE Incluir archivos MO en el paquete ahora, solicitar CLPTE en paralelo
Desea ambas Use ambas: no son mutuamente excluyentes

El enfoque dual es común: incluir archivos MO en el paquete para tener disponibilidad inmediata y enviarlos a CLPTE para la distribución canónica. Los usuarios obtienen las traducciones incluidas al actualizar; la superposición del paquete de idiomas las actualiza entre lanzamientos.

Traduzca el próximo lanzamiento de su plugin con PTC

Comience su prueba 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 incluirlos en el paquete.

Relacionado: