Proper plural form translations for ObligatoryToken

master
krzys-h 2016-04-09 16:28:11 +02:00
parent bd9184bd92
commit 14e2910f83
9 changed files with 187 additions and 423 deletions

View File

@ -1,218 +0,0 @@
##
# Patched version of original CMake module
# Added variable GETTEXT_INSTALL_PREFIX to optionally override installation path of resulting translations
##
# - Find GNU gettext tools
# This module looks for the GNU gettext tools. This module defines the
# following values:
# GETTEXT_MSGMERGE_EXECUTABLE: the full path to the msgmerge tool.
# GETTEXT_MSGFMT_EXECUTABLE: the full path to the msgfmt tool.
# GETTEXT_FOUND: True if gettext has been found.
# GETTEXT_VERSION_STRING: the version of gettext found (since CMake 2.8.8)
#
# Additionally it provides the following macros:
# GETTEXT_CREATE_TRANSLATIONS ( outputFile [ALL] file1 ... fileN )
# This will create a target "translations" which will convert the
# given input po files into the binary output mo file. If the
# ALL option is used, the translations will also be created when
# building the default target.
# GETTEXT_PROCESS_POT( <potfile> [ALL] [INSTALL_DESTINATION <destdir>] LANGUAGES <lang1> <lang2> ... )
# Process the given pot file to mo files.
# If INSTALL_DESTINATION is given then automatically install rules will be created,
# the language subdirectory will be taken into account (by default use share/locale/).
# If ALL is specified, the pot file is processed when building the all traget.
# It creates a custom target "potfile".
# GETTEXT_PROCESS_PO_FILES( <lang> [ALL] [INSTALL_DESTINATION <dir>] PO_FILES <po1> <po2> ... )
# Process the given po files to mo files for the given language.
# If INSTALL_DESTINATION is given then automatically install rules will be created,
# the language subdirectory will be taken into account (by default use share/locale/).
# If ALL is specified, the po files are processed when building the all traget.
# It creates a custom target "pofiles".
#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
# Copyright 2007 Alexander Neundorf <neundorf@kde.org>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
find_program(GETTEXT_MSGMERGE_EXECUTABLE msgmerge)
find_program(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
if(GETTEXT_MSGMERGE_EXECUTABLE)
execute_process(COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --version
OUTPUT_VARIABLE gettext_version
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (gettext_version MATCHES "^msgmerge \\(.*\\) [0-9]")
string(REGEX REPLACE "^msgmerge \\([^\\)]*\\) ([0-9\\.]+[^ \n]*).*" "\\1" GETTEXT_VERSION_STRING "${gettext_version}")
endif()
unset(gettext_version)
endif()
set(GETTEXT_INSTALL_PREFIX share/locale)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gettext
REQUIRED_VARS GETTEXT_MSGMERGE_EXECUTABLE GETTEXT_MSGFMT_EXECUTABLE
VERSION_VAR GETTEXT_VERSION_STRING)
include(CMakeParseArguments)
function(_GETTEXT_GET_UNIQUE_TARGET_NAME _name _unique_name)
set(propertyName "_GETTEXT_UNIQUE_COUNTER_${_name}")
get_property(currentCounter GLOBAL PROPERTY "${propertyName}")
if(NOT currentCounter)
set(currentCounter 1)
endif()
set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE)
math(EXPR currentCounter "${currentCounter} + 1")
set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} )
endfunction()
macro(GETTEXT_CREATE_TRANSLATIONS _potFile _firstPoFileArg)
# make it a real variable, so we can modify it here
set(_firstPoFile "${_firstPoFileArg}")
set(_gmoFiles)
get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
set(_addToAll)
if(${_firstPoFile} STREQUAL "ALL")
set(_addToAll "ALL")
set(_firstPoFile)
endif()
foreach (_currentPoFile ${_firstPoFile} ${ARGN})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_abs_PATH ${_absFile} PATH)
get_filename_component(_lang ${_absFile} NAME_WE)
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
add_custom_command(
OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_absFile} ${_absPotFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_absFile}
DEPENDS ${_absPotFile} ${_absFile}
)
install(FILES ${_gmoFile} DESTINATION ${GETTEXT_INSTALL_PREFIX}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
set(_gmoFiles ${_gmoFiles} ${_gmoFile})
endforeach ()
if(NOT TARGET translations)
add_custom_target(translations)
endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName)
add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles})
add_dependencies(translations ${uniqueTargetName})
endmacro()
function(GETTEXT_PROCESS_POT_FILE _potFile)
set(_gmoFiles)
set(_options ALL)
set(_oneValueArgs INSTALL_DESTINATION)
set(_multiValueArgs LANGUAGES)
CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
foreach (_lang ${_parsedArguments_LANGUAGES})
set(_poFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po")
set(_gmoFile "${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo")
add_custom_command(
OUTPUT "${_poFile}"
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -s ${_poFile} ${_absPotFile}
DEPENDS ${_absPotFile}
)
add_custom_command(
OUTPUT "${_gmoFile}"
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile}
DEPENDS ${_absPotFile} ${_poFile}
)
if(_parsedArguments_INSTALL_DESTINATION)
install(FILES ${_gmoFile} DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
endif()
list(APPEND _gmoFiles ${_gmoFile})
endforeach ()
if(NOT TARGET potfiles)
add_custom_target(potfiles)
endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME( potfiles uniqueTargetName)
if(_parsedArguments_ALL)
add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
else()
add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
endif()
add_dependencies(potfiles ${uniqueTargetName})
endfunction()
function(GETTEXT_PROCESS_PO_FILES _lang)
set(_options ALL)
set(_oneValueArgs INSTALL_DESTINATION)
set(_multiValueArgs PO_FILES)
set(_gmoFiles)
CMAKE_PARSE_ARGUMENTS(_parsedArguments "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
foreach(_current_PO_FILE ${_parsedArguments_PO_FILES})
get_filename_component(_name ${_current_PO_FILE} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _basename ${_name})
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo)
add_custom_command(OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_current_PO_FILE}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${_current_PO_FILE}
)
if(_parsedArguments_INSTALL_DESTINATION)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.gmo DESTINATION ${_parsedArguments_INSTALL_DESTINATION}/${_lang}/LC_MESSAGES/ RENAME ${_basename}.mo)
endif()
list(APPEND _gmoFiles ${_gmoFile})
endforeach()
if(NOT TARGET pofiles)
add_custom_target(pofiles)
endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME( pofiles uniqueTargetName)
if(_parsedArguments_ALL)
add_custom_target(${uniqueTargetName} ALL DEPENDS ${_gmoFiles})
else()
add_custom_target(${uniqueTargetName} DEPENDS ${_gmoFiles})
endif()
add_dependencies(pofiles ${uniqueTargetName})
endfunction()

