Forum » Programiranje » Visual Basic: aplikacija v več jezikih (obstaja kakšen plugin, ali komponenta, ki bi to olajšala)?
Visual Basic: aplikacija v več jezikih (obstaja kakšen plugin, ali komponenta, ki bi to olajšala)?
urosbe ::
Recimo, da imamo aplikacijo v Visual Basicu, v slovenskem jeziku. Sedaj bi jo prevedel še v angleščino in nemščino. Kar niti ni problem, problem pa nastane, da se čez par dni, ko imaš kaj prevedeno, spomniš, da si našel še eno napako, potem bi rad to napako popravil, jo moraš pa na treh verzijah! Obstaja kakšna komponenta ali plugin, ki bi tako stvar olajšala? Recimo, tako kot imajo programi po spletu (npr. Nero... neko datoteko z Language file-i in nato samo izbereš, kakšen jezik bi imel).
LP! Uroš
LP! Uroš
Monster ::
hehe...se ti ne zdi da bi bla taka komponenta mal preambicijozna... na tvojem mestu bi se zadeve lotil preko RES faljov.. mal prebrel okol po netu boš sigurn kaj nasel... drugace ap to predstavlja kao nekaksno "bazo", "atoteko" , v kateri mas not tabele, slike, ipd... mah preber si
Ka zaboga...
urosbe ::
Hy!
Ne vem kaj misliš s tem preambiziozna? Namreč obstaja taka komponenta, vendar nažalost samo za Delphi, za Visual Basic jo pa še nisem zasedil. Kako imajo pa to narejeno pri programih kot so CloneCD, Nero in podobnimi?
Zadeve z RES file-i ne poznam, lahko kaj več napišeš o tem...
LP! Uroš
Ne vem kaj misliš s tem preambiziozna? Namreč obstaja taka komponenta, vendar nažalost samo za Delphi, za Visual Basic jo pa še nisem zasedil. Kako imajo pa to narejeno pri programih kot so CloneCD, Nero in podobnimi?
Zadeve z RES file-i ne poznam, lahko kaj več napišeš o tem...
LP! Uroš
Vesoljc ::
vse zadeve, ki bo user vidu,prebrau, nekako prevedeš in indeksiraš.
slovene.txt
[
1: Pozdravljen svet!
2: Izberi bla bla
3: Napaka bla ba...
]
engliš.txt
[
1: hello wrold!
2: choose...
3: major error just happend...
]
in potem ko moraš v v programu nekaj izpistai samo odpreš pravo datoteko in izpišeš pripadajočo vrstico ali izrišeš pripadajočo sliko... whatever...
slovene.txt
[
1: Pozdravljen svet!
2: Izberi bla bla
3: Napaka bla ba...
]
engliš.txt
[
1: hello wrold!
2: choose...
3: major error just happend...
]
in potem ko moraš v v programu nekaj izpistai samo odpreš pravo datoteko in izpišeš pripadajočo vrstico ali izrišeš pripadajočo sliko... whatever...
Abnormal behavior of abnormal brain makes me normal...
BigWhale ::
Monster,
KDE in se kar nekaj drugih Linux oz Open Source stvari je prevedenih v 20 in se vec jezikov. Pa vsi uporabljajo isti exe in en bug se popravjla samo enkrat... Jasno, ce ni bug v GUI vmesniku, pa se takrat je potrebno za kak drug jezik popravit samo datoteko s sporocili... :)
Now go and faint....
KDE in se kar nekaj drugih Linux oz Open Source stvari je prevedenih v 20 in se vec jezikov. Pa vsi uporabljajo isti exe in en bug se popravjla samo enkrat... Jasno, ce ni bug v GUI vmesniku, pa se takrat je potrebno za kak drug jezik popravit samo datoteko s sporocili... :)
Now go and faint....
kopernik ::
Vse kar moraš narediti je to, da konstante pomečeš ven iz izvorne kode. Kam? kamorkoli... v xml, navadne properties fajle, v bazo....
Monster ::
ma ja... sm RES datoteke majo fajne editorje pa to. Lahko pa naredis vse skup v eno magari .ini datoteko pa llocujes jezike z nevem [slovenski], [eng].. ipd.. Edina razlika pr RES fajlu je da se ti skompila v exe ....
Ka zaboga...
Slide ::
KEr gre za preproste Stringe k so v različnih jezikih, je enostavna pot v kodi sami in ne potrebuješ nobenih pliginov, le znanje tujih jezikov ali pa slovar. Preprosto deklariramo več-dimenzionalno tabelo naprimer 2D tabelo kjer je prvi index število besed, 2 index pa loči jezik, seveda dolžina 2 indexa določa koliko jezikov podpira naš program.
Dim strLangTable(1000,3) As String ..... pomeni da bo ta tabela vsebovala 1000 besed v 3 različnih jezikih.
potem pa naprimer v Form_Load() napišeš
strLangTable(0,0) = "pes" 'slo
strLangTable(0,1) = "dog" 'eng
strLangTable(0,2) = "hund" 'ger
strLangTable(1,0) = "avto" 'slo
strLangTable(1,1) = "car" 'eng
strLangTable(1,2) = "auto" 'ger
.
.
.
strLangTable(999,0) = "Prekliči" 'slo
strLangTable(999,1) = "Cancel" 'eng
strLangTable(999,2) = "Abrechnen" 'ger
in potem ko želiš uporabit določen string , v kodi samo pokličeš in v kaki zanki vse spremeniš, ko uporabnik izbere jezik.
Dim intLang As Integer '0 SLO, 1 ENG, 2 GER
primer za spremembo labela na knofih
For i = 0 to stknofov
Command1(i).Caption = strLangTable(i,intLang)
Next i
meni se zdi to dokaj preprosto, seveda lahko stringe potem zapišete v datoteke in vrstico za vrstico preberete v to isto tabelo.
Dim strLangTable(1000,3) As String ..... pomeni da bo ta tabela vsebovala 1000 besed v 3 različnih jezikih.
potem pa naprimer v Form_Load() napišeš
strLangTable(0,0) = "pes" 'slo
strLangTable(0,1) = "dog" 'eng
strLangTable(0,2) = "hund" 'ger
strLangTable(1,0) = "avto" 'slo
strLangTable(1,1) = "car" 'eng
strLangTable(1,2) = "auto" 'ger
.
.
.
strLangTable(999,0) = "Prekliči" 'slo
strLangTable(999,1) = "Cancel" 'eng
strLangTable(999,2) = "Abrechnen" 'ger
in potem ko želiš uporabit določen string , v kodi samo pokličeš in v kaki zanki vse spremeniš, ko uporabnik izbere jezik.
Dim intLang As Integer '0 SLO, 1 ENG, 2 GER
primer za spremembo labela na knofih
For i = 0 to stknofov
Command1(i).Caption = strLangTable(i,intLang)
Next i
meni se zdi to dokaj preprosto, seveda lahko stringe potem zapišete v datoteke in vrstico za vrstico preberete v to isto tabelo.
urosbe ::
Živjo!
Najlepša hvala za tele informacije. Moram rečt, da v bistvu kar ste mi napisali vse poznam (razen RES fajlov), samo ni mi pa prišlo na misel, da bi to na tak način naredil... najprej bom poskusil RES fajle, kajti če se le to vse skupaj na kocnu zapiše v EXE, bi bilo idealno. Ampak moram najprej malo prebrati o teh RES fajlih, kaj so in kako jih uporabljamo ipd...
Hvala še enkrat!
Uroš
Najlepša hvala za tele informacije. Moram rečt, da v bistvu kar ste mi napisali vse poznam (razen RES fajlov), samo ni mi pa prišlo na misel, da bi to na tak način naredil... najprej bom poskusil RES fajle, kajti če se le to vse skupaj na kocnu zapiše v EXE, bi bilo idealno. Ampak moram najprej malo prebrati o teh RES fajlih, kaj so in kako jih uporabljamo ipd...
Hvala še enkrat!
Uroš
rasta ::
Svetujem ti, da ne zakompajlaš prevodov v exe, ampak naredi ločene datoteke (oziroma narediš .dll samo z resource stringi) za vsak jezik posebej. In potem pač naložiš potreben fajl.
Ker verjetno vsega ne boš prevajal sam, da bi ti pa drugi (po možnosti neprogramerji) šarili po tvojem programu pa je nepraktično, ker boš imel kup zmešanih različic.
Ker verjetno vsega ne boš prevajal sam, da bi ti pa drugi (po možnosti neprogramerji) šarili po tvojem programu pa je nepraktično, ker boš imel kup zmešanih različic.
darkolord ::
najbolj uporabni so ločeni fajli za vsak jezik, po mojih izkušnjah v stilu INI fajle (stevilka=besedilo), saj enostavno vsakemu gradniku dolocis neko stevilko v lastnosti TAG in potem samo napises funkcijo ki nafila notr stringe glede na tage...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] program v večih jezikih, shema datotekeOddelek: Programiranje | 1549 (1170) | prtenjam |
» | PHP in objektno programiranje (strani: 1 2 )Oddelek: Programiranje | 12142 (10609) | kivi113 |
» | [c#] Vprasanje glede povezave na bazoOddelek: Programiranje | 2615 (2525) | KernelPanic |
» | C# HashSet<T>, HashTable kako deluje iskanje v ozadju? a lahko faila?Oddelek: Programiranje | 1552 (1333) | detroit |
» | Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?Oddelek: Programiranje | 2171 (2056) | Fim |