Taal system

Status
Niet open voor verdere reacties.

kevenvz

Gebruiker
Lid geworden
14 mei 2011
Berichten
104
Hallo mensen van helpmij. Mischien zijn jullie mij zat om alle vragen etc. Maar dit is denk ik mijn laatste vraag, hoe maak ik een taal systeem. Dat als je engels inschakelt dat dan alle tekst engels word. En dat als je nederlands instelt dat dan alles nederlands word. Hoe maak ik dit? Help mij alstublieft :D
 
Heel erg bedankt, het werkt nu. Alleen nog 1 vraag, hoe doe ik al deze instellingen bij de eerste keer runnen schrijven?
 
Dat hoeft toch niet? :Confused:

Gewoon de .INI inlezen met de instellingen is toch mogelijk?
 
Dat ini vind ik niet het allerbeste. Kan ik niet doen dat ik een class aanmaak met de woordjes erin. Dat je dit dan in de main.vb heb:
Code:
btnCheckForUpdates.text = checkForUpdatesWord
 
Dat kan, maar het is voor eventuele vertalers makkelijker ;)
 
Dat is waar, naja deze vraag is opgelost. Ik gebruik dat ini systeem.
 
[edit] vooraf wil ik je al waarschuwen niks te kopieren/plakken van de codeblokken en dan te verwachten dat het meteen werkt, er kunnen wat typfouten inzetten. [/edit]

Wat ik doe, lijkt mij meer op wat jij wilt.

als ik het goed begrijp wil jij dat het programma gezet kan worden op nederlands en engels (of nog 100 talen). en elke keer als de user het programma start moet die taal komen.

wat ik dan doe is een .txt laten maken in de directory, die dan laten lezen door het programma en daaraan de taal aanpassen.

ik zal het even uitgebreid uitleggen.

Allereerst:
voor een programma met 2 talen hoef je maar 1 extra taal in te stellen!
je schrijft het programma gewoon compleet met nederlandse woorden(zoals bestand, en annuleren). En als het dan in het engels moet DAN pas ga je het vertalen.

als het programma opstart heb ik deze code lopen, om te controleren of er een "Correct" taal bestand bestaat.

Code:
 If File.Exists(Application.StartupPath & "\language.txt") Then
 Dim languageReader As New StreamReader(Application.StartupPath & "\language.txt")
                Dim sCurrentVersion As String = languageReader.ReadLine : CurrentVersionReader.Dispose()
LET OP: geen end if omdat het volgende codeblok hier verder gaat!

na deze code moet je controlleren of het taal bestand wel klopt (of er niet in geromeld is).
Dat doe je zo:
Code:
if scurrentversion = "English" then
English()
elseif scurrentversion = "Nederlands" then
Nederlands()
else
My.Computer.FileSystem.DeleteFile(Application.StartupPath & "\language.txt")
application.restart
met dat stukje code kijk je of er in het bestand "English" of "Nederlands" staat. staat dat er niet in (file is corrupt) dan delete hij de file.
hier dan het stukje wat het programma doet als er geen textbestand gevonden kan worden (bijv dat het programma het delete en herstart, dan vind hij er geen).
Code:
else
language_select.show()
me.close
end if
je opent dan een form dat Language select.vb heet om vervolgens een taal opnieuw te laten instellen.

het instellen van een taal is niet zo moeilijk.
je maakt 2 knoppen (1 voor nederlands 1 voor engels) en je gebruikt achter de knoppen deze code
Code:
 Dim langfile As New StreamWriter("language.txt")
                langfile.Write("Nederlands")
                langfile.Close()
Waar je "Nederlands" verandert in "English" voor de engelse taal.

wat je programma nu kan is:

  • Controleren of er een language bestand is.
    Controleren of dat bestand "Correct" is
    Zo niet het bestand verwijderen en een nieuwe laten kiezen.

in de code heb ik staan:
if scurrentversion = "English" then
English()
elseif scurrentversion = "Nederlands" then
Nederlands()
else
nu maken we de sub voor nederlands:
Code:
Private sub Nederlands()
End sub
Dat klopt, een lege sub. je programma doet dus NIETS als er nederlands staat in je language file (je programma is geschreven in het nederlands dus dan start hij met alle nederlandse tekst).
en de sub English() ziet er dan als volgt uit
Code:
Private sub English()

form1.label1.text = "File"
form2.label1.text = "File"
End sub
En je voegt daar alles toe wat engels moet worden das als jou label zegt:
Kies een gebruiker.
voeg je toe

Code:
label.text = "Choose an user."
of 
label.text = "Pick a user."
dit doe je voor het gehele programma.

Het .ini werkt eigenlijk hetzelfde alleen is deze methode simpeler.
Een .ini wordt handiger (en beter) als je meer instellingen wilt gaan onthouden. met een .ini heb je dan maar 1 bestand nodig terwijl je met deze methode meerdere bestanden nodig zou hebben (wat weer code met zich meebrengt)

succes ermee! :D
 
Laatst bewerkt:
Wow. Jij hebt er werk van gemaakt :P

Alleen zie ik niet echt wat voor extra voordelen er aan vast zitten.
Bovendien had de TS al aangegeven dat de vraag was opgelost. ;)
 
extra voordeel is (naar mijn mening) de simpelere codes. die dus makkelijker te begrijpen zijn door de TS.

al vindt ik professionaliteid (<< hoop dat het goed is zo xD) toch de .ini ook beter
 
Laatst bewerkt door een moderator:
professionaliteit :P

Ik moet inderdaad toegeven dat dit makkelijker te begrijpen is door de TS ;)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan