ເນື້ອໃນ

# ບໍລິການ ScriptForge.L10N

ບໍລິການນີ້ໃຫ້ວິທີການຈຳນວນໜຶ່ງທີ່ກ່ຽວຂ້ອງກັບການແປຂໍ້ຄວາມ ໂດຍສົ່ງຜົນກະທົບຕໍ່ຊອດໂຄ້ດຂອງໂປຣແກຣມໜ້ອຍທີ່ສຸດ. ວິທີການທີ່ໃຫ້ໂດຍບໍລິການ L10N ສາມາດໃຊ້ເພື່ອ:

- ສ້າງໄຟລ໌ POT ທີ່ສາມາດໃຊ້ເປັນແມ່ແບບສຳລັບການແປຂໍ້ຄວາມທັງໝົດໃນໂປຣແກຣມ.

- ດຶງຂໍ້ຄວາມທີ່ແປແລ້ວໃນຂະນະເຮັດວຽກ ສຳລັບພາສາທີ່ກຳນົດໄວ້ໃນຄຸນສົມບັດ Locale.

ຄຳຫຍໍ້ L10N ຫຍໍ້ມາຈາກ Localization (ການປັບໃຫ້ເຂົ້າກັບທ້ອງຖິ່ນ) ແລະ ໝາຍເຖິງຂັ້ນຕອນຕ່າງໆໃນການແປຊອບແວໃຫ້ເຂົ້າກັບປະເທດ ຫຼື ພາກພື້ນສະເພາະໃດໜຶ່ງ.

ໄຟລ໌ PO ໄດ້ຖືກສົ່ງເສີມມາຢ່າງຍາວນານໃນຊຸມຊົນຊອບແວເສລີ ເພື່ອເປັນວິທີການສ້າງສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ຫຼາຍພາສາ. ສິ່ງນີ້ສຳເລັດໄດ້ໂດຍການໃຊ້ໄຟລ໌ຂໍ້ຄວາມທີ່ມະນຸດສາມາດອ່ານໄດ້ ທີ່ມີໂຄງສ້າງທີ່ກຳນົດໄວ້ຢ່າງຊັດເຈນ ເຊິ່ງລະບຸຂໍ້ຄວາມພາສາຕົ້ນສະບັບ ແລະ ຂໍ້ຄວາມທີ່ແປແລ້ວ.

ຂໍ້ດີຫຼັກຂອງຮູບແບບ PO ແມ່ນການແຍກວຽກລະຫວ່າງນັກຂຽນໂປຣແກຣມ ແລະ ນັກແປ. ໄຟລ໌ PO ເປັນໄຟລ໌ຂໍ້ຄວາມທີ່ເປັນອິດສະຫຼະ, ດັ່ງນັ້ນນັກຂຽນໂປຣແກຣມສາມາດສົ່ງໄຟລ໌ແມ່ແບບ POT ໃຫ້ນັກແປ, ເຊິ່ງເຂົາເຈົ້າຈະແປເນື້ອໃນ ແລະ ສົ່ງໄຟລ໌ PO ທີ່ແປແລ້ວກັບຄືນມາສຳລັບແຕ່ລະພາສາທີ່ຮອງຮັບ.

ບໍລິການ L10N ແມ່ນອີງໃສ່ການນຳໃຊ້ໄຟລ໌ PO (portable object) ຂອງ GNU. ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບຮູບແບບໄຟລ໌ນີ້, ເຂົ້າເບິ່ງ GNU gettext Utilities: PO Files.

ບໍລິການນີ້ປະກອບມີວິທີການຕ່າງໆ ທີ່ລະບຸໄວ້ດ້ານລຸ່ມນີ້:

- AddText: ໃຊ້ໂດຍນັກຂຽນໂປຣແກຣມເພື່ອສ້າງຊຸດຂໍ້ຄວາມທີ່ຈະຖືກແປໃນພາຍຫຼັງ.

- AddTextsFromDialog: ດຶງຂໍ້ຄວາມທັງໝົດອອກຈາກອິນສະແຕນຊ໌ບໍລິການ Dialog.

- ExportToPOTFile: ສົ່ງອອກຂໍ້ຄວາມທີ່ເພີ່ມໂດຍວິທີ AddText ໄປເປັນໄຟລ໌ POT.

- GetText: ດຶງຂໍ້ຄວາມທີ່ແປແລ້ວໃນຂະນະເຮັດວຽກ.

