Integración con Weblate

Fundamentos de Weblate

Estructura de los proyectos y los componentes

En Weblate, las traducciones se organizan en proyectos y componentes. Cada proyecto puede contener varios componentes, cada uno con traducciones a idiomas individuales. El componente corresponde a un archivo traducible (por ejemplo, GNU gettext PO (Portable Object) o Recursos de cadenas Android). Los proyectos sirven para organizar los componentes en conjuntos lógicos (por ejemplo, para agrupar todas las traducciones utilizadas en una aplicación).

Adicionalmente, los componentes internos al proyecto pueden estar estructurados utilizando categorías. Los componentes pueden a continuación pertenecer a una categoría, y las categorías pueden estar anidadas.

Internamente, cada proyecto tiene traducciones a cadenas comunes que se propagan entre sus componentes de forma predeterminada. Esto reduce la carga de traducción repetitiva y multiversión. La propagación de la traducción se puede desactivar por Configuración de componentes mediante Conceder propagación de traducciones en caso de que las traducciones diverjan.

Integración del repositorio

Weblate está diseñado para integrarse con el repositorio de control de versiones ascendente, Localización continua describe los bloques de construcción y cómo fluyen los cambios entre ellos.

Ver también

Descripción general de la arquitectura describe como funciona Weblate internamente.

Atribución al usuario

Weblate mantiene las traducciones correctamente realizadas por los traductores en el repositorio de control de las versiones utilizando el nombre y el correo electrónico. Tener un correo electrónico real adjunto al commit sigue el control de las versiones y permite a servicios como GitHub asociar tus contribuciones hechas en Weblate con tu perfil de GitHub.

Esta característica también conlleva el riesgo de que se haga un mal uso del correo-e publicado en los commits del control de versiones. Además, una vez que un commit se ha consolidado en un alojamiento público (como GitHub), no hay forma de redactarlo. Weblate permite consolidar correo-e privado en Cuenta para evitar esto.

Por lo tanto, los administradores deben tener en cuenta lo siguiente al configurar Weblate:

  • Tal uso del correo-e debe estar claramente descrito en los términos del servicio en caso de que se necesite dicho documento. Módulo legal puede ayudar con eso.

  • PRIVATE_COMMIT_EMAIL_OPT_IN puede hacer que los correos electrónicos sean privados de forma predeterminada.

Importar un proyecto de localización en Weblate

Weblate ha sido desarrollado con integración de VCS en mente como su característica del núcleo, tal que la manera más fácil es conceder el acceso a su repositorio de Weblate. El proceso de importación te guiará a lo largo de la configuración de sus traducciones en los componentes de Weblate.

Alternativamente, puede dejar que Weblate configure un repositorio solo local conteniendo todas las traducciones sin integración.

Recuperar traducciones actualizadas desde Weblate

Weblate almacena las cadenas actualizadas en una base de datos y las sube a un repositorio local de control de versiones. Puede añadir un repositorio de Weblate (cuando Exportador de Git está activado) como un repositorio remoto adicional y obtener de él las actualizaciones de traducción.

Antes de esto, puede que quiera consignar cualquier cambio local pendiente hecho en Weblate (consulte Consolidaciones diferidas). Esto puede hacerse desde la interfaz de usuario (en la etiqueta Mantenimiento del repositorio), o desde la línea de comandos usando Cliente de Weblate.

Pushing changes can be automated if you grant Weblate push access to your repository and configure URL de envío al repositorio in the Configuración de componentes, see Enviar cambios efectuados en Weblate.

Como alternativa, emplee API REST de Weblate para actualizar las traducciones de modo que coincidan con la última versión del repositorio VCS remoto.

Recuperar cambios remotos hacia Weblate

Para buscar en Weblate cualquier cadena actualizada recientemente en su repositorio VCS remoto , conceda que Weblate la extraiga del repositorio original . Esto se puede lograr en la interfaz de usuario (en el Mantenimiento del repositorio) o desde la línea de comandos usando Cliente de Weblate.

Esto puede automatizarse configurando un webhook en su repositorio para disparar Weblate cada vez que haya una consigna nueva. Consulte Actualizar repositorios para más detalles.

Si no utiliza la integración de VCS, puede utilizar el IU o API REST de Weblate para actualizar las traducciones tales que coincidan con su código base.

