Cliente de Weblate¶
Instalación¶
The Weblate Client is shipped separately and includes the Python module. To use the commands below, you need to install wlc using 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
The Docker container uses Weblate Client defaults and connects to the API
deployed on localhost. Configure the API URL and API key using the normal
wlc arguments or environment variables, for example --url,
--key, WLC_URL, and WLC_KEY.
API keys are rejected over non-local http:// URLs by default; use HTTPS,
loopback HTTP for local development, or explicitly opt in to insecure HTTP.
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
When the mounted repository provides the API URL in project configuration and
you pass an unscoped API key to the container, also pin the URL explicitly:
WLC_KEY requires WLC_URL, and --key requires
--url.
If the configured API URL uses non-local http:// and an API key is
provided, the container refuses to send the key unless insecure HTTP is
explicitly enabled. Prefer HTTPS; for legacy deployments, pass
--allow-insecure-http or set WLC_ALLOW_INSECURE_HTTP.
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
Ver también
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¶
Specify the API user key to use. Overrides any value found in the configuration file, see Archivos de configuración. You can find your key in your profile on Weblate. When the API URL is loaded from automatically discovered project configuration,
--keymust be used together with--url. API keys are rejected over non-localhttp://URLs by default.
- --allow-insecure-http¶
Allow sending API keys over non-local
http://URLs. Prefer HTTPS or loopback HTTP instead; this option is intended only for legacy deployments where HTTPS is not available. This option only enables insecure HTTP for the current run; omitting it does not disableallow_insecure_httpfrom configuration.
- --config PATH¶
Cargue la configuración solo desde
PATHen 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.iniArchivo de configuración global en Windows en el perfil itinerante.
C:\Users\NOMBRE\AppData\Local\weblate.iniArchivo de configuración global en Windows en el perfil local.
~/.config/weblateArchivo de configuración global en sistemas tipo Unix.
/etc/xdg/weblateArchivo 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.iniArchivo 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.
- allow_insecure_http
Allow API keys over non-local
http://URLs, defaults tofalse. Loopback HTTP URLs, such ashttp://127.0.0.1:8000/api/, remain allowed for local development without this option. Prefer HTTPS instead of enabling this setting. Automatically discovered project configuration files cannot enable this option; set it in user configuration, an explicit--configfile,WLC_ALLOW_INSECURE_HTTP, or--allow-insecure-http. The setting is cumulative: any trusted source that enables insecure HTTP is enough, and false or unset values from command-line or environment sources do not disable it.
- retries, timeout, allowed_methods, backoff_factor, status_forcelist
Configuración opcional de reintentos HTTP y tiempo de espera que se pasa a
urllib3. Utiliceallowed_methodspara 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ónmethod_whitelistanterior.
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
allow_insecure_http = false
Las claves del API son almacenadas dentro de la sección [keys]:
[keys]
https://hosted.weblate.org/api/ = APIKEY
This allows you to store keys in your personal settings, while using the
.weblate configuration in the VCS repository so that wlc
knows which server it should talk to. The [keys] lookup is scoped to the
exact API URL.
In CI, unscoped keys must pin the API URL explicitly: set both
WLC_URL and WLC_KEY, or use --url together with
--key.
Variables de entorno¶
Added in version 1.18.0.
Distinto en la versión 2.0.1: Unscoped API keys require an explicit API URL when project configuration is
discovered automatically. API keys are rejected over non-local http://
URLs unless insecure HTTP is explicitly enabled.
The API URL and key can also be configured using environment variables. This is
especially useful for CI workflows where WLC_URL pins the destination
and WLC_KEY is injected as a secret:
- WLC_URL¶
URL DE API
- WLC_KEY¶
API key. When the API URL would otherwise come from automatically discovered project configuration,
WLC_KEYis accepted only together withWLC_URL. API keys are rejected over non-localhttp://URLs by default.
- WLC_ALLOW_INSECURE_HTTP¶
Set to
1,true,yes, oronto allow API keys over non-localhttp://URLs. Prefer HTTPS or loopback HTTP instead. Other values, such as0orfalse, are treated as unset and do not disableallow_insecure_httpfrom configuration.
The same protection applies to command-line arguments: --key is
accepted with automatically discovered project configuration only when
--url is provided.
The API URL and key configuration precedence (highest to lowest) is:
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.
The insecure HTTP opt-in is enable-only rather than a normal precedence
setting. It is enabled when --allow-insecure-http is passed, when
WLC_ALLOW_INSECURE_HTTP has a true value, or when
allow_insecure_http is enabled in trusted configuration. Automatically
discovered project configuration cannot enable it; set it in user
configuration or pass an explicit --config file instead.
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