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

  1. Voeg weblate.gitexport toe aan geïnstalleerde apps in settings.py:

    INSTALLED_APPS += ("weblate.gitexport",)
    
  2. 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",)
  1. 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.

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.js als 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-Origin alleen 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:

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;
    }
}

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_DIR en de publieke sleutel wordt weergegeven op de pagina “Over”:

    ../_images/about-gpg.webp
  • Als alternatief kunt u ook bestaande sleutels importeren in Weblate, stel eenvoudigweg HOME=$DATA_DIR/home in 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.

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

REGISTRATION

5

300

600

Bericht versturen aan admins

MESSAGE

2

300

600

Authenticatie wachtwoord bij inloggen

LOGIN

5

300

600

Twee-factor authenticatie

SECOND_FACTOR

5

300

600

Sitebrede zoekactie

SEARCH

6

60

60

Vertalen

TRANSLATE

30

60

600

Toevoegen aan woordenlijst

GLOSSARY

30

60

600

Nieuwe vertaling in nieuwe taal beginnen

LANGUAGE

2

300

600

Nieuw project aanmaken

PROJECT

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.