ໝາຍເຫດວ່າ ສອງວິທີທຳອິດແມ່ນໃຊ້ເພື່ອສ້າງຊຸດຂໍ້ຄວາມທີ່ສາມາດແປໄດ້ ແລະ ສົ່ງອອກເປັນໄຟລ໌ POT. ແນວໃດກໍຕາມ, ບໍ່ຈຳເປັນຕ້ອງສ້າງໄຟລ໌ POT ດ້ວຍວິທີເຫຼົ່ານີ້ສະເໝີໄປ. ເນື່ອງຈາກພວກມັນເປັນໄຟລ໌ຂໍ້ຄວາມ, ນັກຂຽນໂປຣແກຣມສາມາດສ້າງພວກມັນດ້ວຍຕົວແກ້ໄຂຂໍ້ຄວາມໃດກໍໄດ້.

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ L10N, ຕ້ອງໂຫລດ ຫຼື ນຳເຂົ້າໄລບຣາຣີ ScriptForge ກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ມີຫຼາຍວິທີໃນການເອີ້ນໃຊ້ບໍລິການ L10N ໂດຍໃຊ້ອາກິວເມັນເສີມສູງສຸດຫ້າຢ່າງ ເຊິ່ງລະບຸໂຟນເດີທີ່ເກັບໄຟລ໌ PO, ທ້ອງຖິ່ນ ແລະ ການເຂົ້າລະຫັດທີ່ຈະໃຊ້, ລວມທັງໄຟລ໌ PO ສຳຮອງ ແລະ ການເຂົ້າລະຫັດຂອງມັນ.

### ໄວຍາກອນ:

CreateScriptService("L10N", opt foldername: str, opt locale: str, encoding: str = "UTF-8", opt locale2: str, encoding2: str = "UTF-8"): svc

foldername: ໂຟນເດີທີ່ບັນຈຸໄຟລ໌ PO. ຕ້ອງລະບຸໃນຮູບແບບ FileSystem.FileNaming.

locale: ຂໍ້ຄວາມໃນຮູບແບບ "la-CO" (ພາສາ-ປະເທດ) ຫຼື ໃນຮູບແບບ "la" (ພາສາ) ເທົ່ານັ້ນ.

encoding: ຊຸດອັກຂະລະທີ່ຈະໃຊ້. ການເຂົ້າລະຫັດເລີ່ມຕົ້ນແມ່ນ "UTF-8".

locale2: ຂໍ້ຄວາມທີ່ລະບຸທ້ອງຖິ່ນສຳຮອງທີ່ຈະໃຊ້ ໃນກໍລະນີທີ່ບໍ່ມີໄຟລ໌ PO ທີ່ກົງກັບທ້ອງຖິ່ນທີ່ກຳນົດໃນພາຣາມິເຕີ locale. ພາຣາມິເຕີນີ້ລະບຸໃນຮູບແບບ "la-CO" ຫຼື "la" ເທົ່ານັ້ນ.

encoding2: ຊຸດອັກຂະລະຂອງໄຟລ໌ PO ສຳຮອງທີ່ກົງກັບອາກິວເມັນ locale2. ການເຂົ້າລະຫັດເລີ່ມຕົ້ນແມ່ນ "UTF-8".

ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບຊື່ຂອງຊຸດອັກຂະລະ, ເຂົ້າເບິ່ງໜ້າ IANA's Character Set. ໃຫ້ຮູ້ວ່າ LibreOffice ບໍ່ໄດ້ຮອງຮັບທຸກຊຸດອັກຂະລະທີ່ມີຢູ່.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ສ້າງອິນສະແຕນຊ໌ບໍລິການ L10N ໂດຍບໍ່ມີອາກິວເມັນເສີມໃດໆ. ນີ້ຈະເປີດໃຊ້ສະເພາະວິທີ AddText ແລະ ExportToPOTFile ເທົ່ານັ້ນ, ເຊິ່ງມີປະໂຫຍດໃນການສ້າງໄຟລ໌ POT.

          GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
          Dim myPO As Variant
          Set myPO = CreateScriptService("L10N")

ຕົວຢ່າງດ້ານລຸ່ມນີ້ລະບຸໂຟນເດີທີ່ບັນຈຸໄຟລ໌ PO. ເນື່ອງຈາກບໍ່ໄດ້ກຳນົດທ້ອງຖິ່ນ, ບໍລິການຈະໃຊ້ທ້ອງຖິ່ນທີ່ກຳນົດໄວ້ສຳລັບສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ຂອງ LibreOffice, ເຊິ່ງເປັນທ້ອງຖິ່ນດຽວກັນກັບທີ່ກຳນົດໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

          Set myPO = CreateScriptService("L10N", "C:\myPOFiles")

