Forum: PC-Programmierung C# App. Sprache umstellen


von Ich (Gast)


Lesenswert?

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

von Terry (Gast)


Lesenswert?

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

von Herbert (Gast)


Lesenswert?

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!

von Florian (Gast)


Lesenswert?

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.

von Rinde (Gast)


Lesenswert?

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!

von Ich (Gast)


Lesenswert?

Hallo,

danke nochmals an alle für die Vorschläge.

Das hier hat geholfen:

http://dzaebel.net/LocalizeRuntime.htm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.