C# App. Sprache umstellen

Gast #1942887
Hallo alle zusammen,

ich benötige ein paar Denkanstösse zu folgendem Problem:
Ich hab eine WindowsForms Anwendung da sind ein Haufen von 
Labels,DomainUpDowns,Tabcontrols usw.. gefüllt mit Strings(Deutsch).
Ich will jetzt im Menü eine Sprachauswahl bereitstellen die mir alle
Objekte mit der Sprache Englisch füllt.

Mein Gefühl sagt mir das das nicht so einfach wird.

Hat jemand ein paar Gedanken,Links zu diesem Thema damit mir die 
Realisierung
leichter fällt?


Danke
Gast #1942914
Möglichkeiten zum Ablegen der Texte:

  1. hardcodiert im Sourcecode
  2. Resourcen-Datei
  3. kleine Datenbank
  4. XML-Datei

Ich nutze oft eine kleine Access-Datenbank für meine Daten. Da bietet es 
sich an dort auch die Texte mit abzulegen.

Ich habe auch schon mit XML-Dateien gearbeitet, die dann von einem 
Kunden später selbst mit anderen Sprachen erweitert werden konnte.

Der Vorteil von XML gegenüber einer DB ist, man hat keine Vorgaben bzgl. 
der Textfeldgröße und spart dadurch Speicherplatz sowie Ärger wenn das 
Feld der DB zu klein demonsioniert wurde.

Mit Resourcen-Dateien hab ich bis jetzt nur Bilder verwaltet. Zur 
Textverwaltung kann ich nichts sagen.

Du musst überelgen, wie viel Text du hast und wie oft du diesen Updaten 
willst. Text direkt im Code ist wahrscheinlich die schnellste Variante, 
man erspart sich das Einlesen aus einer Datei oder Datenbank. Sowie die 
Arbeit erstmal alles zu erstellen usw.

Viele Wege führen zum fertigen Programm

MfG Terry
Gast #1942920
Hallo.

Das klingt nach einer recht interresanten Aufgabe. Ich denke nicht, das 
es da etwas gibt, das Dir Deine Steuerelemente automatisch umbenennt.
 Bleibt vielleicht nur der manuelle Weg?! Du gehst Deine Steuerelemente 
einzeln durch und beschriftest sie um. Um die Sache handlicher und 
übersichtlicher zu machen bietet es sich an, eine Liste anzulegen wo zu 
jedem Steuerelement ein paar Daten hinterlegt werden.
z.B.: - ZielAttribut  (Caption oder Text, kann ja auch schon ein Handle 
sein)
      - deutsches Wort
      - englisches Wort

Viel Spaß dabei!
Gast #1942921
Hier ein beispiel um zur laufzeit umzustellen.

http://dzaebel.net/LocalizeRuntime.htm

Schau dir auch mal an wie man das ganze in Visual Studio macht.
Form auswählen eigenschaften und dan ->Localizable auf true
Dann entsprechende ->Language auswählen.
Erzeugt dann für jede Sprache eine .resx Datei
Damit wird auch die Form für die entsprechende Sprache
angepasst, z.b. Steuerelementepositionen usw.
Da sich bei einigen Strings, doch mal, die Länge deutlich unterscheiden 
kann.
Gast #1942988
Florian hat Recht, VS bietet dir da eine wunderbar einfache Möglichkeit. 
Da brauchst du definitiv nichts eigenes zu programmieren und schon gar 
keine Datenbak nutzen!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.