String uit RESX bestand halen.

Status
Niet open voor verdere reacties.

wdevaal

Gebruiker
Lid geworden
19 nov 2001
Berichten
74
Ik ben bezig met een programma die ook vertaald moet worden naar het Engels en het Duits, ik maak gebruik van een “frmProgram.en.resx” en een “frmProgram.de.resx” bestand en dit werkt goed.

Nu wil ik in deze bestanden een ook diverse meldingen plaatsen voor b.v een MSGBOX, het toevoegen is geen probleem maar hoe kan ik b.v. String1 ophalen uit het resx bestand want dit krijg ik niet voor elkaar.

m.v.g Willy…
 
Gebruik je VB.NET Express of C#.NET Express?
Bij VB.NET weet ik dat je bij My Project > Settings ook die dingen kunt invoeren.
Is denk ik heel wat simpeler, want dan kun je alles opvragen dmv:

Code:
My.Settings.SettingNaamHierzo

Dus bijv.:

Code:
MsgBox(My.Settings.SuccessfullySavedWarning)
 
Gebruik je VB.NET Express of C#.NET Express?
Bij VB.NET weet ik dat je bij My Project > Settings ook die dingen kunt invoeren.
Is denk ik heel wat simpeler, want dan kun je alles opvragen dmv:

Code:
My.Settings.SettingNaamHierzo

Dus bijv.:

Code:
MsgBox(My.Settings.SuccessfullySavedWarning)


Ik gebruik “Microsoft Visual Basic 2008 Express Edition”.

Ik begrijp wat je bedoeld met “My.Settings.SettingNaamHierzo” en maak hier ook veelvuldig gebruik van.

Maar als ik een melding in drie talen moet kunnen laten zien, is deze manier een beetje omslachtig, zie dit voorbeeld:

If My.Settings.strStandaardTaal = "nl" Then
strBericht = "Back-up is met succes terug geplaatst."
ElseIf My.Settings.strStandaardTaal = "en" Then
strBericht = "Backup is successfully restored."
ElseIf My.Settings.strStandaardTaal = "de" Then
strBericht = "Backup erfolgreich wiederhergestellt."
End If

Ik hoop dat je begrijpt wat ik bedoel.

m.v.g. Willy...
 
Ja, ik begrijp je volkomen.
Ik ben zelf ook VB.NET programmeur dus ik zal even voor je kijken.

edit:
Misschien kun je bij de MyBase.Load event ervoor zorgen dat er word gekeken wat de Standaard taal is en dan vervolgens ALLE strings maken?
Zoiets dus:

Code:
If My.Settings.strStandaardTaal = "nl" Then
Dim Str1 = "Welkom"
Dim Str2 = "Tot ziens"
ElseIf My.Settings.strStandaardTaal = "en" Then
Dim Str1 = "Welcome"
Dim Str2 = "Bye"
ElseIf My.Settings.strStandaardTaal = "de" Then
Dim Str1 = "Wilkommen"
Dim Str2 = "Auf wiedersehen"
End If

En dan bij een melding:

Code:
MsgBox(Str1) 'Gebruiker word welkom geheten in eigen voorkeurstaal

Wat ik eigenlijk bedoelde was dat je gewoon elke String in de Settings zet, en dan voor elke taal de Settings aanpast met een andere String en vervolgens released voor elke taal.
Kost veel minder werk dan een dikke If overal!
 
Laatst bewerkt:
Op de door jou aangeven manier doe ik het nu ook, maar dit genereert veel code in je programma.

Zoals ik al schreef maar ik gebruik van resx bestanden voor de diverse talen, zodat je maar eenmaal hoeft aan te geven in welke taal het programma moet lopen, de strings en andere benamingen worden dan uit het juiste resx taal bestand opgehaald.


Zie deze code:

Imports System.Threading
Imports System.Globalization

Namespace My

' The following events are available for MyApplication:
'
' Startup: Raised when the application starts, before the startup form is created.
' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally.
' UnhandledException: Raised if the application encounters an unhandled exception.
' StartupNextInstance: Raised when launching a single-instance application and the application is already active.
' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.

Partial Friend Class MyApplication

Private Sub MyApplication_Starup(ByVal sender As Object, ByVal e As ApplicationServices.StartupEventArgs) Handles Me.Startup

' Set default taal (nl = Nederlands, en = Engels, de = Duitsland).
Thread.CurrentThread.CurrentUICulture = New CultureInfo("nl")
My.Settings.strStandaardTaal = Thread.CurrentThread.CurrentUICulture.ToString

End Sub

End Class

End Namespace


En dit werkt goed bij Label, Tekstboxen, Form benamingen enz. Maar ik weet niet hoe je een zelf toegevoegde String uit dit resx taal bestand kunt uitlezen.

m.v.g. Willy…
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan