Merge branch 'dev' of github:colobot/colobot into dev
commit
03f232f0f6
|
@ -7,6 +7,32 @@ cmake_minimum_required(VERSION 2.8)
|
|||
|
||||
project(colobot C CXX)
|
||||
|
||||
##
|
||||
# Project version
|
||||
##
|
||||
set(COLOBOT_VERSION_CODENAME "Gold")
|
||||
set(COLOBOT_VERSION_MAJOR 0)
|
||||
set(COLOBOT_VERSION_MINOR 1)
|
||||
set(COLOBOT_VERSION_REVISION 0)
|
||||
|
||||
# Comment out when releasing
|
||||
set(COLOBOT_VERSION_UNRELEASED "~pre-alpha")
|
||||
|
||||
# Append git characteristics to version
|
||||
if(DEFINED COLOBOT_VERSION_UNRELEASED AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
find_package(Git)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
|
||||
OUTPUT_VARIABLE GIT_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(COLOBOT_VERSION_UNRELEASED "${COLOBOT_VERSION_UNRELEASED}-git-${GIT_BRANCH}~r${GIT_REVISION}")
|
||||
endif()
|
||||
|
||||
set(COLOBOT_VERSION_FULL "${COLOBOT_VERSION_MAJOR}.${COLOBOT_VERSION_MINOR}.${COLOBOT_VERSION_REVISION}${COLOBOT_VERSION_UNRELEASED}")
|
||||
message(STATUS "Building Colobot \"${COLOBOT_VERSION_CODENAME}\" (${COLOBOT_VERSION_FULL})")
|
||||
|
||||
# Include cmake directory with some additional scripts
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${colobot_SOURCE_DIR}/cmake")
|
||||
|
||||
|
|
135
src/app/app.cpp
135
src/app/app.cpp
|
@ -246,7 +246,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
else if (arg == "-help")
|
||||
{
|
||||
GetLogger()->Message("\n");
|
||||
GetLogger()->Message("COLOBOT GOLD pre-alpha\n");
|
||||
GetLogger()->Message("Colobot %s (%s)\n",COLOBOT_CODENAME,COLOBOT_VERSION);
|
||||
GetLogger()->Message("\n");
|
||||
GetLogger()->Message("List of available options:\n");
|
||||
GetLogger()->Message(" -help this help\n");
|
||||
|
@ -285,48 +285,7 @@ bool CApplication::Create()
|
|||
return false;
|
||||
}
|
||||
|
||||
/* Gettext initialization */
|
||||
|
||||
std::string locale = "";
|
||||
switch (m_language)
|
||||
{
|
||||
default:
|
||||
case LANGUAGE_ENV:
|
||||
locale = "";
|
||||
break;
|
||||
|
||||
case LANGUAGE_ENGLISH:
|
||||
locale = "en_US.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_GERMAN:
|
||||
locale = "de_DE.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_FRENCH:
|
||||
locale = "fr_FR.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_POLISH:
|
||||
locale = "pl_PL.utf8";
|
||||
break;
|
||||
}
|
||||
|
||||
if (!locale.empty())
|
||||
{
|
||||
std::string langStr = "LANG=";
|
||||
langStr += locale;
|
||||
strcpy(S_LANGUAGE, langStr.c_str());
|
||||
putenv(S_LANGUAGE);
|
||||
}
|
||||
setlocale(LC_ALL, "");
|
||||
GetLogger()->Debug("Set locale to '%s'\n", locale.c_str());
|
||||
|
||||
bindtextdomain("colobot", COLOBOT_I18N_DIR);
|
||||
bind_textdomain_codeset("colobot", "UTF-8");
|
||||
textdomain("colobot");
|
||||
|
||||
GetLogger()->Debug("Testing gettext translation: '%s'\n", gettext("Colobot rules!"));
|
||||
SetLanguage(m_language);
|
||||
|
||||
//Create the sound instance.
|
||||
if (!GetProfile().InitCurrentDirectory())
|
||||
|
@ -1453,9 +1412,99 @@ Language CApplication::GetLanguage()
|
|||
return m_language;
|
||||
}
|
||||
|
||||
char CApplication::GetLanguageChar()
|
||||
{
|
||||
char langChar = 'E';
|
||||
switch (m_language)
|
||||
{
|
||||
default:
|
||||
case LANGUAGE_ENV:
|
||||
case LANGUAGE_ENGLISH:
|
||||
langChar = 'E';
|
||||
break;
|
||||
|
||||
case LANGUAGE_GERMAN:
|
||||
langChar = 'D';
|
||||
break;
|
||||
|
||||
case LANGUAGE_FRENCH:
|
||||
langChar = 'F';
|
||||
break;
|
||||
|
||||
case LANGUAGE_POLISH:
|
||||
langChar = 'P';
|
||||
break;
|
||||
}
|
||||
return langChar;
|
||||
}
|
||||
|
||||
void CApplication::SetLanguage(Language language)
|
||||
{
|
||||
m_language = language;
|
||||
|
||||
/* Gettext initialization */
|
||||
|
||||
std::string locale = "";
|
||||
switch (m_language)
|
||||
{
|
||||
default:
|
||||
case LANGUAGE_ENV:
|
||||
locale = "";
|
||||
break;
|
||||
|
||||
case LANGUAGE_ENGLISH:
|
||||
locale = "en_US.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_GERMAN:
|
||||
locale = "de_DE.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_FRENCH:
|
||||
locale = "fr_FR.utf8";
|
||||
break;
|
||||
|
||||
case LANGUAGE_POLISH:
|
||||
locale = "pl_PL.utf8";
|
||||
break;
|
||||
}
|
||||
|
||||
if (locale.empty())
|
||||
{
|
||||
char *envLang = getenv("LANGUAGE");
|
||||
if (strncmp(envLang,"en",2) == 0)
|
||||
{
|
||||
m_language = LANGUAGE_ENGLISH;
|
||||
}
|
||||
else if (strncmp(envLang,"de",2) == 0)
|
||||
{
|
||||
m_language = LANGUAGE_GERMAN;
|
||||
}
|
||||
else if (strncmp(envLang,"fr",2) == 0)
|
||||
{
|
||||
m_language = LANGUAGE_FRENCH;
|
||||
}
|
||||
else if (strncmp(envLang,"po",2) == 0)
|
||||
{
|
||||
m_language = LANGUAGE_POLISH;
|
||||
}
|
||||
GetLogger()->Trace("SetLanguage: Inherit LANGUAGE=%s from environment\n", envLang);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string langStr = "LANGUAGE=";
|
||||
langStr += locale;
|
||||
strcpy(S_LANGUAGE, langStr.c_str());
|
||||
putenv(S_LANGUAGE);
|
||||
GetLogger()->Trace("SetLanguage: Set LANGUAGE=%s in environment\n", locale.c_str());
|
||||
}
|
||||
setlocale(LC_ALL, "");
|
||||
|
||||
bindtextdomain("colobot", COLOBOT_I18N_DIR);
|
||||
bind_textdomain_codeset("colobot", "UTF-8");
|
||||
textdomain("colobot");
|
||||
|
||||
GetLogger()->Debug("SetLanguage: Test gettext translation: '%s'\n", gettext("Colobot rules!"));
|
||||
}
|
||||
|
||||
void CApplication::SetLowCPU(bool low)
|
||||
|
|
|
@ -294,6 +294,7 @@ public:
|
|||
//! Management of language
|
||||
//@{
|
||||
Language GetLanguage();
|
||||
char GetLanguageChar();
|
||||
void SetLanguage(Language language);
|
||||
//@}
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
#cmakedefine USE_GLEW @USE_GLEW@
|
||||
#cmakedefine GLEW_STATIC
|
||||
|
||||
#define COLOBOT_VERSION "@COLOBOT_VERSION_FULL@"
|
||||
#define COLOBOT_CODENAME "@COLOBOT_VERSION_CODENAME@"
|
||||
#define COLOBOT_FULLNAME "Colobot @COLOBOT_VERSION_CODENAME@"
|
||||
|
||||
#define COLOBOT_DEFAULT_DATADIR "@COLOBOT_INSTALL_DATA_DIR@"
|
||||
#define COLOBOT_I18N_DIR "@COLOBOT_INSTALL_I18N_DIR@"
|
||||
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
#include "common/restext.h"
|
||||
|
||||
#include "common/config.h"
|
||||
|
||||
#include "common/global.h"
|
||||
#include "common/event.h"
|
||||
#include "common/logger.h"
|
||||
|
@ -39,7 +41,7 @@ const char* stringsCbot[TX_MAX] = { nullptr };
|
|||
|
||||
void InitializeRestext()
|
||||
{
|
||||
stringsText[RT_VERSION_ID] = "Colobot Gold";
|
||||
stringsText[RT_VERSION_ID] = COLOBOT_FULLNAME;
|
||||
|
||||
stringsText[RT_DISINFO_TITLE] = "SatCom";
|
||||
stringsText[RT_WINDOW_MAXIMIZED] = "Maximize";
|
||||
|
|
|
@ -53,6 +53,7 @@ if(POD2MAN)
|
|||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${PM_PODFILE}
|
||||
COMMAND ${POD2MAN} ARGS --section=${COLOBOT_MANPAGE_SECTION}
|
||||
--center="Colobot" --stderr --utf8
|
||||
--release="${COLOBOT_VERSION_FULL}"
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${PM_PODFILE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
|
||||
COMMENT "Create ${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION} manpage"
|
||||
|
|
|
@ -3808,16 +3808,16 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: language letters
|
||||
sprintf(op, "Title.%c", 'E' /*GetLanguageLetter()*/);
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Title.%c", m_app->GetLanguageChar());
|
||||
if (Cmd(line, op) && !resetObject)
|
||||
OpString(line, "text", m_title);
|
||||
|
||||
sprintf(op, "Resume.%c", 'E' /*GetLanguageLetter()*/);
|
||||
sprintf(op, "Resume.%c", m_app->GetLanguageChar());
|
||||
if (Cmd(line, op) && !resetObject)
|
||||
OpString(line, "text", m_resume);
|
||||
|
||||
sprintf(op, "ScriptName.%c", 'E' /*GetLanguageLetter()*/);
|
||||
sprintf(op, "ScriptName.%c", m_app->GetLanguageChar());
|
||||
if (Cmd(line, op) && !resetObject)
|
||||
OpString(line, "text", m_scriptName);
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-27 13:53+0100\n"
|
||||
"POT-Creation-Date: 2012-12-27 17:09+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -20,9 +20,6 @@ msgstr ""
|
|||
msgid "Colobot rules!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Colobot Gold"
|
||||
msgstr ""
|
||||
|
||||
msgid "SatCom"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-27 13:53+0100\n"
|
||||
"POT-Creation-Date: 2012-12-27 17:09+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
@ -378,9 +378,6 @@ msgstr "Schließen"
|
|||
msgid "Closing bracket missing "
|
||||
msgstr "Es fehlt eine geschlossene Klammer \")\""
|
||||
|
||||
msgid "Colobot Gold"
|
||||
msgstr "Colobot Gold"
|
||||
|
||||
msgid "Colobot rules!"
|
||||
msgstr "Colobot ist wunderbar!"
|
||||
|
||||
|
|
11
src/po/fr.po
11
src/po/fr.po
|
@ -2,16 +2,16 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-27 13:53+0100\n"
|
||||
"POT-Creation-Date: 2012-12-27 17:09+0100\n"
|
||||
"PO-Revision-Date: 2012-12-27 14:07+0100\n"
|
||||
"Last-Translator: Didier Raboud <odyx@debian.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Language: fr_FR\n"
|
||||
"X-Source-Language: en_US\n"
|
||||
"Last-Translator: Didier Raboud <odyx@debian.org>\n"
|
||||
"PO-Revision-Date: 2012-12-27 14:07+0100\n"
|
||||
"Language: fr\n"
|
||||
"X-Generator: Lokalize 1.4\n"
|
||||
|
||||
msgid " "
|
||||
|
@ -378,9 +378,6 @@ msgstr "Fermer"
|
|||
msgid "Closing bracket missing "
|
||||
msgstr "Il manque une parenthèse fermante"
|
||||
|
||||
msgid "Colobot Gold"
|
||||
msgstr "Colobot Gold"
|
||||
|
||||
msgid "Colobot rules!"
|
||||
msgstr "Colobot est super!"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-27 13:53+0100\n"
|
||||
"POT-Creation-Date: 2012-12-27 17:09+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
@ -380,9 +380,6 @@ msgstr "Zamknij"
|
|||
msgid "Closing bracket missing "
|
||||
msgstr "Brak nawiasu zamykającego"
|
||||
|
||||
msgid "Colobot Gold"
|
||||
msgstr "Colobot Gold"
|
||||
|
||||
msgid "Colobot rules!"
|
||||
msgstr "Colobot rządzi!"
|
||||
|
||||
|
|
|
@ -4305,8 +4305,8 @@ void CMainDialog::IOReadName()
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: language letters
|
||||
sprintf(op, "Title.%c", 'E' /*MAX_FNAME()*/ );
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Title.%c", m_app->GetLanguageChar() );
|
||||
if ( Cmd(line, op) )
|
||||
{
|
||||
OpString(line, "resume", resume);
|
||||
|
@ -4701,8 +4701,8 @@ void CMainDialog::UpdateSceneChap(int &chap)
|
|||
}
|
||||
}
|
||||
|
||||
/* TODO: language letters */
|
||||
sprintf(op, "Title.%c", 'E' /*GetLanguageLetter()*/);
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Title.%c", m_app->GetLanguageChar());
|
||||
if ( Cmd(line, op) )
|
||||
{
|
||||
OpString(line, "text", name);
|
||||
|
@ -4748,8 +4748,8 @@ void CMainDialog::UpdateSceneChap(int &chap)
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: language letters
|
||||
sprintf(op, "Title.%c", 'E'/*GetLanguageLetter()*/);
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Title.%c", m_app->GetLanguageChar());
|
||||
if ( Cmd(line, op) )
|
||||
{
|
||||
OpString(line, "text", name);
|
||||
|
@ -4851,8 +4851,8 @@ void CMainDialog::UpdateSceneList(int chap, int &sel)
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: language letters
|
||||
sprintf(op, "Title.%c", 'E' /*MAX_FNAME()*/);
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Title.%c", m_app->GetLanguageChar());
|
||||
if ( Cmd(line, op) )
|
||||
{
|
||||
OpString(line, "text", name);
|
||||
|
@ -4996,8 +4996,8 @@ void CMainDialog::UpdateSceneResume(int rank)
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: language letters
|
||||
sprintf(op, "Resume.%c", 'E' /*MAX_FNAME()*/);
|
||||
// TODO: Fallback to an non-localized entry
|
||||
sprintf(op, "Resume.%c", m_app->GetLanguageChar());
|
||||
if ( Cmd(line, op) )
|
||||
{
|
||||
OpString(line, "text", name);
|
||||
|
|
Loading…
Reference in New Issue