JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Sprachauswahl für die Benutzeroberfläche [MFC]

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 08:55    Titel: Sprachauswahl für die Benutzeroberfläche [MFC] Antworten mit Zitat

Hallo.
Wie kann ich in meinem MFC – Programm eine Sprachauswahl für die Benutzeroberfläche realisieren?
Ich weiß das ich eine Stringtabelle für jede Sprache anlegen soll, aber wie benutzt man die dann richtig? Muss man da jeden einzelnen String auslesen? Das wäre ja ziemlich viel.
Hat schon jemand Erfahrung damit?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.05.2005, 10:36    Titel: Antworten mit Zitat

Ich mache sowas mit nen Sprach Manager:

CPP:
LanguageManager::LoadLanguage("German.xml");
...
std::string text = LanguageManager::GetString("Begruessung_Fred_Freundlich");


Die German.xml ist dann zum Beispiel so aufgebaut (Ini datein reichen natürlich auch):

<Text Hash="Begruessung_Fred_Freundlich" String="Guten tag, ..."/>
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 10:43    Titel: Antworten mit Zitat

FallenAngel84 hat Folgendes geschrieben:
Ich mache sowas mit nen Sprach Manager:

CPP:
LanguageManager::LoadLanguage("German.xml");
...
std::string text = LanguageManager::GetString("Begruessung_Fred_Freundlich");


Die German.xml ist dann zum Beispiel so aufgebaut (Ini datein reichen natürlich auch):

<Text Hash="Begruessung_Fred_Freundlich" String="Guten tag, ..."/>


Was für Sprach Manager? Hast du es selbst geschrieben oder ist es eine MFC-Klasse?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 14:11    Titel: Antworten mit Zitat

CPP:
#include <string>
#include <map>
#include <iostream>

        // Sprache             Schlüsselwort   Satz in anderer Sprache
std::map<std::string, std::map<std::string,    std::string> > language_lib;

int main (void)
{
    std::map<std::string, std::string> temp;

        // Deutsch
    temp.insert(std::make_pair("string1", "Hallo, dies ist ein String Nr. 1"));
    temp.insert(std::make_pair("string2", "Hallo, dies ist ein String Nr. 2"));

    language_lib.insert(std::make_pair("german", temp));

    temp.clear ();

        // Englisch
    temp.insert(std::make_pair("string1", "Hello, this is string no 1"));
    temp.insert(std::make_pair("string2", "Hello, this is string no 2"));

    language_lib.insert(std::make_pair("english", temp));


    std::string language;
    std::cout << "Welche sprache moechtest Du haben?";
    std::cin >> language;

        // Die 2 Strings ausgeben:
    std::cout << language_lib[language]["string1"].c_str() << std::endl;
    std::cout << language_lib[language]["string2"].c_str() << std::endl;

    if(language_lib[language].find("string2") != language_lib[language].end())
    {
        std::cout << "string2 ist drin";
    }
    if(language_lib[language].find("string3") == language_lib[language].end())
    {
        std::cout << "string3 ist NICHT drin";
    }

        // Eingabepuffer leeren und auf RETURN warten
    std::cin.sync ();
    std::cin.get();

    return 0;
}


Easy Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 19:02    Titel: Antworten mit Zitat

ohhhh, wie "unschön":
CPP:
if(...)
{                         <---
     ...
}                         <---
if(...)
{                         <---
     ...
}                         <---
Wink
Klammern weg!

Gruß DirectXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 19:06    Titel: Antworten mit Zitat

Ja und sobald ein unerfahrener/schlampiger Programmierer kommt und etwas hinzufügen will wundert er sich warum es nicht s tut wie er will.

ergo:
Klammern hin
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 19:15    Titel: Antworten mit Zitat

Genau, dadurch wirds auch net langsamer, nur der Code in der .cpp wird größer.
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 03.05.2005, 19:25    Titel: Antworten mit Zitat

in seinen Tuts machts Patrick aber auch immer so Razz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 14:18    Titel: Antworten mit Zitat

Ja und. Sachen wo solche kleinen Sachen sind wie
CPP:
if(a==0)
   ais0=true;
else
   ais0=false;

gehn auch
CPP:
ais0=(a==0);


Und sonst solltest du lieber so programmieren dass es logisch ist. Deshalb gibt es den // und den /*. Und deshalb gibt es die beiden { und }.
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 04.05.2005, 15:16    Titel: Antworten mit Zitat

CPP:
ais0 = !a

_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 04.05.2005, 16:39    Titel: Antworten mit Zitat

Solche Sachen funzen unter C# und Java nicht, das nervt da ziemlich wenn man sich angewöhnt hat damit zu arbeiten.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 05.05.2005, 20:02    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
CPP:
ais0 = !a


*strahl* wie elegant Very Happy
Da schlägt ein Programmierer-Herz gleich höher...

Gruß DirectXer, der heute mal wieder übertreibt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 05.05.2005, 20:04    Titel: Antworten mit Zitat

DirectXer
Cool
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum