ScriptForge.L10N zerbitzua

Zerbitzu honek kateak itzultzeko balio duten metodoak eskaintzen ditu, eta inpaktu oso txikia du programaren iturburu-kodean. L10N zerbitzuak eskaintzen dituen metodoak hurrengoetarako erabili daitezke batez ere:

note

L10N akronimoak lokalizazioa adierazten du, eta softwarea eskualde edo herrialde jakin bateko hizkuntzara itzultzeko erabiltzen diren prozedura multzoari egiten dio erreferentzia.


PO fitxategiak software librearen komunitatean erabiltzaile-interfaze eleaniztunak eskaintzeko modu bat dira. Horretarako, gizakiak irakurtzeko moduko testu-fitxategiak erabiltzen dira, egitura ongi definitua dutenak eta, edozein hizkuntzatarako, iturburuko hizkuntza-katea eta itzulitako katea zehazten dituztenak.

PO formatuaren abantaila nagusia da programatzailea eta itzultzailea bereizten dituela. PO fitxategiak testu-fitxategi independenteak dira: programatzaileak POT txantiloiak bidaliko dizkio itzultzaileari, azken horrek fitxategiaren edukiak itzuliko ditu eta hizkuntza bakoitzerako itzulitako PO fitxategiak programatzaileari bidaliko dizkio.

tip

L10N zerbitzua PO (portable object) fitxategien GNU inplementazioan dago oinarrituta. Fitxategi-formatu hori hobeto ezagutzeko, begiratu GNU gettext Utilities: PO Files informazioa.


Zerbitzu honek behean zerrendatutako hiru metodoak inplementatu ditu:

note

Ikusi nola lehen bi metodoak kate itzulgarrien multzo bat eraikitzeko eta haiek POT fitxategi batera esportatzeko erabiltzen diren. Hala ere, ez da derrigorrezkoa POT fitxategiak sortzea metodo horiek erabilita. testu-fitxategiak direnez gero, programatzaileak edozein testu-editore erabilita sortu ditzake.


Zerbitzuari deitzea

L10N zerbitzuari deitzeko, aukerako bi argumentu zehaztu daitezke PO fitxategiak zein karpetatan dauden eta erabiliko den hizkuntza adierazteko, behean deskribatzen den moduan.

Sintaxia:


        CreateScriptService("L10N" [, FolderName As String [, Locale as String]])
    

FolderName: PO fitxategiak dituen karpeta. FileSystem.FileNaming notazioan adierazi behar da.

Locale: "eu-ES" formako kate bat (hizkuntza-HERRIALDEA) edo "eu" formakoa (hizkuntza).

note

L10N zerbitzuaren instantzia anitz bizi daitezke elkarrekin. Hala ere, instantzia bakoitzak bere direktorio propioa erabili behar du bere PO fitxategietarako.


note

Zerbitzu hau erabat onartuta dago bai Basic bai Python lengoaietan. Adibide guztiak Basic programazio-lengoaian eman dira, baina erraz bihurtu daitezke Python lengoaiara.


Adibidea:

Hurrengo adibidean, L10N zerbitzuaren instantzia bat aukerako argumenturik gabe sortu da. Horrela, AddText eta ExportToPOTFile metodoak soilik gaituko dira.


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

Beheko adibidean, PO fitxategiak dituen karpeta zehaztu da. Hizkuntza ez dagoenez definituta, zerbitzu-instantziak uneko LibreOffice ezarpenetan ezarritako hizkuntza erabiliko du.


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