ຕົວຢ່າງຂ້າງເທິງຈະເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດໃນຂະນະເຮັດວຽກ ຖ້າບໍ່ມີໄຟລ໌ PO ທີ່ກົງກັບທ້ອງຖິ່ນ OfficeLocale ໃນໂຟນເດີທີ່ລະບຸ.

ໃນຕົວຢ່າງດ້ານລຸ່ມນີ້, ທ້ອງຖິ່ນຖືກກຳນົດຢ່າງຊັດເຈນເປັນພາສາຝຣັ່ງແບນຊິກ ("fr-BE"), ດັ່ງນັ້ນບໍລິການຈະໂຫລດໄຟລ໌ "fr-BE.po" ຈາກໂຟນເດີ "C:\myPOFiles". ຖ້າບໍ່ມີໄຟລ໌, ຈະເກີດຂໍ້ຜິດພາດຂຶ້ນ.

          Set myPO = CreateScriptService("L10N", "C:\myPOFiles", "fr-BE", "UTF-8")

ເພື່ອຫຼີກເວັ້ນຂໍ້ຜິດພາດ, ສາມາດລະບຸທ້ອງຖິ່ນ ແລະ ການເຂົ້າລະຫັດຫຼັກ ແລະ ສຳຮອງໄດ້. ຕົວຢ່າງຕໍ່ໄປນີ້ຈະພະຍາຍາມໂຫລດໄຟລ໌ "fr-BE.po" ກ່ອນ ແລະ ຖ້າບໍ່ມີ, ຈະໂຫລດໄຟລ໌ "en-US.po" ແທນ.

          Set myPO = CreateScriptService("L10N", "C:\myPOFiles", "fr-BE", "UTF-8", "en-US", "UTF-8")

ໄຟລ໌ PO ຕ້ອງຕັ້ງຊື່ໃນຮູບແບບ "la-CO.po" ຫຼື "la.po", ໂດຍທີ່ "la" ໝາຍເຖິງພາສາ ແລະ "CO" ໝາຍເຖິງປະເທດ. ຕົວຢ່າງ: "en-US.po", "fr-BE.po" ຫຼື "fr.po".

ແນະນຳໃຫ້ຄືນຊັບພະຍາກອນຫຼັງຈາກໃຊ້ແລ້ວ:

          Set myPO = myPO.Dispose()

##### ໃນ Python

ຕົວຢ່າງຂ້າງເທິງສາມາດແປເປັນ Python ໄດ້ດັ່ງນີ້:

          from scriptforge import CreateScriptService
          myPO = CreateScriptService('L10N')

          myPO = CreateScriptService('L10N', r'C:\myPOFiles')

          myPO = CreateScriptService('L10N', r'C:\myPOFiles', 'fr-BE')

          myPO = CreateScriptService('L10N', r'C:\myPOFiles', 'fr-BE', 'UTF-8', 'en-US', 'UTF-8')
          myPO = myPO.Dispose()

ບໍລິການ L10N ຫຼາຍອິນສະແຕນຊ໌ສາມາດເຮັດວຽກພ້ອມກັນໄດ້. ແນວໃດກໍຕາມ, ແຕ່ລະອິນສະແຕນຊ໌ຕ້ອງໃຊ້ໄດເຣັກທໍຣີແຍກຕ່າງຫາກສຳລັບໄຟລ໌ PO ຂອງມັນ.

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | --- | ---
Folder | ແມ່ນ | String | ໂຟນເດີທີ່ບັນຈຸໄຟລ໌ PO (ເບິ່ງຄຸນສົມບັດ FileSystem.FileNaming ເພື່ອຮຽນຮູ້ກ່ຽວກັບຮູບແບບການຕັ້ງຊື່ທີ່ໃຊ້).
Languages | ແມ່ນ | Array | ອາເຣທີ່ເລີ່ມຈາກສູນ ເຊິ່ງລະບຸຊື່ພື້ນຖານທັງໝົດ (ໂດຍບໍ່ມີນາມສະກຸນ ".po") ຂອງໄຟລ໌ PO ທີ່ພົບໃນ Folder ທີ່ລະບຸ.
Locale | ແມ່ນ | String | ການປະສົມປະສານ ພາສາ-ປະເທດ ທີ່ກຳລັງໃຊ້ງານຢູ່. ຄຸນສົມບັດນີ້ຈະຫວ່າງເປົ່າໃນຕອນເລີ່ມຕົ້ນ ຖ້າບໍລິການຖືກສ້າງຂຶ້ນໂດຍບໍ່ມີອາກິວເມັນເສີມໃດໆ.

