ການຕັ້ງຄ່າການແປພາສາ
ການແປເອກະສານຂອງ darktable ແມ່ນຖືກຈັດການຜ່ານ Weblate.
🔗ພາບລວມຂອງການຕັ້ງຄ່າ ແລະ ການໄຫຼຂອງຂໍ້ມູນສຳລັບການແປໂດຍໃຊ້ Weblate
ສະຫຼຸບໂດຍຫຍໍ້:
- ເອກະສານຫຼັກແມ່ນເປັນພາສາອັງກິດໃນໄຟລ໌ .md ທີ່ຢູ່ໃນ
content/*.md. - ຈາກນັ້ນ ໄຟລ໌ POT (
po/content.pot) ທີ່ລວມເອົາຂໍ້ຄວາມ ທີ່ສາມາດແປໄດ້ ທັງໝົດຈະຖືກສ້າງຂຶ້ນ. - Weblate ຈະຈັດການໄຟລ໌ PO ຂອງແຕ່ລະພາສາ (
po/content.{lang}.po) ເຊິ່ງບັນຈຸຂໍ້ຄວາມ ທີ່ແປແລ້ວ. - ເມື່ອນຳເອກະສານໄປໃຊ້, ໄຟລ໌ .md ສະເພາະແຕ່ລະພາສາຈະຖືກສ້າງຂຶ້ນໂດຍໃຊ້
generate-translations.shເຊິ່ງ Hugo ຈະນຳໄປສະແດງຜົນເປັນໄຟລ໌ .html, EPUB ແລະ PDF ຕໍ່ໄປ.
🔗ຈາກ GitHub ຫາ Weblate: ການຊິງໂຄຣໄນຂໍ້ຄວາມຕົ້ນສະບັບ
-
ໄຟລ໌ພາສາອັງກິດຕົ້ນສະບັບ (
content/*.md) ຖືກປ່ຽນແປງຜ່ານ pull request ໃນ GitHub (ເບິ່ງ workflow). -
GitHub action ທີ່ເຮັດວຽກທຸກຄືນຈະອັບເດດໄຟລ໌ POT (
po/content.pot) ທີ່ລວມຂໍ້ຄວາມທັງໝົດດ້ວຍຄຳສັ່ວgenerate-translations.sh --no-translations. ໝາຍເຫດ: ສະຄຣິບຈະອັບເດດທັງໄຟລ໌ POT ແລະ PO ແຕ່ພວກເຮົາຈະບໍ່ commit ໄຟລ໌ PO ທີ່ອັບເດດແລ້ວລົງໃນຄັງເກັບ ເນື່ອງຈາກໄຟລ໌ PO ຖືກຈັດການໂດຍ Weblate ທັງໝົດເພື່ອຫຼີກເວັ້ນບັນຫາ merge conflicts. -
Weblate ຈະ pull ໄຟລ໌ POT ທີ່ອັບເດດແລ້ວໂດຍອັດຕະໂນມັດ (ຜ່ານ Weblate GitHub app) ແລະ ຈະເພີ່ມຂໍ້ຄວາມໃໝ່ ຫຼື ຂໍ້ຄວາມທີ່ອັບເດດລົງໃນໄຟລ໌ PO ຂອງແຕ່ລະພາສາພາຍໃນລະບົບ
-
Weblate ຈະ commit ການປ່ຽນແປງໄປທີ່ GitHub ໂດຍການເປີດ pull request.
-
Pull request ຈະຖືກ merge ຫຼັງຈາກຜ່ານການກວດສອບ.
🔗ຈາກ Weblate ຫາ GitHub: ການຊິງໂຄຣໄນການແປພາສາ
-
ການແປພາສາແມ່ນເຮັດໃນ Weblate. ເບິ່ງ translators guide ສຳລັບວິທີການແປ.
-
Weblate ຈະອັບເດດໄຟລ໌ PO ຂອງແຕ່ລະພາສາພາຍໃນລະບົບ ແລະ commit ໄປຍັງ GitHub ຜ່ານ pull request. ເພື່ອບໍ່ໃຫ້ມີ pull request ຫຼາຍເກີນໄປ, ຂັ້ນຕອນນີ້ຈະເຮັດເປັນຊຸດ (batches).
🔗ການນຳໃຊ້ການແປພາສາ
ເມື່ອນຳໄປໃຊ້ທີ່ docs.darktable.org ໄຟລ໌ .md ທີ່ແປແລ້ວຈະຖືກສ້າງຂຶ້ນຈາກໄຟລ໌ PO ໃນ /po/ ໂດຍໃຊ້ generate-translations.sh --no-update. ຂັ້ນຕອນນີ້ແມ່ນຖືກປິດໄວ້ສຳລັບການ auto-build ໃນ GitHub Pages.
🔗ການເພີ່ມພາສາໃໝ່
-
ເພີ່ມພາສາໃໝ່ໃນ Weblate. ເບິ່ງ Weblate’s documentation ສຳລັບວິທີການເຮັດ. ໃຫ້ແນ່ໃຈວ່າໄຟລ໌ PO ທີ່ສ້າງໃໝ່ໄດ້ຖືກ commit ລົງໃນຄັງເກັບ dtdocs ແລ້ວ.
-
ໃນໄຟລ໌
config.yaml,config-pdf.yamlແລະconfig-epub.yaml, ໃຫ້ຊອກຫາແຖວlanguages:. -
ເພີ່ມພາສາທີ່ເຈົ້າຕ້ອງການແປ. ຕົວຢ່າງ, ລາຍການພາສາອັງກິດຈະເປັນແບບນີ້:
en-us: title: darktable user manual weight: 1
🔗ການເປີດ ແລະ ປິດການໃຊ້ງານພາສາ
ພາສາຕ່າງໆແມ່ນຖືກຄວບຄຸມໂດຍສອງລະບົບທີ່ແຍກກັນ ເຊິ່ງຕ້ອງຄອຍອັບເດດໃຫ້ກົງກັນດ້ວຍຕົວເອງ:
-
config.yamlແລະconfig-pdf.yaml— ການກຳນົດຄ່າຂອງ hugo. ພາສາທີ່ລະບຸຢູ່ທີ່ນີ້ຈະມີສ່ວນຂອງຕົນເອງໃນເວັບໄຊ ຫຼື PDF ທີ່ສ້າງຂຶ້ນ. -
disable-languages— ລາຍຊື່ລະຫັດພາສາທີ່ຂັ້ນດ້ວຍຍະຫວ່າງໃນໄດເຣັກທໍຣີຫຼັກຂອງຄັງເກັບຂໍ້ມູນ.generate-translations.shຈະອ່ານໄຟລ໌ນີ້ ແລະ ຂ້າມການສ້າງໄຟລ໌.{lang}.mdສຳລັບພາສາໃດໆທີ່ລະບຸໄວ້ທີ່ນີ້, ໂດຍບໍ່ສົນວ່າຈະມີໄຟລ໌ PO ສຳລັບພາສານັ້ນຫຼືບໍ່.
ຕົວປ່ຽນພາສາໃນທິມ (theme) ຈະສະແດງລາຍຊື່ພາສາກໍຕໍ່ເມື່ອມີໄຟລ໌ .{lang}.md ທີ່ແປແລ້ວສຳລັບໜ້າປັດຈຸບັນ — ມັນໃຊ້ຕົວແປ .IsTranslated ແລະ .Translations ຂອງ Hugo, ເຊິ່ງສະທ້ອນເຖິງໄຟລ໌ແທ້ໃນດິສກ໌, ບໍ່ແມ່ນລາຍການໃນ config.yaml. ດັ່ງນັ້ນ ພາສາທີ່ມີຢູ່ໃນ config.yaml ແຕ່ຖືກລະບຸໄວ້ໃນ disable-languages ຈະບໍ່ປາກົດໃນຕົວປ່ຽນພາສາ, ເພາະບໍ່ມີໄຟລ໌ທີ່ແປແລ້ວຖືກສ້າງຂຶ້ນ. ລາຍການໃນ config.yaml ຂອງມັນຈະຍັງບໍ່ເຮັດວຽກຈົນກ່ວາມັນຈະຖືກເອົາອອກຈາກ disable-languages.
ເພື່ອເປີດໃຊ້ງານພາສາ, ພາສານັ້ນຕ້ອງມີຢູ່ໃນ config.yaml, config-pdf.yaml ແລະ config-epub.yaml ແລະ ຕ້ອງບໍ່ມີຢູ່ໃນ disable-languages.
ເພື່ອປິດການໃຊ້ງານພາສາ, ພາສານັ້ນຄວນຖືກລະບຸໄວ້ໃນ disable-languages. ສ່ວນລາຍການໃນ config.yaml, config-pdf.yaml ແລະ config-epub.yaml ສາມາດປະໄວ້ຄືເກົ່າໄດ້ ເພື່ອໃຊ້ໃນເວລາທີ່ຕ້ອງການເປີດໃຊ້ງານພາສານັ້ນຄືນໃໝ່.
🔗ການແປຂໍ້ຄວາມຂອງທີມ (theme strings) ສຳລັບເວັບໄຊ, EPUB ແລະ PDF
ມີສາມທິມສຳລັບຄູ່ມື darktable: ອັນໜຶ່ງສຳລັບເວັບໄຊ HTML, ອັນໜຶ່ງສຳລັບ EPUB, ແລະ ອັນໜຶ່ງສຳລັບ PDF. ແຕ່ລະອັນມີຊຸດຂໍ້ຄວາມ UI ຂະໜາດນ້ອຍ (ເຊັ່ນ: “ສາລະບານ”, “ລິຂະສິດ”, “ຄົ້ນຫາ”) ທີ່ຕ້ອງໄດ້ແປດ້ວຍຕົນເອງ — ຂໍ້ຄວາມເຫຼົ່ານີ້ ບໍ່ໄດ້ ຖືກຈັດການໂດຍ Weblate.
-
ໄປທີ່
themes/hugo-darktable-docs-theme/i18n. -
ກັອບປີ້ໄຟລ໌
en-us.yamlແລະ ຕັ້ງຊື່ໄຟລ໌ໃໝ່ຕາມລະຫັດພາສາຂອງເຈົ້າໂດຍໃຊ້ເຄື່ອງໝາຍຂີດກາງ (ເຊັ່ນde-de.yaml,fr-fr.yaml). -
ແປຂໍ້ຄວາມໃນໄຟລ໌ yaml ໃໝ່ນັ້ນ.
-
Check-in ໄຟລ໌ yaml ທີ່ແປແລ້ວລົງໃນ git, push ໄປທີ່ GitHub ແລະ ເປີດ pull request ເພື່ອໃຫ້ການປ່ຽນແປງຖືກຍອມຮັບ.
-
ເຮັດແບບດຽວກັນສຳລັບ
themes/hugo-darktable-docs-epub-theme/i18nແລະthemes/hugo-darktable-docs-pdf-theme/i18n. ທີມເຫຼົ່ານີ້ໃຊ້ລະຫັດພາສາທີ່ສັ້ນກວ່າ ໂດຍໃຊ້ພຽງແຕ່ລະຫັດພາສາ (ເຊັ່ນde.yaml) ຫຼື ໃຊ້ເຄື່ອງໝາຍຂີດລຸ່ມສຳລັບພາສາສະເພາະທ້ອງຖິ່ນ (ເຊັ່ນpt_br.yaml).
🔗generate-translations.sh
ສະຄຣິບນີ້ຖືກໃຊ້ໂດຍ GitHub action ທີ່ເຮັດວຽກທຸກຄືນ ແລະ ຍັງສາມາດລັນໃນເຄື່ອງໄດ້ໂດຍຜູ້ເກັບຮັກສາລະບົບທີ່ຕ້ອງການອັບເດດການແປພາສາດ້ວຍຕົວເອງ ຫຼື ຕ້ອງການກວດສອບຂໍ້ຜິດພາດ (debug) ໃນການສ້າງ.
ສະຄຣິບ (script) ນີ້ແມ່ນຕົວຫຸ້ມ (wrapper) ຮອບ po4a ເພື່ອຈັດການການເຮັດວຽກຮ່ວມກັນລະຫວ່າງໄຟລ໌ .md ຕົ້ນສະບັບ ແລະ ບົດແປ. ສະຄຣິບຈະອ່ານໄຟລ໌ disable-languages ໃນໄດເຣັກທໍຣີຫຼັກຂອງຄັງເກັບຂໍ້ມູນ, ຄັດກອງພາສາທີ່ຖືກປິດຕົວອອກ, ສ້າງໄຟລ໌ກຳນົດຄ່າ po4a ຊົ່ວຄາວທີ່ມີໄຟລ໌ content/**/*.md ທັງໝົດ, ແລະ ຈາກນັ້ນກໍເອີ້ນໃຊ້ po4a $1 --verbose $po4a_conf — ແຟລັກ (flag) ຈະຖືກສົ່ງຕໍ່ໄປຫາ po4a ໂດຍກົງ.
ມັນຕ້ອງການໜຶ່ງໃນສາມອາກິວເມັນ (arguments).
--no-translations- ສ້າງໄຟລ໌ POT ແລະ PO (
po/content.potແລະpo/content.{lang}.po) ຈາກໄຟລ໌ .md ຕົ້ນສະບັບ (content/*.md). ແຕ່ຈະ ບໍ່ ສ້າງໄຟລ໌ຜົນໄດ້ຮັບທີ່ແປແລ້ວ. ຂໍ້ຄວາມໃໝ່ ຫຼື ຂໍ້ຄວາມທີ່ປ່ຽນແປງຈາກໄຟລ໌ຕົ້ນສະບັບຈະຖືກດຶງເຂົ້າໄປໃນໄຟລ໌ POT/PO, ແຕ່ຈະບໍ່ມີການສ້າງໄຟລ໌*.{lang}.md. ຄຳສັ່ງນີ້ໃຊ້ຫຼັງຈາກມີການອັບເດດໄຟລ໌ຕົ້ນສະບັບພາສາອັງກິດ ເພື່ອຕຽມໄຟລ໌ POT ແລະ PO ສຳລັບ Weblate. --no-update- ສ້າງໄຟລ໌ Markdown ທີ່ແປແລ້ວຈາກໄຟລ໌ PO ທີ່ມີຢູ່, ໂດຍບໍ່ມີການອັບເດດໄຟລ໌ POT/PO. ນີ້ໝາຍຄວາມວ່າຈະບໍ່ມີການອ່ານໄຟລ໌ຕົ້ນສະບັບ (
content/*.md) ຄືນໃໝ່; ການແປທີ່ມີຢູ່ແລ້ວຈະຖືກນຳໄປສ້າງເປັນໄຟລ໌.{lang}.mdໂດຍກົງ. --rm-translations- ລຶບໄຟລ໌ທີ່ແປແລ້ວທີ່ຖືກສ້າງຂຶ້ນ.
po4aຈະລຶບໄຟລ໌ຜົນໄດ້ຮັບ*.{lang}.mdທີ່ເຄີຍສ້າງດ້ວຍ--no-update. ສ່ວນໄຟລ໌ PO/POT ຈະບໍ່ຖືກແຕະຕ້ອງ.