Mehrere Sprachen anbieten?



  • Hallo zusammen!

    Ich habe eine generelle Frage, wie ihr/man es handhabt mir mehreren Sprachen in euren Programmen? Habt ihr einfach eine Datei in der alle Outputs drinstehen und das in verschiedenen Sprachen? Und nachher im Code müsst ihr einfach immer aus der Datei lesen? Oder fertigt ihr verschieden .exe's an mit jeweils anderen Outputs? Ist das nicht eine Riesenaufwand wenn ihr in einer was ändert, müsst ihr für jede Sprache eine .cpp bearbeiten und eine .exe erstellen + Installer etc...?

    Vielen Dank schon mal im vor_raus

    Dominique



  • Was man sich doch alles einfallen lässt nur um "voraus" falsch schreiben zu können 🙄

    Auf ne Datei welche die Ausgaben in der Zielsprache hat laufen im Endeffekt sämtliche gängigen Lösungen hinaus.



  • Dafür nimmt man idealerweise: http://www.gnu.org/software/gettext/



  • OMFG schrieb:

    Auf ne Datei welche die Ausgaben in der Zielsprache hat laufen im Endeffekt sämtliche gängigen Lösungen hinaus.

    Hier gibt es ebenfalls mehrere möglichkeiten. Einige Leute nutzen ini dateien um die Sprache anzupassen, andere nutzen hierfür DLL Dateien.
    Ein Artikel für sowas findest du in der Artikelsektion, solange es sich um Resource-DLL Dateien mit der MFC handelt.



  • OMFG schrieb:

    Was man sich doch alles einfallen lässt nur um "voraus" falsch schreiben zu können 🙄

    Was soll der Ton? 1. Kann man sich mal täuschen 2. Dacht ich es heisst vorraus, das wird aber zensiert... (Für irgendwas gibts die Vorschau)

    Danke an /. und guenni81 :), ich denk ich schau mir des mal an.



  • jeko schrieb:

    OMFG schrieb:

    Was man sich doch alles einfallen lässt nur um "voraus" falsch schreiben zu können 🙄

    Was soll der Ton? 1. Kann man sich mal täuschen 2. Dacht ich es heisst v******, das wird aber zensiert... (Für irgendwas gibts die Vorschau)

    Falsch gedacht - es heißt voraus (mit genau einem R). Und wenn du es nicht glaubst, schlag doch im Duden nach.



  • Zum Thema: Ich muss OMFG zustimmen, bei C und C++ kommt man idR mit gettext und Co. sehr gut aus.



  • CStoll: Ja ich weiss, habs nach OMFGs Beitrag nachgeschlagen 🙂 Ich wollte nur nochmal erklären wieso ich den Underscore verwendet habe.

    nman: Das mit gettext war nicht OMFG... Ist aber irrelevant. Danke an /.



  • guenni81 schrieb:

    Ein Artikel für sowas findest du in der Artikelsektion, solange es sich um Resource-DLL Dateien mit der MFC handelt.

    Wobei ich übrigens von dieser Methode in vielen Fällen abrate.

    Textfiles (bzw. heute XML-Files) sind dafür geeigneter.

    In vielen Fällen muß man eine Software ja pflegen, und wird neue Dialoge ergänzen, oder auch neue Elemente, etc.

    Resourcendateien - auch wenn es nur Textresourcen sind - sollte aber am besten jemand mit softwaretechnischem Hintergrund pflegen. Man kann diese Datei schlecht nach China schicken oder Brasilien, und diese dann ergänzen lassen.

    Liegen Textdateien vor, so kann man diese an die Niederlassung oder sogar auch nur an einen ausländischen Vertriebsmann schicken. Im Extremfall kann die Übersetzung sogar vom Kunden selbst gemacht werden. Auch ist eine Pflege möglich, denn manche Übersetzung ist zunächst mißverständlich und muß im Laufe der Zeit geändert werden. Packt man dies alles in Resourcen, so ist die Softwareabteilung mit relativ teuren Stundensätzen für die Pflege der Sprachdateien zuständig, das ist eigentlich nicht angemessen.

    Selbst bei privaten OS-Projekten erscheint die Textdateivariante sinnvoller, da es mehr Mithelfer gibt die übersetzen können als programmieren.

    Die Methode, die Sprache in den Code zu packen - dazu gehört eben auch die Resourcen-DLL - hat nur relativ eingeschränkte Anwendungsfälle, z.B. wenn man ein abgeschlossenes Projekt hat, das vielleicht nur Deutsch/Englisch anzeigen soll. Sobald aber die Anzahl der Sprachen nicht genau definiert ist und sich noch ändern kann, oder wenn das Projekt eine Pflegezeitspanne hat, ist mir das für den Einsatz zu unflexibel.



  • Hi

    In java gibts bein den Textbasierten Resorcendateien sogar noch den netten Zusatz, das er sich anhand der eingestellten Systemsprache die passende Datei selbst raussucht. Das geht über einen zusatz im Dateinamen. Der erste gibt an um welche Sprache es sich Handelt (_de, _fr, ...) der zweite Zusatz gibt dann die Lokaliesierung an ( für Deutsch z.B. _DE _AT oder CH, wobei es für die Schweitz auch noch die Sprachen _fr und _it gibt )

    Das system ist dann sogar so intelligent und versucht für Austria dann die Datei "Texte_de_AT.prop" zu suchen. wenn die nicht existiert geht er einen schritt zurück und sucht die nicht Lokalisierte "Texte_de.prop" und wenns die nicht gibt wird die grundversion der datei geöffnet "Texte.prop". Das sollte sogar soweit gehen, das nur die Lokaliesierten texte in der "_de_AT" - Datei drinn stehen müssen, die anderen werden dann automatisch aus den anderen Dateien zusammengesucht.

    gruss


Anmelden zum Antworten