1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Info Русский язык в исходниках + компиляция(Моё решение)

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Zarj, 28 дек 2009.

Статус темы:
Закрыта.
  1. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Итак, недавно я столкнулся с проблемой, когда при компиляции русского языка (не путать с файлом конфига языка) возникали проблемы, бот заходил в игру но в том месте которое я хотел перевести на рус бот оставлял лишь пустоту, как будто там мничего и небыло.
    Я начал искать всевозможные варианты, перепробовал всё, оставалась лишь одна надежда...
    Но тот самый вариант на который оставалась надежда был самым-при самым муторным!!!
    Итак вот этот самый "муторный" вариант:
    Объясню вам на примере перевода текста "ms" который пишется после пинга, напр: "78ms".
    Первое что мы должны сделать, это в конфиге своего языка добавить строчки самой русификации, напр:
    Код:
    lang_1003 = мс
    Скрин №1
    1003 может быть любым несовпадающим с теми что уже есть в списке, "мс" это тот самый русский перевод.
    Второе что мы должны сделать, это найти этот текст (Думаю это непроблема).
    Итак нашли, вот кусок этого кода (в файле game.cpp 4468 строка) :
    Код:
    						Pings += "ms";
    					}
    					else
    						Pings += "N/A";
    
    Скрин №2
    И наконец переходим к процессу программной реализации перевода "ms"!!!
    В файле language.cpp в конце файла добавляем строки:
    Код:
    string CLanguage :: Ping( )
    {
    	string Out = m_CFG->GetString( "lang_1003", "lang_1003" );
    	return Out;
    }
    Скрин №3
    В этих строках вы можете изменять слова Ping на любое(это само название ф-ии, лучше называть её похожим названием на то что мы русифицируем, только строго на англ, лучшее название и понятное - транслитом)и lang_1003 (это то значение, что мы вписали в конфиге языка.)
    В файле language.h в конце файла добавляем строки:
    Код:
    	string Ping( );
    Скрин №4
    Тут Ping должно быть одинаковым с тем как мы назвали ф-ю в файле language.cpp
    Наконец-таки саму ф-ю написали, осталось подставить в нужное место правильный её вызов:
    Код:
    						Pings += m_GHost->m_Language->Ping();
    					}
    					else
    						Pings += "N/A";
    
    Скрин №5
    Для вызова из файла языка обязательно писать m_GHost->m_Language-> а Ping это опять-таки название ф-ии которое мы объявили в начале.
    Вот и решена проблема!!!
    Но у неё есть свои минусы и плюсы, рассмотрим самые очевидные:
    Минус:
    На примере "ms" мы видем что даже для такой маленькой фразы нужно писать отдельную ф-ю.
    Плюс:
    Зато мы можем вставить эту ф-ю в любое место где используется то же слово!!!

    Вложения:

    • скрины.rar
      Размер файла:
      512,9 КБ
      Просмотров:
      258
  2. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Кому что непонятно, задаём вопросы, постараюсь ответить!

    P.s. забыл ещё, Если вы будете копировать данную статью на какой либо другой ресурс, то обязательно должны там выложить ссылку на эту тему + (С)Zarj aka Rk61
    Т.к у этой статьи НЕТУ АНАЛОГОВ!
  3. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Кто-нибуть пытался переводить этим способом???
    Отпишитесь как успехи!!!
  4. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Пробывал по твоему примеру нечего не получаеться может я не то чтото делаю но всетаки кампилирую в программе Visual C++ 2008 и потом запускаю программу и нет некаких изменений может я чтото еще пропстил?
  5. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Сначало попробуй скомпилировать неизменённые исходники, если не получается то смотри ридми как компилировать, если получится скомпилировать, то делай всё по инструкции, всё работо способно, у меня много чего переведено, всё работает.
  6. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Сори что сейчас не могу отвечать сразу, как только возникают вопросы, просто сейчас занимаюсь интересным проектом(непосредственно связанным с ботом =) )
    Так что конкретезируйте сразу что не так, логи\скрины ошибок, или подробнейшее описание, чтоб я мог сразу отвечать, а не продумывать что за проблема то всё-таки у вас.
  7. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Вот делаю компиляцию файла

    1>------ Построение начато: проект: ghost, Конфигурация: Debug MySQL Win32 ------
    1>Компиляция...
    1>game.cpp
    1>Журнал построения был сохранен в "file://c:\Documents and Settings\Administrator\Desktop\GHostOne\ghost\Debug MySQL\BuildLog.htm"
    1>ghost - ошибок 0, предупреждений 0
    ========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========

    а что дальше делать с ботом, а то изменения не вступают в силу?
  8. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Компиляция идёт правильно, всё без ошибок.
    Чтоб были изменения в папке ghost где исходники, меняй их и компилируй,
    Раз уж пишешь в этой теме - следуй инструкциям моим, описанным выше, и русифицируй хотяб пинг "ms" отпишись по результатам
  9. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    У меня после компиляции всех файлов game, language, Russian создаеться папка "Debug MySQL" и там файлы, все эти с раширением obj, но изменений нет в программе некаких, что я не сделал или неправельно компилирую чтоли?
    Компилирую каждый фаил отдельно.
  10. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    выбири возле зелёного треугольника который компилит Release MySQL и компиль.
  11. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    И не чего не происходит создает только 2 папки а там нет ехе файла.
    Я даже нечего не менял всеровно также пишет.
    И в конце пишет что типо ехе фаил не найден, что это может означать?
    Может ты всетаки видео запишеш чтоб более понятно было что к чему.
  12. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Для начала скачай либы буста 1.38 версии и пропиши их в компиляторе.
    Как сделаешь попробуй компилировать и логи результата сюда.
  13. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Непонял ток откуда у тя файл elo.cpp =) сколько было разных версий-не в одно не видел его.
  14. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Код:
    1>------ Построение начато: проект: BNCSutil, Конфигурация: Release Win32 ------
    1>Компиляция...
    1>cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
    1>stack.c
    1>Создание кода...
    1>Компиляция...
    1>oldauth.cpp
    1>libinfo.cpp
    1>..\src\bncsutil\libinfo.cpp(52) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(366): см. объявление 'sprintf'
    1>file.cpp
    1>decodekey.cpp
    1>cdkeydecoder.cpp
    1>..\src\bncsutil\cdkeydecoder.cpp(144) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74): см. объявление 'strcpy'
    1>..\src\bncsutil\cdkeydecoder.cpp(324) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74): см. объявление 'strcpy'
    1>..\src\bncsutil\cdkeydecoder.cpp(359) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(324): см. объявление 'sscanf'
    1>..\src\bncsutil\cdkeydecoder.cpp(370) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74): см. объявление 'strcpy'
    1>..\src\bncsutil\cdkeydecoder.cpp(435) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(324): см. объявление 'sscanf'
    1>bsha1.cpp
    1>Создание кода...
    1>Компиляция...
    1>cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
    1>sha1.c
    1>Компиляция...
    1>cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
    1>nls.c
    1>..\src\bncsutil\nls.c(280) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74): см. объявление 'strcpy'
    1>..\src\bncsutil\nls.c(291) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74): см. объявление 'strcpy'
    1>Компиляция...
    1>cl: командная строка warning D9035: использование параметра "Wp64" нежелательно, он будет удален в следующих выпусках
    1>checkrevision.cpp
    1>..\src\bncsutil\checkrevision.cpp(430) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(237): см. объявление 'fopen'
    1>..\src\bncsutil\checkrevision.cpp(466) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(358): см. объявление '_snprintf'
    1>Компоновка...
    1>   Создается библиотека Release/BNCSutil.lib и объект Release/BNCSutil.exp
    1>Внедрение манифеста...
    1>Журнал построения был сохранен в "file://c:\Documents and Settings\Administrator\Desktop\111\bncsutil\vc8_build\Release\BuildLog.htm"
    1>BNCSutil - ошибок 0, предупреждений 14
    2>------ Построение начато: проект: ghost, Конфигурация: Release Win32 ------
    2>Компиляция...
    2>util.cpp
    2>statsw3mmd.cpp
    2>statsdota.cpp
    2>stats.cpp
    2>socket.cpp
    2>sha1.cpp
    2>savegame.cpp
    2>replay.cpp
    2>packed.cpp
    2>map.cpp
    2>language.cpp
    2>ghostdbsqlite.cpp
    2>ghostdbmysql.cpp
    2>ghostdb.cpp
    2>ghost.cpp
    2>.\ghost.cpp(51) : fatal error C1083: Не удается открыть файл include: boost/algorithm/string/replace.hpp: No such file or directory
    2>gameslot.cpp
    2>gameprotocol.cpp
    2>gameplayer.cpp
    2>game_base.cpp
    2>game_admin.cpp
    2>.\game_admin.cpp(39) : fatal error C1083: Не удается открыть файл include: boost/filesystem.hpp: No such file or directory
    2>Компиляция...
    2>game.cpp
    2>csvparser.cpp
    2>crc32.cpp
    2>config.cpp
    2>commandpacket.cpp
    2>bnlsprotocol.cpp
    2>bnlsclient.cpp
    2>bnetprotocol.cpp
    2>bnet.cpp
    2>.\bnet.cpp(46) : fatal error C1083: Не удается открыть файл include: boost/filesystem.hpp: No such file or directory
    2>bncsutilinterface.cpp
    2>Журнал построения был сохранен в "file://c:\Documents and Settings\Administrator\Desktop\111\ghost\Release\BuildLog.htm"
    2>ghost - ошибок 3, предупреждений 0
    ========== Построение: успешно: 1, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
    
    вот еще один вариант.
    А как прописать этот фаил в компилятор?
    Компилятор же это перевод программы на машиный код и проверка правельности кода.
    Может всетаки запишеш видео про перевод.
  15. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Незнаю незнаю откуда он там появился.
  16. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Инструкция по компиляции ТУТ
  17. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Все разобрался в чем проблема, спосибо.
    Все дело было в том что у меня небыло еще одного файла под именем "Либы" как поставил его так все начало работать.
    Еще раз блогодарю.

    А не скажеш что за проект ты счас выполняешь с гхостом что так занят может меня тоже заинтересует???
  18. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Незнаю насколоко он секретный, может никто не должен знать стуть проекта, поговорю с моим напарником, если нету особых секретов то опишу =)
  19. Irehon Ньюфаг

    Сообщения:
    32
    Спасибы:
    0
    Ну хотя что можеш расказать раскажи?
    А таким образом можно весю программу перевести на русский язык.
  20. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Ну основы русификации я уже описал, дальше сами думайте - просто если всё описывать то тут возможно не хватит места хостинга сайта =))) т.к. там тысячи строк править для полной русификации =)
Статус темы:
Закрыта.