Mòduls opcionals de Weblate

Hi ha diversos mòduls opcionals disponibles per a la vostra configuració.

Exportador de Git

Us proporciona accés de només lectura al dipòsit de Git subjacent mitjançant HTTP(S).

Installation

  1. Afegiu weblate.gitexport a les aplicacions instal·lades a settings.py:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. Exporteu els dipòsits existents migrant la vostra base de dades després de la instal·lació:

    weblate migrate
    

Suggeriment

Git exporter is turned on in our official Docker image. To turn it off, use:

WEBLATE_REMOVE_APPS=weblate.gitexport

Usage

El mòdul es connecta automàticament a Weblate i estableix l’URL del repositori exportat al Configuració dels components. Els repositoris són accessibles a la part /git/ de l’URL del Weblate, per exemple https://example.org/git/weblate/main/.

Els repositoris per a projectes disponibles públicament es poden clonar sense autenticació:

git clone 'https://example.org/git/weblate/main/'

Access to browse the repositories with restricted access (with Private access control or when REQUIRE_LOGIN is enabled) requires an API token which can be obtained in your user profile:

git clone 'https://user:KEY@example.org/git/weblate/main/'

Nota

Weblate serveix al mateix repositori Git, però no serveix objectes Git LFS. Per als dipòsits que utilitzen Git LFS, cloneu des del dipòsit amunt i afegiu Weblate com un altre control remot. Si només necessiteu fitxers amb seguiment de Git, podeu clonar des de Weblate amb GIT_LFS_SKIP_SMUDGE=1 per ometre la descàrrega d’objectes Git LFS.

Suggeriment

By default members of Users group and anonymous user have access to the repositories for public projects via Access repository and Power user roles.

Facturació

S’utilitza a Hosted Weblate per definir plans de facturació, fer el seguiment de factures i límits d’ús.

Installation

1. Add weblate.billing to installed apps in settings.py:

INSTALLED_APPS += ("weblate.billing",)
  1. Executeu la migració de la base de dades per instal·lar opcionalment estructures de bases de dades addicionals per al mòdul:

weblate migrate

Creació i assignació del pla de facturació

Primer heu de crear un pla de facturació per activar la facturació. Navegueu a la secció «Administració» (representada per la icona de la clau anglesa) i obriu la pantalla «Eines». A partir d’aquí, aneu a la «interfície d’administració de Django».

A la interfície d’administració de Django, localitzeu la secció «FACTURACIÓ» i afegiu un pla de facturació. Per exemple, podeu afegir un pla «gratuït» sense cap cost.

Si voleu assignar un pla de facturació a un projecte existent, també es pot fer des de la «interfície d’administració de Django» mitjançant l’opció «Facturacions del client».

Finalment, la «interfície d’administració de Django» ofereix una opció «Factura» per registrar els pagaments dels vostres clients.

Usage

After installation you can control billing in the admin interface. Users with billing enabled will get new Billing tab in their Perfil d’usuari.

El mòdul de facturació també permet als usuaris crear nous projectes i components sense ser superusuaris (vegeu Afegir projectes i components de traducció). Això és possible quan es compleixen les condicions següents:

  • La facturació està en els seus límits configurats (qualsevol ús excessiu provoca el bloqueig de la creació del projecte/component) i es paga (si el seu preu és diferent de zero)

  • L’usuari té permís Afegeix projectes a l’espai de treball per a l’espai de treball cobert pel pla de facturació.

En crear el projecte, l’usuari pot triar quin espai de treball ha de contenir el projecte. Els projectes creats en un espai de treball amb un recompte de facturació en funció del pla de facturació assignat a aquest espai de treball. Els usuaris amb el permís Edita la configuració de l’espai de treball poden veure i pagar el pla de facturació; Els correus electrònics de notificació de facturació s’envien a aquests usuaris. Vegeu Facturació per a més detalls.

Avatars

Els avatars es descarreguen i es guarden a la memòria cau del costat del servidor per reduir les filtracions d’informació als llocs que els serveixen de manera predeterminada. El suport integrat per obtenir avatars de les adreces de correu electrònic configurades per a això es pot desactivar mitjançant ENABLE_AVATARS.

Weblate actualment admet:

Localization CDN

Els complements CDN de localització de JavaScript i Translation files CDN escriuen fitxers a LOCALIZE_CDN_PATH; Weblate no els serveix. Configureu el servidor web o el servei CDN LOCALIZE_CDN_URL com a amfitrió de fitxers estàtic públic de només lectura.

Tracteu tots els fitxers CDN publicats com a públics. L’UUID específic del complement a l’URL no és un mecanisme de control d’accés. No activeu els complements CDN per a components que continguin cadenes privades, text de producte inèdit, dades de clients, URL interns, exemples d’API, camins de repositori, comentaris del traductor o metadades de format de fitxer que no s’han d’exposar.

El complement Translation files CDN publica fitxers de traducció en brut en formats compatibles amb Weblate. Alguns formats poden ser interpretats pels navegadors o altres clients com a HTML, SVG, XML, JavaScript, YAML o configuració específica de l’aplicació. Serviu el CDN des d’un domini dedicat que està separat de Weblate i de l’aplicació que consumeix les traduccions. No compartiu galetes d’autenticació amb el domini CDN.

