ການແປ HTML ແລະ JavaScript ໂດຍໃຊ້ Weblate CDN

ເລີ່ມແຕ່ Weblate 4.2 ເປັນຕົ້ນໄປ, ມັນເປັນໄປໄດ້ທີ່ຈະສົ່ງອອກ Localization ຂອງ JavaScript ແລະ HTML ໄປຍັງ CDN ໂດຍໃຊ້ Add-on CDN ສຳລັບການແປພາສາ JavaScript. ເພື່ອເຜີຍແຜ່ໄຟລ໌ການແປໂດຍບໍ່ມີ JavaScript loader, ໃຫ້ໃຊ້ CDN ສຳລັບໄຟລ໌ການແປ.

Note

ຟີເຈີນີ້ຖືກຕັ້ງຄ່າໄວ້ໃນ Hosted Weblate. ມັນຮຽກຮ້ອງໃຫ້ມີການຕັ້ງຄ່າເພີ່ມເຕີມໃນການຕິດຕັ້ງຂອງເຈົ້າ, ເບິ່ງ LOCALIZE_CDN_URL ແລະ LOCALIZE_CDN_PATH. ເບິ່ງເພີ່ມເຕີມທີ່ Localization CDN.

ເມື່ອຕິດຕັ້ງເຂົ້າໃນ Component ຂອງເຈົ້າແລ້ວ, Add-on JavaScript localization ຈະ Push ການແປທີ່ Commit ແລ້ວ (ເບິ່ງ Lazy commits) ໄປຍັງ CDN ແລະ ສິ່ງເຫຼົ່ານີ້ສາມາດຖືກນຳໃຊ້ໃນໜ້າເວັບຂອງເຈົ້າເພື່ອ Localize ພວກມັນ.

ການສ້າງ Component

ກ່ອນອື່ນ, ເຈົ້າຕ້ອງສ້າງ Monolingual component ເຊິ່ງຈະເກັບຂໍ້ຄວາມຂອງເຈົ້າ, ເບິ່ງ ການເພີ່ມໂຄງການແປ ແລະ ອົງປະກອບ ສຳລັບຄຳແນະນຳທົ່ວໄປກ່ຽວກັບເລື່ອງນັ້ນ.

ໃນກໍລະນີທີ່ເຈົ້າມີ Repository ທີ່ມີຢູ່ແລ້ວເພື່ອເລີ່ມຕົ້ນ (ຕົວຢ່າງ: Repository ທີ່ມີໄຟລ໌ HTML), ໃຫ້ສ້າງໄຟລ໌ JSON ຫວ່າງເປົ່າໃນ Repository ສຳລັບພາສາຕົ້ນສະບັບ (ເບິ່ງ ພາສາຕົ້ນທາງ), ຕົວຢ່າງ locales/en.json. ເນື້ອຫາຄວນເປັນ {} ເພື່ອສະແດງເຖິງ Object ຫວ່າງເປົ່າ. ເມື່ອເຈົ້າມີສິ່ງນັ້ນແລ້ວ, Repository ກໍສາມາດຖືກນຳເຂົ້າໄປໃນ Weblate ແລະ ເຈົ້າສາມາດເລີ່ມຕົ້ນດ້ວຍການຕັ້ງຄ່າ Add-on ໄດ້.

Hint

ໃນກໍລະນີທີ່ເຈົ້າມີການແປທີ່ມີຢູ່ແລ້ວ, ເຈົ້າສາມາດວາງພວກມັນລົງໃນໄຟລ໌ JSON ຂອງພາສານັ້ນໆ ແລະ ພວກມັນກໍຈະຖືກນຳໃຊ້ໃນ Weblate.

ສຳລັບຜູ້ທີ່ບໍ່ຕ້ອງການໃຊ້ Repository ທີ່ມີຢູ່ (ຫຼື ບໍ່ມີ), ໃຫ້ເລືອກ Start from scratch ເມື່ອສ້າງ Component ແລະ ເລືອກ JSON file ເປັນຮູບແບບໄຟລ໌ (ມັນບໍ່ເປັນຫຍັງທີ່ຈະເລືອກຮູບແບບ Monolingual ໃດໆໃນຂັ້ນຕອນນີ້).

ການຕັ້ງຄ່າ Add-on Weblate CDN

Add-on CDN ສຳລັບການແປພາສາ JavaScript ສະໜອງຕົວເລືອກການຕັ້ງຄ່າບາງຢ່າງ.

ເກນການແປ

ການແປທີ່ຖືກແປເກີນຂີດຈຳກັດນີ້ຈະຖືກລວມຢູ່ໃນ CDN.

ຕົວເລືອກ CSS

ກຳນົດວ່າຂໍ້ຄວາມໃດຈາກເອກະສານ HTML ທີ່ສາມາດແປໄດ້, ເບິ່ງ ການສະກັດຂໍ້ຄວາມສຳລັບ Weblate CDN ແລະ ການ Localize HTML ໂດຍໃຊ້ Weblate CDN.

ຊື່ຄຸກກີ້ພາສາ

ຊື່ຂອງ Cookie ທີ່ບັນຈຸພາສາທີ່ຜູ້ໃຊ້ເລືອກ. ໃຊ້ໃນ JavaScript snippet ສຳລັບ ການ Localize HTML ໂດຍໃຊ້ Weblate CDN.

ສະກັດຂໍ້ຄວາມຈາກໄຟລ໌ HTML

ລາຍການໄຟລ໌ໃນ Repository ຫຼື URL ທີ່ Weblate ຈະຊອກຫາຂໍ້ຄວາມທີ່ແປໄດ້ ແລະ ສະເໜີພວກມັນເພື່ອການແປ, ເບິ່ງ ການສະກັດຂໍ້ຄວາມສຳລັບ Weblate CDN.

