Traducerea HTML și JavaScript folosind Weblate CDN¶
Starting with Weblate 4.2 it is possible to export JavaScript and HTML localization to a CDN using CDN de localizare JavaScript add-on. To publish translation files without the JavaScript loader, use Translation files CDN.
Notă
This feature is configured on Hosted Weblate. It requires additional
configuration on your installation, see LOCALIZE_CDN_URL and
LOCALIZE_CDN_PATH. See also Localizare CDN.
Upon installation into your component the JavaScript localization add-on will push committed translations (see Angajări leneșe) to the CDN and these can be used in your web pages to localize them.
Crearea componentei¶
În primul rând, trebuie să creați o componentă monolingvă care va conține șirurile de caractere, consultați Adăugarea de proiecte și componente de traducere pentru instrucțiuni generice în acest sens.
În cazul în care aveți un depozit existent pentru început (de exemplu, cel care conține fișiere HTML), creați un fișier JSON gol în depozitul pentru limba sursă (a se vedea Limba sursă), de exemplu locales/en.json. Conținutul trebuie să fie {} pentru a indica un obiect gol. Odată ce aveți acest lucru, depozitul poate fi importat în Weblate și puteți începe cu o configurație de add-on.
Sugestie
În cazul în care aveți traduceri existente, le puteți plasa în fișierele JSON de limbă și acestea vor fi utilizate în Weblate.
Pentru cei care nu doresc să utilizeze un depozit existent (sau nu au unul), alegeți Start from scratch atunci când creați componenta și alegeți JSON file ca format de fișier (în acest moment puteți alege orice format monolingv).
Configurarea add-onului Weblate CDN¶
Add-on-ul CDN de localizare JavaScript oferă câteva opțiuni de configurare.
- Prag de traducere
Traducerile traduse peste acest prag vor fi incluse în CDN.
- Selector CSS
Configurează ce șiruri de caractere din documentele HTML pot fi traduse, a se vedea Extragerea șirurilor pentru Weblate CDN și Localizarea HTML folosind Weblate CDN.
- Nume cookie de limbă
Numele modulului cookie care conține limba selectată de utilizator. Utilizat în fragmentul JavaScript pentru Localizarea HTML folosind Weblate CDN.
- Extrage șiruri din fișiere HTML
Lista fișierelor din depozit sau a URL-urilor în care Weblate va căuta șiruri de caractere traductibile și le va oferi pentru o traducere, a se vedea Extragerea șirurilor pentru Weblate CDN.
Extragerea șirurilor pentru Weblate CDN¶
The translation strings have to be present in Weblate. You can either manage
these manually, use API to create them or list files or URLs using
Extract strings from HTML files and Weblate will extract them
automatically. The files have to present in the repository or contain remote
URLs which will be download and parsed regularly by Weblate. Remote URLs are
restricted by ALLOWED_ASSET_DOMAINS, including any redirect targets.
Configurația implicită pentru CSS selector extrage elementele cu clasa CSS l10n, de exemplu, ar extrage două șiruri de caractere din următoarele fragmente:
<section class="content">
<div class="row">
<div class="wrap">
<h1 class="section-title min-m l10n">Maintenance in progress</h1>
<div class="page-desc">
<p class="l10n">We're sorry, but this site is currently down for maintenance.</p>
</div>
</div>
</div>
</section>
În cazul în care nu doriți să modificați codul existent, puteți, de asemenea, să utilizați * ca selector pentru a procesa toate elementele.
Notă
În prezent, se extrage doar textul elementelor. Acest add-on nu acceptă localizarea atributelor elementelor sau a elementelor cu copii.
Localizarea HTML folosind Weblate CDN¶
To localize an HTML document, you need to load the weblate.js script:
<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>
La încărcare, aceasta va găsi automat toate elementele traductibile corespunzătoare (pe baza configurației CSS selector) și va înlocui textul acestora cu o traducere.
Limba utilizatorului este detectată din cookie-ul configurat și revine la limbile preferate de utilizator configurate în browser.
Language cookie name poate fi util pentru integrarea cu alte aplicații (de exemplu, alegeți django_language atunci când utilizați Django).
Localizarea JavaScript¶
Traducerile individuale sunt expuse ca fișiere JSON bilingve în cadrul CDN. Pentru a prelua una dintre ele, puteți utiliza următorul cod:
fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
.then(response => response.json())
.then(data => console.log(data));
Logica de localizare propriu-zisă trebuie să fie implementată în acest caz.
Publishing translation files¶
The Translation files CDN add-on publishes translation files directly to the CDN. It does not generate a JavaScript loader or convert translations into bilingual JSON.
Single-file translations are named using the language code and original file
extension, for example cs.json or de.po. Multi-file translations are
served below the language code using paths relative to the translation
directory. Monolingual components include the source language file, while
bilingual components publish only target-language files.
See Localizare CDN for secure server setup.