Prekladanie HTML a JavaScriptu pomocou Weblate CDN

Od verzie Weblate 4.2 je možné exportovať lokalizáciu JavaScriptu a HTML do CDN pomocou doplnku CDN pre lokalizáciu JavaScriptu. Na publikovanie prekladových súborov bez JavaScript loadera použite Prekladové súbory CDN.

Poznámka

Táto funkcia je nakonfigurovaná na Hosted Weblate. Vyžaduje dodatočnú konfiguráciu na vašej inštalácii, pozrite LOCALIZE_CDN_URL a LOCALIZE_CDN_PATH. Pozrite tiež CDN pre lokalizáciu.

Po inštalácii do vášho komponentu doplnok lokalizácie JavaScriptu odošle zapísané preklady (pozri Lenivé zápisy) do CDN a tieto možno použiť na vašich webových stránkach na ich lokalizáciu.

Vytváranie súčasti

Najprv musíte vytvoriť jednojazyčnú súčasť, ktorá bude obsahovať vaše reťazce, všeobecné pokyny nájdete v Pridávanie prekladových projektov a komponentov.

V prípade, že máte existujúci repozitár, s ktorým chcete začať (napríklad ten, ktorý obsahuje HTML súbory), vytvorte prázdny JSON súbor v repozitári pre zdrojový jazyk (pozri Zdrojový jazyk), napríklad locales/en.json. Obsah by mal byť {}, aby indikoval prázdny objekt. Akonáhle to máte, repozitár môže byť importovaný do Weblate a môžete začať s konfiguráciou doplnku.

Rada

V prípade, že máte existujúce preklady, môžete ich umiestniť do jazykových JSON súborov a tie budú použité vo Weblate.

Pre tých, ktorí nechcú používať existujúci repozitár (alebo ho nemajú), vyberte Začať od nuly pri vytváraní súčasti a vyberte JSON súbor ako formát súboru (v tomto bode je v poriadku vybrať akýkoľvek jednojazyčný formát).

Konfigurácia doplnku Weblate CDN

Doplnok CDN pre lokalizáciu JavaScriptu poskytuje niekoľko konfiguračných možností.

Prah prekladu

Preklady preložené nad týmto prahom budú zahrnuté do CDN.

CSS selektor

Konfiguruje, ktoré reťazce z HTML dokumentov sú preložiteľné, pozri Extrakcia reťazcov pre Weblate CDN a Lokalizácia HTML pomocou Weblate CDN.

Názov cookie jazyka

Názov cookie, ktorá obsahuje používateľom vybraný jazyk. Používa sa v JavaScript úryvku pre Lokalizácia HTML pomocou Weblate CDN.

Extrahovať reťazce z HTML súborov

Zoznam súborov v repozitári alebo URL, kde bude Weblate hľadať preložiteľné reťazce a ponúkne ich na preklad, pozri Extrakcia reťazcov pre Weblate CDN.

Extrakcia reťazcov pre Weblate CDN

Prekladové reťazce musia byť prítomné vo Weblate. Môžete ich buď spravovať manuálne, použiť API na ich vytvorenie alebo zoznam súborov či URL adries pomocou Extrahovať reťazce z HTML súborov a Weblate ich extrahuje automaticky. Súbory musia byť prítomné v repozitári alebo obsahovať vzdialené URL adresy, ktoré budú pravidelne sťahované a parsované systémom Weblate. Vzdialené URL adresy sú obmedzené nastavením ALLOWED_ASSET_DOMAINS, vrátane akýchkoľvek cieľov presmerovania.

Predvolená konfigurácia pre CSS selektor extrahuje elementy s CSS triedou l10n, napríklad by extrahovala dva reťazce z nasledujúcich úryvkov:

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

V prípade, že nechcete upravovať existujúci kód, môžete tiež použiť * ako selektor na spracovanie všetkých elementov.

Poznámka

Práve teraz sa extrahuje iba text elementov. Tento doplnok nepodporuje lokalizáciu atribútov elementov alebo elementov s deťmi.

Lokalizácia HTML pomocou Weblate CDN

Na lokalizáciu HTML dokumentu musíte načítať skript weblate.js:

<script src="https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/weblate.js" async></script>

Po načítaní to automaticky nájde všetky zodpovedajúce preložiteľné elementy (na základe konfigurácie CSS selektor) a nahradí ich text prekladom.

Používateľský jazyk je detekovaný z nakonfigurovanej cookie a spätne sa vráti na používateľom preferované jazyky nakonfigurované v prehliadači.

Názov cookie jazyka môže byť užitočný pre integráciu s inými aplikáciami (napríklad vyberte django_language pri používaní Django).

Lokalizácia JavaScriptu

Individuálne preklady sú vystavené ako dvojjazyčné JSON súbory pod CDN. Na získanie jedného môžete použiť nasledujúci kód:

fetch(("https://weblate-cdn.com/a5ba5dc29f39498aa734528a54b50d0a/cs.json")
  .then(response => response.json())
  .then(data => console.log(data));

V tomto prípade je potrebné implementovať skutočnú logiku lokalizácie.

Publikovanie prekladových súborov

Doplnok Prekladové súbory CDN publikuje prekladové súbory priamo do CDN. Negeneruje JavaScript loader ani nekonvertuje preklady do dvojjazyčného JSON.

Jednosúborové preklady sú pomenované pomocou kódu jazyka a pôvodnej prípony súboru, napríklad cs.json alebo de.po. Viacsúborové preklady sa poskytujú pod kódom jazyka pomocou ciest relatívnych k adresáru prekladu. Jednojazyčné komponenty zahŕňajú súbor zdrojového jazyka, zatiaľ čo dvojjazyčné komponenty publikujú iba súbory cieľového jazyka. Pozrite CDN pre lokalizáciu pre bezpečné nastavenie servera.