Vraag over vertaler in C#

Status
Niet open voor verdere reacties.

Klopske11

Gebruiker
Lid geworden
7 sep 2009
Berichten
19
Hallo forumleden,

Ik ben sinds vandaag bezig met een vertaler in C#.
Deze werkt al volledig in Nederlands - Engels door gebruik van een translate API.
Dit is het deel van de code waar het om gaat:

txtVertaal.Text, "nl", "en");

mijn bedoeling is het maken van een dropdown menu met daarin verschillende talen.

Hoe kan ik de nl en en vervangen door bijv. een getal wat ik op een andere plek weer aan de talen koppel?

zoiets als dit:
----------

nl = 0;
en = 1;

txtVertaal.Text, "0", "1");


----------

hoe moet ik dit doen?

alvast bedankt!
 
Hiervoor zou je het beste gebruik kunnen maken van een enum, bijvoorbeeld:

Code:
public enum Taal
{
Nederlands = 0,
Engels = 1,
Frans = 2,
}

Je kunt dan aan de hand van het getal wat achter het = teken staat opzoeken welke taal erbij hoort.
 
Hiervoor zou je het beste gebruik kunnen maken van een enum, bijvoorbeeld:

Code:
public enum Taal
{
Nederlands = 0,
Engels = 1,
Frans = 2,
}

Je kunt dan aan de hand van het getal wat achter het = teken staat opzoeken welke taal erbij hoort.

bedankt voor je reactie!
maar hoe moet ik die 0 en/of 1 dan plaatsen in die regel code?
want de "nl" moet intact blijven. kan ie zo ook?

Code:
public enum Taal
{
"nl" = 0,
"en"= 1,
"fr" = 2,
}



nogmaals bedankt voor je reactie!
 
Misschien dat het volgende voorbeeld je helpt:

Code:
//Dit boven de constructor van je class

private enum Talen
{
      nl     = 0,
      en    = 1,
      fr     = 2,
      de    = 3            
}

//Dit zet je in je void voor het vertalen

public void Vertaal()
{
      Array Values = Enum.GetValues(typeof(Talen));
      //De code van jou aangevuld met:
      txtVertaal.Text, Values.GetValue(Convert.ToInt32(0)).ToString(), Values.GetValue(Convert.ToInt32(1)).ToString());
}

Dit zou exact moeten doen wat je wilt, je kunt dan het getal tussen de haakje vervangend door het getal dat hoort bij de taal.
 
Dit kan trouwens ook via de standaard functionaliteit in (C#).NET, door het gebruik van Resources en de ResourceManager.

Hier staat er meer over uitgelegd + wat voorbeeldjes.
 
Ja maar dat gebruiknjentoch voor het vertalen van je app niet van een tekst.
 
Ja maar dat gebruiknjentoch voor het vertalen van je app niet van een tekst.

Zit daar verschil in? In het resourcebestand kan je prima "txtHelloWorld" neerzetten en dit (in hetzelfde resourcebestand) vertalen naar "Hallo wereld".
In je applicatie gebruik je dan ResourceManager.GetString ("txtHelloWorld"). Aan de hand van de gezette taalcode (nl-NL bijv) wordt dan de juiste tekst getoond ("Hallo wereld").

Meer informatie: Google op C# localization.
 
Zit daar verschil in? In het resourcebestand kan je prima "txtHelloWorld" neerzetten en dit (in hetzelfde resourcebestand) vertalen naar "Hallo wereld".
In je applicatie gebruik je dan ResourceManager.GetString ("txtHelloWorld"). Aan de hand van de gezette taalcode (nl-NL bijv) wordt dan de juiste tekst getoond ("Hallo wereld").

Meer informatie: Google op C# localization.

Daar zit zeker een verschil tussen, want als je dat doet kan de vertaling niet dynamisch dus de gebruiker tekst in laten voeren.
 
Daar zit zeker een verschil tussen, want als je dat doet kan de vertaling niet dynamisch dus de gebruiker tekst in laten voeren.

Ik zou niet weten waarom niet. Je kan het change-event (weet zo even niet hoe dat in C# heet) van de dropdown afvangen en daarmee de Culture van je current thread (zie mijn eerdere link) aanpassen en de teksten opnieuw inladen (of wellicht refreshen).
 
Even kijken of wij elkaar goed begrijpen:

Stel, ik start dat programma op als gebruiker zijnde, en ik typ een tekst in het nederlands in dat veld in... Hoe zie jij het dan voor je dat dat vertaald gaat worden doormiddelvan een resourcefile?

Want je weet nooit wat de gebruiker gaat invoeren...
 
Even kijken of wij elkaar goed begrijpen:

Stel, ik start dat programma op als gebruiker zijnde, en ik typ een tekst in het nederlands in dat veld in... Hoe zie jij het dan voor je dat dat vertaald gaat worden doormiddelvan een resourcefile?

Want je weet nooit wat de gebruiker gaat invoeren...

Dan begrijpen wij elkaar inderdaad verkeerd ;) Die situatie kan je nooit realtime vertalen, omdat je inderdaad niet weet wat de gebruiker in gaat typen.

In de topicstart staat iets over een dropdown met talen en bij de onchange moet de taal worden veranderd. Dát kan wel met een ResourceManager en Resourcefiles.
 
Ik had uit de OT juist begrepen dat hij dat wou toepassen op de inhoud van een tekstveld, maar als het statisch is kan het inderdaad met een resource manager.
 
Ik had uit de OT juist begrepen dat hij dat wou toepassen op de inhoud van een tekstveld, maar als het statisch is kan het inderdaad met een resource manager.

En aangezien de TS het topic al op opgelost heeft gezet.. :p
Denk dat we deze beter kunnen laten rusten, tenzij de TS nog reageert.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan