Valfria Weblate-moduler¶
Flera valfria moduler finns tillgängliga för din installation.
Git-exportör¶
Ger dig läsbehörighet till det underliggande Git-arkivet via HTTP(S).
Installation¶
Lägg till
weblate.gitexporttill installerade appar isettings.py:INSTALLED_APPS += ("weblate.gitexport",)
Exportera befintliga arkiv genom att migrera din databas efter installationen:
weblate migrate
Råd
Git-exportören är aktiverad i vår officiella Docker-bild. För att inaktivera den, använd:
WEBLATE_REMOVE_APPS=weblate.gitexport
Användning¶
Modulen kopplas automatiskt till Weblate och ställer in den exporterade repositoriets URL i Komponentkonfiguration. Repositorierna är tillgängliga under /git/-delen av Weblate-URL:en, till exempel https://example.org/git/weblate/main/.
Repositorier för offentligt tillgängliga projekt kan klonas utan autentisering:
git clone 'https://example.org/git/weblate/main/'
För att kunna bläddra i arkiven med begränsad åtkomst (med Private åtkomstkontroll eller när REQUIRE_LOGIN är aktiverat) krävs en API-token som kan erhållas i din användarprofil:
git clone 'https://user:KEY@example.org/git/weblate/main/'
Observera
Weblate serves the Git repository itself, but it does not serve Git LFS
objects. For repositories using Git LFS, clone from the upstream repository
and add Weblate as another remote. If you only need Git-tracked files, you
can clone from Weblate with GIT_LFS_SKIP_SMUDGE=1 to skip downloading
Git LFS objects.
Råd
Som standard har medlemmar eller Användare-gruppen och anonyma användare åtkomst till arkiven för offentliga projekt via Åtkomst till arkiv och Power user-roller.
Fakturering¶
Detta används på Hosted Weblate för att definiera faktureringsplaner, spåra fakturor och användningsgränser.
Installation¶
1. Add weblate.billing to installed apps in
settings.py:
INSTALLED_APPS += ("weblate.billing",)
Kör databasmigreringen för att eventuellt installera ytterligare databasstrukturer för modulen:
weblate migrate
Skapande och tilldelning av faktureringsplaner¶
Du måste först skapa en faktureringsplan för att aktivera fakturering. Gå till avsnittet Administration (representerat av skiftnyckelikonen) och öppna skärmen Verktyg. Därifrån går du vidare till Django-admingränssnittet.
I Djangos administratörsgränssnitt letar du upp avsnittet BILLING och lägger till en faktureringsplan. Du kan till exempel lägga till en Free-plan utan kostnad.
Om du vill tilldela en faktureringsplan till ett befintligt projekt kan detta också göras i Django-admin-gränssnittet med hjälp av alternativet Kundfakturering.
Slutligen erbjuder Django admin interface ett alternativ för Invoice (faktura) där du kan logga dina kunders betalningar.
Användning¶
Efter installationen kan du styra faktureringen i administratörsgränssnittet. Användare med aktiverad fakturering får en ny flik Fakturering i sin Användarprofil.
The billing module additionally allows users to create new projects and components without being superusers (see Lägga till översättningsprojekt och komponenter). This is possible when following conditions are met:
Faktureringen ligger inom de konfigurerade gränserna (överskridande resulterar i blockering av projekt-/komponentskapande) och är betald (om priset är större än noll)
The user has Add projects to workspace permission for the workspace covered by the billing plan.
Upon project creation user is able to choose which workspace should contain the project. Projects created in a workspace with billing count against the billing plan assigned to that workspace. Users with the Edit workspace settings permission can view and pay the billing plan; billing notification e-mails are sent to these users. See Fakturering for details.
Juridisk modul¶
Detta används på Hosted Weblate för att tillhandahålla nödvändiga juridiska dokument. Det levereras med tomma dokument, och du förväntas fylla i följande mallar i dokumenten:
legal/documents/tos.htmlAnvändarvillkor
legal/documents/privacy.htmlDokument om integritetspolicy
legal/documents/summary.htmlKort översikt över användarvillkoren och integritetspolicyn
legal/documents/contracts.htmlSubcontractor information
The legal module embeds these templates inside Weblate and uses
legal/documents/tos.html for terms of service confirmation. This is
separate from LEGAL_URL and PRIVACY_URL, which are meant
for linking to externally hosted legal documents from the footer when the
legal module is not enabled. When the legal module is enabled, Weblate links to
the internal legal pages by default.
Vid ändring av användarvillkoren, justera LEGAL_TOS_DATE så att användarna tvingas godkänna de uppdaterade villkoren.
Observera
Legal documents for the Hosted Weblate service operated by Weblate s.r.o. are available in this Git repository: <https://github.com/WeblateOrg/wllegal/tree/main/wllegal/templates/legal/documents>.
The bundled terms of service and related legal documents are specific to that service and are not intended for general use. They might still come in handy as a starting point if adjusted to meet your needs.
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",
]
Kör databasmigreringen för att eventuellt installera ytterligare databasstrukturer för modulen:
weblate migrate
Redigera de juridiska dokumenten i mappen
weblate/legal/templates/legal/så att de passar din tjänst.
Råd
In Docker deployments, enable the legal module using
WEBLATE_LEGAL_INTEGRATION instead of editing
settings.py. Use tos-confirm to enable the legal module and
terms of service confirmation enforcement, or wllegal to additionally
load the hosted legal document templates used by services operated by
Weblate s.r.o. These templates are not intended for general use. To provide
your own templates in Docker, place them in
/app/data/python/customize/templates/legal/documents, see
Ersätta logotyp och andra statiska filer.
Recreate the Docker container after changing environment variables, for example using docker compose up -d. Restarting an existing container does not apply changed environment values.
Användning¶
Efter installation och redigering visas de juridiska dokumenten i Weblate-gränssnittet.
The legal document templates are regular Django templates. Text is translated
only when you use Django translation tags such as {% translate %} or
{% blocktranslate %}; plain HTML text is shown as written.
Legal pages and the sign-in and registration overview provide terms_url and
privacy_url variables for linking to the terms of service and privacy
policy documents.
By default, legal document wrappers use the tos CSS class. This class
automatically numbers h2 headings, paragraphs with item, subitem,
or subsubitem classes, and top-level ordered list items. If your legal
text already contains numbering, set LEGAL_DOCUMENT_CSS_CLASS to an
empty string to disable this styling.
Use LEGAL_HIDDEN_DOCUMENTS to hide optional legal pages such as
subcontractors from the legal menu. Hidden pages return a 404 response when
requested directly. If terms or privacy is hidden, links using
terms_url or privacy_url fall back to LEGAL_URL or
PRIVACY_URL when configured, otherwise the link is omitted.
To use externally hosted legal documents with terms confirmation, configure
LEGAL_HIDDEN_DOCUMENTS to hide terms and privacy and set
LEGAL_URL and PRIVACY_URL. The confirmation page then
links to those external documents without requiring a
legal/documents/tos.html template override.
Avatarer¶
Avatarer laddas ner och cachelagras på serversidan för att minska informationsläckor till de webbplatser som serverar dem som standard. Det inbyggda stödet för att hämta avatarer från e-postadresser som konfigurerats för detta kan stängas av med ENABLE_AVATARS.
Weblate stöder för närvarande:
Lokalisering CDN¶
The JavaScript-lokalisering CDN and Translation files CDN add-ons
write files to LOCALIZE_CDN_PATH; Weblate does not serve them.
Configure the web server or CDN serving LOCALIZE_CDN_URL as a
public, read-only static file host.
Treat every published CDN file as public. The add-on specific UUID in the URL is not an access-control mechanism. Do not enable CDN add-ons for components that contain private strings, unreleased product text, customer data, internal URLs, API examples, repository paths, translator comments, or file-format metadata that should not be exposed.
The Translation files CDN add-on publishes raw translation files in formats supported by Weblate. Some formats can be interpreted by browsers or other clients as HTML, SVG, XML, JavaScript, YAML, or application-specific configuration. Serve the CDN from a dedicated domain that is separate from Weblate and from the application consuming the translations. Do not share authentication cookies with the CDN domain.
Recommended server configuration:
Serve only the directory configured by
LOCALIZE_CDN_PATH; do not expose Weblate repositories, backups, media, configuration, or the whole data directory.Disable directory listing.
Use HTTPS and make the CDN host read-only from the web server.
Send X-Content-Type-Options with
nosniff.Configure conservative MIME types. Serve unknown translation formats as text/plain or application/octet-stream; only serve
weblate.jsas JavaScript.For raw translation formats that are not intended to be rendered in a browser, consider adding Content-Disposition with
attachment.Configure
Access-Control-Allow-Originonly for sites that need browser access to the files.Set cache lifetimes that match your update expectations, and purge CDN caches when stale translations must disappear quickly.
The following nginx snippet serves only the configured CDN directory and applies conservative defaults for raw translation files:
#
# 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;
}
}
Signera Git-commits med GnuPG¶
Alla commit kan signeras med GnuPG-nyckeln för Weblate-instansen.
Aktivera
WEBLATE_GPG_IDENTITY. (Weblate genererar en GnuPG-nyckel när det behövs och använder den för att signera alla översättningskommandon.)Denna funktion kräver att GnuPG 2.1 eller senare är installerat.
Du hittar nyckeln i
DATA_DIRoch den offentliga nyckeln visas på sidan ”Om”:
Alternativt kan du också importera befintliga nycklar till Weblate, ställ bara in
HOME=$DATA_DIR/homenär du anropar gpg.
Råd
Nyckelmaterialet cachelagras av Weblate under en lång period. Om du låter Weblate generera en nyckel med WEBLATE_GPG_IDENTITY och sedan importerar nyckeln med samma identitet för att använda en befintlig nyckel, rekommenderas det att rensa redis-cachen för att se effekten av en sådan ändring.
Observera
När du delar DATA_DIR mellan flera värdar, följ instruktionerna på https://wiki.gnupg.org/NFS för att GnuPG-signering ska fungera tillförlitligt.
Se även
Hastighetsbegränsande¶
Förändrat i version 4.6: Hastighetsbegränsningen gäller inte längre för inloggade superanvändare.
Flera operationer i Weblate är hastighetsbegränsade. Högst RATELIMIT_ATTEMPTS försök är tillåtna inom RATELIMIT_WINDOW sekunder. Användaren blockeras sedan i RATELIMIT_LOCKOUT. Det finns också inställningar som är specifika för olika områden, till exempel RATELIMIT_CONTACT_ATTEMPTS eller RATELIMIT_TRANSLATE_ATTEMPTS. Tabellen nedan är en fullständig lista över tillgängliga områden.
Följande operationer är föremål för hastighetsbegränsning:
Namn |
Omfattning |
Tillåtna försök |
Ratelimit-fönster |
Låsningsperiod |
|---|---|---|---|---|
Registrering |
|
5 |
300 |
600 |
Skicka meddelande till administratörer |
|
2 |
300 |
600 |
Lösenordsautentisering vid inloggning |
|
5 |
300 |
600 |
Tvåfaktorsautentisering |
|
5 |
300 |
600 |
Sök på hela webbplatsen |
|
6 |
60 |
60 |
Översättning |
|
30 |
60 |
600 |
Lägg till i ordlista |
|
30 |
60 |
600 |
Börja översättningen till ett nytt språk |
|
2 |
300 |
600 |
Skapa nytt projekt |
|
5 |
600 |
600 |
Hastighetsbegränsningen baseras på sessioner när användaren är inloggad och på IP-adressen om så inte är fallet.
Om en användare misslyckas med att logga in AUTH_LOCK_ATTEMPTS gånger, kommer lösenordsautentiseringen att stängas av på kontot tills lösenordet har återställts.
Inställningarna kan också tillämpas i Docker-containern genom att lägga till prefixet WEBLATE_ till inställningsnamnet, till exempel RATELIMIT_ATTEMPTS blir WEBLATE_RATELIMIT_ATTEMPTS.
API:et har separata inställningar för hastighetsbegränsning, se API-hastighetsbegränsning.