ລາຍຊື່ວິທີການໃນບໍລິການ L10N
AddText AddTextsFromDialog | ExportToPOTFile | GetText

## AddText

ເພີ່ມລາຍການໃໝ່ໃນລາຍຊື່ຂໍ້ຄວາມທີ່ປັບແຕ່ງທ້ອງຖິ່ນໄດ້. ມັນຕ້ອງຍັງບໍ່ມີມາກ່ອນ.

ວິທີການນີ້ຈະສົ່ງຄືນຄ່າ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

svc.AddText(context: str = '', msgid: str = '', comment: str = ''): bool

### ພາຣາມິເຕີ:

context: ຄີສຳລັບດຶງຂໍ້ຄວາມທີ່ແປແລ້ວດ້ວຍວິທີ GetText. ພາຣາມິເຕີນີ້ມີຄ່າເລີ່ມຕົ້ນແມ່ນ "".

msgid: ຂໍ້ຄວາມທີ່ຍັງບໍ່ທັນແປ, ເຊິ່ງເປັນຂໍ້ຄວາມທີ່ປາກົດໃນໂຄ້ດໂປຣແກຣມ. ມັນຕ້ອງບໍ່ຫວ່າງເປົ່າ. msgid ຈະກາຍເປັນຄີເພື່ອດຶງຂໍ້ຄວາມທີ່ແປແລ້ວຜ່ານວິທີ GetText ເມື່ອ context ຫວ່າງເປົ່າ.

ຂໍ້ຄວາມ msgid ອາດມີຕົວແທນບ່ອນວາງ (%1 %2 %3 ...) ຈຳນວນໃດກໍໄດ້ ເພື່ອປັບປ່ຽນຂໍ້ຄວາມແບບໄດນາມິກໃນຂະນະເຮັດວຽກ.

comment: ຄຳເຫັນເສີມທີ່ຈະເພີ່ມໃສ່ຄຽງຂ້າງຂໍ້ຄວາມເພື່ອຊ່ວຍນັກແປ.

### ຕົວຢ່າງ:

ຕົວຢ່າງດ້ານລຸ່ມນີ້ສ້າງຊຸດຂໍ້ຄວາມເປັນພາສາອັງກິດ:

##### ໃນ Basic

          myPO.AddText(, "This is a string to be included in a POT file")
          myPO.AddText("CTX1", "A string with a context")
          myPO.AddText(, "Provide a String value", Comment := "Do not translate the word String")

##### ໃນ Python

          myPO.AddText(msgid = 'This is a string to be included in a POT file')
          myPO.AddText('CTX1', 'A string with a context')
          myPO.AddText(msgid = 'Provide a String value', comment = 'Do not translate the word String')

## AddTextsFromDialog

ດຶງຂໍ້ຄວາມອອກຈາກໄດອາລັອກໂດຍອັດຕະໂນມັດ ແລະ ເພີ່ມພວກມັນເຂົ້າໃນລາຍຊື່ຂໍ້ຄວາມທີ່ປັບແຕ່ງທ້ອງຖິ່ນໄດ້. ຂໍ້ຄວາມຕໍ່ໄປນີ້ຈະຖືກດຶງອອກມາ:

- ຫົວຂໍ້ຂອງໄດອາລັອກ.

- ຄຳອະທິບາຍ (caption) ຂອງປະເພດການຄວບຄຸມຕໍ່ໄປນີ້: Button, CheckBox, FixedLine, FixedText, GroupBox ແລະ RadioButton.

- ຂໍ້ຄວາມຄົງທີ່ໃນ ListBox ແລະ ComboBox.

- ຄຳແນະນຳເຄື່ອງມື (tooltip) ຫຼື ຂໍ້ຄວາມຊ່ວຍເຫຼືອທີ່ສະແດງເມື່ອເມົາສ໌ເລື່ອນຜ່ານການຄວບຄຸມ.

ວິທີການນີ້ຈະສົ່ງຄືນຄ່າ True ຖ້າສຳເລັດ.

ໄດອາລັອກທີ່ຈະດຶງຂໍ້ຄວາມອອກມາຕ້ອງບໍ່ຖືກເປີດຢູ່ ເມື່ອມີການເອີ້ນໃຊ້ວິທີການນີ້.

