Cliente de Weblate

Instalación

EL Weblate Client se distribuye por separado e incluye el módulo Python. Para utilizar los comandos que se indican a continuación, es necesario instalar wlc mediante pip:

pip install wlc

Puedes además ejecutarlo directamente utilizando uvx:

uvx wlc --help

Consejo

También puede utilizar este wlc como un módulo de Python, consulte wlc.

Uso de Docker

El cliente de Weblate está disponible también como imagen para Docker.

La imagen está publicada en Gocker Hub: https://hub.docker.com/r/weblate/wlc

Instalación:

docker pull weblate/wlc

El contenedor Docker utiliza los ajustes predeterminados de Weblate y se conecta al API implementada en localhost. La URL del API y el API_KEY pueden ser configurados a través de los argumentos aceptados por Weblate.

El comando para lanzar el contenedor utiliza la siguiente sintaxis:

docker run --rm weblate/wlc [WLC_ARGS]

Ejemplo:

docker run --rm weblate/wlc --url https://hosted.weblate.org/api/ list-projects

Es posible que desee pasar su Archivos de configuración al contenedor Docker. Cuando tu repositorio contiene una configuración de proyecto tal como .weblate, la forma más sencilla de hacerlo es agregar su directorio actual como el volumen /home/weblate:

docker run --volume $PWD:/home/weblate --rm weblate/wlc show

Primeros pasos

La forma más sencilla de empezar es crear una configuración personal de wlc en ~/.config/weblate (consulte Archivos de configuración para ver las reglas de detección completas y otros lugares):

[weblate]
url = https://hosted.weblate.org/api/

[keys]
https://hosted.weblate.org/api/ = APIKEY

Entonces pude invocar instrucciones en el servidor por defecto:

wlc ls
wlc commit sandbox/hello-world

Configuración heredada

Distinto en la versión 1.17: La configuración heredada que utiliza key sin ámbito ya no es compatible.

Migrar configuración heredada:

[weblate]
url = https://hosted.weblate.org/api
key = YOUR_KEY_HERE

A una configuración con clave delimitada a una URL de API:

[weblate]
url = https://hosted.weblate.org/api

[keys]
https://hosted.weblate.org/api = YOUR_KEY_HERE

Sinopsis

wlc [arguments] <command> [options]

Las órdenes indican cuál operación ha de realizarse.

Descripción

Weblate Client es una biblioteca de Python y una utilidad de línea de comandos para gestionar Weblate de forma remota utilizando API REST de Weblate. La utilidad de línea de comandos se puede invocar como wlc y está integrada en wlc.

Argumentos

El programa acepta los argumentos siguientes, que definen el formato de la salida, o bien, cuál instalación de Weblate utilizar. Deben introducirse antes de cualquier orden.

--format {csv,json,text,html}

Especifique el formato de la salida.

--url URL

Especifique la URL del API. Anula cualquier valor que se encuentre en el archivo de configuración, consulte Archivos de configuración. La URL debe terminar con /api/, por ejemplo, https://hosted.weblate.org/api/.

--key KEY

Especifique la clave del usuario del API a utilizar. Sustituya cualquier valor encontrado en el archivo de configuración, consulte Archivos de configuración. Puede encontrar su clave en su perfil de Weblate.

--config PATH

Cargue la configuración solo desde PATH en lugar de los archivos de configuración global y del proyecto detectados, consulte Archivos de configuración.

--config-section SECTION

Sustituye la sección del archivo de configuración en uso, consulte Archivos de configuración.

Instrucciones

Las siguientes órdenes están disponibles:

version

Declara la versión actual.

list-languages

Enumera los idiomas utilizados en Weblate.

list-projects

Enumera los proyectos en Weblate.

list-components

Enumera los componentes en Weblate.

list-translations

Enumera las traducciones en Weblate.

show

Muestra un objeto de Weblate (traducción, componente o proyecto).

ls

Enumera objetos de Weblate (traducción, componente o proyecto).

commit

Consigna los cambios efectuados en un objeto de Weblate (traducción, componente o proyecto).

pull

Incorpora los cambios en el repositorio remoto en un objeto de Weblate (traducción, componente o proyecto).

push

Envía los cambios en el objeto de Weblate (traducción, componente o proyecto) al repositorio remoto.

reset

Restablece los cambios en un objeto de Weblate (traducción, componente o proyecto) para que coincida con el repositorio remoto.

cleanup

Retira cualquier cambio no seguido en un objeto Weblate para coincidir con el repositorio remoto (traducción, componente o proyecto).

repo

Exhibe estado del repositorio para un objeto Weblate dado (traducción, componente o proyecto).

stats

Exhibe estadísticas detalladas para un objeto Weblate dada (traducción, componente o proyecto).

lock-status

Exhibe estado de bloqueo.

lock

Bloquea el componente para evitar más traducciones en Weblate.

unlock

Desbloquea la traducción del componente de Weblate.

changes

Muestra los cambios correspondientes al objeto indicado.

download

Descarga un archivo de traducción.

--convert

Convierte el formato de archivo. Si no se especifica ningún formato, no se produce ninguna conversión en el servidor y el archivo se descarga tal cual es en el repositorio.

--output

Permite especificar el archivo en el que se guardará la salida; si no se define, se mostrará en la salida estándar.