ການສະກັດຂໍ້ຄວາມສຳລັບ Weblate CDN

ຂໍ້ຄວາມການແປຕ້ອງມີຢູ່ໃນ Weblate. ເຈົ້າສາມາດຈັດການພວກມັນດ້ວຍຕົນເອງ, ໃຊ້ API ເພື່ອສ້າງພວກມັນ, ຫຼື ລາຍການໄຟລ໌ ຫຼື URL ໂດຍໃຊ້ Extract strings from HTML files ແລະ Weblate ຈະສະກັດພວກມັນໂດຍອັດຕະໂນມັດ. ໄຟລ໌ຕ່າງໆຕ້ອງມີຢູ່ໃນ Repository ຫຼື ບັນຈຸ Remote URL ເຊິ່ງຈະຖືກດາວໂຫຼດ ແລະ Parse ຢ່າງສະໝ່ຳສະເໝີໂດຍ Weblate. Remote URL ຈະຖືກຈຳກັດໂດຍ ALLOWED_ASSET_DOMAINS, ລວມເຖິງເປົ້າໝາຍການ Redirect ໃດໆກໍຕາມ.

ການຕັ້ງຄ່າເລີ່ມຕົ້ນສຳລັບ CSS selector ຈະສະກັດ Element ທີ່ມີ CSS class l10n, ຕົວຢ່າງ: ມັນຈະສະກັດສອງຂໍ້ຄວາມຈາກ Snippet ຕໍ່ໄປນີ້:

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

ໃນກໍລະນີທີ່ເຈົ້າບໍ່ຕ້ອງການແກ້ໄຂໂຄດທີ່ມີຢູ່ແລ້ວ, ເຈົ້າຍັງສາມາດໃຊ້ * ເປັນ Selector ເພື່ອປະມວນຜົນທຸກ Element.

Note

ໃນປັດຈຸບັນ, ມີພຽງແຕ່ຂໍ້ຄວາມຂອງ Element ເທົ່ານັ້ນທີ່ຖືກສະກັດ. Add-on ນີ້ບໍ່ຮອງຮັບການ Localize attribute ຂອງ Element ຫຼື Element ທີ່ມີເດັກ (Children).

ການ Localize HTML ໂດຍໃຊ້ Weblate CDN

ເພື່ອ Localize ເອກະສານ HTML, ເຈົ້າຕ້ອງໂຫຼດສະຄຣິບ weblate.js:

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

ເມື່ອໂຫຼດແລ້ວ, ມັນຈະຊອກຫາ Element ທີ່ແປໄດ້ທັງໝົດທີ່ກົງກັນ (ໂດຍອີງຕາມການຕັ້ງຄ່າ CSS selector) ໂດຍອັດຕະໂນມັດ ແລະ ປ່ຽນຂໍ້ຄວາມຂອງພວກມັນດ້ວຍການແປ.

ພາສາຂອງຜູ້ໃຊ້ຈະຖືກກວດສອບຈາກ Cookie ທີ່ຕັ້ງຄ່າໄວ້ ແລະ ຈະກັບໄປໃຊ້ພາສາທີ່ຜູ້ໃຊ້ຕ້ອງການທີ່ຕັ້ງຄ່າໄວ້ໃນ Browser.

Language cookie name ສາມາດມີປະໂຫຍດສຳລັບການເຊື່ອມໂຍງກັບແອັບພລິເຄຊັນອື່ນ (ຕົວຢ່າງ: ເລືອກ django_language ເມື່ອໃຊ້ Django).

ການ Localize JavaScript

ການແປແຕ່ລະລາຍການຈະຖືກສະແດງອອກມາເປັນໄຟລ໌ JSON ແບບສອງພາສາພາຍໃຕ້ CDN. ເພື່ອດຶງຂໍ້ມູນ, ເຈົ້າສາມາດໃຊ້ໂຄດຕໍ່ໄປນີ້:

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

ເຫດຜົນການ Localize ຕົວຈິງຈະຕ້ອງຖືກນຳໄປປະຕິບັດໃນກໍລະນີນີ້.

ການເຜີຍແຜ່ໄຟລ໌ການແປ

Add-on CDN ສຳລັບໄຟລ໌ການແປ ເຜີຍແຜ່ໄຟລ໌ການແປໂດຍກົງໄປຍັງ CDN. ມັນບໍ່ໄດ້ສ້າງ JavaScript loader ຫຼື ປ່ຽນການແປໄປເປັນ JSON ແບບສອງພາສາ.

ການແປແບບໄຟລ໌ດຽວຈະຖືກຕັ້ງຊື່ໂດຍໃຊ້ລະຫັດພາສາ ແລະ ນາມສະກຸນໄຟລ໌ຕົ້ນສະບັບ, ຕົວຢ່າງ cs.json ຫຼື de.po. ການແປແບບຫຼາຍໄຟລ໌ຈະຖືກບໍລິການພາຍໃຕ້ລະຫັດພາສາໂດຍໃຊ້ Path ທີ່ສຳພັນກັບໄດເລັກທໍຣີການແປ. Monolingual component ຈະລວມເອົາໄຟລ໌ພາສາຕົ້ນສະບັບ, ໃນຂະນະທີ່ Bilingual component ຈະເຜີຍແຜ່ພຽງແຕ່ໄຟລ໌ພາສາເປົ້າໝາຍເທົ່ານັ້ນ. ເບິ່ງ Localization CDN ສຳລັບການຕັ້ງຄ່າເຊີບເວີທີ່ປອດໄພ.