ເມື່ອອິນສະແຕນຊ໌ບໍລິການ L10N ຖືກສ້າງຂຶ້ນຈາກໄຟລ໌ PO ທີ່ມີຢູ່, ໃຫ້ໃຊ້ວິທີ GetTextsFromL10N ຈາກບໍລິການ Dialog ເພື່ອໂຫລດຂໍ້ຄວາມທີ່ແປແລ້ວທັງໝົດເຂົ້າໃນໄດອາລັອກໂດຍອັດຕະໂນມັດ.

### ໄວຍາກອນ:

svc.AddTextsFromDialog(dialog: svc): bool

### ພາຣາມິເຕີ:

dialog: ອິນສະແຕນຊ໌ບໍລິການ Dialog ທີ່ກົງກັບໄດອາລັອກທີ່ຈະດຶງຂໍ້ຄວາມອອກມາ.

### ຕົວຢ່າງ:

ຕົວຢ່າງຕໍ່ໄປນີ້ດຶງຂໍ້ຄວາມທັງໝົດຈາກໄດອາລັອກ "MyDialog" ທີ່ເກັບໄວ້ໃນໄລບຣາຣີ "Standard" ແລະ ສົ່ງອອກເປັນໄຟລ໌ POT:

##### ໃນ Basic

          oDlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "MyDialog")
          myPO = CreateScriptService("L10N")
          myPO.AddTextsFromDialog(oDlg)
          myPO.ExportToPOTFile("C:\en-US.pot")

##### ໃນ Python

          dlg = CreateScriptService("Dialog", "GlobalScope", "Standard", "Dialog1")
          myPO = CreateScriptService("L10N")
          myPO.AddTextsFromDialog(dlg)
          myPO.ExportToPOTFile("C:\en-US.pot")

## ExportToPOTFile

ສົ່ງອອກຊຸດຂໍ້ຄວາມທີ່ຍັງບໍ່ທັນແປເປັນໄຟລ໌ POT.

ເພື່ອສ້າງຊຸດຂໍ້ຄວາມ, ທ່ານສາມາດໃຊ້ການເອີ້ນວິທີ AddText ຕໍ່ເນື່ອງກັນ, ຫຼື ໂດຍການເອີ້ນໃຊ້ບໍລິການ L10N ພ້ອມກັບອາກິວເມັນ foldername. ນອກຈາກນີ້ຍັງສາມາດໃຊ້ທັງສອງເຕັກນິກປະສົມກັນໄດ້.

ວິທີການນີ້ຈະສົ່ງຄືນຄ່າ True ຖ້າສຳເລັດ.

### ໄວຍາກອນ:

svc.ExportToPOTFile(filename: str, header: str = '', encoding:str = 'UTF-8'): bool

### ພາຣາມິເຕີ:

filename: ຊື່ໄຟລ໌ຜົນອອກເຕັມໃນຮູບແບບ FileSystem.FileNaming.

header: ຄຳເຫັນທີ່ຈະຖືກເພີ່ມໃສ່ສ່ວນຫົວຂອງໄຟລ໌ POT ທີ່ສ້າງຂຶ້ນ.

ຢ່າໃສ່ເຄື່ອງໝາຍ "#" ທາງໜ້າ. ຖ້າທ່ານຕ້ອງການໃຫ້ສ່ວນຫົວແບ່ງເປັນຫຼາຍແຖວ, ໃຫ້ໃສ່ລຳດັບອີສະເຄບ (\n). ສ່ວນຫົວມາດຕະຖານຈະຖືກເພີ່ມໃສ່ພ້ອມກັບຂໍ້ຄວາມທີ່ລະບຸໃນອາກິວເມັນ header.

encoding: ຊຸດອັກຂະລະທີ່ຈະໃຊ້ (ຄ່າເລີ່ມຕົ້ນ = "UTF-8").

### ຕົວຢ່າງ:

           ' Basic
           myPO.ExportToPOTFile("C:\myFile.pot", Header := "First line of the header\nSecond line of the header")

          # Python
          myPO.ExportToPOTFile('C:\myFile.pot', header = 'First line of the header\nSecond line of the header')

ໄຟລ໌ທີ່ສ້າງຂຶ້ນຄວນຜ່ານການກວດສອບດ້ວຍຄຳສັ່ງ msgfmt --check ຂອງ GNU.

## GetText

ດຶງຂໍ້ຄວາມທີ່ແປແລ້ວທີ່ກົງກັບອາກິວເມັນ msgid ທີ່ລະບຸ.