Recommended server configuration:

  • Serviu només el directori configurat per LOCALIZE_CDN_PATH; no exposeu repositoris, còpies de seguretat, suports, configuració o tot el directori de dades de Weblate.

  • Disable directory listing.

  • Utilitzeu HTTPS i feu que l’amfitrió CDN sigui només de lectura des del servidor web.

  • Envieu X-Content-Type-Options amb nosniff.

  • Configureu els tipus MIME conservadors. Doneu formats de traducció desconeguts com a text/plain o application/octet-stream; només serveix weblate.js com a JavaScript.

  • Per als formats de traducció en brut que no estan pensats per ser representats en un navegador, considereu afegir Content-Disposition amb attachment.

  • Configureu Access-Control-Allow-Origin només per a llocs que necessiten accés al navegador als fitxers.

  • Estableix temps de vida de la memòria cau que coincideixin amb les teves expectatives d’actualització i purgues les memòries cau de CDN quan les traduccions obsoletes hagin de desaparèixer ràpidament.

El següent fragment de nginx només serveix al directori CDN configurat i aplica valors per defecte conservadors per als fitxers de traducció en brut:

weblate/examples/weblate.nginx.cdn.conf
#
# nginx configuration for the Weblate localization CDN
#
# You will want to change:
#
# - server_name to match the host configured in LOCALIZE_CDN_URL
# - root to match LOCALIZE_CDN_PATH
# - Access-Control-Allow-Origin to the sites that need browser access
# - TLS configuration if HTTPS is not terminated before nginx
#
server {
    listen 80;
    server_name cdn.example.com;

    # LOCALIZE_CDN_PATH
    root /home/weblate/data/l10n-cdn;

    autoindex off;
    disable_symlinks on;

    location = / {
        return 404;
    }

    # The JavaScript localization add-on publishes this loader.
    location ~ "^/[0-9a-f]{32}/weblate\.js$" {
        try_files $uri =404;

        types {
            application/javascript js;
        }
        default_type application/javascript;

        add_header X-Content-Type-Options nosniff always;
        # add_header Access-Control-Allow-Origin "https://www.example.com" always;

        expires 1h;
    }

    # Other CDN files are translation files. Serve them conservatively so raw
    # formats are not interpreted as active browser content.
    location / {
        try_files $uri =404;

        types {
        }
        default_type text/plain;

        add_header X-Content-Type-Options nosniff always;
        add_header Content-Disposition "attachment" always;
        # add_header Access-Control-Allow-Origin "https://www.example.com" always;

        expires 1h;
    }
}

Signar compromisos de Git amb GnuPG

Totes les confirmacions es poden signar amb la clau GnuPG de la instància de Weblate.

  • Activa WEBLATE_GPG_IDENTITY. (Weblate generarà una clau GnuPG quan sigui necessari i l’utilitzarà per signar tots els compromisos de traducció.)

    Aquesta funció necessita instal·lar GnuPG 2.1 o posterior.

    Podeu trobar la clau a DATA_DIR i la clau pública es mostra a la pàgina «Quant a»:

    ../_images/about-gpg.webp
  • Alternativament, també podeu importar les claus existents a Weblate, només cal que configureu HOME=$DATA_DIR/home quan invoqueu gpg.

Suggeriment

Weblate guarda a la memòria cau el material clau durant un llarg període. En cas que deixeu que Weblate generi una clau amb WEBLATE_GPG_IDENTITY i després importeu la clau amb la mateixa identitat per utilitzar una clau existent, es recomana purgar la memòria cau redis per veure l’efecte d’aquest canvi.

Nota

Quan compartiu DATA_DIR entre diversos amfitrions, seguiu les instruccions a https://wiki.gnupg.org/NFS per fer que la signatura de GnuPG funcioni de manera fiable.

Vegeu també

WEBLATE_GPG_IDENTITY

Limitació de tarifes

Canviat a la versió 4.6: La limitació de tarifes ja no s’aplica als superusuaris iniciats.

Several operations in Weblate are rate limited. Rate limits are evaluated independently for each scope. At most RATELIMIT_ATTEMPTS attempts are allowed within RATELIMIT_WINDOW seconds in one scope. That scope is then blocked for RATELIMIT_LOCKOUT; Weblate does not turn this into a sitewide temporary IP ban. Exceeding one scope, such as TRANSLATE or SEARCH, does not by itself block unrelated scopes such as LOGIN or SECOND_FACTOR. There are also settings specific to scopes, for example RATELIMIT_CONTACT_ATTEMPTS or RATELIMIT_TRANSLATE_ATTEMPTS. The table below is a full list of available scopes.

Les operacions següents estan subjectes a limitació de tarifes:

Nom

Abast

Intents permesos

Finestra de límit de taxa

Període de bloqueig

Registre

REGISTRATION

5

300

600

Enviament de missatges als administradors

MESSAGE

2

300

600

Password authentication on sign-in

LOGIN

5

300

600

Second-factor authentication

SECOND_FACTOR

5

300

600

Cerca a tot el lloc

SEARCH

6

60

60

Translating

TRANSLATE

30

60

600

S’afegeix al glossari

GLOSSARY

30

60

600

Starting translation into a new language

LANGUAGE

2

300

600

Creating new project

PROJECT

5

600

600

Connecting a GitHub account

GITHUB_SETUP

100

3600

600

Within each scope, the rate limiting is based on sessions when user is signed in and on IP address if not.

For signed-in users, Weblate records the first rejected request during each active scope lockout in the Registre d’auditoria, including the scope and request path. Repeated rejections during the same lockout do not create additional audit-log entries.

Si un usuari no inicia la sessió AUTH_LOCK_ATTEMPTS vegades, l’autenticació de contrasenya es desactivarà al compte fins que hagi passat pel procés de restabliment de la contrasenya.

La configuració també es pot aplicar al contenidor Docker afegint el prefix WEBLATE_ al nom de la configuració, per exemple RATELIMIT_ATTEMPTS es converteix en WEBLATE_RATELIMIT_ATTEMPTS.

L’API té configuracions de limitació de velocitat separades, vegeu Limitació de velocitat de l’API.