ການເຊື່ອມໂຍງກັບ Weblate¶
ພື້ນຖານຂອງ Weblate¶
ໂຄງສ້າງຂອງໂຄງການ ແລະ ອົງປະກອບ¶
ໃນ Weblate ການແປຈະຖືກຈັດລະບຽບເປັນໂຄງການ (projects) ແລະ ອົງປະກອບ (components). ແຕ່ລະໂຄງການສາມາດມີຫຼາຍອົງປະກອບ ແລະ ແຕ່ລະອົງປະກອບກໍ່ມີການແປເປັນພາສາຕ່າງໆ. ອົງປະກອບຈະກົງກັບໄຟລ໌ທີ່ສາມາດແປໄດ້ໜຶ່ງໄຟລ໌ (ຕົວຢ່າງ GNU gettext PO (Portable Object) ຫຼື ຊັບພະຍາກອນຂໍ້ຄວາມ Android). ໂຄງການມີໄວ້ເພື່ອຊ່ວຍໃຫ້ເຈົ້າຈັດລະບຽບອົງປະກອບໃຫ້ເປັນກຸ່ມທີ່ສົມເຫດສົມຜົນ (ຕົວຢ່າງ: ເພື່ອລວມການແປທັງໝົດທີ່ໃຊ້ໃນແອັບພລິເຄຊັນດຽວກັນ).
ນອກຈາກນັ້ນ, ອົງປະກອບພາຍໃນໂຄງການສາມາດຈັດໂຄງສ້າງໂດຍໃຊ້ໝວດໝູ່ (categories) ໄດ້. ອົງປະກອບສາມາດຂຶ້ນກັບໝວດໝູ່ໃດໜຶ່ງ, ແລະ ໝວດໝູ່ສາມາດຊ້ອນກັນໄດ້.
ພາຍໃນແຕ່ລະໂຄງການ, ການແປຂໍ້ຄວາມທົ່ວໄປຈະຖືກສົ່ງຕໍ່ (propagate) ໄປຍັງອົງປະກອບອື່ນໆພາຍໃນໂຄງການນັ້ນໂດຍຄ່າເລີ່ມຕົ້ນ. ສິ່ງນີ້ຊ່ວຍຫຼຸດຜ່ອນພາລະໃນການແປຂໍ້ຄວາມທີ່ຊ້ຳກັນ ແລະ ການແປຫຼາຍເວີຊັນ. ການສົ່ງຕໍ່ການແປສາມາດປິດໄດ້ໃນແຕ່ລະ ການຕັ້ງຄ່າ Component ໂດຍໃຊ້ ອະນຸຍາດການກະຈາຍການແປ ໃນກໍລະນີທີ່ຕ້ອງການໃຫ້ການແປມີຄວາມແຕກຕ່າງກັນ.
ການເຊື່ອມຕໍ່ກັບ Repository¶
Weblate ຖືກສ້າງຂຶ້ນເພື່ອເຊື່ອມຕໍ່ກັບ upstream version control repository, ການປັບແຕ່ງພາສາແບບຕໍ່ເນື່ອງ ຈະອະທິບາຍກ່ຽວກັບອົງປະກອບພື້ນຖານ ແລະ ວິທີທີ່ການປ່ຽນແປງໄຫຼວຽນລະຫວ່າງພວກມັນ.
See also
ພາບລວມຂອງສະຖາປັດຕະຍະກຳ ອະທິບາຍວິທີທີ່ Weblate ເຮັດວຽກພາຍໃນ.
ການລະບຸຕົວຕົນຜູ້ໃຊ້¶
Weblate ຮັກສາຂໍ້ມູນການແປທີ່ລະບຸຊື່ຜູ້ແປຢ່າງຖືກຕ້ອງໃນ version control repository ໂດຍການໃຊ້ຊື່ ແລະ ອີເມລ. ການມີອີເມລແທ້ຕິດກັບ commit ແມ່ນເປັນໄປຕາມຫຼັກການຂອງ distributed version control ແລະ ຊ່ວຍໃຫ້ບໍລິການຕ່າງໆ ເຊັ່ນ GitHub ສາມາດເຊື່ອມໂຍງການປະກອບສ່ວນຂອງເຈົ້າໃນ Weblate ເຂົ້າກັບໂປຣໄຟລ໌ GitHub ຂອງເຈົ້າໄດ້.
ຄຸນສົມບັດນີ້ຍັງນຳມາເຊິ່ງຄວາມສ່ຽງໃນການນຳອີເມລທີ່ຖືກເຜີຍແຜ່ໃນ version control commits ໄປໃຊ້ໃນທາງທີ່ຜິດ. ນອກຈາກນັ້ນ, ເມື່ອ commit ດັ່ງກ່າວຖືກເຜີຍແຜ່ໃນ public hosting (ເຊັ່ນ GitHub) ແລ້ວ, ມັນກໍ່ບໍ່ມີທາງທີ່ຈະລຶບ ຫຼື ແກ້ໄຂມັນໄດ້. Weblate ອະນຸຍາດໃຫ້ເລືອກໃຊ້ອີເມລ commit ແບບສ່ວນຕົວໃນ ບັນຊີ ເພື່ອຫຼີກເວັ້ນບັນຫານີ້.
ດັ່ງນັ້ນ, ຜູ້ດູແລລະບົບຄວນພິຈາລະນາສິ່ງນີ້ໃນຂະນະທີ່ຕັ້ງຄ່າ Weblate:
ການໃຊ້ອີເມລໃນລັກສະນະດັ່ງກ່າວຄວນຖືກອະທິບາຍຢ່າງຈະແຈ້ງໃນຂໍ້ກຳນົດການໃຫ້ບໍລິການ ໃນກໍລະນີທີ່ຕ້ອງການເອກະສານດັ່ງກ່າວ. ໂມດູນທາງກົດໝາຍ ສາມາດຊ່ວຍໃນເລື່ອງນີ້ໄດ້.
PRIVATE_COMMIT_EMAIL_OPT_INສາມາດຕັ້ງຄ່າໃຫ້ອີເມລເປັນແບບສ່ວນຕົວໂດຍຄ່າເລີ່ມຕົ້ນ.
ການນຳເຂົ້າໂຄງການ Localization ໄປຍັງ Weblate¶
Weblate ຖືກພັດທະນາໂດຍຄຳນຶງເຖິງການເຊື່ອມໂຍງ VCS ເປັນຟີເຈີຫຼັກ, ດັ່ງນັ້ນວິທີທີ່ງ່າຍທີ່ສຸດຄືການໃຫ້ສິດ Weblate ເຂົ້າເຖິງ Repository ຂອງເຈົ້າ. ຂະບວນການນຳເຂົ້າຈະແນະນຳເຈົ້າຜ່ານການຕັ້ງຄ່າການແປຂອງເຈົ້າໃຫ້ເປັນ Component ຂອງ Weblate.
ທາງເລືອກອື່ນ, ເຈົ້າສາມາດໃຫ້ Weblate ຕັ້ງຄ່າ Repository ແບບ Local-only ເຊິ່ງບັນຈຸການແປທັງໝົດໂດຍບໍ່ມີການເຊື່ອມໂຍງ.
ການດຶງການແປທີ່ອັບເດດຈາກ Weblate¶
Weblate ເກັບຂໍ້ຄວາມທີ່ອັບເດດໄວ້ໃນຖານຂໍ້ມູນ ແລະ Commit ພວກມັນໄປຍັງ Local version-control repository. ເຈົ້າສາມາດເພີ່ມ Weblate repository (ເມື່ອ Git exporter ຖືກເປີດໃຊ້ງານ) ເປັນ Remote repository ເພີ່ມເຕີມ ແລະ ດຶງການອັບເດດການແປຈາກມັນ.
ກ່ອນໜ້ານັ້ນ, ເຈົ້າອາດຈະຕ້ອງການ Commit ການປ່ຽນແປງໃດໆໃນ Local ທີ່ຍັງຄ້າງຢູ່ໃນ Weblate (ເບິ່ງ Lazy commits). ສິ່ງນີ້ສາມາດເຮັດໄດ້ຈາກສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ (ໃນ Repository maintenance), ຫຼື ຈາກ Command-line ໂດຍໃຊ້ Weblate Client.
ການ Push ການປ່ຽນແປງສາມາດເຮັດໃຫ້ອັດຕະໂນມັດໄດ້ ຖ້າເຈົ້າໃຫ້ສິດ Weblate Push ໄປຍັງ Repository ຂອງເຈົ້າ ແລະ ຕັ້ງຄ່າ URL ສຳລັບ push ຄັງເກັບ ໃນ ການຕັ້ງຄ່າ Component, ເບິ່ງ ການ Push ການປ່ຽນແປງຈາກ Weblate.
ທາງເລືອກອື່ນ, ໃຊ້ REST API ຂອງ Weblate ເພື່ອອັບເດດການແປເພື່ອໃຫ້ພວກມັນກົງກັບເວີຊັນຫຼ້າສຸດຈາກ Upstream ໃນ Remote VCS repository ຂອງເຈົ້າ.
ການດຶງການປ່ຽນແປງຈາກ Remote ເຂົ້າໄປຍັງ Weblate¶
ເພື່ອດຶງຂໍ້ຄວາມໃດໆທີ່ຫາກໍ່ອັບເດດໃນ Remote VCS repository ຂອງເຈົ້າເຂົ້າໄປຍັງ Weblate, ໃຫ້ອະນຸຍາດ Weblate Pull ຈາກ Upstream repository. ສິ່ງນີ້ສາມາດເຮັດໄດ້ໃນສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ (ໃນ Repository maintenance), ຫຼື ຈາກ Command-line ໂດຍໃຊ້ Weblate Client.
ສິ່ງນີ້ສາມາດເຮັດໃຫ້ອັດຕະໂນມັດໂດຍການຕັ້ງ Webhook ໃນ Repository ຂອງເຈົ້າເພື່ອ Trigger Weblate ເມື່ອໃດກໍຕາມທີ່ມີ Commit ໃໝ່. ເບິ່ງ ການອັບເດດຮີໂປຊິທໍຣີ ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ.
ຖ້າບໍ່ໄດ້ໃຊ້ VCS integration, ເຈົ້າສາມາດໃຊ້ UI ຫຼື REST API ຂອງ Weblate ເພື່ອອັບເດດການແປເພື່ອໃຫ້ພວກມັນກົງກັບ Codebase ຂອງເຈົ້າ.
ການຕິດຕາມຄວາມຄືບໜ້າການແປ¶
ໃຊ້ endpoint ຕົວຊີ້ວັດໂຄງການ ເພື່ອຕິດຕາມຄວາມຄືບໜ້າການແປຈາກການເຊື່ອມຕໍ່ລະບົບພາຍນອກ. ມັນຈະສົ່ງສະຖິຕິສຳລັບທຸກສ່ວນປະກອບ ແລະ ພາສາທີ່ເບິ່ງເຫັນໄດ້ຄືນມາໃນຄຳຮ້ອງຂໍດຽວ ແລະ ຮອງຮັບຮູບແບບ JSON, CSV, ແລະ OpenMetrics.
ຮູບແບບ OpenMetrics ສາມາດຖືກດຶງຂໍ້ມູນ (scraped) ໂດຍລະບົບຕິດຕາມທີ່ຮອງຮັບ Prometheus ໂດຍບໍ່ຕ້ອງມີການຮ້ອງຂໍສະຖິຕິໄປຫາແຕ່ລະການແປ.
ການເພີ່ມຂໍ້ຄວາມໃໝ່¶
ຖ້າໄຟລ໌ການແປຂອງເຈົ້າຖືກເກັບໄວ້ໃນ Remote VCS ພ້ອມກັບ Code, ເຈົ້າມັກຈະມີ Workflow ທີ່ມີຢູ່ແລ້ວສຳລັບນັກພັດທະນາໃນການເພີ່ມຂໍ້ຄວາມໃໝ່. ວິທີການເພີ່ມຂໍ້ຄວາມໃດໆກໍຕາມຈະຖືກນຳມາໃຊ້, ແຕ່ໃຫ້ພິຈາລະນາໃຊ້ ປະຕູຄຸນນະພາບສຳລັບຂໍ້ຄວາມຕົ້ນສະບັບ ເພື່ອຫຼີກລ່ຽງການນຳເອົາຂໍ້ຜິດພາດເຂົ້າໄປ.
ເມື່ອໄຟລ໌ການແປຖືກແຍກອອກຈາກ Code, ວິທີຕໍ່ໄປນີ້ສາມາດນຳຂໍ້ຄວາມໃໝ່ເຂົ້າໄປໃນ Weblate ໄດ້.
ດ້ວຍຕົນເອງ, ໂດຍໃຊ້ Add new translation string ຈາກເມນູ Operations ໃນພາສາຕົ້ນສະບັບ. ເຈົ້າສາມາດເລືອກລະຫວ່າງປຸ່ມ Radio Singular ແລະ Plural ພາຍໃນຟອມ. ເລືອກຮູບແບບທີ່ເໝາະສົມຂອງຂໍ້ຄວາມການແປໃໝ່ທີ່ຈະເພີ່ມ.
ໂດຍໃຊ້ໂປຣແກຣມ, ໃຊ້ API
POST /api/translations/(string:project)/(string:component)/(string:language)/units/.ໂດຍການອັບໂຫຼດໄຟລ໌ຕົ້ນສະບັບເປັນ Replace existing translation file (ສິ່ງນີ້ຈະຂຽນທັບຂໍ້ຄວາມທີ່ມີຢູ່, ສະນັ້ນກະລຸນາຮັບປະກັນວ່າໄຟລ໌ປະກອບມີທັງຂໍ້ຄວາມເກົ່າ ແລະ ໃໝ່) ຫຼື Add new strings, ເບິ່ງ ວິທີການນຳເຂົ້າ.
Note
ຄວາມສາມາດໃນການເພີ່ມຂໍ້ຄວາມໃນ Weblate ຮຽກຮ້ອງໃຫ້ມີ ຈັດການຂໍ້ຄວາມ.
ການອັບເດດໄຟລ໌ພາສາເປົ້າໝາຍ¶
ສຳລັບໄຟລ໌ Monolingual (ເບິ່ງ ຮູບແບບໄຟລ໌ການແປພາສາ), Weblate ອາດຈະເພີ່ມຂໍ້ຄວາມການແປໃໝ່ທີ່ມີຢູ່ໃນ ໄຟລ໌ພາສາຫຼັກ (Monolingual), ແລະ ບໍ່ໄດ້ມີຢູ່ໃນການແປຕົວຈິງ. ຢ່າງໃດກໍຕາມ, ມັນບໍ່ໄດ້ປະຕິບັດການລຶບຂໍ້ຄວາມທີ່ຄ້າງຄາໂດຍອັດຕະໂນມັດ, ເພາະມັນອາດຈະມີຜົນທີ່ບໍ່ຄາດຄິດ. ຖ້າເຈົ້າຍັງຕ້ອງການເຮັດສິ່ງນີ້, ກະລຸນາຕິດຕັ້ງ Add-on ລຶບລ້າງໄຟລ໌ການແປ, ເຊິ່ງຈະຈັດການການລຶບຕາມຄວາມຕ້ອງການຂອງເຈົ້າ.
Weblate ຈະບໍ່ພະຍາຍາມອັບເດດໄຟລ໌ Bilingual ເມື່ອຕົ້ນສະບັບປ່ຽນແປງ, ສະນັ້ນຖ້າເຈົ້າຕ້ອງການໃຫ້ໄຟລ໌ po ຖືກອັບເດດຈາກ pot, ເຈົ້າມີສອງທາງເລືອກ:
ອັດຕະໂນມັດດ້ວຍ Add-on (ແນະນຳສຳລັບການອັບເດດຢ່າງຕໍ່ເນື່ອງ): ຕິດຕັ້ງ Add-on ອັບເດດໄຟລ໌ PO ໃຫ້ກົງກັບ POT (msgmerge), ເຊິ່ງຈະຮັນ msgmerge ໂດຍອັດຕະໂນມັດເພື່ອອັບເດດໄຟລ໌ PO ທັງໝົດເມື່ອໃດກໍຕາມທີ່ໄຟລ໌ POT ປ່ຽນແປງ.
ດ້ວຍຕົນເອງຜ່ານການອັບໂຫຼດ: ໃຊ້ ວິທີການນຳເຂົ້າ Update source strings ເພື່ອອັບໂຫຼດໄຟລ໌ POT ຂອງເຈົ້າ, ເຊິ່ງຈະ Merge ມັນກັບການແປທີ່ມີຢູ່.
Hint
ເຄື່ອງມືສະກັດຂໍ້ຄວາມຕົ້ນສະບັບ, ເຊັ່ນ xgettext ຫຼື lupdate, ຈຳເປັນຕ້ອງຖືກປະຕິບັດຢູ່ນອກ Weblate.
ການແນະນຳຂໍ້ຄວາມໃໝ່¶
ເຈົ້າສາມາດເພີ່ມຂໍ້ຄວາມໃໝ່ໃນ Weblate ໂດຍເປີດໃຊ້ ຈັດການຂໍ້ຄວາມ, ແຕ່ປົກກະຕິແລ້ວມັນຈະດີກວ່າທີ່ຈະເພີ່ມຂໍ້ຄວາມໃໝ່ພ້ອມກັບການປ່ຽນແປງ Code ທີ່ນຳພວກມັນເຂົ້າມາ.
ຮູບແບບ Monolingual ຈຳເປັນຕ້ອງໄດ້ຮັບການຕັ້ງຄ່າເພື່ອໃຫ້ຂໍ້ຄວາມໃໝ່ຖືກເພີ່ມເຂົ້າໃນ ໄຟລ໌ພາສາຫຼັກ (Monolingual). ສິ່ງນີ້ປົກກະຕິເຮັດໂດຍນັກພັດທະນາ, ໃນຂະນະທີ່ພວກເຂົາຂຽນ Code. ເຈົ້າອາດຈະຕ້ອງການໃຊ້ຂະບວນການກວດສອບຂໍ້ຄວາມເຫຼົ່ານັ້ນໂດຍໃຊ້ ປະຕູຄຸນນະພາບສຳລັບຂໍ້ຄວາມຕົ້ນສະບັບ.
ຮູບແບບ Bilingual ປົກກະຕິຈະສະກັດຂໍ້ຄວາມຈາກ Source code ໂດຍໃຊ້ເຄື່ອງມືບາງຢ່າງ (ເຊັ່ນ xgettext ຫຼື intltool-update). ຈົ່ງປະຕິບັດຕາມເອກະສານ Framework ການແປພາສາຂອງເຈົ້າສຳລັບຄຳແນະນຳໃນການເຮັດສິ່ງນັ້ນ. ເມື່ອຂໍ້ຄວາມຖືກສະກັດແລ້ວ, ອາດຈະມີຂັ້ນຕອນເພີ່ມເຕີມທີ່ຈຳເປັນໃນການອັບເດດການແປທີ່ມີຢູ່, ເບິ່ງ ການອັບເດດໄຟລ໌ພາສາເປົ້າໝາຍ.
Hint
ການເຮັດໃຫ້ການສະກັດຂໍ້ຄວາມເປັນອັດຕະໂນມັດຍັງບໍ່ໄດ້ຢູ່ໃນຂອບເຂດຂອງ Weblate ໃນປັດຈຸບັນ. ມັນມັກຈະກ່ຽວຂ້ອງກັບການປະຕິບັດ Code ທີ່ບໍ່ໄດ້ຮັບການໄວ້ວາງໃຈ, ເຊິ່ງເຮັດໃຫ້ມັນເໝາະສົມກັບ Continuous integration ທົ່ວໄປຫຼາຍກວ່າ Platform ສະເພາະດ້ານການແປ.
ເຈົ້າອາດຈະຕ້ອງການເຊື່ອມໂຍງສິ່ງນີ້ເຂົ້າໄປໃນ Continuous integration pipelines ຂອງເຈົ້າ ເພື່ອເຮັດໃຫ້ຂໍ້ຄວາມໃໝ່ປາກົດຂຶ້ນມາສຳລັບການແປໂດຍອັດຕະໂນມັດ. Pipeline ດັ່ງກ່າວຄວນກວມເອົາ ການຫຼີກລ່ຽງຂໍ້ຂັດແຍ່ງໃນການລວມ (merge conflicts) ນຳ.
ການຈັດການ Local VCS repository¶
Weblate ເກັບການແປທັງໝົດໄວ້ໃນ Version control repository ພາຍໃຕ້ຂອງມັນ. ມັນໄດ້ຮັບການແນະນຳໃຫ້ເຊື່ອມຕໍ່ກັບ Remote repository, ແຕ່ການຕັ້ງຄ່າແບບ Internal-only ກໍເປັນໄປໄດ້. Repository maintenance ຊ່ວຍໃຫ້ສາມາດຄວບຄຸມ Repository ນີ້ໄດ້. ສຳລັບຄຳອະທິບາຍລາຍລະອຽດກ່ຽວກັບການກະທຳທີ່ມີຢູ່, ເບິ່ງ ການບຳລຸງຮັກສາຄັງເກັບ.
Hint
ດ້ວຍ ການປັບແຕ່ງພາສາແບບຕໍ່ເນື່ອງ, ການປ່ຽນແປງໃດໆຈະຖືກ Push ຈາກ Repository ໂດຍອັດຕະໂນມັດ, ສະນັ້ນປົກກະຕິແລ້ວຈຶ່ງບໍ່ຈຳເປັນຕ້ອງຈັດການມັນດ້ວຍຕົນເອງ.