Sprache ändern geht nicht, Deutsch Englisch

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von Cheffboss.

    Sprache ändern geht nicht, Deutsch Englisch

    Moin! :)
    Ich habe eine WinForm mit Englischer und Deutschersprachdatei.
    Die WinForm zeigt in der IDE den Englischen Text an.
    Leider ändert, er aus irgendeinen grund nicht die Sprache.
    Ich habe vieles ausbrobiert.
    Leider ohne Erfolg!
    BIG THX

    VB.NET-Quellcode

    1. Sub New()
    2. SpracheÄndern()
    3. ' Dieser Aufruf ist für den Designer erforderlich.
    4. InitializeComponent()
    5. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    6. End Sub
    7. Sub SpracheÄndern()
    8. ' Englisch
    9. My.Application.ChangeUICulture("en")
    10. My.Application.ChangeCulture("en-US")
    11. End Sub
    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss Dann sieh Dir mal diesen Thread an:
    Programme mehrsprachig erstellen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Form mit 2 Labels und folgendem Code.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Dim aktuelleZeit As Date = Date.Now
    3. Label1.Text = aktuelleZeit.ToString
    4. My.Application.ChangeCulture("EN")
    5. My.Application.ChangeUICulture("EN")
    6. Label2.Text = aktuelleZeit.ToString
    7. End Sub

    Funktioniert. Du möchtest sicher was ganz anderes erreichen, nämlich das was @RodFromGermany vorschlug.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    @Akanel Jou.
    @Cheffboss Was ist Dein Plan?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Ich habe den Thread gelesen und viele weitere Seiten die ich gefunden habe.
    Leider, ohne erfolg!
    Mein Plan ist simpel, ich möchte eine Anwendung vom Deutschen auch ins Englische haben.

    @Akanel
    Leider spinnt meine IDE.
    Sobald ich es auf Englisch haben möchte, passiert nichts oder es erscheint eine Fehlermeldung.

    System.InvalidOperationException
    HResult=0x80131509
    Nachricht = Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..
    Quelle = <Die Ausnahmequelle kann nicht ausgewertet werden.>
    Stapelüberwachung:
    <Die Ausnahmestapelüberwachung kann nicht ausgewertet werden.>

    Innere Ausnahme 1:
    NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.





    edit2:
    Ich habe mal ein Beispielprojekt hochgeladen.
    Bei mir erscheint dann leider ein Fehler.
    Wie sieht es bei euch aus? ?(

    SpracheÄndernBUG.zip
    Visual Basic.NET 8o
    MS-SQL
    8o

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Cheffboss“ ()

    Pack den Code mal ins Form.Load oder Form. Shown Event. Du erstellst irgendwie keine Instanz.
    Desweiteren macht der Code nicht das was du denkst. Wenn die Culture auf Englisch ist, betrifft das alle Systemrelevanten Sachen wie Datumsformat, Währungsanzeige etc.
    Es übersetzt dir nicht alles. Dazu wähl den Weg von @RodFromGermany.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    @Cheffboss Zwei Sachen:
    Schraub mal das Framework hoch, mindestens 4.0.
    Und:
    InitializeComponents() muss die erste Zeile im Konstruktor sein, sonst gibt es keine GUI.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Akanel
    Habe ich schon versucht mit Load und Shown.
    Die Einstellungen wird auf Englisch umgestellt z.B das Datum.
    Aber der WinForm Text beleibt immer auf Deutsch.

    @RodFromGermany
    Auch wenn es sich jetzt witzig anhört.
    Ich versuche noch das .NET Framework, da diesem Programm auch für ältere Windows Versionen bereitstellen möchte.
    Da ich es so veröffentlicht habe, und nur sehr ungern erhöhe ich die Framework Version.

    @an alle
    Ich habe was sehr komisches festgestellt, wenn ich mein Projekt unter WinXP VS 2010 Compilern,
    kann ich die Sprache ändern und es kommt keine Fehlermeldung!
    Sobald ich aber mit Windows 10 VS2017 Compilern erscheint die Fehlermeldung!
    Das .NET Framework 2.00 unterstütz auch das mit den Sprachen umstellen.

    Warum geht es mit IDE2010 aber nicht mit IDE2017? ?(
    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss Wenn ich Dein Projekz zu Hause mit VS2017 öffne, konvertiert er automatisch das Framework, weil ich kein 2.0 hier habe (auf Arbeit schon).
    Der Rest funktioniert sofort:

    VB.NET-Quellcode

    1. Sub New()
    2. ' Dieser Aufruf ist für den Designer erforderlich.
    3. InitializeComponent()
    4. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    5. Dim aktuelleZeit As Date = Date.Now
    6. Label1.Text = aktuelleZeit.ToString
    7. My.Application.ChangeCulture("EN")
    8. My.Application.ChangeUICulture("EN")
    9. Label2.Text = aktuelleZeit.ToString
    10. End Sub
    Ich verweise Dich mal explizit auf den Kommentar in Zeile 5 :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Ich drehe noch durch! :cursing:
    Das mit der Zeile 5 habe ich verstanden, auch wenn ich den Code Copy and Paste.
    Erscheint immer eine Fehlermeldung!
    Aber mit IDE2010 unter WInXP, geht es.
    Ich habe aber keine Lust das Projekt immer mit XP zu Compilern.
    Deshalb suche ich weiter eine Lösung...

    System.InvalidOperationException
    HResult=0x80131509
    Nachricht = Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Die Kultur "en" ist neutral. Sie kann nicht als die aktuelle Threadkultur festgelegt werden, da sie nicht zum Formatieren und Analysieren verwendet werden kann..
    Quelle = <Die Ausnahmequelle kann nicht ausgewertet werden.>
    Stapelüberwachung:
    <Die Ausnahmestapelüberwachung kann nicht ausgewertet werden.>

    Innere Ausnahme 1:
    NotSupportedException: Die Kultur "en" ist neutral. Sie kann nicht als die aktuelle Threadkultur festgelegt werden, da sie nicht zum Formatieren und Analysieren verwendet werden kann.

    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Erscheint immer eine Fehlermeldung!
    Ich denke mal, dass das am Framework liegt.
    VS2017: Projekt => Eigenschaften => Anwendung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Akanel
    Danke, für deine Hilfe. :)
    @RodFromGermany
    Danke, für deine Hilfe. :)

    @an alle
    Ich habe nun mehrere Stunden, damit verbracht eine Lösung zu finden.
    Aus irgendeinem unbekannten Grund, geht es nur mit WinXP und VS2010 mit dem .NET Framework 2.00.

    Deshalb habe ich mich nun entschlossen, trauriger weiße das höhere .NET Framework 4.00 zu verwenden.
    Laut meiner Recherche läuft dies ab Windows XP.
    Dann müssen die Anwender mit älteren Windows Versionen eben, auf ein neueres System wechseln.
    Das Problem ist einfach, das ich damit geworben habe, das es auch auf älteren Systemen läuft.
    Und ich ein paar User habe, die tätschlich noch eine ältere Windows Version verwenden!
    Naja dann heißt es wohl Fortschritt!
    Nochmals an alle,
    Vielen Dank! :thumbsup:
    Visual Basic.NET 8o
    MS-SQL
    8o
    Der Code in post#1 sieht mir eiglich korrekt aus.
    ich finde komisch, dass mit einem String gearbeitet wird, anstatt mit einem Globalisation.Culture-Objekt - aber ich habs jetzt nicht nachgeguckt.
    Gewagt malwieder finde ich, In einem Methoden-Namen einen Umlaut zu verwenden.

    So, jetzt habich nachgeguckt, und vor vielen Jahren habich so gemacht:

    VB.NET-Quellcode

    1. Sub SpracheAendern()
    2. Dim cult = System.Globalization.CultureInfo.GetCultureInfo("en-us")
    3. System.Globalization.CultureInfo.CurrentCulture = cult
    4. System.Globalization.CultureInfo.CurrentUICulture = cult
    5. End Sub
    vielleicht geht das ja auch in uralt-Frameworks.
    @florian03
    Ich habe bei den Systemanforderungen überall geschrieben ab Windows 98.
    Jetzt heißt es dann eben ab Windows XP.
    Ich habe sogar noch einige Kunden, die Windows2000 verwenden.
    Und zwei Kunden mit Win98 SE.

    @ErfinderDesRades
    Danke, für den Code.
    Aber der geht leider auch nicht.
    Nur wenn .NET Framework 4.00.

    @Yanbel
    Danke, ja habe ich bereits.
    Visual Basic.NET 8o
    MS-SQL
    8o
    Warum bindest du dir solche Probleme ans Bein? Das sind Systeme die schon ewig kein Support mehr bekommen. Da war es klar das irgendwann Probleme auftauchen.
    ich finde es auch leichtsinnig etwas zu bestätigen wenn es noch gar nicht geprüft ist. Speziell deine Zusagen an die Kunden das dein Tool auch auf älteren Systemen läuft. Erst prüfen und programmieren, dann Zusagen bzw. werben.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    @Akanel
    Ja, da hast du recht. :thumbsup:
    Mein Programm war bereits in Deutsch zu Verfügung und lief,
    auch auf Windows 98.
    Aber als ich dann die Sprache erweitert habe, habe ich nun das .NET Framework 4.00 gewählt.
    Meine Kunden die, noch ein sehr altes System haben, müssen dann eben wechseln.
    Visual Basic.NET 8o
    MS-SQL
    8o