Sprach lokalisierung ändern

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Joshi.

    Sprach lokalisierung ändern

    Hallo,

    habe mich heute mal mit der Lokalisierung beschäftigt,
    und habe mir zwei Sprachen eingestellt "de-DE" und "en".
    Wenn ich beide in den Eigenschaften meiner Form auswähle zeigt er mir immer den korrekten Text an
    aber sobald ich die Sprache per Code ändere zeigt er mir Deutsch zwar richtig an aber English teilweise nicht.
    Liegt das vllt an einer falsch einstellung die Visual Basic in die Sprach .dll geschrieben hat ?

    Das hier ist der Code zum ändern der Sprache in der Anwendung
    Spoiler anzeigen
    Private Sub ChangeLanguage(ByVal lang As String)
    For Each c As Control In Me.Controls

    Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(Form1))

    resources.ApplyResources(c, c.Name, New CultureInfo(lang))

    Next c

    End Sub


    Hat da jemand ne Idee wodran es liegen könnte.
    "en-EN" hab ich schon probiert, komischerweise ist bei der Englischen ausgabe eben ein Teile English aber ein paar noch auf Deutsch,
    Und das ganze ist aber nur so wenn ich es in der Anwendung selbst ändere aber in Visual Basic ist alles richtig.Vorher hats auch funktioniert, aber seit dem ich dann in einer Sprache nochmal etwas korrigiert hab ist English jetzt mit Deutsch vermischt aus irgendeinem Grund.
    @Gutserino Die Hauptsptache stellst Du in den Projekteigenschaften ein, das ist die Sprache, die in der Exe und den DLLs des Programms selbst eingebettet ist:

    Alle anderen Sprachen werden in sogenannten Satelliten-DLLs eingebettet.
    Du erstellst Dein Projekt in der Default-Sprache und alle Änderungen zur Default-Sprache in der Lokalisierung.
    Alles, was nicht lokalisiert wurde, erscheint in der Default-Sprache.
    Gugst Du 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!
    @Gutserino Ich habe keine Lust, werbeverseuchte Seiten besuchen zu müssen.
    Nutze die Dateianhangsfunktion des Forums:
    Erweiterte Antwort => Dataianhänge => Hochladen,
    ändere Deinen Post entsprechend.
    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!
    Hi.

    Benutzt du die Eingabesprache-Funktion in Windows?

    Das kleine nervige Ding im Startmenu rechts...

    Dort werden icht nur die Tastatur und die Umrechnungen von "lokalisierten" Werten im System umgestellt, sondern noch einige Dinge mehr.

    Ich habe genau solches Verhalten in einem Programm gehabt, und konnte es so lösen, das ich zusätlich zur "Spracheinstellung" des Programms auch die Eingabesprache eingestellt habe.

    Damit ging es zuverlässig.

    Ich habe leider das Programm nicht im "lokalen Datennirvana" gefunden, um zu zeigen wie genau das ging. Tschuldigung ;)

    Suche mal nach "Eingabesprache per Applikation" in den Weiten des InternWebs, oder wie sich das heutzutage schimpft...

    Auch kann es sein, das nur der Inhalt im Karteireiter nicht umgestellt wird.

    Einmal die einzelnen Controls auf eine Sprache einstellen, falls möglich...

    Tipp: Wenn es deine Rechnerkapazitäten erlauben, kann ich dir den Umstieg auf ein neues Visual Studio wärmstens empfehlen.
    Ich selbst habe noch eine Visual Studio 2010 Professional hier rumliegen, und sieht nur noch "Hübsch" aus, und fängt Staub.

    Machnmal nehme ich heimlich die DVD raus und starre gebannt auf das Hologramm, bis die Augen bluten... lol :whistling: 8| ?( :S

    c.u. Joshi mit neuer Augenbinde, wegen Visual Studio...
    Ich will nicht zusätlich noch am System die Spracheinstellung verändern, das wäre ja blödsinn.
    Also ist die Lokalisierung an sich kompletter Schrott ? Es hat ja auch vorher funktioniert die umstellung, aber einmal nochmal nachträglich nen Text verändert in einer anderen Sprache
    und auf einmal sind beide Sprachen vermischt...typisch Windows da funktioniert nie etwas wie es eig soll ^^

    EDIT:
    Grad mal Windows auf Englisch umgestellt und dann das Programm gestartet, jetzt zeigt er es richtig an..sobal ich auf Deutsch stelle dann nicht mehr....unfassbar die Funktion is ja echt super was die da programmiert haben, könnte glatt von mir kommen...
    @Gutserino Beratungsresistent?

    RodFromGermany schrieb:

    Ich habe keine Lust, werbeverseuchte Seiten besuchen zu müssen.
    Nutze die Dateianhangsfunktion des Forums:
    Erweiterte Antwort => Dataianhänge => Hochladen,
    ändere Deinen Post entsprechend.
    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!
    Es geht v.a. darum, dass Du Bilder forenintern über [+ Erweiterte Antwort] -> _|Dateianhänge|_ -> [Hochladen] posten kannst. Es geht auch darum, dass ein externer Hoster da auch irgendwann mal alles löschen kann und ein Leser dieses Threads nicht mehr hinterherkommt, da die Bilder dann weg sind. Externe Bilder sind grundsätzlich hier im Forum nicht so angesagt und werden eher von den Hilfestellenden gemieden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi.

    Versuch mal das in das Loadereignis des jeweiligen Fensters/Controls folgendes einzupflegen...

    VB.NET-Quellcode

    1. InputLanguage.CurrentInputLanguage =
    2. InputLanguage.FromCulture(new System.Globalization.CultureInfo("de-DE"))
    3. InputLanguage.CurrentInputLanguage =
    4. InputLanguage.FromCulture(new System.Globalization.CultureInfo("fr-FR"))


    Eingabesprache im Programm zur Laufzeit einstellen.

    Ich kann mich zwar nur waage erinnern, aber es war das mit dem ich eine "vollständige" Übersetzung hinbekommen habe.
    Das wirkt aber nur im Zusammenspiel mit der "CultureInfo" des CurrentCulture.

    VB.NET-Quellcode

    1. Dim ci As System.Globalization.CultureInfo = New System.Globalization.CultureInfo("fr-FR")
    2. System.Threading.Thread.CurrentThread.CurrentCulture = ci


    c.u Joshi