Optionele modules voor Weblate¶
Verscheidene optionele modules zijn voor uw opstelling beschikbaar.
Git exporter¶
Verschaft u toegang voor alleen-lezen tot de onderliggende opslagruimte van Git met HTTP(S).
Installatie¶
Voeg
weblate.gitexporttoe aan geïnstalleerde apps insettings.py:INSTALLED_APPS += ("weblate.gitexport",)
Exporteer bestaande opslagruimten door uw database te migreren na het installeren:
weblate migrate
Hint
Git exporter is ingeschakeld in onze officiële Docker image. Gebruik om het uit te schakelen:
WEBLATE_REMOVE_APPS=weblate.gitexport
Gebruik¶
De module haakt automatisch in Weblate en stelt de URL van de geëxporteerde opslagruimte in het Configuratie onderdeel in. De opslagruimten zijn toegankelijk onder het gedeelte /git/ van de URL voor Weblate, bijvoorbeeld https://example.org/git/weblate/main/.
Opslagruimten voor publiek beschikbare projecten kunnen zonder authenticatie worden gekloond:
git clone 'https://example.org/git/weblate/main/'
Toegang voor het bladeren door de opslagruimten met beperkte toegang (met Privé toegangsbeheer of als REQUIRE_LOGIN is ingeschakeld) vereist een API-token dat u kunt verkrijgen in uw gebruikersprofiel:
git clone 'https://user:KEY@example.org/git/weblate/main/'
Notitie
Weblate serveert de opslagruimte van Git zelf, maar het serveert geen Git LFS-objecten. Voor opslagruimten die Git LFS gebruiken, kloon vanuit de opslagruimte upstream en voeg Weblate toe als een andere remote. Als u alleen door Git gevolgde bestanden nodig hebt, kunt u klonen vanuit Weblate met GIT_LFS_SKIP_SMUDGE=1 om het downloaden van Git LFS-objecten over te slaan.
Hint
Standaard hebben leden of de groep Gebruikers en anonieme gebruikers toegang tot de opslagruimten voor publieke projecten via de rollen Toegang opslagruimte en Poweruser.
Facturatie¶
Dit wordt gebruikt op Hosted Weblate om plannen voor facturatie te definiëren, facturen en verbruikslimieten bij te houden.
Installatie¶
1. Add weblate.billing to installed apps in
settings.py:
INSTALLED_APPS += ("weblate.billing",)
Voer de migratie van de database uit om optioneel aanvullende structuren van de database voor de module te installeren:
weblate migrate
Maken en toewijzen van plannen voor facturatie¶
U moet eerst een plan voor facturatie activeren. Navigeer naar het gedeelte Beheren (weergegeven door het pictogram van een steeksleutel) en open het scherm Extra. Ga daar door naar de Django admin interface.
In de beheersinterface van Django, zoek het gedeelte BILLING en voeg een plan voor facturatie toe. U kunt bijvoorbeeld een plan Free zonder kosten toevoegen.
Als u een plan voor facturatie toe wilt wijzen aan een bestaand project, kan dat ook worden gedaan in de Django beheersinterface met de optie Customer billings.
Als laatste verschaft de Django beheersinterface een optie Invoice voor het loggen van de betalingen van uw klanten.
Gebruik¶
Na het installeren kunt u facturatie beheren in de beheerinterface. Gebruikers met facturatie ingeschakeld zullen een nieuwe tab Facturatie in hun Gebruikersprofiel krijgen.
De module Facturatie maakt het aanvullend voor gebruikers mogelijk om nieuwe projecten en onderdelen te maken, zonder dat ze superusers zijn (bekijk Vertaalprojecten en onderdelen toevoegen). Dit is mogelijk als aan de volgende voorwaarden wordt voldaan:
De facturatie vindt plaats binnen zijn geconfigureerde limieten (elk meerverbruik resulteert in het blokkeren van het maken van project/onderdeel) en betalingen (als de prijs niet nul is)
De gebruiker heeft het recht Projecten aan werkruimte toevoegen voor de werkruimte die wordt gedekt door de facturatie.
Bij het maken van een project is de gebruiker in staat te kiezen welke werkruimte het project zou moeten bevatten. Projecten worden gemaakt in een werkruimte met tellen voor factureren tegen de facturatie die is toegewezen voor die werkruimte. Gebruikers met het recht Instellingen werkruimte bewerken kunnen de facturatie bekijken; e-mails voor notificatie van facturen worden naar die gebruikers verzonden. Bekijk Facturatie voor details.
Wettelijke module¶
Dit wordt gebruikt op Hosted Weblate om de vereiste wettelijke documenten te verschaffen. Het wordt verschaft met blanco documenten en u wordt geacht de volgende sjablonen in de documenten in te vullen:
legal/documents/tos.htmlDocument Algemene voorwaarden
legal/documents/privacy.htmlDocument Privacy policy
legal/documents/summary.htmlKort overzicht van de algemene voorwaarden en privacy policy
legal/documents/contracts.htmlInformatie subcontracten
De module legal bed deze sjablonen in binnen Weblate en gebruikt legal/documents/tos.html voor bevestiging van de voorwaarden voor de service. Dat is afgescheiden van LEGAL_URL en PRIVACY_URL, die zijn bedoeld voor het koppelen naar extern gehoste wettelijke documenten vanuit de voettekst als de module legal niet is ingeschakeld. Wanneer de module legal is ingeschakeld, linkt Weblate standaard naar de interne wettelijke pagina’s.
Pas, bij het wijzigen van het document voor de algemene voorwaarden, LEGAL_TOS_DATE aan, zodat gebruikers verplicht worden om in te stemmen met de bijgewerkte documenten.
Notitie
Wettelijke documenten voor de service Hosted Weblate, uitgevoerd door Weblate s.r.o., zijn beschikbaar in deze opslagruimte van Git: <https://github.com/WeblateOrg/wllegal/tree/main/wllegal/templates/legal/documents>.
De gebundelde gebruiksbepalingen en gerelateerde wettelijke documenten zijn specifiek voor die service en zijn niet bedoeld voor algemeen gebruik. Ze kunnen handig zijn als een beginpunt om aan te passen naar uw behoeften.
Installatie¶
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",
]
Voer de migratie van de database uit om optioneel aanvullende structuren van de database voor de module te installeren:
weblate migrate
Bewerk de wettelijke documenten in de map
weblate/legal/templates/legal/om overeen te komen met uw service.
Hint
In Docker uitrollen, schakel de module Legal in met WEBLATE_LEGAL_INTEGRATION in plaats van settings.py te bewerken. Gebruik tos-confirm om de module Legal in te schakelen en bevestigen van de gebruiksbepalingen af te dwingen, of wllegal om aanvullend de gehoste sjablonen voor wettelijke documenten te laden die worden gebruikt door services van Weblate s.r.o. Die sjablonen zijn niet bedoeld voor algemeen gebruik. Uw eigen sjablonen in Docker importeren, plaats ze in /app/data/python/customize/templates/legal/documents, bekijk Vervangen van logo en andere statische bestanden.
Maak de Dockercontainer opnieuw na het wijzigen van deze omgevingsvariabele, bijvoorbeeld met docker compose up -d. Herstarten van een bestaande container past niet de gewijzigde omgevingswaarden toe.
Gebruik¶
Na het installeren en bewerken worden de wettelijke documenten weergegeven in de gebruikersinterface van Weblate.
De sjablonen voor wettelijke documenten zijn normale sjablonen van Django. Tekst wordt alleen vertaald als u tags voor vertalingen van Django gebruikt, zoals {% translate %} of {% blocktranslate %}; platte HTML-tekst wordt weergegeven zoals het is geschreven.
Wettelijke pagina’s en het overzicht voor aanmelden en registratie verschaffen variabelen terms_url en privacy_url voor het koppelen naar documenten voor de voorwaarden voor de service en voor privacybeleid.
Standaard gebruiken wettelijk documentwrappers de CSS-klasse tos. Deze klasse nummert automatisch koppen h2, alinea’s met klassen item, subitem of subsubitem en items van genummerde lijsten op het bovenste niveau. Als uw wettelijke tekst al nummering bevat, stel LEGAL_DOCUMENT_CSS_CLASS in op een lege tekenreeks om deze opmaak uit te schakelen.
Gebruik LEGAL_HIDDEN_DOCUMENTS om optionele wettelijke pagina’s, zoals subcontracten, in het menu legal te verbergen. Verborgen pagina’s geven een antwoord 404 terug als ze direct worden bevraagd. Als terms of privacy is verborgen, vallen links met terms_url of privacy_url terug op LEGAL_URL of PRIVACY_URL indien geconfigureerd, anders wordt de link weggelaten.
Extern gehoste wettelijke documenten gebruiken met bevestiging voor de voorwaarden, configureer LEGAL_HIDDEN_DOCUMENTS om terms en privacy te verbergen en stel LEGAL_URL en PRIVACY_URL in. De pagina voor bevestiging linkt dan naar die externe documenten zonder het overschrijven van het sjabloon legal/documents/tos.html te eisen.
Avatars¶
Avatars worden gedownload en gecachet aan de kant van de server om het lekken van informatie te verkleinen voor de sites die ze standaard serveren. De ingebouwde ondersteuning voor het ophalen van avatars uit daarvoor geconfigureerde e-mailadressen kan worden uitgeschakeld met ENABLE_AVATARS.
Weblate ondersteunt momenteel:
Vertaling CDN¶
De add-ons JavaScript-vertaling CDN en Vertaalbestanden CDN schrijven bestanden naar LOCALIZE_CDN_PATH; Weblate serveert ze niet. Configureer de webserver of serveren van CDN LOCALIZE_CDN_URL als een publieke, alleen-lezen statische bestandshost.
Behandel elk gepubliceerd CDN-bestand als publiek. De add-onspecifieke UUID in de URL is geen mechanisme voor toegangscontrole. Schakel geen add-ons voor CDN in voor onderdelen die private tekenreeksen bevatten, niet-uitgegeven productteksten, klantgegevens, interne URL’s, API-voorbeelden, paden van opslagruimten, opmerkingen van vertalers, of metadata van bestandsindeling die niet zouden moeten worden weergegeven.
De add-on Vertaalbestanden CDN publiceert ruwe vertaalestanden in indelingen die worden ondersteund door Weblate. Sommige indelingen kunnen door browsers of andere clients worden geïnterpreteerd als HTML, SVG, XML, JavaScript, YAML of toepassingsspecifieke configuratie. Serveer de CDN vanuit een toegewezen domein dat losstaat van Weblate en van de toepassing die de vertalingen gebruikt. Deel geen cookies voor authenticatie met het domein van CDN.
Aanbevolen configuratie server:
Serveer alleen de map die is geconfigureerd in
LOCALIZE_CDN_PATH; geef geen opslagruimten van Weblate, back-ups, media, configuratie of de gehele gegevensmap weer.Vermelden mappen uitschakelen.
Gebruik HTTPS en maak de CDN-host alleen-lezen vanaf de webserver.
Verstuur X-Content-Type-Options met
nosniff.Configureer conservatieve MIME-typen. Serveer onbekende vertaalindelingen als text/plain of application/octet-stream; serveer alleen
weblate.jsals JavaScript.Voor indelingen van ruwe vertalingen die niet bedoeld zijn om te worden gerenderd in een browser, overweeg om Content-Disposition toe te voegen met
attachment.Configureer
Access-Control-Allow-Originalleen voor sites die browsertoegang tot de bestanden nodig hebben.Stel levensduur voor cache in die overeenkomt met de verwachting voor uw updates en purge CDN-caches als hangende vertalingen snel moeten verdwijnen.
De volgende nginx-snipper serveert alleen de geconfigureerde map van CDN en past conservatieve standaarden toe voor ruwe vertaalbestanden:
#
# 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;
}
}
Ondertekenen van indieningen voor Git met GnuPG¶
Alle commits kunnen worden ondertekend met de sleutel voor GnuPG van de instantie van Weblate.
Schakel in
WEBLATE_GPG_IDENTITY. (Weblate zal een GnuPG-sleutel genereren indien nodig en zal die gebruiken om alle commits voor vertalingen te ondertekenen.)Voor deze mogelijkheid moet GnuPG 2.1 of nieuwer zijn geïnstalleerd.
De sleutel is te vinden in de
DATA_DIRen de publieke sleutel wordt weergegeven op de pagina “Over”:
Als alternatief kunt u ook bestaande sleutels importeren in Weblate, stel eenvoudigweg
HOME=$DATA_DIR/homein bij het activeren van GPG.
Hint
Het materiaal van de sleutel wordt door Weblate voor een lange periode gecachet. In het geval u Weblate een sleutel laat genereren met WEBLATE_GPG_IDENTITY en dan de sleutel importeert met dezelfde identiteit om voor een bestaande sleutel te gebruiken, wordt het purgen van de cache van Redis aanbevolen om het effect van een dergelijke wijziging te kunnen zien.
Notitie
Bij het delen van DATA_DIR tussen meerdere hosts, volg de instructies op https://wiki.gnupg.org/NFS om ervoor te zorgen dat het ondertekenen met GnuPG betrouwbaar werkt.
Zie ook
Opvraaglimiet gebruiken¶
Veranderd in versie 4.6: De opvraaglimiet is niet meer van toepassing op aangemelde superusers.
Verscheidene bewerkingen in Weblate zijn beperkt in hun opvragen. Ten hoogste RATELIMIT_ATTEMPTS pogingen zijn toegestaan binnen RATELIMIT_WINDOW seconden. De gebruiker wordt dan geblokkeerd voor RATELIMIT_LOCKOUT. Er zijn ook specifieke instellingen voor bereiken, bijvoorbeeld RATELIMIT_CONTACT_ATTEMPTS of RATELIMIT_TRANSLATE_ATTEMPTS. De tabel hieronder is een volledige lijst van beschikbare bereiken.
De volgende bewerkingen zijn onderworpen aan het gebruik van een opvraaglimiet:
Naam |
Toepassingsgebied |
Toegestane pogingen |
Venster opvraaglimiet |
Periode vergrendeld |
|---|---|---|---|---|
Registratie |
|
5 |
300 |
600 |
Bericht versturen aan admins |
|
2 |
300 |
600 |
Authenticatie wachtwoord bij inloggen |
|
5 |
300 |
600 |
Twee-factor authenticatie |
|
5 |
300 |
600 |
Sitebrede zoekactie |
|
6 |
60 |
60 |
Vertalen |
|
30 |
60 |
600 |
Toevoegen aan woordenlijst |
|
30 |
60 |
600 |
Nieuwe vertaling in nieuwe taal beginnen |
|
2 |
300 |
600 |
Nieuw project aanmaken |
|
5 |
600 |
600 |
De opvraaglimiet is gebaseerd op sessies, als de gebruiker is aangemeld, en anders op IP-adres.
Als een gebruiker faalt om AUTH_LOCK_ATTEMPTS keer in te loggen, zal authenticatie voor het wachtwoord worden uitgeschakeld voor het account, totdat het proces voor het herstellen van het wachtwoord is doorlopen.
De instellingen kunnen ook worden toegepast in de container van Docker door het voorvoegsel WEBLATE_ toe te voegen aan de naam van de instelling, bijvoorbeeld RATELIMIT_ATTEMPTS wordt dan WEBLATE_RATELIMIT_ATTEMPTS.
De API heeft afzonderlijke instellingen voor de opvraaglimiet, bekijk API opvraaglimieten.