View File

@ -4,11 +4,14 @@ find_package(Gettext REQUIRED)
set(_potFile colobot.pot)
# Extract translations
find_program(XGETTEXT_CMD xgettext)
add_custom_command(OUTPUT ${_potFile}
COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/app/app.cpp --output=${_potFile}
COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --join-existing --keyword=TR --no-location
COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/app/app.cpp --output=${_potFile} --no-wrap
COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/common/restext.cpp --output=${_potFile} --no-wrap --join-existing --no-location --keyword=TR
COMMAND ${XGETTEXT_CMD} ${colobot_SOURCE_DIR}/src/script/script.cpp --output=${_potFile} --no-wrap --join-existing --no-location
COMMAND sed -i -e "s|^\\(\"POT-Creation-Date:\\).*$|\\1 DATE\\\\n\"|" ${_potFile}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@ -18,6 +21,30 @@ add_custom_command(OUTPUT ${_potFile}
add_custom_target(update-pot DEPENDS ${_potFile})
# Generate translations
file(GLOB _poFiles *.po)
set(GETTEXT_INSTALL_PREFIX ${COLOBOT_INSTALL_I18N_DIR})
gettext_create_translations(${_potFile} ALL ${_poFiles})
set(_gmoFiles)
get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
foreach (_currentPoFile ${_poFiles})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_abs_PATH ${_absFile} PATH)
get_filename_component(_lang ${_absFile} NAME_WE)
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
add_custom_command(
OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --no-wrap --update --backup=none -s ${_absFile} ${_absPotFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} --check-format -o ${_gmoFile} ${_absFile}
DEPENDS ${_absPotFile} ${_absFile}
)
install(FILES ${_gmoFile} DESTINATION ${COLOBOT_INSTALL_I18N_DIR}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
set(_gmoFiles ${_gmoFiles} ${_gmoFile})
endforeach()
add_custom_target(translations ALL DEPENDS ${_gmoFiles})

View File

@ -16,6 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
msgid "Colobot rules!"
msgstr ""
@ -370,9 +371,7 @@ msgstr ""
msgid "Film sequences\\Films before and after the missions"
msgstr ""
msgid ""
"Camera border scrolling\\Scrolling when the mouse touches right or left "
"border"
msgid "Camera border scrolling\\Scrolling when the mouse touches right or left border"
msgstr ""
msgid "Mouse inversion X\\Inversion of the scrolling direction on the X axis"
@ -459,8 +458,7 @@ msgstr ""
msgid "Previous object\\Selects the previous object"
msgstr ""
msgid ""
"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgid "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr ""
msgid "Camera closer\\Moves the camera forward"
@ -541,8 +539,7 @@ msgstr ""
msgid "Normal\\Normal sound volume"
msgstr ""
msgid ""
"Access to solution\\Shows the solution (detailed instructions for missions)"
msgid "Access to solution\\Shows the solution (detailed instructions for missions)"
msgstr ""
msgid "Invert\\Invert values on this axis"
@ -1505,8 +1502,7 @@ msgstr ""
msgid "Inappropriate object"
msgstr ""
msgid ""
"The mission is not accomplished yet (press \\key help; for more details)"
msgid "The mission is not accomplished yet (press \\key help; for more details)"
msgstr ""
msgid "Bot destroyed"
@ -1518,14 +1514,6 @@ msgstr ""
msgid "Unable to control enemy objects"
msgstr ""
#, c-format
msgid "You have to use \"%s\" at least %d times in this exercise (used: %d)"
msgstr ""
#, c-format
msgid "You have to use \"%s\" at most %d times in this exercise (used: %d)"
msgstr ""
msgid "Inappropriate bot"
msgstr ""
@ -1792,3 +1780,19 @@ msgstr ""
msgid "Button %1"
msgstr ""
#, c-format
msgid "You have to use \"%1$s\" at least once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)"
msgstr[0] ""
msgstr[1] ""
#, c-format
msgid "You cannot use \"%s\" in this exercise (used: %d)"
msgstr ""
#, c-format
msgid "You have to use \"%1$s\" at most once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)"
msgstr[0] ""
msgstr[1] ""

View File

@ -86,9 +86,7 @@ msgid "<<< Well done; mission accomplished >>>"
msgstr "<<< Bravo, Mission vollendet >>>"
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"
msgstr "Ein Label kann nur vor den Anweisungen \"for\", \"while\", \"do\" oder \"switch\" vorkommen"
msgid "A variable can not be declared twice"
msgstr "Eine Variable wird zum zweiten Mal deklariert"
@ -99,13 +97,11 @@ msgstr "Abbrechen\\Mission abbrechen"
msgid "Access beyond array limit"
msgstr "Zugriff im Array außerhalb der Grenzen"
msgid ""
"Access to solution\\Shows the solution (detailed instructions for missions)"
msgid "Access to solution\\Shows the solution (detailed instructions for missions)"
msgstr "Zeigt die Lösung\\Zeigt nach 3mal Scheitern die Lösung"
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"
msgstr "Lösung zugänglich\\Die Lösung ist im Programmslot \"4: Lösung\" zugänglich"
msgid "Add new program"
msgstr ""
@ -328,11 +324,8 @@ msgid "Camera back\\Moves the camera backward"
msgstr "Kamera weiter\\Bewegung der Kamera rückwärts"
#, fuzzy
msgid ""
"Camera border 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 "Camera border 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 "Camera closer\\Moves the camera forward"
msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
@ -1418,8 +1411,7 @@ msgstr "Spinne tödlich verwundet"
msgid "Stack overflow"
msgstr "Stack overflow"
msgid ""
"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgid "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr "Standardhandlung\\Führt die Standardhandlung des Roboters aus"
msgid "Standard controls\\Standard key functions"
@ -1483,11 +1475,8 @@ msgstr "Der Ausdruck muss einen boolschen Wert ergeben"
msgid "The function returned no value "
msgstr "Die Funktion hat kein Ergebnis zurückgegeben"
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 "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 "The types of the two operands are incompatible "
msgstr "Die zwei Operanden sind nicht kompatibel"
@ -1705,16 +1694,24 @@ msgstr "Sie können keinen radioaktiven Gegenstand tragen"
msgid "You can not carry an object under water"
msgstr "Sie können unter Wasser nichts tragen"
#, fuzzy, c-format
msgid "You cannot use \"%s\" in this exercise (used: %d)"
msgstr "In dieser Übung verboten"
msgid "You found a usable object"
msgstr "Sie haben ein brauchbares Objekt gefunden"
#, c-format
msgid "You have to use \"%s\" at least %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at least once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)"
msgstr[0] "In dieser Übung verboten"
msgstr[1] "In dieser Übung verboten"
#, c-format
msgid "You have to use \"%s\" at most %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at most once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)"
msgstr[0] "In dieser Übung verboten"
msgstr[1] "In dieser Übung verboten"
msgid "You must get on the spaceship to take off "
msgstr "Gehen Sie an Bord, bevor Sie abheben"
@ -1870,9 +1867,6 @@ msgstr ""
#~ msgid "Developed by :"
#~ msgstr "Entwickelt von:"
#~ msgid "Do not use in this exercise"
#~ msgstr "In dieser Übung verboten"
#, fuzzy
#~ msgid "Do you want to quit Colobot: Gold Edition?"
#~ msgstr "Wollen Sie COLOBOT schließen ?"
@ -1931,9 +1925,7 @@ msgstr ""
#~ msgid "Textures\\Quality of textures "
#~ msgstr "Qualität der Texturen\\Qualität der Anzeige"
#~ msgid ""
#~ "The list is only available if a \\l;radar station\\u object\\radar; is "
#~ "working.\n"
#~ 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 "Use a joystick\\Joystick or keyboard"

View File

@ -79,9 +79,7 @@ msgid "<<< Well done; mission accomplished >>>"
msgstr "<<< Bravo; mission terminée >>>"
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\""
msgstr "Un label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou un \"switch\""
msgid "A variable can not be declared twice"
msgstr "Redéfinition d'une variable"
@ -92,8 +90,7 @@ msgstr "Abandonner\\Abandonner la mission en cours"
msgid "Access beyond array limit"
msgstr "Accès hors du tableau"
msgid ""
"Access to solution\\Shows the solution (detailed instructions for missions)"
msgid "Access to solution\\Shows the solution (detailed instructions for missions)"
msgstr "Accès à la solution\\Donne la solution"
msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
@ -148,9 +145,7 @@ msgid "Automatic indent\\When program editing"
msgstr "Indentation automatique\\Pendant l'édition d'un programme"
msgid "Autosave interval\\How often your game will autosave"
msgstr ""
"Intervalle d'auto-sauvegarde\\À quels intervalles les parties vont-t-elles "
"êtres sauvegardées automatiquement"
msgstr "Intervalle d'auto-sauvegarde\\À quels intervalles les parties vont-t-elles êtres sauvegardées automatiquement"
msgid "Autosave slots\\How many autosave slots you'll have"
msgstr "Nombre d'auto-sauvegardes\\Combien d'auto-sauvegarde seront conservées"
@ -320,20 +315,14 @@ msgstr "Caméra plus loin"
msgid "Camera back\\Moves the camera backward"
msgstr "Caméra plus loin\\Recule la caméra"
msgid ""
"Camera border scrolling\\Scrolling when the mouse touches right or left "
"border"
msgstr ""
"Défilement dans les bords\\Défilement lorsque la souris touche les bords "
"gauche ou droite"
msgid "Camera border scrolling\\Scrolling when the mouse touches right or left border"
msgstr "Défilement dans les bords\\Défilement lorsque la souris touche les bords gauche ou droite"
msgid "Camera closer\\Moves the camera forward"
msgstr "Caméra plus proche\\Avance la caméra"
msgid "Camera down\\Decrease camera angle while visiting message origin"
msgstr ""
"Caméra plus basse\\Réduit l'angle de caméra lors de la vue de l'origine des "
"messages"
msgstr "Caméra plus basse\\Réduit l'angle de caméra lors de la vue de l'origine des messages"
msgid "Camera nearest"
msgstr "Caméra plus proche"
@ -345,9 +334,7 @@ msgid "Camera to right"
msgstr "Caméra à droite"
msgid "Camera up\\Increase camera angle while visiting message origin"
msgstr ""
"Caméra plus haute\\Augmente l'angle de caméra lors de la vue de l'origine "
"des messages"
msgstr "Caméra plus haute\\Augmente l'angle de caméra lors de la vue de l'origine des messages"
msgid "Can not produce not researched object"
msgstr "Impossible de créer un objet n'ayant pas été recherché"
@ -401,8 +388,7 @@ msgid "Code battles"
msgstr "Batailles de code"
msgid "Code battles\\Program your robot to be the best of them all!"
msgstr ""
"Batailles de code\\Programmez votre robot pour être le meilleur entre tous!"
msgstr "Batailles de code\\Programmez votre robot pour être le meilleur entre tous!"
msgid "Colobot rules!"
msgstr "Colobot est super!"
@ -851,12 +837,10 @@ msgid "Missions\\Select mission"
msgstr "Missions\\La grande aventure"
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"
msgstr "Inversion souris X\\Inversion de la rotation lorsque la souris touche un bord"
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"
msgstr "Inversion souris Y\\Inversion de la rotation lorsque la souris touche un bord"
msgid "Move selected program down"
msgstr "Déplace le programme sélectionné vers le bas"
@ -1306,9 +1290,7 @@ msgid "Semicolon terminator missing"
msgstr "Terminateur point-virgule non trouvé"
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
"Résolution des ombres\\Plus grand implique une meilleure qulité et "
"amplitude, mais plus lent"
msgstr "Résolution des ombres\\Plus grand implique une meilleure qulité et amplitude, mais plus lent"
msgid "Shield level"
msgstr "Niveau du bouclier"
@ -1403,8 +1385,7 @@ msgstr "Araignée mortellement touchée"
msgid "Stack overflow"
msgstr "Débordement de la pile"
msgid ""
"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgid "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr "Action standard\\Action du bouton avec le cadre rouge"
msgid "Standard controls\\Standard key functions"
@ -1467,10 +1448,8 @@ msgstr "L'expression doit ętre un boolean"
msgid "The function returned no value "
msgstr "La fonction n'a pas retourné de résultat"
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 "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 "The types of the two operands are incompatible "
msgstr "Les deux opérandes ne sont pas de types compatibles"
@ -1491,9 +1470,7 @@ msgid "This label does not exist"
msgstr "Cette étiquette n'existe pas"
msgid "This menu is for userlevels from mods, but you didn't install any"
msgstr ""
"Ce menu donne accès aux niveaux spéciaux (importés ou personnalisés), mais "
"aucun n'est installé."
msgstr "Ce menu donne accès aux niveaux spéciaux (importés ou personnalisés), mais aucun n'est installé."
msgid "This object is not a member of a class"
msgstr "L'objet n'est pas une instance d'une classe"
@ -1682,8 +1659,7 @@ msgid "Yes"
msgstr "Oui"
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;)"
msgstr "Il est possible de voler avec les touches (\\key gup;) et (\\key gdown;)"
msgid "You can not carry a radioactive object"
msgstr "Vous ne pouvez pas transporter un objet radioactif"
@ -1691,16 +1667,24 @@ msgstr "Vous ne pouvez pas transporter un objet radioactif"
msgid "You can not carry an object under water"
msgstr "Vous ne pouvez pas transporter un objet sous l'eau"
#, fuzzy, c-format
msgid "You cannot use \"%s\" in this exercise (used: %d)"
msgstr "Interdit dans cet exercice"
msgid "You found a usable object"
msgstr "Vous avez trouvé un objet utilisable"
#, c-format
msgid "You have to use \"%s\" at least %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at least once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)"
msgstr[0] "Interdit dans cet exercice"
msgstr[1] "Interdit dans cet exercice"
#, c-format
msgid "You have to use \"%s\" at most %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at most once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)"
msgstr[0] "Interdit dans cet exercice"
msgstr[1] "Interdit dans cet exercice"
msgid "You must get on the spaceship to take off "
msgstr "Vous devez embarquer pour pouvoir décoller"
@ -1855,9 +1839,6 @@ msgstr ""
#~ msgid "Developed by :"
#~ msgstr "Développé par :"
#~ msgid "Do not use in this exercise"
#~ msgstr "Interdit dans cet exercice"
#, fuzzy
#~ msgid "Do you want to quit Colobot: Gold Edition?"
#~ msgstr "Voulez-vous quitter COLOBOT ?"
@ -1919,9 +1900,7 @@ msgstr ""
#~ msgid "Textures\\Quality of textures "
#~ msgstr "Qualité des textures\\Qualité des images"
#~ msgid ""
#~ "The list is only available if a \\l;radar station\\u object\\radar; is "
#~ "working.\n"
#~ 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 "Use a joystick\\Joystick or keyboard"

View File

@ -14,12 +14,9 @@ msgstr ""
"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"
"X-Generator: Pootle 2.5.1.1\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"
"X-POOTLE-MTIME: 1405002617.000000\n"
msgid " Challenges in the chapter:"
msgstr " Wyzwania w tym rozdziale:"
@ -96,11 +93,8 @@ msgstr "Przerwij\\Przerywa bieżącą misję"
msgid "Access beyond array limit"
msgstr "Dostęp poza tablicę"
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 "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 "Access to solutions\\Show program \"4: Solution\" in the exercises"
msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices"
@ -154,14 +148,10 @@ msgid "Automatic indent\\When program editing"
msgstr "Automatyczne wcięcia\\Automatyczne wcięcia podczas edycji programu"
msgid "Autosave interval\\How often your game will autosave"
msgstr ""
"Częstotliwość autozapisu\\Jak często gra będzie automatycznie zapisywać twój "
"postęp"
msgstr "Częstotliwość autozapisu\\Jak często gra będzie automatycznie zapisywać twój postęp"
msgid "Autosave slots\\How many autosave slots you'll have"
msgstr ""
"Sloty autozapisów\\Określa ile slotów na automatyczne zapisy będzie "
"dostępnych"
msgstr "Sloty autozapisów\\Określa ile slotów na automatyczne zapisy będzie dostępnych"
msgid "Autosave\\Enables autosave"
msgstr "Autozapis\\Włącza automatyczny zapis"
@ -182,9 +172,7 @@ msgid "Bad argument for \"new\""
msgstr "Zły argument dla funkcji \"new\""
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"
msgstr "Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez klamry"
msgid "Black box"
msgstr "Czarna skrzynka"
@ -330,12 +318,8 @@ msgstr "Camera awayest"
msgid "Camera back\\Moves the camera backward"
msgstr "Kamera dalej\\Oddala kamerę"
msgid ""
"Camera border scrolling\\Scrolling when the mouse touches right or left "
"border"
msgstr ""
"Przewijanie kamery przy krawędzi\\Ekran jest przewijany gdy mysz dotknie "
"prawej lub lewej jego krawędzi"
msgid "Camera border scrolling\\Scrolling when the mouse touches right or left border"
msgstr "Przewijanie kamery przy krawędzi\\Ekran jest przewijany gdy mysz dotknie prawej lub lewej jego krawędzi"
msgid "Camera closer\\Moves the camera forward"
msgstr "Kamera bliżej\\Przybliża kamerę"
@ -407,8 +391,7 @@ msgid "Code battles"
msgstr "Programobitwy"
msgid "Code battles\\Program your robot to be the best of them all!"
msgstr ""
"Programobitwy\\Zaprogramuj swego robota by był najlepszy ze wszystkich!"
msgstr "Programobitwy\\Zaprogramuj swego robota by był najlepszy ze wszystkich!"
msgid "Colobot rules!"
msgstr "Colobot rządzi!"
@ -683,8 +666,7 @@ msgid "Help balloons\\Explain the function of the buttons"
msgstr "Dymki pomocy\\Wyjaśnia funkcje przycisków"
msgid "Highest\\Highest graphic quality (lowest frame rate)"
msgstr ""
"Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)"
msgstr "Najwyższa\\Maksymalna jakość grafiki (najniższa częstotliwość odświeżania)"
msgid "Home"
msgstr "Początek"
@ -831,8 +813,7 @@ msgid "Loading terrain"
msgstr "Wczytywanie terenu"
msgid "Lowest\\Minimum graphic quality (highest frame rate)"
msgstr ""
"Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)"
msgstr "Najniższa\\Minimalna jakość grafiki (najwyższa częstotliwość odświeżania)"
msgid "Lunar Roving Vehicle"
msgstr "Pojazd Księżycowy"
@ -1033,8 +1014,7 @@ msgid "Organic matter"
msgstr "Materia organiczna"
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ść"
msgstr "Miejsce nadania wiadomości\\Pokazuje skąd została wysłana ostatnia wiadomość"
msgid "Original game developed by:"
msgstr "Twórcy oryginalnej gry:"
@ -1118,8 +1098,7 @@ msgid "Practice bot"
msgstr "Robot treningowy"
msgid "Press \\key help; to read instructions on your SatCom"
msgstr ""
"Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom"
msgstr "Naciśnij klawisz \\key help; aby wyświetlić rozkazy na przekaźniku SatCom"
msgid "Previous"
msgstr "Poprzedni"
@ -1314,9 +1293,7 @@ msgid "Semicolon terminator missing"
msgstr "Brak średnika na końcu wiersza"
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
"Rozdzielczość cieni\\Wyższa wartość oznacza wyższy zasięg i jakość, ale jest "
"wolniejsza"
msgstr "Rozdzielczość cieni\\Wyższa wartość oznacza wyższy zasięg i jakość, ale jest wolniejsza"
msgid "Shield level"
msgstr "Poziom osłony"
@ -1411,11 +1388,8 @@ msgstr "Pająk śmiertelnie raniony"
msgid "Stack overflow"
msgstr "Przepełnienie stosu"
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 "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr "Standardowa akcja\\Standardowa akcja robota (podnieś/upuść, strzelaj, szukaj, itp.)"
msgid "Standard controls\\Standard key functions"
msgstr "Standardowa kontrola\\Standardowe klawisze funkcyjne"
@ -1477,8 +1451,7 @@ msgstr "Wyrażenie musi zwrócić wartość logiczną"
msgid "The function returned no value "
msgstr "Funkcja nie zwróciła żadnej wartości "
msgid ""
"The mission is not accomplished yet (press \\key help; for more details)"
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 "The types of the two operands are incompatible "
@ -1500,9 +1473,7 @@ msgid "This label does not exist"
msgstr "Taka etykieta nie istnieje"
msgid "This menu is for userlevels from mods, but you didn't install any"
msgstr ""
"To menu jest przeznaczone na poziomy użytkownika z modyfikacji, ale żadne "
"nie są zainstalowane"
msgstr "To menu jest przeznaczone na poziomy użytkownika z modyfikacji, ale żadne nie są zainstalowane"
msgid "This object is not a member of a class"
msgstr "Ten obiekt nie jest członkiem klasy"
@ -1699,16 +1670,26 @@ msgstr "Nie możesz przenosić przedmiotów radioaktywnych"
msgid "You can not carry an object under water"
msgstr "Nie możesz przenosić przedmiotów pod wodą"
#, c-format
msgid "You cannot use \"%s\" in this exercise (used: %d)"
msgstr "Nie możesz użyć \"%s\" w tym ćwiczeniu (użyto: %d)"
msgid "You found a usable object"
msgstr "Znaleziono użyteczny przedmiot"
#, c-format
msgid "You have to use \"%s\" at least %d times in this exercise (used: %d)"
msgstr "Musisz użyć \"%s\" przynajmniej %d razy w tym ćwiczeniu (użyto: %d)"
msgid "You have to use \"%1$s\" at least once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)"
msgstr[0] "Musisz użyć \"%1$s\" przynajmniej raz w tym ćwiczeniu (użyto: %2$d)"
msgstr[1] "Musisz użyć \"%1$s\" przynajmniej %3$d razy w tym ćwiczeniu (użyto: %2$d)"
msgstr[2] "Musisz użyć \"%1$s\" przynajmniej %3$d razy w tym ćwiczeniu (użyto: %2$d)"
#, c-format
msgid "You have to use \"%s\" at most %d times in this exercise (used: %d)"
msgstr "Musisz użyć \"%s\" najwyżej %d razy w tym ćwiczeniu (użyto: %d)"
msgid "You have to use \"%1$s\" at most once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)"
msgstr[0] "Możesz użyć \"%1$s\" najwyżej raz w tym ćwiczeniu (użyto: %2$d)"
msgstr[1] "Możesz użyć \"%1$s\" najwyżej %3$d razy w tym ćwiczeniu (użyto: %2$d)"
msgstr[2] "Możesz użyć \"%1$s\" najwyżej %3$d razy w tym ćwiczeniu (użyto: %2$d)"
msgid "You must get on the spaceship to take off "
msgstr "Musisz być na statku kosmicznym aby nim odlecieć"
@ -1867,8 +1848,7 @@ msgstr ""
#~ msgstr "Nieodpowiedni teren"
#~ msgid "Key word help\\More detailed help about key words"
#~ msgstr ""
#~ "Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych"
#~ msgstr "Pomoc dot. słów kluczowych\\Dokładniejsza pomoc na temat słów kluczowych"
#~ msgid "Loading programs"
#~ msgstr "Wczytywanie programów"
@ -1886,8 +1866,7 @@ msgstr ""
#~ msgstr "Wciąż za mało energii"
#~ msgid "Num of decorative objects\\Number of purely ornamental objects"
#~ msgstr ""
#~ "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych"
#~ msgstr "Ilość elementów dekoracyjnych \\Ilość elementów czysto dekoracyjnych"
#~ msgid "Object not found"
#~ msgstr "Obiekt nieznany"
@ -1913,12 +1892,8 @@ msgstr ""
#~ msgid "Textures\\Quality of textures "
#~ msgstr "Tekstury\\Jakość tekstur "
#~ 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 "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 "Use a joystick\\Joystick or keyboard"
#~ msgstr "Używaj joysticka\\Joystick lub klawiatura"

View File

@ -95,8 +95,7 @@ msgstr "Выход\\Прервать текущую миссию"
msgid "Access beyond array limit"
msgstr "Доступ к массиву за предел"
msgid ""
"Access to solution\\Shows the solution (detailed instructions for missions)"
msgid "Access to solution\\Shows the solution (detailed instructions for missions)"
msgstr "Доступ к решению\\Показывает решение (подробные инструкции для миссий)"
msgid "Access to solutions\\Show program \"4: Solution\" in the exercises"
@ -323,9 +322,7 @@ msgid "Camera back\\Moves the camera backward"
msgstr "Отдалить камеру\\Перемещение камеры назад"
#, fuzzy
msgid ""
"Camera border scrolling\\Scrolling when the mouse touches right or left "
"border"
msgid "Camera border scrolling\\Scrolling when the mouse touches right or left border"
msgstr "Прокрутка\\Прокрутка, когда указатель мыши касается граней экрана"
msgid "Camera closer\\Moves the camera forward"
@ -1027,9 +1024,7 @@ msgid "Organic matter"
msgstr "Органическое вещество"
msgid "Origin of last message\\Shows where the last message was sent from"
msgstr ""
"Источник сообщения\\Показывает место, откуда было отправлено последнеее "
"сообщение"
msgstr "Источник сообщения\\Показывает место, откуда было отправлено последнеее сообщение"
msgid "Original game developed by:"
msgstr "Оригинальная игра была разработана:"
@ -1156,8 +1151,7 @@ msgid "Programming help (\\key prog;)"
msgstr "Помощь в программировании (\\key prog;)"
msgid "Programming help\\Gives more detailed help with programming"
msgstr ""
"Помощь в программировании\\Дает более детальную помощь в программировании"
msgstr "Помощь в программировании\\Дает более детальную помощь в программировании"
msgid "Programs dispatched by Houston"
msgstr "Программы переданные с Хьюстона"
@ -1408,11 +1402,8 @@ msgstr "Паук смертельно ранен"
msgid "Stack overflow"
msgstr "Переполнение стека"
msgid ""
"Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr ""
"Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, "
"искать и т.д.)"
msgid "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
msgstr "Стандартное действие\\Стандартное действие бота (брать/взять, стрелять, искать и т.д.)"
msgid "Standard controls\\Standard key functions"
msgstr "Стандартное управление\\Сделать управление по умолчанию"
@ -1475,10 +1466,8 @@ msgstr "Выражение должно возвращать логическо
msgid "The function returned no value "
msgstr "Функция не возвратила значения"
msgid ""
"The mission is not accomplished yet (press \\key help; for more details)"
msgstr ""
"Миссия еще не выполнена (нажмите \\key help; для более подробной информации)"
msgid "The mission is not accomplished yet (press \\key help; for more details)"
msgstr "Миссия еще не выполнена (нажмите \\key help; для более подробной информации)"
msgid "The types of the two operands are incompatible "
msgstr "Типы операндов несовместимы"
@ -1696,16 +1685,24 @@ msgstr "Вы не можете нести радиоактивные объек
msgid "You can not carry an object under water"
msgstr "Вы не можете нести объекты под водой"
#, fuzzy, c-format
msgid "You cannot use \"%s\" in this exercise (used: %d)"
msgstr "Не используй в этом упражнении"
msgid "You found a usable object"
msgstr "Вы нашли рабочий объект"
#, c-format
msgid "You have to use \"%s\" at least %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at least once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)"
msgstr[0] "Не используй в этом упражнении"
msgstr[1] "Не используй в этом упражнении"
#, c-format
msgid "You have to use \"%s\" at most %d times in this exercise (used: %d)"
msgstr ""
#, fuzzy, c-format
msgid "You have to use \"%1$s\" at most once in this exercise (used: %2$d)"
msgid_plural "You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)"
msgstr[0] "Не используй в этом упражнении"
msgstr[1] "Не используй в этом упражнении"
msgid "You must get on the spaceship to take off "
msgstr "Вы должны быть на борту корабля, чтобы взлететь"
@ -1861,9 +1858,6 @@ msgstr ""
#~ msgid "Developed by :"
#~ msgstr "Разработка :"
#~ msgid "Do not use in this exercise"
#~ msgstr "Не используй в этом упражнении"
#, fuzzy
#~ msgid "Do you want to quit Colobot: Gold Edition?"
#~ msgstr "Вы хотите закрыть COLOBOT?"
@ -1922,11 +1916,8 @@ msgstr ""
#~ msgid "Textures\\Quality of textures "
#~ msgstr "Текстуры\\Качество текстур "
#~ msgid ""
#~ "The list is only available if a \\l;radar station\\u object\\radar; is "
#~ "working.\n"
#~ msgstr ""
#~ "Список доступен только если \\l;radar station\\u object\\radar; работают\n"
#~ msgid "The list is only available if a \\l;radar station\\u object\\radar; is working.\n"
#~ msgstr "Список доступен только если \\l;radar station\\u object\\radar; работают\n"
#~ msgid "Use a joystick\\Joystick or keyboard"
#~ msgstr "Использовать джойстик\\Джойстик или клавиатура"

View File

@ -632,8 +632,6 @@ void InitializeRestext()
stringsErr[ERR_DELETEMOBILE] = TR("Bot destroyed");
stringsErr[ERR_DELETEBUILDING] = TR("Building destroyed");
stringsErr[ERR_ENEMY_OBJECT] = TR("Unable to control enemy objects");
stringsErr[ERR_OBLIGATORYTOKEN] = TR("You have to use \"%s\" at least %d times in this exercise (used: %d)");
stringsErr[ERR_PROHIBITEDTOKEN] = TR("You have to use \"%s\" at most %d times in this exercise (used: %d)");
stringsErr[ERR_WRONG_BOT] = TR("Inappropriate bot");
stringsErr[INFO_BUILD] = TR("Building completed");

View File

@ -44,6 +44,7 @@
#include "ui/controls/interface.h"
#include "ui/controls/list.h"
#include <libintl.h>
const int CBOT_IPF = 100; // CBOT: default number of instructions / frame
@ -774,13 +775,28 @@ void CScript::GetError(std::string& error)
}
else
{
if ( m_error == static_cast<CBot::CBotError>(ERR_OBLIGATORYTOKEN) || m_error == static_cast<CBot::CBotError>(ERR_PROHIBITEDTOKEN) )
if (m_error == static_cast<CBot::CBotError>(ERR_OBLIGATORYTOKEN))
{
std::string s;
GetResource(RES_ERR, m_error, s);
error = StrUtils::Format(s.c_str(), m_token.c_str(), m_tokenAllowed, m_tokenUsed);
error = StrUtils::Format(ngettext(
"You have to use \"%1$s\" at least once in this exercise (used: %2$d)",
"You have to use \"%1$s\" at least %3$d times in this exercise (used: %2$d)",
m_tokenAllowed), m_token.c_str(), m_tokenUsed, m_tokenAllowed);
}
else if ( m_error < 1000 )
else if (m_error == static_cast<CBot::CBotError>(ERR_PROHIBITEDTOKEN))
{
if (m_tokenAllowed == 0)
{
error = StrUtils::Format(gettext("You cannot use \"%s\" in this exercise (used: %d)"), m_token.c_str(), m_tokenUsed);
}
else
{
error = StrUtils::Format(ngettext(
"You have to use \"%1$s\" at most once in this exercise (used: %2$d)",
"You have to use \"%1$s\" at most %3$d times in this exercise (used: %2$d)",
m_tokenAllowed), m_token.c_str(), m_tokenUsed, m_tokenAllowed);
}
}
else if (m_error < 1000)
{
GetResource(RES_ERR, m_error, error);
}