2015-01-10 2 views
0

Я добавил возможность выбора нескольких языков в этой игре, но у меня есть некоторые проблемы с ней. Основная проблема заключается в том, что если один из игроков имеет выбранный английский язык, а другой - японский, японский игрок может читать английские языки, но английский игрок не может читать свой язык. При запуске игры выбранный язык считывается из xml с именем config.xml (он получает дочерние элементы кода), а затем оттуда в зависимости от того, какой язык выбран, переходит в папку и загружается на языке xmls. Есть ли способ любить, вставлять или загружать все языки одновременно, чтобы игроки могли читать корейский/японский текст, а не кучу вопросительных знаков?Проблема с многоязычными настройками в игре

код:

void ZLanguageSetting_formultilanguage::SetLanguageIndexFromCmdLineStr(const char* cmdline) 
{ 
const unsigned int id_USA = 0; 
const unsigned int id_DUT = 1; 
const unsigned int id_SPA = 2; 
const unsigned int id_POR = 3; 
const unsigned int id_GER = 4; 
const unsigned int id_KOR = 5; 
const unsigned int id_JAP = 6; 

m_idLang = id_USA; 

if (NULL == cmdline) return; 

if  (NULL!= strstr(cmdline, "&u100e:2=en")) m_idLang = id_USA; 
else if (NULL!= strstr(cmdline, "&u100e:2=du")) m_idLang = id_DUT; 
else if (NULL!= strstr(cmdline, "&u100e:2=sp")) m_idLang = id_SPA; 
else if (NULL!= strstr(cmdline, "&u100e:2=po")) m_idLang = id_POR; 
else if (NULL!= strstr(cmdline, "&u100e:2=ge")) m_idLang = id_GER; 
else if (NULL!= strstr(cmdline, "&u100e:2=ko")) m_idLang = id_POR; 
else if (NULL!= strstr(cmdline, "&u100e:2=ja")) m_idLang = id_GER; 
} 

ZLanguageSetting_formultilanguage g_LanguageSettingformultilanguage; 
ZLanguageSetting_formultilanguage* ZGetLanguageSetting_formultilanguage() 
            { return &g_LanguageSettingformultilanguage; } 

const char* ZConfiguration::GetLanguagePath() 
{ 
    switch (GetSelectedLanguageIndex()) 
    { 
    case 1: 
     return PATH_DUT; 
    case 2: 
     return PATH_SPA; 
    case 3: 
     return PATH_POR; 
    case 4: 
     return PATH_GER; 
    case 5: 
     return PATH_KOR; 
    case 6: 
     return PATH_JAP; 
    case 7: 
     return PATH_USA; 
    default: 
     return PATH_DEFAULT; 
    } 
} 

Это основание кода, который выбирает из CmdLine, а затем загружает один из этих путей, содержащих XMLs в память. Надеюсь, что в этой ветке есть вся необходимая информация, если нет, я буду обновлять по мере необходимости. Спасибо

+0

Я вижу, что вы пропустили английский в этом списке :-( –

+0

Он указан в id_usa, но он должен быть id_eng, я изменил это позже, если кто-то другой будет работать над моим проектом со мной. мой код, случайно добавил id_ger дважды && id_por дважды – Jmd82

+0

Интересно, что случилось с английским языком на этой лодке. То, что вы используете, - это диалект английского. –

ответ

0

Проблема в том, что программа очень старая, не использует Юникод, использует MBCS, слишком долго, чтобы преобразовать все в Юникод, поэтому я удаляю японский и корейский языки.

Смежные вопросы