Prevajanje aplikacije
Besedila aplikacije Access v poljubnem številu jezikov vodite kot datoteke projekta, vsak prevajalec prejme paket svojega jezika za Excel, vse pakete prevzamete v enem koraku in aplikacijo preizkusite v vsakem jeziku.
Zahteve: WKL Office SDK 0.8 ali novejša različica; WKL Forms Object Library 1.67 ali novejša različica na
računalnikih, na katerih aplikacija teče (objekt WklTexts).
Pregled rešitve
- Besedila so datoteke projekta:
source/texts/neutral.jsonjih vsebuje v jeziku, v katerem je aplikacija napisana,source/texts/<koda>.jsonpa po en prevod za katero koli kodo jezika (de.json,fr.json,pl.json…). - Gradnja jih zapiše v tabelo
USysWklTextsdatotek ACCDB in ACCDE. Med izvajanjemWklTextsvsako besedilo vrne v jeziku seje; ključ, ki v tem jeziku nima besedila, prikaže nevtralno besedilo, nato angleško. SDK med izvajanjem ni potreben. - Vsaka gradnja sporoči manjkajoče prevode, besedila z drugačnimi ogradami, ključe, ki jih koda zahteva, pa nimajo besedila, in prevode, katerih izvirno besedilo se je medtem spremenilo.
- Vsak prevajalec prejme paket CSV svojega jezika, ki ga Excel odpre neposredno; paketi se vrnejo v poljubnem vrstnem redu in se združijo v enem uvozu.
Izvedba
Napišite nevtralna besedila v
source/texts/neutral.json, in sicer v jeziku, v katerem razvijate. Vsak ključ potrebuje nevtralno besedilo, saj je to nadomestno besedilo za vse druge jezike:{ "orders.saved": "{0} orders saved.", "orders.title": "Orders" }Ta jezik navedite v projektni datoteki; tako ne potrebuje lastne datoteke in se ne javlja kot neprevedeni jezik:
<NeutralLanguage>en</NeutralLanguage>
Ključe uporabite v kodi prek
WklTexts(glejte dokumentacijo WKL Forms Object Library, „Lokalizacija aplikacije“):Dim texts As New WklTexts Me.Caption = texts.Text("orders.title") MsgBox texts.Text("orders.saved", count), vbInformation, texts.Text("wkl.information")Vsakemu prevajalcu pripravite paket. Za vsak jezik en ukaz:
wkl-office texts export Orders.acproj --language fr wkl-office texts export Orders.acproj --language it
Vsak ukaz poleg projektne datoteke zapiše
texts.<koda>.csvs stolpcikey,source(nevtralno besedilo), stolpcem jezika inreview. Prevajalec v Excelu izpolni le stolpec jezika in datoteko shrani kot CSV UTF-8. Vrstica z besedilom v stolpcureviewje prevod, ki ga je treba pregledati: stolpec pokaže izvirno besedilo, iz katerega je prevod nastal.Vse pakete prevzemite naenkrat, takoj ko prispejo:
wkl-office texts import Orders.acproj texts.fr.csv texts.it.csvZapišejo se le stolpci jezikov. Prazna celica in manjkajoča vrstica ne spremenita ničesar, zato prevajalec, ki vrne napol izpolnjen paket, ne izbriše ničesar. Za vsak jezik ena vrstica navede, koliko besedil je novih, spremenjenih, še neprevedenih in označenih za pregled. Datoteke preglejte in potrdite tako kot vse druge izvorne datoteke.
- Gradnja in preverjanje.
wkl-office build Orders.acprojbesedila zapiše v podatkovno zbirko in kot opozorilo navede vsak ključ, ki v nekem jeziku nima besedila, ter vsak prevod, označen za pregled. Preizkus v vsakem jeziku:
foreach ($language in 'en', 'fr', 'it') { wkl-office test Orders.acproj --language $language --work "test-results\$language" }
--languagedoloči jezik seje za besedila aplikacije in komponente WKL, ne glede na jezik Officea.
Pričakovani rezultat
Datoteki ACCDB in ACCDE vsebujeta tabelo USysWklTexts z vsemi besedili v vseh jezikih. V francoskem Officeu
aplikacija prikaže svoja francoska besedila, ključ brez francoskega besedila pa prikaže nevtralno besedilo. Preizkus z
--language fr sporoči enaka preverjanja kot v francoskem Officeu.
Opombe
- Paketa si nasprotujeta. Če dve datoteki za isti ključ in isti jezik navajata različni besedili, uvoz navede vsako nasprotje, ne zapiše ničesar in se konča z izhodno kodo 2. Odstranite napačno vrstico ali datoteko in uvoz ponovite.
- Nevtralno besedilo se je spremenilo. Prevodi, ki so nastali iz prejšnjega besedila, se v
source/texts/review.<koda>.jsonoznačijo za pregled, naslednji paket pa to prejšnje besedilo pokaže v stolpcureview. Paket, preveden iz zastarelega izvirnega besedila, se prevzame in enako označi. Oznaka izgine, ko se vrne prevod trenutnega besedila. - Novi ključi prihajajo iz nevtralnih besedil. Paket ključev ne more dodati: vrstica s ključem, ki ga aplikacija nima, se preskoči z opozorilom.
- Celoten nabor v eni datoteki.
texts exportbrez--languagevse jezike zapiše vtexts.csv, po en stolpec za vsak jezik, najprejneutral.texts import --replace texts.csvtako datoteko prevzame kot celoten nabor: ključ, ki ga v njej ni, se odstrani, stolpec jezika, ki je prazen v vseh vrsticah, pa pusti svojo datoteko nespremenjeno. - Brez nevtralnih besedil. Projekt, ki ima le
source/texts/en.json, deluje še naprej: izhodišče preverjanj in paketov je tedaj angleščina. - Excel in ločila. Excel datoteko CSV shrani z ločilom seznama iz področnih nastavitev, z vejico ali podpičjem;
texts importprebere oboje. Shranite kot „CSV UTF-8“: navadna oblika „CSV“ v Excelu izgubi č, š, ž in druge črke, ki jih kodna stran sistema Windows ne vsebuje. - Datoteka na napačnem mestu. Datoteke z besedili jezika zunaj mape
source/texts(na primersource/fr.json) gradnja ne prebere;checkinbuildjo sporočita kot opozorilo. - Terminologija.
source/texts/terms.<koda>.jsonnavede izraze, ki naj se ne uporabljajo, na primer{ "podatkovna zbirka": [ "zbirka podatkov" ] }; vsaka gradnja sporoči besedilo s tako različico. - Spremenjeno v programu Access? Izvoz tabele
USysWklTextsnikoli ne zapiše nazaj: besedila spreminjajte v datotekah, ne v podatkovni zbirki. - Preizkusi najdejo vrzeli.
WklTexts.Missingnavede ključe, ki v zahtevanem jeziku niso imeli besedila; preizkus, ki preveritexts.Missing = "", pri nepopolnem prevodu ne uspe.