Añadir cadenas nuevas

Si sus archivos de traducción se almacenan en un VCS remoto junto con el código, es probable que ya cuente con un flujo de trabajo para que los desarrolladores introduzcan cadenas nuevas. Se considerará cualquier forma de añadir cadenas, pero considere usar Pasarela de calidad para las cadenas de origen para evitar errores.

Cuando los archivos de traducción están separados del código, las siguientes maneras pueden introducir cadenas nuevas en Weblate.

  • Manualmente, utilizando Agregar nueva cadena de traducción desde el menú Operaciones en el idioma de origen . Puede elegir entre los botones de opción Singular y Plural dentro del formulario. Seleccione la forma apropiada de la nueva cadena de traducción que se agregará.

  • Mediante programación, usando el API POST /api/translations/(string:project)/(string:component)/(string:language)/units/.

  • Al cargar el archivo fuente como Reemplazar archivo de traducción existente (esto sobrescribe las cadenas existentes, así que asegúrese de que el archivo incluya cadenas antiguas y nuevas) o Agregar nuevas cadenas, consulte Métodos de importación.

Nota

La posibilidad de añadir cadenas en Weblate requiere Gestionar cadenas.

Actualización de archivos del idioma destino

Para archivos monolingües (consulte Formatos de archivos de localizaciónn), Weblate podría añadir nuevas cadenas de traducción presentes en la Archivo de base monolingüe, y no en las traducciones reales. Sin embargo, no realiza ninguna purga automática de cadenas obsoletas, ya que esto podría tener resultados inesperados. Si aún así desea hacerlo, instale el complemento Limpieza de archivos de traducción, que gestiona la limpieza según sus necesidades.

Weblate tampoco intentará actualizar archivos bilingües cuando cambie el origen, por lo que si necesita archivos po para ser actualizados desde pot, tiene dos opciones:

  • Automáticamente con un complemento (recomendado para actualizaciones continuas): Instala el complemento Actualizar archivos PO para que coincidan con POT (msgmerge), que ejecuta automáticamente msgmerge para actualizar todos los archivos PO cada vez que cambia el archivo POT.

  • Manualmente por medio de subir. utilice el Update source strings Métodos de importación para subir su archivo POT, el cual se fusionará con las traducciones existentes.

Consejo

Las herramientas de extracción de la cadena origen, tales como xgettext o lupdate, necesitan ser ejecutadas fuera de Weblate.

Introducir cadenas nuevas

Puede cargar cadenas nuevas en Weblate con Gestionar cadenas encendido, pero es mejor usualmente introducir cadenas nuevas junto con los cambios del código que los introdujo.

Es necesario configurar los formatos monolingües para que se añadan nuevas cadenas a Archivo de base monolingüe. Esto lo suelen hacer los desarrolladores al escribir el código. Se recomienda revisar dichas cadenas con Pasarela de calidad para las cadenas de origen.

Los formatos bilingües suelen extraer cadenas del código fuente mediante herramientas (como xgettext o intltool-update). Consulta la documentación de tu entorno de localización para obtener instrucciones sobre cómo hacerlo. Una vez extraídas las cadenas, podría ser necesario un paso adicional para actualizar las traducciones existentes; consulta Actualización de archivos del idioma destino.

Consejo

La automatización de la extracción de cadenas está actualmente fuera del alcance de Weblate. Generalmente implica la ejecución de código no confiable, lo que la hace más adecuada para una integración continua genérica que para una plataforma específica de localización.

Quizá quiera integrar esto a su conducto de integración continua para hacer que las cadenas nuevas aparezcan automáticamente para la traducción. Tal conducto además cubriría Evitar conflictos de fusión.

Gestionar el repositorios VCS local

Weblate almacena todas las traducciones en su repositorio de control de versiones subyacente. Se sugiere que esté conectado a uno remoto, pero también es posible una configuración interna. El Mantenimiento del repositorio concede controlar este repositorio. Para obtener una descripción detallada de las acciones disponibles, consulte Mantenimiento de repositorio.

Consejo

Con Localización continua, cualquier cambio se envía automáticamente desde el repositorio , por lo que generalmente no es necesario administrarlo manualmente.

../_images/component-repository.webp