Transformacija Latinica - cirilica et contra

Pomoč pri delu z MS Wordom
Odgovori
cvili
Prispevkov: 2
Pridružen: So Avg 20, 2005 9:47 am

Transformacija Latinica - cirilica et contra

Odgovor Napisal/-a cvili »

pri projektu prenove strani smo prišli do banalnega štosa - spreminjanje fontov iz latinice v cirilico (makedonščina npr.). Recimo v word napišeš tekst v makedonščini in ga daj v cirilico???? Ni mi uspelo ugotovi kako, edino kar imamo je stran http://www.2cyr.com/. Pod windowsih je zanimiva podpora, tudi če mi pošlje iz Makedonije njihov font Arial ali Verdana ( kopiranje iz worda pod drugimi fonti različni CRM-ji ne prepoznajo) in ga jaz odprem pri sebi - pokaže se latinica!!! Še sreča, da Srbi vso zunanjo komunikacijo vršijo v latinici...

Seveda pa lahko spremenim keyboard in kucam sam...

A je kakše makro na voljo ali kaj podobnega? Mogoče se kdo najde, ki kaj ve...


THX, lp, Cvili
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

pred kakršnim koli razglabljanjem o fontih (pravilno slovensko so to nabori znakov) moram razložiti kako računalniki »vidijo« črke. Problem ali pa lepota, kakorkoli pač vzamete, računalnikov je v tem, da oni vidijo in poznajo samo številke. Torej računalnik vidi samo številke, ki pa jih potem mi (ljudje) lahko različno interpretiramo in prikažemo na ekranu.

Računalniki so se najprej pojavili v angleško govorečih državah zato so že takoj ob začetkih računalnikov sprejeli nekaj standardov, ki se dotikajo prikaza črk. Standardov je bilo več, a za naše potrebe in v svetu PC-jev se je uveljavil predvsem standard ASCII. Ta standard je v originalu priredil obliko za prvih 128 številk (0-127), naknadno pa je bil razširjen na prvih 256 znakov (0–255). Po tem standardu ima velika črka A vrednost 65.

Z drugimi besedami torej to pomeni, da (tole bom razložil skrajno poenostavljeno, pač dovolj dobro za osnovno razumevanje) če grafična kartica vidi številko 65 in ji rečemo, da jo mora prikazati kot znak, potem pač nariše veliko črko A. No če je pri grafičnih karticah to res skrajna poenostavitev, pa pri matričnih tiskalnikih ni poenostavitev, za njih velja natanko to.

No in ker smo ravno pri matričnih tiskalnikih. Pred 30 leti, ko so se začeli računalniki bolj množično uporabljati se je pojavil problem s Slovenskimi (tedaj še Jugoslovanskimi znaki). Na voljo je bilo samo 256 številk in zato smo Jugoslovani sprejeli lasten standard, kjer smo pač rekli, da če tiskalnik vidi številko 96 naj nariše črko ž. Samo kot zanimivost lahko povem, da se je med prvimi, ki so to počeli c Sloveniji tega lotil danes zelo znan Jonas Žnidaršič alias Jonas Ž.

Ok sedaj lahko stvar preizkusimo s preprostim makrom:

Koda: Izberi vse

Sub IzpisiVrednostCrke()
  Dim crka
  
  crka = InputBox("Vpiši znak...")
  MsgBox "Vrednost črke " & Left(crka, 1) & " znaša " & AscW(Left(crka, 1))
End Sub
Ko makro zaženete lahko vnesete poljuben znak in on vam bo izpisal vrednost tega znaka.

OK, če v gornji makro vnašate angleške črke bodo vse vrednosti manjše od 128 (ASCII standard!), če pa vnesete kakšno slovensko črko pa zrastejo preko 255 (npr. š = 353). Kako? E razlog za vrednosti večje od 255 pa se skriva v novem standardu UNICODE, ki ga poznajo vsa novejša okna in v tem standardu pa je znakov preko 65000 in v njem so zajete praktično vse črke, ki se pojavljajo na zemeljski obli.

Spodnji makro vam bo v Word izpisal vse znake med nekima podanima vrednostima, konkretni jih bo izpisal med vrednostima 50 in 1000 (če zamenjate ti številki, bodo znaki drugačni):

Koda: Izberi vse

Sub IzpisiZnake()
  Dim i
  
  For i = 50 To 1000
   Selection.TypeText Text:=i & " = " & ChrW(i)
   Selection.TypeParagraph
  Next
End Sub
OK, vsaka črka je torej številka in Okna (ter tudi drugi operacijski sistemi) pač vsako črko interpretirajo kot neko vrednost. Sedaj pa k originalnem vprašanju. Če želimo pretvoriti latinico v cirilico je tehnično potrebno samo zamenjati številke. Torej namesto velikega A, ki ima vrednost 65 napišemo veliki A v cirilici, za katerega pa ne vem kakšno vrednost ima. Tehnično je to vse. Zaplete pa se pri vsebini, saj za večino držav, ki uporabljajo latinico velja, da se znaki ne pretvarjajo 1 proti 1. Konkretno v srbščini je za dva znaka latinice 'lj' samo en znak cirilice. To pa stvari dodatno zaplete, ali pa tudi ne :), namreč tudi na to so pri postavljanju UNICODE standarda mislili in če si pogledate obliko znaka pri vrednosti 452 boste videli 'DŽ' – torej DVA znaka. Za računalnik je torej vrednost 452 en znak, za naše oči pa sta to dve črki. To je torej to. V cirilici je DŽ en znak in zato so ga tudi v latinici postavili kot enega….

Kot vidite je stvar lahko poljubno komplicirana. Zatorej vam ne morem podatki kar enega odgovora (če bi obstajal, bi ga v Oknih že implementirali). Gre preprosto za to, da je potrebno cirilico posameznega jezika pretvarjati v latinico tega istega jezika na posebne načine (za Ruščino na en način, za Srbščino na drugega, Makedonščino na tretjega….).

Kar pa se tiče »avtomatičnega« pretvarjanja, ki naj bi ga opravila Okna ob pregledu makedonskih dokumentov, pa vanj dvomim. Bolj se nagibam k temu, da imajo vaši makednoski partnerji »pohekane« fonte in oni sicer vidijo cirilico v standardu UNICODE pa so to pravzaprav latinski znaki. In ko vam pošljejo dokument, ga vi odprete na računalniku, ki pozna UNICODE ter zato vidite latinico. Glede slednjega lahko da se motim.
lp,
Matjaž Prtenjak
Administrator
Andrej
Prispevkov: 22
Pridružen: Po Okt 09, 2006 3:48 pm
Kontakt:

Prečrkovanje

Odgovor Napisal/-a Andrej »

Za srbski jezik pride pri delu v Wordu 2003 prav tole orodje
http://office.microsoft.com/search/redi ... 1400282074, ki sicer domuje na spletni strani http://office.microsoft.com/sr-sp-latn/default.aspx

Izbrano besedilo pretvori v cirilico ali v latinico. Deluje tudi v PowerPointu 2003.
-- Andrej

[url]http://officeonline.spaces.live.com[/url]
Odgovori