ສາມາດລະບຸລາຍຊື່ອາກິວເມັນເພື່ອແທນທີ່ຕົວແທນບ່ອນວາງ (%1, %2, ...) ໃນຂໍ້ຄວາມ.

ຖ້າບໍ່ພົບຂໍ້ຄວາມທີ່ແປແລ້ວ, ວິທີການນີ້ຈະສົ່ງຄືນຂໍ້ຄວາມຕົ້ນສະບັບຫຼັງຈາກແທນທີ່ຕົວແທນບ່ອນວາງດ້ວຍອາກິວເມັນທີ່ລະບຸ.

### ໄວຍາກອນ:

ວິທີການນີ້ສາມາດເອີ້ນໃຊ້ໄດ້ທັງຊື່ເຕັມ GetText ຫຼື ທາງລັດ _ (ຂີດກ້ອງອັນດຽວ):

svc.GetText(msgid: str, args: any[0..*]): str

svc._(msgid: str, args: any[0..*]): str

ໃນໄລບຣາຣີ ScriptForge, ວິທີການທັງໝົດທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນເທົ່ານັ້ນ. ແນວໃດກໍຕາມ, ທາງລັດ _ ທີ່ໃຊ້ສຳລັບ GetText ແມ່ນຂໍ້ຍົກເວັ້ນພຽງຢ່າງດຽວຂອງກົດນີ້, ດັ່ງນັ້ນຈຶ່ງສາມາດໃຊ້ໄດ້ຢ່າງປອດໄພໃນສະຄຣິບ Basic ແລະ Python.

### ພາຣາມິເຕີ:

msgid: ຂໍ້ຄວາມທີ່ຍັງບໍ່ທັນແປ. ມັນຕ້ອງບໍ່ຫວ່າງເປົ່າ. ມັນອາດມີຕົວແທນບ່ອນວາງ (%1 %2 %3 ...) ເພື່ອແຊກຂໍ້ຄວາມແບບໄດນາມິກໃນຂະນະເຮັດວຽກ.

ນອກຈາກການໃຊ້ຂໍ້ຄວາມ msgid ດຽວແລ້ວ, ວິທີການນີ້ຍັງຮອງຮັບຮູບແບບຕໍ່ໄປນີ້:

- ຂໍ້ຄວາມ context ເຊິ່ງວິທີການຈະໃຊ້ເພື່ອດຶງ msgid ໃນໄຟລ໌ PO, ຫຼື;

- ການປະສົມ context|msgid, ເພື່ອບອກໃຫ້ວິທີການດຶງ msgid ໂດຍໃຊ້ຄ່າ context ທີ່ລະບຸ. ສ່ວນທີສອງຂອງອາກິວເມັນແມ່ນໃຊ້ເພື່ອຊ່ວຍໃຫ້ການອ່ານໂຄ້ດງ່າຍຂຶ້ນ.

args: ຄ່າທີ່ຈະຖືກແຊກເຂົ້າໃນຕົວແທນບ່ອນວາງ. ອະນຸຍາດໃຫ້ໃຊ້ປະເພດຕົວແປໃດກໍໄດ້, ແຕ່ຈະພິຈາລະນາສະເພາະຂໍ້ຄວາມ, ຕົວເລກ ແລະ ວັນທີເທົ່ານັ້ນ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ສົມມຸດວ່າໂຄ້ດຕໍ່ໄປນີ້ກຳລັງເຮັດວຽກໃນ LibreOffice ທີ່ຕັ້ງຄ່າທ້ອງຖິ່ນເປັນ "es-ES". ນອກຈາກນັ້ນ, ຍັງມີໄຟລ໌ "es-ES.po" ໃນໂຟນເດີທີ່ລະບຸ ເຊິ່ງແປຂໍ້ຄວາມທີ່ສົ່ງໃຫ້ວິທີ GetText:

          myPO = CreateScriptService("L10N", "C:\myPOFiles\")
          myPO.GetText("Welcome %1! Hope you enjoy this program", "John")
          ' "¡Bienvenido John! Espero que disfrutes de este programa"

##### ໃນ Python

          myPO = CreateScriptService('L10N', r"C:\myPOFiles")
          myPO.GetText('Welcome %1! Hope you enjoy this program', 'John')
          # "¡Bienvenido John! Espero que disfrutes de este programa"

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ບໍລິການ ScriptForge.FileSystem

ການແປຄອນໂທຣລໃນຕົວແກ້ໄຂໄດອະລັອກ