summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2013-01-04 00:05:28 +0100
committerPiotr Dziwinski <piotrdz@gmail.com>2013-01-04 00:05:28 +0100
commit89a3f586a224328b430ba2483ce5c12b33709c6a (patch)
tree691e1da1e297f7ea9045be5454747ca454680cb2
parentc9335534d6bc7a59dbabf6976d41fd1e5edc8ab3 (diff)
parent1d42c71645548ae86b438c84898a07b539f262ac (diff)
downloadcolobot-89a3f586a224328b430ba2483ce5c12b33709c6a.tar.gz
colobot-89a3f586a224328b430ba2483ce5c12b33709c6a.tar.bz2
colobot-89a3f586a224328b430ba2483ce5c12b33709c6a.zip
Merge branch 'dev' into dev-graphics
-rw-r--r--.gitignore3
-rw-r--r--.gitmodules3
-rw-r--r--.travis.yml8
-rw-r--r--CMakeLists.txt110
-rw-r--r--Doxyfile.in (renamed from Doxyfile)4
-rw-r--r--HOWTO-MXE.txt4
-rw-r--r--HOWTO.txt15
-rw-r--r--README.md (renamed from README.txt)58
-rw-r--r--cmake/mxe.cmake2
m---------data0
-rw-r--r--lib/gmock/CMakeLists.txt6
-rw-r--r--lib/gmock/COPYING.txt (renamed from lib/gtest/COPYING.txt)0
-rw-r--r--lib/gmock/README.txt5
-rw-r--r--lib/gmock/include/gmock/gmock-actions.h (renamed from lib/gtest/include/gmock/gmock-actions.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-cardinalities.h (renamed from lib/gtest/include/gmock/gmock-cardinalities.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-actions.h (renamed from lib/gtest/include/gmock/gmock-generated-actions.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-actions.h.pump (renamed from lib/gtest/include/gmock/gmock-generated-actions.h.pump)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-function-mockers.h (renamed from lib/gtest/include/gmock/gmock-generated-function-mockers.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-function-mockers.h.pump (renamed from lib/gtest/include/gmock/gmock-generated-function-mockers.h.pump)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-matchers.h (renamed from lib/gtest/include/gmock/gmock-generated-matchers.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-matchers.h.pump (renamed from lib/gtest/include/gmock/gmock-generated-matchers.h.pump)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-nice-strict.h (renamed from lib/gtest/include/gmock/gmock-generated-nice-strict.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-generated-nice-strict.h.pump (renamed from lib/gtest/include/gmock/gmock-generated-nice-strict.h.pump)0
-rw-r--r--lib/gmock/include/gmock/gmock-matchers.h (renamed from lib/gtest/include/gmock/gmock-matchers.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-more-actions.h (renamed from lib/gtest/include/gmock/gmock-more-actions.h)0
-rw-r--r--lib/gmock/include/gmock/gmock-spec-builders.h (renamed from lib/gtest/include/gmock/gmock-spec-builders.h)0
-rw-r--r--lib/gmock/include/gmock/gmock.h (renamed from lib/gtest/include/gmock/gmock.h)0
-rw-r--r--lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h (renamed from lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h)0
-rw-r--r--lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h.pump (renamed from lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h.pump)0
-rw-r--r--lib/gmock/include/gmock/internal/gmock-internal-utils.h (renamed from lib/gtest/include/gmock/internal/gmock-internal-utils.h)0
-rw-r--r--lib/gmock/include/gmock/internal/gmock-port.h (renamed from lib/gtest/include/gmock/internal/gmock-port.h)0
-rw-r--r--lib/gmock/src/gmock-all.cc (renamed from lib/gtest/src/gmock-all.cc)0
-rw-r--r--lib/gmock/src/gmock-cardinalities.cc (renamed from lib/gtest/src/gmock-cardinalities.cc)0
-rw-r--r--lib/gmock/src/gmock-internal-utils.cc (renamed from lib/gtest/src/gmock-internal-utils.cc)0
-rw-r--r--lib/gmock/src/gmock-matchers.cc (renamed from lib/gtest/src/gmock-matchers.cc)0
-rw-r--r--lib/gmock/src/gmock-spec-builders.cc (renamed from lib/gtest/src/gmock-spec-builders.cc)0
-rw-r--r--lib/gmock/src/gmock.cc (renamed from lib/gtest/src/gmock.cc)0
-rw-r--r--lib/gmock/src/gmock_main.cc (renamed from lib/gtest/src/gmock_main.cc)0
-rw-r--r--lib/gtest/CMakeLists.txt1
-rw-r--r--lib/gtest/README-gtest.txt424
-rw-r--r--lib/gtest/README.txt429
-rw-r--r--src/CBot/CBotString.cpp54
-rw-r--r--src/CBot/CMakeLists.txt3
-rw-r--r--src/CBot/tests/CBot_console/CMakeLists.txt9
-rw-r--r--src/CMakeLists.txt39
-rw-r--r--src/app/app.cpp209
-rw-r--r--src/app/app.h14
-rw-r--r--src/common/config.h.cmake11
-rw-r--r--src/common/global.h2
-rw-r--r--src/common/image.cpp4
-rw-r--r--src/common/restext.cpp4
-rw-r--r--src/common/test/CMakeLists.txt9
-rw-r--r--src/desktop/.gitignore1
-rw-r--r--src/desktop/CMakeLists.txt97
-rw-r--r--src/desktop/colobot.desktop.in6
-rw-r--r--src/desktop/colobot.ini3
-rw-r--r--src/desktop/colobot.pod47
-rw-r--r--src/desktop/colobot.svg238
-rwxr-xr-xsrc/desktop/create_desktop_file.sh18
-rw-r--r--src/desktop/po/colobot-desktop.pot134
-rw-r--r--src/desktop/po/fr.po153
-rw-r--r--src/desktop/po4a.cfg4
-rw-r--r--src/graphics/engine/test/CMakeLists.txt9
-rw-r--r--src/graphics/engine/text.cpp2
-rw-r--r--src/graphics/opengl/test/CMakeLists.txt7
-rw-r--r--src/math/test/CMakeLists.txt9
-rw-r--r--src/object/brain.cpp27
-rw-r--r--src/object/robotmain.cpp12
-rw-r--r--src/object/task/taskgoto.cpp4
-rw-r--r--src/plugins/plugininterface.h65
-rw-r--r--src/plugins/pluginloader.cpp124
-rw-r--r--src/plugins/pluginloader.h87
-rw-r--r--src/plugins/pluginmanager.cpp132
-rw-r--r--src/plugins/pluginmanager.h87
-rw-r--r--src/plugins/test/CMakeLists.txt12
-rw-r--r--src/plugins/test/colobot.ini3
-rw-r--r--src/plugins/test/manager_test.cpp31
-rw-r--r--src/po/CMakeLists.txt18
-rw-r--r--src/po/colobot.pot1818
-rw-r--r--src/po/de.po2684
-rw-r--r--src/po/fr.po2688
-rw-r--r--src/po/pl.po2705
-rw-r--r--src/script/script.cpp47
-rw-r--r--src/sound/oalsound/alsound.cpp (renamed from src/sound/plugins/oalsound/alsound.cpp)70
-rw-r--r--src/sound/oalsound/alsound.h (renamed from src/sound/plugins/oalsound/alsound.h)10
-rw-r--r--src/sound/oalsound/buffer.cpp (renamed from src/sound/plugins/oalsound/buffer.cpp)4
-rw-r--r--src/sound/oalsound/buffer.h (renamed from src/sound/plugins/oalsound/buffer.h)0
-rw-r--r--src/sound/oalsound/channel.cpp (renamed from src/sound/plugins/oalsound/channel.cpp)26
-rw-r--r--src/sound/oalsound/channel.h (renamed from src/sound/plugins/oalsound/channel.h)0
-rw-r--r--src/sound/oalsound/check.h (renamed from src/sound/plugins/oalsound/check.h)0
-rw-r--r--src/sound/plugins/oalsound/CMakeLists.txt23
-rw-r--r--src/sound/plugins/oalsound/test/CMakeLists.txt11
-rw-r--r--src/sound/plugins/oalsound/test/plugin_test.cpp40
-rw-r--r--src/sound/sound.h6
-rw-r--r--src/ui/edit.cpp60
-rw-r--r--src/ui/edit.h2
-rw-r--r--src/ui/maindialog.cpp152
-rw-r--r--src/ui/test/CMakeLists.txt10
98 files changed, 7741 insertions, 5375 deletions
diff --git a/.gitignore b/.gitignore
index 4f78a85..bc2649c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,6 @@
# Ignore the documentation folder
/doc
-# We don't want anyone to checkin /data folder
-/data
-
# Ignore local data
/colobot.ini
/savegame
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..2e2b0cc
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "data"]
+ path = data
+ url = git://github.com/colobot/colobot-data.git
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..660a2f5
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,8 @@
+language: cpp
+compiler:
+ - gcc
+script: cmake . -DCMAKE_VERBOSE_MAKEFILE=ON && make all doc test
+before_install:
+ - git submodule update --init --recursive
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7090d2d..399ae96 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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")
@@ -16,12 +42,15 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${colobot_SOURCE_DIR}/cmake")
##
# Global build type
-set(CMAKE_BUILD_TYPE debug)
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif()
# Global compile flags
# These are specific to GCC/MinGW; for other compilers, change as necessary
-set(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wall -Wold-style-cast -std=gnu++0x")
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
# Asserts can be enabled/disabled regardless of build type
option(ASSERTS "Enable assert()s" ON)
@@ -32,6 +61,11 @@ option(TESTS "Enable tests" ON)
# CBot can also be a static library
option(CBOT_STATIC "Build CBot as static libary" OFF)
+# Doxygen docs are optional for installation
+option(INSTALL_DOCS "Install Doxygen-generated documentation" OFF)
+
+# Build openal sound support
+option(OPENAL_SOUND "Build openal sound support" OFF)
##
# Required packages
@@ -42,6 +76,7 @@ find_package(SDL 1.2.10 REQUIRED)
find_package(SDL_image 1.2 REQUIRED)
find_package(SDL_ttf 2.0 REQUIRED)
find_package(PNG 1.2 REQUIRED)
+find_package(Gettext REQUIRED)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
@@ -118,7 +153,22 @@ if(${TESTS})
add_definitions(-DTEST_VIRTUAL=virtual)
enable_testing()
else()
- add_definitions(-DTEST_VIRTUAL)
+ add_definitions(-DTEST_VIRTUAL=)
+endif()
+
+
+##
+# Doxygen docs
+##
+
+find_package(Doxygen)
+
+if(DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
+ add_custom_target(doc
+ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif()
@@ -128,11 +178,57 @@ endif()
if(${TESTS})
# Google Test library
- set(GTEST_DIR "${colobot_SOURCE_DIR}/lib/gtest")
- add_subdirectory(lib/gtest bin/test)
+ find_path(GTEST_SRC_DIR NAMES src/gtest.cc src/gtest-all.cc PATHS /usr/src PATH_SUFFIXES gtest)
+ find_path(GTEST_INCLUDE_DIR gtest/gtest.h PATHS /usr/include)
+ if(GTEST_SRC_DIR AND GTEST_INCLUDE_DIR)
+ message(STATUS "Using system gtest library in ${GTEST_SRC_DIR}")
+ else()
+ message(STATUS "Using bundled gtest library")
+ set(GTEST_SRC_DIR ${colobot_SOURCE_DIR}/lib/gtest)
+ set(GTEST_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gtest/include)
+ endif()
+
+ add_subdirectory(${GTEST_SRC_DIR} bin/gtest)
+
+ # Google Mock library
+ find_path(GMOCK_SRC_DIR NAMES src/gmock.cc src/gmock-all.cc PATHS /usr/src PATH_SUFFIXES gmock)
+ find_path(GMOCK_INCLUDE_DIR gmock/gmock.h PATHS /usr/include)
+ if(GMOCK_SRC_DIR AND GMOCK_INCLUDE_DIR)
+ message(STATUS "Using system gmock library in ${GMOCK_SRC_DIR}")
+
+ include_directories(${GMOCK_SRC_DIR})
+ # gmock-all.cc includes all other sources
+ add_library(gmock STATIC ${GMOCK_SRC_DIR}/src/gmock-all.cc)
+ else()
+ message(STATUS "Using bundled gmock library")
+ set(GMOCK_SRC_DIR ${colobot_SOURCE_DIR}/lib/gmock)
+ set(GMOCK_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/gmock/include)
+ add_subdirectory(${GMOCK_SRC_DIR} bin/gmock)
+ endif()
+
endif()
+# Installation paths defined before compiling sources
+set(COLOBOT_INSTALL_BIN_DIR games CACHE PATH "Colobot binary directory")
+set(COLOBOT_INSTALL_DATA_DIR share/games/colobot CACHE PATH "Colobot shared data directory")
+set(COLOBOT_INSTALL_LIB_DIR lib/colobot CACHE PATH "Colobot libraries directory")
+set(COLOBOT_INSTALL_DOC_DIR share/doc/colobot CACHE PATH "Colobot documentation directory")
+set(COLOBOT_INSTALL_I18N_DIR share/locale CACHE PATH "Colobot translations directory")
+
# Subdirectory with sources
add_subdirectory(src bin)
-INSTALL_FILES(/share/games/colobot ../data)
+
+##
+# Installation
+##
+
+file(GLOB DATA_FILES "data/*")
+
+# Data
+install(DIRECTORY data/ DESTINATION ${COLOBOT_INSTALL_DATA_DIR})
+
+# Documentation
+if(INSTALL_DOCS AND DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)
+ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${COLOBOT_INSTALL_DOC_DIR} OPTIONAL)
+endif()
diff --git a/Doxyfile b/Doxyfile.in
index 8c5fffe..028e5de 100644
--- a/Doxyfile
+++ b/Doxyfile.in
@@ -665,8 +665,8 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = "src" \
- "src/CBot"
+INPUT = "@CMAKE_CURRENT_SOURCE_DIR@/src" \
+ "@CMAKE_CURRENT_SOURCE_DIR@/src/CBot"
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
diff --git a/HOWTO-MXE.txt b/HOWTO-MXE.txt
index 7b93143..67107bd 100644
--- a/HOWTO-MXE.txt
+++ b/HOWTO-MXE.txt
@@ -13,7 +13,7 @@ libraries and tools.
so moving that directory can be tricky.
3. `cd' to the MXE root directory.
- It already contains a univeral Makefile for everything.
+ It already contains a universal Makefile for everything.
Usage is simply `make [name_of_package]'.
It will automatically check for dependencies, etc.
The packages will be installed in the MXE directory in usr/.
@@ -61,4 +61,4 @@ libraries and tools.
The exe is linked against all libraries *statically*, so there are no dependencies
on external dlls. However, the resulting binary will be huge with all these libraries,
so you should `strip bin/colobot.exe'.
-
+
diff --git a/HOWTO.txt b/HOWTO.txt
index 9e71bce..c547939 100644
--- a/HOWTO.txt
+++ b/HOWTO.txt
@@ -20,7 +20,7 @@ How to...
http://www.cmake.org/cmake/resources/software.html (the Windows zip file)
Unpack the contents of the archive to where MinGW is installed (files from bin/ should go into bin/, etc.)
3. Download the following libraries, installing them in your MinGW directory like with CMake:
- SDL >=1.2.10, SDL_imgage >= 1.2, SDL_ttf >= 2.0, libpng >= 1.2, GLEW >= 1.8.0, Boost >= 1.51 (with filesystem)
+ SDL >=1.2.10, SDL_image >= 1.2, SDL_ttf >= 2.0, libpng >= 1.2, GLEW >= 1.8.0, Boost >= 1.51 (with filesystem)
Note #1: For most libraries, you can download binary packages with compiled files.
However, you must ensure that they work with MinGW as some are built with MSVC
and may be incompatible. If that is the case, you should compile the libraries from sources
@@ -37,7 +37,7 @@ How to...
Since you're running Linux, you probably know how to do this anyway ;)
But just in case, here's what you need:
- gcc compiler (with gcc-g++), cmake, libraries with header files: SDL, SDL_image, SDL_ttf, libpng
+ gcc compiler (with gcc-g++), cmake, libraries with header files: SDL, SDL_image, SDL_ttf, libpng, boost
Instructions are the same:
$ cmake .
$ make
@@ -66,7 +66,7 @@ Jak...
1.1 Windows:
- CROSS-KOMPILACJA: zobacz plik HOWTO-MXE.txt z instrukcjami jak cross-skompilować projekt używając
+ CROSS-KOMPILACJA: zobacz plik HOWTO-MXE.txt z instrukcjami (po angielsku) jak cross-skompilować projekt używając
MXE (http://mxe.cc/).
UWAGA: obecnie występują problemy z kompilacją na Windowsie, głównie ze względu na konflikt w makrach,
@@ -79,14 +79,13 @@ Jak...
2. Ściągamy i instalujemy CMake:
http://www.cmake.org/cmake/resources/software.html (plik zip dla Windowsa)
Zip rozpakowujemy do katalogu, gdzie zainstalowany jest MinGW (pliki z bin/ mają trafić do bin/ itd.).
- 3. Ścągamy następujące biblioteki i instalujemy je tam, gdzie MinGW, podobnie jak z CMake:
+ 3. Ściągamy następujące biblioteki i instalujemy je tam, gdzie MinGW, podobnie jak z CMake:
SDL >= 1.2.10, SDL_image >= 1.2, SDL_ttf >= 2.0, libpng >= 1.2, Boost >= 1.51 (wraz z filesystem)
Uwaga #1: W większości wymienionych bibliotek można ściągnąć paczki binarne ze skompilowanymi plikami.
Jednak musisz się upewnić, że pliki te będą współpracowały z MinGW, bo część z nich
jest kompilowana MSVC i może być niezgodna. W takim wypadku, musisz skompilować bibliotekę
ze źródeł pod MinGW.
-
- Uwaga #2: W przypadku GLEW, musisz skompilować bibiotekę ze źródeł pod MinGW. Ponieważ nie ma skryptu
+ Uwaga #2: W przypadku GLEW, musisz skompilować bibliotekę ze źródeł pod MinGW. Ponieważ nie ma skryptu
make do tego, użyj poleceń opisanych tutaj: http://stackoverflow.com/questions/6005076/
4. Uruchamiamy MinGW console ze skrótu w menu start.
5. Przechodzimy do katalogu, gdzie są źródła wpisując "cd /c/tam/gdzie/sa/zrodla"
@@ -96,9 +95,9 @@ Jak...
1.2 Linux:
- Skoro już masz Linuksa, to prawdpobodobnie wiesz co robić ;)
+ Skoro już masz Linuksa, to prawdopodobnie wiesz co robić ;)
Ale na wszelki wypadek, potrzebujesz tego:
- kompilator gcc (razem z gcc-g++), cmake, biblioteki wraz z nagłówkami: SDL, SDL_image, SDL_ttf, libpng
+ kompilator gcc (razem z gcc-g++), cmake, biblioteki wraz z nagłówkami: SDL, SDL_image, SDL_ttf, libpng, boost
Polecenia są takie same:
$ cmake .
$ make
diff --git a/README.txt b/README.md
index 071444b..994fce1 100644
--- a/README.txt
+++ b/README.md
@@ -1,87 +1,91 @@
-EN
+# English
-Welcome to Colobot project repository
+Welcome to the Colobot project code repository
-NOTE: this is the new repository which was moved here from https://github.com/adiblol/colobot. The new repository has been purged of binary files cluttering the history, so all commits have been overwritten. If you have been using the old repository, you have to clone from scratch the new one.
+> NOTE: this is the new repository which was moved here from https://github.com/adiblol/colobot. The new repository has been purged of binary files cluttering the history, so all commits have been overwritten. If you have been using the old repository, you have to clone from scratch the new one.
-This is official repository for the open-source Colobot project developed by Polish Portal of Colobot (PPC; Polish: Polski Portal Colobota) with the official site at: http://colobot.cba.pl/.
+This is official repository for the open-source Colobot project developed by Polish Portal of Colobot (PPC; in Polish: Polski Portal Colobota) with the official site at: http://colobot.info/.
The source code contained here was released by Epsitec -- the original creator of the game -- on open source (GPLv3) license. The code was given and the rights granted specifically to PPC community in March 2012. Since then, we have been modifying the code and working on our goals, which are briefly summed up below.
-More information for developers can be found at developer wiki at: http://colobot.info/wiki. However, the freshest source of information is our IRC channel #colobot at pirc.pl.
+More information for developers (in English) can be found on the [developer wiki](https://colobot.info/wiki/Dev:Main_Page). However, the freshest source of information is our IRC channels, see below.
-This repository contains only the source code of the project. The game requires also data files which are available in separate packages, currently from http://colobot.info/files. The packages are named colobot-data-YYYY-MM-DD.zip. Make sure you have the latest package before compiling and running the code in repository.
+This repository contains only the source code of the project. The game requires also data files which are available in separate packages, currently at http://colobot.info/files/. The packages are named colobot-data-YYYY-MM-DD.zip. Make sure you have the latest package before compiling and running the code in repository.
-Status
+## Status
Our main goals can be summed up in three milestones:
-Milestone 1 - Colobot Classic
+### Milestone 1 - Colobot Classic
-This is the original version of the game, as released to us by Epsitec with only minor changes and bugfixes. It is available as a tag named colobot-original in the repository. This version will not be developed further. The compiled version and data packs needed to run the game (split by language version) can be found at: http://colobot.info/files.
+This is the original version of the game, as released to us by Epsitec with only minor changes and bugfixes. It is available as a tag named colobot-original in the repository. This version will not be developed further. The compiled version and data packs needed to run the game (split by language version) can also be found at http://colobot.info/files/.
-Milestone 2 - Colobot Gold
+### Milestone 2 - Colobot Gold
This is a version of the game that is currently being developed in this repository. It is based on the original code, but refreshed and rewritten using SDL and OpenGL libraries, thus making it multiplatform.
-As of September 2012, we have rewritten almost all of the original code and we are in the process of testing and fixing issues that are still present in the game. The game runs and compiles under Windows and Linux. The master branch contains the current snapshot code which should always compile and run with the latest data pack. The dev branch and dev-* sub-branches are used for general development.
+As of September 2012, we have rewritten almost all of the original code and we are in the process of testing and fixing issues that are still present in the game. The game runs and compiles under Windows and Linux. The master branch contains the current snapshot code which should always compile and run with the latest data pack. The dev branch and dev-\* sub-branches are used for general development.
-Milestone 3 - Colobot 2
+### Milestone 3 - Colobot 2
This will be a new installment in the Colobot series. We have many ideas for the new game and we are still discussing them. Generally, the development of this version will begin only after finishing Colobot Gold (it will be probably hosted in another repository, forked off the Colobot Gold code).
-Compiling and running the game
+## Compiling and running the game
For these instructions see HOWTO.txt file.
-Contact
+## Contact
-If you want to help in the project, please contact us on our IRC channel #colobot at pirc.pl or the forum on our website: http://colobot.cba.pl/forum (there is also an English board). We're in the process of moving to a new site and forum so not all information on our old site is up-to-date, but we're be done soon.
+If you want to help in the project, please contact us on our IRC channels or the forum on our website: http://colobot.info/forum (Polish only). We're in the process of moving to a new site and forum so not all information on our old site is up-to-date, but we'll be done soon.
+### IRC channels
+* [#colobot on pirc.pl](irc://pirc.pl#colobot) in Polish;
+* [#colobot on Freenode](irc://freenode.net#colobot) in English;
-PL
+
+# PL
Witamy w repozytorium projektu Colobot
-UWAGA: to jest nowe repozytorium, które zostało przeniesione tu z https://github.com/adiblol/colobot. Nowe repozytorium zostało wyczyszczone z plików binarnych, które zostały w historii, więc wszystkie commity zostały nadpisane. Jeżeli korzystałeś/aś ze starego repozytorium, musisz sklonować od zera te nowe.
+> UWAGA: to jest nowe repozytorium, które zostało przeniesione tu z https://github.com/adiblol/colobot. Nowe repozytorium zostało wyczyszczone z plików binarnych, które zostały w historii, więc wszystkie commity zostały nadpisane. Jeżeli korzystałeś/aś ze starego repozytorium, musisz sklonować od zera te nowe.
-To jest oficjalne repozytorium z kodem projektu open-source Colobot rozwijanego przez Polski Portal Colobota (PPC; angielski: Polish Portal of Colobot) z oficjalną stroną: http://colobot.cba.pl/.
+To jest oficjalne repozytorium z kodem projektu open-source Colobot rozwijanego przez Polski Portal Colobota (PPC; po angielsku: Polish Portal of Colobot) z oficjalną stroną: http://colobot.info/.
Kod źródłowy zawarty tutaj został wydany przez Epsitec -- oryginalnego twórcę gry -- na otwartej licencji (GPLv3). Kod został wydany i prawa nadane specjalnie dla społeczności PPC w marcu 2012. Od tamtej pory, zajmujemy się modyfikowaniem kodu i pracowaniem nad naszymi celami, które są krótko podsumowane poniżej.
-Więcej informacji dla developerów projektu można znaleźć na wiki dla developerów: http://colobot.info/wiki. Jednak źródłem najświeższych informacji jest nasz kanał IRC #colobot na pirc.pl.
+Więcej informacji dla developerów projektu (po angielsku) można znaleźć na [wiki dla developerów](http://colobot.info/wiki/Dev:Main_Page). Jednak źródłem najświeższych informacji jest nasz kanał IRC #colobot na pirc.pl.
To repozytorium zawiera jedynie kod źródłowy projektu. Gra wymaga jeszcze plików danych, które są dostępne w osobnych paczkach, obecnie na stronie http://colobot.info/files. Paczki są nazwane colobot-data-RRRR-MM-DD.zip. Upewnij się, że masz najnowszą wersję paczki zanim skompilujesz i uruchomisz kod z repozytorium.
-Status
+## Status
Nasze główne cele można podsumować w trzech cel, które chcemy osiągnąć:
-Cel 1 - Colobot Classic
+### Cel 1 - Colobot Classic
To jest oryginalna wersja gry, dokładnie taka, jaką otrzymaliśmy od Epsiteca z jedynie niewielkimi zmianami i poprawkami. Jest dostępna jako tag nazwany colobot-original w repozytorium. Ta wersja nie będzie dalej rozwijana. Skompilowaną wersję wraz z potrzebnymi paczkami danych (podzielone wg wersji językowej) można pobrać z http://colobot.info/files.
-Cel 2 - Colobot Gold
+### Cel 2 - Colobot Gold
Jest to wersja gry, którą obecnie rozwijamy w tym repozytorium. Jest oparta na oryginalnym kodzie, ale odświeżonym i przepisanym z wykorzystaniem bibliotek SDL i OpenGL, czyniąc ją wieloplatformową.
-Do września 2012, przepisaliśmy prawie cały oryginalny kod i jesteśmy teraz w trakcie testowania i poprawiania błędów nadal obecnych w grze. Gałąź master zawiera obecny snapshot kodu, który powinien zawsze dać się skompilować i uruchomić z najnowszą paczką danych. Gałęzie dev i podgałęzie dev-* są wykorzystywane do ogólnego rozwoju.
+Do września 2012, przepisaliśmy prawie cały oryginalny kod i jesteśmy teraz w trakcie testowania i poprawiania błędów nadal obecnych w grze. Gałąź master zawiera obecny snapshot kodu, który powinien zawsze dać się skompilować i uruchomić z najnowszą paczką danych. Gałęzie dev i podgałęzie dev-\* są wykorzystywane do ogólnego rozwoju.
-Krok 3 - Colobot 2
+### Krok 3 - Colobot 2
To będzie nowa część z cyklu gier Colobot. Mamy wiele pomysłów na nową grę i nadal dyskutujemy nad nimi. Ogólnie, rozwój tej wersji zacznie się po skończeniu wersji Colobot Gold (prawdopodobnie będzie hostowane w osobnym repozytorium, sforkowanym z kodu Colobot Gold).
-Kompilacja i uruchomienie gry
+## Kompilacja i uruchomienie gry
Instrukcje te znajdują się w pliku HOWTO.txt.
-Kontakt
+## Kontakt
-Jeżeli chcesz pomóc w projekcie, prosimy o kontakt na naszym kanale IRC: #colobot na pirc.pl albo na forum na naszej stronie: http://colobot.cba.pl/forum. Jesteśmy teraz w trakcie przenoszenia strony i forum w nowe miejsce i nie wszystkie informacje na starej stronie są aktualne, ale już niedługo skończymy przenosiny.
+Jeżeli chcesz pomóc w projekcie, prosimy o kontakt na naszym kanale IRC: #colobot na pirc.pl (po polsku i angielsku) albo na forum na naszej stronie: http://colobot.info/forum (jedynie polski). Jesteśmy teraz w trakcie przenoszenia strony i forum w nowe miejsce i nie wszystkie informacje na starej stronie są aktualne, ale już niedługo skończymy przenosiny.
diff --git a/cmake/mxe.cmake b/cmake/mxe.cmake
index 4507a80..322ba4a 100644
--- a/cmake/mxe.cmake
+++ b/cmake/mxe.cmake
@@ -18,11 +18,11 @@ if((${CMAKE_CROSSCOMPILING}) AND (DEFINED MSYS))
${CMAKE_FIND_ROOT_PATH}/lib/libiconv.a
${CMAKE_FIND_ROOT_PATH}/lib/libglew32s.a
${CMAKE_FIND_ROOT_PATH}/lib/libfreetype.a
- ${CMAKE_FIND_ROOT_PATH}/lib/libltdl.a
${CMAKE_FIND_ROOT_PATH}/lib/libopengl32.a
${CMAKE_FIND_ROOT_PATH}/lib/libjpeg.a
${CMAKE_FIND_ROOT_PATH}/lib/libwinmm.a
${CMAKE_FIND_ROOT_PATH}/lib/libdxguid.a
+ ${CMAKE_FIND_ROOT_PATH}/lib/libbz2.a
)
else()
set(MXE 0)
diff --git a/data b/data
new file mode 160000
+Subproject 6b6e5a0ab56bf42f17d969c1bd4c09185605cad
diff --git a/lib/gmock/CMakeLists.txt b/lib/gmock/CMakeLists.txt
new file mode 100644
index 0000000..3fec0d3
--- /dev/null
+++ b/lib/gmock/CMakeLists.txt
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 2.8)
+
+include_directories(. include ${GTEST_INCLUDE_DIR})
+
+# gmock-all.cc includes all other sources
+add_library(gmock STATIC src/gmock-all.cc)
diff --git a/lib/gtest/COPYING.txt b/lib/gmock/COPYING.txt
index 1941a11..1941a11 100644
--- a/lib/gtest/COPYING.txt
+++ b/lib/gmock/COPYING.txt
diff --git a/lib/gmock/README.txt b/lib/gmock/README.txt
new file mode 100644
index 0000000..390886f
--- /dev/null
+++ b/lib/gmock/README.txt
@@ -0,0 +1,5 @@
+This directory contains part of distribution of Google Test (http://code.google.com/p/googletest/)
+ - a C++ framework for unit tests. There are source files, include headers and a custom CMakeLists.txt
+to compile static library. Only these files are kept from the official distribution as only
+they are necessary. For more info, see the original README file from gtest: REDME-gtest.txt.
+License info is kept in the original COPYING.txt.
diff --git a/lib/gtest/include/gmock/gmock-actions.h b/lib/gmock/include/gmock/gmock-actions.h
index d6a3e14..d6a3e14 100644
--- a/lib/gtest/include/gmock/gmock-actions.h
+++ b/lib/gmock/include/gmock/gmock-actions.h
diff --git a/lib/gtest/include/gmock/gmock-cardinalities.h b/lib/gmock/include/gmock/gmock-cardinalities.h
index 954a86e..954a86e 100644
--- a/lib/gtest/include/gmock/gmock-cardinalities.h
+++ b/lib/gmock/include/gmock/gmock-cardinalities.h
diff --git a/lib/gtest/include/gmock/gmock-generated-actions.h b/lib/gmock/include/gmock/gmock-generated-actions.h
index 635bb59..635bb59 100644
--- a/lib/gtest/include/gmock/gmock-generated-actions.h
+++ b/lib/gmock/include/gmock/gmock-generated-actions.h
diff --git a/lib/gtest/include/gmock/gmock-generated-actions.h.pump b/lib/gmock/include/gmock/gmock-generated-actions.h.pump
index 001fd7d..001fd7d 100644
--- a/lib/gtest/include/gmock/gmock-generated-actions.h.pump
+++ b/lib/gmock/include/gmock/gmock-generated-actions.h.pump
diff --git a/lib/gtest/include/gmock/gmock-generated-function-mockers.h b/lib/gmock/include/gmock/gmock-generated-function-mockers.h
index 509d46c..509d46c 100644
--- a/lib/gtest/include/gmock/gmock-generated-function-mockers.h
+++ b/lib/gmock/include/gmock/gmock-generated-function-mockers.h
diff --git a/lib/gtest/include/gmock/gmock-generated-function-mockers.h.pump b/lib/gmock/include/gmock/gmock-generated-function-mockers.h.pump
index 4f82d62..4f82d62 100644
--- a/lib/gtest/include/gmock/gmock-generated-function-mockers.h.pump
+++ b/lib/gmock/include/gmock/gmock-generated-function-mockers.h.pump
diff --git a/lib/gtest/include/gmock/gmock-generated-matchers.h b/lib/gmock/include/gmock/gmock-generated-matchers.h
index 6feaf1a..6feaf1a 100644
--- a/lib/gtest/include/gmock/gmock-generated-matchers.h
+++ b/lib/gmock/include/gmock/gmock-generated-matchers.h
diff --git a/lib/gtest/include/gmock/gmock-generated-matchers.h.pump b/lib/gmock/include/gmock/gmock-generated-matchers.h.pump
index 8c09444..8c09444 100644
--- a/lib/gtest/include/gmock/gmock-generated-matchers.h.pump
+++ b/lib/gmock/include/gmock/gmock-generated-matchers.h.pump
diff --git a/lib/gtest/include/gmock/gmock-generated-nice-strict.h b/lib/gmock/include/gmock/gmock-generated-nice-strict.h
index 6099e81..6099e81 100644
--- a/lib/gtest/include/gmock/gmock-generated-nice-strict.h
+++ b/lib/gmock/include/gmock/gmock-generated-nice-strict.h
diff --git a/lib/gtest/include/gmock/gmock-generated-nice-strict.h.pump b/lib/gmock/include/gmock/gmock-generated-nice-strict.h.pump
index b7964db..b7964db 100644
--- a/lib/gtest/include/gmock/gmock-generated-nice-strict.h.pump
+++ b/lib/gmock/include/gmock/gmock-generated-nice-strict.h.pump
diff --git a/lib/gtest/include/gmock/gmock-matchers.h b/lib/gmock/include/gmock/gmock-matchers.h
index c21fa51..c21fa51 100644
--- a/lib/gtest/include/gmock/gmock-matchers.h
+++ b/lib/gmock/include/gmock/gmock-matchers.h
diff --git a/lib/gtest/include/gmock/gmock-more-actions.h b/lib/gmock/include/gmock/gmock-more-actions.h
index fc5e5ca..fc5e5ca 100644
--- a/lib/gtest/include/gmock/gmock-more-actions.h
+++ b/lib/gmock/include/gmock/gmock-more-actions.h
diff --git a/lib/gtest/include/gmock/gmock-spec-builders.h b/lib/gmock/include/gmock/gmock-spec-builders.h
index 400d4d7..400d4d7 100644
--- a/lib/gtest/include/gmock/gmock-spec-builders.h
+++ b/lib/gmock/include/gmock/gmock-spec-builders.h
diff --git a/lib/gtest/include/gmock/gmock.h b/lib/gmock/include/gmock/gmock.h
index ba9fa28..ba9fa28 100644
--- a/lib/gtest/include/gmock/gmock.h
+++ b/lib/gmock/include/gmock/gmock.h
diff --git a/lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h b/lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h
index 1b52dce..1b52dce 100644
--- a/lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h
+++ b/lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h
diff --git a/lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h.pump b/lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h.pump
index 821e474..821e474 100644
--- a/lib/gtest/include/gmock/internal/gmock-generated-internal-utils.h.pump
+++ b/lib/gmock/include/gmock/internal/gmock-generated-internal-utils.h.pump
diff --git a/lib/gtest/include/gmock/internal/gmock-internal-utils.h b/lib/gmock/include/gmock/internal/gmock-internal-utils.h
index f0fd868..f0fd868 100644
--- a/lib/gtest/include/gmock/internal/gmock-internal-utils.h
+++ b/lib/gmock/include/gmock/internal/gmock-internal-utils.h
diff --git a/lib/gtest/include/gmock/internal/gmock-port.h b/lib/gmock/include/gmock/internal/gmock-port.h
index 3b9cc47..3b9cc47 100644
--- a/lib/gtest/include/gmock/internal/gmock-port.h
+++ b/lib/gmock/include/gmock/internal/gmock-port.h
diff --git a/lib/gtest/src/gmock-all.cc b/lib/gmock/src/gmock-all.cc
index 7aebce7..7aebce7 100644
--- a/lib/gtest/src/gmock-all.cc
+++ b/lib/gmock/src/gmock-all.cc
diff --git a/lib/gtest/src/gmock-cardinalities.cc b/lib/gmock/src/gmock-cardinalities.cc
index 1a7902b..1a7902b 100644
--- a/lib/gtest/src/gmock-cardinalities.cc
+++ b/lib/gmock/src/gmock-cardinalities.cc
diff --git a/lib/gtest/src/gmock-internal-utils.cc b/lib/gmock/src/gmock-internal-utils.cc
index dd38132..dd38132 100644
--- a/lib/gtest/src/gmock-internal-utils.cc
+++ b/lib/gmock/src/gmock-internal-utils.cc
diff --git a/lib/gtest/src/gmock-matchers.cc b/lib/gmock/src/gmock-matchers.cc
index a5e6824..a5e6824 100644
--- a/lib/gtest/src/gmock-matchers.cc
+++ b/lib/gmock/src/gmock-matchers.cc
diff --git a/lib/gtest/src/gmock-spec-builders.cc b/lib/gmock/src/gmock-spec-builders.cc
index aa33cc4..aa33cc4 100644
--- a/lib/gtest/src/gmock-spec-builders.cc
+++ b/lib/gmock/src/gmock-spec-builders.cc
diff --git a/lib/gtest/src/gmock.cc b/lib/gmock/src/gmock.cc
index 700bcb2..700bcb2 100644
--- a/lib/gtest/src/gmock.cc
+++ b/lib/gmock/src/gmock.cc
diff --git a/lib/gtest/src/gmock_main.cc b/lib/gmock/src/gmock_main.cc
index 9d8aea2..9d8aea2 100644
--- a/lib/gtest/src/gmock_main.cc
+++ b/lib/gmock/src/gmock_main.cc
diff --git a/lib/gtest/CMakeLists.txt b/lib/gtest/CMakeLists.txt
index 61813ae..1279f7d 100644
--- a/lib/gtest/CMakeLists.txt
+++ b/lib/gtest/CMakeLists.txt
@@ -7,4 +7,3 @@ add_definitions(-DGTEST_HAS_PTHREAD=0)
# gtest-all.cc includes all other sources
add_library(gtest STATIC src/gtest-all.cc)
-add_library(gmock STATIC src/gmock-all.cc)
diff --git a/lib/gtest/README-gtest.txt b/lib/gtest/README-gtest.txt
deleted file mode 100644
index 51a9376..0000000
--- a/lib/gtest/README-gtest.txt
+++ /dev/null
@@ -1,424 +0,0 @@
-Google C++ Testing Framework
-============================
-
-http://code.google.com/p/googletest/
-
-Overview
---------
-
-Google's framework for writing C++ tests on a variety of platforms
-(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the
-xUnit architecture. Supports automatic test discovery, a rich set of
-assertions, user-defined assertions, death tests, fatal and non-fatal
-failures, various options for running the tests, and XML test report
-generation.
-
-Please see the project page above for more information as well as the
-mailing list for questions, discussions, and development. There is
-also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
-join us!
-
-Requirements for End Users
---------------------------
-
-Google Test is designed to have fairly minimal requirements to build
-and use with your projects, but there are some. Currently, we support
-Linux, Windows, Mac OS X, and Cygwin. We will also make our best
-effort to support other platforms (e.g. Solaris, AIX, and z/OS).
-However, since core members of the Google Test project have no access
-to these platforms, Google Test may have outstanding issues there. If
-you notice any problems on your platform, please notify
-googletestframework@googlegroups.com. Patches for fixing them are
-even more welcome!
-
-### Linux Requirements ###
-
-These are the base requirements to build and use Google Test from a source
-package (as described below):
- * GNU-compatible Make or gmake
- * POSIX-standard shell
- * POSIX(-2) Regular Expressions (regex.h)
- * A C++98-standard-compliant compiler
-
-### Windows Requirements ###
-
- * Microsoft Visual C++ 7.1 or newer
-
-### Cygwin Requirements ###
-
- * Cygwin 1.5.25-14 or newer
-
-### Mac OS X Requirements ###
-
- * Mac OS X 10.4 Tiger or newer
- * Developer Tools Installed
-
-Also, you'll need CMake 2.6.4 or higher if you want to build the
-samples using the provided CMake script, regardless of the platform.
-
-Requirements for Contributors
------------------------------
-
-We welcome patches. If you plan to contribute a patch, you need to
-build Google Test and its own tests from an SVN checkout (described
-below), which has further requirements:
-
- * Python version 2.3 or newer (for running some of the tests and
- re-generating certain source files from templates)
- * CMake 2.6.4 or newer
-
-Getting the Source
-------------------
-
-There are two primary ways of getting Google Test's source code: you
-can download a stable source release in your preferred archive format,
-or directly check out the source from our Subversion (SVN) repositary.
-The SVN checkout requires a few extra steps and some extra software
-packages on your system, but lets you track the latest development and
-make patches much more easily, so we highly encourage it.
-
-### Source Package ###
-
-Google Test is released in versioned source packages which can be
-downloaded from the download page [1]. Several different archive
-formats are provided, but the only difference is the tools used to
-manipulate them, and the size of the resulting file. Download
-whichever you are most comfortable with.
-
- [1] http://code.google.com/p/googletest/downloads/list
-
-Once the package is downloaded, expand it using whichever tools you
-prefer for that type. This will result in a new directory with the
-name "gtest-X.Y.Z" which contains all of the source code. Here are
-some examples on Linux:
-
- tar -xvzf gtest-X.Y.Z.tar.gz
- tar -xvjf gtest-X.Y.Z.tar.bz2
- unzip gtest-X.Y.Z.zip
-
-### SVN Checkout ###
-
-To check out the main branch (also known as the "trunk") of Google
-Test, run the following Subversion command:
-
- svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn
-
-Setting up the Build
---------------------
-
-To build Google Test and your tests that use it, you need to tell your
-build system where to find its headers and source files. The exact
-way to do it depends on which build system you use, and is usually
-straightforward.
-
-### Generic Build Instructions ###
-
-Suppose you put Google Test in directory ${GTEST_DIR}. To build it,
-create a library build target (or a project as called by Visual Studio
-and Xcode) to compile
-
- ${GTEST_DIR}/src/gtest-all.cc
-
-with
-
- ${GTEST_DIR}/include and ${GTEST_DIR}
-
-in the header search path. Assuming a Linux-like system and gcc,
-something like the following will do:
-
- g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
- ar -rv libgtest.a gtest-all.o
-
-Next, you should compile your test source file with
-${GTEST_DIR}/include in the header search path, and link it with gtest
-and any other necessary libraries:
-
- g++ -I${GTEST_DIR}/include path/to/your_test.cc libgtest.a -o your_test
-
-As an example, the make/ directory contains a Makefile that you can
-use to build Google Test on systems where GNU make is available
-(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google
-Test's own tests. Instead, it just builds the Google Test library and
-a sample test. You can use it as a starting point for your own build
-script.
-
-If the default settings are correct for your environment, the
-following commands should succeed:
-
- cd ${GTEST_DIR}/make
- make
- ./sample1_unittest
-
-If you see errors, try to tweak the contents of make/Makefile to make
-them go away. There are instructions in make/Makefile on how to do
-it.
-
-### Using CMake ###
-
-Google Test comes with a CMake build script (CMakeLists.txt) that can
-be used on a wide range of platforms ("C" stands for cross-platofrm.).
-If you don't have CMake installed already, you can download it for
-free from http://www.cmake.org/.
-
-CMake works by generating native makefiles or build projects that can
-be used in the compiler environment of your choice. The typical
-workflow starts with:
-
- mkdir mybuild # Create a directory to hold the build output.
- cd mybuild
- cmake ${GTEST_DIR} # Generate native build scripts.
-
-If you want to build Google Test's samples, you should replace the
-last command with
-
- cmake -Dgtest_build_samples=ON ${GTEST_DIR}
-
-If you are on a *nix system, you should now see a Makefile in the
-current directory. Just type 'make' to build gtest.
-
-If you use Windows and have Vistual Studio installed, a gtest.sln file
-and several .vcproj files will be created. You can then build them
-using Visual Studio.
-
-On Mac OS X with Xcode installed, a .xcodeproj file will be generated.
-
-### Legacy Build Scripts ###
-
-Before settling on CMake, we have been providing hand-maintained build
-projects/scripts for Visual Studio, Xcode, and Autotools. While we
-continue to provide them for convenience, they are not actively
-maintained any more. We highly recommend that you follow the
-instructions in the previous two sections to integrate Google Test
-with your existing build system.
-
-If you still need to use the legacy build scripts, here's how:
-
-The msvc\ folder contains two solutions with Visual C++ projects.
-Open the gtest.sln or gtest-md.sln file using Visual Studio, and you
-are ready to build Google Test the same way you build any Visual
-Studio project. Files that have names ending with -md use DLL
-versions of Microsoft runtime libraries (the /MD or the /MDd compiler
-option). Files without that suffix use static versions of the runtime
-libraries (the /MT or the /MTd option). Please note that one must use
-the same option to compile both gtest and the test code. If you use
-Visual Studio 2005 or above, we recommend the -md version as /MD is
-the default for new projects in these versions of Visual Studio.
-
-On Mac OS X, open the gtest.xcodeproj in the xcode/ folder using
-Xcode. Build the "gtest" target. The universal binary framework will
-end up in your selected build directory (selected in the Xcode
-"Preferences..." -> "Building" pane and defaults to xcode/build).
-Alternatively, at the command line, enter:
-
- xcodebuild
-
-This will build the "Release" configuration of gtest.framework in your
-default build location. See the "xcodebuild" man page for more
-information about building different configurations and building in
-different locations.
-
-Tweaking Google Test
---------------------
-
-Google Test can be used in diverse environments. The default
-configuration may not work (or may not work well) out of the box in
-some environments. However, you can easily tweak Google Test by
-defining control macros on the compiler command line. Generally,
-these macros are named like GTEST_XYZ and you define them to either 1
-or 0 to enable or disable a certain feature.
-
-We list the most frequently used macros below. For a complete list,
-see file include/gtest/internal/gtest-port.h.
-
-### Choosing a TR1 Tuple Library ###
-
-Some Google Test features require the C++ Technical Report 1 (TR1)
-tuple library, which is not yet available with all compilers. The
-good news is that Google Test implements a subset of TR1 tuple that's
-enough for its own need, and will automatically use this when the
-compiler doesn't provide TR1 tuple.
-
-Usually you don't need to care about which tuple library Google Test
-uses. However, if your project already uses TR1 tuple, you need to
-tell Google Test to use the same TR1 tuple library the rest of your
-project uses, or the two tuple implementations will clash. To do
-that, add
-
- -DGTEST_USE_OWN_TR1_TUPLE=0
-
-to the compiler flags while compiling Google Test and your tests. If
-you want to force Google Test to use its own tuple library, just add
-
- -DGTEST_USE_OWN_TR1_TUPLE=1
-
-to the compiler flags instead.
-
-If you don't want Google Test to use tuple at all, add
-
- -DGTEST_HAS_TR1_TUPLE=0
-
-and all features using tuple will be disabled.
-
-### Multi-threaded Tests ###
-
-Google Test is thread-safe where the pthread library is available.
-After #include "gtest/gtest.h", you can check the GTEST_IS_THREADSAFE
-macro to see whether this is the case (yes if the macro is #defined to
-1, no if it's undefined.).
-
-If Google Test doesn't correctly detect whether pthread is available
-in your environment, you can force it with
-
- -DGTEST_HAS_PTHREAD=1
-
-or
-
- -DGTEST_HAS_PTHREAD=0
-
-When Google Test uses pthread, you may need to add flags to your
-compiler and/or linker to select the pthread library, or you'll get
-link errors. If you use the CMake script or the deprecated Autotools
-script, this is taken care of for you. If you use your own build
-script, you'll need to read your compiler and linker's manual to
-figure out what flags to add.
-
-### As a Shared Library (DLL) ###
-
-Google Test is compact, so most users can build and link it as a
-static library for the simplicity. You can choose to use Google Test
-as a shared library (known as a DLL on Windows) if you prefer.
-
-To compile *gtest* as a shared library, add
-
- -DGTEST_CREATE_SHARED_LIBRARY=1
-
-to the compiler flags. You'll also need to tell the linker to produce
-a shared library instead - consult your linker's manual for how to do
-it.
-
-To compile your *tests* that use the gtest shared library, add
-
- -DGTEST_LINKED_AS_SHARED_LIBRARY=1
-
-to the compiler flags.
-
-Note: while the above steps aren't technically necessary today when
-using some compilers (e.g. GCC), they may become necessary in the
-future, if we decide to improve the speed of loading the library (see
-http://gcc.gnu.org/wiki/Visibility for details). Therefore you are
-recommended to always add the above flags when using Google Test as a
-shared library. Otherwise a future release of Google Test may break
-your build script.
-
-### Avoiding Macro Name Clashes ###
-
-In C++, macros don't obey namespaces. Therefore two libraries that
-both define a macro of the same name will clash if you #include both
-definitions. In case a Google Test macro clashes with another
-library, you can force Google Test to rename its macro to avoid the
-conflict.
-
-Specifically, if both Google Test and some other code define macro
-FOO, you can add
-
- -DGTEST_DONT_DEFINE_FOO=1
-
-to the compiler flags to tell Google Test to change the macro's name
-from FOO to GTEST_FOO. Currently FOO can be FAIL, SUCCEED, or TEST.
-For example, with -DGTEST_DONT_DEFINE_TEST=1, you'll need to write
-
- GTEST_TEST(SomeTest, DoesThis) { ... }
-
-instead of
-
- TEST(SomeTest, DoesThis) { ... }
-
-in order to define a test.
-
-Upgrating from an Earlier Version
----------------------------------
-
-We strive to keep Google Test releases backward compatible.
-Sometimes, though, we have to make some breaking changes for the
-users' long-term benefits. This section describes what you'll need to
-do if you are upgrading from an earlier version of Google Test.
-
-### Upgrading from 1.3.0 or Earlier ###
-
-You may need to explicitly enable or disable Google Test's own TR1
-tuple library. See the instructions in section "Choosing a TR1 Tuple
-Library".
-
-### Upgrading from 1.4.0 or Earlier ###
-
-The Autotools build script (configure + make) is no longer officially
-supportted. You are encouraged to migrate to your own build system or
-use CMake. If you still need to use Autotools, you can find
-instructions in the README file from Google Test 1.4.0.
-
-On platforms where the pthread library is available, Google Test uses
-it in order to be thread-safe. See the "Multi-threaded Tests" section
-for what this means to your build script.
-
-If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google
-Test will no longer compile. This should affect very few people, as a
-large portion of STL (including <string>) doesn't compile in this mode
-anyway. We decided to stop supporting it in order to greatly simplify
-Google Test's implementation.
-
-Developing Google Test
-----------------------
-
-This section discusses how to make your own changes to Google Test.
-
-### Testing Google Test Itself ###
-
-To make sure your changes work as intended and don't break existing
-functionality, you'll want to compile and run Google Test's own tests.
-For that you can use CMake:
-
- mkdir mybuild
- cd mybuild
- cmake -Dgtest_build_tests=ON ${GTEST_DIR}
-
-Make sure you have Python installed, as some of Google Test's tests
-are written in Python. If the cmake command complains about not being
-able to find Python ("Could NOT find PythonInterp (missing:
-PYTHON_EXECUTABLE)"), try telling it explicitly where your Python
-executable can be found:
-
- cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR}
-
-Next, you can build Google Test and all of its own tests. On *nix,
-this is usually done by 'make'. To run the tests, do
-
- make test
-
-All tests should pass.
-
-### Regenerating Source Files ###
-
-Some of Google Test's source files are generated from templates (not
-in the C++ sense) using a script. A template file is named FOO.pump,
-where FOO is the name of the file it will generate. For example, the
-file include/gtest/internal/gtest-type-util.h.pump is used to generate
-gtest-type-util.h in the same directory.
-
-Normally you don't need to worry about regenerating the source files,
-unless you need to modify them. In that case, you should modify the
-corresponding .pump files instead and run the pump.py Python script to
-regenerate them. You can find pump.py in the scripts/ directory.
-Read the Pump manual [2] for how to use it.
-
- [2] http://code.google.com/p/googletest/wiki/PumpManual
-
-### Contributing a Patch ###
-
-We welcome patches. Please read the Google Test developer's guide [3]
-for how you can contribute. In particular, make sure you have signed
-the Contributor License Agreement, or we won't be able to accept the
-patch.
-
- [3] http://code.google.com/p/googletest/wiki/GoogleTestDevGuide
-
-Happy testing!
diff --git a/lib/gtest/README.txt b/lib/gtest/README.txt
index 390886f..51a9376 100644
--- a/lib/gtest/README.txt
+++ b/lib/gtest/README.txt
@@ -1,5 +1,424 @@
-This directory contains part of distribution of Google Test (http://code.google.com/p/googletest/)
- - a C++ framework for unit tests. There are source files, include headers and a custom CMakeLists.txt
-to compile static library. Only these files are kept from the official distribution as only
-they are necessary. For more info, see the original README file from gtest: REDME-gtest.txt.
-License info is kept in the original COPYING.txt.
+Google C++ Testing Framework
+============================
+
+http://code.google.com/p/googletest/
+
+Overview
+--------
+
+Google's framework for writing C++ tests on a variety of platforms
+(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the
+xUnit architecture. Supports automatic test discovery, a rich set of
+assertions, user-defined assertions, death tests, fatal and non-fatal
+failures, various options for running the tests, and XML test report
+generation.
+
+Please see the project page above for more information as well as the
+mailing list for questions, discussions, and development. There is
+also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
+join us!
+
+Requirements for End Users
+--------------------------
+
+Google Test is designed to have fairly minimal requirements to build
+and use with your projects, but there are some. Currently, we support
+Linux, Windows, Mac OS X, and Cygwin. We will also make our best
+effort to support other platforms (e.g. Solaris, AIX, and z/OS).
+However, since core members of the Google Test project have no access
+to these platforms, Google Test may have outstanding issues there. If
+you notice any problems on your platform, please notify
+googletestframework@googlegroups.com. Patches for fixing them are
+even more welcome!
+
+### Linux Requirements ###
+
+These are the base requirements to build and use Google Test from a source
+package (as described below):
+ * GNU-compatible Make or gmake
+ * POSIX-standard shell
+ * POSIX(-2) Regular Expressions (regex.h)
+ * A C++98-standard-compliant compiler
+
+### Windows Requirements ###
+
+ * Microsoft Visual C++ 7.1 or newer
+
+### Cygwin Requirements ###
+
+ * Cygwin 1.5.25-14 or newer
+
+### Mac OS X Requirements ###
+
+ * Mac OS X 10.4 Tiger or newer
+ * Developer Tools Installed
+
+Also, you'll need CMake 2.6.4 or higher if you want to build the
+samples using the provided CMake script, regardless of the platform.
+
+Requirements for Contributors
+-----------------------------
+
+We welcome patches. If you plan to contribute a patch, you need to
+build Google Test and its own tests from an SVN checkout (described
+below), which has further requirements:
+
+ * Python version 2.3 or newer (for running some of the tests and
+ re-generating certain source files from templates)
+ * CMake 2.6.4 or newer
+
+Getting the Source
+------------------
+
+There are two primary ways of getting Google Test's source code: you
+can download a stable source release in your preferred archive format,
+or directly check out the source from our Subversion (SVN) repositary.
+The SVN checkout requires a few extra steps and some extra software
+packages on your system, but lets you track the latest development and
+make patches much more easily, so we highly encourage it.
+
+### Source Package ###
+
+Google Test is released in versioned source packages which can be
+downloaded from the download page [1]. Several different archive
+formats are provided, but the only difference is the tools used to
+manipulate them, and the size of the resulting file. Download
+whichever you are most comfortable with.
+
+ [1] http://code.google.com/p/googletest/downloads/list
+
+Once the package is downloaded, expand it using whichever tools you
+prefer for that type. This will result in a new directory with the
+name "gtest-X.Y.Z" which contains all of the source code. Here are
+some examples on Linux:
+
+ tar -xvzf gtest-X.Y.Z.tar.gz
+ tar -xvjf gtest-X.Y.Z.tar.bz2
+ unzip gtest-X.Y.Z.zip
+
+### SVN Checkout ###
+
+To check out the main branch (also known as the "trunk") of Google
+Test, run the following Subversion command:
+
+ svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn
+
+Setting up the Build
+--------------------
+
+To build Google Test and your tests that use it, you need to tell your
+build system where to find its headers and source files. The exact
+way to do it depends on which build system you use, and is usually
+straightforward.
+
+### Generic Build Instructions ###
+
+Suppose you put Google Test in directory ${GTEST_DIR}. To build it,
+create a library build target (or a project as called by Visual Studio
+and Xcode) to compile
+
+ ${GTEST_DIR}/src/gtest-all.cc
+
+with
+
+ ${GTEST_DIR}/include and ${GTEST_DIR}
+
+in the header search path. Assuming a Linux-like system and gcc,
+something like the following will do:
+
+ g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
+ ar -rv libgtest.a gtest-all.o
+
+Next, you should compile your test source file with
+${GTEST_DIR}/include in the header search path, and link it with gtest
+and any other necessary libraries:
+
+ g++ -I${GTEST_DIR}/include path/to/your_test.cc libgtest.a -o your_test
+
+As an example, the make/ directory contains a Makefile that you can
+use to build Google Test on systems where GNU make is available
+(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google
+Test's own tests. Instead, it just builds the Google Test library and
+a sample test. You can use it as a starting point for your own build
+script.
+
+If the default settings are correct for your environment, the
+following commands should succeed:
+
+ cd ${GTEST_DIR}/make
+ make
+ ./sample1_unittest
+
+If you see errors, try to tweak the contents of make/Makefile to make
+them go away. There are instructions in make/Makefile on how to do
+it.
+
+### Using CMake ###
+
+Google Test comes with a CMake build script (CMakeLists.txt) that can
+be used on a wide range of platforms ("C" stands for cross-platofrm.).
+If you don't have CMake installed already, you can download it for
+free from http://www.cmake.org/.
+
+CMake works by generating native makefiles or build projects that can
+be used in the compiler environment of your choice. The typical
+workflow starts with:
+
+ mkdir mybuild # Create a directory to hold the build output.
+ cd mybuild
+ cmake ${GTEST_DIR} # Generate native build scripts.
+
+If you want to build Google Test's samples, you should replace the
+last command with
+
+ cmake -Dgtest_build_samples=ON ${GTEST_DIR}
+
+If you are on a *nix system, you should now see a Makefile in the
+current directory. Just type 'make' to build gtest.
+
+If you use Windows and have Vistual Studio installed, a gtest.sln file
+and several .vcproj files will be created. You can then build them
+using Visual Studio.
+
+On Mac OS X with Xcode installed, a .xcodeproj file will be generated.
+
+### Legacy Build Scripts ###
+
+Before settling on CMake, we have been providing hand-maintained build
+projects/scripts for Visual Studio, Xcode, and Autotools. While we
+continue to provide them for convenience, they are not actively
+maintained any more. We highly recommend that you follow the
+instructions in the previous two sections to integrate Google Test
+with your existing build system.
+
+If you still need to use the legacy build scripts, here's how:
+
+The msvc\ folder contains two solutions with Visual C++ projects.
+Open the gtest.sln or gtest-md.sln file using Visual Studio, and you
+are ready to build Google Test the same way you build any Visual
+Studio project. Files that have names ending with -md use DLL
+versions of Microsoft runtime libraries (the /MD or the /MDd compiler
+option). Files without that suffix use static versions of the runtime
+libraries (the /MT or the /MTd option). Please note that one must use
+the same option to compile both gtest and the test code. If you use
+Visual Studio 2005 or above, we recommend the -md version as /MD is
+the default for new projects in these versions of Visual Studio.
+
+On Mac OS X, open the gtest.xcodeproj in the xcode/ folder using
+Xcode. Build the "gtest" target. The universal binary framework will
+end up in your selected build directory (selected in the Xcode
+"Preferences..." -> "Building" pane and defaults to xcode/build).
+Alternatively, at the command line, enter:
+
+ xcodebuild
+
+This will build the "Release" configuration of gtest.framework in your
+default build location. See the "xcodebuild" man page for more
+information about building different configurations and building in
+different locations.
+
+Tweaking Google Test
+--------------------
+
+Google Test can be used in diverse environments. The default
+configuration may not work (or may not work well) out of the box in
+some environments. However, you can easily tweak Google Test by
+defining control macros on the compiler command line. Generally,
+these macros are named like GTEST_XYZ and you define them to either 1
+or 0 to enable or disable a certain feature.
+
+We list the most frequently used macros below. For a complete list,
+see file include/gtest/internal/gtest-port.h.
+
+### Choosing a TR1 Tuple Library ###
+
+Some Google Test features require the C++ Technical Report 1 (TR1)
+tuple library, which is not yet available with all compilers. The
+good news is that Google Test implements a subset of TR1 tuple that's
+enough for its own need, and will automatically use this when the
+compiler doesn't provide TR1 tuple.
+
+Usually you don't need to care about which tuple library Google Test
+uses. However, if your project already uses TR1 tuple, you need to
+tell Google Test to use the same TR1 tuple library the rest of your
+project uses, or the two tuple implementations will clash. To do
+that, add
+
+ -DGTEST_USE_OWN_TR1_TUPLE=0
+
+to the compiler flags while compiling Google Test and your tests. If
+you want to force Google Test to use its own tuple library, just add
+
+ -DGTEST_USE_OWN_TR1_TUPLE=1
+
+to the compiler flags instead.
+
+If you don't want Google Test to use tuple at all, add
+
+ -DGTEST_HAS_TR1_TUPLE=0
+
+and all features using tuple will be disabled.
+
+### Multi-threaded Tests ###
+
+Google Test is thread-safe where the pthread library is available.
+After #include "gtest/gtest.h", you can check the GTEST_IS_THREADSAFE
+macro to see whether this is the case (yes if the macro is #defined to
+1, no if it's undefined.).
+
+If Google Test doesn't correctly detect whether pthread is available
+in your environment, you can force it with
+
+ -DGTEST_HAS_PTHREAD=1
+
+or
+
+ -DGTEST_HAS_PTHREAD=0
+
+When Google Test uses pthread, you may need to add flags to your
+compiler and/or linker to select the pthread library, or you'll get
+link errors. If you use the CMake script or the deprecated Autotools
+script, this is taken care of for you. If you use your own build
+script, you'll need to read your compiler and linker's manual to
+figure out what flags to add.
+
+### As a Shared Library (DLL) ###
+
+Google Test is compact, so most users can build and link it as a
+static library for the simplicity. You can choose to use Google Test
+as a shared library (known as a DLL on Windows) if you prefer.
+
+To compile *gtest* as a shared library, add
+
+ -DGTEST_CREATE_SHARED_LIBRARY=1
+
+to the compiler flags. You'll also need to tell the linker to produce
+a shared library instead - consult your linker's manual for how to do
+it.
+
+To compile your *tests* that use the gtest shared library, add
+
+ -DGTEST_LINKED_AS_SHARED_LIBRARY=1
+
+to the compiler flags.
+
+Note: while the above steps aren't technically necessary today when
+using some compilers (e.g. GCC), they may become necessary in the
+future, if we decide to improve the speed of loading the library (see
+http://gcc.gnu.org/wiki/Visibility for details). Therefore you are
+recommended to always add the above flags when using Google Test as a
+shared library. Otherwise a future release of Google Test may break
+your build script.
+
+### Avoiding Macro Name Clashes ###
+
+In C++, macros don't obey namespaces. Therefore two libraries that
+both define a macro of the same name will clash if you #include both
+definitions. In case a Google Test macro clashes with another
+library, you can force Google Test to rename its macro to avoid the
+conflict.
+
+Specifically, if both Google Test and some other code define macro
+FOO, you can add
+
+ -DGTEST_DONT_DEFINE_FOO=1
+
+to the compiler flags to tell Google Test to change the macro's name
+from FOO to GTEST_FOO. Currently FOO can be FAIL, SUCCEED, or TEST.
+For example, with -DGTEST_DONT_DEFINE_TEST=1, you'll need to write
+
+ GTEST_TEST(SomeTest, DoesThis) { ... }
+
+instead of
+
+ TEST(SomeTest, DoesThis) { ... }
+
+in order to define a test.
+
+Upgrating from an Earlier Version
+---------------------------------
+
+We strive to keep Google Test releases backward compatible.
+Sometimes, though, we have to make some breaking changes for the
+users' long-term benefits. This section describes what you'll need to
+do if you are upgrading from an earlier version of Google Test.
+
+### Upgrading from 1.3.0 or Earlier ###
+
+You may need to explicitly enable or disable Google Test's own TR1
+tuple library. See the instructions in section "Choosing a TR1 Tuple
+Library".
+
+### Upgrading from 1.4.0 or Earlier ###
+
+The Autotools build script (configure + make) is no longer officially
+supportted. You are encouraged to migrate to your own build system or
+use CMake. If you still need to use Autotools, you can find
+instructions in the README file from Google Test 1.4.0.
+
+On platforms where the pthread library is available, Google Test uses
+it in order to be thread-safe. See the "Multi-threaded Tests" section
+for what this means to your build script.
+
+If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google
+Test will no longer compile. This should affect very few people, as a
+large portion of STL (including <string>) doesn't compile in this mode
+anyway. We decided to stop supporting it in order to greatly simplify
+Google Test's implementation.
+
+Developing Google Test
+----------------------
+
+This section discusses how to make your own changes to Google Test.
+
+### Testing Google Test Itself ###
+
+To make sure your changes work as intended and don't break existing
+functionality, you'll want to compile and run Google Test's own tests.
+For that you can use CMake:
+
+ mkdir mybuild
+ cd mybuild
+ cmake -Dgtest_build_tests=ON ${GTEST_DIR}
+
+Make sure you have Python installed, as some of Google Test's tests
+are written in Python. If the cmake command complains about not being
+able to find Python ("Could NOT find PythonInterp (missing:
+PYTHON_EXECUTABLE)"), try telling it explicitly where your Python
+executable can be found:
+
+ cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR}
+
+Next, you can build Google Test and all of its own tests. On *nix,
+this is usually done by 'make'. To run the tests, do
+
+ make test
+
+All tests should pass.
+
+### Regenerating Source Files ###
+
+Some of Google Test's source files are generated from templates (not
+in the C++ sense) using a script. A template file is named FOO.pump,
+where FOO is the name of the file it will generate. For example, the
+file include/gtest/internal/gtest-type-util.h.pump is used to generate
+gtest-type-util.h in the same directory.
+
+Normally you don't need to worry about regenerating the source files,
+unless you need to modify them. In that case, you should modify the
+corresponding .pump files instead and run the pump.py Python script to
+regenerate them. You can find pump.py in the scripts/ directory.
+Read the Pump manual [2] for how to use it.
+
+ [2] http://code.google.com/p/googletest/wiki/PumpManual
+
+### Contributing a Patch ###
+
+We welcome patches. Please read the Google Test developer's guide [3]
+for how you can contribute. In particular, make sure you have signed
+the Contributor License Agreement, or we won't be able to accept the
+patch.
+
+ [3] http://code.google.com/p/googletest/wiki/GoogleTestDevGuide
+
+Happy testing!
diff --git a/src/CBot/CBotString.cpp b/src/CBot/CBotString.cpp
index 4795b63..b1b5fc4 100644
--- a/src/CBot/CBotString.cpp
+++ b/src/CBot/CBotString.cpp
@@ -127,7 +127,8 @@ CBotString::CBotString()
CBotString::~CBotString()
{
- free(m_ptr); //we can call free on null pointer as it's save
+ delete[] m_ptr;
+ m_ptr = nullptr;
}
@@ -138,7 +139,7 @@ CBotString::CBotString(const char* p)
m_ptr = NULL;
if (m_lg>0)
{
- m_ptr = static_cast<char*>(malloc(m_lg+1));
+ m_ptr = new char[m_lg+1];
strcpy(m_ptr, p);
}
}
@@ -150,7 +151,7 @@ CBotString::CBotString(const CBotString& srcString)
m_ptr = NULL;
if (m_lg>0)
{
- m_ptr = static_cast<char*>(malloc(m_lg+1));
+ m_ptr = new char[m_lg+1];
strcpy(m_ptr, srcString.m_ptr);
}
}
@@ -285,12 +286,12 @@ CBotString CBotString::Mid(int start, int lg)
if ( lg < 0 ) lg = m_lg - start;
- char* p = static_cast<char*>(malloc(m_lg+1));
+ char* p = new char[m_lg+1];
strcpy(p, m_ptr+start);
p[lg] = 0;
res = p;
- free(p);
+ delete[] p;
return res;
}
@@ -314,15 +315,16 @@ void CBotString::MakeLower()
bool CBotString::LoadString(unsigned int id)
{
- const char * str = NULL;
+ const char * str = nullptr;
str = MapIdToString(static_cast<EID>(id));
- if (m_ptr != NULL) free(m_ptr);
+ if (m_ptr != nullptr)
+ delete[] m_ptr;
m_lg = strlen(str);
m_ptr = NULL;
if (m_lg > 0)
{
- m_ptr = static_cast<char*>(malloc(m_lg+1));
+ m_ptr = new char[m_lg+1];
strcpy(m_ptr, str);
return true;
}
@@ -332,14 +334,14 @@ bool CBotString::LoadString(unsigned int id)
const CBotString& CBotString::operator=(const CBotString& stringSrc)
{
- free(m_ptr);
- m_ptr = NULL;
+ delete[] m_ptr;
+ m_ptr = nullptr;
m_lg = stringSrc.m_lg;
if (m_lg > 0)
{
- m_ptr = static_cast<char*>(malloc(m_lg+1));
+ m_ptr = new char[m_lg+1];
strcpy(m_ptr, stringSrc.m_ptr);
}
@@ -355,13 +357,13 @@ CBotString operator+(const CBotString& string, const char * lpsz)
const CBotString& CBotString::operator+(const CBotString& stringSrc)
{
- char* p = static_cast<char*>(malloc(m_lg+stringSrc.m_lg+1));
+ char* p = new char[m_lg+stringSrc.m_lg+1];
if (m_ptr!=NULL) strcpy(p, m_ptr);
char* pp = p + m_lg;
if (stringSrc.m_ptr!=NULL) strcpy(pp, stringSrc.m_ptr);
- free(m_ptr);
+ delete[] m_ptr;
m_ptr = p;
m_lg += stringSrc.m_lg;
@@ -370,11 +372,11 @@ const CBotString& CBotString::operator+(const CBotString& stringSrc)
const CBotString& CBotString::operator=(const char ch)
{
- free(m_ptr);
+ delete[] m_ptr;
m_lg = 1;
- m_ptr = static_cast<char*>(malloc(2));
+ m_ptr = new char[2];
m_ptr[0] = ch;
m_ptr[1] = 0;
@@ -383,16 +385,16 @@ const CBotString& CBotString::operator=(const char ch)
const CBotString& CBotString::operator=(const char* pString)
{
- free(m_ptr);
- m_ptr = NULL;
+ delete[] m_ptr;
+ m_ptr = nullptr;
- if (pString != NULL)
+ if (pString != nullptr)
{
m_lg = strlen(pString);
if (m_lg != 0)
{
- m_ptr = static_cast<char*>(malloc(m_lg+1));
+ m_ptr = new char[m_lg+1];
strcpy(m_ptr, pString);
}
}
@@ -403,13 +405,13 @@ const CBotString& CBotString::operator=(const char* pString)
const CBotString& CBotString::operator+=(const char ch)
{
- char* p = static_cast<char*>(malloc(m_lg+2));
+ char* p = new char[m_lg+2];
- if (m_ptr!=NULL) strcpy(p, m_ptr);
+ if (m_ptr != nullptr) strcpy(p, m_ptr);
p[m_lg++] = ch;
p[m_lg] = 0;
- free(m_ptr);
+ delete[] m_ptr;
m_ptr = p;
@@ -418,7 +420,7 @@ const CBotString& CBotString::operator+=(const char ch)
const CBotString& CBotString::operator+=(const CBotString& str)
{
- char* p = static_cast<char*>(malloc(m_lg+str.m_lg+1));
+ char* p = new char[m_lg+str.m_lg+1];
strcpy(p, m_ptr);
char* pp = p + m_lg;
@@ -426,7 +428,7 @@ const CBotString& CBotString::operator+=(const CBotString& str)
m_lg = m_lg + str.m_lg;
- free(m_ptr);
+ delete[] m_ptr;
m_ptr = p;
@@ -500,8 +502,8 @@ bool CBotString::IsEmpty() const
void CBotString::Empty()
{
- free(m_ptr);
- m_ptr = NULL;
+ delete[] m_ptr;
+ m_ptr = nullptr;
m_lg = 0;
}
diff --git a/src/CBot/CMakeLists.txt b/src/CBot/CMakeLists.txt
index 271f2ce..daf08c6 100644
--- a/src/CBot/CMakeLists.txt
+++ b/src/CBot/CMakeLists.txt
@@ -16,6 +16,5 @@ if(${CBOT_STATIC})
add_library(CBot STATIC ${SOURCES})
else()
add_library(CBot SHARED ${SOURCES})
+ install(TARGETS CBot LIBRARY DESTINATION ${COLOBOT_INSTALL_LIB_DIR})
endif()
-
-INSTALL_TARGETS(/lib CBot)
diff --git a/src/CBot/tests/CBot_console/CMakeLists.txt b/src/CBot/tests/CBot_console/CMakeLists.txt
index 7d9f034..9f0f244 100644
--- a/src/CBot/tests/CBot_console/CMakeLists.txt
+++ b/src/CBot/tests/CBot_console/CMakeLists.txt
@@ -3,11 +3,14 @@ cmake_minimum_required(VERSION 2.8)
project(CBot_console C CXX)
# Build with debugging symbols
-set(CMAKE_BUILD_TYPE debug)
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
# Global compile flags
-set(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wall -Wold-style-cast -std=gnu++0x")
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
# Include cmake directory
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${colobot_SOURCE_DIR}/cmake")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index eaf404a..abd4a95 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,6 +4,10 @@ add_subdirectory(CBot)
# Tools directory is built separately
add_subdirectory(tools)
+add_subdirectory(po)
+
+add_subdirectory(desktop)
+
# Tests
if(${TESTS})
add_subdirectory(common/test)
@@ -25,9 +29,24 @@ endif()
# Additional libraries per platform
set(PLATFORM_LIBS "")
+set(OPENAL_LIBS "")
+
+if (${OPENAL_SOUND})
+ if (${MXE})
+ set(OPENAL_LIBS
+ ${CMAKE_FIND_ROOT_PATH}/lib/libOpenAL32.a
+ ${CMAKE_FIND_ROOT_PATH}/lib/libalut.a
+ )
+ else()
+ set(OPENAL_LIBS
+ openal
+ alut
+ )
+ endif()
+endif()
if (${MXE}) # MXE requires special treatment
- set(PLATFORM_LIBS ${MXE_LIBS})
+ set(PLATFORM_LIBS ${MXE_LIBS})
elseif (${PLATFORM_WINDOWS})
# because it isn't included in standard linking libraries
set(PLATFORM_LIBS "-lintl")
@@ -40,6 +59,15 @@ endif()
# Configure file
configure_file(common/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/common/config.h)
+set(OPENAL_SRC "")
+
+if (${OPENAL_SOUND})
+ set(OPENAL_SRC
+ sound/oalsound/alsound.cpp
+ sound/oalsound/buffer.cpp
+ sound/oalsound/channel.cpp
+ )
+endif()
# Source files
set(SOURCES
@@ -159,10 +187,10 @@ ui/slider.cpp
ui/studio.cpp
ui/target.cpp
ui/window.cpp
-plugins/pluginmanager.cpp
-plugins/pluginloader.cpp
+${OPENAL_SRC}
)
+
set(LIBS
${SDL_LIBRARY}
${SDLIMAGE_LIBRARY}
@@ -172,8 +200,8 @@ ${PNG_LIBRARIES}
${OPTIONAL_LIBS}
${PLATFORM_LIBS}
${Boost_LIBRARIES}
-ltdl
CBot
+${OPENAL_LIBS}
)
include_directories(
@@ -194,4 +222,5 @@ add_executable(colobot ${SOURCES})
target_link_libraries(colobot ${LIBS})
-INSTALL_TARGETS(/games colobot)
+install(TARGETS colobot RUNTIME DESTINATION ${COLOBOT_INSTALL_BIN_DIR})
+set_target_properties(colobot PROPERTIES INSTALL_RPATH ${COLOBOT_INSTALL_LIB_DIR})
diff --git a/src/app/app.cpp b/src/app/app.cpp
index 9f1667b..2155cf4 100644
--- a/src/app/app.cpp
+++ b/src/app/app.cpp
@@ -15,6 +15,7 @@
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
+#include "common/config.h"
#include "app/app.h"
@@ -30,17 +31,21 @@
#include "object/robotmain.h"
+#include <boost/filesystem.hpp>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
-#include <fstream>
-
#include <stdlib.h>
#include <libintl.h>
#include <unistd.h>
+#ifdef OPENAL_SOUND
+ #include "sound/oalsound/alsound.h"
+#endif
+
+
template<> CApplication* CSingleton<CApplication>::mInstance = nullptr;
//! Static buffer for putenv locale
@@ -90,7 +95,6 @@ CApplication::CApplication()
m_private = new ApplicationPrivate();
m_iMan = new CInstanceManager();
m_eventQueue = new CEventQueue(m_iMan);
- m_pluginManager = new CPluginManager();
m_profile = new CProfile();
m_engine = nullptr;
@@ -138,9 +142,9 @@ CApplication::CApplication()
m_mouseButtonsState = 0;
m_trackedKeys = 0;
- m_dataPath = "./data";
+ m_dataPath = COLOBOT_DEFAULT_DATADIR;
- m_language = LANGUAGE_ENGLISH;
+ m_language = LANGUAGE_ENV;
m_lowCPU = true;
@@ -150,7 +154,6 @@ CApplication::CApplication()
m_dataDirs[DIR_AI] = "ai";
m_dataDirs[DIR_FONT] = "fonts";
m_dataDirs[DIR_HELP] = "help";
- m_dataDirs[DIR_I18N] = "i18n";
m_dataDirs[DIR_ICON] = "icons";
m_dataDirs[DIR_LEVEL] = "levels";
m_dataDirs[DIR_MODEL] = "models";
@@ -167,9 +170,6 @@ CApplication::~CApplication()
delete m_eventQueue;
m_eventQueue = nullptr;
- delete m_pluginManager;
- m_pluginManager = nullptr;
-
delete m_profile;
m_profile = nullptr;
@@ -260,7 +260,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");
@@ -289,13 +289,10 @@ bool CApplication::Create()
{
GetLogger()->Info("Creating CApplication\n");
- // I know, a primitive way to check for dir, but works
- std::string readmePath = m_dataPath + "/README.txt";
- std::ifstream testReadme;
- testReadme.open(readmePath.c_str(), std::ios_base::in);
- if (!testReadme.good())
+ boost::filesystem::path dataPath(m_dataPath);
+ if (! (boost::filesystem::exists(dataPath) && boost::filesystem::is_directory(dataPath)) )
{
- GetLogger()->Error("Could not open test file in data dir: '%s'\n", readmePath.c_str());
+ GetLogger()->Error("Data directory '%s' doesn't exist or is not a directory\n", m_dataPath.c_str());
m_errorMessage = std::string("Could not read from data directory:\n") +
std::string("'") + m_dataPath + std::string("'\n") +
std::string("Please check your installation, or supply a valid data directory by -datadir option.");
@@ -303,66 +300,32 @@ bool CApplication::Create()
return false;
}
- /* Gettext initialization */
-
- std::string locale = "C";
- switch (m_language)
- {
- 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;
- }
-
- std::string langStr = "LANGUAGE=";
- langStr += locale;
- strcpy(S_LANGUAGE, langStr.c_str());
- putenv(S_LANGUAGE);
- setlocale(LC_ALL, locale.c_str());
-
- std::string trPath = m_dataPath + "/" + m_dataDirs[DIR_I18N];
- bindtextdomain("colobot", trPath.c_str());
- bind_textdomain_codeset("colobot", "UTF-8");
- textdomain("colobot");
-
- GetLogger()->Debug("Testing gettext translation: '%s'\n", gettext("Colobot rules!"));
-
- // Temporarily -- only in windowed mode
- m_deviceConfig.fullScreen = false;
+ SetLanguage(m_language);
//Create the sound instance.
- if (!GetProfile().InitCurrentDirectory()) {
+ if (!GetProfile().InitCurrentDirectory())
+ {
GetLogger()->Warn("Config not found. Default values will be used!\n");
m_sound = new CSoundInterface();
- } else {
+ }
+ else
+ {
std::string path;
if (GetProfile().GetLocalProfileString("Resources", "Data", path))
m_dataPath = path;
- m_pluginManager->LoadFromProfile();
- m_sound = static_cast<CSoundInterface*>(CInstanceManager::GetInstancePointer()->SearchInstance(CLASS_SOUND));
-
- if (!m_sound) {
- GetLogger()->Error("Sound not loaded, falling back to fake sound!\n");
- m_sound = new CSoundInterface();
- }
+ #ifdef OPENAL_SOUND
+ m_sound = static_cast<CSoundInterface *>(new ALSound());
+ #else
+ GetLogger()->Info("No sound support.\n");
+ m_sound = new CSoundInterface();
+ #endif
m_sound->Create(true);
if (GetProfile().GetLocalProfileString("Resources", "Sound", path))
m_sound->CacheAll(path);
else
- m_sound->CacheAll(m_dataPath);
+ m_sound->CacheAll(GetDataSubdirPath(DIR_SOUND));
}
std::string standardInfoMessage =
@@ -397,7 +360,20 @@ bool CApplication::Create()
m_exitCode = 3;
return false;
}
-
+
+ // load settings from profile
+ int iValue;
+ if ( GetProfile().GetLocalProfileInt("Setup", "Resolution", iValue) ) {
+ std::vector<Math::IntPoint> modes;
+ GetVideoResolutionList(modes, true, true);
+ if (static_cast<unsigned int>(iValue) < modes.size())
+ m_deviceConfig.size = modes.at(iValue);
+ }
+
+ if ( GetProfile().GetLocalProfileInt("Setup", "Fullscreen", iValue) ) {
+ m_deviceConfig.fullScreen = (iValue == 1);
+ }
+
if (! CreateVideoSurface())
return false; // dialog is in function
@@ -417,8 +393,7 @@ bool CApplication::Create()
// Don't generate joystick events
SDL_JoystickEventState(SDL_IGNORE);
-
-
+
// The video is ready, we can create and initalize the graphics device
m_device = new Gfx::CGLDevice(m_deviceConfig);
if (! m_device->Create() )
@@ -1459,24 +1434,26 @@ std::string CApplication::GetDataDirPath()
return m_dataPath;
}
-std::string CApplication::GetDataFilePath(DataDir dataDir, const std::string& subpath)
+std::string CApplication::GetDataSubdirPath(DataDir stdDir)
{
- int index = static_cast<int>(dataDir);
+ int index = static_cast<int>(stdDir);
assert(index >= 0 && index < DIR_MAX);
std::stringstream str;
str << m_dataPath;
str << "/";
str << m_dataDirs[index];
- str << "/";
- str << subpath;
return str.str();
}
-std::string CApplication::GetDataFilePath(const std::string& subpath)
+std::string CApplication::GetDataFilePath(DataDir stdDir, const std::string& subpath)
{
+ int index = static_cast<int>(stdDir);
+ assert(index >= 0 && index < DIR_MAX);
std::stringstream str;
str << m_dataPath;
str << "/";
+ str << m_dataDirs[index];
+ str << "/";
str << subpath;
return str.str();
}
@@ -1486,9 +1463,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)
diff --git a/src/app/app.h b/src/app/app.h
index d8f6206..4aa97ce 100644
--- a/src/app/app.h
+++ b/src/app/app.h
@@ -25,13 +25,12 @@
#include "common/global.h"
#include "common/singleton.h"
+#include "common/profile.h"
#include "graphics/core/device.h"
#include "graphics/engine/engine.h"
#include "graphics/opengl/gldevice.h"
-#include "plugins/pluginmanager.h"
-
#include <string>
#include <vector>
@@ -312,15 +311,16 @@ public:
//! Returns the full path to data directory
std::string GetDataDirPath();
- //! Returns the full path to a file in data directory given standard dir and subpath
- std::string GetDataFilePath(DataDir dir, const std::string &subpath);
+ //! Returns the full path to a standard dir in data directory
+ std::string GetDataSubdirPath(DataDir stdDir);
- //! Returns the full path to a file in data directory given custom subpath in data dir
- std::string GetDataFilePath(const std::string &subpath);
+ //! Returns the full path to a file in data directory given standard dir and subpath
+ std::string GetDataFilePath(DataDir stdDir, const std::string &subpath);
//! Management of language
//@{
Language GetLanguage();
+ char GetLanguageChar();
void SetLanguage(Language language);
//@}
@@ -379,8 +379,6 @@ protected:
CSoundInterface* m_sound;
//! Main class of the proper game engine
CRobotMain* m_robotMain;
- //! Plugin manager
- CPluginManager* m_pluginManager;
//! Profile (INI) reader/writer
CProfile* m_profile;
diff --git a/src/common/config.h.cmake b/src/common/config.h.cmake
index 8c85df1..022bb69 100644
--- a/src/common/config.h.cmake
+++ b/src/common/config.h.cmake
@@ -6,4 +6,13 @@
#cmakedefine PLATFORM_OTHER @PLATFORM_OTHER@
#cmakedefine USE_GLEW @USE_GLEW@
-#cmakedefine GLEW_STATIC \ No newline at end of file
+#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@"
+
+#cmakedefine OPENAL_SOUND
diff --git a/src/common/global.h b/src/common/global.h
index 864f0a4..0b2d8ec 100644
--- a/src/common/global.h
+++ b/src/common/global.h
@@ -165,6 +165,7 @@ enum Error
*/
enum Language
{
+ LANGUAGE_ENV = -1,
LANGUAGE_ENGLISH = 0,
LANGUAGE_FRENCH = 1,
LANGUAGE_GERMAN = 2,
@@ -180,7 +181,6 @@ enum DataDir
DIR_AI, //! < ai scripts
DIR_FONT, //! < fonts
DIR_HELP, //! < help files
- DIR_I18N, //! < translations
DIR_ICON, //! < icons & images
DIR_LEVEL, //! < levels
DIR_MODEL, //! < models
diff --git a/src/common/image.cpp b/src/common/image.cpp
index 638304e..be5711d 100644
--- a/src/common/image.cpp
+++ b/src/common/image.cpp
@@ -124,14 +124,14 @@ bool PNGSaveSurface(const char *filename, SDL_Surface *surf)
png_write_info(png_ptr, info_ptr);
png_set_packing(png_ptr);
- row_pointers = static_cast<png_bytep*>( malloc(sizeof(png_bytep)*surf->h) );
+ row_pointers = new png_bytep[surf->h];
for (i = 0; i < surf->h; i++)
row_pointers[i] = static_cast<png_bytep>( static_cast<Uint8 *>(surf->pixels) ) + i*surf->pitch;
png_write_image(png_ptr, row_pointers);
png_write_end(png_ptr, info_ptr);
/* Cleaning out... */
- free(row_pointers);
+ delete[] row_pointers;
png_destroy_write_struct(&png_ptr, &info_ptr);
fclose(fp);
diff --git a/src/common/restext.cpp b/src/common/restext.cpp
index da06131..4c56ae5 100644
--- a/src/common/restext.cpp
+++ b/src/common/restext.cpp
@@ -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";
diff --git a/src/common/test/CMakeLists.txt b/src/common/test/CMakeLists.txt
index ccbb739..26a31c9 100644
--- a/src/common/test/CMakeLists.txt
+++ b/src/common/test/CMakeLists.txt
@@ -1,13 +1,16 @@
cmake_minimum_required(VERSION 2.8)
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
include_directories(
.
../..
../../..
-${GTEST_DIR}/include
+${GTEST_INCLUDE_DIR}
)
diff --git a/src/desktop/.gitignore b/src/desktop/.gitignore
new file mode 100644
index 0000000..bade6f3
--- /dev/null
+++ b/src/desktop/.gitignore
@@ -0,0 +1 @@
+lang/
diff --git a/src/desktop/CMakeLists.txt b/src/desktop/CMakeLists.txt
new file mode 100644
index 0000000..ce4f48d
--- /dev/null
+++ b/src/desktop/CMakeLists.txt
@@ -0,0 +1,97 @@
+cmake_minimum_required(VERSION 2.8)
+
+# Install Desktop Entry file
+set(COLOBOT_DESKTOP_FILE colobot.desktop)
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${COLOBOT_DESKTOP_FILE}
+ COMMAND ./create_desktop_file.sh > ${CMAKE_CURRENT_BINARY_DIR}/${COLOBOT_DESKTOP_FILE}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+ COMMENT "Build ${COLOBOT_DESKTOP_FILE}"
+ )
+add_custom_target(desktopfile ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${COLOBOT_DESKTOP_FILE})
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${COLOBOT_DESKTOP_FILE}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications/
+ )
+
+# Install Icon
+set(COLOBOT_ICON_FILE colobot.svg)
+install(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/${COLOBOT_ICON_FILE}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps/
+ )
+
+# Render SVG icon in various sizes
+find_program(RSVG_CONVERT rsvg-convert)
+if(RSVG_CONVERT)
+ foreach(PNGSIZE "48" "32" "16")
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${PNGSIZE})
+ add_custom_target(resize_icon_${PNGSIZE} ALL
+ COMMAND ${RSVG_CONVERT} -w ${PNGSIZE} -h ${PNGSIZE} ${CMAKE_CURRENT_SOURCE_DIR}/${COLOBOT_ICON_FILE}
+ > ${CMAKE_CURRENT_BINARY_DIR}/${PNGSIZE}/colobot.png
+ )
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGSIZE}/colobot.png
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/${PNGSIZE}x${PNGSIZE}/apps/
+ )
+ endforeach()
+endif()
+
+# Create manpage from pod-formatted file
+find_program(POD2MAN pod2man)
+if(POD2MAN)
+ set(COLOBOT_MANPAGE_SECTION 6)
+
+ macro(podman)
+ cmake_parse_arguments(PM "" "PODFILE;LOCALE;" "" ${ARGN})
+ if(PM_LOCALE)
+ # This copes with the fact that english has no "/LANG" in the paths and filenames.
+ set(SLASHLOCALE /${PM_LOCALE})
+ endif()
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE})
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
+ 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"
+ )
+ add_custom_target(man${PM_LOCALE} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION})
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}${SLASHLOCALE}/colobot.${COLOBOT_MANPAGE_SECTION}
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man${SLASHLOCALE}/man${COLOBOT_MANPAGE_SECTION}/ )
+
+ add_dependencies(man man${PM_LOCALE})
+ endmacro()
+
+ # Create the english manpage
+ podman(PODFILE colobot.pod)
+
+endif()
+
+# Translate translatable material
+find_program(PO4A po4a)
+
+if(PO4A)
+ add_custom_target(desktop_po4a
+ COMMAND ${PO4A} po4a.cfg
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ add_dependencies(desktopfile desktop_po4a)
+
+ if(POD2MAN)
+ add_custom_target(man_po4a
+ COMMAND ${PO4A} po4a.cfg
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ add_dependencies(man man_po4a)
+ file(GLOB LINGUAS_PO RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/po/ ${CMAKE_CURRENT_SOURCE_DIR}/po/*.po)
+ string(REGEX REPLACE ".po$" "" LINGUAS ${LINGUAS_PO})
+ foreach(LOCALE ${LINGUAS})
+ podman(PODFILE lang/${LOCALE}/colobot.pod LOCALE ${LOCALE})
+ endforeach()
+ endif()
+endif()
diff --git a/src/desktop/colobot.desktop.in b/src/desktop/colobot.desktop.in
new file mode 100644
index 0000000..9b09803
--- /dev/null
+++ b/src/desktop/colobot.desktop.in
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Exec=colobot
+Icon=colobot
+Categories=Education;Robotics;Game;AdventureGame;StrategyGame;
diff --git a/src/desktop/colobot.ini b/src/desktop/colobot.ini
new file mode 100644
index 0000000..136e008
--- /dev/null
+++ b/src/desktop/colobot.ini
@@ -0,0 +1,3 @@
+Name="Colobot"
+GenericName="Game to learn programming"
+Comment="Colonize with bots"
diff --git a/src/desktop/colobot.pod b/src/desktop/colobot.pod
new file mode 100644
index 0000000..2fc3a00
--- /dev/null
+++ b/src/desktop/colobot.pod
@@ -0,0 +1,47 @@
+=encoding utf8
+
+=head1 COLOBOT
+
+colobot - educational programming strategy game
+
+=head1 SYNOPSIS
+
+B<colobot> [B<-datadir> I<path>] [B<-debug>] [B<-loglevel> I<level>] [B<-language> I<lang>]
+
+=head1 DESCRIPTION
+
+Colobot (Colonize with Bots) is an educational game aiming to teach
+programming through entertainment. You are playing as an astronaut on a
+journey with robot helpers to find a planet for colonization. It features 3D
+real-time graphics and a C++ and Java-like, object-oriented language, CBOT,
+which can be used to program the robots available in the game.
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-help>
+
+Display a short help text
+
+=item B<-datadir> F</path/to/data/>
+
+Set custom data directory path
+
+=item B<-debug>
+
+Enable debug mode (more info printed in logs)
+
+=item B<-loglevel> I<level>
+
+Set log level. Possible choices are: trace, debug, info, warn, error, none.
+
+=item B<-language> I<lang>
+
+Set language. Note that you can also fill the B<LANG> environment variable.
+
+=back
+
+=head1 AUTHOR
+
+This manpage was written by Didier Raboud <S<odyx@debian.org>>.
diff --git a/src/desktop/colobot.svg b/src/desktop/colobot.svg
new file mode 100644
index 0000000..85a0545
--- /dev/null
+++ b/src/desktop/colobot.svg
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.1"
+ width="48"
+ height="48"
+ id="colobot-logo"
+ style="enable-background:new">
+ <title
+ id="title3020">Colobot icon</title>
+ <metadata
+ id="metadata3061">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Colobot icon</dc:title>
+ <dc:date>2012-12-27</dc:date>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title></dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Polish Portal of Colobot</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <cc:license
+ rdf:resource="http://www.gnu.org/licenses/gpl-3.0-standalone.html" />
+ <dc:description>Three spheres symbolizing planets.</dc:description>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Didier Raboud &lt;odyx@debian.org&gt;</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs3059">
+ <linearGradient
+ id="linearGradient4108">
+ <stop
+ id="stop4110"
+ style="stop-color:#008000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4112"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4096">
+ <stop
+ id="stop4098"
+ style="stop-color:#00ff00;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4100"
+ style="stop-color:#00ff00;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4108-5">
+ <stop
+ id="stop4110-2"
+ style="stop-color:#000080;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4112-8"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4096-0">
+ <stop
+ id="stop4098-3"
+ style="stop-color:#0000ff;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4100-0"
+ style="stop-color:#0000ff;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4108-5-2">
+ <stop
+ id="stop4110-2-3"
+ style="stop-color:#500000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4112-8-6"
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4096-0-3">
+ <stop
+ id="stop4098-3-7"
+ style="stop-color:#ff0000;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4100-0-3"
+ style="stop-color:#ff0000;stop-opacity:0"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ cx="54.8265"
+ cy="57.607162"
+ r="56.05489"
+ fx="54.8265"
+ fy="57.607162"
+ id="radialGradient4416"
+ xlink:href="#linearGradient4108-5-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.02726606,1.3911392,-1.8797791,0.03684323,176.62558,-41.562143)" />
+ <radialGradient
+ cx="63.5"
+ cy="37.5"
+ r="32"
+ fx="63.5"
+ fy="37.5"
+ id="radialGradient4418"
+ xlink:href="#linearGradient4096-0-3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.796875,6.7936132,3.6927801)" />
+ <radialGradient
+ cx="54.8265"
+ cy="57.607162"
+ r="56.05489"
+ fx="54.8265"
+ fy="57.607162"
+ id="radialGradient4420"
+ xlink:href="#linearGradient4108"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.02726606,1.3911392,-1.8797791,0.03684323,176.62558,-41.562143)" />
+ <radialGradient
+ cx="63.5"
+ cy="37.5"
+ r="32"
+ fx="63.5"
+ fy="37.5"
+ id="radialGradient4422"
+ xlink:href="#linearGradient4096"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.796875,6.7936132,3.6927801)" />
+ <radialGradient
+ cx="54.8265"
+ cy="57.607162"
+ r="56.05489"
+ fx="54.8265"
+ fy="57.607162"
+ id="radialGradient4424"
+ xlink:href="#linearGradient4108-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.02726606,1.3911392,-1.8797791,0.03684323,176.62558,-41.562143)" />
+ <radialGradient
+ cx="63.5"
+ cy="37.5"
+ r="32"
+ fx="63.5"
+ fy="37.5"
+ id="radialGradient4426"
+ xlink:href="#linearGradient4096-0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.796875,6.7936132,3.6927801)" />
+ </defs>
+ <path
+ d="m 35.001373,17.978157 a 17.137194,11.839104 0 1 1 -34.27438587,0 17.137194,11.839104 0 1 1 34.27438587,0 z"
+ id="path3068"
+ style="opacity:0;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:#ff0000;stroke-width:1.45397186;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:11.63177575, 11.63177575;stroke-dashoffset:11.63177575;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <g
+ transform="matrix(1.4527314,0,0,1.4552231,61.790796,7.2674667)"
+ id="layer1"
+ style="display:inline">
+ <g
+ transform="translate(-64.376292,0)"
+ id="g4403">
+ <g
+ transform="matrix(0.1151419,-0.11259991,0.11259991,0.1151419,78.136911,8.9624182)"
+ id="g4122-3-7"
+ style="stroke-width:6.52155399;stroke-miterlimit:4;stroke-dasharray:none;display:inline">
+ <g
+ transform="translate(-232.5787,-246.03551)"
+ id="g4259-8">
+ <path
+ d="m 128.20539,62.567638 c 0,29.922729 -24.25716,54.179892 -54.179886,54.179892 -29.922729,0 -54.179893,-24.257163 -54.179893,-54.179892 0,-29.922729 24.257164,-54.1798929 54.179893,-54.1798929 29.922726,0 54.179886,24.2571639 54.179886,54.1798929 z"
+ id="path1873-0-2"
+ style="fill:url(#radialGradient4416);fill-opacity:1;fill-rule:nonzero;stroke:#808000;stroke-width:4.65700197;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 102.29361,33.575593 c 0,14.083261 -14.326885,25.5 -31.999997,25.5 -17.673112,0 -32,-11.416739 -32,-25.5 0,-14.083261 14.326888,-25.4999999 32,-25.4999999 17.673112,0 31.999997,11.4167389 31.999997,25.4999999 z"
+ id="path2814-0-8"
+ style="fill:url(#radialGradient4418);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.1151419,-0.11259991,0.11259991,0.1151419,15.374404,17.677401)"
+ id="g4122"
+ style="stroke-width:6.52155399;stroke-miterlimit:4;stroke-dasharray:none">
+ <path
+ d="m 128.20539,62.567638 c 0,29.922729 -24.25716,54.179892 -54.179886,54.179892 -29.922729,0 -54.179893,-24.257163 -54.179893,-54.179892 0,-29.922729 24.257164,-54.1798929 54.179893,-54.1798929 29.922726,0 54.179886,24.2571639 54.179886,54.1798929 z"
+ id="path1873"
+ style="fill:url(#radialGradient4420);fill-opacity:1;fill-rule:nonzero;stroke:#808000;stroke-width:4.65700197;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 102.29361,33.575593 c 0,14.083261 -14.326885,25.5 -31.999997,25.5 -17.673112,0 -32,-11.416739 -32,-25.5 0,-14.083261 14.326888,-25.4999999 32,-25.4999999 17.673112,0 31.999997,11.4167389 31.999997,25.4999999 z"
+ id="path2814"
+ style="fill:url(#radialGradient4422);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ </g>
+ <g
+ transform="matrix(0.1151419,-0.11259991,0.11259991,0.1151419,57.006572,14.417637)"
+ id="g4122-3"
+ style="stroke-width:6.52155399;stroke-miterlimit:4;stroke-dasharray:none;display:inline">
+ <g
+ transform="translate(-136.63091,-98.230764)"
+ id="g4259">
+ <path
+ d="m 128.20539,62.567638 c 0,29.922729 -24.25716,54.179892 -54.179886,54.179892 -29.922729,0 -54.179893,-24.257163 -54.179893,-54.179892 0,-29.922729 24.257164,-54.1798929 54.179893,-54.1798929 29.922726,0 54.179886,24.2571639 54.179886,54.1798929 z"
+ id="path1873-0"
+ style="fill:url(#radialGradient4424);fill-opacity:1;fill-rule:nonzero;stroke:#808000;stroke-width:4.65700197;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ d="m 102.29361,33.575593 c 0,14.083261 -14.326885,25.5 -31.999997,25.5 -17.673112,0 -32,-11.416739 -32,-25.5 0,-14.083261 14.326888,-25.4999999 32,-25.4999999 17.673112,0 31.999997,11.4167389 31.999997,25.4999999 z"
+ id="path2814-0"
+ style="fill:url(#radialGradient4426);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/src/desktop/create_desktop_file.sh b/src/desktop/create_desktop_file.sh
new file mode 100755
index 0000000..e0f120b
--- /dev/null
+++ b/src/desktop/create_desktop_file.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+# Create colobot.desktop from various colobot.ini's
+
+fname=colobot.ini
+
+cat colobot.desktop.in
+
+linguas=$([ ! -d lang ] || ( cd lang ; ls));
+
+for type in Name GenericName Comment; do
+ egrep "^$type=" $fname | sed -e "s/^$type=\"\(.*\)\"$/$type=\1/g"
+ for l in $linguas; do
+ egrep "^$type=" lang/$l/$fname | sed -e "s/^$type=\"\(.*\)\"$/$type[$l]=\1/g"
+ done
+done
diff --git a/src/desktop/po/colobot-desktop.pot b/src/desktop/po/colobot-desktop.pot
new file mode 100644
index 0000000..17e60c3
--- /dev/null
+++ b/src/desktop/po/colobot-desktop.pot
@@ -0,0 +1,134 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-12-27 10:59+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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: colobot.ini:1
+#, no-wrap
+msgid "Colobot"
+msgstr ""
+
+#: colobot.ini:2
+#, no-wrap
+msgid "Game to learn programming"
+msgstr ""
+
+#: colobot.ini:3
+#, no-wrap
+msgid "Colonize with bots"
+msgstr ""
+
+#. type: =head1
+#: colobot.pod:3
+msgid "COLOBOT"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:5
+msgid "colobot - educational programming strategy game"
+msgstr ""
+
+#. type: =head1
+#: colobot.pod:7
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:9
+msgid ""
+"B<colobot> [B<-datadir> I<path>] [B<-debug>] [B<-loglevel> I<level>] "
+"[B<-language> I<lang>]"
+msgstr ""
+
+#. type: =head1
+#: colobot.pod:11
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:13
+msgid ""
+"Colobot (Colonize with Bots) is an educational game aiming to teach "
+"programming through entertainment. You are playing as an astronaut on a "
+"journey with robot helpers to find a planet for colonization. It features 3D "
+"real-time graphics and a C++ and Java-like, object-oriented language, CBOT, "
+"which can be used to program the robots available in the game."
+msgstr ""
+
+#. type: =head1
+#: colobot.pod:19
+msgid "OPTIONS"
+msgstr ""
+
+#. type: =item
+#: colobot.pod:23
+msgid "B<-help>"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:25
+msgid "Display a short help text"
+msgstr ""
+
+#. type: =item
+#: colobot.pod:27
+msgid "B<-datadir> F</path/to/data/>"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:29
+msgid "Set custom data directory path"
+msgstr ""
+
+#. type: =item
+#: colobot.pod:31
+msgid "B<-debug>"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:33
+msgid "Enable debug mode (more info printed in logs)"
+msgstr ""
+
+#. type: =item
+#: colobot.pod:35
+msgid "B<-loglevel> I<level>"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:37
+msgid "Set log level. Possible choices are: trace, debug, info, warn, error, none."
+msgstr ""
+
+#. type: =item
+#: colobot.pod:39
+msgid "B<-language> I<lang>"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:41
+msgid "Set language. Note that you can also fill the B<LANG> environment variable."
+msgstr ""
+
+#. type: =head1
+#: colobot.pod:45
+msgid "AUTHOR"
+msgstr ""
+
+#. type: textblock
+#: colobot.pod:47
+msgid "This manpage was written by Didier Raboud <S<odyx@debian.org>>."
+msgstr ""
diff --git a/src/desktop/po/fr.po b/src/desktop/po/fr.po
new file mode 100644
index 0000000..4709d49
--- /dev/null
+++ b/src/desktop/po/fr.po
@@ -0,0 +1,153 @@
+# French translations for PACKAGE package
+# Copyright (C) 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Didier Raboud <odyx@debian.org>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2012-12-27 10:55+0100\n"
+"PO-Revision-Date: 2012-12-27 11:00+0100\n"
+"Last-Translator: Didier Raboud <odyx@debian.org>\n"
+"Language-Team: none\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"
+
+#: colobot.ini:1
+#, no-wrap
+msgid "Colobot"
+msgstr "Colobot"
+
+#: colobot.ini:2
+#, no-wrap
+msgid "Game to learn programming"
+msgstr "Apprentissage de la programmation par le jeu"
+
+#: colobot.ini:3
+#, no-wrap
+msgid "Colonize with bots"
+msgstr "Colonise avec des roBots"
+
+#. type: =head1
+#: colobot.pod:3
+msgid "COLOBOT"
+msgstr "COLOBOT"
+
+#. type: textblock
+#: colobot.pod:5
+msgid "colobot - educational programming strategy game"
+msgstr "colobot - Jeu éducatif de stratégie et de programmation"
+
+#. type: =head1
+#: colobot.pod:7
+msgid "SYNOPSIS"
+msgstr "RÉSUMÉ"
+
+#. type: textblock
+#: colobot.pod:9
+msgid ""
+"B<colobot> [B<-datadir> I<path>] [B<-debug>] [B<-loglevel> I<level>] [B<-"
+"language> I<lang>]"
+msgstr ""
+"B<colobot> [B<-datadir> I<chemin>] [B<-debug>] [B<-loglevel> I<niveau>] [B<-"
+"language> I<code-de-langue>]"
+
+#. type: =head1
+#: colobot.pod:11
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+#. type: textblock
+#: colobot.pod:13
+msgid ""
+"Colobot (Colonize with Bots) is an educational game aiming to teach "
+"programming through entertainment. You are playing as an astronaut on a "
+"journey with robot helpers to find a planet for colonization. It features 3D "
+"real-time graphics and a C++ and Java-like, object-oriented language, CBOT, "
+"which can be used to program the robots available in the game."
+msgstr ""
+"Colobot (Colonise avec des roBots) est un jeu éducatif visant à "
+"l'enseignement de la programmation par le jeu. Vous jouez un astronaute en "
+"voyage avec des robots à la recherche d'une planète à coloniser. Son "
+"interface est en trois-dimensions et en temps réel; le language utilisé "
+"(CBOT) ressemble au C++ et à Java et peut être utilisé pour programmer les "
+"robots disponibles dans le jeu."
+
+#. type: =head1
+#: colobot.pod:19
+msgid "OPTIONS"
+msgstr "OPTIONS"
+
+#. type: =item
+#: colobot.pod:23
+msgid "B<-help>"
+msgstr "B<-help>"
+
+#. type: textblock
+#: colobot.pod:25
+msgid "Display a short help text"
+msgstr "Affiche un court texte d'aide"
+
+#. type: =item
+#: colobot.pod:27
+msgid "B<-datadir> F</path/to/data/>"
+msgstr "B<-datadir> F</chemin/vers/les/donnes/>"
+
+#. type: textblock
+#: colobot.pod:29
+msgid "Set custom data directory path"
+msgstr "Définit le chemin vers un répertoire de données spécifique"
+
+#. type: =item
+#: colobot.pod:31
+msgid "B<-debug>"
+msgstr "B<-debug>"
+
+#. type: textblock
+#: colobot.pod:33
+msgid "Enable debug mode (more info printed in logs)"
+msgstr ""
+"Active le mode de déboguage (plus d'informations sont affichées dans le "
+"journal)"
+
+#. type: =item
+#: colobot.pod:35
+msgid "B<-loglevel> I<level>"
+msgstr "B<-loglevel> I<niveau>"
+
+#. type: textblock
+#: colobot.pod:37
+msgid ""
+"Set log level. Possible choices are: trace, debug, info, warn, error, none."
+msgstr ""
+"Définit le niveau de journalisation parmi: trace, debug, info, warn, error, "
+"none."
+
+#. type: =item
+#: colobot.pod:39
+msgid "B<-language> I<lang>"
+msgstr "B<-language> I<langue>"
+
+#. type: textblock
+#: colobot.pod:41
+msgid ""
+"Set language. Note that you can also fill the B<LANG> environment variable."
+msgstr ""
+"Définit la langue. Il est aussi possible d'utiliser la variable "
+"d'environnement B<LANG>."
+
+#. type: =head1
+#: colobot.pod:45
+msgid "AUTHOR"
+msgstr "Auteur"
+
+#. type: textblock
+#: colobot.pod:47
+msgid "This manpage was written by Didier Raboud <S<odyx@debian.org>>."
+msgstr ""
+"Cette page de manuel a été écrite et traduite par Didier Raboud "
+"<S<odyx@debian.org>>."
+
diff --git a/src/desktop/po4a.cfg b/src/desktop/po4a.cfg
new file mode 100644
index 0000000..c251959
--- /dev/null
+++ b/src/desktop/po4a.cfg
@@ -0,0 +1,4 @@
+[po_directory] po/
+
+[type:ini] colobot.ini $lang:lang/$lang/colobot.ini
+[type:pod] colobot.pod $lang:lang/$lang/colobot.pod
diff --git a/src/graphics/engine/test/CMakeLists.txt b/src/graphics/engine/test/CMakeLists.txt
index b1db2c7..f2db152 100644
--- a/src/graphics/engine/test/CMakeLists.txt
+++ b/src/graphics/engine/test/CMakeLists.txt
@@ -1,7 +1,10 @@
cmake_minimum_required(VERSION 2.8)
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(MODELFILE_TEST_SOURCES
modelfile_test.cpp
@@ -15,7 +18,7 @@ add_definitions(-DMODELFILE_NO_ENGINE)
include_directories(
.
../../..
-${GTEST_DIR}/include
+${GTEST_INCLUDE_DIR}
)
add_executable(modelfile_test ${MODELFILE_TEST_SOURCES})
diff --git a/src/graphics/engine/text.cpp b/src/graphics/engine/text.cpp
index 66c73a9..101e01a 100644
--- a/src/graphics/engine/text.cpp
+++ b/src/graphics/engine/text.cpp
@@ -677,7 +677,7 @@ void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::P
return;
int width = 1;
- if (ch.c1 < 32) { // FIXME add support for chars with code 9 10 23
+ if (ch.c1 > 0 && ch.c1 < 32) { // FIXME add support for chars with code 9 10 23
ch.c1 = ' ';
ch.c2 = 0;
ch.c3 = 0;
diff --git a/src/graphics/opengl/test/CMakeLists.txt b/src/graphics/opengl/test/CMakeLists.txt
index be33ac6..154fec8 100644
--- a/src/graphics/opengl/test/CMakeLists.txt
+++ b/src/graphics/opengl/test/CMakeLists.txt
@@ -5,8 +5,11 @@ find_package(SDL REQUIRED)
find_package(SDL_image REQUIRED)
find_package(PNG REQUIRED)
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -O0 -Wold-style-cast -std=gnu++0x")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(ADD_LIBS "")
diff --git a/src/math/test/CMakeLists.txt b/src/math/test/CMakeLists.txt
index 8588bd1..dae4018 100644
--- a/src/math/test/CMakeLists.txt
+++ b/src/math/test/CMakeLists.txt
@@ -1,13 +1,16 @@
cmake_minimum_required(VERSION 2.8)
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
include_directories(
.
../..
../../..
-${GTEST_DIR}/include
+${GTEST_INCLUDE_DIR}
)
add_executable(matrix_test matrix_test.cpp)
diff --git a/src/object/brain.cpp b/src/object/brain.cpp
index 4ce1bf8..ef7309d 100644
--- a/src/object/brain.cpp
+++ b/src/object/brain.cpp
@@ -99,7 +99,7 @@ CBrain::CBrain(CInstanceManager* iMan, CObject* object)
m_selScript = 0;
m_bTraceRecord = false;
- m_traceRecordBuffer = 0;
+ m_traceRecordBuffer = nullptr;
}
// Object's destructor.
@@ -111,12 +111,21 @@ CBrain::~CBrain()
for ( i=0 ; i<BRAINMAXSCRIPT ; i++ )
{
delete m_script[i];
+ m_script[i] = nullptr;
}
delete m_primaryTask;
+ m_primaryTask = nullptr;
+
delete m_secondaryTask;
+ m_secondaryTask = nullptr;
+
delete m_studio;
- delete m_traceRecordBuffer;
+ m_studio = nullptr;
+
+ delete[] m_traceRecordBuffer;
+ m_traceRecordBuffer = nullptr;
+
m_iMan->DeleteInstance(CLASS_BRAIN, this);
}
@@ -2791,8 +2800,8 @@ void CBrain::TraceRecordStart()
m_traceColor = -1;
}
- delete m_traceRecordBuffer;
- m_traceRecordBuffer = static_cast<TraceRecord*>(malloc(sizeof(TraceRecord)*MAXTRACERECORD));
+ delete[] m_traceRecordBuffer;
+ m_traceRecordBuffer = new TraceRecord[MAXTRACERECORD];
m_traceRecordIndex = 0;
}
@@ -2858,10 +2867,10 @@ void CBrain::TraceRecordStop()
int max, i;
char* buffer;
- if ( m_traceRecordBuffer == 0 ) return;
+ if ( m_traceRecordBuffer == nullptr ) return;
max = 10000;
- buffer = static_cast<char*>(malloc(max));
+ buffer = new char[max];
*buffer = 0;
strncat(buffer, "extern void object::AutoDraw()\n{\n", max-1);
@@ -2892,8 +2901,8 @@ void CBrain::TraceRecordStop()
}
TraceRecordPut(buffer, max, lastOper, lastParam);
- delete m_traceRecordBuffer;
- m_traceRecordBuffer = 0;
+ delete[] m_traceRecordBuffer;
+ m_traceRecordBuffer = nullptr;
strncat(buffer, "}\n", max-1);
buffer[max-1] = 0;
@@ -2904,7 +2913,7 @@ void CBrain::TraceRecordStop()
m_script[i] = new CScript(m_iMan, m_object, &m_secondaryTask);
}
m_script[i]->SendScript(buffer);
- delete buffer;
+ delete[] buffer;
}
// Saves an instruction CBOT.
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index 5705649..ca13efc 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -3793,6 +3793,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
int rankObj = 0;
int rankGadget = 0;
CObject* sel = 0;
+ char *locale = setlocale(LC_NUMERIC, nullptr);
+ setlocale(LC_NUMERIC, "C");
while (fgets(line, 500, file) != NULL)
{
@@ -3806,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);
@@ -4526,6 +4528,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
}
m_dialog->SetSceneRead("");
m_dialog->SetStackRead("");
+
+ setlocale(LC_NUMERIC, locale);
}
//! Creates an object of decoration mobile or stationary
diff --git a/src/object/task/taskgoto.cpp b/src/object/task/taskgoto.cpp
index ce778ef..cab57f1 100644
--- a/src/object/task/taskgoto.cpp
+++ b/src/object/task/taskgoto.cpp
@@ -2119,7 +2119,7 @@ bool CTaskGoto::BitmapOpen()
BitmapClose();
m_bmSize = static_cast<int>(3200.0f/BM_DIM_STEP);
- m_bmArray = static_cast<unsigned char*>(malloc(m_bmSize*m_bmSize/8*2));
+ m_bmArray = new unsigned char[m_bmSize*m_bmSize/8*2];
memset(m_bmArray, 0, m_bmSize*m_bmSize/8*2);
m_bmOffset = m_bmSize/2;
@@ -2137,7 +2137,7 @@ bool CTaskGoto::BitmapOpen()
bool CTaskGoto::BitmapClose()
{
- free(m_bmArray);
+ delete[] m_bmArray;
m_bmArray = 0;
return true;
}
diff --git a/src/plugins/plugininterface.h b/src/plugins/plugininterface.h
deleted file mode 100644
index 838dbfd..0000000
--- a/src/plugins/plugininterface.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-/**
- * \file plugins/plugininterface.h
- * \brief Generic plugin interface
- */
-
-#pragma once
-
-
-#include <string>
-
-
-#define PLUGIN_INTERFACE(class_type) \
- static class_type* Plugin##class_type; \
- extern "C" void InstallPluginEntry() { Plugin##class_type = new class_type(); Plugin##class_type->InstallPlugin(); } \
- extern "C" bool UninstallPluginEntry(std::string &reason) { bool result = Plugin##class_type->UninstallPlugin(reason); \
- if (!result) \
- return false; \
- delete Plugin##class_type; \
- return true; } \
- extern "C" CPluginInterface* GetPluginInterfaceEntry() { return static_cast<CPluginInterface*>(Plugin##class_type); }
-
-
-/**
- * \class CPluginInterface
- *
- * \brief Generic plugin interface. All plugins that will be managed by plugin manager have to derive from this class.
- *
- */
-class CPluginInterface {
- public:
- /** Function to get plugin name or description
- * \return returns plugin name
- */
- inline virtual std::string PluginName() { return "abc"; }
-
- /** Function to get plugin version. 1 means version 0.01, 2 means 0.02 etc.
- * \return number indicating plugin version
- */
- inline virtual int PluginVersion() { return 0; }
-
- /** Function to initialize plugin
- */
- inline virtual void InstallPlugin() {}
-
- /** Function called before removing plugin
- */
- inline virtual bool UninstallPlugin(std::string &) { return true; }
-};
-
diff --git a/src/plugins/pluginloader.cpp b/src/plugins/pluginloader.cpp
deleted file mode 100644
index bd0c8be..0000000
--- a/src/plugins/pluginloader.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2012 Polish Portal of Colobot (PPC)
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-
-#include "plugins/pluginloader.h"
-
-
-CPluginLoader::CPluginLoader(std::string filename)
-{
- mInterface = nullptr;
- mFilename = filename;
- mLoaded = false;
-}
-
-
-std::string CPluginLoader::GetName()
-{
- if (mLoaded)
- return mInterface->PluginName();
- return "(not loaded)";
-}
-
-
-int CPluginLoader::GetVersion()
-{
- if (mLoaded)
- return mInterface->PluginVersion();
- return 0;
-}
-
-
-bool CPluginLoader::IsLoaded()
-{
- return mLoaded;
-}
-
-
-bool CPluginLoader::UnloadPlugin()
-{
- if (!mLoaded) {
- GetLogger()->Warn("Plugin %s is not loaded.\n");
- return true;
- }
-
- bool (*uninstall)(std::string &) = reinterpret_cast<bool (*)(std::string &)>( lt_dlsym(mHandle, "UninstallPluginEntry") );
- if (!uninstall) {
- GetLogger()->Error("Error getting UninstallPluginEntry for plugin %s: %s\n", mFilename.c_str(), lt_dlerror());
- return false;
- }
-
- std::string reason;
- if (!uninstall(reason)) {
- GetLogger()->Error("Could not unload plugin %s: %s\n", mFilename.c_str(), reason.c_str());
- return false;
- }
-
- lt_dlclose(mHandle);
- mLoaded = false;
- return true;
-}
-
-
-bool CPluginLoader::LoadPlugin()
-{
- if (mFilename.length() == 0) {
- GetLogger()->Warn("No plugin filename specified.\n");
- return false;
- }
-
- mHandle = lt_dlopenext(mFilename.c_str());
- if (!mHandle) {
- GetLogger()->Error("Error loading plugin %s: %s\n", mFilename.c_str(), lt_dlerror());
- return false;
- }
-
- void (*install)() = reinterpret_cast<void (*)()>( lt_dlsym(mHandle, "InstallPluginEntry") );
- if (!install) {
- GetLogger()->Error("Error getting InstallPluginEntry for plugin %s: %s\n", mFilename.c_str(), lt_dlerror());
- return false;
- }
-
- CPluginInterface* (*getInterface)() = reinterpret_cast<CPluginInterface* (*)()>( lt_dlsym(mHandle, "GetPluginInterfaceEntry") );
-
- if (!getInterface) {
- GetLogger()->Error("Error getting GetPluginInterfaceEntry for plugin %s: %s\n", mFilename.c_str(), lt_dlerror());
- return false;
- }
-
- install();
- mInterface = getInterface();
- mLoaded = true;
- return true;
-}
-
-
-bool CPluginLoader::SetFilename(std::string filename)
-{
- bool ok = true;
- if (mLoaded)
- ok = UnloadPlugin();
-
- if (ok)
- mFilename = filename;
- return ok;
-}
-
-
-std::string CPluginLoader::GetFilename()
-{
- return mFilename;
-}
diff --git a/src/plugins/pluginloader.h b/src/plugins/pluginloader.h
deleted file mode 100644
index e8c2c73..0000000
--- a/src/plugins/pluginloader.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-/**
- * \file plugins/pluginloader.h
- * \brief Plugin loader interface
- */
-
-#pragma once
-
-
-#include "common/logger.h"
-
-#include "plugins/plugininterface.h"
-
-#include <ltdl.h>
-#include <string>
-
-
-/**
- * \class CPluginLoader
- *
- * \brief Plugin loader interface. Plugin manager uses this class to load plugins.
- *
- */
-class CPluginLoader {
- public:
- /** Class contructor
- * \param filename plugin filename
- */
- CPluginLoader(std::string filename);
-
- /** Function to get plugin name or description
- * \return returns plugin name
- */
- std::string GetName();
-
- /** Function to get plugin version
- * \return returns plugin version
- */
- int GetVersion();
-
- /** Function to unload plugin
- * \return returns true on success
- */
- bool UnloadPlugin();
-
- /** Function to load plugin
- * \return returns true on success
- */
- bool LoadPlugin();
-
- /** Function to check if plugin is loaded
- * \return returns true if plugin is loaded
- */
- bool IsLoaded();
-
- /** Function to set plugin filename
- * \return returns true on success. Action can fail if plugin was loaded and cannot be unloaded
- */
- bool SetFilename(std::string);
-
- /** Function to get plugin filename
- * \return returns plugin filename
- */
- std::string GetFilename();
-
-
- private:
- CPluginInterface* mInterface;
- std::string mFilename;
- lt_dlhandle mHandle;
- bool mLoaded;
-};
diff --git a/src/plugins/pluginmanager.cpp b/src/plugins/pluginmanager.cpp
deleted file mode 100644
index f4dbcdb..0000000
--- a/src/plugins/pluginmanager.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2012 Polish Portal of Colobot (PPC)
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-
-#include "plugins/pluginmanager.h"
-
-
-template<> CPluginManager* CSingleton<CPluginManager>::mInstance = nullptr;
-
-
-CPluginManager::CPluginManager()
-{
- lt_dlinit();
-}
-
-
-CPluginManager::~CPluginManager()
-{
- UnloadAllPlugins();
- lt_dlexit();
-}
-
-
-
-void CPluginManager::LoadFromProfile()
-{
- GetLogger()->Info("Trying to load from profile...\n");
- std::vector< std::string > dirs = GetProfile().GetLocalProfileSection("Plugins", "Path");
- std::vector< std::string > plugins = GetProfile().GetLocalProfileSection("Plugins", "File");
-
- GetLogger()->Info("Path %d, files %d\n", dirs.size(), plugins.size());
- for (std::string dir : dirs)
- m_folders.insert(dir);
-
- for (std::string plugin : plugins) {
- GetLogger()->Info("Trying to load plugin %s...\n", plugin.c_str());
- LoadPlugin(plugin);
- }
-}
-
-
-bool CPluginManager::LoadPlugin(std::string filename)
-{
- bool result = false;
- CPluginLoader *loader = new CPluginLoader("");
- for (std::string dir : m_folders) {
- loader->SetFilename(dir + "/" + filename);
- result = loader->LoadPlugin();
- if (result) {
- GetLogger()->Info("Plugin %s (%s) version %0.2f loaded!\n", filename.c_str(), loader->GetName().c_str(), loader->GetVersion() / 100.0f);
- m_plugins.push_back(loader);
- break;
- }
- }
- return result;
-}
-
-
-bool CPluginManager::UnloadPlugin(std::string filename)
-{
- std::vector<CPluginLoader *>::iterator it;
- GetLogger()->Info("Trying to unload plugin %s...\n", filename.c_str());
- for (it = m_plugins.begin(); it != m_plugins.end(); it++) {
- CPluginLoader *plugin = *it;
- if (NameEndsWith(plugin->GetFilename(), filename)) {
- m_plugins.erase(it);
- plugin->UnloadPlugin();
- delete plugin;
- return true;
- }
- }
- return false;
-}
-
-
-bool CPluginManager::AddSearchDirectory(std::string dir)
-{
- m_folders.insert(dir);
- return true;
-}
-
-
-bool CPluginManager::RemoveSearchDirectory(std::string dir)
-{
- m_folders.erase(dir);
- return false;
-}
-
-
-bool CPluginManager::UnloadAllPlugins()
-{
- bool allOk = true;
- std::vector<CPluginLoader *>::iterator it;
- for (it = m_plugins.begin(); it != m_plugins.end(); it++) {
- CPluginLoader *plugin = *it;
- bool result;
-
- GetLogger()->Info("Trying to unload plugin %s (%s)...\n", plugin->GetFilename().c_str(), plugin->GetName().c_str());
- result = plugin->UnloadPlugin();
- if (!result) {
- allOk = false;
- continue;
- }
- delete plugin;
- m_plugins.erase(it);
- }
-
- return allOk;
-}
-
-
-bool CPluginManager::NameEndsWith(std::string filename, std::string ending)
-{
- if (filename.length() > ending.length()) {
- std::string fileEnd = filename.substr(filename.length() - ending.length());
- return (fileEnd == ending);
- }
- return false;
-}
diff --git a/src/plugins/pluginmanager.h b/src/plugins/pluginmanager.h
deleted file mode 100644
index 2798483..0000000
--- a/src/plugins/pluginmanager.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// * This file is part of the COLOBOT source code
-// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
-// *
-// * This program is free software: you can redistribute it and/or modify
-// * it under the terms of the GNU General Public License as published by
-// * the Free Software Foundation, either version 3 of the License, or
-// * (at your option) any later version.
-// *
-// * This program is distributed in the hope that it will be useful,
-// * but WITHOUT ANY WARRANTY; without even the implied warranty of
-// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// * GNU General Public License for more details.
-// *
-// * You should have received a copy of the GNU General Public License
-// * along with this program. If not, see http://www.gnu.org/licenses/.
-
-/**
- * \file plugins/pluginmanager.h
- * \brief Plugin manager class.
- */
-
-#pragma once
-
-
-#include "common/logger.h"
-#include "common/profile.h"
-
-#include "common/singleton.h"
-
-#include "plugins/pluginloader.h"
-
-#include <string>
-#include <set>
-#include <vector>
-
-
-/**
- * \class CPluginManager
- *
- * \brief Plugin manager class. Plugin manager can load plugins from colobot.ini or manually specified files.
- *
- */
-class CPluginManager : public CSingleton<CPluginManager> {
- public:
- CPluginManager();
- ~CPluginManager();
-
- /** Function loads plugin list and path list from profile file
- */
- void LoadFromProfile();
-
- /** Function loads specified plugin
- * \param filename plugin filename
- * \return returns true on success
- */
- bool LoadPlugin(std::string filename);
-
- /** Function unloads specified plugin
- * \param filename plugin filename
- * \return returns true on success
- */
- bool UnloadPlugin(std::string filename);
-
- /** Function adds path to be checked when searching for plugin file. If path was already added it will be ignored
- * \param dir plugin search path
- * \return returns true on success
- */
- bool AddSearchDirectory(std::string dir);
-
- /** Function removes path from list
- * \param dir plugin search path
- * \return returns true on success
- */
- bool RemoveSearchDirectory(std::string dir);
-
- /** Function tries to unload all plugins
- * \return returns true on success
- */
- bool UnloadAllPlugins();
-
- private:
- bool NameEndsWith(std::string, std::string);
-
- std::set< std::string > m_folders;
- std::vector<CPluginLoader *> m_plugins;
-};
-
diff --git a/src/plugins/test/CMakeLists.txt b/src/plugins/test/CMakeLists.txt
deleted file mode 100644
index 5f86b6f..0000000
--- a/src/plugins/test/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -O0 -std=c++11 -rdynamic")
-
-add_executable(manager_test manager_test.cpp ../../common/logger.cpp ../../common/profile.cpp ../../common/iman.cpp ../pluginmanager.cpp ../pluginloader.cpp)
-
-include_directories(".")
-include_directories("../../")
-include_directories("../../../")
-
-target_link_libraries(manager_test ltdl)
diff --git a/src/plugins/test/colobot.ini b/src/plugins/test/colobot.ini
deleted file mode 100644
index 08956be..0000000
--- a/src/plugins/test/colobot.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[Plugins]
-Path=.
-File=libopenalsound.so
diff --git a/src/plugins/test/manager_test.cpp b/src/plugins/test/manager_test.cpp
deleted file mode 100644
index d921c1d..0000000
--- a/src/plugins/test/manager_test.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <common/logger.h>
-#include <common/profile.h>
-#include <common/iman.h>
-#include <plugins/pluginmanager.h>
-#include <sound/sound.h>
-
-
-int main() {
- new CLogger();
- new CProfile();
- new CInstanceManager();
- CPluginManager *mgr = new CPluginManager();
-
- if (!GetProfile()->InitCurrentDirectory()) {
- GetLogger()->Error("Config not found!\n");
- return 1;
- }
-
- mgr->LoadFromProfile();
- CSoundInterface *sound = static_cast<CSoundInterface*>(CInstanceManager::GetInstancePointer()->SearchInstance(CLASS_SOUND));
-
- if (!sound) {
- GetLogger()->Error("Sound not loaded!\n");
- return 2;
- }
-
- sound->Create(true);
- mgr->UnloadAllPlugins();
-
- return 0;
-}
diff --git a/src/po/CMakeLists.txt b/src/po/CMakeLists.txt
new file mode 100644
index 0000000..df667dd
--- /dev/null
+++ b/src/po/CMakeLists.txt
@@ -0,0 +1,18 @@
+cmake_minimum_required(VERSION 2.8)
+
+set(_potFile colobot.pot)
+
+find_program(XGETTEXT_CMD xgettext)
+
+add_custom_command(OUTPUT ${_potFile}
+ COMMAND ${XGETTEXT_CMD} ../app/app.cpp --output=${_potFile}
+ COMMAND ${XGETTEXT_CMD} ../common/restext.cpp --output=${_potFile} --join-existing --extract-all --no-location
+
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Extract translatable messages to ${_potFile}"
+)
+
+add_custom_target(update-pot DEPENDS ${_potFile})
+
+file(GLOB _poFiles *.po)
+gettext_create_translations(${_potFile} ALL ${_poFiles})
diff --git a/src/po/colobot.pot b/src/po/colobot.pot
new file mode 100644
index 0000000..e1f9dc7
--- /dev/null
+++ b/src/po/colobot.pot
@@ -0,0 +1,1818 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \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"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Colobot rules!"
+msgstr ""
+
+msgid "SatCom"
+msgstr ""
+
+msgid "Maximize"
+msgstr ""
+
+msgid "Minimize"
+msgstr ""
+
+msgid "Normal size"
+msgstr ""
+
+msgid "Close"
+msgstr ""
+
+msgid "Program editor"
+msgstr ""
+
+msgid "New"
+msgstr ""
+
+msgid "Player"
+msgstr ""
+
+msgid "New ..."
+msgstr ""
+
+msgid " or "
+msgstr ""
+
+msgid "COLOBOT"
+msgstr ""
+
+msgid "Programming exercises"
+msgstr ""
+
+msgid "Challenges"
+msgstr ""
+
+msgid "Missions"
+msgstr ""
+
+msgid "Free game"
+msgstr ""
+
+msgid "User levels"
+msgstr ""
+
+msgid "Prototypes"
+msgstr ""
+
+msgid "Options"
+msgstr ""
+
+msgid "Player's name"
+msgstr ""
+
+msgid "Customize your appearance"
+msgstr ""
+
+msgid "Save the current mission"
+msgstr ""
+
+msgid "Load a saved mission"
+msgstr ""
+
+msgid " Chapters:"
+msgstr ""
+
+msgid " Planets:"
+msgstr ""
+
+msgid " User levels:"
+msgstr ""
+
+msgid " Exercises in the chapter:"
+msgstr ""
+
+msgid " Challenges in the chapter:"
+msgstr ""
+
+msgid " Missions on this planet:"
+msgstr ""
+
+msgid " Free game on this planet:"
+msgstr ""
+
+msgid " Missions on this level:"
+msgstr ""
+
+msgid " Prototypes on this planet:"
+msgstr ""
+
+msgid " Free game on this chapter:"
+msgstr ""
+
+msgid " Summary:"
+msgstr ""
+
+msgid " Drivers:"
+msgstr ""
+
+msgid " Resolution:"
+msgstr ""
+
+msgid "1) First click on the key you want to redefine."
+msgstr ""
+
+msgid "2) Then press the key you want to use instead."
+msgstr ""
+
+msgid "Face type:"
+msgstr ""
+
+msgid "Eyeglasses:"
+msgstr ""
+
+msgid "Hair color:"
+msgstr ""
+
+msgid "Suit color:"
+msgstr ""
+
+msgid "Strip color:"
+msgstr ""
+
+msgid "Do you want to quit COLOBOT ?"
+msgstr ""
+
+msgid "Quit\\Quit COLOBOT"
+msgstr ""
+
+msgid "Quit the mission?"
+msgstr ""
+
+msgid "Abort\\Abort the current mission"
+msgstr ""
+
+msgid "Continue\\Continue the current mission"
+msgstr ""
+
+msgid "Continue\\Continue the game"
+msgstr ""
+
+msgid "Do you really want to destroy the selected building?"
+msgstr ""
+
+#, c-format
+msgid "Do you want to delete %s's saved games? "
+msgstr ""
+
+msgid "Delete"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "LOADING"
+msgstr ""
+
+msgid "Keyword help(\\key cbot;)"
+msgstr ""
+
+msgid "Compilation ok (0 errors)"
+msgstr ""
+
+msgid "Program finished"
+msgstr ""
+
+msgid "\\b;List of objects\n"
+msgstr ""
+
+msgid "\\b;Robots\n"
+msgstr ""
+
+msgid "\\b;Buildings\n"
+msgstr ""
+
+msgid "\\b;Moveable objects\n"
+msgstr ""
+
+msgid "\\b;Aliens\n"
+msgstr ""
+
+msgid "\\c; (none)\\n;\n"
+msgstr ""
+
+msgid "\\b;Error\n"
+msgstr ""
+
+msgid ""
+"The list is only available if a \\l;radar station\\u object\\radar; is "
+"working.\n"
+msgstr ""
+
+msgid "Open"
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+#, c-format
+msgid "Folder: %s"
+msgstr ""
+
+msgid "Name:"
+msgstr ""
+
+msgid "Folder:"
+msgstr ""
+
+msgid "Private\\Private folder"
+msgstr ""
+
+msgid "Public\\Common folder"
+msgstr ""
+
+msgid "Developed by :"
+msgstr ""
+
+msgid "www.epsitec.com"
+msgstr ""
+
+msgid " "
+msgstr ""
+
+msgid "Recorder"
+msgstr ""
+
+msgid "OK"
+msgstr ""
+
+msgid "Next"
+msgstr ""
+
+msgid "Previous"
+msgstr ""
+
+msgid "Menu (\\key quit;)"
+msgstr ""
+
+msgid "Exercises\\Programming exercises"
+msgstr ""
+
+msgid "Challenges\\Programming challenges"
+msgstr ""
+
+msgid "Missions\\Select mission"
+msgstr ""
+
+msgid "Free game\\Free game without a specific goal"
+msgstr ""
+
+msgid "User\\User levels"
+msgstr ""
+
+msgid "Proto\\Prototypes under development"
+msgstr ""
+
+msgid "New player\\Choose player's name"
+msgstr ""
+
+msgid "Options\\Preferences"
+msgstr ""
+
+msgid "Restart\\Restart the mission from the beginning"
+msgstr ""
+
+msgid "Save\\Save the current mission "
+msgstr ""
+
+msgid "Load\\Load a saved mission"
+msgstr ""
+
+msgid "\\Return to COLOBOT"
+msgstr ""
+
+msgid "<< Back \\Back to the previous screen"
+msgstr ""
+
+msgid "Play\\Start mission!"
+msgstr ""
+
+msgid "Device\\Driver and resolution settings"
+msgstr ""
+
+msgid "Graphics\\Graphics settings"
+msgstr ""
+
+msgid "Game\\Game settings"
+msgstr ""
+
+msgid "Controls\\Keyboard, joystick and mouse settings"
+msgstr ""
+
+msgid "Sound\\Music and game sound volume"
+msgstr ""
+
+msgid "Unit"
+msgstr ""
+
+msgid "Resolution"
+msgstr ""
+
+msgid "Full screen\\Full screen or window mode"
+msgstr ""
+
+msgid "Apply changes\\Activates the changed settings"
+msgstr ""
+
+msgid "Robbie\\Your assistant"
+msgstr ""
+
+msgid "Shadows\\Shadows on the ground"
+msgstr ""
+
+msgid "Marks on the ground\\Marks on the ground"
+msgstr ""
+
+msgid "Dust\\Dust and dirt on bots and buildings"
+msgstr ""
+
+msgid "Fog\\Fog"
+msgstr ""
+
+msgid "Sunbeams\\Sunbeams in the sky"
+msgstr ""
+
+msgid "Sky\\Clouds and nebulae"
+msgstr ""
+
+msgid "Planets and stars\\Astronomical objects in the sky"
+msgstr ""
+
+msgid "Dynamic lighting\\Mobile light sources"
+msgstr ""
+
+msgid "Number of particles\\Explosions, dust, reflections, etc."
+msgstr ""
+
+msgid "Depth of field\\Maximum visibility"
+msgstr ""
+
+msgid "Details\\Visual quality of 3D objects"
+msgstr ""
+
+msgid "Textures\\Quality of textures "
+msgstr ""
+
+msgid "Num of decorative objects\\Number of purely ornamental objects"
+msgstr ""
+
+msgid "Particles in the interface\\Steam clouds and sparks in the interface"
+msgstr ""
+
+msgid "Reflections on the buttons \\Shiny buttons"
+msgstr ""
+
+msgid "Help balloons\\Explain the function of the buttons"
+msgstr ""
+
+msgid "Film sequences\\Films before and after the missions"
+msgstr ""
+
+msgid "Exit film\\Film at the exit of exercises"
+msgstr ""
+
+msgid "Friendly fire\\Your shooting can damage your own objects "
+msgstr ""
+
+msgid "Scrolling\\Scrolling when the mouse touches right or left border"
+msgstr ""
+
+msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
+msgstr ""
+
+msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
+msgstr ""
+
+msgid "Quake at explosions\\The screen shakes at explosions"
+msgstr ""
+
+msgid "Mouse shadow\\Gives the mouse a shadow"
+msgstr ""
+
+msgid "Automatic indent\\When program editing"
+msgstr ""
+
+msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
+msgstr ""
+
+msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
+msgstr ""
+
+msgid "Standard controls\\Standard key functions"
+msgstr ""
+
+msgid "Turn left\\turns the bot to the left"
+msgstr ""
+
+msgid "Turn right\\turns the bot to the right"
+msgstr ""
+
+msgid "Forward\\Moves forward"
+msgstr ""
+
+msgid "Backward\\Moves backward"
+msgstr ""
+
+msgid "Climb\\Increases the power of the jet"
+msgstr ""
+
+msgid "Descend\\Reduces the power of the jet"
+msgstr ""
+
+msgid "Change camera\\Switches between onboard camera and following camera"
+msgstr ""
+
+msgid "Previous object\\Selects the previous object"
+msgstr ""
+
+msgid ""
+"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
+msgstr ""
+
+msgid "Camera closer\\Moves the camera forward"
+msgstr ""
+
+msgid "Camera back\\Moves the camera backward"
+msgstr ""
+
+msgid "Next object\\Selects the next object"
+msgstr ""
+
+msgid "Select the astronaut\\Selects the astronaut"
+msgstr ""
+
+msgid "Quit\\Quit the current mission or exercise"
+msgstr ""
+
+msgid "Instructions\\Shows the instructions for the current mission"
+msgstr ""
+
+msgid "Programming help\\Gives more detailed help with programming"
+msgstr ""
+
+msgid "Key word help\\More detailed help about key words"
+msgstr ""
+
+msgid "Origin of last message\\Shows where the last message was sent from"
+msgstr ""
+
+msgid "Speed 1.0x\\Normal speed"
+msgstr ""
+
+msgid "Speed 1.5x\\1.5 times faster"
+msgstr ""
+
+msgid "Speed 2.0x\\Double speed"
+msgstr ""
+
+msgid "Speed 3.0x\\Three times faster"
+msgstr ""
+
+msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
+msgstr ""
+
+msgid "Background sound :\\Volume of audio tracks on the CD"
+msgstr ""
+
+msgid "3D sound\\3D positioning of the sound"
+msgstr ""
+
+msgid "Lowest\\Minimum graphic quality (highest frame rate)"
+msgstr ""
+
+msgid "Normal\\Normal graphic quality"
+msgstr ""
+
+msgid "Highest\\Highest graphic quality (lowest frame rate)"
+msgstr ""
+
+msgid "Mute\\No sound"
+msgstr ""
+
+msgid "Normal\\Normal sound volume"
+msgstr ""
+
+msgid "Use a joystick\\Joystick or keyboard"
+msgstr ""
+
+msgid ""
+"Access to solution\\Shows the solution (detailed instructions for missions)"
+msgstr ""
+
+msgid "\\New player name"
+msgstr ""
+
+msgid "OK\\Choose the selected player"
+msgstr ""
+
+msgid "Cancel\\Keep current player name"
+msgstr ""
+
+msgid "Delete player\\Deletes the player from the list"
+msgstr ""
+
+msgid "Player name"
+msgstr ""
+
+msgid "Save\\Saves the current mission"
+msgstr ""
+
+msgid "Load\\Loads the selected mission"
+msgstr ""
+
+msgid "List of saved missions"
+msgstr ""
+
+msgid "Filename:"
+msgstr ""
+
+msgid "Mission name"
+msgstr ""
+
+msgid "Photography"
+msgstr ""
+
+msgid "Delete\\Deletes the selected file"
+msgstr ""
+
+msgid "Appearance\\Choose your appearance"
+msgstr ""
+
+msgid "Standard\\Standard appearance settings"
+msgstr ""
+
+msgid "Head\\Face and hair"
+msgstr ""
+
+msgid "Suit\\Astronaut suit"
+msgstr ""
+
+msgid "\\Turn left"
+msgstr ""
+
+msgid "\\Turn right"
+msgstr ""
+
+msgid "Red"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
+msgid "Blue"
+msgstr ""
+
+msgid "\\Face 1"
+msgstr ""
+
+msgid "\\Face 4"
+msgstr ""
+
+msgid "\\Face 3"
+msgstr ""
+
+msgid "\\Face 2"
+msgstr ""
+
+msgid "\\No eyeglasses"
+msgstr ""
+
+msgid "\\Eyeglasses 1"
+msgstr ""
+
+msgid "\\Eyeglasses 2"
+msgstr ""
+
+msgid "\\Eyeglasses 3"
+msgstr ""
+
+msgid "\\Eyeglasses 4"
+msgstr ""
+
+msgid "\\Eyeglasses 5"
+msgstr ""
+
+msgid "Previous selection (\\key desel;)"
+msgstr ""
+
+msgid "Turn left (\\key left;)"
+msgstr ""
+
+msgid "Turn right (\\key right;)"
+msgstr ""
+
+msgid "Forward (\\key up;)"
+msgstr ""
+
+msgid "Backward (\\key down;)"
+msgstr ""
+
+msgid "Up (\\key gup;)"
+msgstr ""
+
+msgid "Down (\\key gdown;)"
+msgstr ""
+
+msgid "Grab or drop (\\key action;)"
+msgstr ""
+
+msgid "..in front"
+msgstr ""
+
+msgid "..behind"
+msgstr ""
+
+msgid "..power cell"
+msgstr ""
+
+msgid "Instructions for the mission (\\key help;)"
+msgstr ""
+
+msgid "Take off to finish the mission"
+msgstr ""
+
+msgid "Build a derrick"
+msgstr ""
+
+msgid "Build a power station"
+msgstr ""
+
+msgid "Build a bot factory"
+msgstr ""
+
+msgid "Build a repair center"
+msgstr ""
+
+msgid "Build a converter"
+msgstr ""
+
+msgid "Build a defense tower"
+msgstr ""
+
+msgid "Build a research center"
+msgstr ""
+
+msgid "Build a radar station"
+msgstr ""
+
+msgid "Build a power cell factory"
+msgstr ""
+
+msgid "Build an autolab"
+msgstr ""
+
+msgid "Build a nuclear power plant"
+msgstr ""
+
+msgid "Build a lightning conductor"
+msgstr ""
+
+msgid "Build a exchange post"
+msgstr ""
+
+msgid "Show if the ground is flat"
+msgstr ""
+
+msgid "Plant a flag"
+msgstr ""
+
+msgid "Remove a flag"
+msgstr ""
+
+msgid "\\Blue flags"
+msgstr ""
+
+msgid "\\Red flags"
+msgstr ""
+
+msgid "\\Green flags"
+msgstr ""
+
+msgid "\\Yellow flags"
+msgstr ""
+
+msgid "\\Violet flags"
+msgstr ""
+
+msgid "Build a winged grabber"
+msgstr ""
+
+msgid "Build a tracked grabber"
+msgstr ""
+
+msgid "Build a wheeled grabber"
+msgstr ""
+
+msgid "Build a legged grabber"
+msgstr ""
+
+msgid "Build a winged shooter"
+msgstr ""
+
+msgid "Build a tracked shooter"
+msgstr ""
+
+msgid "Build a wheeled shooter"
+msgstr ""
+
+msgid "Build a legged shooter"
+msgstr ""
+
+msgid "Build a winged orga shooter"
+msgstr ""
+
+msgid "Build a tracked orga shooter"
+msgstr ""
+
+msgid "Build a wheeled orga shooter"
+msgstr ""
+
+msgid "Build a legged orga shooter"
+msgstr ""
+
+msgid "Build a winged sniffer"
+msgstr ""
+
+msgid "Build a tracked sniffer"
+msgstr ""
+
+msgid "Build a wheeled sniffer"
+msgstr ""
+
+msgid "Build a legged sniffer"
+msgstr ""
+
+msgid "Build a thumper"
+msgstr ""
+
+msgid "Build a phazer shooter"
+msgstr ""
+
+msgid "Build a recycler"
+msgstr ""
+
+msgid "Build a shielder"
+msgstr ""
+
+msgid "Build a subber"
+msgstr ""
+
+msgid "Run research program for tracked bots"
+msgstr ""
+
+msgid "Run research program for winged bots"
+msgstr ""
+
+msgid "Run research program for thumper"
+msgstr ""
+
+msgid "Run research program for shooter"
+msgstr ""
+
+msgid "Run research program for defense tower"
+msgstr ""
+
+msgid "Run research program for phazer shooter"
+msgstr ""
+
+msgid "Run research program for shielder"
+msgstr ""
+
+msgid "Run research program for nuclear power"
+msgstr ""
+
+msgid "Run research program for legged bots"
+msgstr ""
+
+msgid "Run research program for orga shooter"
+msgstr ""
+
+msgid "Return to start"
+msgstr ""
+
+msgid "Sniff (\\key action;)"
+msgstr ""
+
+msgid "Thump (\\key action;)"
+msgstr ""
+
+msgid "Shoot (\\key action;)"
+msgstr ""
+
+msgid "Recycle (\\key action;)"
+msgstr ""
+
+msgid "Extend shield (\\key action;)"
+msgstr ""
+
+msgid "Withdraw shield (\\key action;)"
+msgstr ""
+
+msgid "Shield radius"
+msgstr ""
+
+msgid "Execute the selected program"
+msgstr ""
+
+msgid "Edit the selected program"
+msgstr ""
+
+msgid "\\SatCom on standby"
+msgstr ""
+
+msgid "Destroy the building"
+msgstr ""
+
+msgid "Energy level"
+msgstr ""
+
+msgid "Shield level"
+msgstr ""
+
+msgid "Jet temperature"
+msgstr ""
+
+msgid "Still working ..."
+msgstr ""
+
+msgid "Number of insects detected"
+msgstr ""
+
+msgid "Transmitted information"
+msgstr ""
+
+msgid "Compass"
+msgstr ""
+
+msgid "Zoom mini-map"
+msgstr ""
+
+msgid "Camera (\\key camera;)"
+msgstr ""
+
+msgid "Camera to left"
+msgstr ""
+
+msgid "Camera to right"
+msgstr ""
+
+msgid "Camera nearest"
+msgstr ""
+
+msgid "Camera awayest"
+msgstr ""
+
+msgid "Help about selected object"
+msgstr ""
+
+msgid "Show the solution"
+msgstr ""
+
+msgid "Switch bots <-> buildings"
+msgstr ""
+
+msgid "Show the range"
+msgstr ""
+
+msgid "\\Raise the pencil"
+msgstr ""
+
+msgid "\\Use the black pencil"
+msgstr ""
+
+msgid "\\Use the yellow pencil"
+msgstr ""
+
+msgid "\\Use the orange pencil"
+msgstr ""
+
+msgid "\\Use the red pencil"
+msgstr ""
+
+msgid "\\Use the purple pencil"
+msgstr ""
+
+msgid "\\Use the blue pencil"
+msgstr ""
+
+msgid "\\Use the green pencil"
+msgstr ""
+
+msgid "\\Use the brown pencil"
+msgstr ""
+
+msgid "\\Start recording"
+msgstr ""
+
+msgid "\\Stop recording"
+msgstr ""
+
+msgid "Show the place"
+msgstr ""
+
+msgid "Continue"
+msgstr ""
+
+msgid "Command line"
+msgstr ""
+
+msgid "Game speed"
+msgstr ""
+
+msgid "Back"
+msgstr ""
+
+msgid "Forward"
+msgstr ""
+
+msgid "Home"
+msgstr ""
+
+msgid "Copy"
+msgstr ""
+
+msgid "Size 1"
+msgstr ""
+
+msgid "Size 2"
+msgstr ""
+
+msgid "Size 3"
+msgstr ""
+
+msgid "Size 4"
+msgstr ""
+
+msgid "Size 5"
+msgstr ""
+
+msgid "Instructions from Houston"
+msgstr ""
+
+msgid "Satellite report"
+msgstr ""
+
+msgid "Programs dispatched by Houston"
+msgstr ""
+
+msgid "List of objects"
+msgstr ""
+
+msgid "Programming help"
+msgstr ""
+
+msgid "Solution"
+msgstr ""
+
+msgid "OK\\Close program editor and return to game"
+msgstr ""
+
+msgid "Cancel\\Cancel all changes"
+msgstr ""
+
+msgid "Open (Ctrl+o)"
+msgstr ""
+
+msgid "Save (Ctrl+s)"
+msgstr ""
+
+msgid "Undo (Ctrl+z)"
+msgstr ""
+
+msgid "Cut (Ctrl+x)"
+msgstr ""
+
+msgid "Copy (Ctrl+c)"
+msgstr ""
+
+msgid "Paste (Ctrl+v)"
+msgstr ""
+
+msgid "Font size"
+msgstr ""
+
+msgid "Instructions (\\key help;)"
+msgstr ""
+
+msgid "Programming help (\\key prog;)"
+msgstr ""
+
+msgid "Compile"
+msgstr ""
+
+msgid "Execute/stop"
+msgstr ""
+
+msgid "Pause/continue"
+msgstr ""
+
+msgid "One step"
+msgstr ""
+
+msgid "Gantry crane"
+msgstr ""
+
+msgid "Spaceship"
+msgstr ""
+
+msgid "Derrick"
+msgstr ""
+
+msgid "Bot factory"
+msgstr ""
+
+msgid "Repair center"
+msgstr ""
+
+msgid "Destroyer"
+msgstr ""
+
+msgid "Power station"
+msgstr ""
+
+msgid "Converts ore to titanium"
+msgstr ""
+
+msgid "Defense tower"
+msgstr ""
+
+msgid "Nest"
+msgstr ""
+
+msgid "Research center"
+msgstr ""
+
+msgid "Radar station"
+msgstr ""
+
+msgid "Information exchange post"
+msgstr ""
+
+msgid "Power cell factory"
+msgstr ""
+
+msgid "Autolab"
+msgstr ""
+
+msgid "Nuclear power station"
+msgstr ""
+
+msgid "Lightning conductor"
+msgstr ""
+
+msgid "Vault"
+msgstr ""
+
+msgid "Houston Mission Control"
+msgstr ""
+
+msgid "Target"
+msgstr ""
+
+msgid "Start"
+msgstr ""
+
+msgid "Finish"
+msgstr ""
+
+msgid "Titanium ore"
+msgstr ""
+
+msgid "Uranium ore"
+msgstr ""
+
+msgid "Organic matter"
+msgstr ""
+
+msgid "Titanium"
+msgstr ""
+
+msgid "Power cell"
+msgstr ""
+
+msgid "Nuclear power cell"
+msgstr ""
+
+msgid "Black box"
+msgstr ""
+
+msgid "Key A"
+msgstr ""
+
+msgid "Key B"
+msgstr ""
+
+msgid "Key C"
+msgstr ""
+
+msgid "Key D"
+msgstr ""
+
+msgid "Explosive"
+msgstr ""
+
+msgid "Fixed mine"
+msgstr ""
+
+msgid "Survival kit"
+msgstr ""
+
+msgid "Checkpoint"
+msgstr ""
+
+msgid "Blue flag"
+msgstr ""
+
+msgid "Red flag"
+msgstr ""
+
+msgid "Green flag"
+msgstr ""
+
+msgid "Yellow flag"
+msgstr ""
+
+msgid "Violet flag"
+msgstr ""
+
+msgid "Energy deposit (site for power station)"
+msgstr ""
+
+msgid "Uranium deposit (site for derrick)"
+msgstr ""
+
+msgid "Found key A (site for derrick)"
+msgstr ""
+
+msgid "Found key B (site for derrick)"
+msgstr ""
+
+msgid "Found key C (site for derrick)"
+msgstr ""
+
+msgid "Found key D (site for derrick)"
+msgstr ""
+
+msgid "Titanium deposit (site for derrick)"
+msgstr ""
+
+msgid "Practice bot"
+msgstr ""
+
+msgid "Winged grabber"
+msgstr ""
+
+msgid "Tracked grabber"
+msgstr ""
+
+msgid "Wheeled grabber"
+msgstr ""
+
+msgid "Legged grabber"
+msgstr ""
+
+msgid "Winged shooter"
+msgstr ""
+
+msgid "Tracked shooter"
+msgstr ""
+
+msgid "Wheeled shooter"
+msgstr ""
+
+msgid "Legged shooter"
+msgstr ""
+
+msgid "Winged orga shooter"
+msgstr ""
+
+msgid "Tracked orga shooter"
+msgstr ""
+
+msgid "Wheeled orga shooter"
+msgstr ""
+
+msgid "Legged orga shooter"
+msgstr ""
+
+msgid "Winged sniffer"
+msgstr ""
+
+msgid "Tracked sniffer"
+msgstr ""
+
+msgid "Wheeled sniffer"
+msgstr ""
+
+msgid "Legged sniffer"
+msgstr ""
+
+msgid "Thumper"
+msgstr ""
+
+msgid "Phazer shooter"
+msgstr ""
+
+msgid "Recycler"
+msgstr ""
+
+msgid "Shielder"
+msgstr ""
+
+msgid "Subber"
+msgstr ""
+
+msgid "Target bot"
+msgstr ""
+
+msgid "Drawer bot"
+msgstr ""
+
+msgid "Engineer"
+msgstr ""
+
+msgid "Robbie"
+msgstr ""
+
+msgid "Alien Queen"
+msgstr ""
+
+msgid "Ant"
+msgstr ""
+
+msgid "Spider"
+msgstr ""
+
+msgid "Wasp"
+msgstr ""
+
+msgid "Worm"
+msgstr ""
+
+msgid "Egg"
+msgstr ""
+
+msgid "Wreckage"
+msgstr ""
+
+msgid "Ruin"
+msgstr ""
+
+msgid "Waste"
+msgstr ""
+
+msgid "Spaceship ruin"
+msgstr ""
+
+msgid "Remains of Apollo mission"
+msgstr ""
+
+msgid "Lunar Roving Vehicle"
+msgstr ""
+
+msgid "Unknown command"
+msgstr ""
+
+msgid "Inappropriate bot"
+msgstr ""
+
+msgid "Impossible when flying"
+msgstr ""
+
+msgid "Already carrying something"
+msgstr ""
+
+msgid "Nothing to grab"
+msgstr ""
+
+msgid "Impossible when moving"
+msgstr ""
+
+msgid "Place occupied"
+msgstr ""
+
+msgid "No other robot"
+msgstr ""
+
+msgid "You can not carry a radioactive object"
+msgstr ""
+
+msgid "You can not carry an object under water"
+msgstr ""
+
+msgid "Nothing to drop"
+msgstr ""
+
+msgid "Impossible under water"
+msgstr ""
+
+msgid "Not enough energy"
+msgstr ""
+
+msgid "Titanium too far away"
+msgstr ""
+
+msgid "Titanium too close"
+msgstr ""
+
+msgid "No titanium around"
+msgstr ""
+
+msgid "Ground not flat enough"
+msgstr ""
+
+msgid "Flat ground not large enough"
+msgstr ""
+
+msgid "Too close to space ship"
+msgstr ""
+
+msgid "Too close to a building"
+msgstr ""
+
+msgid "Ground inappropriate"
+msgstr ""
+
+msgid "Building too close"
+msgstr ""
+
+msgid "Object too close"
+msgstr ""
+
+msgid "Nothing to recycle"
+msgstr ""
+
+msgid "No more energy"
+msgstr ""
+
+msgid "Error in instruction move"
+msgstr ""
+
+msgid "Object not found"
+msgstr ""
+
+msgid "Goto: inaccessible destination"
+msgstr ""
+
+msgid "Goto: destination occupied"
+msgstr ""
+
+msgid "No titanium ore to convert"
+msgstr ""
+
+msgid "No ore in the subsoil"
+msgstr ""
+
+msgid "No energy in the subsoil"
+msgstr ""
+
+msgid "No power cell"
+msgstr ""
+
+msgid "Inappropriate cell type"
+msgstr ""
+
+msgid "Research program already performed"
+msgstr ""
+
+msgid "Not enough energy yet"
+msgstr ""
+
+msgid "No titanium to transform"
+msgstr ""
+
+msgid "Transforms only titanium"
+msgstr ""
+
+msgid "Doors blocked by a robot or another object "
+msgstr ""
+
+msgid "You must get on the spaceship to take off "
+msgstr ""
+
+msgid "Nothing to analyze"
+msgstr ""
+
+msgid "Analyzes only organic matter"
+msgstr ""
+
+msgid "Analysis already performed"
+msgstr ""
+
+msgid "Not yet enough energy"
+msgstr ""
+
+msgid "No uranium to transform"
+msgstr ""
+
+msgid "Transforms only uranium"
+msgstr ""
+
+msgid "No titanium"
+msgstr ""
+
+msgid "No information exchange post within range"
+msgstr ""
+
+msgid "Program infected by a virus"
+msgstr ""
+
+msgid "Infected by a virus; temporarily out of order"
+msgstr ""
+
+msgid "Impossible when swimming"
+msgstr ""
+
+msgid "Impossible when carrying an object"
+msgstr ""
+
+msgid "Too many flags of this color (maximum 5)"
+msgstr ""
+
+msgid "Too close to an existing flag"
+msgstr ""
+
+msgid "No flag nearby"
+msgstr ""
+
+msgid ""
+"The mission is not accomplished yet (press \\key help; for more details)"
+msgstr ""
+
+msgid "Bot destroyed"
+msgstr ""
+
+msgid "Building destroyed"
+msgstr ""
+
+msgid "Can not create this; there are too many objects"
+msgstr ""
+
+#, c-format
+msgid "\"%s\" missing in this exercise"
+msgstr ""
+
+msgid "Do not use in this exercise"
+msgstr ""
+
+msgid "Building completed"
+msgstr ""
+
+msgid "Titanium available"
+msgstr ""
+
+msgid "Research program completed"
+msgstr ""
+
+msgid "Plans for tracked robots available "
+msgstr ""
+
+msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
+msgstr ""
+
+msgid "Plans for thumper available"
+msgstr ""
+
+msgid "Plans for shooter available"
+msgstr ""
+
+msgid "Plans for defense tower available"
+msgstr ""
+
+msgid "Plans for phazer shooter available"
+msgstr ""
+
+msgid "Plans for shielder available"
+msgstr ""
+
+msgid "Plans for nuclear power plant available"
+msgstr ""
+
+msgid "New bot available"
+msgstr ""
+
+msgid "Analysis performed"
+msgstr ""
+
+msgid "Power cell available"
+msgstr ""
+
+msgid "Nuclear power cell available"
+msgstr ""
+
+msgid "You found a usable object"
+msgstr ""
+
+msgid "Found a site for power station"
+msgstr ""
+
+msgid "Found a site for a derrick"
+msgstr ""
+
+msgid "<<< Well done; mission accomplished >>>"
+msgstr ""
+
+msgid "<<< Sorry; mission failed >>>"
+msgstr ""
+
+msgid "Current mission saved"
+msgstr ""
+
+msgid "Checkpoint crossed"
+msgstr ""
+
+msgid "Alien Queen killed"
+msgstr ""
+
+msgid "Ant fatally wounded"
+msgstr ""
+
+msgid "Wasp fatally wounded"
+msgstr ""
+
+msgid "Worm fatally wounded"
+msgstr ""
+
+msgid "Spider fatally wounded"
+msgstr ""
+
+msgid "Press \\key help; to read instructions on your SatCom"
+msgstr ""
+
+msgid "Opening bracket missing"
+msgstr ""
+
+msgid "Closing bracket missing "
+msgstr ""
+
+msgid "The expression must return a boolean value"
+msgstr ""
+
+msgid "Variable not declared"
+msgstr ""
+
+msgid "Assignment impossible"
+msgstr ""
+
+msgid "Semicolon terminator missing"
+msgstr ""
+
+msgid "Instruction \"case\" outside a block \"switch\""
+msgstr ""
+
+msgid "Instructions after the final closing brace"
+msgstr ""
+
+msgid "End of block missing"
+msgstr ""
+
+msgid "Instruction \"else\" without corresponding \"if\" "
+msgstr ""
+
+msgid "Opening brace missing "
+msgstr ""
+
+msgid "Wrong type for the assignment"
+msgstr ""
+
+msgid "A variable can not be declared twice"
+msgstr ""
+
+msgid "The types of the two operands are incompatible "
+msgstr ""
+
+msgid "Unknown function"
+msgstr ""
+
+msgid "Sign \" : \" missing"
+msgstr ""
+
+msgid "Keyword \"while\" missing"
+msgstr ""
+
+msgid "Instruction \"break\" outside a loop"
+msgstr ""
+
+msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""
+msgstr ""
+
+msgid "This label does not exist"
+msgstr ""
+
+msgid "Instruction \"case\" missing"
+msgstr ""
+
+msgid "Number missing"
+msgstr ""
+
+msgid "Void parameter"
+msgstr ""
+
+msgid "Type declaration missing"
+msgstr ""
+
+msgid "Variable name missing"
+msgstr ""
+
+msgid "Function name missing"
+msgstr ""
+
+msgid "Too many parameters"
+msgstr ""
+
+msgid "Function already exists"
+msgstr ""
+
+msgid "Parameters missing "
+msgstr ""
+
+msgid "No function with this name accepts this kind of parameter"
+msgstr ""
+
+msgid "No function with this name accepts this number of parameters"
+msgstr ""
+
+msgid "This is not a member of this class"
+msgstr ""
+
+msgid "This object is not a member of a class"
+msgstr ""
+
+msgid "Appropriate constructor missing"
+msgstr ""
+
+msgid "This class already exists"
+msgstr ""
+
+msgid "\" ] \" missing"
+msgstr ""
+
+msgid "Reserved keyword of CBOT language"
+msgstr ""
+
+msgid "Bad argument for \"new\""
+msgstr ""
+
+msgid "\" [ \" expected"
+msgstr ""
+
+msgid "String missing"
+msgstr ""
+
+msgid "Incorrect index type"
+msgstr ""
+
+msgid "Private element"
+msgstr ""
+
+msgid "Public required"
+msgstr ""
+
+msgid "Dividing by zero"
+msgstr ""
+
+msgid "Variable not initialized"
+msgstr ""
+
+msgid "Negative value rejected by \"throw\""
+msgstr ""
+
+msgid "The function returned no value "
+msgstr ""
+
+msgid "No function running"
+msgstr ""
+
+msgid "Calling an unknown function"
+msgstr ""
+
+msgid "This class does not exist"
+msgstr ""
+
+msgid "Unknown Object"
+msgstr ""
+
+msgid "Operation impossible with value \"nan\""
+msgstr ""
+
+msgid "Access beyond array limit"
+msgstr ""
+
+msgid "Stack overflow"
+msgstr ""
+
+msgid "Illegal object"
+msgstr ""
+
+msgid "Can't open file"
+msgstr ""
+
+msgid "File not open"
+msgstr ""
+
+msgid "Read error"
+msgstr ""
+
+msgid "Write error"
+msgstr ""
+
+msgid "left;"
+msgstr ""
+
+msgid "right;"
+msgstr ""
+
+msgid "up;"
+msgstr ""
+
+msgid "down;"
+msgstr ""
+
+msgid "gup;"
+msgstr ""
+
+msgid "gdown;"
+msgstr ""
+
+msgid "camera;"
+msgstr ""
+
+msgid "desel;"
+msgstr ""
+
+msgid "action;"
+msgstr ""
+
+msgid "near;"
+msgstr ""
+
+msgid "away;"
+msgstr ""
+
+msgid "next;"
+msgstr ""
+
+msgid "human;"
+msgstr ""
+
+msgid "quit;"
+msgstr ""
+
+msgid "help;"
+msgstr ""
+
+msgid "prog;"
+msgstr ""
+
+msgid "cbot;"
+msgstr ""
+
+msgid "visit;"
+msgstr ""
+
+msgid "speed10;"
+msgstr ""
+
+msgid "speed15;"
+msgstr ""
+
+msgid "speed20;"
+msgstr ""
+
+#, c-format
+msgid "GetResource event num out of range: %d\n"
+msgstr ""
+
+msgid "Ctrl"
+msgstr ""
+
+msgid "Shift"
+msgstr ""
+
+msgid "Alt"
+msgstr ""
+
+msgid "Win"
+msgstr ""
+
+msgid "Button %1"
+msgstr ""
+
+msgid "%1"
+msgstr ""
diff --git a/src/po/de.po b/src/po/de.po
index 98faf5e..2992cb1 100644
--- a/src/po/de.po
+++ b/src/po/de.po
@@ -1,5 +1,7 @@
msgid ""
msgstr ""
+"Report-Msgid-Bugs-To: \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"
@@ -7,1969 +9,2047 @@ msgstr ""
"X-Language: de_DE\n"
"X-Source-Language: en_US\n"
-msgid "Colobot rules!"
-msgstr "Colobot ist wunderbar!"
+msgid " "
+msgstr " "
-msgid "Colobot Gold"
-msgstr "Colobot Gold"
+msgid " Challenges in the chapter:"
+msgstr " Liste der Challenges des Kapitels:"
-msgid "SatCom"
-msgstr "SatCom"
+msgid " Chapters:"
+msgstr " Liste der Kapitel:"
-msgid "Maximize"
-msgstr "Großes Fenster"
+msgid " Drivers:"
+msgstr " Driver:"
-msgid "Minimize"
-msgstr "Reduzieren"
+msgid " Exercises in the chapter:"
+msgstr " Liste der Übungen des Kapitels:"
-msgid "Normal size"
-msgstr "Normale Größe"
+msgid " Free game on this chapter:"
+msgstr " Liste der freien Levels des Kapitel:"
-msgid "Close"
-msgstr "Schließen"
+msgid " Free game on this planet:"
+msgstr " Liste der freien Levels des Planeten:"
-msgid "Program editor"
-msgstr "Programmeditor"
+msgid " Missions on this level:"
+msgstr " Missionen des Userlevels:"
-msgid "New"
-msgstr "Neu"
+msgid " Missions on this planet:"
+msgstr " Liste der Missionen des Planeten:"
-msgid "Player"
-msgstr "Spieler"
+msgid " Planets:"
+msgstr " Liste der Planeten:"
-msgid "New ..."
-msgstr "Neu ..."
+msgid " Prototypes on this planet:"
+msgstr " Liste der Prototypen des Planeten:"
+
+msgid " Resolution:"
+msgstr " Auflösung:"
+
+msgid " Summary:"
+msgstr " Zusammenfassung:"
+
+msgid " User levels:"
+msgstr " Userlevels:"
msgid " or "
msgstr " oder "
-msgid "COLOBOT"
-msgstr "COLOBOT"
+msgid "\" [ \" expected"
+msgstr "Es fehlt eine offene eckige Klammer \" [ \""
-msgid "Programming exercises"
-msgstr "Programmieren"
+msgid "\" ] \" missing"
+msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \""
-msgid "Challenges"
-msgstr "Challenges"
+#, c-format
+msgid "\"%s\" missing in this exercise"
+msgstr "Es fehlt \"%s\" in Ihrem Programm"
-msgid "Missions"
-msgstr "Missionen"
+msgid "%1"
+msgstr ""
-msgid "Free game"
-msgstr "Freestyle"
+msgid "..behind"
+msgstr "..hinten"
-msgid "User levels"
-msgstr "Userlevels"
+msgid "..in front"
+msgstr "..vorne"
-msgid "Prototypes"
-msgstr "Prototypen"
+msgid "..power cell"
+msgstr "..Batterie"
-msgid "Options"
-msgstr "Einstellungen"
+msgid "1) First click on the key you want to redefine."
+msgstr "1) Klicken Sie auf die neu zu definierende Taste."
-msgid "Player's name"
-msgstr "Name "
+msgid "2) Then press the key you want to use instead."
+msgstr "2) Drücken Sie auf die neue Taste."
-msgid "Customize your appearance"
-msgstr "Aussehen einstellen"
+msgid "3D sound\\3D positioning of the sound"
+msgstr "3D-Geräusche\\Orten der Geräusche im Raum"
-msgid "Save the current mission"
-msgstr "Aktuelle Mission speichern"
+msgid "<< Back \\Back to the previous screen"
+msgstr "<< Zurück \\Zurück zum Hauptmenü"
-msgid "Load a saved mission"
-msgstr "Gespeicherte Mission laden"
+#, fuzzy
+msgid "<<< Sorry; mission failed >>>"
+msgstr "<<< Mission gescheitert >>>"
-msgid " Chapters:"
-msgstr " Liste der Kapitel:"
+#, fuzzy
+msgid "<<< Well done; mission accomplished >>>"
+msgstr "<<< Bravo, Mission vollendet >>>"
-msgid " Planets:"
-msgstr " Liste der Planeten:"
+#, fuzzy
+msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""
+msgstr ""
+"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder "
+"\"switch\" vorkommen"
-msgid " User levels:"
-msgstr " Userlevels:"
+msgid "A variable can not be declared twice"
+msgstr "Eine Variable wird zum zweiten Mal deklariert"
-msgid " Exercises in the chapter:"
-msgstr " Liste der Übungen des Kapitels:"
+msgid "Abort\\Abort the current mission"
+msgstr "Abbrechen\\Mission abbrechen"
-msgid " Challenges in the chapter:"
-msgstr " Liste der Challenges des Kapitels:"
+msgid "Access beyond array limit"
+msgstr "Zugriff im Array außerhalb der Grenzen"
-msgid " Missions on this planet:"
-msgstr " Liste der Missionen des Planeten:"
+msgid ""
+"Access to solution\\Shows the solution (detailed instructions for missions)"
+msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung"
-msgid " Free game on this planet:"
-msgstr " Liste der freien Levels des Planeten:"
+msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
+msgstr ""
+"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich"
-msgid " Missions on this level:"
-msgstr " Missionen des Userlevels:"
+msgid "Alien Queen"
+msgstr "Insektenkönigin"
-msgid " Prototypes on this planet:"
-msgstr " Liste der Prototypen des Planeten:"
+msgid "Alien Queen killed"
+msgstr "Insektenkönigin tödlich verwundet"
-msgid " Free game on this chapter:"
-msgstr " Liste der freien Levels des Kapitel:"
+msgid "Already carrying something"
+msgstr "Trägt schon etwas"
-msgid " Summary:"
-msgstr " Zusammenfassung:"
+msgid "Alt"
+msgstr "Alt"
-msgid " Drivers:"
-msgstr " Driver:"
+msgid "Analysis already performed"
+msgstr "Analyse schon durchgeführt"
-msgid " Resolution:"
-msgstr " Auflösung:"
+msgid "Analysis performed"
+msgstr "Analyse vollendet"
-msgid "1) First click on the key you want to redefine."
-msgstr "1) Klicken Sie auf die neu zu definierende Taste."
+msgid "Analyzes only organic matter"
+msgstr "Analysiert nur Orgastoff"
-msgid "2) Then press the key you want to use instead."
-msgstr "2) Drücken Sie auf die neue Taste."
+msgid "Ant"
+msgstr "Ameise"
-msgid "Face type:"
-msgstr "Kopf:"
+msgid "Ant fatally wounded"
+msgstr "Ameise tödlich verwundet"
-msgid "Eyeglasses:"
-msgstr "Brille:"
+msgid "Appearance\\Choose your appearance"
+msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen"
-msgid "Hair color:"
-msgstr "Haarfarbe:"
+msgid "Apply changes\\Activates the changed settings"
+msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen"
-msgid "Suit color:"
-msgstr "Farbe des Anzugs:"
+msgid "Appropriate constructor missing"
+msgstr "Es gibt keinen geeigneten Konstruktor"
-msgid "Strip color:"
-msgstr "Farbe der Streifen:"
+msgid "Assignment impossible"
+msgstr "Zuweisung unmöglich"
-msgid "Do you want to quit COLOBOT ?"
-msgstr "Wollen Sie COLOBOT schließen ?"
+msgid "Autolab"
+msgstr "Automatisches Labor"
-msgid "Quit\\Quit COLOBOT"
-msgstr "Schließen\\COLOBOT schließen"
+msgid "Automatic indent\\When program editing"
+msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme"
-msgid "Quit the mission?"
-msgstr "Mission abbrechen ?"
+msgid "Back"
+msgstr "Vorherg. Seite"
-msgid "Abort\\Abort the current mission"
-msgstr "Abbrechen\\Mission abbrechen"
+msgid "Background sound :\\Volume of audio tracks on the CD"
+msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD"
-msgid "Continue\\Continue the current mission"
-msgstr "Weitermachen\\Mission weitermachen"
+msgid "Backward (\\key down;)"
+msgstr "Rückwärts (\\key down;)"
-msgid "Continue\\Continue the game"
-msgstr "Weitermachen\\Weitermachen"
+msgid "Backward\\Moves backward"
+msgstr "Rückwärts\\Bewegung nach hinten"
-msgid "Do you really want to destroy the selected building?"
-msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?"
+msgid "Bad argument for \"new\""
+msgstr "Falsche Argumente für \"new\""
-msgid "Do you want to delete %s's saved games? "
-msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?"
+msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
+msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen"
-msgid "Delete"
-msgstr "Zerstören"
+msgid "Black box"
+msgstr "Flugschreiber"
-msgid "Cancel"
-msgstr "Abbrechen"
+msgid "Blue"
+msgstr "Blau"
-msgid "LOADING"
-msgstr "Laden"
+msgid "Blue flag"
+msgstr "Blaue Fahne"
-msgid "Keyword help(\\key cbot;)"
-msgstr "Hilfe über den Begriff (\\key cbot;)"
+msgid "Bot destroyed"
+msgstr "Roboter zerstört"
-msgid "Compilation ok (0 errors)"
-msgstr "Kompilieren OK (0 Fehler)"
+msgid "Bot factory"
+msgstr "Roboterfabrik"
-msgid "Program finished"
-msgstr "Programm beendet"
+msgid "Build a bot factory"
+msgstr "Baut eine Roboterfabrik"
-msgid "\\b;List of objects\n"
-msgstr "\\b;Liste der Objekte\n"
+msgid "Build a converter"
+msgstr "Baut einen Konverter"
-msgid "\\b;Robots\n"
-msgstr "\\b;Liste der Roboter\n"
+msgid "Build a defense tower"
+msgstr "Baut einen Geschützturm"
-msgid "\\b;Buildings\n"
-msgstr "\\b;Listes der Gebäude\n"
+msgid "Build a derrick"
+msgstr "Baut einen Bohrturm"
-msgid "\\b;Moveable objects\n"
-msgstr "\\b;Listes der tragbaren Gegenstände\n"
+msgid "Build a exchange post"
+msgstr "Baut einen Infoserver"
-msgid "\\b;Aliens\n"
-msgstr "\\b;Listes der Feinde\n"
+msgid "Build a legged grabber"
+msgstr "Baut einen Krabbeltransporter"
-msgid "\\c; (none)\\n;\n"
-msgstr "\\c; (keine)\\n;\n"
+msgid "Build a legged orga shooter"
+msgstr "Baut einen Krabbelorgashooter"
-msgid "\\b;Error\n"
-msgstr "\\b;Fehler\n"
+msgid "Build a legged shooter"
+msgstr "Baut einen Krabbelshooter"
-msgid ""
-"The list is only available if a \\l;radar station\\u object\\radar; is "
-"working.\n"
-msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n"
+msgid "Build a legged sniffer"
+msgstr "Baut einen Krabbelschnüffler"
-msgid "Open"
-msgstr "Öffnen"
+msgid "Build a lightning conductor"
+msgstr "Baut einen Blitzableiter"
-msgid "Save"
-msgstr "Speichern"
+msgid "Build a nuclear power plant"
+msgstr "Baut eine Brennstoffzellenfabrik"
-msgid "Folder: %s"
-msgstr "Ordner: %s"
+msgid "Build a phazer shooter"
+msgstr "Baut einen Phazershooter"
-msgid "Name:"
-msgstr "Name:"
+msgid "Build a power cell factory"
+msgstr "Baut eine Batteriefabrik"
-msgid "Folder:"
-msgstr "In:"
+msgid "Build a power station"
+msgstr "Baut ein Kraftwerk"
-msgid "Private\\Private folder"
-msgstr "Privat\\Privater Ordner"
+msgid "Build a radar station"
+msgstr "Baut ein Radar"
-msgid "Public\\Common folder"
-msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler"
+msgid "Build a recycler"
+msgstr "Baut einen Recycler"
-msgid "Developed by :"
-msgstr "Entwickelt von:"
+msgid "Build a repair center"
+msgstr "Baut ein Reparaturzentrum"
-msgid "www.epsitec.com"
-msgstr "www.epsitec.com"
+msgid "Build a research center"
+msgstr "Baut ein Forschungszentrum"
-msgid " "
-msgstr " "
+msgid "Build a shielder"
+msgstr "Baut einen Schutzschild"
-msgid "Recorder"
-msgstr "Recorder"
+msgid "Build a subber"
+msgstr "Baut einen Kettentaucher"
-msgid "OK"
-msgstr "OK"
+msgid "Build a thumper"
+msgstr "Baut einen Stampfer"
-msgid "Next"
-msgstr "Nächster"
+msgid "Build a tracked grabber"
+msgstr "Baut einen Kettentransporter"
-msgid "Previous"
-msgstr "Vorherg"
+msgid "Build a tracked orga shooter"
+msgstr "Baut einen Kettenorgashooter"
-msgid "Menu (\\key quit;)"
-msgstr "Menü (\\key quit;)"
+msgid "Build a tracked shooter"
+msgstr "Baut einen Kettenshooter"
-msgid "Exercises\\Programming exercises"
-msgstr "Programmieren\\Programmierübungen"
+msgid "Build a tracked sniffer"
+msgstr "Baut einen Kettenschnüffler"
-msgid "Challenges\\Programming challenges"
-msgstr "Challenges\\Herausforderungen"
+msgid "Build a wheeled grabber"
+msgstr "Baut einen Radtransporter"
-msgid "Missions\\Select mission"
-msgstr "Missionen\\Aufbruch ins Weltall"
+msgid "Build a wheeled orga shooter"
+msgstr "Baut einen Radorgashooter"
-msgid "Free game\\Free game without a specific goal"
-msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel"
+msgid "Build a wheeled shooter"
+msgstr "Baut einen Radshooter"
-msgid "User\\User levels"
-msgstr "User\\Userlevels"
+msgid "Build a wheeled sniffer"
+msgstr "Baut einen Radschnüffler"
-msgid "Proto\\Prototypes under development"
-msgstr "Proto\\In Entwicklung befindliche Prototypen"
+msgid "Build a winged grabber"
+msgstr "Baut einen Jettransporter"
-msgid "New player\\Choose player's name"
-msgstr "Anderer Spieler\\Spielername ändern"
+msgid "Build a winged orga shooter"
+msgstr "Baut einen Jetorgashooter"
-msgid "Options\\Preferences"
-msgstr "Einstellungen\\Einstellungen"
+msgid "Build a winged shooter"
+msgstr "Baut einen Jetshooter"
-msgid "Restart\\Restart the mission from the beginning"
-msgstr "Neu anfangen\\Die Mission von vorne anfangen"
+msgid "Build a winged sniffer"
+msgstr "Baut einen Jetschnüffler"
-msgid "Save\\Save the current mission "
-msgstr "Speichern\\Aktuelle Mission speichern"
+msgid "Build an autolab"
+msgstr "Baut ein automatisches Labor"
-msgid "Load\\Load a saved mission"
-msgstr "Laden\\Eine gespeicherte Mission öffnen"
+msgid "Building completed"
+msgstr "Gebäude fertiggestellt"
-msgid "\\Return to COLOBOT"
-msgstr "\\Zurück zu COLOBOT"
+msgid "Building destroyed"
+msgstr "Gebäude zerstört"
-msgid "<< Back \\Back to the previous screen"
-msgstr "<< Zurück \\Zurück zum Hauptmenü"
+msgid "Building too close"
+msgstr "Gebäude zu nahe"
-msgid "Play\\Start mission!"
-msgstr "Spielen ...\\Los geht's!"
+msgid "Button %1"
+msgstr "Knopf %1"
-msgid "Device\\Driver and resolution settings"
-msgstr "Bildschirm\\Driver und Bildschirmauflösung"
+msgid "COLOBOT"
+msgstr "COLOBOT"
-msgid "Graphics\\Graphics settings"
-msgstr "Grafik\\Grafische Einstellungen"
+msgid "Calling an unknown function"
+msgstr "Die aufgerufene Funktion existiert nicht"
-msgid "Game\\Game settings"
-msgstr "Spiel\\Gameplay Einstellungen"
+msgid "Camera (\\key camera;)"
+msgstr "Kamera (\\key camera;)"
-msgid "Controls\\Keyboard, joystick and mouse settings"
-msgstr "Steuerung\\Auswahl der Tasten"
+msgid "Camera awayest"
+msgstr "Kamera weiter weg"
-msgid "Sound\\Music and game sound volume"
-msgstr "Geräusche\\Lautstärke Geräusche und Musik"
+msgid "Camera back\\Moves the camera backward"
+msgstr "Kamera weiter\\Bewegung der Kamera rückwärts"
-msgid "Unit"
-msgstr "Einheit"
+msgid "Camera closer\\Moves the camera forward"
+msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
-msgid "Resolution"
-msgstr "Auflösung"
+msgid "Camera nearest"
+msgstr "Kamera näher"
-msgid "Full screen\\Full screen or window mode"
-msgstr "Vollbildschirm\\Vollbildschirm oder Fenster"
+msgid "Camera to left"
+msgstr "Kamera links"
-msgid "Apply changes\\Activates the changed settings"
-msgstr "Änderungen ausführen\\Getätigte Einstellungen ausführen"
+msgid "Camera to right"
+msgstr "Kamera rechts"
-msgid "Robbie\\Your assistant"
-msgstr "Robby\\Ihr Assistent"
+#, fuzzy
+msgid "Can not create this; there are too many objects"
+msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)"
-msgid "Shadows\\Shadows on the ground"
-msgstr "Schatten\\Schlagschatten auf dem Boden"
+msgid "Can't open file"
+msgstr "Die Datei kann nicht geöffnet werden"
-msgid "Marks on the ground\\Marks on the ground"
-msgstr "Markierungen\\Markierungen auf dem Boden"
+msgid "Cancel"
+msgstr "Abbrechen"
-msgid "Dust\\Dust and dirt on bots and buildings"
-msgstr "Schmutz\\Schmutz auf Robotern und Bauten"
+msgid "Cancel\\Cancel all changes"
+msgstr "Abbrechen\\Editor schließen"
-msgid "Fog\\Fog"
-msgstr "Nebel\\Nebelschwaden"
+msgid "Cancel\\Keep current player name"
+msgstr "Abbrechen\\Behält den bisherigen Spieler bei"
-msgid "Sunbeams\\Sunbeams in the sky"
-msgstr "Sonnenstrahlen\\Sonnenstrahlen"
+msgid "Challenges"
+msgstr "Challenges"
-msgid "Sky\\Clouds and nebulae"
-msgstr "Himmel\\Himmel und Wolken"
+msgid "Challenges\\Programming challenges"
+msgstr "Challenges\\Herausforderungen"
-msgid "Planets and stars\\Astronomical objects in the sky"
-msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne"
+msgid "Change camera\\Switches between onboard camera and following camera"
+msgstr "Andere Kamera\\Sichtpunkt einstellen"
-msgid "Dynamic lighting\\Mobile light sources"
-msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung"
+msgid "Checkpoint"
+msgstr "Checkpoint"
-msgid "Number of particles\\Explosions, dust, reflections, etc."
-msgstr "Anzahl Partikel\\Explosionen, Staub, usw."
+msgid "Checkpoint crossed"
+msgstr "Checkpoint erreicht"
-msgid "Depth of field\\Maximum visibility"
-msgstr "Sichtweite\\Maximale Sichtweite"
+msgid "Climb\\Increases the power of the jet"
+msgstr "Steigen\\Leistung des Triebwerks steigern"
-msgid "Details\\Visual quality of 3D objects"
-msgstr "Details\\Detailliertheit der Objekte in 3D"
+msgid "Close"
+msgstr "Schließen"
-msgid "Textures\\Quality of textures "
-msgstr "Qualität der Texturen\\Qualität der Anzeige"
+msgid "Closing bracket missing "
+msgstr "Es fehlt eine geschlossene Klammer \")\""
-msgid "Num of decorative objects\\Number of purely ornamental objects"
-msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion"
+msgid "Colobot rules!"
+msgstr "Colobot ist wunderbar!"
-msgid "Particles in the interface\\Steam clouds and sparks in the interface"
-msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs"
+msgid "Command line"
+msgstr "Befehleingabe"
-msgid "Reflections on the buttons \\Shiny buttons"
-msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs"
+msgid "Compass"
+msgstr "Kompass"
-msgid "Help balloons\\Explain the function of the buttons"
-msgstr "Hilfsblasen\\Hilfsblasen"
+msgid "Compilation ok (0 errors)"
+msgstr "Kompilieren OK (0 Fehler)"
-msgid "Film sequences\\Films before and after the missions"
-msgstr "Filme\\Filme vor und nach den Missionen"
+msgid "Compile"
+msgstr "Kompilieren"
-msgid "Exit film\\Film at the exit of exercises"
-msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen"
+msgid "Continue"
+msgstr "Weitermachen"
-msgid "Friendly fire\\Your shooting can damage your own objects "
-msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt"
+msgid "Continue\\Continue the current mission"
+msgstr "Weitermachen\\Mission weitermachen"
-msgid "Scrolling\\Scrolling when the mouse touches right or left border"
-msgstr ""
-"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht"
+msgid "Continue\\Continue the game"
+msgstr "Weitermachen\\Weitermachen"
-msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
-msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse"
+msgid "Controls\\Keyboard, joystick and mouse settings"
+msgstr "Steuerung\\Auswahl der Tasten"
-msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
-msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse"
+msgid "Converts ore to titanium"
+msgstr "Konverter Erz-Titan"
-msgid "Quake at explosions\\The screen shakes at explosions"
-msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen"
+msgid "Copy"
+msgstr "Kopieren"
-msgid "Mouse shadow\\Gives the mouse a shadow"
-msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus"
+msgid "Copy (Ctrl+c)"
+msgstr "Kopieren (Ctrl+c)"
-msgid "Automatic indent\\When program editing"
-msgstr "Automatisches Einrücken\\Beim Bearbeiten der Programme"
+msgid "Ctrl"
+msgstr "Ctrl"
-msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
-msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen"
+msgid "Current mission saved"
+msgstr "Mission gespeichert"
-msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
-msgstr ""
-"Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich"
+msgid "Customize your appearance"
+msgstr "Aussehen einstellen"
-msgid "Standard controls\\Standard key functions"
-msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten"
+msgid "Cut (Ctrl+x)"
+msgstr "Ausschneiden (Ctrl+x)"
-msgid "Turn left\\turns the bot to the left"
-msgstr "Drehung nach links\\Steuer links"
+msgid "Defense tower"
+msgstr "Geschützturm"
-msgid "Turn right\\turns the bot to the right"
-msgstr "Drehung nach rechts\\Steuer rechts"
+msgid "Delete"
+msgstr "Zerstören"
-msgid "Forward\\Moves forward"
-msgstr "Vorwärts\\Bewegung nach vorne"
+msgid "Delete player\\Deletes the player from the list"
+msgstr "Spieler löschen\\Löscht den Spieler aus der Liste"
-msgid "Backward\\Moves backward"
-msgstr "Rückwärts\\Bewegung nach hinten"
+msgid "Delete\\Deletes the selected file"
+msgstr "Löschen\\Löscht die gespeicherte Mission"
-msgid "Climb\\Increases the power of the jet"
-msgstr "Steigen\\Leistung des Triebwerks steigern"
+msgid "Depth of field\\Maximum visibility"
+msgstr "Sichtweite\\Maximale Sichtweite"
+
+msgid "Derrick"
+msgstr "Bohrturm"
msgid "Descend\\Reduces the power of the jet"
msgstr "Sinken\\Leistung des Triebwerks drosseln"
-msgid "Change camera\\Switches between onboard camera and following camera"
-msgstr "Andere Kamera\\Sichtpunkt einstellen"
-
-msgid "Previous object\\Selects the previous object"
-msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen"
-
-msgid ""
-"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
-msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus"
-
-msgid "Camera closer\\Moves the camera forward"
-msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
+msgid "Destroy the building"
+msgstr "Gebäude sprengen"
-msgid "Camera back\\Moves the camera backward"
-msgstr "Kamera weiter\\Bewegung der Kamera rückwärts"
+msgid "Destroyer"
+msgstr "Einstampfer"
-msgid "Next object\\Selects the next object"
-msgstr "Nächstes auswählen\\Nächstes Objekt auswählen"
+msgid "Details\\Visual quality of 3D objects"
+msgstr "Details\\Detailliertheit der Objekte in 3D"
-msgid "Select the astronaut\\Selects the astronaut"
-msgstr "Astronauten auswählen\\Astronauten auswählen"
+msgid "Developed by :"
+msgstr "Entwickelt von:"
-msgid "Quit\\Quit the current mission or exercise"
-msgstr "Mission verlassen\\Eine Mission oder Übung verlassen"
+msgid "Device\\Driver and resolution settings"
+msgstr "Bildschirm\\Driver und Bildschirmauflösung"
-msgid "Instructions\\Shows the instructions for the current mission"
-msgstr "Anweisungen\\Anweisungen für die Mission oder Übung"
+msgid "Dividing by zero"
+msgstr "Teilung durch Null"
-msgid "Programming help\\Gives more detailed help with programming"
-msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT"
+msgid "Do not use in this exercise"
+msgstr "In dieser Übung verboten"
-msgid "Key word help\\More detailed help about key words"
-msgstr "Hilfe über Begriff\\Hilfe über einen Begriff"
+msgid "Do you really want to destroy the selected building?"
+msgstr "Wollen Sie das angewählte Gebäude wirklich zerstören ?"
-msgid "Origin of last message\\Shows where the last message was sent from"
-msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt"
+#, c-format
+msgid "Do you want to delete %s's saved games? "
+msgstr "Wollen Sie die gespeicherten Missionen von %s löschen ?"
-msgid "Speed 1.0x\\Normal speed"
-msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit"
+msgid "Do you want to quit COLOBOT ?"
+msgstr "Wollen Sie COLOBOT schließen ?"
-msgid "Speed 1.5x\\1.5 times faster"
-msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller"
+msgid "Doors blocked by a robot or another object "
+msgstr "Die Türen werden von einem Gegenstand blockiert"
-msgid "Speed 2.0x\\Double speed"
-msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell"
+msgid "Down (\\key gdown;)"
+msgstr "Sinkt (\\key gdown;)"
-msgid "Speed 3.0x\\Three times faster"
-msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller"
+msgid "Drawer bot"
+msgstr "Zeichner"
-msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
-msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw."
+msgid "Dust\\Dust and dirt on bots and buildings"
+msgstr "Schmutz\\Schmutz auf Robotern und Bauten"
-msgid "Background sound :\\Volume of audio tracks on the CD"
-msgstr "Geräuschkulisse:\\Lautstärke der Soundtracks der CD"
+msgid "Dynamic lighting\\Mobile light sources"
+msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung"
-msgid "3D sound\\3D positioning of the sound"
-msgstr "3D-Geräusche\\Orten der Geräusche im Raum"
+msgid "Edit the selected program"
+msgstr "Gewähltes Programm bearbeiten"
-msgid "Lowest\\Minimum graphic quality (highest frame rate)"
-msgstr "Min.\\Minimale Qualität (großes Framerate)"
+msgid "Egg"
+msgstr "Ei"
-msgid "Normal\\Normal graphic quality"
-msgstr "Normal\\Standardqualität"
+msgid "End of block missing"
+msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)"
-msgid "Highest\\Highest graphic quality (lowest frame rate)"
-msgstr "Max.\\Beste Qualität (niedriges Framerate)"
+msgid "Energy deposit (site for power station)"
+msgstr "Markierung für unterirdische Energiequelle"
-msgid "Mute\\No sound"
-msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse"
+msgid "Energy level"
+msgstr "Energievorrat"
-msgid "Normal\\Normal sound volume"
-msgstr "Normal\\Normale Lautstärke"
+msgid "Engineer"
+msgstr "Techniker"
-msgid "Use a joystick\\Joystick or keyboard"
-msgstr "Joystick\\Joystick oder Tastatur"
+msgid "Error in instruction move"
+msgstr "Ziel kann nicht erreicht werden"
-msgid ""
-"Access to solution\\Shows the solution (detailed instructions for missions)"
-msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung"
+msgid "Execute the selected program"
+msgstr "Gewähltes Programm ausführen"
-msgid "\\New player name"
-msgstr "\\Name des Spielers"
+msgid "Execute/stop"
+msgstr "Start/Stop"
-msgid "OK\\Choose the selected player"
-msgstr "OK\\Spieler auswählen"
+msgid "Exercises\\Programming exercises"
+msgstr "Programmieren\\Programmierübungen"
-msgid "Cancel\\Keep current player name"
-msgstr "Abbrechen\\Behält den bisherigen Spieler bei"
+msgid "Exit film\\Film at the exit of exercises"
+msgstr "Zurücksetzen \\Kleine Show beim Zurücksetzen in den Übungen"
-msgid "Delete player\\Deletes the player from the list"
-msgstr "Spieler löschen\\Löscht den Spieler aus der Liste"
+msgid "Explosive"
+msgstr "Sprengstoff"
-msgid "Player name"
-msgstr "Name "
+msgid "Extend shield (\\key action;)"
+msgstr "Schutzschild ausfahren (\\key action;)"
-msgid "Save\\Saves the current mission"
-msgstr "Speichern\\Speichert die Mission"
+msgid "Eyeglasses:"
+msgstr "Brille:"
-msgid "Load\\Loads the selected mission"
-msgstr "Laden\\Öffnet eine gespeicherte Mission"
+msgid "Face type:"
+msgstr "Kopf:"
-msgid "List of saved missions"
-msgstr "Liste der gespeicherten Missionen"
+msgid "File not open"
+msgstr "Die Datei wurde nicht geöffnet"
msgid "Filename:"
msgstr "Dateiname:"
-msgid "Mission name"
-msgstr "Name der Mission"
+msgid "Film sequences\\Films before and after the missions"
+msgstr "Filme\\Filme vor und nach den Missionen"
-msgid "Photography"
-msgstr "Ansicht der Mission"
+msgid "Finish"
+msgstr "Zielfläche"
-msgid "Delete\\Deletes the selected file"
-msgstr "Löschen\\Löscht die gespeicherte Mission"
+msgid "Fixed mine"
+msgstr "Landmine"
-msgid "Appearance\\Choose your appearance"
-msgstr "Aussehen\\Erscheinungsbild des Astronauten einstellen"
+msgid "Flat ground not large enough"
+msgstr "Ebener Boden nicht groß genug"
-msgid "Standard\\Standard appearance settings"
-msgstr "Standard\\Standardfarben einsetzen"
+msgid "Fog\\Fog"
+msgstr "Nebel\\Nebelschwaden"
-msgid "Head\\Face and hair"
-msgstr "Kopf\\Gesicht und Haare"
+msgid "Folder:"
+msgstr "In:"
-msgid "Suit\\Astronaut suit"
-msgstr "Anzug\\Raumfahrtanzug"
+#, c-format
+msgid "Folder: %s"
+msgstr "Ordner: %s"
-msgid "\\Turn left"
-msgstr "\\Drehung links"
+msgid "Font size"
+msgstr "Zeichengröße"
-msgid "\\Turn right"
-msgstr "\\Drehung rechts"
+msgid "Forward"
+msgstr "Nächste Seite"
-msgid "Red"
-msgstr "Rot"
+msgid "Forward (\\key up;)"
+msgstr "Vorwärts (\\key up;)"
-msgid "Green"
-msgstr "Grün"
+msgid "Forward\\Moves forward"
+msgstr "Vorwärts\\Bewegung nach vorne"
-msgid "Blue"
-msgstr "Blau"
+msgid "Found a site for a derrick"
+msgstr "Geeignete Stelle für Bohrturm gefunden"
-msgid "\\Face 1"
-msgstr "\\Kopf 1"
+msgid "Found a site for power station"
+msgstr "Geeignete Stelle für Kraftwerk gefunden"
-msgid "\\Face 4"
-msgstr "\\Kopf 4"
+msgid "Found key A (site for derrick)"
+msgstr "Markierung für vergrabenen Schlüssel A"
-msgid "\\Face 3"
-msgstr "\\Kopf 3"
+msgid "Found key B (site for derrick)"
+msgstr "Markierung für vergrabenen Schlüssel B"
-msgid "\\Face 2"
-msgstr "\\Kopf 2"
+msgid "Found key C (site for derrick)"
+msgstr "Markierung für vergrabenen Schlüssel C"
-msgid "\\No eyeglasses"
-msgstr "\\Keine Brille"
+msgid "Found key D (site for derrick)"
+msgstr "Markierung für vergrabenen Schlüssel D"
-msgid "\\Eyeglasses 1"
-msgstr "\\Brille 1"
+msgid "Free game"
+msgstr "Freestyle"
-msgid "\\Eyeglasses 2"
-msgstr "\\Brille 2"
+msgid "Free game\\Free game without a specific goal"
+msgstr "Freestyle\\Freies Spielen ohne vorgegebenes Ziel"
-msgid "\\Eyeglasses 3"
-msgstr "\\Brille 3"
+msgid "Friendly fire\\Your shooting can damage your own objects "
+msgstr "Eigenbeschuss\\Ihre Einheiten werden von Ihren Waffen beschädigt"
-msgid "\\Eyeglasses 4"
-msgstr "\\Brille 4"
+msgid "Full screen\\Full screen or window mode"
+msgstr "Vollbildschirm\\Vollbildschirm oder Fenster"
-msgid "\\Eyeglasses 5"
-msgstr "\\Brille 5"
+msgid "Function already exists"
+msgstr "Diese Funktion gibt es schon"
-msgid "Previous selection (\\key desel;)"
-msgstr "Vorherg. Auwahl (\\key desel;)"
+msgid "Function name missing"
+msgstr "Hier muss der Name der Funktion stehen"
-msgid "Turn left (\\key left;)"
-msgstr "Drehung links (\\key left;)"
+msgid "Game speed"
+msgstr "Spielgeschwindigkeit"
-msgid "Turn right (\\key right;)"
-msgstr "Drehung rechts (\\key right;)"
+msgid "Game\\Game settings"
+msgstr "Spiel\\Gameplay Einstellungen"
-msgid "Forward (\\key up;)"
-msgstr "Vorwärts (\\key up;)"
+msgid "Gantry crane"
+msgstr "Träger"
-msgid "Backward (\\key down;)"
-msgstr "Rückwärts (\\key down;)"
+#, c-format
+msgid "GetResource event num out of range: %d\n"
+msgstr ""
-msgid "Up (\\key gup;)"
-msgstr "Steigt (\\key gup;)"
+msgid "Goto: destination occupied"
+msgstr "Ziel ist schon besetzt"
-msgid "Down (\\key gdown;)"
-msgstr "Sinkt (\\key gdown;)"
+msgid "Goto: inaccessible destination"
+msgstr "Ziel kann nicht erreicht werden"
msgid "Grab or drop (\\key action;)"
msgstr "Nehmen oder hinlegen (\\key action;)"
-msgid "..in front"
-msgstr "..vorne"
+msgid "Graphics\\Graphics settings"
+msgstr "Grafik\\Grafische Einstellungen"
-msgid "..behind"
-msgstr "..hinten"
+msgid "Green"
+msgstr "Grün"
-msgid "..power cell"
-msgstr "..Batterie"
+msgid "Green flag"
+msgstr "Grüne Fahne"
-msgid "Instructions for the mission (\\key help;)"
-msgstr "Anweisungen über die Mission(\\key help;)"
+msgid "Ground inappropriate"
+msgstr "Boden ungeeignet"
-msgid "Take off to finish the mission"
-msgstr "Abheben nach vollbrachter Mission"
+msgid "Ground not flat enough"
+msgstr "Boden nicht eben genug"
-msgid "Build a derrick"
-msgstr "Baut einen Bohrturm"
+msgid "Hair color:"
+msgstr "Haarfarbe:"
-msgid "Build a power station"
-msgstr "Baut ein Kraftwerk"
+msgid "Head\\Face and hair"
+msgstr "Kopf\\Gesicht und Haare"
-msgid "Build a bot factory"
-msgstr "Baut eine Roboterfabrik"
+msgid "Help about selected object"
+msgstr "Anweisungen über das ausgewählte Objekt"
-msgid "Build a repair center"
-msgstr "Baut ein Reparaturzentrum"
+msgid "Help balloons\\Explain the function of the buttons"
+msgstr "Hilfsblasen\\Hilfsblasen"
-msgid "Build a converter"
-msgstr "Baut einen Konverter"
+msgid "Highest\\Highest graphic quality (lowest frame rate)"
+msgstr "Max.\\Beste Qualität (niedriges Framerate)"
-msgid "Build a defense tower"
-msgstr "Baut einen Geschützturm"
+msgid "Home"
+msgstr "Home"
-msgid "Build a research center"
-msgstr "Baut ein Forschungszentrum"
+msgid "Houston Mission Control"
+msgstr "Kontrollzentrum"
-msgid "Build a radar station"
-msgstr "Baut ein Radar"
+msgid "Illegal object"
+msgstr "Objekt nicht verfügbar"
-msgid "Build a power cell factory"
-msgstr "Baut eine Batteriefabrik"
+msgid "Impossible under water"
+msgstr "Unter Wasser unmöglich"
-msgid "Build an autolab"
-msgstr "Baut ein automatisches Labor"
+msgid "Impossible when carrying an object"
+msgstr "Unmöglich wenn Sie etwas tragen"
-msgid "Build a nuclear power plant"
-msgstr "Baut eine Brennstoffzellenfabrik"
+msgid "Impossible when flying"
+msgstr "Im Flug unmöglich"
-msgid "Build a lightning conductor"
-msgstr "Baut einen Blitzableiter"
+msgid "Impossible when moving"
+msgstr "In Fahrt unmöglich"
-msgid "Build a exchange post"
-msgstr "Baut einen Infoserver"
+msgid "Impossible when swimming"
+msgstr "Im Wasser unmöglich"
-msgid "Show if the ground is flat"
-msgstr "Zeigt ob der Boden eben ist"
+msgid "Inappropriate bot"
+msgstr "Roboter ungeeignet"
-msgid "Plant a flag"
-msgstr "Setzt eine Fahne"
+msgid "Inappropriate cell type"
+msgstr "Falscher Batterietyp"
-msgid "Remove a flag"
-msgstr "Sammelt die Fahne ein"
+msgid "Incorrect index type"
+msgstr "Falscher Typ für einen Index"
-msgid "\\Blue flags"
-msgstr "\\Blaue Fahne"
+#, fuzzy
+msgid "Infected by a virus; temporarily out of order"
+msgstr "Von Virus infiziert, zeitweise außer Betrieb"
-msgid "\\Red flags"
-msgstr "\\Rote Fahne"
+msgid "Information exchange post"
+msgstr "Infoserver"
-msgid "\\Green flags"
-msgstr "\\Grüne Fahne"
+msgid "Instruction \"break\" outside a loop"
+msgstr "Anweisung \"break\" außerhalb einer Schleife"
-msgid "\\Yellow flags"
-msgstr "\\Gelbe Fahne"
+msgid "Instruction \"case\" missing"
+msgstr "Es fehlt eine Anweisung \"case\""
-msgid "\\Violet flags"
-msgstr "\\Violette Fahne"
+msgid "Instruction \"case\" outside a block \"switch\""
+msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\""
-msgid "Build a winged grabber"
-msgstr "Baut einen Jettransporter"
+msgid "Instruction \"else\" without corresponding \"if\" "
+msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\""
-msgid "Build a tracked grabber"
-msgstr "Baut einen Kettentransporter"
+msgid "Instructions (\\key help;)"
+msgstr "Anweisungen (\\key help;)"
-msgid "Build a wheeled grabber"
-msgstr "Baut einen Radtransporter"
+msgid "Instructions after the final closing brace"
+msgstr "Hier ist eine Anweisung nach dem Ende des Programms"
-msgid "Build a legged grabber"
-msgstr "Baut einen Krabbeltransporter"
+msgid "Instructions for the mission (\\key help;)"
+msgstr "Anweisungen über die Mission(\\key help;)"
-msgid "Build a winged shooter"
-msgstr "Baut einen Jetshooter"
+msgid "Instructions from Houston"
+msgstr "Anweisungen von Houston"
-msgid "Build a tracked shooter"
-msgstr "Baut einen Kettenshooter"
+msgid "Instructions\\Shows the instructions for the current mission"
+msgstr "Anweisungen\\Anweisungen für die Mission oder Übung"
-msgid "Build a wheeled shooter"
-msgstr "Baut einen Radshooter"
+msgid "Jet temperature"
+msgstr "Triebwerktemperatur"
-msgid "Build a legged shooter"
-msgstr "Baut einen Krabbelshooter"
+msgid "Key A"
+msgstr "Schlüssel A"
-msgid "Build a winged orga shooter"
-msgstr "Baut einen Jetorgashooter"
+msgid "Key B"
+msgstr "Schlüssel B"
-msgid "Build a tracked orga shooter"
-msgstr "Baut einen Kettenorgashooter"
+msgid "Key C"
+msgstr "Schlüssel C"
-msgid "Build a wheeled orga shooter"
-msgstr "Baut einen Radorgashooter"
+msgid "Key D"
+msgstr "Schlüssel D"
-msgid "Build a legged orga shooter"
-msgstr "Baut einen Krabbelorgashooter"
+msgid "Key word help\\More detailed help about key words"
+msgstr "Hilfe über Begriff\\Hilfe über einen Begriff"
-msgid "Build a winged sniffer"
-msgstr "Baut einen Jetschnüffler"
+msgid "Keyword \"while\" missing"
+msgstr "Es fehlt das Wort \"while\""
-msgid "Build a tracked sniffer"
-msgstr "Baut einen Kettenschnüffler"
+msgid "Keyword help(\\key cbot;)"
+msgstr "Hilfe über den Begriff (\\key cbot;)"
-msgid "Build a wheeled sniffer"
-msgstr "Baut einen Radschnüffler"
+msgid "LOADING"
+msgstr "Laden"
-msgid "Build a legged sniffer"
-msgstr "Baut einen Krabbelschnüffler"
+msgid "Legged grabber"
+msgstr "Transporter"
-msgid "Build a thumper"
-msgstr "Baut einen Stampfer"
+msgid "Legged orga shooter"
+msgstr "OrgaShooter"
-msgid "Build a phazer shooter"
-msgstr "Baut einen Phazershooter"
+msgid "Legged shooter"
+msgstr "Shooter"
-msgid "Build a recycler"
-msgstr "Baut einen Recycler"
+msgid "Legged sniffer"
+msgstr "Schnüffler"
-msgid "Build a shielder"
-msgstr "Baut einen Schutzschild"
+msgid "Lightning conductor"
+msgstr "Blitzableiter"
-msgid "Build a subber"
-msgstr "Baut einen Kettentaucher"
+msgid "List of objects"
+msgstr "Liste der Objekte"
-msgid "Run research program for tracked bots"
-msgstr "Forschungsprogramm Kettenantrieb"
+msgid "List of saved missions"
+msgstr "Liste der gespeicherten Missionen"
-msgid "Run research program for winged bots"
-msgstr "Forschungsprogramm Jetantrieb"
+msgid "Load a saved mission"
+msgstr "Gespeicherte Mission laden"
-msgid "Run research program for thumper"
-msgstr "Forschungsprogramm Stampfer"
+msgid "Load\\Load a saved mission"
+msgstr "Laden\\Eine gespeicherte Mission öffnen"
-msgid "Run research program for shooter"
-msgstr "Forschungsprogramm Shooterkanone"
+msgid "Load\\Loads the selected mission"
+msgstr "Laden\\Öffnet eine gespeicherte Mission"
-msgid "Run research program for defense tower"
-msgstr "Forschungsprogramm Geschützturm"
+msgid "Lowest\\Minimum graphic quality (highest frame rate)"
+msgstr "Min.\\Minimale Qualität (großes Framerate)"
-msgid "Run research program for phazer shooter"
-msgstr "Forschungsprogramm Phazerkanone"
+msgid "Lunar Roving Vehicle"
+msgstr "Lunar Roving Vehicle"
-msgid "Run research program for shielder"
-msgstr "Forschungsprogramm Schutzschild"
+msgid "Marks on the ground\\Marks on the ground"
+msgstr "Markierungen\\Markierungen auf dem Boden"
-msgid "Run research program for nuclear power"
-msgstr "Forschungsprogramm Brennstoffzelle"
+msgid "Maximize"
+msgstr "Großes Fenster"
-msgid "Run research program for legged bots"
-msgstr "Forschungsprogramm Krabbelantrieb"
+msgid "Menu (\\key quit;)"
+msgstr "Menü (\\key quit;)"
-msgid "Run research program for orga shooter"
-msgstr "Forschungsprogramm Orgashooterkanone"
+msgid "Minimize"
+msgstr "Reduzieren"
-msgid "Return to start"
-msgstr "Alles zurücksetzen"
+msgid "Mission name"
+msgstr "Name der Mission"
-msgid "Sniff (\\key action;)"
-msgstr "Schnüffeln (\\key action;)"
+msgid "Missions"
+msgstr "Missionen"
-msgid "Thump (\\key action;)"
-msgstr "Stampfen (\\key action;)"
+msgid "Missions\\Select mission"
+msgstr "Missionen\\Aufbruch ins Weltall"
-msgid "Shoot (\\key action;)"
-msgstr "Feuer (\\key action;)"
+msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
+msgstr "Umkehr X\\Umkehr der Kameradrehung X-Achse"
-msgid "Recycle (\\key action;)"
-msgstr "Recyceln (\\key action;)"
+msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
+msgstr "Umkehr Y\\Umkehr der Kameradrehung Y-Achse"
-msgid "Extend shield (\\key action;)"
-msgstr "Schutzschild ausfahren (\\key action;)"
+msgid "Mouse shadow\\Gives the mouse a shadow"
+msgstr "Schatten unter der Maus\\Ein Schatten erscheint unter der Maus"
-msgid "Withdraw shield (\\key action;)"
-msgstr "Schutzschild einholen (\\key action;)"
+msgid "Mute\\No sound"
+msgstr "Kein Ton\\Keine Geräusche und Geräuschkulisse"
-msgid "Shield radius"
-msgstr "Reichweite Schutzschild"
+msgid "Name:"
+msgstr "Name:"
-msgid "Execute the selected program"
-msgstr "Gewähltes Programm ausführen"
+msgid "Negative value rejected by \"throw\""
+msgstr "Negativer Wert ungeeignet für Anweisung \"throw\""
-msgid "Edit the selected program"
-msgstr "Gewähltes Programm bearbeiten"
+msgid "Nest"
+msgstr "Orgastoffquelle"
-msgid "\\SatCom on standby"
-msgstr "\\SatCom in Standby"
+msgid "New"
+msgstr "Neu"
-msgid "Destroy the building"
-msgstr "Gebäude sprengen"
+msgid "New ..."
+msgstr "Neu ..."
-msgid "Energy level"
-msgstr "Energievorrat"
+msgid "New bot available"
+msgstr "Neuer Roboter verfügbar"
-msgid "Shield level"
-msgstr "Schäden"
+msgid "New player\\Choose player's name"
+msgstr "Anderer Spieler\\Spielername ändern"
-msgid "Jet temperature"
-msgstr "Triebwerktemperatur"
+msgid "Next"
+msgstr "Nächster"
-msgid "Still working ..."
-msgstr "Prozess im Gang ..."
+msgid "Next object\\Selects the next object"
+msgstr "Nächstes auswählen\\Nächstes Objekt auswählen"
-msgid "Number of insects detected"
-msgstr "Anzahl erfasster Insekten"
+msgid "No energy in the subsoil"
+msgstr "Kein unterirdisches Energievorkommen"
-msgid "Transmitted information"
-msgstr "Gesendete Informationen"
+msgid "No flag nearby"
+msgstr "Keine Fahne in Reichweite"
-msgid "Compass"
-msgstr "Kompass"
+msgid "No function running"
+msgstr "Keine Funktion wird ausgeführt"
-msgid "Mini-map"
-msgstr "Minikarte"
+msgid "No function with this name accepts this kind of parameter"
+msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs"
-msgid "Zoom mini-map"
-msgstr "Zoom Minikarte"
+msgid "No function with this name accepts this number of parameters"
+msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter"
-msgid "Camera (\\key camera;)"
-msgstr "Kamera (\\key camera;)"
+msgid "No information exchange post within range"
+msgstr "Kein Infoserver in Reichweite"
-msgid "Camera to left"
-msgstr "Kamera links"
+msgid "No more energy"
+msgstr "Keine Energie mehr"
-msgid "Camera to right"
-msgstr "Kamera rechts"
+msgid "No ore in the subsoil"
+msgstr "Keine unterirdische Erzlagerstätte"
-msgid "Camera nearest"
-msgstr "Kamera näher"
+msgid "No other robot"
+msgstr "Kein anderer Roboter"
-msgid "Camera awayest"
-msgstr "Kamera weiter weg"
+msgid "No power cell"
+msgstr "Keine Batterie"
-msgid "Help about selected object"
-msgstr "Anweisungen über das ausgewählte Objekt"
+msgid "No titanium"
+msgstr "Kein Titan vorhanden"
-msgid "Show the solution"
-msgstr "Zeigt die Lösung"
+msgid "No titanium around"
+msgstr "Kein Titan vorhanden"
-msgid "Switch bots <-> buildings"
-msgstr "Anzeige Roboter <-> Bauten"
+msgid "No titanium ore to convert"
+msgstr "Kein konvertierbares Titanerz vorhanden"
-msgid "Show the range"
-msgstr "Zeigt die Reichweite"
+msgid "No titanium to transform"
+msgstr "Kein konvertierbares Titanerz vorhanden"
-msgid "\\Raise the pencil"
-msgstr "\\Bleistift abheben"
+msgid "No uranium to transform"
+msgstr "Kein konvertierbares Platin"
-msgid "\\Use the black pencil"
-msgstr "\\Schwarzen Bleistift hinunterlassen"
+msgid "Normal size"
+msgstr "Normale Größe"
-msgid "\\Use the yellow pencil"
-msgstr "\\Gelben Bleistift hinunterlassen"
+msgid "Normal\\Normal graphic quality"
+msgstr "Normal\\Standardqualität"
-msgid "\\Use the orange pencil"
-msgstr "\\Orangefarbenen Bleistift hinunterlassen"
+msgid "Normal\\Normal sound volume"
+msgstr "Normal\\Normale Lautstärke"
-msgid "\\Use the red pencil"
-msgstr "\\Roten Bleistift hinunterlassen"
+msgid "Not enough energy"
+msgstr "Nicht genug Energie"
-msgid "\\Use the purple pencil"
-msgstr "\\Violetten Bleistift hinunterlassen"
+msgid "Not enough energy yet"
+msgstr "Noch nicht genug Energie"
-msgid "\\Use the blue pencil"
-msgstr "\\Blauen Bleistift hinunterlassen"
+msgid "Not yet enough energy"
+msgstr "Noch nicht genug Energie"
-msgid "\\Use the green pencil"
-msgstr "\\Grünen Bleistift hinunterlassen"
+msgid "Nothing to analyze"
+msgstr "Nichts zu analysieren"
-msgid "\\Use the brown pencil"
-msgstr "\\Braunen Bleistift hinunterlassen"
+msgid "Nothing to drop"
+msgstr "Nichts abzulegen"
-msgid "\\Start recording"
-msgstr "\\Aufnahme starten"
+msgid "Nothing to grab"
+msgstr "Nichts zu ergreifen"
-msgid "\\Stop recording"
-msgstr "\\Aufnahme stoppen"
+msgid "Nothing to recycle"
+msgstr "Nichts zu recyceln"
-msgid "Show the place"
-msgstr "Zeigt den Ort"
+msgid "Nuclear power cell"
+msgstr "Brennstoffzelle"
-msgid "Continue"
-msgstr "Weitermachen"
+msgid "Nuclear power cell available"
+msgstr "Brennstoffzelle verfügbar"
-msgid "Command line"
-msgstr "Befehleingabe"
+msgid "Nuclear power station"
+msgstr "Brennstoffzellenfabrik"
-msgid "Game speed"
-msgstr "Spielgeschwindigkeit"
+msgid "Num of decorative objects\\Number of purely ornamental objects"
+msgstr "Anzahl Ziergegenstände\\Anzahl Gegenstände ohne Funktion"
-msgid "Back"
-msgstr "Vorherg. Seite"
+msgid "Number missing"
+msgstr "Es fehlt eine Zahl"
-msgid "Forward"
-msgstr "Nächste Seite"
+msgid "Number of insects detected"
+msgstr "Anzahl erfasster Insekten"
-msgid "Home"
-msgstr "Home"
+msgid "Number of particles\\Explosions, dust, reflections, etc."
+msgstr "Anzahl Partikel\\Explosionen, Staub, usw."
-msgid "Copy"
-msgstr "Kopieren"
+msgid "OK"
+msgstr "OK"
-msgid "Size 1"
-msgstr "Größe 1"
+msgid "OK\\Choose the selected player"
+msgstr "OK\\Spieler auswählen"
-msgid "Size 2"
-msgstr "Größe 2"
+msgid "OK\\Close program editor and return to game"
+msgstr "OK\\Programm kompilieren"
-msgid "Size 3"
-msgstr "Größe 3"
+msgid "Object not found"
+msgstr "Das Objekt existiert nicht"
-msgid "Size 4"
-msgstr "Größe 4"
+msgid "Object too close"
+msgstr "Gegenstand zu nahe"
-msgid "Size 5"
-msgstr "Größe 5"
+msgid "One step"
+msgstr "Ein Schritt"
-msgid "Instructions from Houston"
-msgstr "Anweisungen von Houston"
+msgid "Open"
+msgstr "Öffnen"
-msgid "Dictionnary"
-msgstr "Wörterbuch Englisch-Deutsch"
+msgid "Open (Ctrl+o)"
+msgstr "Öffnen (Ctrl+o)"
-msgid "Satellite report"
-msgstr "Satellitenbericht"
+msgid "Opening brace missing "
+msgstr "Es fehlt eine offene geschweifte Klammer\"{\""
-msgid "Programs dispatched by Houston"
-msgstr "Von Houston übermittelte Programme"
+msgid "Opening bracket missing"
+msgstr "Es fehlt eine offene Klammer \"(\""
-msgid "List of objects"
-msgstr "Liste der Objekte"
+msgid "Operation impossible with value \"nan\""
+msgstr "Operation mit dem Wert \"nan\""
-msgid "Programming help"
-msgstr "Hilfe über Programmieren"
+msgid "Options"
+msgstr "Einstellungen"
-msgid "Solution"
-msgstr "Lösung"
+msgid "Options\\Preferences"
+msgstr "Einstellungen\\Einstellungen"
-msgid "OK\\Close program editor and return to game"
-msgstr "OK\\Programm kompilieren"
+msgid "Organic matter"
+msgstr "Orgastoff"
-msgid "Cancel\\Cancel all changes"
-msgstr "Abbrechen\\Editor schließen"
+msgid "Origin of last message\\Shows where the last message was sent from"
+msgstr "Ort der Meldung\\Zeigt den Ort, von dem die letzte Meldung stammt"
-msgid "Open (Ctrl+o)"
-msgstr "Öffnen (Ctrl+o)"
+msgid "Parameters missing "
+msgstr "Nicht genug Parameter"
-msgid "Save (Ctrl+s)"
-msgstr "Speichern (Ctrl+s)"
+msgid "Particles in the interface\\Steam clouds and sparks in the interface"
+msgstr "Partikel in den Menüs\\Funken und Sterne in den Menüs"
-msgid "Undo (Ctrl+z)"
-msgstr "Widerrufen (Ctrl+z)"
+msgid "Paste (Ctrl+v)"
+msgstr "Einfügen (Ctrl+v)"
-msgid "Cut (Ctrl+x)"
-msgstr "Ausschneiden (Ctrl+x)"
+msgid "Pause/continue"
+msgstr "Pause/Weitermachen"
-msgid "Copy (Ctrl+c)"
-msgstr "Kopieren (Ctrl+c)"
+msgid "Phazer shooter"
+msgstr "Phazershooter"
-msgid "Paste (Ctrl+v)"
-msgstr "Einfügen (Ctrl+v)"
+msgid "Photography"
+msgstr "Ansicht der Mission"
-msgid "Font size"
-msgstr "Zeichengröße"
+msgid "Place occupied"
+msgstr "Stelle schon besetzt"
-msgid "Instructions (\\key help;)"
-msgstr "Anweisungen (\\key help;)"
+msgid "Planets and stars\\Astronomical objects in the sky"
+msgstr "Planeten und Sterne\\Kreisende Planeten und Sterne"
-msgid "Programming help (\\key prog;)"
-msgstr "Hilfe über Programmieren (\\key prog;)"
+msgid "Plans for defense tower available"
+msgstr "Errichtung eines Geschützturms möglich"
-msgid "Compile"
-msgstr "Kompilieren"
+msgid "Plans for nuclear power plant available"
+msgstr "Errichtung einer Brennstoffzellenfabrik möglich"
-msgid "Execute/stop"
-msgstr "Start/Stop"
+msgid "Plans for phazer shooter available"
+msgstr "Herstellung eines Phazershooters möglich"
-msgid "Pause/continue"
-msgstr "Pause/Weitermachen"
+msgid "Plans for shielder available"
+msgstr "Herstellung eines Schutzschildes möglich"
-msgid "One step"
-msgstr "Ein Schritt"
+msgid "Plans for shooter available"
+msgstr "Herstellung eines Shooters möglich"
-msgid "Gantry crane"
-msgstr "Träger"
+msgid "Plans for thumper available"
+msgstr "Herstellung eines Stampfers möglich"
-msgid "Spaceship"
-msgstr "Raumschiff"
+msgid "Plans for tracked robots available "
+msgstr "Herstellung eines Roboters mit Kettenantrieb möglich"
-msgid "Derrick"
-msgstr "Bohrturm"
+msgid "Plant a flag"
+msgstr "Setzt eine Fahne"
-msgid "Bot factory"
-msgstr "Roboterfabrik"
+msgid "Play\\Start mission!"
+msgstr "Spielen ...\\Los geht's!"
-msgid "Repair center"
-msgstr "Reparaturzentrum"
+msgid "Player"
+msgstr "Spieler"
-msgid "Destroyer"
-msgstr "Einstampfer"
+msgid "Player name"
+msgstr "Name "
-msgid "Power station"
-msgstr "Kraftwerk"
+msgid "Player's name"
+msgstr "Name "
-msgid "Converts ore to titanium"
-msgstr "Konverter Erz-Titan"
+msgid "Power cell"
+msgstr "Elektrolytische Batterie"
-msgid "Defense tower"
-msgstr "Geschützturm"
+msgid "Power cell available"
+msgstr "Batterie verfügbar"
-msgid "Nest"
-msgstr "Orgastoffquelle"
+msgid "Power cell factory"
+msgstr "Batteriefabrik"
-msgid "Research center"
-msgstr "Forschungszentrum"
+msgid "Power station"
+msgstr "Kraftwerk"
-msgid "Radar station"
-msgstr "Radar"
+msgid "Practice bot"
+msgstr "Übungsroboter"
-msgid "Information exchange post"
-msgstr "Infoserver"
+msgid "Press \\key help; to read instructions on your SatCom"
+msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken"
-msgid "Disintegrator"
-msgstr "Auflöser"
+msgid "Previous"
+msgstr "Vorherg"
-msgid "Power cell factory"
-msgstr "Batteriefabrik"
+msgid "Previous object\\Selects the previous object"
+msgstr "Vorherg. Auswahl\\Das vorhergehende Objekt auswählen"
-msgid "Autolab"
-msgstr "Automatisches Labor"
+msgid "Previous selection (\\key desel;)"
+msgstr "Vorherg. Auwahl (\\key desel;)"
-msgid "Nuclear power station"
-msgstr "Brennstoffzellenfabrik"
+msgid "Private element"
+msgstr "Geschütztes Element (private)"
-msgid "Lightning conductor"
-msgstr "Blitzableiter"
+msgid "Private\\Private folder"
+msgstr "Privat\\Privater Ordner"
-msgid "Vault"
-msgstr "Bunker"
+msgid "Program editor"
+msgstr "Programmeditor"
-msgid "Houston Mission Control"
-msgstr "Kontrollzentrum"
+msgid "Program finished"
+msgstr "Programm beendet"
-msgid "Target"
-msgstr "Zielscheibe"
+msgid "Program infected by a virus"
+msgstr "Ein Programm wurde von einem Virus infiziert"
-msgid "Start"
-msgstr "Startfläche"
+msgid "Programming exercises"
+msgstr "Programmieren"
-msgid "Finish"
-msgstr "Zielfläche"
+msgid "Programming help"
+msgstr "Hilfe über Programmieren"
-msgid "Titanium ore"
-msgstr "Titanerz"
+msgid "Programming help (\\key prog;)"
+msgstr "Hilfe über Programmieren (\\key prog;)"
-msgid "Uranium ore"
-msgstr "Platinerz"
+msgid "Programming help\\Gives more detailed help with programming"
+msgstr "Hilfe CBOT-Sprache\\Hilfe über die Programmiersprache CBOT"
-msgid "Organic matter"
-msgstr "Orgastoff"
+msgid "Programs dispatched by Houston"
+msgstr "Von Houston übermittelte Programme"
-msgid "Titanium"
-msgstr "Titan"
+msgid "Proto\\Prototypes under development"
+msgstr "Proto\\In Entwicklung befindliche Prototypen"
-msgid "Power cell"
-msgstr "Elektrolytische Batterie"
+msgid "Prototypes"
+msgstr "Prototypen"
-msgid "Nuclear power cell"
-msgstr "Brennstoffzelle"
+msgid "Public required"
+msgstr "Hier muss das Wort \"public\" stehen"
-msgid "Black box"
-msgstr "Flugschreiber"
+msgid "Public\\Common folder"
+msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler"
-msgid "Key A"
-msgstr "Schlüssel A"
+msgid "Quake at explosions\\The screen shakes at explosions"
+msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen"
-msgid "Key B"
-msgstr "Schlüssel B"
+msgid "Quit the mission?"
+msgstr "Mission abbrechen ?"
-msgid "Key C"
-msgstr "Schlüssel C"
+msgid "Quit\\Quit COLOBOT"
+msgstr "Schließen\\COLOBOT schließen"
-msgid "Key D"
-msgstr "Schlüssel D"
+msgid "Quit\\Quit the current mission or exercise"
+msgstr "Mission verlassen\\Eine Mission oder Übung verlassen"
-msgid "Explosive"
-msgstr "Sprengstoff"
+msgid "Radar station"
+msgstr "Radar"
-msgid "Fixed mine"
-msgstr "Landmine"
+msgid "Read error"
+msgstr "Fehler beim Lesezugriff"
-msgid "Survival kit"
-msgstr "Überlebenskit"
+msgid "Recorder"
+msgstr "Recorder"
-msgid "Checkpoint"
-msgstr "Checkpoint"
+msgid "Recycle (\\key action;)"
+msgstr "Recyceln (\\key action;)"
-msgid "Blue flag"
-msgstr "Blaue Fahne"
+msgid "Recycler"
+msgstr "Recycler"
+
+msgid "Red"
+msgstr "Rot"
msgid "Red flag"
msgstr "Rote Fahne"
-msgid "Green flag"
-msgstr "Grüne Fahne"
+msgid "Reflections on the buttons \\Shiny buttons"
+msgstr "Glänzende Tasten\\Glänzende Tasten in den Menüs"
-msgid "Yellow flag"
-msgstr "Gelbe Fahne"
+msgid "Remains of Apollo mission"
+msgstr "Überreste einer Apollo-Mission"
-msgid "Violet flag"
-msgstr "Violette Fahne"
+msgid "Remove a flag"
+msgstr "Sammelt die Fahne ein"
-msgid "Energy deposit (site for power station)"
-msgstr "Markierung für unterirdische Energiequelle"
+msgid "Repair center"
+msgstr "Reparaturzentrum"
-msgid "Uranium deposit (site for derrick)"
-msgstr "Markierung für unterirdisches Platinvorkommen"
+msgid "Research center"
+msgstr "Forschungszentrum"
-msgid "Found key A (site for derrick)"
-msgstr "Markierung für vergrabenen Schlüssel A"
+msgid "Research program already performed"
+msgstr "Forschungsprogramm schon ausgeführt"
-msgid "Found key B (site for derrick)"
-msgstr "Markierung für vergrabenen Schlüssel B"
+msgid "Research program completed"
+msgstr "Forschungsprogramm abgeschlossen"
-msgid "Found key C (site for derrick)"
-msgstr "Markierung für vergrabenen Schlüssel C"
+msgid "Reserved keyword of CBOT language"
+msgstr "Dieses Wort ist reserviert"
-msgid "Found key D (site for derrick)"
-msgstr "Markierung für vergrabenen Schlüssel D"
+msgid "Resolution"
+msgstr "Auflösung"
-msgid "Titanium deposit (site for derrick)"
-msgstr "Markierung für unterirdisches Titanvorkommen"
+msgid "Restart\\Restart the mission from the beginning"
+msgstr "Neu anfangen\\Die Mission von vorne anfangen"
-msgid "Practice bot"
-msgstr "Übungsroboter"
+msgid "Return to start"
+msgstr "Alles zurücksetzen"
-msgid "Winged grabber"
-msgstr "Transporter"
+msgid "Robbie"
+msgstr "Robby"
-msgid "Tracked grabber"
-msgstr "Transporter"
+msgid "Robbie\\Your assistant"
+msgstr "Robby\\Ihr Assistent"
-msgid "Wheeled grabber"
-msgstr "Transporter"
+msgid "Ruin"
+msgstr "Gebäuderuine"
-msgid "Legged grabber"
-msgstr "Transporter"
+msgid "Run research program for defense tower"
+msgstr "Forschungsprogramm Geschützturm"
-msgid "Winged shooter"
-msgstr "Shooter"
+msgid "Run research program for legged bots"
+msgstr "Forschungsprogramm Krabbelantrieb"
-msgid "Tracked shooter"
-msgstr "Shooter"
+msgid "Run research program for nuclear power"
+msgstr "Forschungsprogramm Brennstoffzelle"
-msgid "Wheeled shooter"
-msgstr "Shooter"
+msgid "Run research program for orga shooter"
+msgstr "Forschungsprogramm Orgashooterkanone"
-msgid "Legged shooter"
-msgstr "Shooter"
+msgid "Run research program for phazer shooter"
+msgstr "Forschungsprogramm Phazerkanone"
-msgid "Winged orga shooter"
-msgstr "OrgaShooter"
+msgid "Run research program for shielder"
+msgstr "Forschungsprogramm Schutzschild"
-msgid "Tracked orga shooter"
-msgstr "OrgaShooter"
+msgid "Run research program for shooter"
+msgstr "Forschungsprogramm Shooterkanone"
-msgid "Wheeled orga shooter"
-msgstr "OrgaShooter"
+msgid "Run research program for thumper"
+msgstr "Forschungsprogramm Stampfer"
-msgid "Legged orga shooter"
-msgstr "OrgaShooter"
+msgid "Run research program for tracked bots"
+msgstr "Forschungsprogramm Kettenantrieb"
-msgid "Winged sniffer"
-msgstr "Schnüffler"
+msgid "Run research program for winged bots"
+msgstr "Forschungsprogramm Jetantrieb"
-msgid "Tracked sniffer"
-msgstr "Schnüffler"
+msgid "SatCom"
+msgstr "SatCom"
-msgid "Wheeled sniffer"
-msgstr "Schnüffler"
+msgid "Satellite report"
+msgstr "Satellitenbericht"
-msgid "Legged sniffer"
-msgstr "Schnüffler"
+msgid "Save"
+msgstr "Speichern"
-msgid "Thumper"
-msgstr "Stampfer"
+msgid "Save (Ctrl+s)"
+msgstr "Speichern (Ctrl+s)"
-msgid "Phazer shooter"
-msgstr "Phazershooter"
+msgid "Save the current mission"
+msgstr "Aktuelle Mission speichern"
-msgid "Recycler"
-msgstr "Recycler"
+msgid "Save\\Save the current mission "
+msgstr "Speichern\\Aktuelle Mission speichern"
+
+msgid "Save\\Saves the current mission"
+msgstr "Speichern\\Speichert die Mission"
+
+msgid "Scrolling\\Scrolling when the mouse touches right or left border"
+msgstr ""
+"Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erreicht"
+
+msgid "Select the astronaut\\Selects the astronaut"
+msgstr "Astronauten auswählen\\Astronauten auswählen"
+
+msgid "Semicolon terminator missing"
+msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung"
+
+msgid "Shadows\\Shadows on the ground"
+msgstr "Schatten\\Schlagschatten auf dem Boden"
+
+msgid "Shield level"
+msgstr "Schäden"
+
+msgid "Shield radius"
+msgstr "Reichweite Schutzschild"
msgid "Shielder"
msgstr "Schutzschild"
-msgid "Subber"
-msgstr "Kettentaucher"
+msgid "Shift"
+msgstr "Shift"
-msgid "Target bot"
-msgstr "Mobile Zielscheibe"
+msgid "Shoot (\\key action;)"
+msgstr "Feuer (\\key action;)"
-msgid "Drawer bot"
-msgstr "Zeichner"
+msgid "Show if the ground is flat"
+msgstr "Zeigt ob der Boden eben ist"
-msgid "Engineer"
-msgstr "Techniker"
+msgid "Show the place"
+msgstr "Zeigt den Ort"
-msgid "Robbie"
-msgstr "Robby"
+msgid "Show the range"
+msgstr "Zeigt die Reichweite"
-msgid "Alien Queen"
-msgstr "Insektenkönigin"
+msgid "Show the solution"
+msgstr "Zeigt die Lösung"
-msgid "Ant"
-msgstr "Ameise"
+msgid "Sign \" : \" missing"
+msgstr "Es fehlt ein Doppelpunkt \" : \""
-msgid "Spider"
-msgstr "Spinne"
+msgid "Size 1"
+msgstr "Größe 1"
-msgid "Wasp"
-msgstr "Wespe"
+msgid "Size 2"
+msgstr "Größe 2"
-msgid "Worm"
-msgstr "Wurm"
+msgid "Size 3"
+msgstr "Größe 3"
-msgid "Egg"
-msgstr "Ei"
+msgid "Size 4"
+msgstr "Größe 4"
-msgid "Wreckage"
-msgstr "Roboterwrack"
+msgid "Size 5"
+msgstr "Größe 5"
-msgid "Ruin"
-msgstr "Gebäuderuine"
+msgid "Sky\\Clouds and nebulae"
+msgstr "Himmel\\Himmel und Wolken"
-msgid "Waste"
-msgstr "Abfall"
+msgid "Sniff (\\key action;)"
+msgstr "Schnüffeln (\\key action;)"
+
+msgid "Solution"
+msgstr "Lösung"
+
+msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
+msgstr "Geräusche:\\Lautstärke Motoren, Stimmen, usw."
+
+msgid "Sound\\Music and game sound volume"
+msgstr "Geräusche\\Lautstärke Geräusche und Musik"
+
+msgid "Spaceship"
+msgstr "Raumschiff"
msgid "Spaceship ruin"
msgstr "Raumschiffruine"
-msgid "Remains of Apollo mission"
-msgstr "Überreste einer Apollo-Mission"
+msgid "Speed 1.0x\\Normal speed"
+msgstr "Geschwindigkeit 1.0x\\Normale Spielgeschwindigkeit"
-msgid "Lunar Roving Vehicle"
-msgstr "Lunar Roving Vehicle"
+msgid "Speed 1.5x\\1.5 times faster"
+msgstr "Geschwindigkeit 1.5x\\Spielgeschwindigkeit anderthalb Mal schneller"
-msgid "Error"
-msgstr "Fehler"
+msgid "Speed 2.0x\\Double speed"
+msgstr "Geschwindigkeit 2.0x\\Spielgeschwindigkeit doppelt so schnell"
-msgid "Unknown command"
-msgstr "Befehl unbekannt"
+msgid "Speed 3.0x\\Three times faster"
+msgstr "Geschwindigkeit 3.0x\\Spielgeschwindigkeit drei Mal schneller"
-msgid "Inappropriate bot"
-msgstr "Roboter ungeeignet"
+msgid "Spider"
+msgstr "Spinne"
-msgid "Impossible when flying"
-msgstr "Im Flug unmöglich"
+msgid "Spider fatally wounded"
+msgstr "Spinne tödlich verwundet"
-msgid "Already carrying something"
-msgstr "Trägt schon etwas"
+msgid "Stack overflow"
+msgstr "Stack overflow"
-msgid "Nothing to grab"
-msgstr "Nichts zu ergreifen"
+msgid ""
+"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
+msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus"
-msgid "Impossible when moving"
-msgstr "In Fahrt unmöglich"
+msgid "Standard controls\\Standard key functions"
+msgstr "Alles zurücksetzen\\Standarddefinition aller Tasten"
-msgid "Place occupied"
-msgstr "Stelle schon besetzt"
+msgid "Standard\\Standard appearance settings"
+msgstr "Standard\\Standardfarben einsetzen"
-msgid "No other robot"
-msgstr "Kein anderer Roboter"
+msgid "Start"
+msgstr "Startfläche"
-msgid "You can not carry a radioactive object"
-msgstr "Sie können keinen radioaktiven Gegenstand tragen"
+msgid "Still working ..."
+msgstr "Prozess im Gang ..."
-msgid "You can not carry an object under water"
-msgstr "Sie können unter Wasser nichts tragen"
+msgid "String missing"
+msgstr "Hier wird eine Zeichenkette erwartet"
-msgid "Nothing to drop"
-msgstr "Nichts abzulegen"
+msgid "Strip color:"
+msgstr "Farbe der Streifen:"
-msgid "Impossible under water"
-msgstr "Unter Wasser unmöglich"
+msgid "Subber"
+msgstr "Kettentaucher"
-msgid "Not enough energy"
-msgstr "Nicht genug Energie"
+msgid "Suit color:"
+msgstr "Farbe des Anzugs:"
-msgid "Titanium too far away"
-msgstr "Titan zu weit weg"
+msgid "Suit\\Astronaut suit"
+msgstr "Anzug\\Raumfahrtanzug"
-msgid "Titanium too close"
-msgstr "Titan zu nahe"
+msgid "Sunbeams\\Sunbeams in the sky"
+msgstr "Sonnenstrahlen\\Sonnenstrahlen"
-msgid "No titanium around"
-msgstr "Kein Titan vorhanden"
+msgid "Survival kit"
+msgstr "Überlebenskit"
-msgid "Ground not flat enough"
-msgstr "Boden nicht eben genug"
+msgid "Switch bots <-> buildings"
+msgstr "Anzeige Roboter <-> Bauten"
-msgid "Flat ground not large enough"
-msgstr "Ebener Boden nicht groß genug"
+msgid "Take off to finish the mission"
+msgstr "Abheben nach vollbrachter Mission"
-msgid "Too close to space ship"
-msgstr "Zu nahe am Raumschiff"
+msgid "Target"
+msgstr "Zielscheibe"
-msgid "Too close to a building"
-msgstr "Zu nahe an einem Gebäude"
+msgid "Target bot"
+msgstr "Mobile Zielscheibe"
-msgid "Ground inappropriate"
-msgstr "Boden ungeeignet"
+msgid "Textures\\Quality of textures "
+msgstr "Qualität der Texturen\\Qualität der Anzeige"
-msgid "Building too close"
-msgstr "Gebäude zu nahe"
+msgid "The expression must return a boolean value"
+msgstr "Der Ausdruck muss einen boolschen Wert ergeben"
-msgid "Object too close"
-msgstr "Gegenstand zu nahe"
+msgid "The function returned no value "
+msgstr "Die Funktion hat kein Ergebnis zurückgegeben"
-msgid "Nothing to recycle"
-msgstr "Nichts zu recyceln"
+msgid ""
+"The list is only available if a \\l;radar station\\u object\\radar; is "
+"working.\n"
+msgstr "Die Liste ist ohne \\l;Radar\\u object\\radar; nicht verfügbar.\n"
-msgid "No more energy"
-msgstr "Keine Energie mehr"
+msgid ""
+"The mission is not accomplished yet (press \\key help; for more details)"
+msgstr ""
+"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere "
+"Informationen)"
-msgid "Error in instruction move"
-msgstr "Ziel kann nicht erreicht werden"
+msgid "The types of the two operands are incompatible "
+msgstr "Die zwei Operanden sind nicht kompatibel"
-msgid "Object not found"
-msgstr "Das Objekt existiert nicht"
+msgid "This class already exists"
+msgstr "Diese Klasse gibt es schon"
-msgid "Goto: inaccessible destination"
-msgstr "Ziel kann nicht erreicht werden"
+msgid "This class does not exist"
+msgstr "Diese Klasse existiert nicht"
-msgid "Goto: destination occupied"
-msgstr "Ziel ist schon besetzt"
+msgid "This is not a member of this class"
+msgstr "Dieses Element gibt es nicht in dieser Klasse"
-msgid "No titanium ore to convert"
-msgstr "Kein konvertierbares Titanerz vorhanden"
+msgid "This label does not exist"
+msgstr "Dieses Label existiert nicht"
-msgid "No ore in the subsoil"
-msgstr "Keine unterirdische Erzlagerstätte"
+msgid "This object is not a member of a class"
+msgstr "Das Objekt ist nicht eine Instanz einer Klasse"
-msgid "No energy in the subsoil"
-msgstr "Kein unterirdisches Energievorkommen"
+msgid "Thump (\\key action;)"
+msgstr "Stampfen (\\key action;)"
-msgid "No power cell"
-msgstr "Keine Batterie"
+msgid "Thumper"
+msgstr "Stampfer"
-msgid "Inappropriate cell type"
-msgstr "Falscher Batterietyp"
+msgid "Titanium"
+msgstr "Titan"
-msgid "Research program already performed"
-msgstr "Forschungsprogramm schon ausgeführt"
+msgid "Titanium available"
+msgstr "Titan verfügbar"
-msgid "Not enough energy yet"
-msgstr "Noch nicht genug Energie"
+msgid "Titanium deposit (site for derrick)"
+msgstr "Markierung für unterirdisches Titanvorkommen"
-msgid "No titanium to transform"
-msgstr "Kein konvertierbares Titanerz vorhanden"
+msgid "Titanium ore"
+msgstr "Titanerz"
-msgid "Transforms only titanium"
-msgstr "Wandelt nur Titanerz um"
+msgid "Titanium too close"
+msgstr "Titan zu nahe"
-msgid "Doors blocked by a robot or another object "
-msgstr "Die Türen werden von einem Gegenstand blockiert"
+msgid "Titanium too far away"
+msgstr "Titan zu weit weg"
-msgid "You must get on the spaceship to take off "
-msgstr "Gehen Sie an Bord, bevor Sie abheben"
+msgid "Too close to a building"
+msgstr "Zu nahe an einem Gebäude"
-msgid "Nothing to analyze"
-msgstr "Nichts zu analysieren"
+msgid "Too close to an existing flag"
+msgstr "Zu nahe an einer anderen Fahne"
-msgid "Analyzes only organic matter"
-msgstr "Analysiert nur Orgastoff"
+msgid "Too close to space ship"
+msgstr "Zu nahe am Raumschiff"
-msgid "Analysis already performed"
-msgstr "Analyse schon durchgeführt"
+msgid "Too many flags of this color (maximum 5)"
+msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)"
-msgid "Not yet enough energy"
-msgstr "Noch nicht genug Energie"
+msgid "Too many parameters"
+msgstr "Zu viele Parameter"
-msgid "No uranium to transform"
-msgstr "Kein konvertierbares Platin"
+msgid "Tracked grabber"
+msgstr "Transporter"
-msgid "Transforms only uranium"
-msgstr "Wandelt nur Platin um"
+msgid "Tracked orga shooter"
+msgstr "OrgaShooter"
-msgid "No titanium"
-msgstr "Kein Titan vorhanden"
+msgid "Tracked shooter"
+msgstr "Shooter"
-msgid "No information exchange post within range"
-msgstr "Kein Infoserver in Reichweite"
+msgid "Tracked sniffer"
+msgstr "Schnüffler"
-msgid "Program infected by a virus"
-msgstr "Ein Programm wurde von einem Virus infiziert"
+msgid "Transforms only titanium"
+msgstr "Wandelt nur Titanerz um"
-msgid "Infected by a virus, temporarily out of order"
-msgstr "Von Virus infiziert, zeitweise außer Betrieb"
+msgid "Transforms only uranium"
+msgstr "Wandelt nur Platin um"
-msgid "Impossible when swimming"
-msgstr "Im Wasser unmöglich"
+msgid "Transmitted information"
+msgstr "Gesendete Informationen"
-msgid "Impossible when carrying an object"
-msgstr "Unmöglich wenn Sie etwas tragen"
+msgid "Turn left (\\key left;)"
+msgstr "Drehung links (\\key left;)"
-msgid "Too many flags of this color (maximum 5)"
-msgstr "Zu viele Fahnen dieser Farbe (Maximum 5)"
+msgid "Turn left\\turns the bot to the left"
+msgstr "Drehung nach links\\Steuer links"
-msgid "Too close to an existing flag"
-msgstr "Zu nahe an einer anderen Fahne"
+msgid "Turn right (\\key right;)"
+msgstr "Drehung rechts (\\key right;)"
-msgid "No flag nearby"
-msgstr "Keine Fahne in Reichweite"
+msgid "Turn right\\turns the bot to the right"
+msgstr "Drehung nach rechts\\Steuer rechts"
-msgid ""
-"The mission is not accomplished yet (press \\key help; for more details)"
-msgstr ""
-"Mission noch nicht beendet (Drücken Sie auf \\key help; für weitere "
-"Informationen)"
+msgid "Type declaration missing"
+msgstr "Hier muss ein Variablentyp stehen"
-msgid "Bot destroyed"
-msgstr "Roboter zerstört"
+msgid "Undo (Ctrl+z)"
+msgstr "Widerrufen (Ctrl+z)"
-msgid "Building destroyed"
-msgstr "Gebäude zerstört"
+msgid "Unit"
+msgstr "Einheit"
-msgid "Can not create this, there are too many objects"
-msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)"
+msgid "Unknown Object"
+msgstr "Das Objekt existiert nicht"
-msgid "\"%s\" missing in this exercise"
-msgstr "Es fehlt \"%s\" in Ihrem Programm"
+msgid "Unknown command"
+msgstr "Befehl unbekannt"
-msgid "Do not use in this exercise"
-msgstr "In dieser Übung verboten"
+msgid "Unknown function"
+msgstr "Unbekannte Funktion"
-msgid "Building completed"
-msgstr "Gebäude fertiggestellt"
+msgid "Up (\\key gup;)"
+msgstr "Steigt (\\key gup;)"
-msgid "Titanium available"
-msgstr "Titan verfügbar"
+msgid "Uranium deposit (site for derrick)"
+msgstr "Markierung für unterirdisches Platinvorkommen"
-msgid "Research program completed"
-msgstr "Forschungsprogramm abgeschlossen"
+msgid "Uranium ore"
+msgstr "Platinerz"
-msgid "Plans for tracked robots available "
-msgstr "Herstellung eines Roboters mit Kettenantrieb möglich"
+msgid "Use a joystick\\Joystick or keyboard"
+msgstr "Joystick\\Joystick oder Tastatur"
-msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
-msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen"
+msgid "User levels"
+msgstr "Userlevels"
-msgid "Plans for thumper available"
-msgstr "Herstellung eines Stampfers möglich"
+msgid "User\\User levels"
+msgstr "User\\Userlevels"
-msgid "Plans for shooter available"
-msgstr "Herstellung eines Shooters möglich"
+msgid "Variable name missing"
+msgstr "Es fehlt der Name einer Variable"
-msgid "Plans for defense tower available"
-msgstr "Errichtung eines Geschützturms möglich"
+msgid "Variable not declared"
+msgstr "Variable nicht deklariert"
-msgid "Plans for phazer shooter available"
-msgstr "Herstellung eines Phazershooters möglich"
+msgid "Variable not initialized"
+msgstr "Der Wert dieser Variable wurde nicht definiert"
-msgid "Plans for shielder available"
-msgstr "Herstellung eines Schutzschildes möglich"
+msgid "Vault"
+msgstr "Bunker"
-msgid "Plans for nuclear power plant available"
-msgstr "Errichtung einer Brennstoffzellenfabrik möglich"
+msgid "Violet flag"
+msgstr "Violette Fahne"
-msgid "New bot available"
-msgstr "Neuer Roboter verfügbar"
+msgid "Void parameter"
+msgstr "Parameter void"
-msgid "Analysis performed"
-msgstr "Analyse vollendet"
+msgid "Wasp"
+msgstr "Wespe"
-msgid "Power cell available"
-msgstr "Batterie verfügbar"
+msgid "Wasp fatally wounded"
+msgstr "Wespe tödlich verwundet"
-msgid "Nuclear power cell available"
-msgstr "Brennstoffzelle verfügbar"
+msgid "Waste"
+msgstr "Abfall"
-msgid "You found a usable object"
-msgstr "Sie haben ein brauchbares Objekt gefunden"
+msgid "Wheeled grabber"
+msgstr "Transporter"
-msgid "Found a site for power station"
-msgstr "Geeignete Stelle für Kraftwerk gefunden"
+msgid "Wheeled orga shooter"
+msgstr "OrgaShooter"
-msgid "Found a site for a derrick"
-msgstr "Geeignete Stelle für Bohrturm gefunden"
+msgid "Wheeled shooter"
+msgstr "Shooter"
-msgid "<<< Well done, mission accomplished >>>"
-msgstr "<<< Bravo, Mission vollendet >>>"
+msgid "Wheeled sniffer"
+msgstr "Schnüffler"
-msgid "<<< Sorry, mission failed >>>"
-msgstr "<<< Mission gescheitert >>>"
+msgid "Win"
+msgstr ""
-msgid "Current mission saved"
-msgstr "Mission gespeichert"
+msgid "Winged grabber"
+msgstr "Transporter"
-msgid "Checkpoint crossed"
-msgstr "Checkpoint erreicht"
+msgid "Winged orga shooter"
+msgstr "OrgaShooter"
-msgid "Alien Queen killed"
-msgstr "Insektenkönigin tödlich verwundet"
+msgid "Winged shooter"
+msgstr "Shooter"
-msgid "Ant fatally wounded"
-msgstr "Ameise tödlich verwundet"
+msgid "Winged sniffer"
+msgstr "Schnüffler"
-msgid "Wasp fatally wounded"
-msgstr "Wespe tödlich verwundet"
+msgid "Withdraw shield (\\key action;)"
+msgstr "Schutzschild einholen (\\key action;)"
+
+msgid "Worm"
+msgstr "Wurm"
msgid "Worm fatally wounded"
msgstr "Wurm tödlich verwundet"
-msgid "Spider fatally wounded"
-msgstr "Spinne tödlich verwundet"
+msgid "Wreckage"
+msgstr "Roboterwrack"
-msgid "Press \\key help; to read instructions on your SatCom"
-msgstr "Beziehen Sie sich auf Ihren SatCom, indem Sie auf \\key help; drücken"
+msgid "Write error"
+msgstr "Fehler beim Schreibzugriff"
-msgid "Opening bracket missing"
-msgstr "Es fehlt eine offene Klammer \"(\""
+msgid "Wrong type for the assignment"
+msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung"
-msgid "Closing bracket missing "
-msgstr "Es fehlt eine geschlossene Klammer \")\""
+msgid "Yellow flag"
+msgstr "Gelbe Fahne"
-msgid "The expression must return a boolean value"
-msgstr "Der Ausdruck muss einen boolschen Wert ergeben"
+msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
+msgstr "Sie können jetzt mit den Tasten \\key gup; und \\key gdown; fliegen"
-msgid "Variable not declared"
-msgstr "Variable nicht deklariert"
+msgid "You can not carry a radioactive object"
+msgstr "Sie können keinen radioaktiven Gegenstand tragen"
-msgid "Assignment impossible"
-msgstr "Zuweisung unmöglich"
+msgid "You can not carry an object under water"
+msgstr "Sie können unter Wasser nichts tragen"
-msgid "Semicolon terminator missing"
-msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung"
+msgid "You found a usable object"
+msgstr "Sie haben ein brauchbares Objekt gefunden"
-msgid "Instruction \"case\" outside a block \"switch\""
-msgstr "Anweisung \"case\" ohne vorhergehende Anweisung \"switch\""
+msgid "You must get on the spaceship to take off "
+msgstr "Gehen Sie an Bord, bevor Sie abheben"
-msgid "Instructions after the final closing brace"
-msgstr "Hier ist eine Anweisung nach dem Ende des Programms"
+msgid "Zoom mini-map"
+msgstr "Zoom Minikarte"
-msgid "End of block missing"
-msgstr "Es fehlt eine geschlossene geschweifte Klammer \"}\" (Ende des Blocks)"
+msgid "\\Blue flags"
+msgstr "\\Blaue Fahne"
-msgid "Instruction \"else\" without corresponding \"if\" "
-msgstr "Anweisung \"else\" ohne vorhergehende Anweisung \"if\""
+msgid "\\Eyeglasses 1"
+msgstr "\\Brille 1"
-msgid "Opening brace missing "
-msgstr "Es fehlt eine offene geschweifte Klammer\"{\""
+msgid "\\Eyeglasses 2"
+msgstr "\\Brille 2"
-msgid "Wrong type for the assignment"
-msgstr "Der Ausdruck ergibt einen falschen Typ für die Zuweisung"
+msgid "\\Eyeglasses 3"
+msgstr "\\Brille 3"
-msgid "A variable can not be declared twice"
-msgstr "Eine Variable wird zum zweiten Mal deklariert"
+msgid "\\Eyeglasses 4"
+msgstr "\\Brille 4"
-msgid "The types of the two operands are incompatible "
-msgstr "Die zwei Operanden sind nicht kompatibel"
+msgid "\\Eyeglasses 5"
+msgstr "\\Brille 5"
-msgid "Unknown function"
-msgstr "Unbekannte Funktion"
+msgid "\\Face 1"
+msgstr "\\Kopf 1"
-msgid "Sign \" : \" missing"
-msgstr "Es fehlt ein Doppelpunkt \" : \""
+msgid "\\Face 2"
+msgstr "\\Kopf 2"
-msgid "Keyword \"while\" missing"
-msgstr "Es fehlt das Wort \"while\""
+msgid "\\Face 3"
+msgstr "\\Kopf 3"
-msgid "Instruction \"break\" outside a loop"
-msgstr "Anweisung \"break\" außerhalb einer Schleife"
+msgid "\\Face 4"
+msgstr "\\Kopf 4"
-msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\""
-msgstr ""
-"Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder "
-"\"switch\" vorkommen"
+msgid "\\Green flags"
+msgstr "\\Grüne Fahne"
-msgid "This label does not exist"
-msgstr "Dieses Label existiert nicht"
+msgid "\\New player name"
+msgstr "\\Name des Spielers"
-msgid "Instruction \"case\" missing"
-msgstr "Es fehlt eine Anweisung \"case\""
+msgid "\\No eyeglasses"
+msgstr "\\Keine Brille"
-msgid "Number missing"
-msgstr "Es fehlt eine Zahl"
+msgid "\\Raise the pencil"
+msgstr "\\Bleistift abheben"
-msgid "Void parameter"
-msgstr "Parameter void"
+msgid "\\Red flags"
+msgstr "\\Rote Fahne"
-msgid "Type declaration missing"
-msgstr "Hier muss ein Variablentyp stehen"
+msgid "\\Return to COLOBOT"
+msgstr "\\Zurück zu COLOBOT"
-msgid "Variable name missing"
-msgstr "Es fehlt der Name einer Variable"
+msgid "\\SatCom on standby"
+msgstr "\\SatCom in Standby"
-msgid "Function name missing"
-msgstr "Hier muss der Name der Funktion stehen"
+msgid "\\Start recording"
+msgstr "\\Aufnahme starten"
-msgid "Too many parameters"
-msgstr "Zu viele Parameter"
+msgid "\\Stop recording"
+msgstr "\\Aufnahme stoppen"
-msgid "Function already exists"
-msgstr "Diese Funktion gibt es schon"
+msgid "\\Turn left"
+msgstr "\\Drehung links"
-msgid "Parameters missing "
-msgstr "Nicht genug Parameter"
+msgid "\\Turn right"
+msgstr "\\Drehung rechts"
-msgid "No function with this name accepts this kind of parameter"
-msgstr "Keine Funktion mit diesem Namen verträgt Parameter diesen Typs"
+msgid "\\Use the black pencil"
+msgstr "\\Schwarzen Bleistift hinunterlassen"
-msgid "No function with this name accepts this number of parameters"
-msgstr "Keine Funktion mit diesem Namen verträgt diese Anzahl Parameter"
+msgid "\\Use the blue pencil"
+msgstr "\\Blauen Bleistift hinunterlassen"
-msgid "This is not a member of this class"
-msgstr "Dieses Element gibt es nicht in dieser Klasse"
+msgid "\\Use the brown pencil"
+msgstr "\\Braunen Bleistift hinunterlassen"
-msgid "This object is not a member of a class"
-msgstr "Das Objekt ist nicht eine Instanz einer Klasse"
+msgid "\\Use the green pencil"
+msgstr "\\Grünen Bleistift hinunterlassen"
-msgid "Appropriate constructor missing"
-msgstr "Es gibt keinen geeigneten Konstruktor"
+msgid "\\Use the orange pencil"
+msgstr "\\Orangefarbenen Bleistift hinunterlassen"
-msgid "This class already exists"
-msgstr "Diese Klasse gibt es schon"
+msgid "\\Use the purple pencil"
+msgstr "\\Violetten Bleistift hinunterlassen"
-msgid "\" ] \" missing"
-msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \""
+msgid "\\Use the red pencil"
+msgstr "\\Roten Bleistift hinunterlassen"
-msgid "Reserved keyword of CBOT language"
-msgstr "Dieses Wort ist reserviert"
+msgid "\\Use the yellow pencil"
+msgstr "\\Gelben Bleistift hinunterlassen"
-msgid "Bad argument for \"new\""
-msgstr "Falsche Argumente für \"new\""
+msgid "\\Violet flags"
+msgstr "\\Violette Fahne"
-msgid "\" [ \" expected"
-msgstr "Es fehlt eine offene eckige Klammer \" [ \""
+msgid "\\Yellow flags"
+msgstr "\\Gelbe Fahne"
-msgid "String missing"
-msgstr "Hier wird eine Zeichenkette erwartet"
+msgid "\\b;Aliens\n"
+msgstr "\\b;Listes der Feinde\n"
-msgid "Incorrect index type"
-msgstr "Falscher Typ für einen Index"
+msgid "\\b;Buildings\n"
+msgstr "\\b;Listes der Gebäude\n"
-msgid "Private element"
-msgstr "Geschütztes Element (private)"
+msgid "\\b;Error\n"
+msgstr "\\b;Fehler\n"
-msgid "Public required"
-msgstr "Hier muss das Wort \"public\" stehen"
+msgid "\\b;List of objects\n"
+msgstr "\\b;Liste der Objekte\n"
-msgid "Dividing by zero"
-msgstr "Teilung durch Null"
+msgid "\\b;Moveable objects\n"
+msgstr "\\b;Listes der tragbaren Gegenstände\n"
-msgid "Variable not initialized"
-msgstr "Der Wert dieser Variable wurde nicht definiert"
+msgid "\\b;Robots\n"
+msgstr "\\b;Liste der Roboter\n"
-msgid "Negative value rejected by \"throw\""
-msgstr "Negativer Wert ungeeignet für Anweisung \"throw\""
+msgid "\\c; (none)\\n;\n"
+msgstr "\\c; (keine)\\n;\n"
-msgid "The function returned no value "
-msgstr "Die Funktion hat kein Ergebnis zurückgegeben"
+msgid "action;"
+msgstr ""
-msgid "No function running"
-msgstr "Keine Funktion wird ausgeführt"
+msgid "away;"
+msgstr ""
-msgid "Calling an unknown function"
-msgstr "Die aufgerufene Funktion existiert nicht"
+msgid "camera;"
+msgstr ""
-msgid "This class does not exist"
-msgstr "Diese Klasse existiert nicht"
+msgid "cbot;"
+msgstr ""
-msgid "Unknown Object"
-msgstr "Das Objekt existiert nicht"
+msgid "desel;"
+msgstr ""
-msgid "Operation impossible with value \"nan\""
-msgstr "Operation mit dem Wert \"nan\""
+msgid "down;"
+msgstr ""
-msgid "Access beyond array limit"
-msgstr "Zugriff im Array außerhalb der Grenzen"
+msgid "gdown;"
+msgstr ""
-msgid "Stack overflow"
-msgstr "Stack overflow"
+msgid "gup;"
+msgstr ""
-msgid "Illegal object"
-msgstr "Objekt nicht verfügbar"
+msgid "help;"
+msgstr ""
-msgid "Can't open file"
-msgstr "Die Datei kann nicht geöffnet werden"
+msgid "human;"
+msgstr ""
-msgid "File not open"
-msgstr "Die Datei wurde nicht geöffnet"
+msgid "left;"
+msgstr ""
-msgid "Read error"
-msgstr "Fehler beim Lesezugriff"
+msgid "near;"
+msgstr ""
-msgid "Write error"
-msgstr "Fehler beim Schreibzugriff"
+msgid "next;"
+msgstr ""
+
+msgid "prog;"
+msgstr ""
+
+msgid "quit;"
+msgstr ""
+
+msgid "right;"
+msgstr ""
+
+msgid "speed10;"
+msgstr ""
+
+msgid "speed15;"
+msgstr ""
-msgid "< none >"
-msgstr "< keine >"
+msgid "speed20;"
+msgstr ""
-msgid "Arrow left"
-msgstr "Pfeiltaste links"
+msgid "up;"
+msgstr ""
-msgid "Arrow right"
-msgstr "Pfeiltaste rechts"
+msgid "visit;"
+msgstr ""
-msgid "Arrow up"
-msgstr "Pfeil nach oben"
+msgid "www.epsitec.com"
+msgstr "www.epsitec.com"
-msgid "Arrow down"
-msgstr "Pfeil nach unten"
+#~ msgid "< none >"
+#~ msgstr "< keine >"
-msgid "Control-break"
-msgstr "Ctrl-Break"
+#~ msgid "<--"
+#~ msgstr "<--"
-msgid "<--"
-msgstr "<--"
+#~ msgid "Application key"
+#~ msgstr "Application key"
-msgid "Tab"
-msgstr "Tab"
+#~ msgid "Arrow down"
+#~ msgstr "Pfeil nach unten"
-msgid "Clear"
-msgstr "Clear"
+#~ msgid "Arrow left"
+#~ msgstr "Pfeiltaste links"
-msgid "Enter"
-msgstr "Eingabe"
+#~ msgid "Arrow right"
+#~ msgstr "Pfeiltaste rechts"
-msgid "Shift"
-msgstr "Shift"
+#~ msgid "Arrow up"
+#~ msgstr "Pfeil nach oben"
-msgid "Ctrl"
-msgstr "Ctrl"
+#~ msgid "Attn"
+#~ msgstr "Attn"
-msgid "Alt"
-msgstr "Alt"
+#~ msgid "Caps Lock"
+#~ msgstr "Caps Lock"
-msgid "Pause"
-msgstr "Pause"
+#~ msgid "Clear"
+#~ msgstr "Clear"
-msgid "Caps Lock"
-msgstr "Caps Lock"
+#~ msgid "Control-break"
+#~ msgstr "Ctrl-Break"
-msgid "Esc"
-msgstr "Esc"
+#~ msgid "CrSel"
+#~ msgstr "CrSel"
-msgid "Space"
-msgstr "Leertaste"
+#~ msgid "Delete Key"
+#~ msgstr "Delete"
-msgid "Page Up"
-msgstr "Page Up"
+#~ msgid "Dictionnary"
+#~ msgstr "Wörterbuch Englisch-Deutsch"
-msgid "Page Down"
-msgstr "Page Down"
+#~ msgid "Disintegrator"
+#~ msgstr "Auflöser"
-msgid "End"
-msgstr "End"
+#~ msgid "End"
+#~ msgstr "End"
-msgid "Home Key"
-msgstr "Home"
+#~ msgid "Enter"
+#~ msgstr "Eingabe"
-msgid "Select"
-msgstr "Select"
+#~ msgid "Erase EOF"
+#~ msgstr "Erase EOF"
-msgid "Execute"
-msgstr "Execute"
+#~ msgid "Error"
+#~ msgstr "Fehler"
-msgid "Print Scrn"
-msgstr "Print Scrn"
+#~ msgid "Esc"
+#~ msgstr "Esc"
-msgid "Insert"
-msgstr "Insert"
+#~ msgid "ExSel"
+#~ msgstr "ExSel"
-msgid "Delete Key"
-msgstr "Delete"
+#~ msgid "Execute"
+#~ msgstr "Execute"
-msgid "Help"
-msgstr "Help"
+#~ msgid "F1"
+#~ msgstr "F1"
-msgid "Left Windows"
-msgstr "Left Windows"
+#~ msgid "F10"
+#~ msgstr "F10"
-msgid "Right Windows"
-msgstr "Right Windows"
+#~ msgid "F11"
+#~ msgstr "F11"
-msgid "Application key"
-msgstr "Application key"
+#~ msgid "F12"
+#~ msgstr "F12"
-msgid "NumPad 0"
-msgstr "NumPad 0"
+#~ msgid "F13"
+#~ msgstr "F13"
-msgid "NumPad 1"
-msgstr "NumPad 1"
+#~ msgid "F14"
+#~ msgstr "F14"
-msgid "NumPad 2"
-msgstr "NumPad 2"
+#~ msgid "F15"
+#~ msgstr "F15"
-msgid "NumPad 3"
-msgstr "NumPad 3"
+#~ msgid "F16"
+#~ msgstr "F16"
-msgid "NumPad 4"
-msgstr "NumPad 4"
+#~ msgid "F17"
+#~ msgstr "F17"
-msgid "NumPad 5"
-msgstr "NumPad 5"
+#~ msgid "F18"
+#~ msgstr "F18"
-msgid "NumPad 6"
-msgstr "NumPad 6"
+#~ msgid "F19"
+#~ msgstr "F19"
-msgid "NumPad 7"
-msgstr "NumPad 7"
+#~ msgid "F2"
+#~ msgstr "F2"
-msgid "NumPad 8"
-msgstr "NumPad 8"
+#~ msgid "F20"
+#~ msgstr "F20"
-msgid "NumPad 9"
-msgstr "NumPad 9"
+#~ msgid "F3"
+#~ msgstr "F3"
-msgid "NumPad *"
-msgstr "NumPad *"
+#~ msgid "F4"
+#~ msgstr "F4"
-msgid "NumPad +"
-msgstr "NumPad +"
+#~ msgid "F5"
+#~ msgstr "F5"
-msgid "NumPad sep"
-msgstr "NumPad sep"
+#~ msgid "F6"
+#~ msgstr "F6"
-msgid "NumPad -"
-msgstr "NumPad -"
+#~ msgid "F7"
+#~ msgstr "F7"
-msgid "NumPad ."
-msgstr "NumPad ."
+#~ msgid "F8"
+#~ msgstr "F8"
-msgid "NumPad /"
-msgstr "NumPad /"
+#~ msgid "F9"
+#~ msgstr "F9"
-msgid "F1"
-msgstr "F1"
+#~ msgid "Help"
+#~ msgstr "Help"
-msgid "F2"
-msgstr "F2"
+#~ msgid "Home Key"
+#~ msgstr "Home"
-msgid "F3"
-msgstr "F3"
+#~ msgid "Insert"
+#~ msgstr "Insert"
-msgid "F4"
-msgstr "F4"
+#~ msgid "Left Windows"
+#~ msgstr "Left Windows"
-msgid "F5"
-msgstr "F5"
+#~ msgid "Mini-map"
+#~ msgstr "Minikarte"
-msgid "F6"
-msgstr "F6"
+#~ msgid "Num Lock"
+#~ msgstr "Num Lock"
-msgid "F7"
-msgstr "F7"
+#~ msgid "NumPad *"
+#~ msgstr "NumPad *"
-msgid "F8"
-msgstr "F8"
+#~ msgid "NumPad +"
+#~ msgstr "NumPad +"
-msgid "F9"
-msgstr "F9"
+#~ msgid "NumPad -"
+#~ msgstr "NumPad -"
-msgid "F10"
-msgstr "F10"
+#~ msgid "NumPad ."
+#~ msgstr "NumPad ."
-msgid "F11"
-msgstr "F11"
+#~ msgid "NumPad /"
+#~ msgstr "NumPad /"
-msgid "F12"
-msgstr "F12"
+#~ msgid "NumPad 0"
+#~ msgstr "NumPad 0"
-msgid "F13"
-msgstr "F13"
+#~ msgid "NumPad 1"
+#~ msgstr "NumPad 1"
-msgid "F14"
-msgstr "F14"
+#~ msgid "NumPad 2"
+#~ msgstr "NumPad 2"
-msgid "F15"
-msgstr "F15"
+#~ msgid "NumPad 3"
+#~ msgstr "NumPad 3"
-msgid "F16"
-msgstr "F16"
+#~ msgid "NumPad 4"
+#~ msgstr "NumPad 4"
-msgid "F17"
-msgstr "F17"
+#~ msgid "NumPad 5"
+#~ msgstr "NumPad 5"
-msgid "F18"
-msgstr "F18"
+#~ msgid "NumPad 6"
+#~ msgstr "NumPad 6"
-msgid "F19"
-msgstr "F19"
+#~ msgid "NumPad 7"
+#~ msgstr "NumPad 7"
-msgid "F20"
-msgstr "F20"
+#~ msgid "NumPad 8"
+#~ msgstr "NumPad 8"
-msgid "Num Lock"
-msgstr "Num Lock"
+#~ msgid "NumPad 9"
+#~ msgstr "NumPad 9"
-msgid "Scroll"
-msgstr "Scroll"
+#~ msgid "NumPad sep"
+#~ msgstr "NumPad sep"
-msgid "Attn"
-msgstr "Attn"
+#~ msgid "PA1"
+#~ msgstr "PA1"
-msgid "CrSel"
-msgstr "CrSel"
+#~ msgid "Page Down"
+#~ msgstr "Page Down"
-msgid "ExSel"
-msgstr "ExSel"
+#~ msgid "Page Up"
+#~ msgstr "Page Up"
-msgid "Erase EOF"
-msgstr "Erase EOF"
+#~ msgid "Pause"
+#~ msgstr "Pause"
-msgid "Play"
-msgstr "Play"
+#~ msgid "Play"
+#~ msgstr "Play"
-msgid "Zoom"
-msgstr "Zoom"
+#~ msgid "Print Scrn"
+#~ msgstr "Print Scrn"
-msgid "PA1"
-msgstr "PA1"
+#~ msgid "Right Windows"
+#~ msgstr "Right Windows"
-msgid "Button %1"
-msgstr "Knopf %1"
+#~ msgid "Scroll"
+#~ msgstr "Scroll"
+
+#~ msgid "Select"
+#~ msgstr "Select"
+
+#~ msgid "Space"
+#~ msgstr "Leertaste"
+
+#~ msgid "Tab"
+#~ msgstr "Tab"
+
+#~ msgid "Wheel down"
+#~ msgstr "Mausrad zurück"
-msgid "Wheel up"
-msgstr "Mausrad nach vorne"
+#~ msgid "Wheel up"
+#~ msgstr "Mausrad nach vorne"
-msgid "Wheel down"
-msgstr "Mausrad zurück"
+#~ msgid "Zoom"
+#~ msgstr "Zoom"
diff --git a/src/po/fr.po b/src/po/fr.po
index 45854f9..662fb93 100644
--- a/src/po/fr.po
+++ b/src/po/fr.po
@@ -1,1977 +1,2057 @@
+# Didier Raboud <odyx@debian.org>, 2012.
msgid ""
msgstr ""
+"Report-Msgid-Bugs-To: \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"
+"X-Generator: Lokalize 1.4\n"
-msgid "Colobot rules!"
-msgstr "Colobot est super!"
+msgid " "
+msgstr " "
-msgid "Colobot Gold"
-msgstr "Colobot Gold"
+msgid " Challenges in the chapter:"
+msgstr " Liste des défis du chapitre :"
-msgid "SatCom"
-msgstr "SatCom"
+msgid " Chapters:"
+msgstr " Liste des chapitres :"
-msgid "Maximize"
-msgstr "Taille maximale"
+msgid " Drivers:"
+msgstr " Pilotes :"
-msgid "Minimize"
-msgstr "Taille réduite"
+msgid " Exercises in the chapter:"
+msgstr " Liste des exercices du chapitre :"
-msgid "Normal size"
-msgstr "Taille normale"
+msgid " Free game on this chapter:"
+msgstr " Liste des jeux libres du chapitre :"
-msgid "Close"
-msgstr "Fermer"
+msgid " Free game on this planet:"
+msgstr " Liste des jeux libres du chapitre :"
-msgid "Program editor"
-msgstr "Edition du programme"
+msgid " Missions on this level:"
+msgstr " Missions du niveau :"
-msgid "New"
-msgstr "Nouveau"
+msgid " Missions on this planet:"
+msgstr " Liste des missions du chapitre :"
-msgid "Player"
-msgstr "Joueur"
+msgid " Planets:"
+msgstr " Liste des planètes :"
-msgid "New ..."
-msgstr "Nouveau ..."
+msgid " Prototypes on this planet:"
+msgstr " Liste des prototypes du chapitre :"
+
+msgid " Resolution:"
+msgstr " Résolutions :"
+
+msgid " Summary:"
+msgstr " Résumé :"
+
+msgid " User levels:"
+msgstr " Niveaux supplémentaires :"
msgid " or "
msgstr " ou "
-msgid "COLOBOT"
-msgstr "COLOBOT"
+msgid "\" [ \" expected"
+msgstr "\" [ \" attendu"
-msgid "Programming exercises"
-msgstr "Programmation"
+msgid "\" ] \" missing"
+msgstr "\" ] \" attendu"
-msgid "Challenges"
-msgstr "Défis"
+#, c-format
+msgid "\"%s\" missing in this exercise"
+msgstr "Il manque \"%s\" dans le programme"
-msgid "Missions"
-msgstr "Missions"
+msgid "%1"
+msgstr "%1"
-msgid "Free game"
-msgstr "Jeu libre"
+msgid "..behind"
+msgstr "..derrière"
-msgid "User levels"
-msgstr "Niveaux supplémentaires"
+msgid "..in front"
+msgstr "..devant"
-msgid "Prototypes"
-msgstr "Prototypes"
+msgid "..power cell"
+msgstr "..pile"
-msgid "Options"
-msgstr "Options"
+msgid "1) First click on the key you want to redefine."
+msgstr "1) Cliquez d'abord sur la touche à redéfinir."
-msgid "Player's name"
-msgstr "Nom du joueur"
+msgid "2) Then press the key you want to use instead."
+msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée."
-msgid "Customize your appearance"
-msgstr "Personnalisation de votre apparence"
+msgid "3D sound\\3D positioning of the sound"
+msgstr "Bruitages 3D\\Positionnement sonore dans l'espace"
-msgid "Save the current mission"
-msgstr "Enregistrement de la mission en cours"
+msgid "<< Back \\Back to the previous screen"
+msgstr "<< Retour \\Retour au niveau précédent"
-msgid "Load a saved mission"
-msgstr "Chargement d'une mission enregistrée"
+msgid "<<< Sorry; mission failed >>>"
+msgstr "<<< Désolé; mission échouée >>>"
-msgid " Chapters:"
-msgstr " Liste des chapitres :"
+msgid "<<< Well done; mission accomplished >>>"
+msgstr "<<< Bravo; mission terminée >>>"
-msgid " Planets:"
-msgstr " Liste des plančtes :"
+msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""
+msgstr ""
+"Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou "
+"un \"switch\""
-msgid " User levels:"
-msgstr " Niveaux supplémentaires :"
+msgid "A variable can not be declared twice"
+msgstr "Redéfinition d'une variable"
-msgid " Exercises in the chapter:"
-msgstr " Liste des exercices du chapitre :"
+msgid "Abort\\Abort the current mission"
+msgstr "Abandonner\\Abandonner la mission en cours"
-msgid " Challenges in the chapter:"
-msgstr " Liste des défis du chapitre :"
+msgid "Access beyond array limit"
+msgstr "Accès hors du tableau"
-msgid " Missions on this planet:"
-msgstr " Liste des missions du chapitre :"
+msgid ""
+"Access to solution\\Shows the solution (detailed instructions for missions)"
+msgstr "Accès à la solution\\Donne la solution"
-msgid " Free game on this planet:"
-msgstr " Liste des jeux libres du chapitre :"
+msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
+msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices"
-msgid " Missions on this level:"
-msgstr " Missions du niveau :"
+msgid "Alien Queen"
+msgstr "Pondeuse"
-msgid " Prototypes on this planet:"
-msgstr " Liste des prototypes du chapitre :"
+msgid "Alien Queen killed"
+msgstr "Pondeuse mortellement touchée"
-msgid " Free game on this chapter:"
-msgstr " Liste des jeux libres du chapitre :"
+msgid "Already carrying something"
+msgstr "Porte déjà quelque chose"
-msgid " Summary:"
-msgstr " Résumé :"
+msgid "Alt"
+msgstr "Alt"
-msgid " Drivers:"
-msgstr " Pilotes :"
+msgid "Analysis already performed"
+msgstr "Analyse déjà effectuée"
-msgid " Resolution:"
-msgstr " Résolutions :"
+msgid "Analysis performed"
+msgstr "Analyse terminée"
-msgid "1) First click on the key you want to redefine."
-msgstr "1) Cliquez d'abord sur la touche ŕ redéfinir."
+msgid "Analyzes only organic matter"
+msgstr "N'analyse que la matière organique"
-msgid "2) Then press the key you want to use instead."
-msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée."
+msgid "Ant"
+msgstr "Fourmi"
-msgid "Face type:"
-msgstr "Type de visage :"
+msgid "Ant fatally wounded"
+msgstr "Fourmi mortellement touchée"
-msgid "Eyeglasses:"
-msgstr "Lunettes :"
+msgid "Appearance\\Choose your appearance"
+msgstr "Aspect\\Choisir votre aspect"
-msgid "Hair color:"
-msgstr "Couleur des cheveux :"
+msgid "Apply changes\\Activates the changed settings"
+msgstr "Appliquer les changements\\Active les changements effectués"
-msgid "Suit color:"
-msgstr "Couleur de la combinaison :"
+msgid "Appropriate constructor missing"
+msgstr "Il n'y a pas de constructeur approprié"
-msgid "Strip color:"
-msgstr "Couleur des bandes :"
+msgid "Assignment impossible"
+msgstr "Assignation impossible"
-msgid "Do you want to quit COLOBOT ?"
-msgstr "Voulez-vous quitter COLOBOT ?"
+msgid "Autolab"
+msgstr "Laboratoire de matières organiques"
-msgid "Quit\\Quit COLOBOT"
-msgstr "Quitter\\Quitter COLOBOT"
+msgid "Automatic indent\\When program editing"
+msgstr "Indentation automatique\\Pendant l'édition d'un programme"
-msgid "Quit the mission?"
-msgstr "Quitter la mission ?"
+msgid "Back"
+msgstr "Page précédente"
-msgid "Abort\\Abort the current mission"
-msgstr "Abandonner\\Abandonner la mission en cours"
+msgid "Background sound :\\Volume of audio tracks on the CD"
+msgstr "Fond sonore :\\Volume des pistes audio du CD"
-msgid "Continue\\Continue the current mission"
-msgstr "Continuer\\Continuer la mission en cours"
+msgid "Backward (\\key down;)"
+msgstr "Recule (\\key down;)"
-msgid "Continue\\Continue the game"
-msgstr "Continuer\\Continuer de jouer"
+msgid "Backward\\Moves backward"
+msgstr "Reculer\\Moteur en arrière"
-msgid "Do you really want to destroy the selected building?"
-msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?"
+msgid "Bad argument for \"new\""
+msgstr "Mauvais argument pour \"new\""
-msgid "Do you want to delete %s's saved games? "
-msgstr "Voulez-vous détruire les sauvegardes de %s ?"
+msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
+msgstr "Grande indentation\\Indente avec 2 ou 4 espaces"
-msgid "Delete"
-msgstr "Détruire"
+msgid "Black box"
+msgstr "Boîte noire"
-msgid "Cancel"
-msgstr "Annuler"
+msgid "Blue"
+msgstr "Bleu"
-msgid "LOADING"
-msgstr "CHARGEMENT"
+msgid "Blue flag"
+msgstr "Drapeau bleu"
-msgid "Keyword help(\\key cbot;)"
-msgstr "Aide sur le mot-clé (\\key cbot;)"
+msgid "Bot destroyed"
+msgstr "Robot détruit"
-msgid "Compilation ok (0 errors)"
-msgstr "Compilation ok (0 erreur)"
+msgid "Bot factory"
+msgstr "Fabrique de robots"
-msgid "Program finished"
-msgstr "Programme terminé"
+msgid "Build a bot factory"
+msgstr "Construit une fabrique de robots"
-msgid "\\b;List of objects\n"
-msgstr "\\b;Listes des objets\n"
+msgid "Build a converter"
+msgstr "Construit un convertisseur"
-msgid "\\b;Robots\n"
-msgstr "\\b;Listes des robots\n"
+msgid "Build a defense tower"
+msgstr "Construit une tour"
-msgid "\\b;Buildings\n"
-msgstr "\\b;Listes des bâtiments\n"
+msgid "Build a derrick"
+msgstr "Construit un derrick"
-msgid "\\b;Moveable objects\n"
-msgstr "\\b;Listes des objets transportables\n"
+msgid "Build a exchange post"
+msgstr "Construit une borne d'information"
-msgid "\\b;Aliens\n"
-msgstr "\\b;Listes des ennemis\n"
+msgid "Build a legged grabber"
+msgstr "Fabrique un déménageur à pattes"
-msgid "\\c; (none)\\n;\n"
-msgstr "\\c; (aucun)\\n;\n"
+msgid "Build a legged orga shooter"
+msgstr "Fabrique un orgaShooter à pattes"
-msgid "\\b;Error\n"
-msgstr "\\b;Erreur\n"
+msgid "Build a legged shooter"
+msgstr "Fabrique un shooter à pattes"
-msgid ""
-"The list is only available if a \\l;radar station\\u object\\radar; is "
-"working.\n"
-msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n"
+msgid "Build a legged sniffer"
+msgstr "Fabrique un renifleur à pattes"
-msgid "Open"
-msgstr "Ouvrir"
+msgid "Build a lightning conductor"
+msgstr "Construit un paratonnerre"
-msgid "Save"
-msgstr "Enregistrer"
+msgid "Build a nuclear power plant"
+msgstr "Construit une centrale nucléaire"
-msgid "Folder: %s"
-msgstr "Dossier: %s"
+msgid "Build a phazer shooter"
+msgstr "Fabrique un robot phazer"
-msgid "Name:"
-msgstr "Nom:"
+msgid "Build a power cell factory"
+msgstr "Construit une fabrique de piles"
-msgid "Folder:"
-msgstr "Dans:"
+msgid "Build a power station"
+msgstr "Construit une station"
-msgid "Private\\Private folder"
-msgstr "Privé\\Dossier privé"
+msgid "Build a radar station"
+msgstr "Construit un radar"
-msgid "Public\\Common folder"
-msgstr "Public\\Dossier commun ŕ tous les joueurs"
+msgid "Build a recycler"
+msgstr "Fabrique un robot recycleur"
-msgid "Developed by :"
-msgstr "Développé par :"
+msgid "Build a repair center"
+msgstr "Construit un centre de réparation"
-msgid "www.epsitec.com"
-msgstr "www.epsitec.com"
+msgid "Build a research center"
+msgstr "Construit un centre de recherches"
-msgid " "
-msgstr " "
+msgid "Build a shielder"
+msgstr "Fabrique un robot bouclier"
-msgid "Recorder"
-msgstr "Enregistreur"
+msgid "Build a subber"
+msgstr "Fabrique un robot sous-marin"
-msgid "OK"
-msgstr "D'accord"
+msgid "Build a thumper"
+msgstr "Fabrique un robot secoueur"
-msgid "Next"
-msgstr "Suivant"
+msgid "Build a tracked grabber"
+msgstr "Fabrique un déménageur à chenilles"
-msgid "Previous"
-msgstr "Précédent"
+msgid "Build a tracked orga shooter"
+msgstr "Fabrique un orgaShooter à chenilles"
-msgid "Menu (\\key quit;)"
-msgstr "Menu (\\key quit;)"
+msgid "Build a tracked shooter"
+msgstr "Fabrique un shooter à chenilles"
-msgid "Exercises\\Programming exercises"
-msgstr "Programmation\\Exercices de programmation"
+msgid "Build a tracked sniffer"
+msgstr "Fabrique un renifleur à chenilles"
-msgid "Challenges\\Programming challenges"
-msgstr "Défis\\Défis de programmation"
+msgid "Build a wheeled grabber"
+msgstr "Fabrique un déménageur à roues"
-msgid "Missions\\Select mission"
-msgstr "Missions\\La grande aventure"
+msgid "Build a wheeled orga shooter"
+msgstr "Fabrique un orgaShooter à roues"
-msgid "Free game\\Free game without a specific goal"
-msgstr "Jeu libre\\Jeu libre sans but précis"
+msgid "Build a wheeled shooter"
+msgstr "Fabrique un shooter à roues"
-msgid "User\\User levels"
-msgstr "Suppl.\\Niveaux supplémentaires"
+msgid "Build a wheeled sniffer"
+msgstr "Fabrique un renifleur à roues"
-msgid "Proto\\Prototypes under development"
-msgstr "Proto\\Prototypes en cours d'élaboration"
+msgid "Build a winged grabber"
+msgstr "Fabrique un déménageur volant"
-msgid "New player\\Choose player's name"
-msgstr "Autre joueur\\Choix du nom du joueur"
+msgid "Build a winged orga shooter"
+msgstr "Fabrique un orgaShooter volant"
-msgid "Options\\Preferences"
-msgstr "Options\\Réglages"
+msgid "Build a winged shooter"
+msgstr "Fabrique un shooter volant"
-msgid "Restart\\Restart the mission from the beginning"
-msgstr "Recommencer\\Recommencer la mission au début"
+msgid "Build a winged sniffer"
+msgstr "Fabrique un renifleur volant"
-msgid "Save\\Save the current mission "
-msgstr "Enregistrer\\Enregistrer la mission en cours"
+msgid "Build an autolab"
+msgstr "Construit un laboratoire"
-msgid "Load\\Load a saved mission"
-msgstr "Charger\\Charger une mission enregistrée"
+msgid "Building completed"
+msgstr "Bâtiment terminé"
-msgid "\\Return to COLOBOT"
-msgstr "\\Retourner dans COLOBOT"
+msgid "Building destroyed"
+msgstr "Bâtiment détruit"
-msgid "<< Back \\Back to the previous screen"
-msgstr "<< Retour \\Retour au niveau précédent"
+msgid "Building too close"
+msgstr "Bâtiment trop proche"
-msgid "Play\\Start mission!"
-msgstr "Jouer ...\\Démarrer l'action!"
+msgid "Button %1"
+msgstr "Bouton %1"
-msgid "Device\\Driver and resolution settings"
-msgstr "Affichage\\Pilote et résolution d'affichage"
+msgid "COLOBOT"
+msgstr "COLOBOT"
-msgid "Graphics\\Graphics settings"
-msgstr "Graphique\\Options graphiques"
+msgid "Calling an unknown function"
+msgstr "Appel d'une fonction inexistante"
-msgid "Game\\Game settings"
-msgstr "Jeu\\Options de jouabilité"
+msgid "Camera (\\key camera;)"
+msgstr "Caméra (\\key camera;)"
-msgid "Controls\\Keyboard, joystick and mouse settings"
-msgstr "Commandes\\Touches du clavier"
+msgid "Camera awayest"
+msgstr "Caméra plus loin"
-msgid "Sound\\Music and game sound volume"
-msgstr "Son\\Volumes bruitages & musiques"
+msgid "Camera back\\Moves the camera backward"
+msgstr "Caméra plus loin\\Recule la caméra"
-msgid "Unit"
-msgstr "Unité"
+msgid "Camera closer\\Moves the camera forward"
+msgstr "Caméra plus proche\\Avance la caméra"
-msgid "Resolution"
-msgstr "Résolution"
+msgid "Camera nearest"
+msgstr "Caméra plus proche"
-msgid "Full screen\\Full screen or window mode"
-msgstr "Plein écran\\Plein écran ou fenętré"
+msgid "Camera to left"
+msgstr "Caméra à gauche"
-msgid "Apply changes\\Activates the changed settings"
-msgstr "Appliquer les changements\\Active les changements effectués"
+msgid "Camera to right"
+msgstr "Caméra à droite"
-msgid "Robbie\\Your assistant"
-msgstr "Robbie\\Votre assistant"
+msgid "Can not create this; there are too many objects"
+msgstr "Création impossible; il y a trop d'objets"
-msgid "Shadows\\Shadows on the ground"
-msgstr "Ombres\\Ombres projetées au sol"
+msgid "Can't open file"
+msgstr "Ouverture du fichier impossible"
-msgid "Marks on the ground\\Marks on the ground"
-msgstr "Marques sur le sol\\Marques dessinées sur le sol"
+msgid "Cancel"
+msgstr "Annuler"
-msgid "Dust\\Dust and dirt on bots and buildings"
-msgstr "Salissures\\Salissures des robots et bâtiments"
+msgid "Cancel\\Cancel all changes"
+msgstr "Annuler\\Annuler toutes les modifications"
-msgid "Fog\\Fog"
-msgstr "Brouillard\\Nappes de brouillard"
+msgid "Cancel\\Keep current player name"
+msgstr "Annuler\\Conserver le joueur actuel"
-msgid "Sunbeams\\Sunbeams in the sky"
-msgstr "Rayons du soleil\\Rayons selon l'orientation"
+msgid "Challenges"
+msgstr "Défis"
-msgid "Sky\\Clouds and nebulae"
-msgstr "Ciel\\Ciel et nuages"
+msgid "Challenges\\Programming challenges"
+msgstr "Défis\\Défis de programmation"
-msgid "Planets and stars\\Astronomical objects in the sky"
-msgstr "Plančtes et étoiles\\Motifs mobiles dans le ciel"
+msgid "Change camera\\Switches between onboard camera and following camera"
+msgstr "Changement de caméra\\Autre de point de vue"
-msgid "Dynamic lighting\\Mobile light sources"
-msgstr "Lumičres dynamiques\\Eclairages mobiles"
+msgid "Checkpoint"
+msgstr "Indicateur"
-msgid "Number of particles\\Explosions, dust, reflections, etc."
-msgstr "Quantité de particules\\Explosions, poussičres, reflets, etc."
+msgid "Checkpoint crossed"
+msgstr "Indicateur atteint"
-msgid "Depth of field\\Maximum visibility"
-msgstr "Profondeur de champ\\Distance de vue maximale"
+msgid "Climb\\Increases the power of the jet"
+msgstr "Monter\\Augmenter la puissance du réacteur"
-msgid "Details\\Visual quality of 3D objects"
-msgstr "Détails des objets\\Qualité des objets en 3D"
+msgid "Close"
+msgstr "Fermer"
-msgid "Textures\\Quality of textures "
-msgstr "Qualité des textures\\Qualité des images"
+msgid "Closing bracket missing "
+msgstr "Il manque une parenthèse fermante"
-msgid "Num of decorative objects\\Number of purely ornamental objects"
-msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables"
+msgid "Colobot rules!"
+msgstr "Colobot est super!"
-msgid "Particles in the interface\\Steam clouds and sparks in the interface"
-msgstr "Particules dans l'interface\\Pluie de particules"
+msgid "Command line"
+msgstr "Console de commande"
-msgid "Reflections on the buttons \\Shiny buttons"
-msgstr "Reflets sur les boutons\\Boutons brillants"
+msgid "Compass"
+msgstr "Boussole"
-msgid "Help balloons\\Explain the function of the buttons"
-msgstr "Bulles d'aide\\Bulles explicatives"
+msgid "Compilation ok (0 errors)"
+msgstr "Compilation ok (0 erreur)"
-msgid "Film sequences\\Films before and after the missions"
-msgstr "Séquences cinématiques\\Films avant ou aprčs une mission"
+msgid "Compile"
+msgstr "Compiler"
-msgid "Exit film\\Film at the exit of exercises"
-msgstr "Retour animé\\Retour animé dans les exercices"
+msgid "Continue"
+msgstr "Continuer"
-msgid "Friendly fire\\Your shooting can damage your own objects "
-msgstr "Dégâts ŕ soi-męme\\Vos tirs infligent des dommages ŕ vos unités"
+msgid "Continue\\Continue the current mission"
+msgstr "Continuer\\Continuer la mission en cours"
-msgid "Scrolling\\Scrolling when the mouse touches right or left border"
-msgstr ""
-"Défilement dans les bords\\Défilement lorsque la souris touches les bords "
-"gauche ou droite"
+msgid "Continue\\Continue the game"
+msgstr "Continuer\\Continuer de jouer"
-msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
-msgstr ""
-"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord"
+msgid "Controls\\Keyboard, joystick and mouse settings"
+msgstr "Commandes\\Touches du clavier"
-msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
-msgstr ""
-"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord"
+msgid "Converts ore to titanium"
+msgstr "Conversion minerai en titanium"
-msgid "Quake at explosions\\The screen shakes at explosions"
-msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion"
+msgid "Copy"
+msgstr "Copier"
-msgid "Mouse shadow\\Gives the mouse a shadow"
-msgstr "Souris ombrée\\Jolie souris avec une ombre"
+msgid "Copy (Ctrl+c)"
+msgstr "Copier (Ctrl+c)"
-msgid "Automatic indent\\When program editing"
-msgstr "Indentation automatique\\Pendant l'édition d'un programme"
+msgid "Ctrl"
+msgstr "Ctrl"
-msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
-msgstr "Grande indentation\\Indente avec 2 ou 4 espaces"
+msgid "Current mission saved"
+msgstr "Enregistrement effectué"
-msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
-msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices"
+msgid "Customize your appearance"
+msgstr "Personnalisation de votre apparence"
-msgid "Standard controls\\Standard key functions"
-msgstr "Tout réinitialiser\\Remet toutes les touches standards"
+msgid "Cut (Ctrl+x)"
+msgstr "Couper (Ctrl+x)"
-msgid "Turn left\\turns the bot to the left"
-msgstr "Tourner ŕ gauche\\Moteur ŕ gauche"
+msgid "Defense tower"
+msgstr "Tour de défense"
-msgid "Turn right\\turns the bot to the right"
-msgstr "Tourner ŕ droite\\Moteur ŕ droite"
+msgid "Delete"
+msgstr "Détruire"
-msgid "Forward\\Moves forward"
-msgstr "Avancer\\Moteur en avant"
+msgid "Delete player\\Deletes the player from the list"
+msgstr "Supprimer le joueur\\Supprimer le joueur de la liste"
-msgid "Backward\\Moves backward"
-msgstr "Reculer\\Moteur en arričre"
+msgid "Delete\\Deletes the selected file"
+msgstr "Supprimer\\Supprime l'enregistrement sélectionné"
-msgid "Climb\\Increases the power of the jet"
-msgstr "Monter\\Augmenter la puissance du réacteur"
+msgid "Depth of field\\Maximum visibility"
+msgstr "Profondeur de champ\\Distance de vue maximale"
+
+msgid "Derrick"
+msgstr "Derrick"
msgid "Descend\\Reduces the power of the jet"
msgstr "Descendre\\Diminuer la puissance du réacteur"
-msgid "Change camera\\Switches between onboard camera and following camera"
-msgstr "Changement de caméra\\Autre de point de vue"
-
-msgid "Previous object\\Selects the previous object"
-msgstr "Sélection précédente\\Sélectionne l'objet précédent"
-
-msgid ""
-"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
-msgstr "Action standard\\Action du bouton avec le cadre rouge"
-
-msgid "Camera closer\\Moves the camera forward"
-msgstr "Caméra plus proche\\Avance la caméra"
+msgid "Destroy the building"
+msgstr "Démolit le bâtiment"
-msgid "Camera back\\Moves the camera backward"
-msgstr "Caméra plus loin\\Recule la caméra"
+msgid "Destroyer"
+msgstr "Destructeur"
-msgid "Next object\\Selects the next object"
-msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant"
+msgid "Details\\Visual quality of 3D objects"
+msgstr "Détails des objets\\Qualité des objets en 3D"
-msgid "Select the astronaut\\Selects the astronaut"
-msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute"
+msgid "Developed by :"
+msgstr "Développé par :"
-msgid "Quit\\Quit the current mission or exercise"
-msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion"
+msgid "Device\\Driver and resolution settings"
+msgstr "Affichage\\Pilote et résolution d'affichage"
-msgid "Instructions\\Shows the instructions for the current mission"
-msgstr "Instructions mission\\Marche ŕ suivre"
+msgid "Dividing by zero"
+msgstr "Division par zéro"
-msgid "Programming help\\Gives more detailed help with programming"
-msgstr "Instructions programmation\\Explication sur la programmation"
+msgid "Do not use in this exercise"
+msgstr "Interdit dans cet exercice"
-msgid "Key word help\\More detailed help about key words"
-msgstr "Instructions mot-clé\\Explication sur le mot-clé"
+msgid "Do you really want to destroy the selected building?"
+msgstr "Voulez-vous vraiment détruire le bâtiment sélectionné ?"
-msgid "Origin of last message\\Shows where the last message was sent from"
-msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message"
+#, c-format
+msgid "Do you want to delete %s's saved games? "
+msgstr "Voulez-vous détruire les sauvegardes de %s ?"
-msgid "Speed 1.0x\\Normal speed"
-msgstr "Vitesse 1.0x\\Vitesse normale"
+msgid "Do you want to quit COLOBOT ?"
+msgstr "Voulez-vous quitter COLOBOT ?"
-msgid "Speed 1.5x\\1.5 times faster"
-msgstr "Vitesse 1.5x\\Une fois et demi plus rapide"
+msgid "Doors blocked by a robot or another object "
+msgstr "Portes bloquées par un robot ou un objet"
-msgid "Speed 2.0x\\Double speed"
-msgstr "Vitesse 2.0x\\Deux fois plus rapide"
+msgid "Down (\\key gdown;)"
+msgstr "Descend (\\key gdown;)"
-msgid "Speed 3.0x\\Three times faster"
-msgstr "Vitesse 3.0x\\Trois fois plus rapide"
+msgid "Drawer bot"
+msgstr "Robot dessinateur"
-msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
-msgstr "Bruitages :\\Volume des moteurs, voix, etc."
+msgid "Dust\\Dust and dirt on bots and buildings"
+msgstr "Salissures\\Salissures des robots et bâtiments"
-msgid "Background sound :\\Volume of audio tracks on the CD"
-msgstr "Fond sonore :\\Volume des pistes audio du CD"
+msgid "Dynamic lighting\\Mobile light sources"
+msgstr "Lumières dynamiques\\Éclairages mobiles"
-msgid "3D sound\\3D positioning of the sound"
-msgstr "Bruitages 3D\\Positionnement sonore dans l'espace"
+msgid "Edit the selected program"
+msgstr "Édite le programme sélectionné"
-msgid "Lowest\\Minimum graphic quality (highest frame rate)"
-msgstr "Mini\\Qualité minimale (+ rapide)"
+msgid "Egg"
+msgstr "Oeuf"
-msgid "Normal\\Normal graphic quality"
-msgstr "Normal\\Qualité standard"
+msgid "End of block missing"
+msgstr "Il manque la fin du bloc"
-msgid "Highest\\Highest graphic quality (lowest frame rate)"
-msgstr "Maxi\\Haute qualité (+ lent)"
+msgid "Energy deposit (site for power station)"
+msgstr "Emplacement pour station"
-msgid "Mute\\No sound"
-msgstr "Silencieux\\Totalement silencieux"
+msgid "Energy level"
+msgstr "Niveau d'énergie"
-msgid "Normal\\Normal sound volume"
-msgstr "Normal\\Niveaux normaux"
+msgid "Engineer"
+msgstr "Technicien"
-msgid "Use a joystick\\Joystick or keyboard"
-msgstr "Utilise un joystick\\Joystick ou clavier"
+msgid "Error in instruction move"
+msgstr "Déplacement impossible"
-msgid ""
-"Access to solution\\Shows the solution (detailed instructions for missions)"
-msgstr "Accčs ŕ la solution\\Donne la solution"
+msgid "Execute the selected program"
+msgstr "Exécute le programme sélectionné"
-msgid "\\New player name"
-msgstr "\\Nom du joueur ŕ créer"
+msgid "Execute/stop"
+msgstr "Démarrer/stopper"
-msgid "OK\\Choose the selected player"
-msgstr "D'accord\\Choisir le joueur"
+msgid "Exercises\\Programming exercises"
+msgstr "Programmation\\Exercices de programmation"
-msgid "Cancel\\Keep current player name"
-msgstr "Annuler\\Conserver le joueur actuel"
+msgid "Exit film\\Film at the exit of exercises"
+msgstr "Retour animé\\Retour animé dans les exercices"
-msgid "Delete player\\Deletes the player from the list"
-msgstr "Supprimer le joueur\\Supprimer le joueur de la liste"
+msgid "Explosive"
+msgstr "Explosif"
-msgid "Player name"
-msgstr "Nom du joueur"
+msgid "Extend shield (\\key action;)"
+msgstr "Déploie le bouclier (\\key action;)"
-msgid "Save\\Saves the current mission"
-msgstr "Enregistrer\\Enregistrer la mission en cours"
+msgid "Eyeglasses:"
+msgstr "Lunettes :"
-msgid "Load\\Loads the selected mission"
-msgstr "Charger\\Charger la mission sélectionnée"
+msgid "Face type:"
+msgstr "Type de visage :"
-msgid "List of saved missions"
-msgstr "Liste des missions enregistrées"
+msgid "File not open"
+msgstr "Le fichier n'est pas ouvert"
msgid "Filename:"
msgstr "Nom du fichier :"
-msgid "Mission name"
-msgstr "Nom de la mission"
+msgid "Film sequences\\Films before and after the missions"
+msgstr "Séquences cinématiques\\Films avant ou après une mission"
-msgid "Photography"
-msgstr "Vue de la mission"
+msgid "Finish"
+msgstr "But"
-msgid "Delete\\Deletes the selected file"
-msgstr "Supprimer\\Supprime l'enregistrement sélectionné"
+msgid "Fixed mine"
+msgstr "Mine fixe"
-msgid "Appearance\\Choose your appearance"
-msgstr "Aspect\\Choisir votre aspect"
+msgid "Flat ground not large enough"
+msgstr "Sol plat pas assez grand"
-msgid "Standard\\Standard appearance settings"
-msgstr "Standard\\Remet les couleurs standards"
+msgid "Fog\\Fog"
+msgstr "Brouillard\\Nappes de brouillard"
-msgid "Head\\Face and hair"
-msgstr "Tęte\\Visage et cheveux"
+msgid "Folder:"
+msgstr "Dans:"
-msgid "Suit\\Astronaut suit"
-msgstr "Corps\\Combinaison"
+#, c-format
+msgid "Folder: %s"
+msgstr "Dossier: %s"
-msgid "\\Turn left"
-msgstr "\\Rotation ŕ gauche"
+msgid "Font size"
+msgstr "Taille des caractères"
-msgid "\\Turn right"
-msgstr "\\Rotation ŕ droite"
+msgid "Forward"
+msgstr "Page suivante"
-msgid "Red"
-msgstr "Rouge"
+msgid "Forward (\\key up;)"
+msgstr "Avance (\\key up;)"
-msgid "Green"
-msgstr "Vert"
+msgid "Forward\\Moves forward"
+msgstr "Avancer\\Moteur en avant"
-msgid "Blue"
-msgstr "Bleu"
+msgid "Found a site for a derrick"
+msgstr "Emplacement pour derrick trouvé"
-msgid "\\Face 1"
-msgstr "\\Visage 1"
+msgid "Found a site for power station"
+msgstr "Emplacement pour station trouvé"
-msgid "\\Face 4"
-msgstr "\\Visage 4"
+msgid "Found key A (site for derrick)"
+msgstr "Emplacement pour derrick (clé A)"
-msgid "\\Face 3"
-msgstr "\\Visage 3"
+msgid "Found key B (site for derrick)"
+msgstr "Emplacement pour derrick (clé B)"
-msgid "\\Face 2"
-msgstr "\\Visage 2"
+msgid "Found key C (site for derrick)"
+msgstr "Emplacement pour derrick (clé C)"
-msgid "\\No eyeglasses"
-msgstr "\\Pas de lunettes"
+msgid "Found key D (site for derrick)"
+msgstr "Emplacement pour derrick (clé D)"
-msgid "\\Eyeglasses 1"
-msgstr "\\Lunettes 1"
+msgid "Free game"
+msgstr "Jeu libre"
-msgid "\\Eyeglasses 2"
-msgstr "\\Lunettes 2"
+msgid "Free game\\Free game without a specific goal"
+msgstr "Jeu libre\\Jeu libre sans but précis"
-msgid "\\Eyeglasses 3"
-msgstr "\\Lunettes 3"
+msgid "Friendly fire\\Your shooting can damage your own objects "
+msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités"
-msgid "\\Eyeglasses 4"
-msgstr "\\Lunettes 4"
+msgid "Full screen\\Full screen or window mode"
+msgstr "Plein écran\\Plein écran ou fenêtré"
-msgid "\\Eyeglasses 5"
-msgstr "\\Lunettes 5"
+msgid "Function already exists"
+msgstr "Cette fonction existe déjà"
-msgid "Previous selection (\\key desel;)"
-msgstr "Sélection précédente (\\key desel;)"
+msgid "Function name missing"
+msgstr "Nom de la fonction attendu"
-msgid "Turn left (\\key left;)"
-msgstr "Tourne ŕ gauche (\\key left;)"
+msgid "Game speed"
+msgstr "Vitesse du jeu"
-msgid "Turn right (\\key right;)"
-msgstr "Tourne ŕ droite (\\key right;)"
+msgid "Game\\Game settings"
+msgstr "Jeu\\Options de jouabilité"
-msgid "Forward (\\key up;)"
-msgstr "Avance (\\key up;)"
+msgid "Gantry crane"
+msgstr "Portique"
-msgid "Backward (\\key down;)"
-msgstr "Recule (\\key down;)"
+#, c-format
+msgid "GetResource event num out of range: %d\n"
+msgstr ""
-msgid "Up (\\key gup;)"
-msgstr "Monte (\\key gup;)"
+msgid "Goto: destination occupied"
+msgstr "Goto: Destination occupée"
-msgid "Down (\\key gdown;)"
-msgstr "Descend (\\key gdown;)"
+msgid "Goto: inaccessible destination"
+msgstr "Chemin introuvable"
msgid "Grab or drop (\\key action;)"
msgstr "Prend ou dépose (\\key action;)"
-msgid "..in front"
-msgstr "..devant"
+msgid "Graphics\\Graphics settings"
+msgstr "Graphique\\Options graphiques"
-msgid "..behind"
-msgstr "..derričre"
+msgid "Green"
+msgstr "Vert"
-msgid "..power cell"
-msgstr "..pile"
+msgid "Green flag"
+msgstr "Drapeau vert"
-msgid "Instructions for the mission (\\key help;)"
-msgstr "Instructions sur la mission (\\key help;)"
+msgid "Ground inappropriate"
+msgstr "Terrain inadapté"
-msgid "Take off to finish the mission"
-msgstr "Décolle pour terminer la mission"
+msgid "Ground not flat enough"
+msgstr "Sol pas assez plat"
-msgid "Build a derrick"
-msgstr "Construit un derrick"
+msgid "Hair color:"
+msgstr "Couleur des cheveux :"
-msgid "Build a power station"
-msgstr "Construit une station"
+msgid "Head\\Face and hair"
+msgstr "Tête\\Visage et cheveux"
-msgid "Build a bot factory"
-msgstr "Construit une fabrique de robots"
+msgid "Help about selected object"
+msgstr "Instructions sur la sélection"
-msgid "Build a repair center"
-msgstr "Construit un centre de réparation"
+msgid "Help balloons\\Explain the function of the buttons"
+msgstr "Bulles d'aide\\Bulles explicatives"
-msgid "Build a converter"
-msgstr "Construit un convertisseur"
+msgid "Highest\\Highest graphic quality (lowest frame rate)"
+msgstr "Maxi\\Haute qualité (+ lent)"
-msgid "Build a defense tower"
-msgstr "Construit une tour"
+msgid "Home"
+msgstr "Page initiale"
-msgid "Build a research center"
-msgstr "Construit un centre de recherches"
+msgid "Houston Mission Control"
+msgstr "Centre de contrôle"
-msgid "Build a radar station"
-msgstr "Construit un radar"
+msgid "Illegal object"
+msgstr "Objet inaccessible"
-msgid "Build a power cell factory"
-msgstr "Construit une fabrique de piles"
+msgid "Impossible under water"
+msgstr "Impossible sous l'eau"
-msgid "Build an autolab"
-msgstr "Construit un laboratoire"
+msgid "Impossible when carrying an object"
+msgstr "Impossible en portant un objet"
-msgid "Build a nuclear power plant"
-msgstr "Construit une centrale nucléaire"
+msgid "Impossible when flying"
+msgstr "Impossible en vol"
-msgid "Build a lightning conductor"
-msgstr "Construit un paratonnerre"
+msgid "Impossible when moving"
+msgstr "Impossible en mouvement"
-msgid "Build a exchange post"
-msgstr "Construit une borne d'information"
+msgid "Impossible when swimming"
+msgstr "Impossible en nageant"
-msgid "Show if the ground is flat"
-msgstr "Montre si le sol est plat"
+msgid "Inappropriate bot"
+msgstr "Robot inadapté"
-msgid "Plant a flag"
-msgstr "Pose un drapeau de couleur"
+msgid "Inappropriate cell type"
+msgstr "Pas le bon type de pile"
-msgid "Remove a flag"
-msgstr "Enlčve un drapeau"
+msgid "Incorrect index type"
+msgstr "Mauvais type d'index"
-msgid "\\Blue flags"
-msgstr "\\Drapeaux bleus"
+msgid "Infected by a virus; temporarily out of order"
+msgstr "Infecté par un virus; ne fonctionne plus temporairement"
-msgid "\\Red flags"
-msgstr "\\Drapeaux rouges"
+msgid "Information exchange post"
+msgstr "Borne d'information"
-msgid "\\Green flags"
-msgstr "\\Drapeaux verts"
+msgid "Instruction \"break\" outside a loop"
+msgstr "Instruction \"break\" en dehors d'une boucle"
-msgid "\\Yellow flags"
-msgstr "\\Drapeaux jaunes"
+msgid "Instruction \"case\" missing"
+msgstr "Manque une instruction \"case\""
-msgid "\\Violet flags"
-msgstr "\\Drapeaux violets"
+msgid "Instruction \"case\" outside a block \"switch\""
+msgstr "Instruction \"case\" hors d'un bloc \"switch\""
-msgid "Build a winged grabber"
-msgstr "Fabrique un déménageur volant"
+msgid "Instruction \"else\" without corresponding \"if\" "
+msgstr "Instruction \"else\" sans \"if\" correspondant"
-msgid "Build a tracked grabber"
-msgstr "Fabrique un déménageur ŕ chenilles"
+msgid "Instructions (\\key help;)"
+msgstr "Instructions (\\key help;)"
-msgid "Build a wheeled grabber"
-msgstr "Fabrique un déménageur ŕ roues"
+msgid "Instructions after the final closing brace"
+msgstr "Instructions après la fin"
-msgid "Build a legged grabber"
-msgstr "Fabrique un déménageur ŕ pattes"
+msgid "Instructions for the mission (\\key help;)"
+msgstr "Instructions sur la mission (\\key help;)"
-msgid "Build a winged shooter"
-msgstr "Fabrique un shooter volant"
+msgid "Instructions from Houston"
+msgstr "Instructions de Houston"
-msgid "Build a tracked shooter"
-msgstr "Fabrique un shooter ŕ chenilles"
+msgid "Instructions\\Shows the instructions for the current mission"
+msgstr "Instructions mission\\Marche à suivre"
-msgid "Build a wheeled shooter"
-msgstr "Fabrique un shooter ŕ roues"
+msgid "Jet temperature"
+msgstr "Température du réacteur"
-msgid "Build a legged shooter"
-msgstr "Fabrique un shooter ŕ pattes"
+msgid "Key A"
+msgstr "Clé A"
-msgid "Build a winged orga shooter"
-msgstr "Fabrique un orgaShooter volant"
+msgid "Key B"
+msgstr "Clé B"
-msgid "Build a tracked orga shooter"
-msgstr "Fabrique un orgaShooter ŕ chenilles"
+msgid "Key C"
+msgstr "Clé C"
-msgid "Build a wheeled orga shooter"
-msgstr "Fabrique un orgaShooter ŕ roues"
+msgid "Key D"
+msgstr "Clé D"
-msgid "Build a legged orga shooter"
-msgstr "Fabrique un orgaShooter ŕ pattes"
+msgid "Key word help\\More detailed help about key words"
+msgstr "Instructions mot-clé\\Explication sur le mot-clé"
-msgid "Build a winged sniffer"
-msgstr "Fabrique un renifleur volant"
+msgid "Keyword \"while\" missing"
+msgstr "Manque le mot \"while\""
-msgid "Build a tracked sniffer"
-msgstr "Fabrique un renifleur ŕ chenilles"
+msgid "Keyword help(\\key cbot;)"
+msgstr "Aide sur le mot-clé (\\key cbot;)"
-msgid "Build a wheeled sniffer"
-msgstr "Fabrique un renifleur ŕ roues"
+msgid "LOADING"
+msgstr "CHARGEMENT"
-msgid "Build a legged sniffer"
-msgstr "Fabrique un renifleur ŕ pattes"
+msgid "Legged grabber"
+msgstr "Robot déménageur"
-msgid "Build a thumper"
-msgstr "Fabrique un robot secoueur"
+msgid "Legged orga shooter"
+msgstr "Robot orgaShooter"
-msgid "Build a phazer shooter"
-msgstr "Fabrique un robot phazer"
+msgid "Legged shooter"
+msgstr "Robot shooter"
-msgid "Build a recycler"
-msgstr "Fabrique un robot recycleur"
+msgid "Legged sniffer"
+msgstr "Robot renifleur"
-msgid "Build a shielder"
-msgstr "Fabrique un robot bouclier"
+msgid "Lightning conductor"
+msgstr "Paratonnerre"
-msgid "Build a subber"
-msgstr "Fabrique un robot sous-marin"
+msgid "List of objects"
+msgstr "Liste des objets"
-msgid "Run research program for tracked bots"
-msgstr "Recherche les chenilles"
+msgid "List of saved missions"
+msgstr "Liste des missions enregistrées"
-msgid "Run research program for winged bots"
-msgstr "Recherche les robots volants"
+msgid "Load a saved mission"
+msgstr "Chargement d'une mission enregistrée"
-msgid "Run research program for thumper"
-msgstr "Recherche le secoueur"
+msgid "Load\\Load a saved mission"
+msgstr "Charger\\Charger une mission enregistrée"
-msgid "Run research program for shooter"
-msgstr "Recherche le canon shooter"
+msgid "Load\\Loads the selected mission"
+msgstr "Charger\\Charger la mission sélectionnée"
-msgid "Run research program for defense tower"
-msgstr "Recherche la tour de défense"
+msgid "Lowest\\Minimum graphic quality (highest frame rate)"
+msgstr "Mini\\Qualité minimale (+ rapide)"
-msgid "Run research program for phazer shooter"
-msgstr "Recherche le canon phazer"
+msgid "Lunar Roving Vehicle"
+msgstr "Lunar Roving Vehicle"
-msgid "Run research program for shielder"
-msgstr "Recherche le bouclier"
+msgid "Marks on the ground\\Marks on the ground"
+msgstr "Marques sur le sol\\Marques dessinées sur le sol"
-msgid "Run research program for nuclear power"
-msgstr "Recherche le nucléaire"
+msgid "Maximize"
+msgstr "Taille maximale"
-msgid "Run research program for legged bots"
-msgstr "Recherche les pattes"
+msgid "Menu (\\key quit;)"
+msgstr "Menu (\\key quit;)"
-msgid "Run research program for orga shooter"
-msgstr "Recherche le canon orgaShooter"
+msgid "Minimize"
+msgstr "Taille réduite"
-msgid "Return to start"
-msgstr "Remet au départ"
+msgid "Mission name"
+msgstr "Nom de la mission"
-msgid "Sniff (\\key action;)"
-msgstr "Cherche (\\key action;)"
+msgid "Missions"
+msgstr "Missions"
-msgid "Thump (\\key action;)"
-msgstr "Secoue (\\key action;)"
+msgid "Missions\\Select mission"
+msgstr "Missions\\La grande aventure"
-msgid "Shoot (\\key action;)"
-msgstr "Tir (\\key action;)"
+msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
+msgstr ""
+"Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord"
-msgid "Recycle (\\key action;)"
-msgstr "Recycle (\\key action;)"
+msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
+msgstr ""
+"Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord"
-msgid "Extend shield (\\key action;)"
-msgstr "Déploie le bouclier (\\key action;)"
+msgid "Mouse shadow\\Gives the mouse a shadow"
+msgstr "Souris ombrée\\Jolie souris avec une ombre"
-msgid "Withdraw shield (\\key action;)"
-msgstr "Stoppe le bouclier (\\key action;)"
+msgid "Mute\\No sound"
+msgstr "Silencieux\\Totalement silencieux"
-msgid "Shield radius"
-msgstr "Rayon du bouclier"
+msgid "Name:"
+msgstr "Nom:"
-msgid "Execute the selected program"
-msgstr "Exécute le programme sélectionné"
+msgid "Negative value rejected by \"throw\""
+msgstr "Valeur négative refusée pour \"throw\""
-msgid "Edit the selected program"
-msgstr "Edite le programme sélectionné"
+msgid "Nest"
+msgstr "Nid"
-msgid "\\SatCom on standby"
-msgstr "\\Mettre le SatCom en veille"
+msgid "New"
+msgstr "Nouveau"
-msgid "Destroy the building"
-msgstr "Démolit le bâtiment"
+msgid "New ..."
+msgstr "Nouveau ..."
-msgid "Energy level"
-msgstr "Niveau d'énergie"
+msgid "New bot available"
+msgstr "Nouveau robot disponible"
-msgid "Shield level"
-msgstr "Niveau du bouclier"
+msgid "New player\\Choose player's name"
+msgstr "Autre joueur\\Choix du nom du joueur"
-msgid "Jet temperature"
-msgstr "Température du réacteur"
+msgid "Next"
+msgstr "Suivant"
-msgid "Still working ..."
-msgstr "Travail en cours ..."
+msgid "Next object\\Selects the next object"
+msgstr "Sélectionner l'objet suivant\\Sélectionner l'objet suivant"
-msgid "Number of insects detected"
-msgstr "Nombre d'insectes détectés"
+msgid "No energy in the subsoil"
+msgstr "Pas d'énergie en sous-sol"
-msgid "Transmitted information"
-msgstr "Informations diffusées"
+msgid "No flag nearby"
+msgstr "Aucun drapeau à proximité"
-msgid "Compass"
-msgstr "Boussole"
+msgid "No function running"
+msgstr "Pas de fonction en exécution"
-msgid "Mini-map"
-msgstr "Mini-carte"
+msgid "No function with this name accepts this kind of parameter"
+msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)"
-msgid "Zoom mini-map"
-msgstr "Zoom mini-carte"
+msgid "No function with this name accepts this number of parameters"
+msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres"
-msgid "Camera (\\key camera;)"
-msgstr "Caméra (\\key camera;)"
+msgid "No information exchange post within range"
+msgstr "Pas trouvé de borne d'information"
-msgid "Camera to left"
-msgstr "Caméra ŕ gauche"
+msgid "No more energy"
+msgstr "Plus d'énergie"
-msgid "Camera to right"
-msgstr "Caméra ŕ droite"
+msgid "No ore in the subsoil"
+msgstr "Pas de minerai en sous-sol"
-msgid "Camera nearest"
-msgstr "Caméra plus proche"
+msgid "No other robot"
+msgstr "Pas d'autre robot"
-msgid "Camera awayest"
-msgstr "Caméra plus loin"
+msgid "No power cell"
+msgstr "Pas de pile"
-msgid "Help about selected object"
-msgstr "Instructions sur la sélection"
+msgid "No titanium"
+msgstr "Pas de titanium"
-msgid "Show the solution"
-msgstr "Donne la solution"
+msgid "No titanium around"
+msgstr "Titanium inexistant"
-msgid "Switch bots <-> buildings"
-msgstr "Permute robots <-> bâtiments"
+msgid "No titanium ore to convert"
+msgstr "Pas de minerai de titanium à convertir"
-msgid "Show the range"
-msgstr "Montre le rayon d'action"
+msgid "No titanium to transform"
+msgstr "Pas de titanium à transformer"
-msgid "\\Raise the pencil"
-msgstr "\\Relčve le crayon"
+msgid "No uranium to transform"
+msgstr "Pas d'uranium à transformer"
-msgid "\\Use the black pencil"
-msgstr "\\Abaisse le crayon noir"
+msgid "Normal size"
+msgstr "Taille normale"
-msgid "\\Use the yellow pencil"
-msgstr "\\Abaisse le crayon jaune"
+msgid "Normal\\Normal graphic quality"
+msgstr "Normal\\Qualité standard"
-msgid "\\Use the orange pencil"
-msgstr "\\Abaisse le crayon orange"
+msgid "Normal\\Normal sound volume"
+msgstr "Normal\\Niveaux normaux"
-msgid "\\Use the red pencil"
-msgstr "\\Abaisse le crayon rouge"
+msgid "Not enough energy"
+msgstr "Pas assez d'énergie"
-msgid "\\Use the purple pencil"
-msgstr "\\Abaisse le crayon violet"
+msgid "Not enough energy yet"
+msgstr "Pas encore assez d'énergie"
-msgid "\\Use the blue pencil"
-msgstr "\\Abaisse le crayon bleu"
+msgid "Not yet enough energy"
+msgstr "Pas encore assez d'énergie"
-msgid "\\Use the green pencil"
-msgstr "\\Abaisse le crayon vert"
+msgid "Nothing to analyze"
+msgstr "Rien à analyser"
-msgid "\\Use the brown pencil"
-msgstr "\\Abaisse le crayon brun"
+msgid "Nothing to drop"
+msgstr "Rien à déposer"
-msgid "\\Start recording"
-msgstr "\\Démarre l'enregistrement"
+msgid "Nothing to grab"
+msgstr "Rien à prendre"
-msgid "\\Stop recording"
-msgstr "\\Stoppe l'enregistrement"
+msgid "Nothing to recycle"
+msgstr "Rien à recycler"
-msgid "Show the place"
-msgstr "Montre l'endroit"
+msgid "Nuclear power cell"
+msgstr "Pile nucléaire"
-msgid "Continue"
-msgstr "Continuer"
+msgid "Nuclear power cell available"
+msgstr "Pile nucléaire disponible"
-msgid "Command line"
-msgstr "Console de commande"
+msgid "Nuclear power station"
+msgstr "Centrale nucléaire"
-msgid "Game speed"
-msgstr "Vitesse du jeu"
+msgid "Num of decorative objects\\Number of purely ornamental objects"
+msgstr "Nb d'objets décoratifs\\Qualité d'objets non indispensables"
-msgid "Back"
-msgstr "Page précédente"
+msgid "Number missing"
+msgstr "Un nombre est attendu"
-msgid "Forward"
-msgstr "Page suivante"
+msgid "Number of insects detected"
+msgstr "Nombre d'insectes détectés"
-msgid "Home"
-msgstr "Page initiale"
+msgid "Number of particles\\Explosions, dust, reflections, etc."
+msgstr "Quantité de particules\\Explosions, poussières, reflets, etc."
-msgid "Copy"
-msgstr "Copier"
+msgid "OK"
+msgstr "D'accord"
-msgid "Size 1"
-msgstr "Taille 1"
+msgid "OK\\Choose the selected player"
+msgstr "D'accord\\Choisir le joueur"
-msgid "Size 2"
-msgstr "Taille 2"
+msgid "OK\\Close program editor and return to game"
+msgstr "D'accord\\Compiler le programme"
-msgid "Size 3"
-msgstr "Taille 3"
+msgid "Object not found"
+msgstr "Objet n'existe pas"
-msgid "Size 4"
-msgstr "Taille 4"
+msgid "Object too close"
+msgstr "Objet trop proche"
-msgid "Size 5"
-msgstr "Taille 5"
+msgid "One step"
+msgstr "Un pas"
-msgid "Instructions from Houston"
-msgstr "Instructions de Houston"
+msgid "Open"
+msgstr "Ouvrir"
-msgid "Dictionnary"
-msgstr "Dictionnaire anglais-français"
+msgid "Open (Ctrl+o)"
+msgstr "Ouvrir (Ctrl+o)"
-msgid "Satellite report"
-msgstr "Rapport du satellite"
+msgid "Opening brace missing "
+msgstr "Début d'un bloc attendu"
-msgid "Programs dispatched by Houston"
-msgstr "Programmes envoyés par Houston"
+msgid "Opening bracket missing"
+msgstr "Il manque une parenthèse ouvrante"
-msgid "List of objects"
-msgstr "Liste des objets"
+msgid "Operation impossible with value \"nan\""
+msgstr "Opération sur un \"nan\""
-msgid "Programming help"
-msgstr "Aide ŕ la programmation"
+msgid "Options"
+msgstr "Options"
-msgid "Solution"
-msgstr "Solution"
+msgid "Options\\Preferences"
+msgstr "Options\\Réglages"
-msgid "OK\\Close program editor and return to game"
-msgstr "D'accord\\Compiler le programme"
+msgid "Organic matter"
+msgstr "Matière organique"
-msgid "Cancel\\Cancel all changes"
-msgstr "Annuler\\Annuler toutes les modifications"
+msgid "Origin of last message\\Shows where the last message was sent from"
+msgstr "Montrer le lieu d'un message\\Montrer le lieu du dernier message"
-msgid "Open (Ctrl+o)"
-msgstr "Ouvrir (Ctrl+o)"
+msgid "Parameters missing "
+msgstr "Pas assez de paramètres"
-msgid "Save (Ctrl+s)"
-msgstr "Enregistrer (Ctrl+s)"
+msgid "Particles in the interface\\Steam clouds and sparks in the interface"
+msgstr "Particules dans l'interface\\Pluie de particules"
-msgid "Undo (Ctrl+z)"
-msgstr "Annuler (Ctrl+z)"
+msgid "Paste (Ctrl+v)"
+msgstr "Coller (Ctrl+v)"
-msgid "Cut (Ctrl+x)"
-msgstr "Couper (Ctrl+x)"
+msgid "Pause/continue"
+msgstr "Pause/continuer"
-msgid "Copy (Ctrl+c)"
-msgstr "Copier (Ctrl+c)"
+msgid "Phazer shooter"
+msgstr "Robot phazer"
-msgid "Paste (Ctrl+v)"
-msgstr "Coller (Ctrl+v)"
+msgid "Photography"
+msgstr "Vue de la mission"
-msgid "Font size"
-msgstr "Taille des caractčres"
+msgid "Place occupied"
+msgstr "Emplacement occupé"
-msgid "Instructions (\\key help;)"
-msgstr "Instructions (\\key help;)"
+msgid "Planets and stars\\Astronomical objects in the sky"
+msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel"
-msgid "Programming help (\\key prog;)"
-msgstr "Aide ŕ la programmation (\\key prog;)"
+msgid "Plans for defense tower available"
+msgstr "Construction d'une tour de défense possible"
-msgid "Compile"
-msgstr "Compiler"
+msgid "Plans for nuclear power plant available"
+msgstr "Construction d'une centrale nucléaire possible"
-msgid "Execute/stop"
-msgstr "Démarrer/stopper"
+msgid "Plans for phazer shooter available"
+msgstr "Fabrication d'un robot phazer possible"
-msgid "Pause/continue"
-msgstr "Pause/continuer"
+msgid "Plans for shielder available"
+msgstr "Fabrication d'un robot bouclier possible"
-msgid "One step"
-msgstr "Un pas"
+msgid "Plans for shooter available"
+msgstr "Fabrication de robots shooter possible"
-msgid "Gantry crane"
-msgstr "Portique"
+msgid "Plans for thumper available"
+msgstr "Fabrication d'un robot secoueur possible"
-msgid "Spaceship"
-msgstr "Vaisseau spatial"
+msgid "Plans for tracked robots available "
+msgstr "Fabrication d'un robot à chenilles possible"
-msgid "Derrick"
-msgstr "Derrick"
+msgid "Plant a flag"
+msgstr "Pose un drapeau de couleur"
-msgid "Bot factory"
-msgstr "Fabrique de robots"
+msgid "Play\\Start mission!"
+msgstr "Jouer ...\\Démarrer l'action!"
-msgid "Repair center"
-msgstr "Centre de réparation"
+msgid "Player"
+msgstr "Joueur"
-msgid "Destroyer"
-msgstr "Destructeur"
+msgid "Player name"
+msgstr "Nom du joueur"
-msgid "Power station"
-msgstr "Station de recharge"
+msgid "Player's name"
+msgstr "Nom du joueur"
-msgid "Converts ore to titanium"
-msgstr "Conversion minerai en titanium"
+msgid "Power cell"
+msgstr "Pile normale"
-msgid "Defense tower"
-msgstr "Tour de défense"
+msgid "Power cell available"
+msgstr "Pile disponible"
-msgid "Nest"
-msgstr "Nid"
+msgid "Power cell factory"
+msgstr "Fabrique de piles"
-msgid "Research center"
-msgstr "Centre de recherches"
+msgid "Power station"
+msgstr "Station de recharge"
-msgid "Radar station"
-msgstr "Radar"
+msgid "Practice bot"
+msgstr "Robot d'entraînement"
-msgid "Information exchange post"
-msgstr "Borne d'information"
+msgid "Press \\key help; to read instructions on your SatCom"
+msgstr "Consultez votre SatCom en appuyant sur \\key help;"
-msgid "Disintegrator"
-msgstr "Désintégrateur"
+msgid "Previous"
+msgstr "Précédent"
-msgid "Power cell factory"
-msgstr "Fabrique de piles"
+msgid "Previous object\\Selects the previous object"
+msgstr "Sélection précédente\\Sélectionne l'objet précédent"
-msgid "Autolab"
-msgstr "Laboratoire de matičres organiques"
+msgid "Previous selection (\\key desel;)"
+msgstr "Sélection précédente (\\key desel;)"
-msgid "Nuclear power station"
-msgstr "Centrale nucléaire"
+msgid "Private element"
+msgstr "Elément protégé"
-msgid "Lightning conductor"
-msgstr "Paratonnerre"
+msgid "Private\\Private folder"
+msgstr "Privé\\Dossier privé"
-msgid "Vault"
-msgstr "Coffre-fort"
+msgid "Program editor"
+msgstr "Edition du programme"
-msgid "Houston Mission Control"
-msgstr "Centre de contrôle"
+msgid "Program finished"
+msgstr "Programme terminé"
-msgid "Target"
-msgstr "Cible"
+msgid "Program infected by a virus"
+msgstr "Un programme est infecté par un virus"
-msgid "Start"
-msgstr "Départ"
+msgid "Programming exercises"
+msgstr "Programmation"
-msgid "Finish"
-msgstr "But"
+msgid "Programming help"
+msgstr "Aide à la programmation"
-msgid "Titanium ore"
-msgstr "Minerai de titanium"
+msgid "Programming help (\\key prog;)"
+msgstr "Aide à la programmation (\\key prog;)"
-msgid "Uranium ore"
-msgstr "Minerai d'uranium"
+msgid "Programming help\\Gives more detailed help with programming"
+msgstr "Instructions programmation\\Explication sur la programmation"
-msgid "Organic matter"
-msgstr "Matičre organique"
+msgid "Programs dispatched by Houston"
+msgstr "Programmes envoyés par Houston"
-msgid "Titanium"
-msgstr "Titanium"
+msgid "Proto\\Prototypes under development"
+msgstr "Proto\\Prototypes en cours d'élaboration"
-msgid "Power cell"
-msgstr "Pile normale"
+msgid "Prototypes"
+msgstr "Prototypes"
-msgid "Nuclear power cell"
-msgstr "Pile nucléaire"
+msgid "Public required"
+msgstr "Public requis"
-msgid "Black box"
-msgstr "Boîte noire"
+msgid "Public\\Common folder"
+msgstr "Public\\Dossier commun à tous les joueurs"
-msgid "Key A"
-msgstr "Clé A"
+msgid "Quake at explosions\\The screen shakes at explosions"
+msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion"
-msgid "Key B"
-msgstr "Clé B"
+msgid "Quit the mission?"
+msgstr "Quitter la mission ?"
-msgid "Key C"
-msgstr "Clé C"
+msgid "Quit\\Quit COLOBOT"
+msgstr "Quitter\\Quitter COLOBOT"
-msgid "Key D"
-msgstr "Clé D"
+msgid "Quit\\Quit the current mission or exercise"
+msgstr "Quitter la mission en cours\\Terminer un exercice ou une mssion"
-msgid "Explosive"
-msgstr "Explosif"
+msgid "Radar station"
+msgstr "Radar"
-msgid "Fixed mine"
-msgstr "Mine fixe"
+msgid "Read error"
+msgstr "Erreur à la lecture"
-msgid "Survival kit"
-msgstr "Sac de survie"
+msgid "Recorder"
+msgstr "Enregistreur"
-msgid "Checkpoint"
-msgstr "Indicateur"
+msgid "Recycle (\\key action;)"
+msgstr "Recycle (\\key action;)"
-msgid "Blue flag"
-msgstr "Drapeau bleu"
+msgid "Recycler"
+msgstr "Robot recycleur"
+
+msgid "Red"
+msgstr "Rouge"
msgid "Red flag"
msgstr "Drapeau rouge"
-msgid "Green flag"
-msgstr "Drapeau vert"
+msgid "Reflections on the buttons \\Shiny buttons"
+msgstr "Reflets sur les boutons\\Boutons brillants"
-msgid "Yellow flag"
-msgstr "Drapeau jaune"
+msgid "Remains of Apollo mission"
+msgstr "Vestige d'une mission Apollo"
-msgid "Violet flag"
-msgstr "Drapeau violet"
+msgid "Remove a flag"
+msgstr "Enlève un drapeau"
-msgid "Energy deposit (site for power station)"
-msgstr "Emplacement pour station"
+msgid "Repair center"
+msgstr "Centre de réparation"
-msgid "Uranium deposit (site for derrick)"
-msgstr "Emplacement pour derrick (uranium)"
+msgid "Research center"
+msgstr "Centre de recherches"
-msgid "Found key A (site for derrick)"
-msgstr "Emplacement pour derrick (clé A)"
+msgid "Research program already performed"
+msgstr "Recherche déjà effectuée"
-msgid "Found key B (site for derrick)"
-msgstr "Emplacement pour derrick (clé B)"
+msgid "Research program completed"
+msgstr "Recherche terminée"
-msgid "Found key C (site for derrick)"
-msgstr "Emplacement pour derrick (clé C)"
+msgid "Reserved keyword of CBOT language"
+msgstr "Ce mot est réservé"
-msgid "Found key D (site for derrick)"
-msgstr "Emplacement pour derrick (clé D)"
+msgid "Resolution"
+msgstr "Résolution"
-msgid "Titanium deposit (site for derrick)"
-msgstr "Emplacement pour derrick (titanium)"
+msgid "Restart\\Restart the mission from the beginning"
+msgstr "Recommencer\\Recommencer la mission au début"
-msgid "Practice bot"
-msgstr "Robot d'entraînement"
+msgid "Return to start"
+msgstr "Remet au départ"
-msgid "Winged grabber"
-msgstr "Robot déménageur"
+msgid "Robbie"
+msgstr "Robbie"
-msgid "Tracked grabber"
-msgstr "Robot déménageur"
+msgid "Robbie\\Your assistant"
+msgstr "Robbie\\Votre assistant"
-msgid "Wheeled grabber"
-msgstr "Robot déménageur"
+msgid "Ruin"
+msgstr "Bâtiment en ruine"
-msgid "Legged grabber"
-msgstr "Robot déménageur"
+msgid "Run research program for defense tower"
+msgstr "Recherche la tour de défense"
-msgid "Winged shooter"
-msgstr "Robot shooter"
+msgid "Run research program for legged bots"
+msgstr "Recherche les pattes"
-msgid "Tracked shooter"
-msgstr "Robot shooter"
+msgid "Run research program for nuclear power"
+msgstr "Recherche le nucléaire"
-msgid "Wheeled shooter"
-msgstr "Robot shooter"
+msgid "Run research program for orga shooter"
+msgstr "Recherche le canon orgaShooter"
-msgid "Legged shooter"
-msgstr "Robot shooter"
+msgid "Run research program for phazer shooter"
+msgstr "Recherche le canon phazer"
-msgid "Winged orga shooter"
-msgstr "Robot orgaShooter"
+msgid "Run research program for shielder"
+msgstr "Recherche le bouclier"
-msgid "Tracked orga shooter"
-msgstr "Robot orgaShooter"
+msgid "Run research program for shooter"
+msgstr "Recherche le canon shooter"
-msgid "Wheeled orga shooter"
-msgstr "Robot orgaShooter"
+msgid "Run research program for thumper"
+msgstr "Recherche le secoueur"
-msgid "Legged orga shooter"
-msgstr "Robot orgaShooter"
+msgid "Run research program for tracked bots"
+msgstr "Recherche les chenilles"
-msgid "Winged sniffer"
-msgstr "Robot renifleur"
+msgid "Run research program for winged bots"
+msgstr "Recherche les robots volants"
-msgid "Tracked sniffer"
-msgstr "Robot renifleur"
+msgid "SatCom"
+msgstr "SatCom"
-msgid "Wheeled sniffer"
-msgstr "Robot renifleur"
+msgid "Satellite report"
+msgstr "Rapport du satellite"
-msgid "Legged sniffer"
-msgstr "Robot renifleur"
+msgid "Save"
+msgstr "Enregistrer"
-msgid "Thumper"
-msgstr "Robot secoueur"
+msgid "Save (Ctrl+s)"
+msgstr "Enregistrer (Ctrl+s)"
-msgid "Phazer shooter"
-msgstr "Robot phazer"
+msgid "Save the current mission"
+msgstr "Enregistrement de la mission en cours"
-msgid "Recycler"
-msgstr "Robot recycleur"
+msgid "Save\\Save the current mission "
+msgstr "Enregistrer\\Enregistrer la mission en cours"
+
+msgid "Save\\Saves the current mission"
+msgstr "Enregistrer\\Enregistrer la mission en cours"
+
+msgid "Scrolling\\Scrolling when the mouse touches right or left border"
+msgstr ""
+"Défilement dans les bords\\Défilement lorsque la souris touches les bords "
+"gauche ou droite"
+
+msgid "Select the astronaut\\Selects the astronaut"
+msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute"
+
+msgid "Semicolon terminator missing"
+msgstr "Terminateur point-virgule non trouvé"
+
+msgid "Shadows\\Shadows on the ground"
+msgstr "Ombres\\Ombres projetées au sol"
+
+msgid "Shield level"
+msgstr "Niveau du bouclier"
+
+msgid "Shield radius"
+msgstr "Rayon du bouclier"
msgid "Shielder"
msgstr "Robot bouclier"
-msgid "Subber"
-msgstr "Robot sous-marin"
+msgid "Shift"
+msgstr "Shift"
-msgid "Target bot"
-msgstr "Cible d'entraînement"
+msgid "Shoot (\\key action;)"
+msgstr "Tir (\\key action;)"
-msgid "Drawer bot"
-msgstr "Robot dessinateur"
+msgid "Show if the ground is flat"
+msgstr "Montre si le sol est plat"
-msgid "Engineer"
-msgstr "Technicien"
+msgid "Show the place"
+msgstr "Montre l'endroit"
-msgid "Robbie"
-msgstr "Robbie"
+msgid "Show the range"
+msgstr "Montre le rayon d'action"
-msgid "Alien Queen"
-msgstr "Pondeuse"
+msgid "Show the solution"
+msgstr "Donne la solution"
-msgid "Ant"
-msgstr "Fourmi"
+msgid "Sign \" : \" missing"
+msgstr "Séparateur \" : \" attendu"
-msgid "Spider"
-msgstr "Araignée"
+msgid "Size 1"
+msgstr "Taille 1"
-msgid "Wasp"
-msgstr "Guępe"
+msgid "Size 2"
+msgstr "Taille 2"
-msgid "Worm"
-msgstr "Ver"
+msgid "Size 3"
+msgstr "Taille 3"
-msgid "Egg"
-msgstr "Oeuf"
+msgid "Size 4"
+msgstr "Taille 4"
-msgid "Wreckage"
-msgstr "Epave de robot"
+msgid "Size 5"
+msgstr "Taille 5"
-msgid "Ruin"
-msgstr "Bâtiment en ruine"
+msgid "Sky\\Clouds and nebulae"
+msgstr "Ciel\\Ciel et nuages"
-msgid "Waste"
-msgstr "Déchet"
+msgid "Sniff (\\key action;)"
+msgstr "Cherche (\\key action;)"
+
+msgid "Solution"
+msgstr "Solution"
+
+msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
+msgstr "Bruitages :\\Volume des moteurs, voix, etc."
+
+msgid "Sound\\Music and game sound volume"
+msgstr "Son\\Volumes bruitages & musiques"
+
+msgid "Spaceship"
+msgstr "Vaisseau spatial"
msgid "Spaceship ruin"
msgstr "Epave de vaisseau spatial"
-msgid "Remains of Apollo mission"
-msgstr "Vestige d'une mission Apollo"
+msgid "Speed 1.0x\\Normal speed"
+msgstr "Vitesse 1.0x\\Vitesse normale"
-msgid "Lunar Roving Vehicle"
-msgstr "Lunar Roving Vehicle"
+msgid "Speed 1.5x\\1.5 times faster"
+msgstr "Vitesse 1.5x\\Une fois et demi plus rapide"
-msgid "Error"
-msgstr "Erreur"
+msgid "Speed 2.0x\\Double speed"
+msgstr "Vitesse 2.0x\\Deux fois plus rapide"
-msgid "Unknown command"
-msgstr "Commande inconnue"
+msgid "Speed 3.0x\\Three times faster"
+msgstr "Vitesse 3.0x\\Trois fois plus rapide"
-msgid "Inappropriate bot"
-msgstr "Robot inadapté"
+msgid "Spider"
+msgstr "Araignée"
-msgid "Impossible when flying"
-msgstr "Impossible en vol"
+msgid "Spider fatally wounded"
+msgstr "Araignée mortellement touchée"
-msgid "Already carrying something"
-msgstr "Porte déjŕ quelque chose"
+msgid "Stack overflow"
+msgstr "Débordement de la pile"
-msgid "Nothing to grab"
-msgstr "Rien ŕ prendre"
+msgid ""
+"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
+msgstr "Action standard\\Action du bouton avec le cadre rouge"
-msgid "Impossible when moving"
-msgstr "Impossible en mouvement"
+msgid "Standard controls\\Standard key functions"
+msgstr "Tout réinitialiser\\Remet toutes les touches standards"
-msgid "Place occupied"
-msgstr "Emplacement occupé"
+msgid "Standard\\Standard appearance settings"
+msgstr "Standard\\Remet les couleurs standards"
-msgid "No other robot"
-msgstr "Pas d'autre robot"
+msgid "Start"
+msgstr "Départ"
-msgid "You can not carry a radioactive object"
-msgstr "Vous ne pouvez pas transporter un objet radioactif"
+msgid "Still working ..."
+msgstr "Travail en cours ..."
-msgid "You can not carry an object under water"
-msgstr "Vous ne pouvez pas transporter un objet sous l'eau"
+msgid "String missing"
+msgstr "Une chaîne de caractère est attendue"
-msgid "Nothing to drop"
-msgstr "Rien ŕ déposer"
+msgid "Strip color:"
+msgstr "Couleur des bandes :"
-msgid "Impossible under water"
-msgstr "Impossible sous l'eau"
+msgid "Subber"
+msgstr "Robot sous-marin"
-msgid "Not enough energy"
-msgstr "Pas assez d'énergie"
+msgid "Suit color:"
+msgstr "Couleur de la combinaison :"
-msgid "Titanium too far away"
-msgstr "Titanium trop loin"
+msgid "Suit\\Astronaut suit"
+msgstr "Corps\\Combinaison"
-msgid "Titanium too close"
-msgstr "Titanium trop proche"
+msgid "Sunbeams\\Sunbeams in the sky"
+msgstr "Rayons du soleil\\Rayons selon l'orientation"
-msgid "No titanium around"
-msgstr "Titanium inexistant"
+msgid "Survival kit"
+msgstr "Sac de survie"
-msgid "Ground not flat enough"
-msgstr "Sol pas assez plat"
+msgid "Switch bots <-> buildings"
+msgstr "Permute robots <-> bâtiments"
-msgid "Flat ground not large enough"
-msgstr "Sol plat pas assez grand"
+msgid "Take off to finish the mission"
+msgstr "Décolle pour terminer la mission"
-msgid "Too close to space ship"
-msgstr "Trop proche du vaisseau spatial"
+msgid "Target"
+msgstr "Cible"
-msgid "Too close to a building"
-msgstr "Trop proche d'un bâtiment"
+msgid "Target bot"
+msgstr "Cible d'entraînement"
-msgid "Ground inappropriate"
-msgstr "Terrain inadapté"
+msgid "Textures\\Quality of textures "
+msgstr "Qualité des textures\\Qualité des images"
-msgid "Building too close"
-msgstr "Bâtiment trop proche"
+msgid "The expression must return a boolean value"
+msgstr "L'expression doit ętre un boolean"
-msgid "Object too close"
-msgstr "Objet trop proche"
+msgid "The function returned no value "
+msgstr "La fonction n'a pas retourné de résultat"
-msgid "Nothing to recycle"
-msgstr "Rien ŕ recycler"
+msgid ""
+"The list is only available if a \\l;radar station\\u object\\radar; is "
+"working.\n"
+msgstr "Liste non disponible sans \\l;radar\\u object\\radar;.\n"
-msgid "No more energy"
-msgstr "Plus d'énergie"
+msgid ""
+"The mission is not accomplished yet (press \\key help; for more details)"
+msgstr ""
+"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)"
-msgid "Error in instruction move"
-msgstr "Déplacement impossible"
+msgid "The types of the two operands are incompatible "
+msgstr "Les deux opérandes ne sont pas de types compatibles"
-msgid "Object not found"
-msgstr "Objet n'existe pas"
+msgid "This class already exists"
+msgstr "Cette classe existe déjà"
-msgid "Goto: inaccessible destination"
-msgstr "Chemin introuvable"
+msgid "This class does not exist"
+msgstr "Cette classe n'existe pas"
-msgid "Goto: destination occupied"
-msgstr "Destination occupée"
+msgid "This is not a member of this class"
+msgstr "Cet élément n'existe pas dans cette classe"
-msgid "No titanium ore to convert"
-msgstr "Pas de minerai de titanium ŕ convertir"
+msgid "This label does not exist"
+msgstr "Cette étiquette n'existe pas"
-msgid "No ore in the subsoil"
-msgstr "Pas de minerai en sous-sol"
+msgid "This object is not a member of a class"
+msgstr "L'objet n'est pas une instance d'une classe"
-msgid "No energy in the subsoil"
-msgstr "Pas d'énergie en sous-sol"
+msgid "Thump (\\key action;)"
+msgstr "Secoue (\\key action;)"
-msgid "No power cell"
-msgstr "Pas de pile"
+msgid "Thumper"
+msgstr "Robot secoueur"
-msgid "Inappropriate cell type"
-msgstr "Pas le bon type de pile"
+msgid "Titanium"
+msgstr "Titanium"
-msgid "Research program already performed"
-msgstr "Recherche déjŕ effectuée"
+msgid "Titanium available"
+msgstr "Titanium disponible"
-msgid "Not enough energy yet"
-msgstr "Pas encore assez d'énergie"
+msgid "Titanium deposit (site for derrick)"
+msgstr "Emplacement pour derrick (titanium)"
-msgid "No titanium to transform"
-msgstr "Pas de titanium ŕ transformer"
+msgid "Titanium ore"
+msgstr "Minerai de titanium"
-msgid "Transforms only titanium"
-msgstr "Ne transforme que le titanium"
+msgid "Titanium too close"
+msgstr "Titanium trop proche"
-msgid "Doors blocked by a robot or another object "
-msgstr "Portes bloquées par un robot ou un objet"
+msgid "Titanium too far away"
+msgstr "Titanium trop loin"
-msgid "You must get on the spaceship to take off "
-msgstr "Vous devez embarquer pour pouvoir décoller"
+msgid "Too close to a building"
+msgstr "Trop proche d'un bâtiment"
-msgid "Nothing to analyze"
-msgstr "Rien ŕ analyser"
+msgid "Too close to an existing flag"
+msgstr "Trop proche d'un drapeau existant"
-msgid "Analyzes only organic matter"
-msgstr "N'analyse que la matičre organique"
+msgid "Too close to space ship"
+msgstr "Trop proche du vaisseau spatial"
-msgid "Analysis already performed"
-msgstr "Analyse déjŕ effectuée"
+msgid "Too many flags of this color (maximum 5)"
+msgstr "Trop de drapeaux de cette couleur (maximum 5)"
-msgid "Not yet enough energy"
-msgstr "Pas encore assez d'énergie"
+msgid "Too many parameters"
+msgstr "Trop de paramètres"
-msgid "No uranium to transform"
-msgstr "Pas d'uranium ŕ transformer"
+msgid "Tracked grabber"
+msgstr "Robot déménageur"
-msgid "Transforms only uranium"
-msgstr "Ne transforme que l'uranium"
+msgid "Tracked orga shooter"
+msgstr "Robot orgaShooter"
-msgid "No titanium"
-msgstr "Pas de titanium"
+msgid "Tracked shooter"
+msgstr "Robot shooter"
-msgid "No information exchange post within range"
-msgstr "Pas trouvé de borne d'information"
+msgid "Tracked sniffer"
+msgstr "Robot renifleur"
-msgid "Program infected by a virus"
-msgstr "Un programme est infecté par un virus"
+msgid "Transforms only titanium"
+msgstr "Ne transforme que le titanium"
-msgid "Infected by a virus, temporarily out of order"
-msgstr "Infecté par un virus, ne fonctionne plus temporairement"
+msgid "Transforms only uranium"
+msgstr "Ne transforme que l'uranium"
-msgid "Impossible when swimming"
-msgstr "Impossible en nageant"
+msgid "Transmitted information"
+msgstr "Informations diffusées"
-msgid "Impossible when carrying an object"
-msgstr "Impossible en portant un objet"
+msgid "Turn left (\\key left;)"
+msgstr "Tourne à gauche (\\key left;)"
-msgid "Too many flags of this color (maximum 5)"
-msgstr "Trop de drapeaux de cette couleur (maximum 5)"
+msgid "Turn left\\turns the bot to the left"
+msgstr "Tourner à gauche\\Moteur à gauche"
-msgid "Too close to an existing flag"
-msgstr "Trop proche d'un drapeau existant"
+msgid "Turn right (\\key right;)"
+msgstr "Tourne à droite (\\key right;)"
-msgid "No flag nearby"
-msgstr "Aucun drapeau ŕ proximité"
+msgid "Turn right\\turns the bot to the right"
+msgstr "Tourner à droite\\Moteur à droite"
-msgid ""
-"The mission is not accomplished yet (press \\key help; for more details)"
-msgstr ""
-"La misssion n'est pas terminée (appuyez sur \\key help; pour plus de détails)"
+msgid "Type declaration missing"
+msgstr "Déclaration de type attendu"
-msgid "Bot destroyed"
-msgstr "Robot détruit"
+msgid "Undo (Ctrl+z)"
+msgstr "Annuler (Ctrl+z)"
-msgid "Building destroyed"
-msgstr "Bâtiment détruit"
+msgid "Unit"
+msgstr "Unité"
-msgid "Can not create this, there are too many objects"
-msgstr "Création impossible, il y a trop d'objets"
+msgid "Unknown Object"
+msgstr "Objet n'existe pas"
-msgid "\"%s\" missing in this exercise"
-msgstr "Il manque \"%s\" dans le programme"
+msgid "Unknown command"
+msgstr "Commande inconnue"
-msgid "Do not use in this exercise"
-msgstr "Interdit dans cet exercice"
+msgid "Unknown function"
+msgstr "Routine inconnue"
-msgid "Building completed"
-msgstr "Bâtiment terminé"
+msgid "Up (\\key gup;)"
+msgstr "Monte (\\key gup;)"
-msgid "Titanium available"
-msgstr "Titanium disponible"
+msgid "Uranium deposit (site for derrick)"
+msgstr "Emplacement pour derrick (uranium)"
-msgid "Research program completed"
-msgstr "Recherche terminée"
+msgid "Uranium ore"
+msgstr "Minerai d'uranium"
-msgid "Plans for tracked robots available "
-msgstr "Fabrication d'un robot ŕ chenilles possible"
+msgid "Use a joystick\\Joystick or keyboard"
+msgstr "Utilise un joystick\\Joystick ou clavier"
-msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
-msgstr ""
-"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)"
+msgid "User levels"
+msgstr "Niveaux supplémentaires"
-msgid "Plans for thumper available"
-msgstr "Fabrication d'un robot secoueur possible"
+msgid "User\\User levels"
+msgstr "Suppl.\\Niveaux supplémentaires"
-msgid "Plans for shooter available"
-msgstr "Fabrication de robots shooter possible"
+msgid "Variable name missing"
+msgstr "Nom d'une variable attendu"
-msgid "Plans for defense tower available"
-msgstr "Construction d'une tour de défense possible"
+msgid "Variable not declared"
+msgstr "Variable non déclarée"
-msgid "Plans for phazer shooter available"
-msgstr "Fabrication d'un robot phazer possible"
+msgid "Variable not initialized"
+msgstr "Variable non initialisée"
-msgid "Plans for shielder available"
-msgstr "Fabrication d'un robot bouclier possible"
+msgid "Vault"
+msgstr "Coffre-fort"
-msgid "Plans for nuclear power plant available"
-msgstr "Construction d'une centrale nucléaire possible"
+msgid "Violet flag"
+msgstr "Drapeau violet"
-msgid "New bot available"
-msgstr "Nouveau robot disponible"
+msgid "Void parameter"
+msgstr "Paramètre void"
-msgid "Analysis performed"
-msgstr "Analyse terminée"
+msgid "Wasp"
+msgstr "Guępe"
-msgid "Power cell available"
-msgstr "Pile disponible"
+msgid "Wasp fatally wounded"
+msgstr "Guępe mortellement touchée"
-msgid "Nuclear power cell available"
-msgstr "Pile nucléaire disponible"
+msgid "Waste"
+msgstr "Déchet"
-msgid "You found a usable object"
-msgstr "Vous avez trouvé un objet utilisable"
+msgid "Wheeled grabber"
+msgstr "Robot déménageur"
-msgid "Found a site for power station"
-msgstr "Emplacement pour station trouvé"
+msgid "Wheeled orga shooter"
+msgstr "Robot orgaShooter"
-msgid "Found a site for a derrick"
-msgstr "Emplacement pour derrick trouvé"
+msgid "Wheeled shooter"
+msgstr "Robot shooter"
-msgid "<<< Well done, mission accomplished >>>"
-msgstr "<<< Bravo, mission terminée >>>"
+msgid "Wheeled sniffer"
+msgstr "Robot renifleur"
-msgid "<<< Sorry, mission failed >>>"
-msgstr "<<< Désolé, mission échouée >>>"
+msgid "Win"
+msgstr "Gagné"
-msgid "Current mission saved"
-msgstr "Enregistrement effectué"
+msgid "Winged grabber"
+msgstr "Robot déménageur"
-msgid "Checkpoint crossed"
-msgstr "Indicateur atteint"
+msgid "Winged orga shooter"
+msgstr "Robot orgaShooter"
-msgid "Alien Queen killed"
-msgstr "Pondeuse mortellement touchée"
+msgid "Winged shooter"
+msgstr "Robot shooter"
-msgid "Ant fatally wounded"
-msgstr "Fourmi mortellement touchée"
+msgid "Winged sniffer"
+msgstr "Robot renifleur"
-msgid "Wasp fatally wounded"
-msgstr "Guępe mortellement touchée"
+msgid "Withdraw shield (\\key action;)"
+msgstr "Stoppe le bouclier (\\key action;)"
+
+msgid "Worm"
+msgstr "Ver"
msgid "Worm fatally wounded"
msgstr "Ver mortellement touché"
-msgid "Spider fatally wounded"
-msgstr "Araignée mortellement touchée"
+msgid "Wreckage"
+msgstr "Epave de robot"
-msgid "Press \\key help; to read instructions on your SatCom"
-msgstr "Consultez votre SatCom en appuyant sur \\key help;"
+msgid "Write error"
+msgstr "Erreur à l'écriture"
-msgid "Opening bracket missing"
-msgstr "Il manque une parenthčse ouvrante"
+msgid "Wrong type for the assignment"
+msgstr "Mauvais type de résultat pour l'assignation"
-msgid "Closing bracket missing "
-msgstr "Il manque une parenthčse fermante"
+msgid "Yellow flag"
+msgstr "Drapeau jaune"
-msgid "The expression must return a boolean value"
-msgstr "L'expression doit ętre un boolean"
+msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
+msgstr ""
+"Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)"
-msgid "Variable not declared"
-msgstr "Variable non déclarée"
+msgid "You can not carry a radioactive object"
+msgstr "Vous ne pouvez pas transporter un objet radioactif"
-msgid "Assignment impossible"
-msgstr "Assignation impossible"
+msgid "You can not carry an object under water"
+msgstr "Vous ne pouvez pas transporter un objet sous l'eau"
-msgid "Semicolon terminator missing"
-msgstr "Terminateur point-virgule non trouvé"
+msgid "You found a usable object"
+msgstr "Vous avez trouvé un objet utilisable"
-msgid "Instruction \"case\" outside a block \"switch\""
-msgstr "Instruction \"case\" hors d'un bloc \"switch\""
+msgid "You must get on the spaceship to take off "
+msgstr "Vous devez embarquer pour pouvoir décoller"
-msgid "Instructions after the final closing brace"
-msgstr "Instructions aprčs la fin"
+msgid "Zoom mini-map"
+msgstr "Zoom mini-carte"
-msgid "End of block missing"
-msgstr "Il manque la fin du bloc"
+msgid "\\Blue flags"
+msgstr "\\Drapeaux bleus"
-msgid "Instruction \"else\" without corresponding \"if\" "
-msgstr "Instruction \"else\" sans \"if\" correspondant"
+msgid "\\Eyeglasses 1"
+msgstr "\\Lunettes 1"
-msgid "Opening brace missing "
-msgstr "Début d'un bloc attendu"
+msgid "\\Eyeglasses 2"
+msgstr "\\Lunettes 2"
-msgid "Wrong type for the assignment"
-msgstr "Mauvais type de résultat pour l'assignation"
+msgid "\\Eyeglasses 3"
+msgstr "\\Lunettes 3"
-msgid "A variable can not be declared twice"
-msgstr "Redéfinition d'une variable"
+msgid "\\Eyeglasses 4"
+msgstr "\\Lunettes 4"
-msgid "The types of the two operands are incompatible "
-msgstr "Les deux opérandes ne sont pas de types compatibles"
+msgid "\\Eyeglasses 5"
+msgstr "\\Lunettes 5"
-msgid "Unknown function"
-msgstr "Routine inconnue"
+msgid "\\Face 1"
+msgstr "\\Visage 1"
-msgid "Sign \" : \" missing"
-msgstr "Séparateur \" : \" attendu"
+msgid "\\Face 2"
+msgstr "\\Visage 2"
-msgid "Keyword \"while\" missing"
-msgstr "Manque le mot \"while\""
+msgid "\\Face 3"
+msgstr "\\Visage 3"
-msgid "Instruction \"break\" outside a loop"
-msgstr "Instruction \"break\" en dehors d'une boucle"
+msgid "\\Face 4"
+msgstr "\\Visage 4"
-msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\""
-msgstr ""
-"Un label ne peut se placer que devant un \"for\", un \"while\", un \"do\" ou "
-"un \"switch\""
+msgid "\\Green flags"
+msgstr "\\Drapeaux verts"
-msgid "This label does not exist"
-msgstr "Cette étiquette n'existe pas"
+msgid "\\New player name"
+msgstr "\\Nom du joueur à créer"
-msgid "Instruction \"case\" missing"
-msgstr "Manque une instruction \"case\""
+msgid "\\No eyeglasses"
+msgstr "\\Pas de lunettes"
-msgid "Number missing"
-msgstr "Un nombre est attendu"
+msgid "\\Raise the pencil"
+msgstr "\\Relève le crayon"
-msgid "Void parameter"
-msgstr "Paramčtre void"
+msgid "\\Red flags"
+msgstr "\\Drapeaux rouges"
-msgid "Type declaration missing"
-msgstr "Déclaration de type attendu"
+msgid "\\Return to COLOBOT"
+msgstr "\\Retourner dans COLOBOT"
-msgid "Variable name missing"
-msgstr "Nom d'une variable attendu"
+msgid "\\SatCom on standby"
+msgstr "\\Mettre le SatCom en veille"
-msgid "Function name missing"
-msgstr "Nom de la fonction attendu"
+msgid "\\Start recording"
+msgstr "\\Démarre l'enregistrement"
-msgid "Too many parameters"
-msgstr "Trop de paramčtres"
+msgid "\\Stop recording"
+msgstr "\\Stoppe l'enregistrement"
-msgid "Function already exists"
-msgstr "Cette fonction existe déjŕ"
+msgid "\\Turn left"
+msgstr "\\Rotation à gauche"
-msgid "Parameters missing "
-msgstr "Pas assez de paramčtres"
+msgid "\\Turn right"
+msgstr "\\Rotation à droite"
-msgid "No function with this name accepts this kind of parameter"
-msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramčtre(s)"
+msgid "\\Use the black pencil"
+msgstr "\\Abaisse le crayon noir"
-msgid "No function with this name accepts this number of parameters"
-msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramčtres"
+msgid "\\Use the blue pencil"
+msgstr "\\Abaisse le crayon bleu"
-msgid "This is not a member of this class"
-msgstr "Cet élément n'existe pas dans cette classe"
+msgid "\\Use the brown pencil"
+msgstr "\\Abaisse le crayon brun"
-msgid "This object is not a member of a class"
-msgstr "L'objet n'est pas une instance d'une classe"
+msgid "\\Use the green pencil"
+msgstr "\\Abaisse le crayon vert"
-msgid "Appropriate constructor missing"
-msgstr "Il n'y a pas de constructeur approprié"
+msgid "\\Use the orange pencil"
+msgstr "\\Abaisse le crayon orange"
-msgid "This class already exists"
-msgstr "Cette classe existe déjŕ"
+msgid "\\Use the purple pencil"
+msgstr "\\Abaisse le crayon violet"
-msgid "\" ] \" missing"
-msgstr "\" ] \" attendu"
+msgid "\\Use the red pencil"
+msgstr "\\Abaisse le crayon rouge"
-msgid "Reserved keyword of CBOT language"
-msgstr "Ce mot est réservé"
+msgid "\\Use the yellow pencil"
+msgstr "\\Abaisse le crayon jaune"
-msgid "Bad argument for \"new\""
-msgstr "Mauvais argument pour \"new\""
+msgid "\\Violet flags"
+msgstr "\\Drapeaux violets"
-msgid "\" [ \" expected"
-msgstr "\" [ \" attendu"
+msgid "\\Yellow flags"
+msgstr "\\Drapeaux jaunes"
-msgid "String missing"
-msgstr "Une chaîne de caractčre est attendue"
+msgid "\\b;Aliens\n"
+msgstr "\\b;Listes des ennemis\n"
-msgid "Incorrect index type"
-msgstr "Mauvais type d'index"
+msgid "\\b;Buildings\n"
+msgstr "\\b;Listes des bâtiments\n"
-msgid "Private element"
-msgstr "Elément protégé"
+msgid "\\b;Error\n"
+msgstr "\\b;Erreur\n"
-msgid "Public required"
-msgstr "Public requis"
+msgid "\\b;List of objects\n"
+msgstr "\\b;Listes des objets\n"
-msgid "Dividing by zero"
-msgstr "Division par zéro"
+msgid "\\b;Moveable objects\n"
+msgstr "\\b;Listes des objets transportables\n"
-msgid "Variable not initialized"
-msgstr "Variable non initialisée"
+msgid "\\b;Robots\n"
+msgstr "\\b;Listes des robots\n"
-msgid "Negative value rejected by \"throw\""
-msgstr "Valeur négative refusée pour \"throw\""
+msgid "\\c; (none)\\n;\n"
+msgstr "\\c; (aucun)\\n;\n"
-msgid "The function returned no value "
-msgstr "La fonction n'a pas retourné de résultat"
+msgid "action;"
+msgstr ""
-msgid "No function running"
-msgstr "Pas de fonction en exécution"
+msgid "away;"
+msgstr ""
-msgid "Calling an unknown function"
-msgstr "Appel d'une fonction inexistante"
+msgid "camera;"
+msgstr ""
-msgid "This class does not exist"
-msgstr "Cette classe n'existe pas"
+msgid "cbot;"
+msgstr ""
-msgid "Unknown Object"
-msgstr "Objet n'existe pas"
+msgid "desel;"
+msgstr ""
-msgid "Operation impossible with value \"nan\""
-msgstr "Opération sur un \"nan\""
+msgid "down;"
+msgstr ""
-msgid "Access beyond array limit"
-msgstr "Accčs hors du tableau"
+msgid "gdown;"
+msgstr ""
-msgid "Stack overflow"
-msgstr "Débordement de la pile"
+msgid "gup;"
+msgstr ""
-msgid "Illegal object"
-msgstr "Objet inaccessible"
+msgid "help;"
+msgstr ""
-msgid "Can't open file"
-msgstr "Ouverture du fichier impossible"
+msgid "human;"
+msgstr ""
-msgid "File not open"
-msgstr "Le fichier n'est pas ouvert"
+msgid "left;"
+msgstr ""
-msgid "Read error"
-msgstr "Erreur ŕ la lecture"
+msgid "near;"
+msgstr ""
-msgid "Write error"
-msgstr "Erreur ŕ l'écriture"
+msgid "next;"
+msgstr ""
-msgid "< none >"
-msgstr "< aucune >"
+msgid "prog;"
+msgstr ""
-msgid "Arrow left"
-msgstr "Flčche Gauche"
+msgid "quit;"
+msgstr ""
-msgid "Arrow right"
-msgstr "Flčche Droite"
+msgid "right;"
+msgstr ""
-msgid "Arrow up"
-msgstr "Flčche Haut"
+msgid "speed10;"
+msgstr ""
-msgid "Arrow down"
-msgstr "Flčche Bas"
+msgid "speed15;"
+msgstr ""
-msgid "Control-break"
-msgstr "Control-break"
+msgid "speed20;"
+msgstr ""
-msgid "<--"
-msgstr "<--"
+msgid "up;"
+msgstr ""
-msgid "Tab"
-msgstr "Tab"
+msgid "visit;"
+msgstr ""
-msgid "Clear"
-msgstr "Clear"
+msgid "www.epsitec.com"
+msgstr "www.epsitec.com"
-msgid "Enter"
-msgstr "Entrée"
+#~ msgid "< none >"
+#~ msgstr "< aucune >"
-msgid "Shift"
-msgstr "Shift"
+#~ msgid "<--"
+#~ msgstr "<--"
-msgid "Ctrl"
-msgstr "Ctrl"
+#~ msgid "Application key"
+#~ msgstr "Application key"
-msgid "Alt"
-msgstr "Alt"
+#~ msgid "Arrow down"
+#~ msgstr "Flèche Bas"
-msgid "Pause"
-msgstr "Pause"
+#~ msgid "Arrow left"
+#~ msgstr "Flèche Gauche"
-msgid "Caps Lock"
-msgstr "Caps Lock"
+#~ msgid "Arrow right"
+#~ msgstr "Flèche Droite"
-msgid "Esc"
-msgstr "Esc"
+#~ msgid "Arrow up"
+#~ msgstr "Flèche Haut"
-msgid "Space"
-msgstr "Espace"
+#~ msgid "Attn"
+#~ msgstr "Attn"
-msgid "Page Up"
-msgstr "Page Up"
+#~ msgid "Caps Lock"
+#~ msgstr "Caps Lock"
-msgid "Page Down"
-msgstr "Page Down"
+#~ msgid "Clear"
+#~ msgstr "Clear"
-msgid "End"
-msgstr "End"
+#~ msgid "Control-break"
+#~ msgstr "Control-break"
-msgid "Home Key"
-msgstr "Home"
+#~ msgid "CrSel"
+#~ msgstr "CrSel"
-msgid "Select"
-msgstr "Select"
+#~ msgid "Delete Key"
+#~ msgstr "Delete"
-msgid "Execute"
-msgstr "Execute"
+#~ msgid "Dictionnary"
+#~ msgstr "Dictionnaire anglais-français"
-msgid "Print Scrn"
-msgstr "Print Scrn"
+#~ msgid "Disintegrator"
+#~ msgstr "Désintégrateur"
-msgid "Insert"
-msgstr "Insert"
+#~ msgid "End"
+#~ msgstr "End"
-msgid "Delete Key"
-msgstr "Delete"
+#~ msgid "Enter"
+#~ msgstr "Entrée"
-msgid "Help"
-msgstr "Help"
+#~ msgid "Erase EOF"
+#~ msgstr "Erase EOF"
-msgid "Left Windows"
-msgstr "Left Windows"
+#~ msgid "Error"
+#~ msgstr "Erreur"
-msgid "Right Windows"
-msgstr "Right Windows"
+#~ msgid "Esc"
+#~ msgstr "Esc"
-msgid "Application key"
-msgstr "Application key"
+#~ msgid "ExSel"
+#~ msgstr "ExSel"
-msgid "NumPad 0"
-msgstr "NumPad 0"
+#~ msgid "Execute"
+#~ msgstr "Execute"
-msgid "NumPad 1"
-msgstr "NumPad 1"
+#~ msgid "F1"
+#~ msgstr "F1"
-msgid "NumPad 2"
-msgstr "NumPad 2"
+#~ msgid "F10"
+#~ msgstr "F10"
-msgid "NumPad 3"
-msgstr "NumPad 3"
+#~ msgid "F11"
+#~ msgstr "F11"
-msgid "NumPad 4"
-msgstr "NumPad 4"
+#~ msgid "F12"
+#~ msgstr "F12"
-msgid "NumPad 5"
-msgstr "NumPad 5"
+#~ msgid "F13"
+#~ msgstr "F13"
-msgid "NumPad 6"
-msgstr "NumPad 6"
+#~ msgid "F14"
+#~ msgstr "F14"
-msgid "NumPad 7"
-msgstr "NumPad 7"
+#~ msgid "F15"
+#~ msgstr "F15"
-msgid "NumPad 8"
-msgstr "NumPad 8"
+#~ msgid "F16"
+#~ msgstr "F16"
-msgid "NumPad 9"
-msgstr "NumPad 9"
+#~ msgid "F17"
+#~ msgstr "F17"
-msgid "NumPad *"
-msgstr "NumPad *"
+#~ msgid "F18"
+#~ msgstr "F18"
-msgid "NumPad +"
-msgstr "NumPad +"
+#~ msgid "F19"
+#~ msgstr "F19"
-msgid "NumPad sep"
-msgstr "NumPad sep"
+#~ msgid "F2"
+#~ msgstr "F2"
-msgid "NumPad -"
-msgstr "NumPad -"
+#~ msgid "F20"
+#~ msgstr "F20"
-msgid "NumPad ."
-msgstr "NumPad ."
+#~ msgid "F3"
+#~ msgstr "F3"
-msgid "NumPad /"
-msgstr "NumPad /"
+#~ msgid "F4"
+#~ msgstr "F4"
-msgid "F1"
-msgstr "F1"
+#~ msgid "F5"
+#~ msgstr "F5"
-msgid "F2"
-msgstr "F2"
+#~ msgid "F6"
+#~ msgstr "F6"
-msgid "F3"
-msgstr "F3"
+#~ msgid "F7"
+#~ msgstr "F7"
-msgid "F4"
-msgstr "F4"
+#~ msgid "F8"
+#~ msgstr "F8"
-msgid "F5"
-msgstr "F5"
+#~ msgid "F9"
+#~ msgstr "F9"
-msgid "F6"
-msgstr "F6"
+#~ msgid "Help"
+#~ msgstr "Help"
-msgid "F7"
-msgstr "F7"
+#~ msgid "Home Key"
+#~ msgstr "Home"
-msgid "F8"
-msgstr "F8"
+#~ msgid "Insert"
+#~ msgstr "Insert"
-msgid "F9"
-msgstr "F9"
+#~ msgid "Left Windows"
+#~ msgstr "Left Windows"
-msgid "F10"
-msgstr "F10"
+#~ msgid "Mini-map"
+#~ msgstr "Mini-carte"
-msgid "F11"
-msgstr "F11"
+#~ msgid "Num Lock"
+#~ msgstr "Num Lock"
-msgid "F12"
-msgstr "F12"
+#~ msgid "NumPad *"
+#~ msgstr "NumPad *"
-msgid "F13"
-msgstr "F13"
+#~ msgid "NumPad +"
+#~ msgstr "NumPad +"
-msgid "F14"
-msgstr "F14"
+#~ msgid "NumPad -"
+#~ msgstr "NumPad -"
-msgid "F15"
-msgstr "F15"
+#~ msgid "NumPad ."
+#~ msgstr "NumPad ."
-msgid "F16"
-msgstr "F16"
+#~ msgid "NumPad /"
+#~ msgstr "NumPad /"
-msgid "F17"
-msgstr "F17"
+#~ msgid "NumPad 0"
+#~ msgstr "NumPad 0"
-msgid "F18"
-msgstr "F18"
+#~ msgid "NumPad 1"
+#~ msgstr "NumPad 1"
-msgid "F19"
-msgstr "F19"
+#~ msgid "NumPad 2"
+#~ msgstr "NumPad 2"
-msgid "F20"
-msgstr "F20"
+#~ msgid "NumPad 3"
+#~ msgstr "NumPad 3"
-msgid "Num Lock"
-msgstr "Num Lock"
+#~ msgid "NumPad 4"
+#~ msgstr "NumPad 4"
-msgid "Scroll"
-msgstr "Scroll"
+#~ msgid "NumPad 5"
+#~ msgstr "NumPad 5"
-msgid "Attn"
-msgstr "Attn"
+#~ msgid "NumPad 6"
+#~ msgstr "NumPad 6"
-msgid "CrSel"
-msgstr "CrSel"
+#~ msgid "NumPad 7"
+#~ msgstr "NumPad 7"
-msgid "ExSel"
-msgstr "ExSel"
+#~ msgid "NumPad 8"
+#~ msgstr "NumPad 8"
-msgid "Erase EOF"
-msgstr "Erase EOF"
+#~ msgid "NumPad 9"
+#~ msgstr "NumPad 9"
-msgid "Play"
-msgstr "Play"
+#~ msgid "NumPad sep"
+#~ msgstr "NumPad sep"
-msgid "Zoom"
-msgstr "Zoom"
+#~ msgid "PA1"
+#~ msgstr "PA1"
-msgid "PA1"
-msgstr "PA1"
+#~ msgid "Page Down"
+#~ msgstr "Page Down"
-msgid "Button %1"
-msgstr "Bouton %1"
+#~ msgid "Page Up"
+#~ msgstr "Page Up"
+
+#~ msgid "Pause"
+#~ msgstr "Pause"
+
+#~ msgid "Play"
+#~ msgstr "Play"
+
+#~ msgid "Print Scrn"
+#~ msgstr "Print Scrn"
+
+#~ msgid "Right Windows"
+#~ msgstr "Right Windows"
+
+#~ msgid "Scroll"
+#~ msgstr "Scroll"
+
+#~ msgid "Select"
+#~ msgstr "Select"
+
+#~ msgid "Space"
+#~ msgstr "Espace"
+
+#~ msgid "Tab"
+#~ msgstr "Tab"
+
+#~ msgid "Wheel down"
+#~ msgstr "Molette bas"
-msgid "Wheel up"
-msgstr "Molette haut"
+#~ msgid "Wheel up"
+#~ msgstr "Molette haut"
-msgid "Wheel down"
-msgstr "Molette bas"
+#~ msgid "Zoom"
+#~ msgstr "Zoom"
diff --git a/src/po/pl.po b/src/po/pl.po
index 206de97..9bab529 100644
--- a/src/po/pl.po
+++ b/src/po/pl.po
@@ -1,1984 +1,2065 @@
msgid ""
msgstr ""
+"Report-Msgid-Bugs-To: \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"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
"X-Language: pl_PL\n"
"X-Source-Language: en_US\n"
-msgid "Colobot rules!"
-msgstr "Colobot rządzi!"
+msgid " "
+msgstr " "
-msgid "Colobot Gold"
-msgstr "Colobot Gold"
+msgid " Challenges in the chapter:"
+msgstr " Wyzwania w tym rozdziale:"
-msgid "SatCom"
-msgstr "SatCom"
+msgid " Chapters:"
+msgstr " Rozdziały:"
-msgid "Maximize"
-msgstr "Powiększ"
+msgid " Drivers:"
+msgstr " Sterowniki:"
-msgid "Minimize"
-msgstr "Pomniejsz"
+msgid " Exercises in the chapter:"
+msgstr " Ćwiczenia w tym rozdziale:"
-msgid "Normal size"
-msgstr "Normalna wielkość"
+msgid " Free game on this chapter:"
+msgstr " Prototypy na tej planecie:"
-msgid "Close"
-msgstr "Zamknij"
+msgid " Free game on this planet:"
+msgstr " Swobodna gra na tej planecie:"
-msgid "Program editor"
-msgstr "Edytor programu"
+msgid " Missions on this level:"
+msgstr " Misje na tym poziomie:"
-msgid "New"
-msgstr "Nowy"
+msgid " Missions on this planet:"
+msgstr " Misje na tej planecie:"
-msgid "Player"
-msgstr "Gracz"
+msgid " Planets:"
+msgstr " Planety:"
-msgid "New ..."
-msgstr "Nowy ..."
+msgid " Prototypes on this planet:"
+msgstr " Prototypy na tej planecie:"
+
+msgid " Resolution:"
+msgstr " Rozdzielczość:"
+
+msgid " Summary:"
+msgstr " Streszczenie:"
+
+msgid " User levels:"
+msgstr " Poziomy użytkownika:"
msgid " or "
msgstr " lub "
-msgid "COLOBOT"
-msgstr "COLOBOT"
+msgid "\" [ \" expected"
+msgstr "Oczekiwane \" [ \""
-msgid "Programming exercises"
-msgstr "Ćwiczenia programistyczne"
+msgid "\" ] \" missing"
+msgstr "Brak \" ] \""
-msgid "Challenges"
-msgstr "Wyzwania"
+#, c-format
+msgid "\"%s\" missing in this exercise"
+msgstr "It misses \"%s\" in this exercise"
-msgid "Missions"
-msgstr "Misje"
+msgid "%1"
+msgstr ""
-msgid "Free game"
-msgstr "Swobodna gra"
+msgid "..behind"
+msgstr "..za"
-msgid "User levels"
-msgstr "Poziomy użytkownika"
+msgid "..in front"
+msgstr "..przed"
-msgid "Prototypes"
-msgstr "Prototypy"
+msgid "..power cell"
+msgstr "..ogniwo elektryczne"
-msgid "Options"
-msgstr "Opcje"
+msgid "1) First click on the key you want to redefine."
+msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować."
-msgid "Player's name"
-msgstr "Imię gracza"
+msgid "2) Then press the key you want to use instead."
+msgstr "2) Następnie naciśnij klawisz, którego chcesz używać."
-msgid "Customize your appearance"
-msgstr "Dostosuj wygląd"
+msgid "3D sound\\3D positioning of the sound"
+msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków"
-msgid "Save the current mission"
-msgstr "Zapisz bieżącą misję"
+msgid "<< Back \\Back to the previous screen"
+msgstr "<< Wstecz \\Wraca do poprzedniego ekranu"
-msgid "Load a saved mission"
-msgstr "Wczytaj zapisaną misję"
+#, fuzzy
+msgid "<<< Sorry; mission failed >>>"
+msgstr "<<< Niestety, misja nie powiodła się >>>"
-msgid " Chapters:"
-msgstr " Rozdziały:"
+#, fuzzy
+msgid "<<< Well done; mission accomplished >>>"
+msgstr "<<< Dobra robota, misja wypełniona >>>"
-msgid " Planets:"
-msgstr " Planety:"
+#, fuzzy
+msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\""
+msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\""
-msgid " User levels:"
-msgstr " Poziomy użytkownika:"
+msgid "A variable can not be declared twice"
+msgstr "Zmienna nie może być zadeklarowana dwukrotnie"
-msgid " Exercises in the chapter:"
-msgstr " Ćwiczenia w tym rozdziale:"
+msgid "Abort\\Abort the current mission"
+msgstr "Przerwij\\Przerywa bieżącą misję"
-msgid " Challenges in the chapter:"
-msgstr " Wyzwania w tym rozdziale:"
+msgid "Access beyond array limit"
+msgstr "Dostęp poza tablicę"
-msgid " Missions on this planet:"
-msgstr " Misje na tej planecie:"
+msgid ""
+"Access to solution\\Shows the solution (detailed instructions for missions)"
+msgstr ""
+"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje "
+"dotyczące misji)"
-msgid " Free game on this planet:"
-msgstr " Swobodna gra na tej planecie:"
+msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
+msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices"
-msgid " Missions on this level:"
-msgstr " Misje na tym poziomie:"
+msgid "Alien Queen"
+msgstr "Królowa Obcych"
-msgid " Prototypes on this planet:"
-msgstr " Prototypy na tej planecie:"
+msgid "Alien Queen killed"
+msgstr "Królowa Obcych została zabita"
-msgid " Free game on this chapter:"
-msgstr " Prototypy na tej planecie:"
+msgid "Already carrying something"
+msgstr "Nie można nieść więcej przedmiotów"
-msgid " Summary:"
-msgstr " Streszczenie:"
+msgid "Alt"
+msgstr "Alt"
-msgid " Drivers:"
-msgstr " Sterowniki:"
+msgid "Analysis already performed"
+msgstr "Analiza została już wykonana"
-msgid " Resolution:"
-msgstr " Rozdzielczość:"
+msgid "Analysis performed"
+msgstr "Analiza wykonana"
-msgid "1) First click on the key you want to redefine."
-msgstr "1) Najpierw kliknij klawisz, który chcesz przedefiniować."
+msgid "Analyzes only organic matter"
+msgstr "Analizuje jedynie materię organiczną"
-msgid "2) Then press the key you want to use instead."
-msgstr "2) Następnie naciśnij klawisz, którego chcesz używać."
+msgid "Ant"
+msgstr "Mrówka"
-msgid "Face type:"
-msgstr "Rodzaj twarzy:"
+msgid "Ant fatally wounded"
+msgstr "Mrówka śmiertelnie raniona"
-msgid "Eyeglasses:"
-msgstr "Okulary:"
+msgid "Appearance\\Choose your appearance"
+msgstr "Wygląd\\Wybierz swoją postać"
-msgid "Hair color:"
-msgstr "Kolor włosów:"
+msgid "Apply changes\\Activates the changed settings"
+msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia"
-msgid "Suit color:"
-msgstr "Kolor skafandra:"
+msgid "Appropriate constructor missing"
+msgstr "Brak odpowiedniego konstruktora"
-msgid "Strip color:"
-msgstr "Kolor pasków:"
+msgid "Assignment impossible"
+msgstr "Przypisanie niemożliwe"
-msgid "Do you want to quit COLOBOT ?"
-msgstr "Czy na pewno chcesz opuścić grę COLOBOT?"
+msgid "Autolab"
+msgstr "Laboratorium"
-msgid "Quit\\Quit COLOBOT"
-msgstr "Zakończ\\Kończy grę COLOBOT"
+msgid "Automatic indent\\When program editing"
+msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu"
-msgid "Quit the mission?"
-msgstr "Opuścić misję?"
+msgid "Back"
+msgstr "Wstecz"
-msgid "Abort\\Abort the current mission"
-msgstr "Przerwij\\Przerywa bieżącą misję"
+msgid "Background sound :\\Volume of audio tracks on the CD"
+msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD"
-msgid "Continue\\Continue the current mission"
-msgstr "Kontynuuj\\Kontynuuje bieżącą misję"
+msgid "Backward (\\key down;)"
+msgstr "Cofnij (\\key down;)"
-msgid "Continue\\Continue the game"
-msgstr "Kontynuuj\\Kontynuuje grę"
+msgid "Backward\\Moves backward"
+msgstr "Wstecz\\Porusza do tyłu"
-msgid "Do you really want to destroy the selected building?"
-msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?"
+msgid "Bad argument for \"new\""
+msgstr "Zły argument dla funkcji \"new\""
-msgid "Do you want to delete %s's saved games? "
-msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? "
+msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
+msgstr ""
+"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez "
+"klamry"
-msgid "Delete"
-msgstr "Usuń"
+msgid "Black box"
+msgstr "Czarna skrzynka"
-msgid "Cancel"
-msgstr "Anuluj"
+msgid "Blue"
+msgstr "Niebieski"
-msgid "LOADING"
-msgstr "WCZYTYWANIE"
+msgid "Blue flag"
+msgstr "Niebieska flaga"
-msgid "Keyword help(\\key cbot;)"
-msgstr "Skróty klawiszowe (\\key cbot;)"
+msgid "Bot destroyed"
+msgstr "Robot zniszczony"
-msgid "Compilation ok (0 errors)"
-msgstr "Program skompilowany (0 błędów)"
+msgid "Bot factory"
+msgstr "Fabryka robotów"
-msgid "Program finished"
-msgstr "Program zakończony"
+msgid "Build a bot factory"
+msgstr "Zbuduj fabrykę robotów"
-msgid "\\b;List of objects\n"
-msgstr "\\b;Lista obiektów\n"
+msgid "Build a converter"
+msgstr "Zbuduj hutę"
-msgid "\\b;Robots\n"
-msgstr "\\b;Roboty\n"
+msgid "Build a defense tower"
+msgstr "Zbuduj wieżę obronną"
-msgid "\\b;Buildings\n"
-msgstr "\\b;Budynki\n"
+msgid "Build a derrick"
+msgstr "Zbuduj kopalnię"
-msgid "\\b;Moveable objects\n"
-msgstr "\\b;Obiekty ruchome\n"
+msgid "Build a exchange post"
+msgstr "Zbuduj stację przekaźnikową"
-msgid "\\b;Aliens\n"
-msgstr "\\b;Obcy\n"
+msgid "Build a legged grabber"
+msgstr "Zbuduj transporter na nogach"
-msgid "\\c; (none)\\n;\n"
-msgstr "\\c; (brak)\\n;\n"
+msgid "Build a legged orga shooter"
+msgstr "Zbuduj działo organiczne na nogach"
-msgid "\\b;Error\n"
-msgstr "\\b;Błąd\n"
+msgid "Build a legged shooter"
+msgstr "Zbuduj działo na nogach"
-msgid ""
-"The list is only available if a \\l;radar station\\u object\\radar; is "
-"working.\n"
-msgstr ""
-"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u "
-"object\\radar;.\n"
+msgid "Build a legged sniffer"
+msgstr "Zbuduj szperacz na nogach"
-msgid "Open"
-msgstr "Otwórz"
+msgid "Build a lightning conductor"
+msgstr "Zbuduj odgromnik"
-msgid "Save"
-msgstr "Zapisz"
+msgid "Build a nuclear power plant"
+msgstr "Zbuduj elektrownię atomową"
-msgid "Folder: %s"
-msgstr "Folder: %s"
+msgid "Build a phazer shooter"
+msgstr "Zbuduj działo fazowe"
-msgid "Name:"
-msgstr "Nazwa:"
+msgid "Build a power cell factory"
+msgstr "Zbuduj fabrykę ogniw elektrycznych"
-msgid "Folder:"
-msgstr "Folder:"
+msgid "Build a power station"
+msgstr "Zbuduj elektrownię"
-msgid "Private\\Private folder"
-msgstr "Prywatny\\Folder prywatny"
+msgid "Build a radar station"
+msgstr "Zbuduj stację radarową"
-msgid "Public\\Common folder"
-msgstr "Publiczny\\Folder ogólnodostępny"
+msgid "Build a recycler"
+msgstr "Zbuduj robota recyklera"
-msgid "Developed by :"
-msgstr "Twórcy:"
+msgid "Build a repair center"
+msgstr "Zbuduj warsztat"
-msgid "www.epsitec.com"
-msgstr "www.epsitec.com"
+msgid "Build a research center"
+msgstr "Zbuduj centrum badawcze"
-msgid " "
-msgstr " "
+msgid "Build a shielder"
+msgstr "Zbuduj robota osłaniajacza"
-msgid "Recorder"
-msgstr "Recorder"
+msgid "Build a subber"
+msgstr "Zbuduj robota nurka"
-msgid "OK"
-msgstr "OK"
+msgid "Build a thumper"
+msgstr "Zbuduj robota uderzacza"
-msgid "Next"
-msgstr "Następny"
+msgid "Build a tracked grabber"
+msgstr "Zbuduj transporter na gąsienicach"
-msgid "Previous"
-msgstr "Poprzedni"
+msgid "Build a tracked orga shooter"
+msgstr "Zbuduj działo organiczne na gąsienicach"
-msgid "Menu (\\key quit;)"
-msgstr "Menu (\\key quit;)"
+msgid "Build a tracked shooter"
+msgstr "Zbuduj działo na gąsienicach"
-msgid "Exercises\\Programming exercises"
-msgstr "Ćwiczenia\\Ćwiczenia programistyczne"
+msgid "Build a tracked sniffer"
+msgstr "Zbuduj szperacz na gąsienicach"
-msgid "Challenges\\Programming challenges"
-msgstr "Wyzwania\\Wyzwania programistyczne"
+msgid "Build a wheeled grabber"
+msgstr "Zbuduj transporter na kołach"
-msgid "Missions\\Select mission"
-msgstr "Misje\\Wybierz misję"
+msgid "Build a wheeled orga shooter"
+msgstr "Zbuduj działo organiczne na kołach"
-msgid "Free game\\Free game without a specific goal"
-msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów"
+msgid "Build a wheeled shooter"
+msgstr "Zbuduj działo na kołach"
-msgid "User\\User levels"
-msgstr "Poziomy\\Poziomy użytkownika"
+msgid "Build a wheeled sniffer"
+msgstr "Zbuduj szperacz na kołach"
-msgid "Proto\\Prototypes under development"
-msgstr "Prototypy\\Prototypy w trakcie rozwijania"
+msgid "Build a winged grabber"
+msgstr "Zbuduj transporter latający"
-msgid "New player\\Choose player's name"
-msgstr "Nowy gracz\\Wybierz imię gracza"
+msgid "Build a winged orga shooter"
+msgstr "Zbuduj latające działo organiczne"
-msgid "Options\\Preferences"
-msgstr "Opcje\\Preferencje"
+msgid "Build a winged shooter"
+msgstr "Zbuduj działo latające"
-msgid "Restart\\Restart the mission from the beginning"
-msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku"
+msgid "Build a winged sniffer"
+msgstr "Zbuduj szperacz latający"
-msgid "Save\\Save the current mission "
-msgstr "Zapisz\\Zapisuje bieżącą misję"
+msgid "Build an autolab"
+msgstr "Zbuduj laboratorium"
-msgid "Load\\Load a saved mission"
-msgstr "Wczytaj\\Wczytuje zapisaną misję"
+msgid "Building completed"
+msgstr "Budowa zakończona"
-msgid "\\Return to COLOBOT"
-msgstr "\\Powróć do gry COLOBOT"
+msgid "Building destroyed"
+msgstr "Budynek zniszczony"
-msgid "<< Back \\Back to the previous screen"
-msgstr "<< Wstecz \\Wraca do poprzedniego ekranu"
+msgid "Building too close"
+msgstr "Budynek za blisko"
-msgid "Play\\Start mission!"
-msgstr "Graj\\Rozpoczyna misję!"
+msgid "Button %1"
+msgstr "Przycisk %1"
-msgid "Device\\Driver and resolution settings"
-msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości"
+msgid "COLOBOT"
+msgstr "COLOBOT"
-msgid "Graphics\\Graphics settings"
-msgstr "Grafika\\Ustawienia grafiki"
+msgid "Calling an unknown function"
+msgstr "Odwołanie do nieznanej funkcji"
-msgid "Game\\Game settings"
-msgstr "Gra\\Ustawienia gry"
+msgid "Camera (\\key camera;)"
+msgstr "Kamera (\\key camera;)"
-msgid "Controls\\Keyboard, joystick and mouse settings"
-msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy"
+msgid "Camera awayest"
+msgstr "Camera awayest"
-msgid "Sound\\Music and game sound volume"
-msgstr "Dźwięk\\Głośność muzyki i dźwięków gry"
+msgid "Camera back\\Moves the camera backward"
+msgstr "Kamera dalej\\Oddala kamerę"
-msgid "Unit"
-msgstr "Jednostka"
+msgid "Camera closer\\Moves the camera forward"
+msgstr "Kamera bliżej\\Przybliża kamerę"
-msgid "Resolution"
-msgstr "Rozdzielczość"
+msgid "Camera nearest"
+msgstr "Camera nearest"
-msgid "Full screen\\Full screen or window mode"
-msgstr "Pełny ekran\\Pełny ekran lub tryb okna"
+msgid "Camera to left"
+msgstr "Camera to left"
-msgid "Apply changes\\Activates the changed settings"
-msgstr "Zastosuj zmiany\\Aktywuje zmienione ustawienia"
+msgid "Camera to right"
+msgstr "Camera to right"
-msgid "Robbie\\Your assistant"
-msgstr "Robbie\\Twój asystent"
+#, fuzzy
+msgid "Can not create this; there are too many objects"
+msgstr "Nie można tego utworzyć, za dużo obiektów"
-msgid "Shadows\\Shadows on the ground"
-msgstr "Cienie\\Cienie na ziemi"
+msgid "Can't open file"
+msgstr "Nie można otworzyć pliku"
-msgid "Marks on the ground\\Marks on the ground"
-msgstr "Znaki na ziemi\\Znaki na ziemi"
+msgid "Cancel"
+msgstr "Anuluj"
-msgid "Dust\\Dust and dirt on bots and buildings"
-msgstr "Kurz\\Kurz i bród na robotach i budynkach"
+msgid "Cancel\\Cancel all changes"
+msgstr "Anuluj\\Pomija wszystkie zmiany"
-msgid "Fog\\Fog"
-msgstr "Mgła\\Mgła"
+msgid "Cancel\\Keep current player name"
+msgstr "Anuluj\\Zachowuje bieżące imię gracza"
-msgid "Sunbeams\\Sunbeams in the sky"
-msgstr "Promienie słoneczne\\Promienie słoneczne na niebie"
+msgid "Challenges"
+msgstr "Wyzwania"
-msgid "Sky\\Clouds and nebulae"
-msgstr "Niebo\\Chmury i mgławice"
+msgid "Challenges\\Programming challenges"
+msgstr "Wyzwania\\Wyzwania programistyczne"
-msgid "Planets and stars\\Astronomical objects in the sky"
-msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie"
+msgid "Change camera\\Switches between onboard camera and following camera"
+msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą"
-msgid "Dynamic lighting\\Mobile light sources"
-msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła"
+msgid "Checkpoint"
+msgstr "Punkt kontrolny"
-msgid "Number of particles\\Explosions, dust, reflections, etc."
-msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp."
+msgid "Checkpoint crossed"
+msgstr "Przekroczono punkt kontrolny"
-msgid "Depth of field\\Maximum visibility"
-msgstr "Głębokość pola\\Maksymalna widoczność"
+msgid "Climb\\Increases the power of the jet"
+msgstr "W górę\\Zwiększa moc silnika"
-msgid "Details\\Visual quality of 3D objects"
-msgstr "Szczegóły\\Jakość wizualna obiektów 3D"
+msgid "Close"
+msgstr "Zamknij"
-msgid "Textures\\Quality of textures "
-msgstr "Tekstury\\Jakość tekstur "
+msgid "Closing bracket missing "
+msgstr "Brak nawiasu zamykającego"
-msgid "Num of decorative objects\\Number of purely ornamental objects"
-msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych"
+msgid "Colobot rules!"
+msgstr "Colobot rządzi!"
-msgid "Particles in the interface\\Steam clouds and sparks in the interface"
-msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie"
+msgid "Command line"
+msgstr "Linia polecenia"
-msgid "Reflections on the buttons \\Shiny buttons"
-msgstr "Odbicia na przyciskach \\Świecące przyciski"
+msgid "Compass"
+msgstr "Kompas"
-msgid "Help balloons\\Explain the function of the buttons"
-msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków"
+msgid "Compilation ok (0 errors)"
+msgstr "Program skompilowany (0 błędów)"
-msgid "Film sequences\\Films before and after the missions"
-msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji"
+msgid "Compile"
+msgstr "Kompiluj"
-msgid "Exit film\\Film at the exit of exercises"
-msgstr "Końcowy film\\Film na zakończenie ćwiczeń"
+msgid "Continue"
+msgstr "Kontynuuj"
-msgid "Friendly fire\\Your shooting can damage your own objects "
-msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty"
+msgid "Continue\\Continue the current mission"
+msgstr "Kontynuuj\\Kontynuuje bieżącą misję"
-msgid "Scrolling\\Scrolling when the mouse touches right or left border"
-msgstr ""
-"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego "
-"krawędzi"
+msgid "Continue\\Continue the game"
+msgstr "Kontynuuj\\Kontynuuje grę"
-msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
-msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie"
+msgid "Controls\\Keyboard, joystick and mouse settings"
+msgstr "Sterowanie\\Ustawienia klawiatury, joysticka i myszy"
-msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
-msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie"
+msgid "Converts ore to titanium"
+msgstr "Przetop rudę na tytan"
-msgid "Quake at explosions\\The screen shakes at explosions"
-msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów"
+msgid "Copy"
+msgstr "Kopiuj"
-msgid "Mouse shadow\\Gives the mouse a shadow"
-msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy"
+msgid "Copy (Ctrl+c)"
+msgstr "Kopiuj (Ctrl+C)"
-msgid "Automatic indent\\When program editing"
-msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu"
+msgid "Ctrl"
+msgstr "Ctrl"
-msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
-msgstr ""
-"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez "
-"klamry"
+msgid "Current mission saved"
+msgstr "Bieżąca misja zapisana"
-msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
-msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices"
+msgid "Customize your appearance"
+msgstr "Dostosuj wygląd"
-msgid "Standard controls\\Standard key functions"
-msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne"
+msgid "Cut (Ctrl+x)"
+msgstr "Wytnij (Ctrl+X)"
-msgid "Turn left\\turns the bot to the left"
-msgstr "Skręć w lewo\\Obraca robota w lewo"
+msgid "Defense tower"
+msgstr "Wieża obronna"
-msgid "Turn right\\turns the bot to the right"
-msgstr "Obróć w prawo\\Obraca robota w prawo"
+msgid "Delete"
+msgstr "Usuń"
-msgid "Forward\\Moves forward"
-msgstr "Naprzód\\Porusza do przodu"
+msgid "Delete player\\Deletes the player from the list"
+msgstr "Usuń gracza\\Usuwa gracza z listy"
-msgid "Backward\\Moves backward"
-msgstr "Wstecz\\Porusza do tyłu"
+msgid "Delete\\Deletes the selected file"
+msgstr "Usuń\\Usuwa zaznaczony plik"
-msgid "Climb\\Increases the power of the jet"
-msgstr "W górę\\Zwiększa moc silnika"
+msgid "Depth of field\\Maximum visibility"
+msgstr "Głębokość pola\\Maksymalna widoczność"
+
+msgid "Derrick"
+msgstr "Kopalnia"
msgid "Descend\\Reduces the power of the jet"
msgstr "W dół\\Zmniejsza moc silnika"
-msgid "Change camera\\Switches between onboard camera and following camera"
-msgstr "Zmień kamerę\\Przełącza pomiędzy kamerą pokładową i śledzącą"
-
-msgid "Previous object\\Selects the previous object"
-msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt"
-
-msgid ""
-"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
-msgstr ""
-"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, "
-"szukaj, itp.)"
-
-msgid "Camera closer\\Moves the camera forward"
-msgstr "Kamera bliżej\\Przybliża kamerę"
+msgid "Destroy the building"
+msgstr "Zniszcz budynek"
-msgid "Camera back\\Moves the camera backward"
-msgstr "Kamera dalej\\Oddala kamerę"
+msgid "Destroyer"
+msgstr "Destroyer"
-msgid "Next object\\Selects the next object"
-msgstr "Następny obiekt\\Zaznacza następny obiekt"
+msgid "Details\\Visual quality of 3D objects"
+msgstr "Szczegóły\\Jakość wizualna obiektów 3D"
-msgid "Select the astronaut\\Selects the astronaut"
-msgstr "Zaznacz astronautę\\Zaznacza astronautę"
+msgid "Developed by :"
+msgstr "Twórcy:"
-msgid "Quit\\Quit the current mission or exercise"
-msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie"
+msgid "Device\\Driver and resolution settings"
+msgstr "Urządzenie\\Ustawienia sterownika i rozdzielczości"
-msgid "Instructions\\Shows the instructions for the current mission"
-msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji"
+msgid "Dividing by zero"
+msgstr "Dzielenie przez zero"
-msgid "Programming help\\Gives more detailed help with programming"
-msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu"
+msgid "Do not use in this exercise"
+msgstr "Do not use in this exercise"
-msgid "Key word help\\More detailed help about key words"
-msgstr ""
-"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych"
+msgid "Do you really want to destroy the selected building?"
+msgstr "Czy na pewno chcesz zniszczyć zaznaczony budynek?"
-msgid "Origin of last message\\Shows where the last message was sent from"
-msgstr ""
-"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość"
+#, c-format
+msgid "Do you want to delete %s's saved games? "
+msgstr "Czy na pewno chcesz skasować zapisane gry gracza %s? "
-msgid "Speed 1.0x\\Normal speed"
-msgstr "Prędkość 1,0x\\Prędkość normalna"
+msgid "Do you want to quit COLOBOT ?"
+msgstr "Czy na pewno chcesz opuścić grę COLOBOT?"
-msgid "Speed 1.5x\\1.5 times faster"
-msgstr "Prędkość 1,5x\\1,5 raza szybciej"
+msgid "Doors blocked by a robot or another object "
+msgstr "Drzwi zablokowane przez robota lub inny obiekt "
-msgid "Speed 2.0x\\Double speed"
-msgstr "Prędkość 2,0x\\Dwa razy szybciej"
+msgid "Down (\\key gdown;)"
+msgstr "Dół (\\key gdown;)"
-msgid "Speed 3.0x\\Three times faster"
-msgstr "Prędkość 3,0x\\Trzy razy szybciej"
+msgid "Drawer bot"
+msgstr "Drawer bot"
-msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
-msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp."
+msgid "Dust\\Dust and dirt on bots and buildings"
+msgstr "Kurz\\Kurz i bród na robotach i budynkach"
-msgid "Background sound :\\Volume of audio tracks on the CD"
-msgstr "Muzyka w tle :\\Głośność ścieżek dźwiękowych z płyty CD"
+msgid "Dynamic lighting\\Mobile light sources"
+msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła"
-msgid "3D sound\\3D positioning of the sound"
-msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków"
+msgid "Edit the selected program"
+msgstr "Edytuj zaznaczony program"
-msgid "Lowest\\Minimum graphic quality (highest frame rate)"
-msgstr ""
-"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)"
+msgid "Egg"
+msgstr "Jajo"
-msgid "Normal\\Normal graphic quality"
-msgstr "Normalna\\Normalna jakość grafiki"
+msgid "End of block missing"
+msgstr "Brak końca bloku"
-msgid "Highest\\Highest graphic quality (lowest frame rate)"
-msgstr ""
-"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)"
+msgid "Energy deposit (site for power station)"
+msgstr "Źródło energii (miejsce na elektrownię)"
-msgid "Mute\\No sound"
-msgstr "Cisza\\Brak dźwięków"
+msgid "Energy level"
+msgstr "Poziom energii"
-msgid "Normal\\Normal sound volume"
-msgstr "Normalne\\Normalna głośność dźwięków"
+msgid "Engineer"
+msgstr "Inżynier"
-msgid "Use a joystick\\Joystick or keyboard"
-msgstr "Używaj joysticka\\Joystick lub klawiatura"
+msgid "Error in instruction move"
+msgstr "Błąd w poleceniu ruchu"
-msgid ""
-"Access to solution\\Shows the solution (detailed instructions for missions)"
-msgstr ""
-"Dostęp do rozwiązania\\Pokazuje rozwiązanie (szczegółowe instrukcje "
-"dotyczące misji)"
+msgid "Execute the selected program"
+msgstr "Wykonaj zaznaczony program"
-msgid "\\New player name"
-msgstr "\\Nowe imię gracza"
+msgid "Execute/stop"
+msgstr "Wykonaj/Zatrzymaj"
-msgid "OK\\Choose the selected player"
-msgstr "OK\\Wybiera zaznaczonego gracza"
+msgid "Exercises\\Programming exercises"
+msgstr "Ćwiczenia\\Ćwiczenia programistyczne"
-msgid "Cancel\\Keep current player name"
-msgstr "Anuluj\\Zachowuje bieżące imię gracza"
+msgid "Exit film\\Film at the exit of exercises"
+msgstr "Końcowy film\\Film na zakończenie ćwiczeń"
-msgid "Delete player\\Deletes the player from the list"
-msgstr "Usuń gracza\\Usuwa gracza z listy"
+msgid "Explosive"
+msgstr "Materiały wybuchowe"
-msgid "Player name"
-msgstr "Imię gracza"
+msgid "Extend shield (\\key action;)"
+msgstr "Rozszerz osłonę (\\key action;)"
-msgid "Save\\Saves the current mission"
-msgstr "Zapisz\\Zapisuje bieżącą misję"
+msgid "Eyeglasses:"
+msgstr "Okulary:"
-msgid "Load\\Loads the selected mission"
-msgstr "Wczytaj\\Wczytuje zaznaczoną misję"
+msgid "Face type:"
+msgstr "Rodzaj twarzy:"
-msgid "List of saved missions"
-msgstr "Lista zapisanych misji"
+msgid "File not open"
+msgstr "Plik nie jest otwarty"
msgid "Filename:"
msgstr "Nazwa pliku:"
-msgid "Mission name"
-msgstr "Nazwa misji"
+msgid "Film sequences\\Films before and after the missions"
+msgstr "Sekwencje filmowe\\Filmy przed rozpoczęciem i na zakończenie misji"
-msgid "Photography"
-msgstr "Fotografia"
+msgid "Finish"
+msgstr "Koniec"
-msgid "Delete\\Deletes the selected file"
-msgstr "Usuń\\Usuwa zaznaczony plik"
+msgid "Fixed mine"
+msgstr "Mina"
-msgid "Appearance\\Choose your appearance"
-msgstr "Wygląd\\Wybierz swoją postać"
+msgid "Flat ground not large enough"
+msgstr "Za mało płaskiego terenu"
-msgid "Standard\\Standard appearance settings"
-msgstr "Standardowe\\Standardowe ustawienia wyglądu"
+msgid "Fog\\Fog"
+msgstr "Mgła\\Mgła"
-msgid "Head\\Face and hair"
-msgstr "Głowa\\Twarz i włosy"
+msgid "Folder:"
+msgstr "Folder:"
-msgid "Suit\\Astronaut suit"
-msgstr "Skafander\\Skafander astronauty"
+#, c-format
+msgid "Folder: %s"
+msgstr "Folder: %s"
-msgid "\\Turn left"
-msgstr "\\Obróć w lewo"
+msgid "Font size"
+msgstr "Wielkość czcionki"
-msgid "\\Turn right"
-msgstr "\\Obróć w prawo"
+msgid "Forward"
+msgstr "Naprzód"
-msgid "Red"
-msgstr "Czerwony"
+msgid "Forward (\\key up;)"
+msgstr "Naprzód (\\key up;)"
-msgid "Green"
-msgstr "Zielony"
+msgid "Forward\\Moves forward"
+msgstr "Naprzód\\Porusza do przodu"
-msgid "Blue"
-msgstr "Niebieski"
+msgid "Found a site for a derrick"
+msgstr "Znaleziono miejsce na kopalnię"
-msgid "\\Face 1"
-msgstr "\\Twarz 1"
+msgid "Found a site for power station"
+msgstr "Znaleziono miejsce na elektrownię"
-msgid "\\Face 4"
-msgstr "\\Twarz 4"
+msgid "Found key A (site for derrick)"
+msgstr "Znaleziono klucz A (miejsce na kopalnię)"
-msgid "\\Face 3"
-msgstr "\\Twarz 3"
+msgid "Found key B (site for derrick)"
+msgstr "Znaleziono klucz B (miejsce na kopalnię)"
-msgid "\\Face 2"
-msgstr "\\Twarz 2"
+msgid "Found key C (site for derrick)"
+msgstr "Znaleziono klucz C (miejsce na kopalnię)"
-msgid "\\No eyeglasses"
-msgstr "\\Bez okularów"
+msgid "Found key D (site for derrick)"
+msgstr "Znaleziono klucz D (miejsce na kopalnię)"
-msgid "\\Eyeglasses 1"
-msgstr "\\Okulary 1"
+msgid "Free game"
+msgstr "Swobodna gra"
-msgid "\\Eyeglasses 2"
-msgstr "\\Okulary 2"
+msgid "Free game\\Free game without a specific goal"
+msgstr "Swobodna gra\\Swobodna gra bez konkretnych celów"
-msgid "\\Eyeglasses 3"
-msgstr "\\Okulary 3"
+msgid "Friendly fire\\Your shooting can damage your own objects "
+msgstr "Przyjacielski ogień\\Własne strzały uszkadzają Twoje obiekty"
-msgid "\\Eyeglasses 4"
-msgstr "\\Okulary 4"
+msgid "Full screen\\Full screen or window mode"
+msgstr "Pełny ekran\\Pełny ekran lub tryb okna"
-msgid "\\Eyeglasses 5"
-msgstr "\\Okulary 5"
+msgid "Function already exists"
+msgstr "Funkcja już istnieje"
-msgid "Previous selection (\\key desel;)"
-msgstr "Poprzednie zaznaczenie (\\key desel;)"
+msgid "Function name missing"
+msgstr "Brakująca nazwa funkcji"
-msgid "Turn left (\\key left;)"
-msgstr "Skręć w lewo (\\key left;)"
+msgid "Game speed"
+msgstr "Prędkość gry"
-msgid "Turn right (\\key right;)"
-msgstr "Skręć w prawo (\\key right;)"
+msgid "Game\\Game settings"
+msgstr "Gra\\Ustawienia gry"
-msgid "Forward (\\key up;)"
-msgstr "Naprzód (\\key up;)"
+msgid "Gantry crane"
+msgstr "Żuraw przesuwalny"
-msgid "Backward (\\key down;)"
-msgstr "Cofnij (\\key down;)"
+#, c-format
+msgid "GetResource event num out of range: %d\n"
+msgstr ""
-msgid "Up (\\key gup;)"
-msgstr "Góra (\\key gup;)"
+msgid "Goto: destination occupied"
+msgstr "Goto: miejsce docelowe zajęte"
-msgid "Down (\\key gdown;)"
-msgstr "Dół (\\key gdown;)"
+msgid "Goto: inaccessible destination"
+msgstr "Goto: miejsce docelowe niedostępne"
msgid "Grab or drop (\\key action;)"
msgstr "Podnieś lub upuść (\\key action;)"
-msgid "..in front"
-msgstr "..przed"
+msgid "Graphics\\Graphics settings"
+msgstr "Grafika\\Ustawienia grafiki"
-msgid "..behind"
-msgstr "..za"
+msgid "Green"
+msgstr "Zielony"
-msgid "..power cell"
-msgstr "..ogniwo elektryczne"
+msgid "Green flag"
+msgstr "Zielona flaga"
-msgid "Instructions for the mission (\\key help;)"
-msgstr "Rozkazy dotyczące misji (\\key help;)"
+msgid "Ground inappropriate"
+msgstr "Nieodpowiedni teren"
-msgid "Take off to finish the mission"
-msgstr "Odleć, aby zakończyć misję"
+msgid "Ground not flat enough"
+msgstr "Powierzchnia nie jest wystarczająco płaska"
-msgid "Build a derrick"
-msgstr "Zbuduj kopalnię"
+msgid "Hair color:"
+msgstr "Kolor włosów:"
-msgid "Build a power station"
-msgstr "Zbuduj elektrownię"
+msgid "Head\\Face and hair"
+msgstr "Głowa\\Twarz i włosy"
-msgid "Build a bot factory"
-msgstr "Zbuduj fabrykę robotów"
+msgid "Help about selected object"
+msgstr "Pomoc na temat zaznaczonego obiektu"
-msgid "Build a repair center"
-msgstr "Zbuduj warsztat"
+msgid "Help balloons\\Explain the function of the buttons"
+msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków"
-msgid "Build a converter"
-msgstr "Zbuduj hutę"
+msgid "Highest\\Highest graphic quality (lowest frame rate)"
+msgstr ""
+"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)"
-msgid "Build a defense tower"
-msgstr "Zbuduj wieżę obronną"
+msgid "Home"
+msgstr "Początek"
-msgid "Build a research center"
-msgstr "Zbuduj centrum badawcze"
+msgid "Houston Mission Control"
+msgstr "Centrum Kontroli Misji w Houston"
-msgid "Build a radar station"
-msgstr "Zbuduj stację radarową"
+msgid "Illegal object"
+msgstr "Nieprawidłowy obiekt"
-msgid "Build a power cell factory"
-msgstr "Zbuduj fabrykę ogniw elektrycznych"
+msgid "Impossible under water"
+msgstr "Niemożliwe pod wodą"
-msgid "Build an autolab"
-msgstr "Zbuduj laboratorium"
+msgid "Impossible when carrying an object"
+msgstr "Niemożliwe podczas przenoszenia przedmiotu"
-msgid "Build a nuclear power plant"
-msgstr "Zbuduj elektrownię atomową"
+msgid "Impossible when flying"
+msgstr "Niemożliwe podczas lotu"
-msgid "Build a lightning conductor"
-msgstr "Zbuduj odgromnik"
+msgid "Impossible when moving"
+msgstr "Niemożliwe podczas ruchu"
-msgid "Build a exchange post"
-msgstr "Zbuduj stację przekaźnikową"
+msgid "Impossible when swimming"
+msgstr "Niemożliwe podczas pływania"
-msgid "Show if the ground is flat"
-msgstr "Pokaż czy teren jest płaski"
+msgid "Inappropriate bot"
+msgstr "Nieodpowiedni robot"
-msgid "Plant a flag"
-msgstr "Postaw flagę"
+msgid "Inappropriate cell type"
+msgstr "Nieodpowiedni rodzaj ogniw"
-msgid "Remove a flag"
-msgstr "Usuń flagę"
+msgid "Incorrect index type"
+msgstr "Nieprawidłowy typ indeksu"
-msgid "\\Blue flags"
-msgstr "\\Niebieskie flagi"
+#, fuzzy
+msgid "Infected by a virus; temporarily out of order"
+msgstr "Zainfekowane wirusem, chwilowo niesprawne"
-msgid "\\Red flags"
-msgstr "\\Czerwone flagi"
+msgid "Information exchange post"
+msgstr "Stacja przekaźnikowa informacji"
-msgid "\\Green flags"
-msgstr "\\Zielone flagi"
+msgid "Instruction \"break\" outside a loop"
+msgstr "Polecenie \"break\" na zewnątrz pętli"
-msgid "\\Yellow flags"
-msgstr "\\Żółte flagi"
+msgid "Instruction \"case\" missing"
+msgstr "Brak polecenia \"case"
-msgid "\\Violet flags"
-msgstr "\\Fioletowe flagi"
+msgid "Instruction \"case\" outside a block \"switch\""
+msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\""
-msgid "Build a winged grabber"
-msgstr "Zbuduj transporter latający"
+msgid "Instruction \"else\" without corresponding \"if\" "
+msgstr "Polecenie \"else\" bez wystąpienia \"if\" "
-msgid "Build a tracked grabber"
-msgstr "Zbuduj transporter na gąsienicach"
+msgid "Instructions (\\key help;)"
+msgstr "Rozkazy (\\key help;)"
-msgid "Build a wheeled grabber"
-msgstr "Zbuduj transporter na kołach"
+msgid "Instructions after the final closing brace"
+msgstr "Polecenie po końcowej klamrze zamykającej"
-msgid "Build a legged grabber"
-msgstr "Zbuduj transporter na nogach"
+msgid "Instructions for the mission (\\key help;)"
+msgstr "Rozkazy dotyczące misji (\\key help;)"
-msgid "Build a winged shooter"
-msgstr "Zbuduj działo latające"
+msgid "Instructions from Houston"
+msgstr "Rozkazy z Houston"
-msgid "Build a tracked shooter"
-msgstr "Zbuduj działo na gąsienicach"
+msgid "Instructions\\Shows the instructions for the current mission"
+msgstr "Rozkazy\\Pokazuje rozkazy dotyczące bieżącej misji"
-msgid "Build a wheeled shooter"
-msgstr "Zbuduj działo na kołach"
+msgid "Jet temperature"
+msgstr "Temperatura silnika"
-msgid "Build a legged shooter"
-msgstr "Zbuduj działo na nogach"
+msgid "Key A"
+msgstr "Klucz A"
-msgid "Build a winged orga shooter"
-msgstr "Zbuduj latające działo organiczne"
+msgid "Key B"
+msgstr "Klucz B"
-msgid "Build a tracked orga shooter"
-msgstr "Zbuduj działo organiczne na gąsienicach"
+msgid "Key C"
+msgstr "Klucz C"
-msgid "Build a wheeled orga shooter"
-msgstr "Zbuduj działo organiczne na kołach"
+msgid "Key D"
+msgstr "Klucz D"
-msgid "Build a legged orga shooter"
-msgstr "Zbuduj działo organiczne na nogach"
+msgid "Key word help\\More detailed help about key words"
+msgstr ""
+"Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych"
-msgid "Build a winged sniffer"
-msgstr "Zbuduj szperacz latający"
+msgid "Keyword \"while\" missing"
+msgstr "Brak kluczowego słowa \"while"
-msgid "Build a tracked sniffer"
-msgstr "Zbuduj szperacz na gąsienicach"
+msgid "Keyword help(\\key cbot;)"
+msgstr "Skróty klawiszowe (\\key cbot;)"
-msgid "Build a wheeled sniffer"
-msgstr "Zbuduj szperacz na kołach"
+msgid "LOADING"
+msgstr "WCZYTYWANIE"
-msgid "Build a legged sniffer"
-msgstr "Zbuduj szperacz na nogach"
+msgid "Legged grabber"
+msgstr "Transporter na nogach"
-msgid "Build a thumper"
-msgstr "Zbuduj robota uderzacza"
+msgid "Legged orga shooter"
+msgstr "Działo organiczne na nogach"
-msgid "Build a phazer shooter"
-msgstr "Zbuduj działo fazowe"
+msgid "Legged shooter"
+msgstr "Działo na nogach"
-msgid "Build a recycler"
-msgstr "Zbuduj robota recyklera"
+msgid "Legged sniffer"
+msgstr "Szperacz na nogach"
-msgid "Build a shielder"
-msgstr "Zbuduj robota osłaniajacza"
+msgid "Lightning conductor"
+msgstr "Odgromnik"
-msgid "Build a subber"
-msgstr "Zbuduj robota nurka"
+msgid "List of objects"
+msgstr "Lista obiektów"
-msgid "Run research program for tracked bots"
-msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach"
+msgid "List of saved missions"
+msgstr "Lista zapisanych misji"
-msgid "Run research program for winged bots"
-msgstr "Rozpocznij prace badawcze nad transporterem latającym"
+msgid "Load a saved mission"
+msgstr "Wczytaj zapisaną misję"
-msgid "Run research program for thumper"
-msgstr "Rozpocznij prace badawcze nad robotem uderzaczem"
+msgid "Load\\Load a saved mission"
+msgstr "Wczytaj\\Wczytuje zapisaną misję"
-msgid "Run research program for shooter"
-msgstr "Rozpocznij prace badawcze nad działem"
+msgid "Load\\Loads the selected mission"
+msgstr "Wczytaj\\Wczytuje zaznaczoną misję"
-msgid "Run research program for defense tower"
-msgstr "Rozpocznij prace badawcze nad wieżą obronną"
+msgid "Lowest\\Minimum graphic quality (highest frame rate)"
+msgstr ""
+"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)"
-msgid "Run research program for phazer shooter"
-msgstr "Rozpocznij prace badawcze nad działem fazowym"
+msgid "Lunar Roving Vehicle"
+msgstr "Pojazd Księżycowy"
-msgid "Run research program for shielder"
-msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem"
+msgid "Marks on the ground\\Marks on the ground"
+msgstr "Znaki na ziemi\\Znaki na ziemi"
-msgid "Run research program for nuclear power"
-msgstr "Rozpocznij prace badawcze nad energią atomową"
+msgid "Maximize"
+msgstr "Powiększ"
-msgid "Run research program for legged bots"
-msgstr "Rozpocznij prace badawcze nad transporterem na nogach"
+msgid "Menu (\\key quit;)"
+msgstr "Menu (\\key quit;)"
-msgid "Run research program for orga shooter"
-msgstr "Rozpocznij prace badawcze nad działem organicznym"
+msgid "Minimize"
+msgstr "Pomniejsz"
-msgid "Return to start"
-msgstr "Powrót do początku"
+msgid "Mission name"
+msgstr "Nazwa misji"
-msgid "Sniff (\\key action;)"
-msgstr "Szukaj (\\key action;)"
+msgid "Missions"
+msgstr "Misje"
-msgid "Thump (\\key action;)"
-msgstr "Uderz (\\key action;)"
+msgid "Missions\\Select mission"
+msgstr "Misje\\Wybierz misję"
-msgid "Shoot (\\key action;)"
-msgstr "Strzelaj (\\key action;)"
+msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
+msgstr "Odwrócenie myszy X\\Odwrócenie kierunków przewijania w poziomie"
-msgid "Recycle (\\key action;)"
-msgstr "Odzyskaj (\\key action;)"
+msgid "Mouse inversion Y\\Inversion of the scrolling direction on the Y axis"
+msgstr "Odwrócenie myszy Y\\Odwrócenie kierunków przewijania w pionie"
-msgid "Extend shield (\\key action;)"
-msgstr "Rozszerz osłonę (\\key action;)"
+msgid "Mouse shadow\\Gives the mouse a shadow"
+msgstr "Cień kursora myszy\\Dodaje cień kursorowi myszy"
-msgid "Withdraw shield (\\key action;)"
-msgstr "Wyłącz osłonę (\\key action;)"
+msgid "Mute\\No sound"
+msgstr "Cisza\\Brak dźwięków"
-msgid "Shield radius"
-msgstr "Zasięg osłony"
+msgid "Name:"
+msgstr "Nazwa:"
-msgid "Execute the selected program"
-msgstr "Wykonaj zaznaczony program"
+msgid "Negative value rejected by \"throw\""
+msgstr "Wartość ujemna odrzucona przez \"throw\""
-msgid "Edit the selected program"
-msgstr "Edytuj zaznaczony program"
+msgid "Nest"
+msgstr "Gniazdo"
-msgid "\\SatCom on standby"
-msgstr "\\Przełącz przekaźnik SatCom w stan gotowości"
+msgid "New"
+msgstr "Nowy"
-msgid "Destroy the building"
-msgstr "Zniszcz budynek"
+msgid "New ..."
+msgstr "Nowy ..."
-msgid "Energy level"
-msgstr "Poziom energii"
+msgid "New bot available"
+msgstr "Dostępny nowy robot"
-msgid "Shield level"
-msgstr "Poziom osłony"
+msgid "New player\\Choose player's name"
+msgstr "Nowy gracz\\Wybierz imię gracza"
-msgid "Jet temperature"
-msgstr "Temperatura silnika"
+msgid "Next"
+msgstr "Następny"
-msgid "Still working ..."
-msgstr "Wciąż pracuje..."
+msgid "Next object\\Selects the next object"
+msgstr "Następny obiekt\\Zaznacza następny obiekt"
-msgid "Number of insects detected"
-msgstr "Liczba wykrytych insektów"
+msgid "No energy in the subsoil"
+msgstr "Brak energii w ziemi"
-msgid "Transmitted information"
-msgstr "Przesłane informacje"
+msgid "No flag nearby"
+msgstr "Nie ma flagi w pobliżu"
-msgid "Compass"
-msgstr "Kompas"
+msgid "No function running"
+msgstr "Żadna funkcja nie działa"
-msgid "Mini-map"
-msgstr "Mapka"
+msgid "No function with this name accepts this kind of parameter"
+msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu"
-msgid "Zoom mini-map"
-msgstr "Powiększenie mapki"
+msgid "No function with this name accepts this number of parameters"
+msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów"
-msgid "Camera (\\key camera;)"
-msgstr "Kamera (\\key camera;)"
+msgid "No information exchange post within range"
+msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu"
-msgid "Camera to left"
-msgstr "Camera to left"
+msgid "No more energy"
+msgstr "Nie ma więcej energii"
-msgid "Camera to right"
-msgstr "Camera to right"
+msgid "No ore in the subsoil"
+msgstr "W ziemi nie ma żadnej rudy"
-msgid "Camera nearest"
-msgstr "Camera nearest"
+msgid "No other robot"
+msgstr "Brak innego robota"
-msgid "Camera awayest"
-msgstr "Camera awayest"
+msgid "No power cell"
+msgstr "Brak ogniwa elektrycznego"
-msgid "Help about selected object"
-msgstr "Pomoc na temat zaznaczonego obiektu"
+msgid "No titanium"
+msgstr "Brak tytanu"
-msgid "Show the solution"
-msgstr "Pokaż rozwiązanie"
+msgid "No titanium around"
+msgstr "Brak tytanu w pobliżu"
-msgid "Switch bots <-> buildings"
-msgstr "Przełącz roboty <-> budynki"
+msgid "No titanium ore to convert"
+msgstr "Brak rudy tytanu do przetopienia"
-msgid "Show the range"
-msgstr "Pokaż zasięg"
+msgid "No titanium to transform"
+msgstr "Brak tytanu do przetworzenia"
-msgid "\\Raise the pencil"
-msgstr "\\Relčve le crayon"
+msgid "No uranium to transform"
+msgstr "Brak uranu do przetworzenia"
-msgid "\\Use the black pencil"
-msgstr "\\Abaisse le crayon noir"
+msgid "Normal size"
+msgstr "Normalna wielkość"
-msgid "\\Use the yellow pencil"
-msgstr "\\Abaisse le crayon jaune"
+msgid "Normal\\Normal graphic quality"
+msgstr "Normalna\\Normalna jakość grafiki"
-msgid "\\Use the orange pencil"
-msgstr "\\Abaisse le crayon orange"
+msgid "Normal\\Normal sound volume"
+msgstr "Normalne\\Normalna głośność dźwięków"
-msgid "\\Use the red pencil"
-msgstr "\\Abaisse le crayon rouge"
+msgid "Not enough energy"
+msgstr "Za mało energii"
-msgid "\\Use the purple pencil"
-msgstr "\\Abaisse le crayon violet"
+msgid "Not enough energy yet"
+msgstr "Wciąż za mało energii"
-msgid "\\Use the blue pencil"
-msgstr "\\Abaisse le crayon bleu"
+msgid "Not yet enough energy"
+msgstr "Wciąż za mało energii"
-msgid "\\Use the green pencil"
-msgstr "\\Abaisse le crayon vert"
+msgid "Nothing to analyze"
+msgstr "Nie ma niczego do zanalizowania"
-msgid "\\Use the brown pencil"
-msgstr "\\Abaisse le crayon brun"
+msgid "Nothing to drop"
+msgstr "Nie ma nic do upuszczenia"
-msgid "\\Start recording"
-msgstr "\\Démarre l'enregistrement"
+msgid "Nothing to grab"
+msgstr "Nie ma nic do podniesienia"
-msgid "\\Stop recording"
-msgstr "\\Stoppe l'enregistrement"
+msgid "Nothing to recycle"
+msgstr "Nie ma niczego do odzysku"
-msgid "Show the place"
-msgstr "Pokaż miejsce"
+msgid "Nuclear power cell"
+msgstr "Atomowe ogniwa elektryczne"
-msgid "Continue"
-msgstr "Kontynuuj"
+msgid "Nuclear power cell available"
+msgstr "Wytworzono atomowe ogniwo elektryczne"
-msgid "Command line"
-msgstr "Linia polecenia"
+msgid "Nuclear power station"
+msgstr "Elektrownia atomowa"
-msgid "Game speed"
-msgstr "Prędkość gry"
+msgid "Num of decorative objects\\Number of purely ornamental objects"
+msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych"
-msgid "Back"
-msgstr "Wstecz"
+msgid "Number missing"
+msgstr "Brak liczby"
-msgid "Forward"
-msgstr "Naprzód"
+msgid "Number of insects detected"
+msgstr "Liczba wykrytych insektów"
-msgid "Home"
-msgstr "Początek"
+msgid "Number of particles\\Explosions, dust, reflections, etc."
+msgstr "Liczba cząstek\\Wybuchy, kurz, odbicia, itp."
-msgid "Copy"
-msgstr "Kopiuj"
+msgid "OK"
+msgstr "OK"
-msgid "Size 1"
-msgstr "Wielkość 1"
+msgid "OK\\Choose the selected player"
+msgstr "OK\\Wybiera zaznaczonego gracza"
-msgid "Size 2"
-msgstr "Wielkość 2"
+msgid "OK\\Close program editor and return to game"
+msgstr "OK\\Zamyka edytor programu i powraca do gry"
-msgid "Size 3"
-msgstr "Wielkość 3"
+msgid "Object not found"
+msgstr "Obiekt nieznany"
-msgid "Size 4"
-msgstr "Wielkość 4"
+msgid "Object too close"
+msgstr "Obiekt za blisko"
-msgid "Size 5"
-msgstr "Wielkość 5"
+msgid "One step"
+msgstr "Jeden krok"
-msgid "Instructions from Houston"
-msgstr "Rozkazy z Houston"
+msgid "Open"
+msgstr "Otwórz"
-msgid "Dictionnary"
-msgstr "Raport z satelity"
+msgid "Open (Ctrl+o)"
+msgstr "Otwórz (Ctrl+O)"
-msgid "Satellite report"
-msgstr "Raport z satelity"
+msgid "Opening brace missing "
+msgstr "Brak klamry otwierającej"
-msgid "Programs dispatched by Houston"
-msgstr "Program dostarczony z Houston"
+msgid "Opening bracket missing"
+msgstr "Brak nawiasu otwierającego"
-msgid "List of objects"
-msgstr "Lista obiektów"
+msgid "Operation impossible with value \"nan\""
+msgstr "Działanie niemożliwe z wartością \"nan\""
-msgid "Programming help"
-msgstr "Podręcznik programowania"
+msgid "Options"
+msgstr "Opcje"
-msgid "Solution"
-msgstr "Rozwiązanie"
+msgid "Options\\Preferences"
+msgstr "Opcje\\Preferencje"
-msgid "OK\\Close program editor and return to game"
-msgstr "OK\\Zamyka edytor programu i powraca do gry"
+msgid "Organic matter"
+msgstr "Materia organiczna"
-msgid "Cancel\\Cancel all changes"
-msgstr "Anuluj\\Pomija wszystkie zmiany"
+msgid "Origin of last message\\Shows where the last message was sent from"
+msgstr ""
+"Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość"
-msgid "Open (Ctrl+o)"
-msgstr "Otwórz (Ctrl+O)"
+msgid "Parameters missing "
+msgstr "Brak wymaganego parametru"
-msgid "Save (Ctrl+s)"
-msgstr "Zapisz (Ctrl+S)"
+msgid "Particles in the interface\\Steam clouds and sparks in the interface"
+msgstr "Cząstki w interfejsie\\Para i iskry z silników w interfejsie"
-msgid "Undo (Ctrl+z)"
-msgstr "Cofnij (Ctrl+Z)"
+msgid "Paste (Ctrl+v)"
+msgstr "Wklej (Ctrl+V)"
-msgid "Cut (Ctrl+x)"
-msgstr "Wytnij (Ctrl+X)"
+msgid "Pause/continue"
+msgstr "Pauza/Kontynuuj"
-msgid "Copy (Ctrl+c)"
-msgstr "Kopiuj (Ctrl+C)"
+msgid "Phazer shooter"
+msgstr "Działo fazowe"
-msgid "Paste (Ctrl+v)"
-msgstr "Wklej (Ctrl+V)"
+msgid "Photography"
+msgstr "Fotografia"
-msgid "Font size"
-msgstr "Wielkość czcionki"
+msgid "Place occupied"
+msgstr "Miejsce zajęte"
-msgid "Instructions (\\key help;)"
-msgstr "Rozkazy (\\key help;)"
+msgid "Planets and stars\\Astronomical objects in the sky"
+msgstr "Planety i gwiazdy\\Obiekty astronomiczne na niebie"
-msgid "Programming help (\\key prog;)"
-msgstr "Podręcznik programowania (\\key prog;)"
+msgid "Plans for defense tower available"
+msgstr "Dostępne plany wieży obronnej"
-msgid "Compile"
-msgstr "Kompiluj"
+msgid "Plans for nuclear power plant available"
+msgstr "Dostępne plany elektrowni atomowej"
-msgid "Execute/stop"
-msgstr "Wykonaj/Zatrzymaj"
+msgid "Plans for phazer shooter available"
+msgstr "Dostępne plany działa fazowego"
-msgid "Pause/continue"
-msgstr "Pauza/Kontynuuj"
+msgid "Plans for shielder available"
+msgstr "Dostępne plany robota osłaniacza"
-msgid "One step"
-msgstr "Jeden krok"
+msgid "Plans for shooter available"
+msgstr "Dostępne plany działa"
-msgid "Gantry crane"
-msgstr "Żuraw przesuwalny"
+msgid "Plans for thumper available"
+msgstr "Dostępne plany robota uderzacza"
-msgid "Spaceship"
-msgstr "Statek kosmiczny"
+msgid "Plans for tracked robots available "
+msgstr "Dostępne plany tranporterów na gąsienicach"
-msgid "Derrick"
-msgstr "Kopalnia"
+msgid "Plant a flag"
+msgstr "Postaw flagę"
-msgid "Bot factory"
-msgstr "Fabryka robotów"
+msgid "Play\\Start mission!"
+msgstr "Graj\\Rozpoczyna misję!"
-msgid "Repair center"
-msgstr "Warsztat"
+msgid "Player"
+msgstr "Gracz"
-msgid "Destroyer"
-msgstr "Destroyer"
+msgid "Player name"
+msgstr "Imię gracza"
-msgid "Power station"
-msgstr "Stacja energetyczna"
+msgid "Player's name"
+msgstr "Imię gracza"
-msgid "Converts ore to titanium"
-msgstr "Przetop rudę na tytan"
+msgid "Power cell"
+msgstr "Ogniwo elektryczne"
-msgid "Defense tower"
-msgstr "Wieża obronna"
+msgid "Power cell available"
+msgstr "Wytworzono ogniwo elektryczne"
-msgid "Nest"
-msgstr "Gniazdo"
+msgid "Power cell factory"
+msgstr "Fabryka ogniw elektrycznych"
-msgid "Research center"
-msgstr "Centrum badawcze"
+msgid "Power station"
+msgstr "Stacja energetyczna"
-msgid "Radar station"
-msgstr "Stacja radarowa"
+msgid "Practice bot"
+msgstr "Robot treningowy"
-msgid "Information exchange post"
-msgstr "Stacja przekaźnikowa informacji"
+msgid "Press \\key help; to read instructions on your SatCom"
+msgstr ""
+"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom"
-msgid "Disintegrator"
-msgstr "Fabryka ogniw elektrycznych"
+msgid "Previous"
+msgstr "Poprzedni"
-msgid "Power cell factory"
-msgstr "Fabryka ogniw elektrycznych"
+msgid "Previous object\\Selects the previous object"
+msgstr "Poprzedni obiekt\\Zaznacz poprzedni obiekt"
-msgid "Autolab"
-msgstr "Laboratorium"
+msgid "Previous selection (\\key desel;)"
+msgstr "Poprzednie zaznaczenie (\\key desel;)"
-msgid "Nuclear power station"
-msgstr "Elektrownia atomowa"
+msgid "Private element"
+msgstr "Element prywatny"
-msgid "Lightning conductor"
-msgstr "Odgromnik"
+msgid "Private\\Private folder"
+msgstr "Prywatny\\Folder prywatny"
-msgid "Vault"
-msgstr "Skrytka"
+msgid "Program editor"
+msgstr "Edytor programu"
-msgid "Houston Mission Control"
-msgstr "Centrum Kontroli Misji w Houston"
+msgid "Program finished"
+msgstr "Program zakończony"
-msgid "Target"
-msgstr "Cel"
+msgid "Program infected by a virus"
+msgstr "Program zawirusowany"
-msgid "Start"
-msgstr "Początek"
+msgid "Programming exercises"
+msgstr "Ćwiczenia programistyczne"
-msgid "Finish"
-msgstr "Koniec"
+msgid "Programming help"
+msgstr "Podręcznik programowania"
-msgid "Titanium ore"
-msgstr "Ruda tytanu"
+msgid "Programming help (\\key prog;)"
+msgstr "Podręcznik programowania (\\key prog;)"
-msgid "Uranium ore"
-msgstr "Ruda uranu"
+msgid "Programming help\\Gives more detailed help with programming"
+msgstr "Podręcznik programowania\\Dostarcza szczegółową pomoc w programowaniu"
-msgid "Organic matter"
-msgstr "Materia organiczna"
+msgid "Programs dispatched by Houston"
+msgstr "Program dostarczony z Houston"
-msgid "Titanium"
-msgstr "Tytan"
+msgid "Proto\\Prototypes under development"
+msgstr "Prototypy\\Prototypy w trakcie rozwijania"
-msgid "Power cell"
-msgstr "Ogniwo elektryczne"
+msgid "Prototypes"
+msgstr "Prototypy"
-msgid "Nuclear power cell"
-msgstr "Atomowe ogniwa elektryczne"
+msgid "Public required"
+msgstr "Wymagany publiczny"
-msgid "Black box"
-msgstr "Czarna skrzynka"
+msgid "Public\\Common folder"
+msgstr "Publiczny\\Folder ogólnodostępny"
-msgid "Key A"
-msgstr "Klucz A"
+msgid "Quake at explosions\\The screen shakes at explosions"
+msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów"
-msgid "Key B"
-msgstr "Klucz B"
+msgid "Quit the mission?"
+msgstr "Opuścić misję?"
-msgid "Key C"
-msgstr "Klucz C"
+msgid "Quit\\Quit COLOBOT"
+msgstr "Zakończ\\Kończy grę COLOBOT"
-msgid "Key D"
-msgstr "Klucz D"
+msgid "Quit\\Quit the current mission or exercise"
+msgstr "Zakończ\\Kończy bieżącą misję lub ćwiczenie"
-msgid "Explosive"
-msgstr "Materiały wybuchowe"
+msgid "Radar station"
+msgstr "Stacja radarowa"
-msgid "Fixed mine"
-msgstr "Mina"
+msgid "Read error"
+msgstr "Błąd odczytu"
-msgid "Survival kit"
-msgstr "Zestaw przetrwania"
+msgid "Recorder"
+msgstr "Recorder"
-msgid "Checkpoint"
-msgstr "Punkt kontrolny"
+msgid "Recycle (\\key action;)"
+msgstr "Odzyskaj (\\key action;)"
-msgid "Blue flag"
-msgstr "Niebieska flaga"
+msgid "Recycler"
+msgstr "Recykler"
+
+msgid "Red"
+msgstr "Czerwony"
msgid "Red flag"
msgstr "Czerwona flaga"
-msgid "Green flag"
-msgstr "Zielona flaga"
+msgid "Reflections on the buttons \\Shiny buttons"
+msgstr "Odbicia na przyciskach \\Świecące przyciski"
-msgid "Yellow flag"
-msgstr "Żółta flaga"
+msgid "Remains of Apollo mission"
+msgstr "Pozostałości z misji Apollo"
-msgid "Violet flag"
-msgstr "Fioletowa flaga"
+msgid "Remove a flag"
+msgstr "Usuń flagę"
-msgid "Energy deposit (site for power station)"
-msgstr "Źródło energii (miejsce na elektrownię)"
+msgid "Repair center"
+msgstr "Warsztat"
-msgid "Uranium deposit (site for derrick)"
-msgstr "Złoże uranu (miejsce na kopalnię)"
+msgid "Research center"
+msgstr "Centrum badawcze"
-msgid "Found key A (site for derrick)"
-msgstr "Znaleziono klucz A (miejsce na kopalnię)"
+msgid "Research program already performed"
+msgstr "Program badawczy został już wykonany"
-msgid "Found key B (site for derrick)"
-msgstr "Znaleziono klucz B (miejsce na kopalnię)"
+msgid "Research program completed"
+msgstr "Program badawczy zakończony"
-msgid "Found key C (site for derrick)"
-msgstr "Znaleziono klucz C (miejsce na kopalnię)"
+msgid "Reserved keyword of CBOT language"
+msgstr "Słowo zarezerwowane języka CBOT"
-msgid "Found key D (site for derrick)"
-msgstr "Znaleziono klucz D (miejsce na kopalnię)"
+msgid "Resolution"
+msgstr "Rozdzielczość"
-msgid "Titanium deposit (site for derrick)"
-msgstr "Złoże tytanu (miejsce na kopalnię)"
+msgid "Restart\\Restart the mission from the beginning"
+msgstr "Uruchom ponownie\\Uruchamia ponownie misję od początku"
-msgid "Practice bot"
-msgstr "Robot treningowy"
+msgid "Return to start"
+msgstr "Powrót do początku"
-msgid "Winged grabber"
-msgstr "Transporter latający"
+msgid "Robbie"
+msgstr "Robbie"
-msgid "Tracked grabber"
-msgstr "Transporter na gąsienicach"
+msgid "Robbie\\Your assistant"
+msgstr "Robbie\\Twój asystent"
-msgid "Wheeled grabber"
-msgstr "Transporter na kołach"
+msgid "Ruin"
+msgstr "Ruiny"
-msgid "Legged grabber"
-msgstr "Transporter na nogach"
+msgid "Run research program for defense tower"
+msgstr "Rozpocznij prace badawcze nad wieżą obronną"
-msgid "Winged shooter"
-msgstr "Działo latające"
+msgid "Run research program for legged bots"
+msgstr "Rozpocznij prace badawcze nad transporterem na nogach"
-msgid "Tracked shooter"
-msgstr "Działo na gąsienicach"
+msgid "Run research program for nuclear power"
+msgstr "Rozpocznij prace badawcze nad energią atomową"
-msgid "Wheeled shooter"
-msgstr "Działo na kołach"
+msgid "Run research program for orga shooter"
+msgstr "Rozpocznij prace badawcze nad działem organicznym"
-msgid "Legged shooter"
-msgstr "Działo na nogach"
+msgid "Run research program for phazer shooter"
+msgstr "Rozpocznij prace badawcze nad działem fazowym"
-msgid "Winged orga shooter"
-msgstr "Latające działo organiczne"
+msgid "Run research program for shielder"
+msgstr "Rozpocznij prace badawcze nad robotem osłaniaczem"
-msgid "Tracked orga shooter"
-msgstr "Działo organiczne na gąsienicach"
+msgid "Run research program for shooter"
+msgstr "Rozpocznij prace badawcze nad działem"
-msgid "Wheeled orga shooter"
-msgstr "Działo organiczne na kołach"
+msgid "Run research program for thumper"
+msgstr "Rozpocznij prace badawcze nad robotem uderzaczem"
-msgid "Legged orga shooter"
-msgstr "Działo organiczne na nogach"
+msgid "Run research program for tracked bots"
+msgstr "Rozpocznij prace badawcze nad transporterem na gąsienicach"
-msgid "Winged sniffer"
-msgstr "Szperacz latający"
+msgid "Run research program for winged bots"
+msgstr "Rozpocznij prace badawcze nad transporterem latającym"
-msgid "Tracked sniffer"
-msgstr "Szperacz na gąsienicach"
+msgid "SatCom"
+msgstr "SatCom"
-msgid "Wheeled sniffer"
-msgstr "Szperacz na kołach"
+msgid "Satellite report"
+msgstr "Raport z satelity"
-msgid "Legged sniffer"
-msgstr "Szperacz na nogach"
+msgid "Save"
+msgstr "Zapisz"
-msgid "Thumper"
-msgstr "Uderzacz"
+msgid "Save (Ctrl+s)"
+msgstr "Zapisz (Ctrl+S)"
-msgid "Phazer shooter"
-msgstr "Działo fazowe"
+msgid "Save the current mission"
+msgstr "Zapisz bieżącą misję"
-msgid "Recycler"
-msgstr "Recykler"
+msgid "Save\\Save the current mission "
+msgstr "Zapisz\\Zapisuje bieżącą misję"
+
+msgid "Save\\Saves the current mission"
+msgstr "Zapisz\\Zapisuje bieżącą misję"
+
+msgid "Scrolling\\Scrolling when the mouse touches right or left border"
+msgstr ""
+"Przewijanie\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego "
+"krawędzi"
+
+msgid "Select the astronaut\\Selects the astronaut"
+msgstr "Zaznacz astronautę\\Zaznacza astronautę"
+
+msgid "Semicolon terminator missing"
+msgstr "Brak średnika na końcu wiersza"
+
+msgid "Shadows\\Shadows on the ground"
+msgstr "Cienie\\Cienie na ziemi"
+
+msgid "Shield level"
+msgstr "Poziom osłony"
+
+msgid "Shield radius"
+msgstr "Zasięg osłony"
msgid "Shielder"
msgstr "Osłaniacz"
-msgid "Subber"
-msgstr "Robot nurek"
+msgid "Shift"
+msgstr "Shift"
-msgid "Target bot"
-msgstr "Robot cel"
+msgid "Shoot (\\key action;)"
+msgstr "Strzelaj (\\key action;)"
-msgid "Drawer bot"
-msgstr "Drawer bot"
+msgid "Show if the ground is flat"
+msgstr "Pokaż czy teren jest płaski"
-msgid "Engineer"
-msgstr "Inżynier"
+msgid "Show the place"
+msgstr "Pokaż miejsce"
-msgid "Robbie"
-msgstr "Robbie"
+msgid "Show the range"
+msgstr "Pokaż zasięg"
-msgid "Alien Queen"
-msgstr "Królowa Obcych"
+msgid "Show the solution"
+msgstr "Pokaż rozwiązanie"
-msgid "Ant"
-msgstr "Mrówka"
+msgid "Sign \" : \" missing"
+msgstr "Brak znaku \" :\""
-msgid "Spider"
-msgstr "Pająk"
+msgid "Size 1"
+msgstr "Wielkość 1"
-msgid "Wasp"
-msgstr "Osa"
+msgid "Size 2"
+msgstr "Wielkość 2"
-msgid "Worm"
-msgstr "Robal"
+msgid "Size 3"
+msgstr "Wielkość 3"
-msgid "Egg"
-msgstr "Jajo"
+msgid "Size 4"
+msgstr "Wielkość 4"
-msgid "Wreckage"
-msgstr "Wrak"
+msgid "Size 5"
+msgstr "Wielkość 5"
-msgid "Ruin"
-msgstr "Ruiny"
+msgid "Sky\\Clouds and nebulae"
+msgstr "Niebo\\Chmury i mgławice"
-msgid "Waste"
-msgstr "Odpady"
+msgid "Sniff (\\key action;)"
+msgstr "Szukaj (\\key action;)"
+
+msgid "Solution"
+msgstr "Rozwiązanie"
+
+msgid "Sound effects:\\Volume of engines, voice, shooting, etc."
+msgstr "Efekty dźwiękowe:\\Głośność silników, głosów, strzałów, itp."
+
+msgid "Sound\\Music and game sound volume"
+msgstr "Dźwięk\\Głośność muzyki i dźwięków gry"
+
+msgid "Spaceship"
+msgstr "Statek kosmiczny"
msgid "Spaceship ruin"
msgstr "Ruiny statku kosmicznego"
-msgid "Remains of Apollo mission"
-msgstr "Pozostałości z misji Apollo"
+msgid "Speed 1.0x\\Normal speed"
+msgstr "Prędkość 1,0x\\Prędkość normalna"
-msgid "Lunar Roving Vehicle"
-msgstr "Pojazd Księżycowy"
+msgid "Speed 1.5x\\1.5 times faster"
+msgstr "Prędkość 1,5x\\1,5 raza szybciej"
-msgid "Error"
-msgstr "Błąd"
+msgid "Speed 2.0x\\Double speed"
+msgstr "Prędkość 2,0x\\Dwa razy szybciej"
-msgid "Unknown command"
-msgstr "Nieznane polecenie"
+msgid "Speed 3.0x\\Three times faster"
+msgstr "Prędkość 3,0x\\Trzy razy szybciej"
-msgid "Inappropriate bot"
-msgstr "Nieodpowiedni robot"
+msgid "Spider"
+msgstr "Pająk"
-msgid "Impossible when flying"
-msgstr "Niemożliwe podczas lotu"
+msgid "Spider fatally wounded"
+msgstr "Pająk śmiertelnie raniony"
-msgid "Already carrying something"
-msgstr "Nie można nieść więcej przedmiotów"
+msgid "Stack overflow"
+msgstr "Przepełnienie stosu"
-msgid "Nothing to grab"
-msgstr "Nie ma nic do podniesienia"
+msgid ""
+"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
+msgstr ""
+"Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, "
+"szukaj, itp.)"
-msgid "Impossible when moving"
-msgstr "Niemożliwe podczas ruchu"
+msgid "Standard controls\\Standard key functions"
+msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne"
-msgid "Place occupied"
-msgstr "Miejsce zajęte"
+msgid "Standard\\Standard appearance settings"
+msgstr "Standardowe\\Standardowe ustawienia wyglądu"
-msgid "No other robot"
-msgstr "Brak innego robota"
+msgid "Start"
+msgstr "Początek"
-msgid "You can not carry a radioactive object"
-msgstr "Nie możesz przenosić przedmiotów radioaktywnych"
+msgid "Still working ..."
+msgstr "Wciąż pracuje..."
-msgid "You can not carry an object under water"
-msgstr "Nie możesz przenosić przedmiotów pod wodą"
+msgid "String missing"
+msgstr "Brak łańcucha"
-msgid "Nothing to drop"
-msgstr "Nie ma nic do upuszczenia"
+msgid "Strip color:"
+msgstr "Kolor pasków:"
-msgid "Impossible under water"
-msgstr "Niemożliwe pod wodą"
+msgid "Subber"
+msgstr "Robot nurek"
-msgid "Not enough energy"
-msgstr "Za mało energii"
+msgid "Suit color:"
+msgstr "Kolor skafandra:"
-msgid "Titanium too far away"
-msgstr "Tytan za daleko"
+msgid "Suit\\Astronaut suit"
+msgstr "Skafander\\Skafander astronauty"
-msgid "Titanium too close"
-msgstr "Tytan za blisko"
+msgid "Sunbeams\\Sunbeams in the sky"
+msgstr "Promienie słoneczne\\Promienie słoneczne na niebie"
-msgid "No titanium around"
-msgstr "Brak tytanu w pobliżu"
+msgid "Survival kit"
+msgstr "Zestaw przetrwania"
-msgid "Ground not flat enough"
-msgstr "Powierzchnia nie jest wystarczająco płaska"
+msgid "Switch bots <-> buildings"
+msgstr "Przełącz roboty <-> budynki"
-msgid "Flat ground not large enough"
-msgstr "Za mało płaskiego terenu"
+msgid "Take off to finish the mission"
+msgstr "Odleć, aby zakończyć misję"
-msgid "Too close to space ship"
-msgstr "Za blisko statku kosmicznego"
+msgid "Target"
+msgstr "Cel"
-msgid "Too close to a building"
-msgstr "Za blisko budynku"
+msgid "Target bot"
+msgstr "Robot cel"
-msgid "Ground inappropriate"
-msgstr "Nieodpowiedni teren"
+msgid "Textures\\Quality of textures "
+msgstr "Tekstury\\Jakość tekstur "
-msgid "Building too close"
-msgstr "Budynek za blisko"
+msgid "The expression must return a boolean value"
+msgstr "Wyrażenie musi zwrócić wartość logiczną"
-msgid "Object too close"
-msgstr "Obiekt za blisko"
+msgid "The function returned no value "
+msgstr "Funkcja nie zwróciła żadnej wartości "
-msgid "Nothing to recycle"
-msgstr "Nie ma niczego do odzysku"
+msgid ""
+"The list is only available if a \\l;radar station\\u object\\radar; is "
+"working.\n"
+msgstr ""
+"Lista jest dostępna jedynie gdy działa \\l;stacja radarowa\\u object"
+"\\radar;.\n"
-msgid "No more energy"
-msgstr "Nie ma więcej energii"
+msgid ""
+"The mission is not accomplished yet (press \\key help; for more details)"
+msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)"
-msgid "Error in instruction move"
-msgstr "Błąd w poleceniu ruchu"
+msgid "The types of the two operands are incompatible "
+msgstr "Niezgodne typy operatorów"
-msgid "Object not found"
-msgstr "Obiekt nieznany"
+msgid "This class already exists"
+msgstr "Taka klasa już istnieje"
-msgid "Goto: inaccessible destination"
-msgstr "Goto: miejsce docelowe niedostępne"
+msgid "This class does not exist"
+msgstr "Taka klasa nie istnieje"
-msgid "Goto: destination occupied"
-msgstr "Goto: miejsce docelowe zajęte"
+msgid "This is not a member of this class"
+msgstr "To nie jest obiekt tej klasy"
-msgid "No titanium ore to convert"
-msgstr "Brak rudy tytanu do przetopienia"
+msgid "This label does not exist"
+msgstr "Taka etykieta nie istnieje"
-msgid "No ore in the subsoil"
-msgstr "W ziemi nie ma żadnej rudy"
+msgid "This object is not a member of a class"
+msgstr "Ten obiekt nie jest członkiem klasy"
-msgid "No energy in the subsoil"
-msgstr "Brak energii w ziemi"
+msgid "Thump (\\key action;)"
+msgstr "Uderz (\\key action;)"
-msgid "No power cell"
-msgstr "Brak ogniwa elektrycznego"
+msgid "Thumper"
+msgstr "Uderzacz"
-msgid "Inappropriate cell type"
-msgstr "Nieodpowiedni rodzaj ogniw"
+msgid "Titanium"
+msgstr "Tytan"
-msgid "Research program already performed"
-msgstr "Program badawczy został już wykonany"
+msgid "Titanium available"
+msgstr "Tytan dostępny"
-msgid "Not enough energy yet"
-msgstr "Wciąż za mało energii"
+msgid "Titanium deposit (site for derrick)"
+msgstr "Złoże tytanu (miejsce na kopalnię)"
-msgid "No titanium to transform"
-msgstr "Brak tytanu do przetworzenia"
+msgid "Titanium ore"
+msgstr "Ruda tytanu"
-msgid "Transforms only titanium"
-msgstr "Przetwarza jedynie tytan"
+msgid "Titanium too close"
+msgstr "Tytan za blisko"
-msgid "Doors blocked by a robot or another object "
-msgstr "Drzwi zablokowane przez robota lub inny obiekt "
+msgid "Titanium too far away"
+msgstr "Tytan za daleko"
-msgid "You must get on the spaceship to take off "
-msgstr "Musisz być na statku kosmicznym aby nim odlecieć"
+msgid "Too close to a building"
+msgstr "Za blisko budynku"
-msgid "Nothing to analyze"
-msgstr "Nie ma niczego do zanalizowania"
+msgid "Too close to an existing flag"
+msgstr "Za blisko istniejącej flagi"
-msgid "Analyzes only organic matter"
-msgstr "Analizuje jedynie materię organiczną"
+msgid "Too close to space ship"
+msgstr "Za blisko statku kosmicznego"
-msgid "Analysis already performed"
-msgstr "Analiza została już wykonana"
+msgid "Too many flags of this color (maximum 5)"
+msgstr "Za dużo flag w tym kolorze (maksymalnie 5)"
-msgid "Not yet enough energy"
-msgstr "Wciąż za mało energii"
+msgid "Too many parameters"
+msgstr "Za dużo parametrów"
-msgid "No uranium to transform"
-msgstr "Brak uranu do przetworzenia"
+msgid "Tracked grabber"
+msgstr "Transporter na gąsienicach"
-msgid "Transforms only uranium"
-msgstr "Przetwarza jedynie uran"
+msgid "Tracked orga shooter"
+msgstr "Działo organiczne na gąsienicach"
-msgid "No titanium"
-msgstr "Brak tytanu"
+msgid "Tracked shooter"
+msgstr "Działo na gąsienicach"
-msgid "No information exchange post within range"
-msgstr "Nie ma żadnej stacji przekaźnikowej w zasięgu"
+msgid "Tracked sniffer"
+msgstr "Szperacz na gąsienicach"
-msgid "Program infected by a virus"
-msgstr "Program zawirusowany"
+msgid "Transforms only titanium"
+msgstr "Przetwarza jedynie tytan"
-msgid "Infected by a virus, temporarily out of order"
-msgstr "Zainfekowane wirusem, chwilowo niesprawne"
+msgid "Transforms only uranium"
+msgstr "Przetwarza jedynie uran"
-msgid "Impossible when swimming"
-msgstr "Niemożliwe podczas pływania"
+msgid "Transmitted information"
+msgstr "Przesłane informacje"
-msgid "Impossible when carrying an object"
-msgstr "Niemożliwe podczas przenoszenia przedmiotu"
+msgid "Turn left (\\key left;)"
+msgstr "Skręć w lewo (\\key left;)"
-msgid "Too many flags of this color (maximum 5)"
-msgstr "Za dużo flag w tym kolorze (maksymalnie 5)"
+msgid "Turn left\\turns the bot to the left"
+msgstr "Skręć w lewo\\Obraca robota w lewo"
-msgid "Too close to an existing flag"
-msgstr "Za blisko istniejącej flagi"
+msgid "Turn right (\\key right;)"
+msgstr "Skręć w prawo (\\key right;)"
-msgid "No flag nearby"
-msgstr "Nie ma flagi w pobliżu"
+msgid "Turn right\\turns the bot to the right"
+msgstr "Obróć w prawo\\Obraca robota w prawo"
-msgid ""
-"The mission is not accomplished yet (press \\key help; for more details)"
-msgstr "Misja nie jest wypełniona (naciśnij \\key help; aby uzyskać szczegóły)"
+msgid "Type declaration missing"
+msgstr "Brak deklaracji typu"
-msgid "Bot destroyed"
-msgstr "Robot zniszczony"
+msgid "Undo (Ctrl+z)"
+msgstr "Cofnij (Ctrl+Z)"
-msgid "Building destroyed"
-msgstr "Budynek zniszczony"
+msgid "Unit"
+msgstr "Jednostka"
-msgid "Can not create this, there are too many objects"
-msgstr "Nie można tego utworzyć, za dużo obiektów"
+msgid "Unknown Object"
+msgstr "Obiekt nieznany"
-msgid "\"%s\" missing in this exercise"
-msgstr "It misses \"%s\" in this exercise"
+msgid "Unknown command"
+msgstr "Nieznane polecenie"
-msgid "Do not use in this exercise"
-msgstr "Do not use in this exercise"
+msgid "Unknown function"
+msgstr "Funkcja nieznana"
-msgid "Building completed"
-msgstr "Budowa zakończona"
+msgid "Up (\\key gup;)"
+msgstr "Góra (\\key gup;)"
-msgid "Titanium available"
-msgstr "Tytan dostępny"
+msgid "Uranium deposit (site for derrick)"
+msgstr "Złoże uranu (miejsce na kopalnię)"
-msgid "Research program completed"
-msgstr "Program badawczy zakończony"
+msgid "Uranium ore"
+msgstr "Ruda uranu"
-msgid "Plans for tracked robots available "
-msgstr "Dostępne plany tranporterów na gąsienicach"
+msgid "Use a joystick\\Joystick or keyboard"
+msgstr "Używaj joysticka\\Joystick lub klawiatura"
-msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
-msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)"
+msgid "User levels"
+msgstr "Poziomy użytkownika"
-msgid "Plans for thumper available"
-msgstr "Dostępne plany robota uderzacza"
+msgid "User\\User levels"
+msgstr "Poziomy\\Poziomy użytkownika"
-msgid "Plans for shooter available"
-msgstr "Dostępne plany działa"
+msgid "Variable name missing"
+msgstr "Brak nazwy zmiennej"
-msgid "Plans for defense tower available"
-msgstr "Dostępne plany wieży obronnej"
+msgid "Variable not declared"
+msgstr "Zmienna nie została zadeklarowana"
-msgid "Plans for phazer shooter available"
-msgstr "Dostępne plany działa fazowego"
+msgid "Variable not initialized"
+msgstr "Zmienna nie została zainicjalizowana"
-msgid "Plans for shielder available"
-msgstr "Dostępne plany robota osłaniacza"
+msgid "Vault"
+msgstr "Skrytka"
-msgid "Plans for nuclear power plant available"
-msgstr "Dostępne plany elektrowni atomowej"
+msgid "Violet flag"
+msgstr "Fioletowa flaga"
-msgid "New bot available"
-msgstr "Dostępny nowy robot"
+msgid "Void parameter"
+msgstr "Pusty parametr"
-msgid "Analysis performed"
-msgstr "Analiza wykonana"
+msgid "Wasp"
+msgstr "Osa"
-msgid "Power cell available"
-msgstr "Wytworzono ogniwo elektryczne"
+msgid "Wasp fatally wounded"
+msgstr "Osa śmiertelnie raniona"
-msgid "Nuclear power cell available"
-msgstr "Wytworzono atomowe ogniwo elektryczne"
+msgid "Waste"
+msgstr "Odpady"
-msgid "You found a usable object"
-msgstr "Znaleziono użyteczny przedmiot"
+msgid "Wheeled grabber"
+msgstr "Transporter na kołach"
-msgid "Found a site for power station"
-msgstr "Znaleziono miejsce na elektrownię"
+msgid "Wheeled orga shooter"
+msgstr "Działo organiczne na kołach"
-msgid "Found a site for a derrick"
-msgstr "Znaleziono miejsce na kopalnię"
+msgid "Wheeled shooter"
+msgstr "Działo na kołach"
-msgid "<<< Well done, mission accomplished >>>"
-msgstr "<<< Dobra robota, misja wypełniona >>>"
+msgid "Wheeled sniffer"
+msgstr "Szperacz na kołach"
-msgid "<<< Sorry, mission failed >>>"
-msgstr "<<< Niestety, misja nie powiodła się >>>"
+msgid "Win"
+msgstr ""
-msgid "Current mission saved"
-msgstr "Bieżąca misja zapisana"
+msgid "Winged grabber"
+msgstr "Transporter latający"
-msgid "Checkpoint crossed"
-msgstr "Przekroczono punkt kontrolny"
+msgid "Winged orga shooter"
+msgstr "Latające działo organiczne"
-msgid "Alien Queen killed"
-msgstr "Królowa Obcych została zabita"
+msgid "Winged shooter"
+msgstr "Działo latające"
-msgid "Ant fatally wounded"
-msgstr "Mrówka śmiertelnie raniona"
+msgid "Winged sniffer"
+msgstr "Szperacz latający"
-msgid "Wasp fatally wounded"
-msgstr "Osa śmiertelnie raniona"
+msgid "Withdraw shield (\\key action;)"
+msgstr "Wyłącz osłonę (\\key action;)"
+
+msgid "Worm"
+msgstr "Robal"
msgid "Worm fatally wounded"
msgstr "Robal śmiertelnie raniony"
-msgid "Spider fatally wounded"
-msgstr "Pająk śmiertelnie raniony"
+msgid "Wreckage"
+msgstr "Wrak"
-msgid "Press \\key help; to read instructions on your SatCom"
-msgstr ""
-"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom"
+msgid "Write error"
+msgstr "Błąd zapisu"
-msgid "Opening bracket missing"
-msgstr "Brak nawiasu otwierającego"
+msgid "Wrong type for the assignment"
+msgstr "Zły typ dla przypisania"
-msgid "Closing bracket missing "
-msgstr "Brak nawiasu zamykającego"
+msgid "Yellow flag"
+msgstr "Żółta flaga"
-msgid "The expression must return a boolean value"
-msgstr "Wyrażenie musi zwrócić wartość logiczną"
+msgid "You can fly with the keys (\\key gup;) and (\\key gdown;)"
+msgstr "Możesz latać używając klawiszy (\\key gup;) oraz (\\key gdown;)"
-msgid "Variable not declared"
-msgstr "Zmienna nie została zadeklarowana"
+msgid "You can not carry a radioactive object"
+msgstr "Nie możesz przenosić przedmiotów radioaktywnych"
-msgid "Assignment impossible"
-msgstr "Przypisanie niemożliwe"
+msgid "You can not carry an object under water"
+msgstr "Nie możesz przenosić przedmiotów pod wodą"
-msgid "Semicolon terminator missing"
-msgstr "Brak średnika na końcu wiersza"
+msgid "You found a usable object"
+msgstr "Znaleziono użyteczny przedmiot"
-msgid "Instruction \"case\" outside a block \"switch\""
-msgstr "Polecenie \"case\" na zewnątrz bloku \"switch\""
+msgid "You must get on the spaceship to take off "
+msgstr "Musisz być na statku kosmicznym aby nim odlecieć"
-msgid "Instructions after the final closing brace"
-msgstr "Polecenie po końcowej klamrze zamykającej"
+msgid "Zoom mini-map"
+msgstr "Powiększenie mapki"
-msgid "End of block missing"
-msgstr "Brak końca bloku"
+msgid "\\Blue flags"
+msgstr "\\Niebieskie flagi"
-msgid "Instruction \"else\" without corresponding \"if\" "
-msgstr "Polecenie \"else\" bez wystąpienia \"if\" "
+msgid "\\Eyeglasses 1"
+msgstr "\\Okulary 1"
-msgid "Opening brace missing "
-msgstr "Brak klamry otwierającej"
+msgid "\\Eyeglasses 2"
+msgstr "\\Okulary 2"
-msgid "Wrong type for the assignment"
-msgstr "Zły typ dla przypisania"
+msgid "\\Eyeglasses 3"
+msgstr "\\Okulary 3"
-msgid "A variable can not be declared twice"
-msgstr "Zmienna nie może być zadeklarowana dwukrotnie"
+msgid "\\Eyeglasses 4"
+msgstr "\\Okulary 4"
-msgid "The types of the two operands are incompatible "
-msgstr "Niezgodne typy operatorów"
+msgid "\\Eyeglasses 5"
+msgstr "\\Okulary 5"
-msgid "Unknown function"
-msgstr "Funkcja nieznana"
+msgid "\\Face 1"
+msgstr "\\Twarz 1"
-msgid "Sign \" : \" missing"
-msgstr "Brak znaku \" :\""
+msgid "\\Face 2"
+msgstr "\\Twarz 2"
-msgid "Keyword \"while\" missing"
-msgstr "Brak kluczowego słowa \"while"
+msgid "\\Face 3"
+msgstr "\\Twarz 3"
-msgid "Instruction \"break\" outside a loop"
-msgstr "Polecenie \"break\" na zewnątrz pętli"
+msgid "\\Face 4"
+msgstr "\\Twarz 4"
-msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\""
-msgstr "Po etykiecie musi wystąpić \"for\", \"while\", \"do\" lub \"switch\""
+msgid "\\Green flags"
+msgstr "\\Zielone flagi"
-msgid "This label does not exist"
-msgstr "Taka etykieta nie istnieje"
+msgid "\\New player name"
+msgstr "\\Nowe imię gracza"
-msgid "Instruction \"case\" missing"
-msgstr "Brak polecenia \"case"
+msgid "\\No eyeglasses"
+msgstr "\\Bez okularów"
-msgid "Number missing"
-msgstr "Brak liczby"
+msgid "\\Raise the pencil"
+msgstr "\\Relčve le crayon"
-msgid "Void parameter"
-msgstr "Pusty parametr"
+msgid "\\Red flags"
+msgstr "\\Czerwone flagi"
-msgid "Type declaration missing"
-msgstr "Brak deklaracji typu"
+msgid "\\Return to COLOBOT"
+msgstr "\\Powróć do gry COLOBOT"
-msgid "Variable name missing"
-msgstr "Brak nazwy zmiennej"
+msgid "\\SatCom on standby"
+msgstr "\\Przełącz przekaźnik SatCom w stan gotowości"
-msgid "Function name missing"
-msgstr "Brakująca nazwa funkcji"
+msgid "\\Start recording"
+msgstr "\\Démarre l'enregistrement"
-msgid "Too many parameters"
-msgstr "Za dużo parametrów"
+msgid "\\Stop recording"
+msgstr "\\Stoppe l'enregistrement"
-msgid "Function already exists"
-msgstr "Funkcja już istnieje"
+msgid "\\Turn left"
+msgstr "\\Obróć w lewo"
-msgid "Parameters missing "
-msgstr "Brak wymaganego parametru"
+msgid "\\Turn right"
+msgstr "\\Obróć w prawo"
-msgid "No function with this name accepts this kind of parameter"
-msgstr "Funkcja o tej nazwie nie akceptuje parametrów tego typu"
+msgid "\\Use the black pencil"
+msgstr "\\Abaisse le crayon noir"
-msgid "No function with this name accepts this number of parameters"
-msgstr "Funkcja o tej nazwie nie akceptuje takiej liczby parametrów"
+msgid "\\Use the blue pencil"
+msgstr "\\Abaisse le crayon bleu"
-msgid "This is not a member of this class"
-msgstr "To nie jest obiekt tej klasy"
+msgid "\\Use the brown pencil"
+msgstr "\\Abaisse le crayon brun"
-msgid "This object is not a member of a class"
-msgstr "Ten obiekt nie jest członkiem klasy"
+msgid "\\Use the green pencil"
+msgstr "\\Abaisse le crayon vert"
-msgid "Appropriate constructor missing"
-msgstr "Brak odpowiedniego konstruktora"
+msgid "\\Use the orange pencil"
+msgstr "\\Abaisse le crayon orange"
-msgid "This class already exists"
-msgstr "Taka klasa już istnieje"
+msgid "\\Use the purple pencil"
+msgstr "\\Abaisse le crayon violet"
-msgid "\" ] \" missing"
-msgstr "Brak \" ] \""
+msgid "\\Use the red pencil"
+msgstr "\\Abaisse le crayon rouge"
-msgid "Reserved keyword of CBOT language"
-msgstr "Słowo zarezerwowane języka CBOT"
+msgid "\\Use the yellow pencil"
+msgstr "\\Abaisse le crayon jaune"
-msgid "Bad argument for \"new\""
-msgstr "Zły argument dla funkcji \"new\""
+msgid "\\Violet flags"
+msgstr "\\Fioletowe flagi"
-msgid "\" [ \" expected"
-msgstr "Oczekiwane \" [ \""
+msgid "\\Yellow flags"
+msgstr "\\Żółte flagi"
-msgid "String missing"
-msgstr "Brak łańcucha"
+msgid "\\b;Aliens\n"
+msgstr "\\b;Obcy\n"
-msgid "Incorrect index type"
-msgstr "Nieprawidłowy typ indeksu"
+msgid "\\b;Buildings\n"
+msgstr "\\b;Budynki\n"
-msgid "Private element"
-msgstr "Element prywatny"
+msgid "\\b;Error\n"
+msgstr "\\b;Błąd\n"
-msgid "Public required"
-msgstr "Wymagany publiczny"
+msgid "\\b;List of objects\n"
+msgstr "\\b;Lista obiektów\n"
-msgid "Dividing by zero"
-msgstr "Dzielenie przez zero"
+msgid "\\b;Moveable objects\n"
+msgstr "\\b;Obiekty ruchome\n"
-msgid "Variable not initialized"
-msgstr "Zmienna nie została zainicjalizowana"
+msgid "\\b;Robots\n"
+msgstr "\\b;Roboty\n"
-msgid "Negative value rejected by \"throw\""
-msgstr "Wartość ujemna odrzucona przez \"throw\""
+msgid "\\c; (none)\\n;\n"
+msgstr "\\c; (brak)\\n;\n"
-msgid "The function returned no value "
-msgstr "Funkcja nie zwróciła żadnej wartości "
+msgid "action;"
+msgstr ""
-msgid "No function running"
-msgstr "Żadna funkcja nie działa"
+msgid "away;"
+msgstr ""
-msgid "Calling an unknown function"
-msgstr "Odwołanie do nieznanej funkcji"
+msgid "camera;"
+msgstr ""
-msgid "This class does not exist"
-msgstr "Taka klasa nie istnieje"
+msgid "cbot;"
+msgstr ""
-msgid "Unknown Object"
-msgstr "Obiekt nieznany"
+msgid "desel;"
+msgstr ""
-msgid "Operation impossible with value \"nan\""
-msgstr "Działanie niemożliwe z wartością \"nan\""
+msgid "down;"
+msgstr ""
-msgid "Access beyond array limit"
-msgstr "Dostęp poza tablicę"
+msgid "gdown;"
+msgstr ""
-msgid "Stack overflow"
-msgstr "Przepełnienie stosu"
+msgid "gup;"
+msgstr ""
-msgid "Illegal object"
-msgstr "Nieprawidłowy obiekt"
+msgid "help;"
+msgstr ""
-msgid "Can't open file"
-msgstr "Nie można otworzyć pliku"
+msgid "human;"
+msgstr ""
-msgid "File not open"
-msgstr "Plik nie jest otwarty"
+msgid "left;"
+msgstr ""
-msgid "Read error"
-msgstr "Błąd odczytu"
+msgid "near;"
+msgstr ""
-msgid "Write error"
-msgstr "Błąd zapisu"
+msgid "next;"
+msgstr ""
+
+msgid "prog;"
+msgstr ""
+
+msgid "quit;"
+msgstr ""
+
+msgid "right;"
+msgstr ""
+
+msgid "speed10;"
+msgstr ""
+
+msgid "speed15;"
+msgstr ""
-msgid "< none >"
-msgstr "< brak >"
+msgid "speed20;"
+msgstr ""
-msgid "Arrow left"
-msgstr "Strzałka w lewo"
+msgid "up;"
+msgstr ""
-msgid "Arrow right"
-msgstr "Strzałka w prawo"
+msgid "visit;"
+msgstr ""
-msgid "Arrow up"
-msgstr "Strzałka w górę"
+msgid "www.epsitec.com"
+msgstr "www.epsitec.com"
-msgid "Arrow down"
-msgstr "Strzałka w dół"
+#~ msgid "< none >"
+#~ msgstr "< brak >"
-msgid "Control-break"
-msgstr "Ctrl-break"
+#~ msgid "<--"
+#~ msgstr "<--"
-msgid "<--"
-msgstr "<--"
+#~ msgid "Application key"
+#~ msgstr "Klawisz menu kontekstowego"
-msgid "Tab"
-msgstr "Tab"
+#~ msgid "Arrow down"
+#~ msgstr "Strzałka w dół"
-msgid "Clear"
-msgstr "Delete"
+#~ msgid "Arrow left"
+#~ msgstr "Strzałka w lewo"
-msgid "Enter"
-msgstr "Enter"
+#~ msgid "Arrow right"
+#~ msgstr "Strzałka w prawo"
-msgid "Shift"
-msgstr "Shift"
+#~ msgid "Arrow up"
+#~ msgstr "Strzałka w górę"
-msgid "Ctrl"
-msgstr "Ctrl"
+#~ msgid "Attn"
+#~ msgstr "Attn"
-msgid "Alt"
-msgstr "Alt"
+#~ msgid "Caps Lock"
+#~ msgstr "Caps Lock"
-msgid "Pause"
-msgstr "Pause"
+#~ msgid "Clear"
+#~ msgstr "Delete"
-msgid "Caps Lock"
-msgstr "Caps Lock"
+#~ msgid "Control-break"
+#~ msgstr "Ctrl-break"
-msgid "Esc"
-msgstr "Esc"
+#~ msgid "CrSel"
+#~ msgstr "CrSel"
-msgid "Space"
-msgstr "Spacja"
+#~ msgid "Delete Key"
+#~ msgstr "Delete"
-msgid "Page Up"
-msgstr "Page Up"
+#~ msgid "Dictionnary"
+#~ msgstr "Raport z satelity"
-msgid "Page Down"
-msgstr "Page Down"
+#~ msgid "Disintegrator"
+#~ msgstr "Fabryka ogniw elektrycznych"
-msgid "End"
-msgstr "End"
+#~ msgid "End"
+#~ msgstr "End"
-msgid "Home Key"
-msgstr "Home"
+#~ msgid "Enter"
+#~ msgstr "Enter"
-msgid "Select"
-msgstr "Zaznacz"
+#~ msgid "Erase EOF"
+#~ msgstr "Erase EOF"
-msgid "Execute"
-msgstr "Wykonaj"
+#~ msgid "Error"
+#~ msgstr "Błąd"
-msgid "Print Scrn"
-msgstr "Print Scrn"
+#~ msgid "Esc"
+#~ msgstr "Esc"
-msgid "Insert"
-msgstr "Insert"
+#~ msgid "ExSel"
+#~ msgstr "ExSel"
-msgid "Delete Key"
-msgstr "Delete"
+#~ msgid "Execute"
+#~ msgstr "Wykonaj"
-msgid "Help"
-msgstr "Pomoc"
+#~ msgid "F1"
+#~ msgstr "F1"
-msgid "Left Windows"
-msgstr "Lewy klawisz Windows"
+#~ msgid "F10"
+#~ msgstr "F10"
-msgid "Right Windows"
-msgstr "Prawy klawisz Windows"
+#~ msgid "F11"
+#~ msgstr "F11"
-msgid "Application key"
-msgstr "Klawisz menu kontekstowego"
+#~ msgid "F12"
+#~ msgstr "F12"
-msgid "NumPad 0"
-msgstr "Klaw. Num. 0"
+#~ msgid "F13"
+#~ msgstr "F13"
-msgid "NumPad 1"
-msgstr "Klaw. Num. 1"
+#~ msgid "F14"
+#~ msgstr "F14"
-msgid "NumPad 2"
-msgstr "Klaw. Num. 2"
+#~ msgid "F15"
+#~ msgstr "F15"
-msgid "NumPad 3"
-msgstr "Klaw. Num. 3"
+#~ msgid "F16"
+#~ msgstr "F16"
-msgid "NumPad 4"
-msgstr "Klaw. Num. 4"
+#~ msgid "F17"
+#~ msgstr "F17"
-msgid "NumPad 5"
-msgstr "Klaw. Num. 5"
+#~ msgid "F18"
+#~ msgstr "F18"
-msgid "NumPad 6"
-msgstr "Klaw. Num. 6"
+#~ msgid "F19"
+#~ msgstr "F19"
-msgid "NumPad 7"
-msgstr "Klaw. Num. 7"
+#~ msgid "F2"
+#~ msgstr "F2"
-msgid "NumPad 8"
-msgstr "Klaw. Num. 8"
+#~ msgid "F20"
+#~ msgstr "F20"
-msgid "NumPad 9"
-msgstr "Klaw. Num. 9"
+#~ msgid "F3"
+#~ msgstr "F3"
-msgid "NumPad *"
-msgstr "Klaw. Num. *"
+#~ msgid "F4"
+#~ msgstr "F4"
-msgid "NumPad +"
-msgstr "Klaw. Num. +"
+#~ msgid "F5"
+#~ msgstr "F5"
-msgid "NumPad sep"
-msgstr "Klaw. Num. separator"
+#~ msgid "F6"
+#~ msgstr "F6"
-msgid "NumPad -"
-msgstr "Klaw. Num. -"
+#~ msgid "F7"
+#~ msgstr "F7"
-msgid "NumPad ."
-msgstr "Klaw. Num. ."
+#~ msgid "F8"
+#~ msgstr "F8"
-msgid "NumPad /"
-msgstr "Klaw. Num. /"
+#~ msgid "F9"
+#~ msgstr "F9"
-msgid "F1"
-msgstr "F1"
+#~ msgid "Help"
+#~ msgstr "Pomoc"
-msgid "F2"
-msgstr "F2"
+#~ msgid "Home Key"
+#~ msgstr "Home"
-msgid "F3"
-msgstr "F3"
+#~ msgid "Insert"
+#~ msgstr "Insert"
-msgid "F4"
-msgstr "F4"
+#~ msgid "Left Windows"
+#~ msgstr "Lewy klawisz Windows"
-msgid "F5"
-msgstr "F5"
+#~ msgid "Mini-map"
+#~ msgstr "Mapka"
-msgid "F6"
-msgstr "F6"
+#~ msgid "Num Lock"
+#~ msgstr "Num Lock"
-msgid "F7"
-msgstr "F7"
+#~ msgid "NumPad *"
+#~ msgstr "Klaw. Num. *"
-msgid "F8"
-msgstr "F8"
+#~ msgid "NumPad +"
+#~ msgstr "Klaw. Num. +"
-msgid "F9"
-msgstr "F9"
+#~ msgid "NumPad -"
+#~ msgstr "Klaw. Num. -"
-msgid "F10"
-msgstr "F10"
+#~ msgid "NumPad ."
+#~ msgstr "Klaw. Num. ."
-msgid "F11"
-msgstr "F11"
+#~ msgid "NumPad /"
+#~ msgstr "Klaw. Num. /"
-msgid "F12"
-msgstr "F12"
+#~ msgid "NumPad 0"
+#~ msgstr "Klaw. Num. 0"
-msgid "F13"
-msgstr "F13"
+#~ msgid "NumPad 1"
+#~ msgstr "Klaw. Num. 1"
-msgid "F14"
-msgstr "F14"
+#~ msgid "NumPad 2"
+#~ msgstr "Klaw. Num. 2"
-msgid "F15"
-msgstr "F15"
+#~ msgid "NumPad 3"
+#~ msgstr "Klaw. Num. 3"
-msgid "F16"
-msgstr "F16"
+#~ msgid "NumPad 4"
+#~ msgstr "Klaw. Num. 4"
-msgid "F17"
-msgstr "F17"
+#~ msgid "NumPad 5"
+#~ msgstr "Klaw. Num. 5"
-msgid "F18"
-msgstr "F18"
+#~ msgid "NumPad 6"
+#~ msgstr "Klaw. Num. 6"
-msgid "F19"
-msgstr "F19"
+#~ msgid "NumPad 7"
+#~ msgstr "Klaw. Num. 7"
-msgid "F20"
-msgstr "F20"
+#~ msgid "NumPad 8"
+#~ msgstr "Klaw. Num. 8"
-msgid "Num Lock"
-msgstr "Num Lock"
+#~ msgid "NumPad 9"
+#~ msgstr "Klaw. Num. 9"
-msgid "Scroll"
-msgstr "Scroll Lock"
+#~ msgid "NumPad sep"
+#~ msgstr "Klaw. Num. separator"
-msgid "Attn"
-msgstr "Attn"
+#~ msgid "PA1"
+#~ msgstr "PA1"
-msgid "CrSel"
-msgstr "CrSel"
+#~ msgid "Page Down"
+#~ msgstr "Page Down"
-msgid "ExSel"
-msgstr "ExSel"
+#~ msgid "Page Up"
+#~ msgstr "Page Up"
-msgid "Erase EOF"
-msgstr "Erase EOF"
+#~ msgid "Pause"
+#~ msgstr "Pause"
-msgid "Play"
-msgstr "Graj"
+#~ msgid "Play"
+#~ msgstr "Graj"
-msgid "Zoom"
-msgstr "Powiększenie"
+#~ msgid "Print Scrn"
+#~ msgstr "Print Scrn"
-msgid "PA1"
-msgstr "PA1"
+#~ msgid "Right Windows"
+#~ msgstr "Prawy klawisz Windows"
-msgid "Button %1"
-msgstr "Przycisk %1"
+#~ msgid "Scroll"
+#~ msgstr "Scroll Lock"
+
+#~ msgid "Select"
+#~ msgstr "Zaznacz"
+
+#~ msgid "Space"
+#~ msgstr "Spacja"
+
+#~ msgid "Tab"
+#~ msgstr "Tab"
+
+#~ msgid "Wheel down"
+#~ msgstr "Kółko w dół"
-msgid "Wheel up"
-msgstr "Kółko w górę"
+#~ msgid "Wheel up"
+#~ msgstr "Kółko w górę"
-msgid "Wheel down"
-msgstr "Kółko w dół"
+#~ msgid "Zoom"
+#~ msgstr "Powiększenie"
diff --git a/src/script/script.cpp b/src/script/script.cpp
index a6b39b9..f58e66d 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -1571,7 +1571,7 @@ bool CScript::rGrab(CBotVar* var, CBotVar* result, int& exception, void* user)
if ( script->m_primaryTask == 0 ) // no task in progress?
{
script->m_primaryTask = new CTaskManager(script->m_iMan, script->m_object);
- if ( var == 0 )
+ if ( var == 0 )
{
type = TMA_FFRONT;
}
@@ -2752,21 +2752,14 @@ void CScript::InitFonctions()
CScript::~CScript()
{
- if (m_botProg != nullptr)
- {
- delete m_botProg;
- m_botProg = nullptr;
- }
- if (m_primaryTask != nullptr)
- {
- delete m_primaryTask;
- m_primaryTask = nullptr;
- }
- if (m_script != nullptr)
- {
- delete m_script;
- m_script = nullptr;
- }
+ delete m_botProg;
+ m_botProg = nullptr;
+
+ delete m_primaryTask;
+ m_primaryTask = nullptr;
+
+ delete[] m_script;
+ m_script = nullptr;
m_len = 0;
@@ -2778,7 +2771,7 @@ CScript::~CScript()
void CScript::PutScript(Ui::CEdit* edit, const char* name)
{
- if ( m_script == 0 )
+ if ( m_script == nullptr )
{
New(edit, name);
}
@@ -2797,11 +2790,11 @@ bool CScript::GetScript(Ui::CEdit* edit)
{
int len;
- delete m_script;
- m_script = 0;
+ delete[] m_script;
+ m_script = nullptr;
len = edit->GetTextLength();
- m_script = static_cast<char*>(malloc(sizeof(char)*(len+1)));
+ m_script = new char[len+1];
edit->GetText(m_script, len+1);
edit->GetCursor(m_cursor2, m_cursor1);
@@ -3009,7 +3002,7 @@ void CScript::SetStepMode(bool bStep)
bool CScript::Run()
{
if( m_botProg == 0 ) return false;
- if ( m_script == 0 || m_len == 0 ) return false;
+ if ( m_script == nullptr || m_len == 0 ) return false;
if ( !m_botProg->Start(m_title) ) return false;
@@ -3487,9 +3480,9 @@ bool CScript::IntroduceVirus()
start = found[i+1];
i = found[i+0];
- newScript = static_cast<char*>(malloc(sizeof(char)*(m_len+strlen(names[i+1])+1)));
+ newScript = new char[m_len+strlen(names[i+1])+1];
strcpy(newScript, m_script);
- delete m_script;
+ delete[] m_script;
m_script = newScript;
DeleteToken(m_script, start, strlen(names[i]));
@@ -3650,7 +3643,7 @@ void CScript::New(Ui::CEdit* edit, const char* name)
bool CScript::SendScript(char* text)
{
m_len = strlen(text);
- m_script = static_cast<char*>(malloc(sizeof(char)*(m_len+1)));
+ m_script = new char[m_len+1];
strcpy(m_script, text);
if ( !CheckToken() ) return false;
if ( !Compile() ) return false;
@@ -3681,8 +3674,8 @@ bool CScript::ReadScript(const char* filename)
if ( file == NULL ) return false;
fclose(file);
- delete m_script;
- m_script = 0;
+ delete[] m_script;
+ m_script = nullptr;
edit = m_interface->CreateEdit(Math::Point(0.0f, 0.0f), Math::Point(0.0f, 0.0f), 0, EVENT_EDIT9);
edit->SetMaxChar(Ui::EDITSTUDIOMAX);
@@ -3709,7 +3702,7 @@ bool CScript::WriteScript(const char* filename)
name = filename;
}
- if ( m_script == 0 )
+ if ( m_script == nullptr )
{
remove(filename);
return false;
diff --git a/src/sound/plugins/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp
index 83a4def..f683a62 100644
--- a/src/sound/plugins/oalsound/alsound.cpp
+++ b/src/sound/oalsound/alsound.cpp
@@ -23,51 +23,23 @@
#define MIN(a, b) (a > b ? b : a)
-
-PLUGIN_INTERFACE(ALSound)
-
-
-std::string ALSound::PluginName()
-{
- return "Sound plugin using OpenAL library to play sounds.";
-}
-
-
-int ALSound::PluginVersion()
-{
- return 2;
-}
-
-
-void ALSound::InstallPlugin()
-{
- auto pointer = CInstanceManager::GetInstancePointer();
- if (pointer != nullptr)
- CInstanceManager::GetInstancePointer()->AddInstance(CLASS_SOUND, this);
-}
-
-
-bool ALSound::UninstallPlugin(std::string &reason)
-{
- auto pointer = CInstanceManager::GetInstancePointer();
- if (pointer != nullptr)
- CInstanceManager::GetInstancePointer()->DeleteInstance(CLASS_SOUND, this);
- CleanUp();
- return true;
-}
-
-
ALSound::ALSound()
{
mEnabled = false;
m3D = false;
mAudioVolume = MAXVOLUME;
mMute = false;
+ auto pointer = CInstanceManager::GetInstancePointer();
+ if (pointer != nullptr)
+ CInstanceManager::GetInstancePointer()->AddInstance(CLASS_SOUND, this);
}
ALSound::~ALSound()
{
+ auto pointer = CInstanceManager::GetInstancePointer();
+ if (pointer != nullptr)
+ CInstanceManager::GetInstancePointer()->DeleteInstance(CLASS_SOUND, this);
CleanUp();
}
@@ -114,14 +86,14 @@ void ALSound::SetSound3D(bool bMode)
}
-bool ALSound::RetSound3D()
+bool ALSound::GetSound3D()
{
// TODO stub! need to be implemented
return true;
}
-bool ALSound::RetSound3DCap()
+bool ALSound::GetSound3DCap()
{
// TODO stub! need to be implemented
return true;
@@ -141,7 +113,7 @@ void ALSound::SetAudioVolume(int volume)
}
-int ALSound::RetAudioVolume()
+int ALSound::GetAudioVolume()
{
float volume;
if ( !mEnabled )
@@ -158,7 +130,7 @@ void ALSound::SetMusicVolume(int volume)
}
-int ALSound::RetMusicVolume()
+int ALSound::GetMusicVolume()
{
// TODO stub! Add music support
if ( !mEnabled )
@@ -179,7 +151,7 @@ bool ALSound::Cache(Sound sound, std::string filename)
}
-int ALSound::RetPriority(Sound sound)
+int ALSound::GetPriority(Sound sound)
{
if ( sound == SOUND_FLYh ||
sound == SOUND_FLY ||
@@ -230,7 +202,7 @@ int ALSound::RetPriority(Sound sound)
bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded)
{
- int priority = RetPriority(sound);
+ int priority = GetPriority(sound);
// Seeks a channel used which sound is stopped.
for (auto it : mChannels) {
@@ -287,7 +259,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded)
int lowerOrEqual = -1;
for (auto it : mChannels) {
if (it.second->GetPriority() < priority) {
- GetLogger()->Info("Sound channel with lower priority will be reused.");
+ GetLogger()->Debug("Sound channel with lower priority will be reused.");
channel = it.first;
return true;
}
@@ -297,7 +269,7 @@ bool ALSound::SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded)
if (lowerOrEqual != -1) {
channel = lowerOrEqual;
- GetLogger()->Info("Sound channel with lower or equal priority will be reused.");
+ GetLogger()->Debug("Sound channel with lower or equal priority will be reused.");
return true;
}
@@ -324,6 +296,8 @@ int ALSound::Play(Sound sound, Math::Vector pos, float amplitude, float frequenc
GetLogger()->Warn("Sound %d was not loaded!\n", sound);
return -1;
}
+
+ GetLogger()->Trace("ALSound::Play sound: %d volume: %f frequency: %f\n", sound, amplitude, frequency);
int channel;
bool bAlreadyLoaded;
@@ -336,12 +310,12 @@ int ALSound::Play(Sound sound, Math::Vector pos, float amplitude, float frequenc
Position(channel, pos);
// setting initial values
- mChannels[channel]->SetStartAmplitude(amplitude);
+ mChannels[channel]->SetStartAmplitude(mAudioVolume);
mChannels[channel]->SetStartFrequency(frequency);
mChannels[channel]->SetChangeFrequency(1.0f);
mChannels[channel]->ResetOper();
- mChannels[channel]->AdjustFrequency(frequency);
- mChannels[channel]->AdjustVolume(mAudioVolume);
+ mChannels[channel]->AdjustFrequency(frequency);
+ mChannels[channel]->AdjustVolume(amplitude * mAudioVolume);
mChannels[channel]->Play();
return channel;
}
@@ -479,17 +453,17 @@ void ALSound::FrameMove(float delta)
it.second->AdjustVolume(volume * mAudioVolume);
// setting frequency
- frequency = progress * (oper.finalFrequency - it.second->GetStartFrequency()) * it.second->GetStartFrequency() * it.second->GetChangeFrequency();
+ frequency = progress * abs(oper.finalFrequency - it.second->GetStartFrequency()) * it.second->GetStartFrequency() * it.second->GetChangeFrequency();
it.second->AdjustFrequency(frequency);
if (it.second->GetEnvelope().totalTime <= it.second->GetCurrentTime()) {
if (oper.nextOper == SOPER_LOOP) {
- GetLogger()->Info("Replay.\n");
+ GetLogger()->Trace("ALSound::FrameMove oper: replay.\n");
it.second->SetCurrentTime(0.0f);
it.second->Play();
} else {
- GetLogger()->Info("Next.\n");
+ GetLogger()->Trace("ALSound::FrameMove oper: next.\n");
it.second->SetStartAmplitude(oper.finalAmplitude);
it.second->SetStartFrequency(oper.finalFrequency);
it.second->PopEnvelope();
diff --git a/src/sound/plugins/oalsound/alsound.h b/src/sound/oalsound/alsound.h
index a1128e0..7d24ba6 100644
--- a/src/sound/plugins/oalsound/alsound.h
+++ b/src/sound/oalsound/alsound.h
@@ -45,13 +45,13 @@ class ALSound : public CSoundInterface
bool RetEnable();
void SetSound3D(bool bMode);
- bool RetSound3D();
- bool RetSound3DCap();
+ bool GetSound3D();
+ bool GetSound3DCap();
void SetAudioVolume(int volume);
- int RetAudioVolume();
+ int GetAudioVolume();
void SetMusicVolume(int volume);
- int RetMusicVolume();
+ int GetMusicVolume();
void SetListener(Math::Vector eye, Math::Vector lookat);
void FrameMove(float rTime);
@@ -80,7 +80,7 @@ class ALSound : public CSoundInterface
private:
void CleanUp();
- int RetPriority(Sound);
+ int GetPriority(Sound);
bool SearchFreeBuffer(Sound sound, int &channel, bool &bAlreadyLoaded);
bool mEnabled;
diff --git a/src/sound/plugins/oalsound/buffer.cpp b/src/sound/oalsound/buffer.cpp
index 37211e9..dbfdca2 100644
--- a/src/sound/plugins/oalsound/buffer.cpp
+++ b/src/sound/oalsound/buffer.cpp
@@ -36,7 +36,7 @@ Buffer::~Buffer() {
bool Buffer::LoadFromFile(std::string filename, Sound sound) {
mSound = sound;
- GetLogger()->Info("Loading audio file: %s\n", filename.c_str());
+ GetLogger()->Debug("Loading audio file: %s\n", filename.c_str());
mBuffer = alutCreateBufferFromFile(filename.c_str());
ALenum error = alutGetError();
@@ -53,7 +53,7 @@ bool Buffer::LoadFromFile(std::string filename, Sound sound) {
alGetBufferi(mBuffer, AL_CHANNELS, &channels);
alGetBufferi(mBuffer, AL_FREQUENCY, &freq);
- mDuration = (ALfloat)size / channels / bits / 8 / (ALfloat)freq;
+ mDuration = static_cast<ALfloat>(size) / channels / bits / 8 / static_cast<ALfloat>(freq);
mLoaded = true;
return true;
diff --git a/src/sound/plugins/oalsound/buffer.h b/src/sound/oalsound/buffer.h
index 8c4a2d3..8c4a2d3 100644
--- a/src/sound/plugins/oalsound/buffer.h
+++ b/src/sound/oalsound/buffer.h
diff --git a/src/sound/plugins/oalsound/channel.cpp b/src/sound/oalsound/channel.cpp
index 4476dee..7d8244b 100644
--- a/src/sound/plugins/oalsound/channel.cpp
+++ b/src/sound/oalsound/channel.cpp
@@ -39,7 +39,7 @@ Channel::~Channel() {
alSourcei(mSource, AL_BUFFER, 0);
alDeleteSources(1, &mSource);
if (alCheck())
- GetLogger()->Warn("Failed to delete sound source. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Failed to delete sound source. Code: %d\n", alGetCode());
}
}
@@ -50,7 +50,7 @@ bool Channel::Play() {
alSourcePlay(mSource);
if (alCheck())
- GetLogger()->Warn("Could not play audio sound source. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not play audio sound source. Code: %d\n", alGetCode());
return true;
}
@@ -61,7 +61,7 @@ bool Channel::SetPosition(Math::Vector pos) {
alSource3f(mSource, AL_POSITION, pos.x, pos.y, pos.z);
if (alCheck()) {
- GetLogger()->Warn("Could not set sound position. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not set sound position. Code: %d\n", alGetCode());
return false;
}
return true;
@@ -75,7 +75,7 @@ bool Channel::SetFrequency(float freq)
alSourcef(mSource, AL_PITCH, freq);
if (alCheck()) {
- GetLogger()->Warn("Could not set sound pitch. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not set sound pitch to '%f'. Code: %d\n", freq, alGetCode());
return false;
}
return true;
@@ -90,7 +90,7 @@ float Channel::GetFrequency()
alGetSourcef(mSource, AL_PITCH, &freq);
if (alCheck()) {
- GetLogger()->Warn("Could not get sound pitch. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not get sound pitch. Code: %d\n", alGetCode());
return 0;
}
@@ -105,7 +105,7 @@ bool Channel::SetVolume(float vol)
alSourcef(mSource, AL_GAIN, vol / MAXVOLUME);
if (alCheck()) {
- GetLogger()->Warn("Could not set sound volume. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not set sound volume to '%f'. Code: %d\n", vol, alGetCode());
return false;
}
return true;
@@ -120,7 +120,7 @@ float Channel::GetVolume()
alGetSourcef(mSource, AL_GAIN, &vol);
if (alCheck()) {
- GetLogger()->Warn("Could not get sound volume. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not get sound volume. Code: %d\n", alGetCode());
return 0;
}
@@ -213,7 +213,7 @@ bool Channel::SetBuffer(Buffer *buffer) {
mBuffer = buffer;
alSourcei(mSource, AL_BUFFER, buffer->GetBuffer());
if (alCheck()) {
- GetLogger()->Warn("Could not set sound buffer. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not set sound buffer. Code: %d\n", alGetCode());
return false;
}
mInitFrequency = GetFrequency();
@@ -227,7 +227,7 @@ void Channel::AdjustFrequency(float freq) {
void Channel::AdjustVolume(float volume) {
- SetVolume(mStartAmplitude * (float) volume);
+ SetVolume(mStartAmplitude * volume);
}
@@ -237,7 +237,7 @@ bool Channel::IsPlaying() {
alGetSourcei(mSource, AL_SOURCE_STATE, &status);
if (alCheck()) {
- GetLogger()->Warn("Could not get sound status. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not get sound status. Code: %d\n", alGetCode());
return false;
}
@@ -253,7 +253,7 @@ bool Channel::IsReady() {
bool Channel::Stop() {
alSourceStop(mSource);
if (alCheck()) {
- GetLogger()->Warn("Could not stop sound. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not stop sound. Code: %d\n", alGetCode());
return false;
}
return true;
@@ -265,7 +265,7 @@ float Channel::GetCurrentTime()
ALfloat current;
alGetSourcef(mSource, AL_SEC_OFFSET, &current);
if (alCheck()) {
- GetLogger()->Warn("Could not get source current play time. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not get source current play time. Code: %d\n", alGetCode());
return 0.0f;
}
return current;
@@ -276,7 +276,7 @@ void Channel::SetCurrentTime(float current)
{
alSourcef(mSource, AL_SEC_OFFSET, current);
if (alCheck())
- GetLogger()->Warn("Could not get source current play time. Code: %s\n", alGetCode());
+ GetLogger()->Warn("Could not get source current play time. Code: %d\n", alGetCode());
}
diff --git a/src/sound/plugins/oalsound/channel.h b/src/sound/oalsound/channel.h
index 165ff50..165ff50 100644
--- a/src/sound/plugins/oalsound/channel.h
+++ b/src/sound/oalsound/channel.h
diff --git a/src/sound/plugins/oalsound/check.h b/src/sound/oalsound/check.h
index cf3e468..cf3e468 100644
--- a/src/sound/plugins/oalsound/check.h
+++ b/src/sound/oalsound/check.h
diff --git a/src/sound/plugins/oalsound/CMakeLists.txt b/src/sound/plugins/oalsound/CMakeLists.txt
deleted file mode 100644
index 0bc9482..0000000
--- a/src/sound/plugins/oalsound/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-set(SOURCES
- alsound.cpp
- buffer.cpp
- channel.cpp
-)
-
-SET (CMAKE_CXX_FLAGS "-Wall -g -std=c++0x -fPIC")
-
-include(FindPkgConfig)
-include(FindOpenAL)
-pkg_check_modules(OPENAL_LIB REQUIRED openal)
-
-set(OPENAL_LIBRARIES
- openal
- alut
-)
-
-include_directories(../../..)
-include_directories(.)
-add_library(openalsound SHARED ${SOURCES})
-target_link_libraries(openalsound ${OPENAL_LIBRARIES})
diff --git a/src/sound/plugins/oalsound/test/CMakeLists.txt b/src/sound/plugins/oalsound/test/CMakeLists.txt
deleted file mode 100644
index d10169b..0000000
--- a/src/sound/plugins/oalsound/test/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-Wall -g -O0 -std=c++11 -rdynamic")
-
-add_executable(plugin_test plugin_test.cpp ../../../../common/iman.cpp ../../../../common/logger.cpp ../../../../plugins/pluginloader.cpp)
-
-include_directories(".")
-include_directories("../../../../")
-
-target_link_libraries(plugin_test ltdl)
diff --git a/src/sound/plugins/oalsound/test/plugin_test.cpp b/src/sound/plugins/oalsound/test/plugin_test.cpp
deleted file mode 100644
index 40c1cd2..0000000
--- a/src/sound/plugins/oalsound/test/plugin_test.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <string>
-#include <cstdio>
-#include <unistd.h>
-
-#include <common/logger.h>
-#include <common/iman.h>
-#include <sound/sound.h>
-#include <plugins/pluginloader.h>
-
-
-int main() {
- new CLogger();
- new CInstanceManager();
-
- lt_dlinit();
-
- CPluginLoader *plugin = new CPluginLoader("libopenalsound");
- if (plugin->LoadPlugin()) {
- CSoundInterface *sound = static_cast<CSoundInterface*>(CInstanceManager::GetInstancePointer()->SearchInstance(CLASS_SOUND));
-
- sound->Create(true);
- sound->CacheAll();
- sound->Play((Sound)8);
- sound->Play((Sound)18);
-
- sleep(10);
- /*
- while (1)
- {
- // just a test, very slow
- plugin->FrameMove(0);
- //if ('n' == getchar())
- // break;
- }*/
- plugin->UnloadPlugin();
- }
-
- lt_dlexit();
- return 0;
-}
diff --git a/src/sound/sound.h b/src/sound/sound.h
index c2b890f..518e2ad 100644
--- a/src/sound/sound.h
+++ b/src/sound/sound.h
@@ -28,8 +28,6 @@
#include "common/iman.h"
#include "common/logger.h"
-#include "plugins/plugininterface.h"
-
#include <string>
#include <iostream>
#include <iomanip>
@@ -152,7 +150,7 @@ enum SoundNext
* \brief Sound plugin interface
*
*/
-class CSoundInterface : public CPluginInterface
+class CSoundInterface
{
public:
inline CSoundInterface() {
@@ -170,7 +168,7 @@ class CSoundInterface : public CPluginInterface
* Function calls \link CSoundInterface::Cache() \endlink for each file
*/
inline void CacheAll(std::string path) {
- for ( int i = 1; i < 69; i++ ) {
+ for ( int i = 1; i <= 81; i++ ) {
std::stringstream filename;
filename << path << "/sound" << std::setfill('0') << std::setw(3) << i << ".wav";
if ( !Cache(static_cast<Sound>(i), filename.str()) )
diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp
index e14b19d..639215a 100644
--- a/src/ui/edit.cpp
+++ b/src/ui/edit.cpp
@@ -243,7 +243,7 @@ bool CEdit::EventProcess(const Event &event)
Scroll(m_lineFirst-3, true);
return true;
}
- if (event.type == EVENT_KEY_DOWN &&
+ if (event.type == EVENT_MOUSE_WHEEL &&
event.mouseWheel.dir == WHEEL_DOWN &&
Detect(event.mousePos) )
{
@@ -282,7 +282,7 @@ bool CEdit::EventProcess(const Event &event)
}
}
- if ( m_scroll != 0 && !m_bGeneric )
+ if ( m_scroll != nullptr && !m_bGeneric )
{
m_scroll->EventProcess(event);
@@ -1248,7 +1248,7 @@ void CEdit::SetText(const char *text, bool bNew)
{
int i, j, font;
bool bBOL;
-
+
if ( !bNew ) UndoMemorize(OPERUNDO_SPEC);
m_len = strlen(text);
@@ -2172,11 +2172,11 @@ void CEdit::Scroll()
{
float value;
- if ( m_scroll != 0 )
+ if ( m_scroll != nullptr )
{
value = m_scroll->GetVisibleValue();
- value *= m_lineTotal-m_lineVisible;
- Scroll(static_cast<int>(value+0.5f), true);
+ value *= m_lineTotal - m_lineVisible;
+ Scroll(static_cast<int>(value + 0.5f), true);
}
}
@@ -3048,7 +3048,7 @@ bool CEdit::MinMaj(bool bMaj)
void CEdit::Justif()
{
- float width, value, size, indentLength;
+ float width, size, indentLength;
int i, j, line, indent;
bool bDual, bString, bRem;
@@ -3176,26 +3176,7 @@ void CEdit::Justif()
m_lineFirst = 0;
}
- if ( m_scroll != 0 )
- {
- if ( m_lineTotal <= m_lineVisible )
- {
- m_scroll->SetVisibleRatio(1.0f);
- m_scroll->SetVisibleValue(0.0f);
- m_scroll->SetArrowStep(0.0f);
- }
- else
- {
- value = static_cast<float>(m_lineVisible/m_lineTotal);
- m_scroll->SetVisibleRatio(value);
-
- value = static_cast<float>(m_lineFirst/(m_lineTotal-m_lineVisible));
- m_scroll->SetVisibleValue(value);
-
- value = static_cast<float>(1.0f/(m_lineTotal-m_lineVisible));
- m_scroll->SetArrowStep(value);
- }
- }
+ UpdateScroll();
m_timeBlink = 0.0f; // lights the cursor immediately
}
@@ -3326,5 +3307,30 @@ bool CEdit::SetFormat(int cursor1, int cursor2, int format)
return true;
}
+void CEdit::UpdateScroll()
+{
+ float value;
+
+ if ( m_scroll != nullptr )
+ {
+ if ( m_lineTotal <= m_lineVisible )
+ {
+ m_scroll->SetVisibleRatio(1.0f);
+ m_scroll->SetVisibleValue(0.0f);
+ m_scroll->SetArrowStep(0.0f);
+ }
+ else
+ {
+ value = static_cast<float>(m_lineVisible) / m_lineTotal;
+ m_scroll->SetVisibleRatio(value);
+
+ value = static_cast<float>(m_lineFirst) / (m_lineTotal - m_lineVisible);
+ m_scroll->SetVisibleValue(value);
+
+ value = 1.0f / (m_lineTotal - m_lineVisible);
+ m_scroll->SetArrowStep(value);
+ }
+ }
+}
}
diff --git a/src/ui/edit.h b/src/ui/edit.h
index 35d8b2c..7247181 100644
--- a/src/ui/edit.h
+++ b/src/ui/edit.h
@@ -234,6 +234,8 @@ protected:
void UndoFlush();
void UndoMemorize(OperUndo oper);
bool UndoRecall();
+
+ void UpdateScroll();
protected:
CScroll* m_scroll; // vertical scrollbar on the right
diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp
index 5136a41..68e7854 100644
--- a/src/ui/maindialog.cpp
+++ b/src/ui/maindialog.cpp
@@ -1164,43 +1164,22 @@ pb->SetState(STATE_SHADOW);
if ( m_phase == PHASE_SETUPd || // setup/display ?
m_phase == PHASE_SETUPds )
{
-
-// TODO: device settings
-#if 0
-
pos.x = ox+sx*3;
pos.y = oy+sy*9;
ddim.x = dim.x*6;
ddim.y = dim.y*1;
- GetResource(RES_TEXT, RT_SETUP_DEVICE, name);
- pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name);
- pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
-
- pos.x = ox+sx*3;
- pos.y = oy+sy*5.2f;
- ddim.x = dim.x*6;
- ddim.y = dim.y*4.5f;
- pli = pw->CreateList(pos, ddim, 0, EVENT_LIST1);
- pli->SetState(STATE_SHADOW);
- UpdateDisplayDevice();
-
- pos.x = ox+sx*10;
- pos.y = oy+sy*9;
- ddim.x = dim.x*6;
- ddim.y = dim.y*1;
GetResource(RES_TEXT, RT_SETUP_MODE, name);
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL2, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
m_setupFull = m_app->GetVideoConfig().fullScreen;
- pos.x = ox+sx*10;
+ pos.x = ox+sx*3;
pos.y = oy+sy*5.2f;
ddim.x = dim.x*6;
ddim.y = dim.y*4.5f;
pli = pw->CreateList(pos, ddim, 0, EVENT_LIST2);
pli->SetState(STATE_SHADOW);
UpdateDisplayMode();
- pli->SetState(STATE_ENABLE, m_setupFull);
ddim.x = dim.x*4;
ddim.y = dim.y*0.5f;
@@ -1209,7 +1188,6 @@ pb->SetState(STATE_SHADOW);
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_FULL);
pc->SetState(STATE_SHADOW);
pc->SetState(STATE_CHECK, m_setupFull);
-#endif
ddim.x = dim.x*6;
ddim.y = dim.y*1;
@@ -2610,19 +2588,16 @@ bool CMainDialog::EventProcess(const Event &event)
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) break;
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_FULL));
- if ( pc == 0 ) break;
- pl = static_cast<CList*>(pw->SearchControl(EVENT_LIST2));
- if ( pl == 0 ) break;
- if ( pc->TestState(STATE_CHECK) )
- {
- pc->ClearState(STATE_CHECK); // window
- pl->ClearState(STATE_ENABLE);
- }
- else
- {
- pc->SetState(STATE_CHECK); // fullscreen
- pl->SetState(STATE_ENABLE);
- }
+ if ( pc == 0 ) break;
+
+ if ( pc->TestState(STATE_CHECK) ) {
+ m_setupFull = false;
+ pc->ClearState(STATE_CHECK);
+ } else {
+ m_setupFull = true;
+ pc->SetState(STATE_CHECK);
+ }
+
UpdateApply();
break;
@@ -2633,7 +2608,8 @@ bool CMainDialog::EventProcess(const Event &event)
if ( pb == 0 ) break;
pb->ClearState(STATE_PRESS);
pb->ClearState(STATE_HILIGHT);
- ChangeDisplay();
+ // TODO: uncomment when changing display is implemented
+ //ChangeDisplay();
UpdateApply();
break;
@@ -2909,12 +2885,12 @@ bool CMainDialog::EventProcess(const Event &event)
case EVENT_INTERFACE_SILENT:
m_sound->SetAudioVolume(0);
- //TODO: m_sound->SetMidiVolume(0);
+ m_sound->SetMusicVolume(0);
UpdateSetupButtons();
break;
case EVENT_INTERFACE_NOISY:
m_sound->SetAudioVolume(MAXVOLUME);
- //TODO: m_sound->SetMidiVolume(MAXVOLUME*3/4);
+ m_sound->SetMusicVolume(MAXVOLUME*3/4);
UpdateSetupButtons();
break;
@@ -4329,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);
@@ -4725,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);
@@ -4772,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);
@@ -4875,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);
@@ -5020,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);
@@ -5076,9 +5052,6 @@ void CMainDialog::UpdateDisplayMode()
{
CWindow* pw;
CList* pl;
- char bufDevices[1000];
- char bufModes[5000];
- int i, j, totalDevices, selectDevices, totalModes, selectModes;
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) return;
@@ -5086,25 +5059,18 @@ void CMainDialog::UpdateDisplayMode()
if ( pl == 0 ) return;
pl->Flush();
- bufModes[0] = 0;
- /* TODO: remove device choice
- m_engine->EnumDevices(bufDevices, 1000,
- bufModes, 5000,
- totalDevices, selectDevices,
- totalModes, selectModes);*/
-
- i = 0;
- j = 0;
- while ( bufModes[i] != 0 )
- {
- pl->SetName(j++, bufModes+i);
- while ( bufModes[i++] != 0 );
+ std::vector<Math::IntPoint> modes;
+ m_app->GetVideoResolutionList(modes, true, true);
+ int i = 0;
+ std::stringstream mode_text;
+ for (Math::IntPoint mode : modes) {
+ mode_text.str("");
+ mode_text << mode.x << "x" << mode.y;
+ pl->SetName(i++, mode_text.str().c_str());
}
- pl->SetSelect(selectModes);
+ pl->SetSelect(m_setupSelMode);
pl->ShowSelect(false);
-
- m_setupSelMode = selectModes;
}
// Change the graphics mode.
@@ -5392,9 +5358,8 @@ void CMainDialog::UpdateSetupButtons()
ps = static_cast<CSlider*>(pw->SearchControl(EVENT_INTERFACE_VOLMUSIC));
if ( ps != 0 )
{
- /* TODO: midi volume
- value = (float)m_sound->GetMidiVolume();
- ps->SetVisibleValue(value);*/
+ value = static_cast<float>(m_sound->GetMusicVolume());
+ ps->SetVisibleValue(value);
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SOUND3D));
@@ -5474,10 +5439,6 @@ void CMainDialog::ChangeSetupButtons()
void CMainDialog::SetupMemorize()
{
- float fValue;
- int iValue, i, j;
- char num[10];
-
GetProfile().SetLocalProfileString("Directory", "scene", m_sceneDir);
GetProfile().SetLocalProfileString("Directory", "savegame", m_savegameDir);
GetProfile().SetLocalProfileString("Directory", "public", m_publicDir);
@@ -5508,15 +5469,27 @@ void CMainDialog::SetupMemorize()
GetProfile().SetLocalProfileInt("Setup", "TextureQuality", m_engine->GetTextureQuality());
GetProfile().SetLocalProfileInt("Setup", "TotoMode", m_engine->GetTotoMode());
GetProfile().SetLocalProfileInt("Setup", "AudioVolume", m_sound->GetAudioVolume());
+ GetProfile().SetLocalProfileInt("Setup", "MusicVolume", m_sound->GetMusicVolume());
GetProfile().SetLocalProfileInt("Setup", "Sound3D", m_sound->GetSound3D());
GetProfile().SetLocalProfileInt("Setup", "EditIndentMode", m_engine->GetEditIndentMode());
GetProfile().SetLocalProfileInt("Setup", "EditIndentValue", m_engine->GetEditIndentValue());
-
-
- // GetProfile()->SetLocalProfileInt("Setup", "NiceMouse", m_engine->GetNiceMouse());
- // GetProfile()->SetLocalProfileInt("Setup", "UseJoystick", m_engine->GetJoystick());
- // GetProfile()->SetLocalProfileInt("Setup", "MidiVolume", m_sound->GetMidiVolume());
-
+
+ /* screen setup */
+ if (m_setupFull)
+ GetProfile().SetLocalProfileInt("Setup", "Fullscreen", 1);
+ else
+ GetProfile().SetLocalProfileInt("Setup", "Fullscreen", 0);
+
+ CList *pl;
+ CWindow *pw;
+ pw = static_cast<CWindow *>(m_interface->SearchControl(EVENT_WINDOW5));
+ if ( pw != 0 ) {
+ pl = static_cast<CList *>(pw->SearchControl(EVENT_LIST2));
+ if ( pl != 0 ) {
+ GetProfile().SetLocalProfileInt("Setup", "Resolution", pl->GetSelect());
+ }
+ }
+
std::stringstream key;
for (int i = 0; i < INPUT_SLOT_MAX; i++)
{
@@ -5724,11 +5697,10 @@ void CMainDialog::SetupRecall()
m_sound->SetAudioVolume(iValue);
}
- // TODO
- // if ( GetLocalProfileInt("Setup", "MidiVolume", iValue) )
- // {
- // m_sound->SetMidiVolume(iValue);
- // }
+ if ( GetProfile().GetLocalProfileInt("Setup", "MusicVolume", iValue) )
+ {
+ m_sound->SetMusicVolume(iValue);
+ }
if ( GetProfile().GetLocalProfileInt("Setup", "EditIndentMode", iValue) )
{
@@ -5772,6 +5744,14 @@ void CMainDialog::SetupRecall()
{
m_bDeleteGamer = iValue;
}
+
+ if ( GetProfile().GetLocalProfileInt("Setup", "Resolution", iValue) ) {
+ m_setupSelMode = iValue;
+ }
+
+ if ( GetProfile().GetLocalProfileInt("Setup", "Fullscreen", iValue) ) {
+ m_setupFull = (iValue == 1);
+ }
}
diff --git a/src/ui/test/CMakeLists.txt b/src/ui/test/CMakeLists.txt
index 9e11e14..e411067 100644
--- a/src/ui/test/CMakeLists.txt
+++ b/src/ui/test/CMakeLists.txt
@@ -1,13 +1,17 @@
cmake_minimum_required(VERSION 2.8)
-set(CMAKE_BUILD_TYPE debug)
-set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wold-style-cast -std=gnu++0x")
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE debug)
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=gnu++0x")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
include_directories(
.
../..
../../..
-${GTEST_DIR}/include
+${GTEST_INCLUDE_DIR}
+${GMOCK_INCLUDE_DIR}
)