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¶
Afegiu
weblate.gitexporta les aplicacions instal·lades asettings.py:INSTALLED_APPS += ("weblate.gitexport",)
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",)
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.
Legal module¶
S’utilitza a Hosted Weblate per proporcionar els documents legals necessaris. Ve amb documents en blanc i s’espera que ompliu les plantilles següents als documents:
legal/documents/tos.htmlDocument de condicions del servei
legal/documents/privacy.htmlDocument de política de privadesa
legal/documents/summary.htmlBreu visió general de les condicions del servei i la política de privadesa
legal/documents/contracts.htmlSubcontractor information
El mòdul legal incrusta aquestes plantilles a Weblate i utilitza legal/documents/tos.html per a la confirmació de les condicions del servei. Això és independent de LEGAL_URL i PRIVACY_URL, que estan pensats per enllaçar amb documents legals allotjats externament des del peu de pàgina quan el mòdul legal no està habilitat. Quan el mòdul legal està habilitat, Weblate enllaça per defecte a les pàgines legals internes.
En canviar els documents de condicions del servei, ajusteu LEGAL_TOS_DATE perquè els usuaris estiguin obligats a acceptar els documents actualitzats.
Nota
Documents legals del servei Hosted Weblate operat per Weblate s.r.o. estan disponibles en aquest repositori Git: <https://github.com/WeblateOrg/wllegal/tree/main/wllegal/templates/legal/documents>.
The bundled terms of service and related legal documents are specific to services operated by Weblate s.r.o. They can serve as an implementation example, but should not be used as a basis for legal documents of other services.
Installation¶
1. Add weblate.legal to installed apps in
settings.py:
INSTALLED_APPS += ("weblate.legal",)
# Optional:
# Social auth pipeline to confirm TOS upon registration/subsequent sign in
SOCIAL_AUTH_PIPELINE += ("weblate.legal.pipeline.tos_confirm",)
# Middleware to enforce TOS confirmation of signed in users
MIDDLEWARE += [
"weblate.legal.middleware.RequireTOSMiddleware",
]
Executeu la migració de la base de dades per instal·lar opcionalment estructures de bases de dades addicionals per al mòdul:
weblate migrate
Provide legal document templates matching your service, as described in Customizing legal documents and styles.
Suggeriment
Als desplegaments de Docker, activeu el mòdul legal mitjançant WEBLATE_LEGAL_INTEGRATION en comptes d’editar settings.py. Utilitzeu tos-confirm per habilitar el mòdul legal i l’aplicació de la confirmació de les condicions del servei, o wllegal per carregar addicionalment les plantilles de documents legals allotjades utilitzades pels serveis operats per Weblate s.r.o. Aquestes plantilles no estan pensades per a un ús general. Per proporcionar les vostres pròpies plantilles a Docker, col·loqueu-les a /app/data/python/customize/templates/legal/documents, consulteu Substitució del logotip i altres fitxers estàtics.
Recreeu el contenidor Docker després de canviar les variables d’entorn, per exemple, utilitzant docker compose up -d. El reinici d’un contenidor existent no aplica els valors d’entorn modificats.
Usage¶
After installation and customization, the legal documents are shown in the Weblate UI.
Les plantilles de documents legals són plantilles normals de Django. El text només es tradueix quan feu servir etiquetes de traducció de Django com ara {% translate %} o {% blocktranslate %}; El text HTML senzill es mostra tal com està escrit.
Les pàgines legals i la visió general d’inici de sessió i registre proporcionen variables terms_url i privacy_url per enllaçar amb les condicions del servei i els documents de la política de privadesa.
Customizing legal documents and styles¶
Provide your own legal documents by overriding these templates in a Creació d’un mòdul Python:
templates/legal/documents/tos.htmltemplates/legal/documents/privacy.htmltemplates/legal/documents/summary.htmltemplates/legal/documents/contracts.htmltemplates/legal/styles.htmlstatic/weblate_customization/legal.css
Place the customization app before weblate.legal and any other app
providing legal template overrides in INSTALLED_APPS so that
Django selects its templates. Only templates you provide are overridden; the
remaining legal templates continue to use the defaults from later apps.
The legal/styles.html template is included in the HTML head of every
legal page. Use it to load a stylesheet from your customization app:
{% load static %}
<link rel="stylesheet" href="{% static 'weblate_customization/legal.css' %}" />
Run weblate collectstatic --noinput after adding or changing the static
file.
In Docker deployments, place document templates in
/app/data/python/customize/templates/legal/documents,
styles.html in
/app/data/python/customize/templates/legal/styles.html, and the
stylesheet in /app/data/python/customize/static/legal.css. The
stylesheet template then uses {% static 'legal.css' %}. Restart the
container to apply the changes, see Substitució del logotip i altres fitxers estàtics.
By default, legal document wrappers use the tos CSS class. Weblate does not
attach any styling to this class; target it from your custom stylesheet, or set
LEGAL_DOCUMENT_CSS_CLASS to another class matching your document
markup. Set the setting to an empty string if no wrapper class is needed.
Utilitzeu LEGAL_HIDDEN_DOCUMENTS per amagar pàgines legals opcionals, com ara subcontractistes, del menú legal. Les pàgines ocultes retornen una resposta 404 quan se’ls sol·licita directament. Si terms o privacy està amagat, els enllaços que utilitzen terms_url o privacy_url tornen a LEGAL_URL o PRIVACY_URL quan estiguin configurats, en cas contrari l’enllaç s’omet.
Per utilitzar documents legals allotjats externament amb la confirmació dels termes, configureu LEGAL_HIDDEN_DOCUMENTS per amagar els termes i la privadesa i configureu LEGAL_URL i PRIVACY_URL. A continuació, la pàgina de confirmació enllaça amb aquests documents externs sense requerir una substitució de la plantilla legal/documents/tos.html.
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.jscom 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-Originnomé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:
#
# 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_DIRi la clau pública es mostra a la pàgina «Quant a»:
Alternativament, també podeu importar les claus existents a Weblate, només cal que configureu
HOME=$DATA_DIR/homequan 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é
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 |
|
5 |
300 |
600 |
Enviament de missatges als administradors |
|
2 |
300 |
600 |
Password authentication on sign-in |
|
5 |
300 |
600 |
Second-factor authentication |
|
5 |
300 |
600 |
Cerca a tot el lloc |
|
6 |
60 |
60 |
Translating |
|
30 |
60 |
600 |
S’afegeix al glossari |
|
30 |
60 |
600 |
Starting translation into a new language |
|
2 |
300 |
600 |
Creating new project |
|
5 |
600 |
600 |
Connecting a GitHub account |
|
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.