Traducerea HTML și JavaScript folosind Weblate CDN

Începând cu Weblate 4.2, este posibil să exportați localizarea către un CDN folosind addon-ul CDN de localizare JavaScript.

Notă

Această funcție este configurată pe Hosted Weblate. Necesită o configurație suplimentară pe instalația dvs., consultați LOCALIZE_CDN_URL și LOCALIZE_CDN_PATH.

La instalarea în componenta dvs., acesta va împinge traducerile angajate (a se vedea Angajări leneșe) în CDN și acestea pot fi folosite în paginile dumneavoastră web pentru a le localiza.

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 addon.

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 addonului Weblate CDN

Addon-ul CDN de localizare JavaScript oferă câteva opțiuni de configurare.

Pragul 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.

Numele cookie-ului de limbă

Numele modulului cookie care conține limba selectată de utilizator. Utilizat în fragmentul JavaScript pentru Localizarea HTML folosind Weblate CDN.

Extrageți șiruri de caractere 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

Șirurile de traducere trebuie să fie prezente în Weblate. Puteți să le gestionați manual, să folosiți API pentru a le crea sau să listați fișiere sau URL-uri folosind Extrage șiruri de caractere din fișiere HTML și Weblate le va extrage automat. Fișierele trebuie să fie prezente în depozit sau să conțină URL-uri de la distanță care vor fi descărcate și analizate în mod regulat de Weblate.

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 suportă localizarea atributelor elementelor sau a elementelor cu copii.

Localizarea HTML folosind Weblate CDN

Pentru a localiza un document HTML, trebuie să încărcați scriptul weblate.js:

<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.