Storitev ScriptForge.L10N

Ta storitev zagotavlja številne metode, ki se nanašajo na prevod nizov z minimalnim vplivom na izvorno kodo programa. Metode, ki jih zagotavlja storitev L10N, lahko predvsem uporabite za:

note

Okrajšava L10N predstavlja lokalizacijo (za angleško besedo localization) in se nanaša na nabor postopkov za prevajanje programja za uporabo v določeni državi ali regiji.


Datoteke PO so že dolgo časa v skupnosti prostega programja veljajo za sredstvo, ki zagotavlja večjezičnost uporabniških vmesnikov. To dosegajo zaradi za uporabnike enostavno berljivih besedilnih datotek z dobro določeno strukturo, ki za poljuben jezik določa niz v izvornem jeziku ter prevedeni oz. lokalizirani niz.

Osrednja prednost zapisa PO je neodvisnost programerja in prevajalca. Datoteke PO so neodvisne besedilne datoteke, da lahko programerji pošljejo datoteke predlog POT prevajalcem, ki lahko nato prevedejo njihovo vsebino in vrnejo prevedene datoteke PO za vsak podprti jezik posebej.

tip

Storitev L10N sloni na implementaciji GNU za datoteke PO (angl. portable object). Če želite bolje spoznati ta zapis datotek, obiščite GNU GetText Utilities: PO Files (v angl.).


Ta storitev implementira naslednje tri metode:

note

Upoštevajte, da se prvi metodi uporabljata za izdelavo nabora prevedljivih nizov in njihovega izvoza v datoteko POT. Ni pa nujno, da datoteke POT ustvarite s temi metodami. Ker gre za besedilne datoteke, jih lahko programer ustvari z vsakim urejevalnikom besedila.


Priklic storitve

Za priklic storitve L10N lahko navedete dva neobvezna argumenta, ki določata mapo, kjer so shranjene datoteke PO, in krajevne nastavitve, ki bodo uporabljene, kot je to opisano spodaj.

Skladnja:


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

FolderName: mapa, ki vsebuje datoteke PO. Izražena mora biti v zapisu FileSystem.FileNaming.

Locale: niz v obliki "je-DR" (jezik-DRŽAVA) ali zgolj v obliki "je" (jezik).

note

Sobiva lahko več instanc storitve L10N. Vendar mora vsaka instanca uporabljati ločeno mapo za svoje datoteke PO.


note

Ta storitev je v celoti podprta v jezikih Basic in Python. Vsi primeri so zapisani v programskem jeziku Basic in jih lahko enostavno pretvorite v Python.


Primer:

Naslednji primer prikliče storitev L10N brez neobveznih argumentov. To bo omogočilo le metodi AddText in ExportToPOTFile.


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

V spodnjem primeru je določena mapa, ki vsebuje datoteke PO. Ker krajevna nastavitev ni določena, bo instanca storitve uporabila trenutno krajevno nastavitev LibreOffice.


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

V spodnjem primeru sta ime mape in krajevna nastavitev eksplicitno določena za belgijsko francoščino.


      Set myPO = CreateScriptService("L10N", "C:\mojeDatotekePO\", "fr-BE")
    
Ikona namiga

Datoteke PO morajo biti poimenovane v obliki "je-DR.po" ali "je.po", kjer "je" predstavlja jezik, "DR" pa državo. Nekaj primerov: "en-US.po", "fr-BE.po" ali "sl.po".


Priporočamo, da po uporabi sprostite vire:


      Set myPO = myPO.Dispose()
    

Lastnosti

Ime

Samo za branje

Vrsta

Opis

Folder

Da

String

Mapa, ki vsebuje datoteke PO (glejte lastnost FileSystem.FileNaming, da izveste podrobnosti o uporabljeni notaciji).

Languages

Da

Array

Ničelno polje, ki izpiše vsa osnovna imena (brez končnice ".po") datotek PO, ki se nahajajo v navedeni mapi Folder.

Locale

Da

String

Trenutno aktivna kombinacija jezik-DRŽAVA. Ta lastnost bo na začetku prazna, če je storitev priklicana brez vseh neobveznih argumentov.


Seznam metod v storitvi L10N

AddText

ExportToPOTFile

GetText


AddText

Doda nov vnos na seznam nizov za prevajanje. Ne sme še obstajati.

Skladnja:


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

Parametri:

Context: ključ za pridobivanje prevedenega niza z metodo GetText. Ta parameter ima privzeto vrednost "".

MsgId: neprevedeni niz, torej besedilo, ki se pojavlja v programski kodi. Ne sme biti prazen. MsgId postane ključ za pridobivanje prevedenega niza prek metode GetText, če je Context prazen.

Niz MsgId lahko vsebuje poljubno število ograd (%1 %2 %3 ...), s katerimi lahko dinamično spreminjate niz med izvajanjem programa.

Comment: neobvezen komentar, ki ga lahko dodate k nizu kot pomoč prevajalcem.

Primer:

Spodnji primer ustvari množico nizov v angleškem jeziku:


       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

Izvozi množico neprevedenih nizov v datoteko POT.

Za gradnjo množice nizov lahko uporabite niz klicev metode AddText ali uspešen klic storitve L10N s prisotnim argumentom FolderName. Uporabite lahko tudi kombinacijo obeh tehnik.

Skladnja:


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

Parametri:

FileName:izhodna datoteka v notaciji FileSystem.FileNaming.

Header: komentarji, ki bodo dodani na vrh izdelane datoteke POT.

Ne vključite "#" kot vodilnih znakov. Če želite, da je glava razbita na več vrstic, vstavite ubežni znak (\n), kjer je potrebno. Standardna glava bo dodana ob v argumentu Header navedenem besedilu.

Encoding: uporabljeni nabor znakov (privzeto = "UTF-8").

Primer:


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

Izdelana datoteka bi morala uspešno prestati preizkus z ukazom GNU msgfmt --check.


GetText

Pridobi prevod niza glede na podani argument MsgId.

Določen ima lahko seznam argumentov, ki v nizu nadomestijo ograde (%1, %2, ...).

Če ne najde prevedenega niza, metoda vrne neprevedeni niz, potem ko zamenja ograde z vrednostmi navedenih argumentov.

Skladnja:

To metodo lahko pokličete po polnem imenu GetText ali z okrajšavo _ (en sam podčrtaj):


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

V knjižnici ScriptForge so vse metode, ki se začenjajo z znakom "_", rezervirane zgolj za interno uporabo. Okrajšava _, ki se uporablja za GetText, je edina izjema tega pravila, zato jo lahko varno uporabljate v skriptih Basic.


Parametri:

MsgId: neprevedeni niz, torej besedilo, ki se pojavlja v programski kodi. Ne sme biti prazen. Vsebuje lahko poljubno število ograd (%1 %2 %3 ...), s katerimi lahko dinamično vstavljate besedilo med izvajanjem programa.

Poleg uporabe posameznega niza MsgId ta metoda sprejema tudi naslednje oblike:

Arg1, ...: vrednosti, ki bodo vstavljene v ograde. Dovoljene so vse vrste spremenljivk, vendar so obravnavani le nizi, številke in datumi.

Primer:

Upoštevajte, da se naslednja koda izvaja na namestitvi LibreOffice s krajevno nastavitvijo "es-ES". Poleg tega je datoteka "es-ES.po" v navedeni mapi, ki prevede podani niz, podanega metodi GetText:


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

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic niso namenjeni.


Podprite nas!