upload

Carga un archivo de traducción.

--overwrite

Sobrescribir traducciones existentes al cargar.

--input

Archivo del cual se lee contenido; si no se define, se lee de la entrada estándar.

--method

Método de subida a utilizar, consulte Métodos de importación.

--fuzzy

Cadenas difusas (marcadas para editar) procesando (empty, process, approve)

--author-name

Nombre del autor, para sustituir actualmente al usuario autenticado

--author-email

Correo-e del autor, para sobrescribir el usuario actualmente autenticado

Consejo

Puede obtener más información al invocar cada instrucción individual si añade --help; por ejemplo: wlc ls --help.

Archivos de configuración

Cuando se proporciona --config, wlc carga solo ese archivo.

Sin --config, wlc primero carga el archivo de configuración global detectado desde los lugares estándar específicos de la plataforma:

C:\Usuarios\NOMBRE\AppData\Roaming\weblate.ini

Archivo de configuración global en Windows en el perfil itinerante.

C:\Users\NOMBRE\AppData\Local\weblate.ini

Archivo de configuración global en Windows en el perfil local.

~/.config/weblate

Archivo de configuración global en sistemas tipo Unix.

/etc/xdg/weblate

Archivo de configuración de alternativa para todo el sistema.

El programa sigue la especificación XDG, por tanto puede ajustar la colocación de los archivos de configuración mediante las variables de entorno XDG_CONFIG_HOME o XDG_CONFIG_DIRS.

En Windows los directorios APPDATA y LOCALAPPDATA son los lugares preferidos para el archivo de configuración.

Tras cargar la configuración global, wlc carga el archivo de configuración del proyecto más cercano desde el directorio actual o sus antecesores:

.weblate, .weblate.ini, weblate.ini

Archivo de configuración del proyecto situado en el repositorio.

Solo se carga el archivo de configuración del proyecto más cercano. Los archivos de configuración que se encuentren más alejados de los directorios superiores se ignoran.

Siguiendo los ajustes puede ser configurado en la sección [weblate] (puede personalizar esto por --config-section):

key

Removed in version 1.17: Utiliza la sección [claves] para especificar las claves delimitadas para las URL individuales del API, consulte Configuración heredada.

url

URL del servidor del API; el valor predeterminado es http://127.0.0.1:8000/api/.

translation

Ruta para la traducción por defecto - componente o proyecto.

retries, timeout, allowed_methods, backoff_factor, status_forcelist

Configuración opcional de reintentos HTTP y tiempo de espera que se pasa a urllib3. Utilice allowed_methods para listar los métodos de solicitud que se pueden reintentar. Las versiones actuales de wlc utilizan este nombre de ajuste en lugar de la opción method_whitelist anterior.

El archivo de configuración es un INI; por ejemplo:

[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application
retries = 3
allowed_methods = PUT,POST,GET
backoff_factor = 0.2
status_forcelist = 429,500,502,503,504
timeout = 30

Las claves del API son almacenadas dentro de la sección [keys]:

[keys]
https://hosted.weblate.org/api/ = APIKEY

Esto le permite almacenar claves en sus ajustes personales, mientras utiliza la configuración .weblate en el repositorio VCS para que wlc sepa con qué servidor debe comunicarse. En IC, mantenga solo la configuración del repositorio en el control de versiones e inyecte la clave API usando WLC_KEY.

Variables de entorno

Added in version 1.18.0.

La URL y la clave del API también se pueden configurar mediante variables de entorno. Esto resulta especialmente útil para los flujos de trabajo de integración continua (IC) donde el repositorio proporciona la configuración del proyecto y WLC_KEY se inyecta como un secreto:

WLC_URL

URL DE API

WLC_KEY

Clave API

La precedencia de configuración (de más alta a más baja) es:

  1. Argumentos de línea de comando (--url, --key).

  2. Variables de entorno (WLC_URL, WLC_KEY).

  3. La configuración se carga desde --config, o desde la configuración global descubierta más la configuración del proyecto más cercano cuando no se utiliza --config.

Ejemplos

Mostrar la versión actual del programa:

$ wlc version
version: 0.1

Enumerar todos los proyectos:

$ wlc list-projects
name: Hello
slug: hello
url: http://example.com/api/projects/hello/
web: https://weblate.org/
web_url: http://example.com/projects/hello/

Subir un archivo de traducción:

$ wlc upload project/component/language --input /tmp/hello.po

También puede designar que proyecto wlc funcionaría:

$ cat .weblate
[weblate]
url = https://hosted.weblate.org/api/
translation = weblate/application

$ wlc show
branch: main
file_format: po
source_language: en
filemask: weblate/locale/*/LC_MESSAGES/django.po
git_export: https://hosted.weblate.org/git/weblate/application/
license: GPL-3.0+
license_url: https://spdx.org/licenses/GPL-3.0+
name: Application
new_base: weblate/locale/django.pot
project: weblate
repo: git://github.com/WeblateOrg/weblate.git
slug: application
template:
url: https://hosted.weblate.org/api/components/weblate/application/
vcs: git
web_url: https://hosted.weblate.org/projects/weblate/application/

Con esta configuración es sencillo consignar los cambios pendientes del proyecto actual:

$ wlc commit