Preguntas frecuentes¶
Configuración¶
¿Cómo se crea un flujo de trabajo automatizado?¶
Weblate es capaz de manejar semiautomáticamente todos los procesos de traducción por usted. Si le otorga el acceso de envío a su repositorio, las traducciones pueden integrarse sin interacción por su parte, a menos que ocurra un conflicto de fusión.
Configure su repositorio Git para avisar a Weblate cuando haya algún cambio, consulte Actuadores de notificación para obtener información sobre cómo hacerlo.
Establezca una URL de inserción en su Configuración de componentes en Weblate, esto permite que Weblate envíe cambios a su repositorio.
Encender Enviar al consolidar en su Configuración de componentes en Weblate, esto realizará que Weblate suba los cambios a su repositorio en cuanto suceda en Weblate.
Ver también
¿Cómo se accede a repositorios a través de SSH?¶
Consulte Acceder a repositorios para informe sobre ajustes de las llaves SSH.
¿Cómo se arreglan los conflictos de fusión en las traducciones?¶
De vez en cuando, se producen conflictos de fusión cuando se modifica el archivo de traducción tanto en Weblate como en el repositorio original al mismo tiempo. Normalmente, puede evitar esto fusionando las traducciones de Weblate antes de realizar cambios en los archivos de traducción (por ejemplo, antes de ejecutar msgmerge). Simplemente indique a Weblate que confirme todas las traducciones pendientes (puede hacerlo en Operaciones del repositorio en el menú Administrar) y fusione el repositorio (si la inserción automática no está activada).
Si ya ha encontrado un conflicto de fusión, la forma más sencilla de resolverlo localmente en su equipo es agregar Weblate como repositorio remoto, fusionarlo con el servidor de origen y corregir cualquier conflicto. Una vez que haya devuelto los cambios, Weblate podrá usar la versión fusionada sin necesidad de realizar ninguna otra acción especial.
Nota
Weblate utiliza clones superficiales por defecto para reducir el tiempo de clonación y el uso del disco. Por ello, el flujo de trabajo que se describe a continuación funciona mejor si se parte de una copia actualizada del repositorio remoto. Si se clona directamente desde el repositorio Weblate exportado, o si la copia remota del repositorio remoto carece de confirmaciones recientes, git remote update weblate puede fallar con errores como warning: no common commits, bad revision u objetos ausentes. Esto no significa necesariamente que Weblate y el repositorio remoto tengan cambios conflictivos. Los administradores que deseen que este flujo de trabajo sea más fiable pueden ajustar VCS_CLONE_DEPTH.
Nota
Según su configuración, el acceso al repositorio de Weblate podría requerir autenticación. Al usar el Exportador de Git integrado en Weblate, se autentica con su nombre de usuario y la clave API.
Nota
Weblate gestiona el repositorio Git, pero no los objetos Git LFS. Para repositorios que utilizan Git LFS, clone desde el repositorio original y añada Weblate como repositorio remoto. Si solo necesita archivos con seguimiento de Git, puede clonar desde Weblate con GIT_LFS_SKIP_SMUDGE=1 para omitir la descarga de objetos Git LFS.
El flujo de trabajo suele ser así cuando se parte de una extracción actualizada del repositorio en desarrollo:
# Open an existing up-to-date checkout of the upstream repository or perform
# a fresh one:
git clone UPSTREAM_REPOSITORY_URL
cd REPO
# Commit all pending changes in Weblate, you can do this in the UI as well:
wlc commit
# Lock the translation in Weblate, again this can be done in the UI as well:
wlc lock
# Add Weblate as remote:
git remote add weblate https://hosted.weblate.org/git/project/component/
# You might need to include credentials in some cases:
git remote add weblate https://username:APIKEY@hosted.weblate.org/git/project/component/
# Update weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts:
edit …
git add …
…
git commit
# Rebase changes (if Weblate is configured to do rebases)
git rebase origin/main
# Push changes to upstream repository, Weblate will fetch merge from there:
git push
# Open Weblate for translation:
wlc unlock
Si utiliza una multitud de ramas con Weblate, puede hacer que se efectúen los mismos cambios en todas:
# Add and update Weblate remotes
git remote add weblate-one https://hosted.weblate.org/git/project/one/
git remote add weblate-second https://hosted.weblate.org/git/project/second/
git remote update weblate-one weblate-second
# Merge QA_4_7 branch:
git checkout QA_4_7
git merge weblate-one/QA_4_7
... # Resolve conflicts
git commit
# Merge main branch:
git checkout main
git merge weblates-second/main
... # Resolve conflicts
git commit
# Push changes to the upstream repository, Weblate will fetch the merge from there:
git push
En el caso de los archivos PO de gettext, existe una forma de fusionar conflictos semiautomáticamente:
Obtenga y conserve un clon local del repositorio Git de Weblate. También obtenga un segundo clon local nuevo del repositorio Git original (es decir, necesita dos copias del repositorio Git original: una intacta y una de trabajo):
# Add remote:
git remote add weblate /path/to/weblate/snapshot/
# Update Weblate remote:
git remote update weblate
# Merge Weblate changes:
git merge weblate/main
# Resolve conflicts in the PO files:
for PO in `find . -name '*.po'` ; do
msgcat --use-first /path/to/weblate/snapshot/$PO\
/path/to/upstream/snapshot/$PO -o $PO.merge
msgmerge --previous --lang=${PO%.po} $PO.merge domain.pot -o $PO
rm $PO.merge
git add $PO
done
git commit
# Push changes to the upstream repository, Weblate will fetch merge from there:
git push
¿Cómo traduzco varias ramas al mismo tiempo?¶
Weblate permite enviar cambios de traducción dentro de un Configuración de proyecto. Para cada Configuración de componentes que lo tenga activado (comportamiento predeterminado), el cambio se propaga automáticamente a los demás. De esta forma, las traducciones se mantienen sincronizadas incluso si las ramas ya han divergido bastante, y no es posible simplemente fusionar los cambios de traducción entre ellas.
Una vez que fusione los cambios de Weblate, tal vez tenga que fusionar estas ramas (en función de su flujo de trabajo de desarrollo) y descartar cualquier diferencia:
git merge -s ours origin/maintenance
¿Cómo traducir proyectos multiplataforma?¶
Weblate admite una amplia gama de formatos de archivo (consulte Formatos de archivos de localizaciónn) y el camino más sencillo consiste en utilizar el formato nativo para cada plataforma.
Una vez que haya agregado todos los archivos de traducción de la plataforma como componentes en un proyecto (consulte Añadir proyectos y componentes de traducción), puede utilizar la función de propagación de traducción (activada de manera predeterminada y se puede desactivar en Configuración de componentes) para traducir cadenas para todas las plataformas a la vez.
¿Cómo se exporta el repositorio Git que utiliza Weblate?¶
El repositorio no tiene nada de especial; se encuentra en el directorio DATA_DIR y se nombra vcs/<project>/<component>/. Si tiene acceso SSH a esta máquina, puede usar el repositorio directamente.
Para obtener acceso anónimo, es posible que desees ejecutar un servidor Git y dejar que sirva el repositorio al mundo exterior.
Alternativamente, puede utilizar Exportador de Git dentro del Weblate para automatizar esto.
¿Qué opciones existen para enviar los cambios al proyecto originario?¶
Esto en gran medida depende de su infraestructura, y Weblate es muy flexible en esta área. A continuación se proporcionan algunos ejemplos de flujos de trabajo en los que se integra Weblate:
Weblate empuja y fusiona cambios (consulte ¿Cómo se crea un flujo de trabajo automatizado?).
Manualmente dígale a Weblate que envíe (si es necesario envíe acceso al repositorio en desarrollo).
Alguien fusiona manualmente los cambios del repositorio git de Weblate en el repositorio en desarrollo.
Alguien reescribe la historia producida por Weblate (p.e., eliminando consigna de fusión), fusiona los cambios, y le dice a Weblate que restablezca el contenido en el repositorio en desarrollo.
Por supuesto, puede combinarlos todos como guste.
¿Cómo hago para limitar el acceso de Weblate a las traducciones solamente y no exponer el código fuente?¶
Es posible utilizar git submodule para separar las traducciones del código fuente sin dejar de tenerlas bajo control de versiones.
Cree un repositorio que contenga sus archivos de traducción.
Añádalo como submódulo a su base de código:
git submodule add git@example.com:project-translations.git path/to/translations
Enlace Weblate a este repositorio y ya no necesitará acceder al repositorio que contiene su código fuente.
Puede actualizar el repositorio principal con las traducciones provenientes de Weblate así:
git submodule update --remote path/to/translations
Consulte la documentación de git submodule para obtener más información.
¿Cómo puedo comprobar que he configurado mi Weblate adecuadamente?¶
Weblate incluye un conjunto de comprobantes de configuración los cuales pueden ver en el interfaz de admin, tan solo siga el enlace Informe de rendimiento en el interfaz admin, o abra directamente el URL /manage/performance/.
Ver también
¿Por qué todos los commits consolidados por Weblate son <noreply@weblate.org>?¶
Weblate utiliza Weblate <noreply@weblate.org> como el committer por defecto para todos los commits, que es configurado por DEFAULT_COMMITER_EMAIL y DEFAULT_COMMITER_NAME. Este es un identificador técnico que muestra que el commit fue procesado a través de Weblate.
Sin embargo, el autor de cada consigna se registra correctamente como el usuario individual que hizo la traducción (cuando se utiliza Git). Esto significa que puedes ver quién tradujo realmente cada cadena examinando el campo del autor de la consigna. Lo mismo se aplica a Mercurial; sólo Subversion no tiene esta capacidad.
Nota
En Git, existe una distinción entre el que consigna (quien crea el objeto de consigna) y el autor (quien realiza los cambios). Weblate actúa como committer a la vez que mantiene la atribución individual de los traductores como autores.
En el caso de las consignas cuya autoría no puede determinarse (como los cambios automáticos a partir de sugerencias anónimas o los resultados de traducciones automáticas), el autor es el usuario anónimo. Puede configurar el nombre y el correo-e del usuario anónimo en ANONYMOUS_USER_NAME.
Ver también
¿Cómo se mover archivos dentro del repositorio sin perder el historial en Weblate?¶
Para mantener el historial, los comentarios o las capturas de pantalla vinculados a cadenas tras cambiar el lugar de los archivos, debe asegurarse de que estas cadenas nunca se eliminen en Weblate. Estas eliminaciones pueden ocurrir si se actualiza el repositorio de Weblate, pero la configuración del componente sigue apuntando a los archivos antiguos. Esto hace que Weblate asuma que debe eliminar todas las traducciones.
La solución a esto es realizar la operación en sincronía con Weblate:
Bloquea el componente afectado en Weblate.
Consigne los cambios pendientes y fusiónelos en el repositorio en desarrollo.
Inhabilita recepción de ganchos de web del Configuración de proyecto; esto previenen Weblate desde cambios de vista inmediata dentro del repositorio.
Realice los cambios necesarios en el repositorio (por ejemplo, usando git mv) y súbalo al repositorio en desarrollo.
Cambie el Configuración de componentes para que coincida con la nueva configuración; al cambiar la configuración, Weblate buscará el repositorio actualizado y notará los lugares modificados manteniendo las cadenas existentes.
Desbloquea el componente y re-habilita ganchos en la configuración del proyecto.
Consejo
Copias de respaldo a nivel del proyecto tal vez es útil realizar un respaldo del proyecto antes de realizar cambios tan disruptivos.
Modo de empleo¶
¿Cómo reviso las traducciones de otros?¶
Hay varios flujos de trabajo basados en revisiones disponibles en Weblate, consulte Flujos de trabajo de traducción.
Puedes suscribirte a cualquier cambio realizado en Notificaciones y luego verificar las contribuciones de otros a medida que llegan por correo-e.
Hay una herramienta de revisión disponible en la parte inferior de la vista de traducción, donde puedes elegir explorar las traducciones realizadas por otros desde una fecha determinada.
Ver también
¿Cómo puedo proporcionar comentarios sobre una cadena fuente?¶
En las pestañas de contexto debajo de la traducción, puede usar la pestaña Comentarios para proporcionar comentarios sobre una cadena de origen o discutirla con otros traductores.
¿Cómo puedo utilizar traducciones existentes mientras traduzco?¶
Todas las traducciones que se realicen dentro de Weblate pueden reutilizarse gracias a su memoria de traducción compartida.
Es posible importar archivos de memoria de traducción existentes en Weblate.
Utiliza la función de importación para cargar el compendio como traducciones, sugerencias o traducciones que necesitan revisión. Este es el mejor enfoque para una traducción única utilizando un compendio o una base de datos de traducción similar.
Puede configurar tmserver con todas las bases de datos que tenga y dejar que Weblate la utilice. Esto es bueno cuando se quiere utilizar varias veces durante la traducción.
Otra opción es traducir todos los proyectos relacionados en una única instancia de Weblate, la cual lo hará automáticamente tomar las traducciones también desde otros proyectos.
¿Weblate actualiza los archivos de traducción además de las traducciones?¶
Weblate trata de limitar al mínimo los cambios efectuados en los archivos de traducción. Sin embargo, esto no es posible en ciertos tipos de archivo y se producirán cambios de formato. Si quiere mantener el formato de sus archivos según su predilección, tendrá que servirse de algún gancho pre-consigna para ese.
Ver también
¿Cómo se fusiona el archivo POT con las traducciones PO?¶
Consulte Actualización de archivos del idioma destino para obtener información sobre cómo actualizar los archivos PO cuando cambia la plantilla POT.
¿De dónde vienen las definiciones de los idiomas y cómo puedo agregar las mías propias?¶
El conjunto básico de definiciones de idiomas se incluye en Weblate y Translate-toolkit. Abarca más de 150 idiomas e incluye información sobre plurales o la dirección del texto.
Eres libre de definir tus propios idiomas en la interfaz administrativa, solo necesitas proporcionar información al respecto.
Ver también
¿Puede Weblate resaltar los cambios en una cadena difusa?¶
Weblate admite esto, sin embargo necesita los datos para mostrar la diferencia.
Para los archivos PO de Gettext, debe pasar el parámetro --previous a msgmerge al actualizar los archivos PO, por ejemplo:
msgmerge --previous -U po/cs.po po/phpmyadmin.pot
Para las traducciones monolingües, Weblate puede encontrar la cadena anterior por ID, por lo que muestra las diferencias automáticamente.
¿Por qué Weblate sigue mostrando cadenas de traducción antiguas cuando he actualizado la plantilla?¶
Weblate no intenta manipular los archivos de traducción de ninguna manera, salvo para permitir que los traductores traduzcan. Por lo tanto, tampoco actualiza los archivos traducibles cuando se modifica la plantilla o el código fuente. Simplemente debe hacerlo manualmente y enviar los cambios al repositorio; Weblate los incorporará automáticamente.
Nota
Generalmente es una buena idea fusionar los cambios realizados en Weblate antes de actualizar los archivos de traducción, ya que de lo contrario, es probable que termine con algunos conflictos para fusionar.
¿Cómo cambiar el nombre de los archivos de la traducción?¶
Al renombrar archivos en el repositorio, Weblate puede interpretarlo como una eliminación y adición de archivos. Esto puede provocar la pérdida del historial de cadenas, comentarios y sugerencias.
Para evitar eso, realiza renombrado en los pasos siguientes:
Bloquea el componente de traducción en Gestionar el repositorios VCS local.
Consignar cambios pendientes en Gestionar el repositorios VCS local.
Fusiona los cambios de Weblate para el repositorio en desarrollo.
Inhabilite la recepción de actualizaciones a través de ganchos usando Activar actuadores.
Realiza el renombrado de los archivos en el repositorio.
Actualice la configuración del componente para que coincida con los nombres nuevos de archivo.
Habilite los enlaces de actualización y desbloquee el componente.
Consejo
Copias de respaldo a nivel del proyecto tal vez es útil realizar un respaldo del proyecto antes de realizar cambios tan disruptivos.
Solución de problemas¶
Las solicitudes a veces fallan con el error «demasiados archivos abiertos»¶
Esto sucede en ocasiones cuando su repositorio Git ha crecido en demasía y tiene muchos. Comprimir los repositorios Git mejorará la situación.
La manera más sencilla de hacerlo es ejecutar lo siguiente:
# Go to DATA_DIR directory
cd data/vcs
# Compress all Git repositories
for d in */* ; do
pushd $d
git gc
popd
done
Ver también
Cuando entro en el sitio recibo un error «Petición incorrecta (400)»¶
Previsiblemente, esto se debe a una configuración inadecuada de ALLOWED_HOSTS. Aquí deben figurar todos los nombres de anfitrión a los que se desea acceder en su Weblate. Por ejemplo:
ALLOWED_HOSTS = ["weblate.example.com", "weblate", "localhost"]
Ver también
¿Qué significa “Hay más cambios para el único idioma (es)”?¶
Esto típicamente sucede cuando tiene el archivo de traducción para el idioma fuente. Weblate conserva seguimiento de cadenas origen y reserva idioma origen para esto. El archivo adicional para el no es procesado el mismo idioma.
En caso de que sea deseada la traducción al idioma origen, p.f. cambie la Idioma del código fuente dentro del componente de opciones. Quizá desea utilizar Inglés (Desarrollador) como un idioma origen, o utilice Pasarela de calidad para las cadenas de origen.
En caso de que no se necesite el archivo de traducción correspondiente al idioma de origen, elimínelo del repositorio.
En caso de que se necesite el archivo de traducción del idioma de origen pero Weblate debería ignorarlo, ajuste el Filtro de idioma para excluirlo.
Consejo
Podrías recibir un mensaje de error similar en otros idiomas. En ese caso, lo más probable es que varios archivos se asignen a un mismo idioma en Weblate.
Esto puede deberse al uso de códigos de idioma obsoletos junto con los nuevos (ja y jp para japonés) o a la inclusión de códigos específicos del país y genéricos (fr y fr_FR). Consulte Procesamiento de códigos de idioma para obtener más detalles.
Funciones¶
¿Weblate admite sistemas de control de versiones aparte de Git y Mercurial?¶
Weblate currently does not have native support for anything other than Git (with extended support for Solicitudes de incorporación de GitHub, Gerrit review requests, and Subversion) and Mercurial, but it is possible to write backends for other VCSes.
Weblate también admite operaciones sin VCS, consulte Archivos locales.
Nota
Para obtener soporte nativo de otros VCS, Weblate requiere el uso de VCS distribuido, y probablemente podría ajustarse para funcionar con cualquier cosa que no sea Git y Mercurial, pero alguien tiene que implementar este soporte.
Ver también
¿Cómo Weblate da crédito a los traductores?¶
Cada cambio realizado en Weblate es consignado en VCS bajo el nombre del traductor. De esta manera, cada cambio único tiene su propia autoría, y puedes rastrearlo usando las herramientas VCS estándar que usas para el código.
Además, cuando el formato del archivo de traducción lo admite, las cabeceras del archivo se actualizan para incluir el nombre del traductor.
¿Por qué Weblate fuerza la visualización de todos los archivos PO en un único árbol?¶
Weblate fue designado en una manera que cada archivo PO está representado como un único componente. Esto es beneficioso para traductores, tal que conozcan que están actualmente traduciendo.
Distinto en la versión 4.2: Los traductores pueden traducir todos los componentes de un proyecto en un idioma determinado en su totalidad.
¿Por qué Weblate utiliza códigos de idioma tales como sr_Latn o zh_Hant?¶
Estos son códigos de idioma definidos por RFC 5646 para indicar mejor que son realmente idiomas diferentes en lugar de modificadores utilizados incorrectamente anteriormente (para variantes @latin) o códigos de país (para chino).
Weblate aún entiende los códigos de idiomas heredados y los asignará a los actuales; por ejemplo, sr@latin se manejará como sr_Latn o zh@CN como zh_Hans.
Nota
Weblate utiliza de forma predeterminada códigos de idioma de estilo POSIX con guión bajo; consulte Definiciones de idioma para obtener más detalles.