verschiedene Sprachen



  • Hallo Leute

    ich arbeite gerade an einem Projekt das unter anderem auch verschiedene Sprachen unterstützen soll.

    Gibt es da gängige Konzepte oder Dateiformate, die man verwenden sollte oder könnte, oder macht da jede Applikation ihr eigenes Ding?



  • Hallo,

    ein paar mehr Informationen wären nett. Was für eine Sprache benutzt Ihr, was für ein Framework?

    Grüße,



  • Programmiersprache ist C++.

    IDEs sind Visual Studio und Borland.

    Visual Studio für den Core, sprich Klassen die Berechnungen durchführen und Borland für die GUI.



  • So lange im Forum und immer noch nicht gelernt wie man Fragen stellt.

    Wovon bitte redest Du?`





  • ja ich gestehe, ich hab das etwas ungünstige formuliert.

    Ich meinte in der Tat Deutsch Englisch Französisch und Co.



  • Gui-Ausgabe-Texte nie hart codiert in den Code hämmern, sondern "Keys" benutzen. Diese dann in den jeweiligen Sprachen Schlüsseln.

    Punkt aus die Maus...



  • Naja ich wollte hat lieber vorher fragen, ob es da standardisierte Dateiformate gibt, die breite Verwendung finden, die ich erzeugen und auslesen kann.

    Die Key-Lösung hatte ich auch schon im Sinn, so viele andere Möglichkeiten gibt es ja auch nicht.



  • Ja die gibt es: Sie heissen .txt (Textdatei genannt).

    Liebe Grüße!



  • It0101 schrieb:

    Gibt es da gängige Konzepte oder Dateiformate, die man verwenden sollte oder könnte, oder macht da jede Applikation ihr eigenes Ding?

    Sowohl als auch... Es gibt meist mehrere gängige Konzepte, die auch abhängig von den Anforderungen gewählt werden, und zumeist vom Framework abhängen.

    Grundsätzliche Fragen:
    1. Soll das Programm auf einen konkreten Rechner mehrere Sprachen gleichzeitig unterstützen, oder reicht es pro Sprache ein Compilat zu erzeugen?
    2. Soll die Sprache zur Laufzeit geändert werden können?
    3. Sind vielleicht noch weitere Dinge wie Ausrichtung (z.B. Arabische Sprache), unterschiedliche Symboliken/Farben (Je nach Kultur können Symbole und Farben eine unterschiedliche Bedeutung haben)?
    4. Sollen die Anwender ggf. Begriffe ändern können (auch dies habe ich schon erlebt).
    5. Welche Version der IDE (ich hoffe nicht wirklich noch Borland, sondern nach Möglichkeit schon eine neuere von Codegear oder besser noch Embacadero) setzt ihr ein? Schon eine mit Unicodesupport (2009/2010/XE/XE2...)?

    Häufig wird so etwas über Ressourcendateien gelöst, es gibt aber auch Lösungen mit Datenbanken dahinter.

    Es gibt kommerzielle Tools wie z.B. Localizer, tsilang (Ich kann dir zu den Programmen aber nichts sagen, unter der VCL musste ich noch nie etwas mit I18N/L10N machen).

    Grundsätzlich sollte man sich aber schon einmal grundlegende Gedanken zu Sätzen etc. machen. Platzhalter für Wörter kann man beispielsweise in den seltensten Fällen verwenden (Oder es führt zu etwas unschönen Sätzen wie "Wollen sie das Objekt wirklich löschen?\nObjekt: %objekttyp%") - gerade wenn du Französisch erwähnst. In der Regel müssen daher alle Sätze egal wie viele es sind einzeln übersetzt werden, ungeachtet wie einfach man in einer Sprache vielleicht Platzhalter verwenden könnte.



  • Schaue dir doch mal an, wie Qt das macht.



  • 12233443465676678789898 schrieb:

    Ja die gibt es: Sie heissen .txt (Textdatei genannt).

    In der Regel eher .rc oder ähnliches...



  • unter linux unix heißt der dreck gettext.



  • In C++ hat man die Übersetzung von Text bzw. Auswahl des Texts an Hand des Locales built-in, falls du die Standard-API nutzen willst.

    Für einfache Aufgaben ist es ja einfach eine Zuordnung von einer ID auf Text in Sprache X. Dann noch die GUI-Elemente auf den Text skalieren und nicht hoffen, dass es in jeder Sprache passt, wenn du alle Felder auf Deutsch dimensionierst.

    Bei Rechts-/Links-Text habe ich allerdings keine Ahnung. Ich nehme aber sehr stark an, dass die ganzen GUI-Elemente Unterstützung dafür eingebaut haben, wenn du die mit Unicode-Strings fütterst.

    Gibt's eigentlich gute Literatur zu dem Thema? So ein relativ kurzer Überblick über das Thema und worauf man achten muss? Und nicht ganz trocken geschrieben? Mit "kurz" meine ich übrigens etwas das man an einem Nachmittag/Abend mal durchlesen kann und nicht den 1000-Seiten Wälzer. Letzteres gibt es von Microsoft ja en Masse über GUI-Design/-Richtlinien.



  • Hallo,

    Für C++ Buildergibts z. Bsp das hier.
    http://dxgettext.po.dk/



  • Der König schrieb:

    Gui-Ausgabe-Texte nie hart codiert in den Code hämmern, sondern "Keys" benutzen. Diese dann in den jeweiligen Sprachen Schlüsseln.

    Punkt aus die Maus...

    Wie benennt ihr die Keys?

    Ist das einfach nur eine ID Nummer oder hat ein Key selbst aussagekraft?

    z.B.
    Keyname: message_that_asks_about_money_input

    Oder:
    Keyname: ID_13452

    Letzteres wäre doof, weil man dann immer nachschauen müßte.
    Ich nutze nämlich bisher die Textausgabe im Quellcode zur Orientierung im Quellcode.
    Der kann da nämlich schon sehr hilfreich sein, um die passende Stelle aufzuspüren.
    Hier wären dann also auch Aussagekräftige Keynamen von Vorteil.



  • Ich würde es mit einer XML Datei machen !


Anmelden zum Antworten