Beheko adibidean, bai karpetaren izena bai hizkuntza-ezarpenak Espainiako euskararenak direla definitu da esplizituki.


      Set myPO = CreateScriptService("L10N", "C:\nirePOFitxategiak\", "eu-ES")
    
Iradokizun-ikonoa

PO fitxategiak "la-CO.po" edo "la.po" forman izendatu behar dira, non "la" hizkuntza den eta "CO" herrialdea den. Zenbait adibide: "en-US.po", "eu-FR.po" edo "eu.po".


Gomendagarria da baliabideak askatzea haiek erabili ondoren:


      Set myPO = myPO.Dispose()
    

Propietateak

Izena

Irakurtzeko soilik

Mota

Deskribapena

Folder

Bai

String

PO fitxategiak dituen karpeta (begiratu FileSystem.FileNaming propietatea hemen erabilitako notazioa ikasteko).

Languages

Bai

Array

Zehaztutako Folder karpetan dauden PO fitxategien oinarri-izen guztiak (".po" luzapenik gabe) zerrendatzen dituen zeron oinarritutako matrize bat.

Locale

Bai

String

Unean aktiboa den hizkuntza-HERRIALDEA konbinazioa. Propietate hori hasieran hutsik egongo da zerbitzuak aukerako argumenturik gabe instantziatu bada.


L10N zerbitzuaren metodoen zerrenda

AddText

ExportToPOTFile

GetText


AddText

Beste sarrera bat gehitzen dio kate itzulgarrien zerrendari. Ez du lehendik existitu behar.

Sintaxia:


       myPO.AddText(Context As String, MsgId As String, [Comment As String]) As Boolean
     

Parametroak:

Context: Itzulitako katea GetText metodoarekin atzitzeko gakoa. Parametro horren balio lehenetsia "" da.

MsgId: Itzuli gabeko katea, programa-kodean agertzen dena. Ez du hutsik egon behar. MsgId parametroa GetText metodoaren bidez itzulitako katea atzitzeko gako bihurtzen da Context hutsik dagoenean.

MsgId kateak hainbat leku-marka eduki ditzake (%1 %2 %3 ...) katea exekuzio-garaian dinamikoki moldatu ahal izateko.

Comment: Itzultzaileentzako laguntza modura kateari gehituko zaion iruzkina, aukerakoa.

Adibidea:

Beheko adibideak ingelesezko kate multzo bat sortzen du:


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

ExportToPOTFile

Itzuli gabeko kateen multzo bat POT fitxategi modura esportatzen du.

Kateen multzo bat eraikitzeko, AddText metodoaren deien segida bat sortu daiteke edo L10N zerbitzua FolderName argumentuarekin deitu daiteke. Posible da bi teknika horien konbinazio bat erabiltzea ere.

Sintaxia:


         myPO.ExportToPOTFile(FileName As String, [Header As String], [Encoding As String])
     

Parametroak:

FileName: Irteerako fitxategia FileSystem.FileNaming notazioan.

Header: Sortutako POT fitxategiaren goiko aldean gehituko diren iruzkinak.

Ez sartu "#" karaktererik aurretik. Goiburukoa lerro anitzetan zatituta sortu nahi izanez gero, txertatu ihes-sekuentziak (\n) nahi den tokietan. Goiburuko estandar bat gehituko da Header argumentuan zehaztutako testuaren alboan.

Encoding: Erabiliko den karaktere-jokoa (Lehenetsia = "UTF-8").

Adibidea:


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

Sortutako fitxategiak msgfmt --check GNU komandoa ongi gainditu behar du.


GetText

Emandako MsgId argumentuari dagokion kate itzulia eskuratzen du.

Argumentuen zerrenda bat zehaztu daiteke kateko leku-markak (%1, %2, ...) ordezteko.

Itzulitako katerik aurkitzen ez bada, metodoak itzuli gabeko katea itzuliko du, leku-marken ordez zehaztutako argumentuak jarrita.

Sintaxia:

Metodo horri deitzeko, erabili GetText edo _ (azpimarra bakarra) lasterbidea:


        myPO.GetText(MsgId As String[, Arg1[, Arg2[, ...]]]) As String
        myPO._(MsgId As String[, Arg1[, Arg2[, ...]]]) As String
    
note

ScriptForge liburutegian, "_" karakterearekin hasten diren metodo guztiak barneko erabilerarako daude erreserbatuta. Hala ere, badago salbuespen bat: GetText metodoan erabilitako _ lasterbidea. Hortaz, modu seguruan erabili daiteke Basic scriptetan.


Parametroak:

MsgId: Itzuli gabeko katea, programa-kodean ageri den testua dena. Ez du hutsik egon behar. Leku-marken edozein kopuru (%1 %2 %3 ...) eduki dezake, testua dinamikoki txertatu ahal izateko exekuzio-garaian.

MsgId kate bakarraz gain, metodoak honako formatuak ere onartzen ditu:

Arg1, ...: Leku-marketan txertatuko diren balioak. Edozein aldagai mota onartzen da, baina kateak, zenbakiak eta datak soilik hartuko dira kontuan.

Adibidea:

Adibidez, LibreOffice instalazio baten hizkuntza "es-ES" dela ezarrita badago eta, horrez gain, zehaztutako karpetaren barruan GetText metodoak pasatutako katea itzultzen duen "es-ES.po" fitxategi bat badago, kodea honelakoa litzateke:


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

Aurrizki gisa azpimarra bat ("_") duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez daude Basic makroetan erabiltzeko pentsatuta.


Emaguzu laguntza!