From a9bc2cc70f73713d24c88d6d5ae6835b8430ea08 Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Mon, 17 Dec 2012 08:15:17 +0100 Subject: Move README to Markdown format --- README.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.txt | 87 ----------------------------------------------------------- 2 files changed, 91 insertions(+), 87 deletions(-) create mode 100644 README.md delete mode 100644 README.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..994fce1 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# English + +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. + +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 (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 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 + +Our main goals can be summed up in three milestones: + +### 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 also be found at http://colobot.info/files/. + +### 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. + +### 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 + +For these instructions see HOWTO.txt file. + + +## Contact + +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 + +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. + +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 (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 + +Nasze główne cele można podsumować w trzech cel, które chcemy osiągnąć: + +### 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 + +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. + +### 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 + +Instrukcje te znajdują się w pliku HOWTO.txt. + + +## Kontakt + +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/README.txt b/README.txt deleted file mode 100644 index 64b5a14..0000000 --- a/README.txt +++ /dev/null @@ -1,87 +0,0 @@ -EN - -Welcome to Colobot project 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. - -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 (in English) can be found at developer wiki at: https://colobot.info/wiki/Dev:Main_Page. However, the freshest source of information is our IRC channel #colobot at pirc.pl. - -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 - -Our main goals can be summed up in three milestones: - -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 also be found at http://colobot.info/files/. - -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. - -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 - -For these instructions see HOWTO.txt file. - - -Contact - -If you want to help in the project, please contact us on our IRC channel #colobot at pirc.pl (Polish or English) 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're be done soon. - - - -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. - -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 (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 - -Nasze główne cele można podsumować w trzech cel, które chcemy osiągnąć: - -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 - -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. - -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 - -Instrukcje te znajdują się w pliku HOWTO.txt. - - -Kontakt - -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. -- cgit v1.2.3-1-g7c22 From cf65681f8029c2c1e5f18cc3776bdb09c8bd1db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Thu, 27 Dec 2012 12:55:59 +0100 Subject: Revert "Merge branch 'dev-desktop-file-man' of https://github.com/OdyX/colobot" This reverts commit 9f3acdcdde36ece74a848370776b2751d20f1c3d, reversing changes made to fb13c0f219282ef888562fb0fcbbeefd915307d4. --- src/desktop/.gitignore | 1 - src/desktop/CMakeLists.txt | 47 -------------- src/desktop/colobot.pod | 47 -------------- src/desktop/po/colobot-desktop.pot | 106 +------------------------------ src/desktop/po/fr.po | 127 +------------------------------------ src/desktop/po4a.cfg | 1 - 6 files changed, 5 insertions(+), 324 deletions(-) delete mode 100644 src/desktop/.gitignore delete mode 100644 src/desktop/colobot.pod diff --git a/src/desktop/.gitignore b/src/desktop/.gitignore deleted file mode 100644 index bade6f3..0000000 --- a/src/desktop/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lang/ diff --git a/src/desktop/CMakeLists.txt b/src/desktop/CMakeLists.txt index 1e5058f..cc159a9 100644 --- a/src/desktop/CMakeLists.txt +++ b/src/desktop/CMakeLists.txt @@ -37,40 +37,6 @@ if(RSVG_CONVERT) 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 - ${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} 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) @@ -80,17 +46,4 @@ if(PO4A) 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.pod b/src/desktop/colobot.pod deleted file mode 100644 index 2fc3a00..0000000 --- a/src/desktop/colobot.pod +++ /dev/null @@ -1,47 +0,0 @@ -=encoding utf8 - -=head1 COLOBOT - -colobot - educational programming strategy game - -=head1 SYNOPSIS - -B [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-language> I] - -=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 - -Set custom data directory path - -=item B<-debug> - -Enable debug mode (more info printed in logs) - -=item B<-loglevel> I - -Set log level. Possible choices are: trace, debug, info, warn, error, none. - -=item B<-language> I - -Set language. Note that you can also fill the B environment variable. - -=back - -=head1 AUTHOR - -This manpage was written by Didier Raboud >. diff --git a/src/desktop/po/colobot-desktop.pot b/src/desktop/po/colobot-desktop.pot index 17e60c3..e74136a 100644 --- a/src/desktop/po/colobot-desktop.pot +++ b/src/desktop/po/colobot-desktop.pot @@ -7,13 +7,13 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2012-12-27 10:59+0100\n" +"POT-Creation-Date: 2012-12-26 15:05+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: colobot.ini:1 @@ -30,105 +30,3 @@ msgstr "" #, 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 [B<-datadir> I] [B<-debug>] [B<-loglevel> I] " -"[B<-language> I]" -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" -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" -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" -msgstr "" - -#. type: textblock -#: colobot.pod:41 -msgid "Set language. Note that you can also fill the B environment variable." -msgstr "" - -#. type: =head1 -#: colobot.pod:45 -msgid "AUTHOR" -msgstr "" - -#. type: textblock -#: colobot.pod:47 -msgid "This manpage was written by Didier Raboud >." -msgstr "" diff --git a/src/desktop/po/fr.po b/src/desktop/po/fr.po index 4709d49..63dbb23 100644 --- a/src/desktop/po/fr.po +++ b/src/desktop/po/fr.po @@ -1,13 +1,13 @@ # French translations for PACKAGE package # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2012. # -# Didier Raboud , 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" +"POT-Creation-Date: 2012-12-26 15:05+0100\n" +"PO-Revision-Date: 2012-12-26 15:05+0100\n" "Last-Translator: Didier Raboud \n" "Language-Team: none\n" "Language: fr\n" @@ -30,124 +30,3 @@ msgstr "Apprentissage de la programmation par le jeu" #, 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 [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-" -"language> I]" -msgstr "" -"B [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-" -"language> I]" - -#. 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" -msgstr "B<-datadir> F" - -#. 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" -msgstr "B<-loglevel> I" - -#. 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" -msgstr "B<-language> I" - -#. type: textblock -#: colobot.pod:41 -msgid "" -"Set language. Note that you can also fill the B environment variable." -msgstr "" -"Définit la langue. Il est aussi possible d'utiliser la variable " -"d'environnement B." - -#. type: =head1 -#: colobot.pod:45 -msgid "AUTHOR" -msgstr "Auteur" - -#. type: textblock -#: colobot.pod:47 -msgid "This manpage was written by Didier Raboud >." -msgstr "" -"Cette page de manuel a été écrite et traduite par Didier Raboud " -">." - diff --git a/src/desktop/po4a.cfg b/src/desktop/po4a.cfg index c251959..eda2985 100644 --- a/src/desktop/po4a.cfg +++ b/src/desktop/po4a.cfg @@ -1,4 +1,3 @@ [po_directory] po/ [type:ini] colobot.ini $lang:lang/$lang/colobot.ini -[type:pod] colobot.pod $lang:lang/$lang/colobot.pod -- cgit v1.2.3-1-g7c22 From a134cb75c5dd2570b9aeb1530701086d4f3f593d Mon Sep 17 00:00:00 2001 From: Piotr Dziwinski Date: Sat, 29 Dec 2012 15:01:57 +0100 Subject: Merge of master and dev --- CMakeLists.txt | 38 ++++- src/CBot/CBotString.cpp | 54 +++---- src/app/app.cpp | 165 +++++++++++++++------- src/app/app.h | 9 +- src/common/config.h.cmake | 4 + src/common/image.cpp | 4 +- src/common/restext.cpp | 4 +- src/desktop/.gitignore | 1 + src/desktop/CMakeLists.txt | 48 +++++++ src/desktop/colobot.pod | 47 +++++++ src/desktop/po/colobot-desktop.pot | 106 +++++++++++++- src/desktop/po/fr.po | 127 ++++++++++++++++- src/desktop/po4a.cfg | 1 + src/graphics/engine/text.cpp | 2 +- src/object/brain.cpp | 27 ++-- src/object/robotmain.cpp | 8 +- src/object/task/taskgoto.cpp | 4 +- src/po/CMakeLists.txt | 5 +- src/po/colobot.pot | 100 +++++++++++-- src/po/de.po | 117 +++++++++++++--- src/po/fr.po | 279 +++++++++++++++++++++++-------------- src/po/pl.po | 117 +++++++++++++--- src/script/script.cpp | 33 +++-- src/sound/oalsound/alsound.cpp | 14 +- src/sound/oalsound/channel.cpp | 24 ++-- src/sound/sound.h | 2 +- src/ui/edit.cpp | 60 ++++---- src/ui/edit.h | 2 + src/ui/maindialog.cpp | 20 +-- 29 files changed, 1082 insertions(+), 340 deletions(-) create mode 100644 src/desktop/.gitignore create mode 100644 src/desktop/colobot.pod diff --git a/CMakeLists.txt b/CMakeLists.txt index a80e7d3..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") @@ -127,7 +153,7 @@ if(${TESTS}) add_definitions(-DTEST_VIRTUAL=virtual) enable_testing() else() - add_definitions(-DTEST_VIRTUAL) + add_definitions(-DTEST_VIRTUAL=) endif() @@ -183,11 +209,11 @@ if(${TESTS}) endif() # Installation paths defined before compiling sources -set(COLOBOT_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/games CACHE PATH "Colobot binary directory") -set(COLOBOT_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/games/colobot CACHE PATH "Colobot shared data directory") -set(COLOBOT_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/colobot CACHE PATH "Colobot libraries directory") -set(COLOBOT_INSTALL_DOC_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/colobot CACHE PATH "Colobot documentation directory") -set(COLOBOT_INSTALL_I18N_DIR ${CMAKE_INSTALL_PREFIX}/share/locale CACHE PATH "Colobot translations directory") +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) 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(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(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(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(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(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(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(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(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(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(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(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/app/app.cpp b/src/app/app.cpp index 118e100..c936ac1 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -246,7 +246,7 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[]) else if (arg == "-help") { GetLogger()->Message("\n"); - GetLogger()->Message("COLOBOT GOLD pre-alpha\n"); + GetLogger()->Message("Colobot %s (%s)\n",COLOBOT_CODENAME,COLOBOT_VERSION); GetLogger()->Message("\n"); GetLogger()->Message("List of available options:\n"); GetLogger()->Message(" -help this help\n"); @@ -285,67 +285,32 @@ bool CApplication::Create() return false; } - /* Gettext initialization */ - - std::string locale = ""; - switch (m_language) - { - default: - case LANGUAGE_ENV: - locale = ""; - break; - - case LANGUAGE_ENGLISH: - locale = "en_US.utf8"; - break; - - case LANGUAGE_GERMAN: - locale = "de_DE.utf8"; - break; - - case LANGUAGE_FRENCH: - locale = "fr_FR.utf8"; - break; - - case LANGUAGE_POLISH: - locale = "pl_PL.utf8"; - break; - } - - std::string langStr = "LANGUAGE="; - langStr += locale; - strcpy(S_LANGUAGE, langStr.c_str()); - putenv(S_LANGUAGE); - setlocale(LC_ALL, locale.c_str()); - GetLogger()->Debug("Set locale to '%s'\n", locale.c_str()); - - bindtextdomain("colobot", COLOBOT_I18N_DIR); - bind_textdomain_codeset("colobot", "UTF-8"); - textdomain("colobot"); - - GetLogger()->Debug("Testing gettext translation: '%s'\n", gettext("Colobot rules!")); + SetLanguage(m_language); //Create the sound instance. - if (!GetProfile().InitCurrentDirectory()) { + 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; - #ifdef OPENAL_SOUND - m_sound = static_cast(new ALSound()); - #else - GetLogger()->Info("No sound support.\n"); - m_sound = new CSoundInterface(); - #endif + #ifdef OPENAL_SOUND + m_sound = static_cast(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 = @@ -1418,24 +1383,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(dataDir); + int index = static_cast(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(stdDir); + assert(index >= 0 && index < DIR_MAX); std::stringstream str; str << m_dataPath; str << "/"; + str << m_dataDirs[index]; + str << "/"; str << subpath; return str.str(); } @@ -1445,9 +1412,99 @@ Language CApplication::GetLanguage() return m_language; } +char CApplication::GetLanguageChar() +{ + char langChar = 'E'; + switch (m_language) + { + default: + case LANGUAGE_ENV: + case LANGUAGE_ENGLISH: + langChar = 'E'; + break; + + case LANGUAGE_GERMAN: + langChar = 'D'; + break; + + case LANGUAGE_FRENCH: + langChar = 'F'; + break; + + case LANGUAGE_POLISH: + langChar = 'P'; + break; + } + return langChar; +} + void CApplication::SetLanguage(Language language) { m_language = language; + + /* Gettext initialization */ + + std::string locale = ""; + switch (m_language) + { + default: + case LANGUAGE_ENV: + locale = ""; + break; + + case LANGUAGE_ENGLISH: + locale = "en_US.utf8"; + break; + + case LANGUAGE_GERMAN: + locale = "de_DE.utf8"; + break; + + case LANGUAGE_FRENCH: + locale = "fr_FR.utf8"; + break; + + case LANGUAGE_POLISH: + locale = "pl_PL.utf8"; + break; + } + + if (locale.empty()) + { + char *envLang = getenv("LANGUAGE"); + if (strncmp(envLang,"en",2) == 0) + { + m_language = LANGUAGE_ENGLISH; + } + else if (strncmp(envLang,"de",2) == 0) + { + m_language = LANGUAGE_GERMAN; + } + else if (strncmp(envLang,"fr",2) == 0) + { + m_language = LANGUAGE_FRENCH; + } + else if (strncmp(envLang,"po",2) == 0) + { + m_language = LANGUAGE_POLISH; + } + GetLogger()->Trace("SetLanguage: Inherit LANGUAGE=%s from environment\n", envLang); + } + else + { + std::string langStr = "LANGUAGE="; + langStr += locale; + strcpy(S_LANGUAGE, langStr.c_str()); + putenv(S_LANGUAGE); + GetLogger()->Trace("SetLanguage: Set LANGUAGE=%s in environment\n", locale.c_str()); + } + setlocale(LC_ALL, ""); + + bindtextdomain("colobot", COLOBOT_I18N_DIR); + bind_textdomain_codeset("colobot", "UTF-8"); + textdomain("colobot"); + + GetLogger()->Debug("SetLanguage: Test gettext translation: '%s'\n", gettext("Colobot rules!")); } void CApplication::SetLowCPU(bool low) diff --git a/src/app/app.h b/src/app/app.h index 5bf6867..2da20d3 100644 --- a/src/app/app.h +++ b/src/app/app.h @@ -285,15 +285,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); //@} diff --git a/src/common/config.h.cmake b/src/common/config.h.cmake index dd280a3..022bb69 100644 --- a/src/common/config.h.cmake +++ b/src/common/config.h.cmake @@ -8,6 +8,10 @@ #cmakedefine USE_GLEW @USE_GLEW@ #cmakedefine GLEW_STATIC +#define COLOBOT_VERSION "@COLOBOT_VERSION_FULL@" +#define COLOBOT_CODENAME "@COLOBOT_VERSION_CODENAME@" +#define COLOBOT_FULLNAME "Colobot @COLOBOT_VERSION_CODENAME@" + #define COLOBOT_DEFAULT_DATADIR "@COLOBOT_INSTALL_DATA_DIR@" #define COLOBOT_I18N_DIR "@COLOBOT_INSTALL_I18N_DIR@" diff --git a/src/common/image.cpp b/src/common/image.cpp index f3cfa34..ef8097e 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( 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( static_cast(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/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 index cc159a9..ce4f48d 100644 --- a/src/desktop/CMakeLists.txt +++ b/src/desktop/CMakeLists.txt @@ -37,6 +37,41 @@ if(RSVG_CONVERT) 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) @@ -46,4 +81,17 @@ if(PO4A) 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.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 [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-language> I] + +=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 + +Set custom data directory path + +=item B<-debug> + +Enable debug mode (more info printed in logs) + +=item B<-loglevel> I + +Set log level. Possible choices are: trace, debug, info, warn, error, none. + +=item B<-language> I + +Set language. Note that you can also fill the B environment variable. + +=back + +=head1 AUTHOR + +This manpage was written by Didier Raboud >. diff --git a/src/desktop/po/colobot-desktop.pot b/src/desktop/po/colobot-desktop.pot index e74136a..17e60c3 100644 --- a/src/desktop/po/colobot-desktop.pot +++ b/src/desktop/po/colobot-desktop.pot @@ -7,13 +7,13 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2012-12-26 15:05+0100\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 \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: colobot.ini:1 @@ -30,3 +30,105 @@ msgstr "" #, 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 [B<-datadir> I] [B<-debug>] [B<-loglevel> I] " +"[B<-language> I]" +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" +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" +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" +msgstr "" + +#. type: textblock +#: colobot.pod:41 +msgid "Set language. Note that you can also fill the B environment variable." +msgstr "" + +#. type: =head1 +#: colobot.pod:45 +msgid "AUTHOR" +msgstr "" + +#. type: textblock +#: colobot.pod:47 +msgid "This manpage was written by Didier Raboud >." +msgstr "" diff --git a/src/desktop/po/fr.po b/src/desktop/po/fr.po index 63dbb23..4709d49 100644 --- a/src/desktop/po/fr.po +++ b/src/desktop/po/fr.po @@ -1,13 +1,13 @@ # French translations for PACKAGE package # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. -# Automatically generated, 2012. # +# Didier Raboud , 2012. msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2012-12-26 15:05+0100\n" -"PO-Revision-Date: 2012-12-26 15:05+0100\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 \n" "Language-Team: none\n" "Language: fr\n" @@ -30,3 +30,124 @@ msgstr "Apprentissage de la programmation par le jeu" #, 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 [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-" +"language> I]" +msgstr "" +"B [B<-datadir> I] [B<-debug>] [B<-loglevel> I] [B<-" +"language> I]" + +#. 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" +msgstr "B<-datadir> F" + +#. 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" +msgstr "B<-loglevel> I" + +#. 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" +msgstr "B<-language> I" + +#. type: textblock +#: colobot.pod:41 +msgid "" +"Set language. Note that you can also fill the B environment variable." +msgstr "" +"Définit la langue. Il est aussi possible d'utiliser la variable " +"d'environnement B." + +#. type: =head1 +#: colobot.pod:45 +msgid "AUTHOR" +msgstr "Auteur" + +#. type: textblock +#: colobot.pod:47 +msgid "This manpage was written by Didier Raboud >." +msgstr "" +"Cette page de manuel a été écrite et traduite par Didier Raboud " +">." + diff --git a/src/desktop/po4a.cfg b/src/desktop/po4a.cfg index eda2985..c251959 100644 --- a/src/desktop/po4a.cfg +++ b/src/desktop/po4a.cfg @@ -1,3 +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/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/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 ; iDeleteInstance(CLASS_BRAIN, this); } @@ -2791,8 +2800,8 @@ void CBrain::TraceRecordStart() m_traceColor = -1; } - delete m_traceRecordBuffer; - m_traceRecordBuffer = static_cast(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(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 d5805d0..aa2fe22 100644 --- a/src/object/robotmain.cpp +++ b/src/object/robotmain.cpp @@ -3808,16 +3808,16 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject) } } - // TODO: language letters - sprintf(op, "Title.%c", 'E' /*GetLanguageLetter()*/); + // TODO: Fallback to an non-localized entry + sprintf(op, "Title.%c", m_app->GetLanguageChar()); if (Cmd(line, op) && !resetObject) OpString(line, "text", m_title); - sprintf(op, "Resume.%c", 'E' /*GetLanguageLetter()*/); + sprintf(op, "Resume.%c", m_app->GetLanguageChar()); if (Cmd(line, op) && !resetObject) OpString(line, "text", m_resume); - sprintf(op, "ScriptName.%c", 'E' /*GetLanguageLetter()*/); + sprintf(op, "ScriptName.%c", m_app->GetLanguageChar()); if (Cmd(line, op) && !resetObject) OpString(line, "text", m_scriptName); 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(3200.0f/BM_DIM_STEP); - m_bmArray = static_cast(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/po/CMakeLists.txt b/src/po/CMakeLists.txt index 3b26571..df667dd 100644 --- a/src/po/CMakeLists.txt +++ b/src/po/CMakeLists.txt @@ -6,14 +6,13 @@ find_program(XGETTEXT_CMD xgettext) add_custom_command(OUTPUT ${_potFile} COMMAND ${XGETTEXT_CMD} ../app/app.cpp --output=${_potFile} - COMMAND ${XGETTEXT_CMD} ../common/restext_strings.c --output=${_potFile} --join-existing --extract-all --no-location + 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(_${potFile} ${_all} DEPENDS ${_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 index d0a9c12..e1f9dc7 100644 --- a/src/po/colobot.pot +++ b/src/po/colobot.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-13 21:46+0100\n" +"POT-Creation-Date: 2012-12-27 17:09+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,9 +20,6 @@ msgstr "" msgid "Colobot rules!" msgstr "" -msgid "Colobot Gold" -msgstr "" - msgid "SatCom" msgstr "" @@ -1436,7 +1433,7 @@ msgstr "" msgid "Program infected by a virus" msgstr "" -msgid "Infected by a virus, temporarily out of order" +msgid "Infected by a virus; temporarily out of order" msgstr "" msgid "Impossible when swimming" @@ -1464,7 +1461,7 @@ msgstr "" msgid "Building destroyed" msgstr "" -msgid "Can not create this, there are too many objects" +msgid "Can not create this; there are too many objects" msgstr "" #, c-format @@ -1528,10 +1525,10 @@ msgstr "" msgid "Found a site for a derrick" msgstr "" -msgid "<<< Well done, mission accomplished >>>" +msgid "<<< Well done; mission accomplished >>>" msgstr "" -msgid "<<< Sorry, mission failed >>>" +msgid "<<< Sorry; mission failed >>>" msgstr "" msgid "Current mission saved" @@ -1612,7 +1609,7 @@ msgstr "" msgid "Instruction \"break\" outside a loop" msgstr "" -msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\"" +msgid "A label must be followed by \"for\"; \"while\"; \"do\" or \"switch\"" msgstr "" msgid "This label does not exist" @@ -1734,3 +1731,88 @@ 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 bbd0b77..2992cb1 100644 --- a/src/po/de.po +++ b/src/po/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-13 21:46+0100\n" +"POT-Creation-Date: 2012-12-27 17:09+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -64,6 +64,9 @@ msgstr "Es fehlt eine geschlossene eckige Klammer \" ] \"" msgid "\"%s\" missing in this exercise" msgstr "Es fehlt \"%s\" in Ihrem Programm" +msgid "%1" +msgstr "" + msgid "..behind" msgstr "..hinten" @@ -85,13 +88,16 @@ msgstr "3D-Geräusche\\Orten der Geräusche im Raum" msgid "<< Back \\Back to the previous screen" msgstr "<< Zurück \\Zurück zum Hauptmenü" -msgid "<<< Sorry, mission failed >>>" +#, fuzzy +msgid "<<< Sorry; mission failed >>>" msgstr "<<< Mission gescheitert >>>" -msgid "<<< Well done, mission accomplished >>>" +#, fuzzy +msgid "<<< Well done; mission accomplished >>>" msgstr "<<< Bravo, Mission vollendet >>>" -msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\"" +#, 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" @@ -122,6 +128,9 @@ msgstr "Insektenkönigin tödlich verwundet" msgid "Already carrying something" msgstr "Trägt schon etwas" +msgid "Alt" +msgstr "Alt" + msgid "Analysis already performed" msgstr "Analyse schon durchgeführt" @@ -299,6 +308,9 @@ msgstr "Gebäude zerstört" msgid "Building too close" msgstr "Gebäude zu nahe" +msgid "Button %1" +msgstr "Knopf %1" + msgid "COLOBOT" msgstr "COLOBOT" @@ -326,7 +338,8 @@ msgstr "Kamera links" msgid "Camera to right" msgstr "Kamera rechts" -msgid "Can not create this, there are too many objects" +#, fuzzy +msgid "Can not create this; there are too many objects" msgstr "Kein neues Objekt kann erstellt werden (zu viele vorhanden)" msgid "Can't open file" @@ -365,9 +378,6 @@ msgstr "Schließen" msgid "Closing bracket missing " msgstr "Es fehlt eine geschlossene Klammer \")\"" -msgid "Colobot Gold" -msgstr "Colobot Gold" - msgid "Colobot rules!" msgstr "Colobot ist wunderbar!" @@ -404,6 +414,9 @@ msgstr "Kopieren" msgid "Copy (Ctrl+c)" msgstr "Kopieren (Ctrl+c)" +msgid "Ctrl" +msgstr "Ctrl" + msgid "Current mission saved" msgstr "Mission gespeichert" @@ -610,6 +623,10 @@ msgstr "Spiel\\Gameplay Einstellungen" msgid "Gantry crane" msgstr "Träger" +#, c-format +msgid "GetResource event num out of range: %d\n" +msgstr "" + msgid "Goto: destination occupied" msgstr "Ziel ist schon besetzt" @@ -682,7 +699,8 @@ msgstr "Falscher Batterietyp" msgid "Incorrect index type" msgstr "Falscher Typ für einen Index" -msgid "Infected by a virus, temporarily out of order" +#, fuzzy +msgid "Infected by a virus; temporarily out of order" msgstr "Von Virus infiziert, zeitweise außer Betrieb" msgid "Information exchange post" @@ -1256,6 +1274,9 @@ msgstr "Reichweite Schutzschild" msgid "Shielder" msgstr "Schutzschild" +msgid "Shift" +msgstr "Shift" + msgid "Shoot (\\key action;)" msgstr "Feuer (\\key action;)" @@ -1565,6 +1586,9 @@ msgstr "Shooter" msgid "Wheeled sniffer" msgstr "Schnüffler" +msgid "Win" +msgstr "" + msgid "Winged grabber" msgstr "Transporter" @@ -1730,6 +1754,69 @@ msgstr "\\b;Liste der Roboter\n" msgid "\\c; (none)\\n;\n" msgstr "\\c; (keine)\\n;\n" +msgid "action;" +msgstr "" + +msgid "away;" +msgstr "" + +msgid "camera;" +msgstr "" + +msgid "cbot;" +msgstr "" + +msgid "desel;" +msgstr "" + +msgid "down;" +msgstr "" + +msgid "gdown;" +msgstr "" + +msgid "gup;" +msgstr "" + +msgid "help;" +msgstr "" + +msgid "human;" +msgstr "" + +msgid "left;" +msgstr "" + +msgid "near;" +msgstr "" + +msgid "next;" +msgstr "" + +msgid "prog;" +msgstr "" + +msgid "quit;" +msgstr "" + +msgid "right;" +msgstr "" + +msgid "speed10;" +msgstr "" + +msgid "speed15;" +msgstr "" + +msgid "speed20;" +msgstr "" + +msgid "up;" +msgstr "" + +msgid "visit;" +msgstr "" + msgid "www.epsitec.com" msgstr "www.epsitec.com" @@ -1739,9 +1826,6 @@ msgstr "www.epsitec.com" #~ msgid "<--" #~ msgstr "<--" -#~ msgid "Alt" -#~ msgstr "Alt" - #~ msgid "Application key" #~ msgstr "Application key" @@ -1760,9 +1844,6 @@ msgstr "www.epsitec.com" #~ msgid "Attn" #~ msgstr "Attn" -#~ msgid "Button %1" -#~ msgstr "Knopf %1" - #~ msgid "Caps Lock" #~ msgstr "Caps Lock" @@ -1775,9 +1856,6 @@ msgstr "www.epsitec.com" #~ msgid "CrSel" #~ msgstr "CrSel" -#~ msgid "Ctrl" -#~ msgstr "Ctrl" - #~ msgid "Delete Key" #~ msgstr "Delete" @@ -1961,9 +2039,6 @@ msgstr "www.epsitec.com" #~ msgid "Select" #~ msgstr "Select" -#~ msgid "Shift" -#~ msgstr "Shift" - #~ msgid "Space" #~ msgstr "Leertaste" diff --git a/src/po/fr.po b/src/po/fr.po index bda683d..662fb93 100644 --- a/src/po/fr.po +++ b/src/po/fr.po @@ -1,13 +1,18 @@ +# Didier Raboud , 2012. msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-13 21:46+0100\n" +"POT-Creation-Date: 2012-12-27 17:09+0100\n" +"PO-Revision-Date: 2012-12-27 14:07+0100\n" +"Last-Translator: Didier Raboud \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 " " msgstr " " @@ -37,7 +42,7 @@ msgid " Missions on this planet:" msgstr " Liste des missions du chapitre :" msgid " Planets:" -msgstr " Liste des plančtes :" +msgstr " Liste des planètes :" msgid " Prototypes on this planet:" msgstr " Liste des prototypes du chapitre :" @@ -64,8 +69,11 @@ msgstr "\" ] \" attendu" msgid "\"%s\" missing in this exercise" msgstr "Il manque \"%s\" dans le programme" +msgid "%1" +msgstr "%1" + msgid "..behind" -msgstr "..derričre" +msgstr "..derrière" msgid "..in front" msgstr "..devant" @@ -74,7 +82,7 @@ msgid "..power cell" msgstr "..pile" msgid "1) First click on the key you want to redefine." -msgstr "1) Cliquez d'abord sur la touche ŕ redéfinir." +msgstr "1) Cliquez d'abord sur la touche à redéfinir." msgid "2) Then press the key you want to use instead." msgstr "2) Appuyez ensuite sur la nouvelle touche souhaitée." @@ -85,15 +93,15 @@ msgstr "Bruitages 3D\\Positionnement sonore dans l'espace" msgid "<< Back \\Back to the previous screen" msgstr "<< Retour \\Retour au niveau précédent" -msgid "<<< Sorry, mission failed >>>" -msgstr "<<< Désolé, mission échouée >>>" +msgid "<<< Sorry; mission failed >>>" +msgstr "<<< Désolé; mission échouée >>>" -msgid "<<< Well done, mission accomplished >>>" -msgstr "<<< Bravo, mission terminée >>>" +msgid "<<< Well done; mission accomplished >>>" +msgstr "<<< Bravo; mission terminée >>>" -msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\"" +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 label ne peut se placer que devant un \"for\"; un \"while\"; un \"do\" ou " "un \"switch\"" msgid "A variable can not be declared twice" @@ -103,14 +111,14 @@ msgid "Abort\\Abort the current mission" msgstr "Abandonner\\Abandonner la mission en cours" msgid "Access beyond array limit" -msgstr "Accčs hors du tableau" +msgstr "Accès hors du tableau" msgid "" "Access to solution\\Shows the solution (detailed instructions for missions)" -msgstr "Accčs ŕ la solution\\Donne la solution" +msgstr "Accès à la solution\\Donne la solution" msgid "Access to solutions\\Show program \"4: Solution\" in the exercises" -msgstr "Accčs aux solutions\\Programme \"4: Solution\" dans les exercices" +msgstr "Accès aux solutions\\Programme \"4: Solution\" dans les exercices" msgid "Alien Queen" msgstr "Pondeuse" @@ -119,16 +127,19 @@ msgid "Alien Queen killed" msgstr "Pondeuse mortellement touchée" msgid "Already carrying something" -msgstr "Porte déjŕ quelque chose" +msgstr "Porte déjà quelque chose" + +msgid "Alt" +msgstr "Alt" msgid "Analysis already performed" -msgstr "Analyse déjŕ effectuée" +msgstr "Analyse déjà effectuée" msgid "Analysis performed" msgstr "Analyse terminée" msgid "Analyzes only organic matter" -msgstr "N'analyse que la matičre organique" +msgstr "N'analyse que la matière organique" msgid "Ant" msgstr "Fourmi" @@ -149,7 +160,7 @@ msgid "Assignment impossible" msgstr "Assignation impossible" msgid "Autolab" -msgstr "Laboratoire de matičres organiques" +msgstr "Laboratoire de matières organiques" msgid "Automatic indent\\When program editing" msgstr "Indentation automatique\\Pendant l'édition d'un programme" @@ -164,7 +175,7 @@ msgid "Backward (\\key down;)" msgstr "Recule (\\key down;)" msgid "Backward\\Moves backward" -msgstr "Reculer\\Moteur en arričre" +msgstr "Reculer\\Moteur en arrière" msgid "Bad argument for \"new\"" msgstr "Mauvais argument pour \"new\"" @@ -203,16 +214,16 @@ msgid "Build a exchange post" msgstr "Construit une borne d'information" msgid "Build a legged grabber" -msgstr "Fabrique un déménageur ŕ pattes" +msgstr "Fabrique un déménageur à pattes" msgid "Build a legged orga shooter" -msgstr "Fabrique un orgaShooter ŕ pattes" +msgstr "Fabrique un orgaShooter à pattes" msgid "Build a legged shooter" -msgstr "Fabrique un shooter ŕ pattes" +msgstr "Fabrique un shooter à pattes" msgid "Build a legged sniffer" -msgstr "Fabrique un renifleur ŕ pattes" +msgstr "Fabrique un renifleur à pattes" msgid "Build a lightning conductor" msgstr "Construit un paratonnerre" @@ -251,28 +262,28 @@ msgid "Build a thumper" msgstr "Fabrique un robot secoueur" msgid "Build a tracked grabber" -msgstr "Fabrique un déménageur ŕ chenilles" +msgstr "Fabrique un déménageur à chenilles" msgid "Build a tracked orga shooter" -msgstr "Fabrique un orgaShooter ŕ chenilles" +msgstr "Fabrique un orgaShooter à chenilles" msgid "Build a tracked shooter" -msgstr "Fabrique un shooter ŕ chenilles" +msgstr "Fabrique un shooter à chenilles" msgid "Build a tracked sniffer" -msgstr "Fabrique un renifleur ŕ chenilles" +msgstr "Fabrique un renifleur à chenilles" msgid "Build a wheeled grabber" -msgstr "Fabrique un déménageur ŕ roues" +msgstr "Fabrique un déménageur à roues" msgid "Build a wheeled orga shooter" -msgstr "Fabrique un orgaShooter ŕ roues" +msgstr "Fabrique un orgaShooter à roues" msgid "Build a wheeled shooter" -msgstr "Fabrique un shooter ŕ roues" +msgstr "Fabrique un shooter à roues" msgid "Build a wheeled sniffer" -msgstr "Fabrique un renifleur ŕ roues" +msgstr "Fabrique un renifleur à roues" msgid "Build a winged grabber" msgstr "Fabrique un déménageur volant" @@ -298,6 +309,9 @@ msgstr "Bâtiment détruit" msgid "Building too close" msgstr "Bâtiment trop proche" +msgid "Button %1" +msgstr "Bouton %1" + msgid "COLOBOT" msgstr "COLOBOT" @@ -320,13 +334,13 @@ msgid "Camera nearest" msgstr "Caméra plus proche" msgid "Camera to left" -msgstr "Caméra ŕ gauche" +msgstr "Caméra à gauche" msgid "Camera to right" -msgstr "Caméra ŕ droite" +msgstr "Caméra à droite" -msgid "Can not create this, there are too many objects" -msgstr "Création impossible, il y a trop d'objets" +msgid "Can not create this; there are too many objects" +msgstr "Création impossible; il y a trop d'objets" msgid "Can't open file" msgstr "Ouverture du fichier impossible" @@ -362,10 +376,7 @@ msgid "Close" msgstr "Fermer" msgid "Closing bracket missing " -msgstr "Il manque une parenthčse fermante" - -msgid "Colobot Gold" -msgstr "Colobot Gold" +msgstr "Il manque une parenthèse fermante" msgid "Colobot rules!" msgstr "Colobot est super!" @@ -403,6 +414,9 @@ msgstr "Copier" msgid "Copy (Ctrl+c)" msgstr "Copier (Ctrl+c)" +msgid "Ctrl" +msgstr "Ctrl" + msgid "Current mission saved" msgstr "Enregistrement effectué" @@ -477,10 +491,10 @@ msgid "Dust\\Dust and dirt on bots and buildings" msgstr "Salissures\\Salissures des robots et bâtiments" msgid "Dynamic lighting\\Mobile light sources" -msgstr "Lumičres dynamiques\\Eclairages mobiles" +msgstr "Lumières dynamiques\\Éclairages mobiles" msgid "Edit the selected program" -msgstr "Edite le programme sélectionné" +msgstr "Édite le programme sélectionné" msgid "Egg" msgstr "Oeuf" @@ -531,7 +545,7 @@ msgid "Filename:" msgstr "Nom du fichier :" msgid "Film sequences\\Films before and after the missions" -msgstr "Séquences cinématiques\\Films avant ou aprčs une mission" +msgstr "Séquences cinématiques\\Films avant ou après une mission" msgid "Finish" msgstr "But" @@ -553,7 +567,7 @@ msgid "Folder: %s" msgstr "Dossier: %s" msgid "Font size" -msgstr "Taille des caractčres" +msgstr "Taille des caractères" msgid "Forward" msgstr "Page suivante" @@ -589,13 +603,13 @@ msgid "Free game\\Free game without a specific goal" msgstr "Jeu libre\\Jeu libre sans but précis" 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" +msgstr "Dégâts à soi-même\\Vos tirs infligent des dommages à vos unités" msgid "Full screen\\Full screen or window mode" -msgstr "Plein écran\\Plein écran ou fenętré" +msgstr "Plein écran\\Plein écran ou fenêtré" msgid "Function already exists" -msgstr "Cette fonction existe déjŕ" +msgstr "Cette fonction existe déjà" msgid "Function name missing" msgstr "Nom de la fonction attendu" @@ -609,8 +623,12 @@ msgstr "Jeu\\Options de jouabilité" msgid "Gantry crane" msgstr "Portique" +#, c-format +msgid "GetResource event num out of range: %d\n" +msgstr "" + msgid "Goto: destination occupied" -msgstr "Destination occupée" +msgstr "Goto: Destination occupée" msgid "Goto: inaccessible destination" msgstr "Chemin introuvable" @@ -637,7 +655,7 @@ msgid "Hair color:" msgstr "Couleur des cheveux :" msgid "Head\\Face and hair" -msgstr "Tęte\\Visage et cheveux" +msgstr "Tête\\Visage et cheveux" msgid "Help about selected object" msgstr "Instructions sur la sélection" @@ -681,8 +699,8 @@ msgstr "Pas le bon type de pile" msgid "Incorrect index type" msgstr "Mauvais type d'index" -msgid "Infected by a virus, temporarily out of order" -msgstr "Infecté par un virus, ne fonctionne plus temporairement" +msgid "Infected by a virus; temporarily out of order" +msgstr "Infecté par un virus; ne fonctionne plus temporairement" msgid "Information exchange post" msgstr "Borne d'information" @@ -703,7 +721,7 @@ msgid "Instructions (\\key help;)" msgstr "Instructions (\\key help;)" msgid "Instructions after the final closing brace" -msgstr "Instructions aprčs la fin" +msgstr "Instructions après la fin" msgid "Instructions for the mission (\\key help;)" msgstr "Instructions sur la mission (\\key help;)" @@ -712,7 +730,7 @@ msgid "Instructions from Houston" msgstr "Instructions de Houston" msgid "Instructions\\Shows the instructions for the current mission" -msgstr "Instructions mission\\Marche ŕ suivre" +msgstr "Instructions mission\\Marche à suivre" msgid "Jet temperature" msgstr "Température du réacteur" @@ -843,16 +861,16 @@ msgid "No energy in the subsoil" msgstr "Pas d'énergie en sous-sol" msgid "No flag nearby" -msgstr "Aucun drapeau ŕ proximité" +msgstr "Aucun drapeau à proximité" msgid "No function running" msgstr "Pas de fonction en exécution" 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)" +msgstr "Aucune fonction de ce nom n'accepte ce(s) type(s) de paramètre(s)" msgid "No function with this name accepts this number of parameters" -msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramčtres" +msgstr "Aucune fonction de ce nom n'accepte ce nombre de paramètres" msgid "No information exchange post within range" msgstr "Pas trouvé de borne d'information" @@ -876,13 +894,13 @@ msgid "No titanium around" msgstr "Titanium inexistant" msgid "No titanium ore to convert" -msgstr "Pas de minerai de titanium ŕ convertir" +msgstr "Pas de minerai de titanium à convertir" msgid "No titanium to transform" -msgstr "Pas de titanium ŕ transformer" +msgstr "Pas de titanium à transformer" msgid "No uranium to transform" -msgstr "Pas d'uranium ŕ transformer" +msgstr "Pas d'uranium à transformer" msgid "Normal size" msgstr "Taille normale" @@ -903,16 +921,16 @@ msgid "Not yet enough energy" msgstr "Pas encore assez d'énergie" msgid "Nothing to analyze" -msgstr "Rien ŕ analyser" +msgstr "Rien à analyser" msgid "Nothing to drop" -msgstr "Rien ŕ déposer" +msgstr "Rien à déposer" msgid "Nothing to grab" -msgstr "Rien ŕ prendre" +msgstr "Rien à prendre" msgid "Nothing to recycle" -msgstr "Rien ŕ recycler" +msgstr "Rien à recycler" msgid "Nuclear power cell" msgstr "Pile nucléaire" @@ -933,7 +951,7 @@ msgid "Number of insects detected" msgstr "Nombre d'insectes détectés" msgid "Number of particles\\Explosions, dust, reflections, etc." -msgstr "Quantité de particules\\Explosions, poussičres, reflets, etc." +msgstr "Quantité de particules\\Explosions, poussières, reflets, etc." msgid "OK" msgstr "D'accord" @@ -963,7 +981,7 @@ msgid "Opening brace missing " msgstr "Début d'un bloc attendu" msgid "Opening bracket missing" -msgstr "Il manque une parenthčse ouvrante" +msgstr "Il manque une parenthèse ouvrante" msgid "Operation impossible with value \"nan\"" msgstr "Opération sur un \"nan\"" @@ -975,13 +993,13 @@ msgid "Options\\Preferences" msgstr "Options\\Réglages" msgid "Organic matter" -msgstr "Matičre organique" +msgstr "Matière organique" 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 "Parameters missing " -msgstr "Pas assez de paramčtres" +msgstr "Pas assez de paramètres" msgid "Particles in the interface\\Steam clouds and sparks in the interface" msgstr "Particules dans l'interface\\Pluie de particules" @@ -1002,7 +1020,7 @@ msgid "Place occupied" msgstr "Emplacement occupé" msgid "Planets and stars\\Astronomical objects in the sky" -msgstr "Plančtes et étoiles\\Motifs mobiles dans le ciel" +msgstr "Planètes et étoiles\\Motifs mobiles dans le ciel" msgid "Plans for defense tower available" msgstr "Construction d'une tour de défense possible" @@ -1023,7 +1041,7 @@ msgid "Plans for thumper available" msgstr "Fabrication d'un robot secoueur possible" msgid "Plans for tracked robots available " -msgstr "Fabrication d'un robot ŕ chenilles possible" +msgstr "Fabrication d'un robot à chenilles possible" msgid "Plant a flag" msgstr "Pose un drapeau de couleur" @@ -1086,10 +1104,10 @@ msgid "Programming exercises" msgstr "Programmation" msgid "Programming help" -msgstr "Aide ŕ la programmation" +msgstr "Aide à la programmation" msgid "Programming help (\\key prog;)" -msgstr "Aide ŕ la programmation (\\key prog;)" +msgstr "Aide à la programmation (\\key prog;)" msgid "Programming help\\Gives more detailed help with programming" msgstr "Instructions programmation\\Explication sur la programmation" @@ -1107,7 +1125,7 @@ msgid "Public required" msgstr "Public requis" msgid "Public\\Common folder" -msgstr "Public\\Dossier commun ŕ tous les joueurs" +msgstr "Public\\Dossier commun à tous les joueurs" msgid "Quake at explosions\\The screen shakes at explosions" msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion" @@ -1125,7 +1143,7 @@ msgid "Radar station" msgstr "Radar" msgid "Read error" -msgstr "Erreur ŕ la lecture" +msgstr "Erreur à la lecture" msgid "Recorder" msgstr "Enregistreur" @@ -1149,7 +1167,7 @@ msgid "Remains of Apollo mission" msgstr "Vestige d'une mission Apollo" msgid "Remove a flag" -msgstr "Enlčve un drapeau" +msgstr "Enlève un drapeau" msgid "Repair center" msgstr "Centre de réparation" @@ -1158,7 +1176,7 @@ msgid "Research center" msgstr "Centre de recherches" msgid "Research program already performed" -msgstr "Recherche déjŕ effectuée" +msgstr "Recherche déjà effectuée" msgid "Research program completed" msgstr "Recherche terminée" @@ -1258,6 +1276,9 @@ msgstr "Rayon du bouclier" msgid "Shielder" msgstr "Robot bouclier" +msgid "Shift" +msgstr "Shift" + msgid "Shoot (\\key action;)" msgstr "Tir (\\key action;)" @@ -1350,7 +1371,7 @@ msgid "Still working ..." msgstr "Travail en cours ..." msgid "String missing" -msgstr "Une chaîne de caractčre est attendue" +msgstr "Une chaîne de caractère est attendue" msgid "Strip color:" msgstr "Couleur des bandes :" @@ -1405,7 +1426,7 @@ msgid "The types of the two operands are incompatible " msgstr "Les deux opérandes ne sont pas de types compatibles" msgid "This class already exists" -msgstr "Cette classe existe déjŕ" +msgstr "Cette classe existe déjà" msgid "This class does not exist" msgstr "Cette classe n'existe pas" @@ -1456,7 +1477,7 @@ msgid "Too many flags of this color (maximum 5)" msgstr "Trop de drapeaux de cette couleur (maximum 5)" msgid "Too many parameters" -msgstr "Trop de paramčtres" +msgstr "Trop de paramètres" msgid "Tracked grabber" msgstr "Robot déménageur" @@ -1480,16 +1501,16 @@ msgid "Transmitted information" msgstr "Informations diffusées" msgid "Turn left (\\key left;)" -msgstr "Tourne ŕ gauche (\\key left;)" +msgstr "Tourne à gauche (\\key left;)" msgid "Turn left\\turns the bot to the left" -msgstr "Tourner ŕ gauche\\Moteur ŕ gauche" +msgstr "Tourner à gauche\\Moteur à gauche" msgid "Turn right (\\key right;)" -msgstr "Tourne ŕ droite (\\key right;)" +msgstr "Tourne à droite (\\key right;)" msgid "Turn right\\turns the bot to the right" -msgstr "Tourner ŕ droite\\Moteur ŕ droite" +msgstr "Tourner à droite\\Moteur à droite" msgid "Type declaration missing" msgstr "Déclaration de type attendu" @@ -1543,7 +1564,7 @@ msgid "Violet flag" msgstr "Drapeau violet" msgid "Void parameter" -msgstr "Paramčtre void" +msgstr "Paramètre void" msgid "Wasp" msgstr "Guępe" @@ -1566,6 +1587,9 @@ msgstr "Robot shooter" msgid "Wheeled sniffer" msgstr "Robot renifleur" +msgid "Win" +msgstr "Gagné" + msgid "Winged grabber" msgstr "Robot déménageur" @@ -1591,7 +1615,7 @@ msgid "Wreckage" msgstr "Epave de robot" msgid "Write error" -msgstr "Erreur ŕ l'écriture" +msgstr "Erreur à l'écriture" msgid "Wrong type for the assignment" msgstr "Mauvais type de résultat pour l'assignation" @@ -1652,13 +1676,13 @@ msgid "\\Green flags" msgstr "\\Drapeaux verts" msgid "\\New player name" -msgstr "\\Nom du joueur ŕ créer" +msgstr "\\Nom du joueur à créer" msgid "\\No eyeglasses" msgstr "\\Pas de lunettes" msgid "\\Raise the pencil" -msgstr "\\Relčve le crayon" +msgstr "\\Relève le crayon" msgid "\\Red flags" msgstr "\\Drapeaux rouges" @@ -1676,10 +1700,10 @@ msgid "\\Stop recording" msgstr "\\Stoppe l'enregistrement" msgid "\\Turn left" -msgstr "\\Rotation ŕ gauche" +msgstr "\\Rotation à gauche" msgid "\\Turn right" -msgstr "\\Rotation ŕ droite" +msgstr "\\Rotation à droite" msgid "\\Use the black pencil" msgstr "\\Abaisse le crayon noir" @@ -1732,6 +1756,69 @@ msgstr "\\b;Listes des robots\n" msgid "\\c; (none)\\n;\n" msgstr "\\c; (aucun)\\n;\n" +msgid "action;" +msgstr "" + +msgid "away;" +msgstr "" + +msgid "camera;" +msgstr "" + +msgid "cbot;" +msgstr "" + +msgid "desel;" +msgstr "" + +msgid "down;" +msgstr "" + +msgid "gdown;" +msgstr "" + +msgid "gup;" +msgstr "" + +msgid "help;" +msgstr "" + +msgid "human;" +msgstr "" + +msgid "left;" +msgstr "" + +msgid "near;" +msgstr "" + +msgid "next;" +msgstr "" + +msgid "prog;" +msgstr "" + +msgid "quit;" +msgstr "" + +msgid "right;" +msgstr "" + +msgid "speed10;" +msgstr "" + +msgid "speed15;" +msgstr "" + +msgid "speed20;" +msgstr "" + +msgid "up;" +msgstr "" + +msgid "visit;" +msgstr "" + msgid "www.epsitec.com" msgstr "www.epsitec.com" @@ -1741,30 +1828,24 @@ msgstr "www.epsitec.com" #~ msgid "<--" #~ msgstr "<--" -#~ msgid "Alt" -#~ msgstr "Alt" - #~ msgid "Application key" #~ msgstr "Application key" #~ msgid "Arrow down" -#~ msgstr "Flčche Bas" +#~ msgstr "Flèche Bas" #~ msgid "Arrow left" -#~ msgstr "Flčche Gauche" +#~ msgstr "Flèche Gauche" #~ msgid "Arrow right" -#~ msgstr "Flčche Droite" +#~ msgstr "Flèche Droite" #~ msgid "Arrow up" -#~ msgstr "Flčche Haut" +#~ msgstr "Flèche Haut" #~ msgid "Attn" #~ msgstr "Attn" -#~ msgid "Button %1" -#~ msgstr "Bouton %1" - #~ msgid "Caps Lock" #~ msgstr "Caps Lock" @@ -1777,9 +1858,6 @@ msgstr "www.epsitec.com" #~ msgid "CrSel" #~ msgstr "CrSel" -#~ msgid "Ctrl" -#~ msgstr "Ctrl" - #~ msgid "Delete Key" #~ msgstr "Delete" @@ -1963,9 +2041,6 @@ msgstr "www.epsitec.com" #~ msgid "Select" #~ msgstr "Select" -#~ msgid "Shift" -#~ msgstr "Shift" - #~ msgid "Space" #~ msgstr "Espace" diff --git a/src/po/pl.po b/src/po/pl.po index 700ee9e..9bab529 100644 --- a/src/po/pl.po +++ b/src/po/pl.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-12-13 21:46+0100\n" +"POT-Creation-Date: 2012-12-27 17:09+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -65,6 +65,9 @@ msgstr "Brak \" ] \"" msgid "\"%s\" missing in this exercise" msgstr "It misses \"%s\" in this exercise" +msgid "%1" +msgstr "" + msgid "..behind" msgstr "..za" @@ -86,13 +89,16 @@ msgstr "Dźwięk 3D\\Przestrzenne pozycjonowanie dźwięków" msgid "<< Back \\Back to the previous screen" msgstr "<< Wstecz \\Wraca do poprzedniego ekranu" -msgid "<<< Sorry, mission failed >>>" +#, fuzzy +msgid "<<< Sorry; mission failed >>>" msgstr "<<< Niestety, misja nie powiodła się >>>" -msgid "<<< Well done, mission accomplished >>>" +#, fuzzy +msgid "<<< Well done; mission accomplished >>>" msgstr "<<< Dobra robota, misja wypełniona >>>" -msgid "A label must be followed by \"for\", \"while\", \"do\" or \"switch\"" +#, 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 "A variable can not be declared twice" @@ -122,6 +128,9 @@ msgstr "Królowa Obcych została zabita" msgid "Already carrying something" msgstr "Nie można nieść więcej przedmiotów" +msgid "Alt" +msgstr "Alt" + msgid "Analysis already performed" msgstr "Analiza została już wykonana" @@ -301,6 +310,9 @@ msgstr "Budynek zniszczony" msgid "Building too close" msgstr "Budynek za blisko" +msgid "Button %1" +msgstr "Przycisk %1" + msgid "COLOBOT" msgstr "COLOBOT" @@ -328,7 +340,8 @@ msgstr "Camera to left" msgid "Camera to right" msgstr "Camera to right" -msgid "Can not create this, there are too many objects" +#, fuzzy +msgid "Can not create this; there are too many objects" msgstr "Nie można tego utworzyć, za dużo obiektów" msgid "Can't open file" @@ -367,9 +380,6 @@ msgstr "Zamknij" msgid "Closing bracket missing " msgstr "Brak nawiasu zamykającego" -msgid "Colobot Gold" -msgstr "Colobot Gold" - msgid "Colobot rules!" msgstr "Colobot rządzi!" @@ -406,6 +416,9 @@ msgstr "Kopiuj" msgid "Copy (Ctrl+c)" msgstr "Kopiuj (Ctrl+C)" +msgid "Ctrl" +msgstr "Ctrl" + msgid "Current mission saved" msgstr "Bieżąca misja zapisana" @@ -612,6 +625,10 @@ msgstr "Gra\\Ustawienia gry" msgid "Gantry crane" msgstr "Żuraw przesuwalny" +#, c-format +msgid "GetResource event num out of range: %d\n" +msgstr "" + msgid "Goto: destination occupied" msgstr "Goto: miejsce docelowe zajęte" @@ -685,7 +702,8 @@ msgstr "Nieodpowiedni rodzaj ogniw" msgid "Incorrect index type" msgstr "Nieprawidłowy typ indeksu" -msgid "Infected by a virus, temporarily out of order" +#, fuzzy +msgid "Infected by a virus; temporarily out of order" msgstr "Zainfekowane wirusem, chwilowo niesprawne" msgid "Information exchange post" @@ -1264,6 +1282,9 @@ msgstr "Zasięg osłony" msgid "Shielder" msgstr "Osłaniacz" +msgid "Shift" +msgstr "Shift" + msgid "Shoot (\\key action;)" msgstr "Strzelaj (\\key action;)" @@ -1575,6 +1596,9 @@ msgstr "Działo na kołach" msgid "Wheeled sniffer" msgstr "Szperacz na kołach" +msgid "Win" +msgstr "" + msgid "Winged grabber" msgstr "Transporter latający" @@ -1740,6 +1764,69 @@ msgstr "\\b;Roboty\n" msgid "\\c; (none)\\n;\n" msgstr "\\c; (brak)\\n;\n" +msgid "action;" +msgstr "" + +msgid "away;" +msgstr "" + +msgid "camera;" +msgstr "" + +msgid "cbot;" +msgstr "" + +msgid "desel;" +msgstr "" + +msgid "down;" +msgstr "" + +msgid "gdown;" +msgstr "" + +msgid "gup;" +msgstr "" + +msgid "help;" +msgstr "" + +msgid "human;" +msgstr "" + +msgid "left;" +msgstr "" + +msgid "near;" +msgstr "" + +msgid "next;" +msgstr "" + +msgid "prog;" +msgstr "" + +msgid "quit;" +msgstr "" + +msgid "right;" +msgstr "" + +msgid "speed10;" +msgstr "" + +msgid "speed15;" +msgstr "" + +msgid "speed20;" +msgstr "" + +msgid "up;" +msgstr "" + +msgid "visit;" +msgstr "" + msgid "www.epsitec.com" msgstr "www.epsitec.com" @@ -1749,9 +1836,6 @@ msgstr "www.epsitec.com" #~ msgid "<--" #~ msgstr "<--" -#~ msgid "Alt" -#~ msgstr "Alt" - #~ msgid "Application key" #~ msgstr "Klawisz menu kontekstowego" @@ -1770,9 +1854,6 @@ msgstr "www.epsitec.com" #~ msgid "Attn" #~ msgstr "Attn" -#~ msgid "Button %1" -#~ msgstr "Przycisk %1" - #~ msgid "Caps Lock" #~ msgstr "Caps Lock" @@ -1785,9 +1866,6 @@ msgstr "www.epsitec.com" #~ msgid "CrSel" #~ msgstr "CrSel" -#~ msgid "Ctrl" -#~ msgstr "Ctrl" - #~ msgid "Delete Key" #~ msgstr "Delete" @@ -1971,9 +2049,6 @@ msgstr "www.epsitec.com" #~ msgid "Select" #~ msgstr "Zaznacz" -#~ msgid "Shift" -#~ msgstr "Shift" - #~ msgid "Space" #~ msgstr "Spacja" diff --git a/src/script/script.cpp b/src/script/script.cpp index 8471df5..57d638e 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; } @@ -2753,9 +2753,14 @@ void CScript::InitFonctions() CScript::~CScript() { delete m_botProg; + m_botProg = nullptr; + delete m_primaryTask; - delete m_script; - m_script = 0; + m_primaryTask = nullptr; + + delete[] m_script; + m_script = nullptr; + m_len = 0; m_iMan->DeleteInstance(CLASS_SCRIPT, this); @@ -2766,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); } @@ -2785,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(malloc(sizeof(char)*(len+1))); + m_script = new char[len+1]; edit->GetText(m_script, len+1); edit->GetCursor(m_cursor2, m_cursor1); @@ -2997,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; @@ -3475,9 +3480,9 @@ bool CScript::IntroduceVirus() start = found[i+1]; i = found[i+0]; - newScript = static_cast(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])); @@ -3638,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(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; @@ -3669,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); @@ -3697,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/oalsound/alsound.cpp b/src/sound/oalsound/alsound.cpp index 0201417..f683a62 100644 --- a/src/sound/oalsound/alsound.cpp +++ b/src/sound/oalsound/alsound.cpp @@ -296,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; @@ -308,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; } @@ -451,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()->Trace("Sound oper: replay.\n"); + GetLogger()->Trace("ALSound::FrameMove oper: replay.\n"); it.second->SetCurrentTime(0.0f); it.second->Play(); } else { - GetLogger()->Trace("Sound oper: 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/oalsound/channel.cpp b/src/sound/oalsound/channel.cpp index 2285414..7d8244b 100644 --- a/src/sound/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(); @@ -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, ¤t); 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/sound.h b/src/sound/sound.h index 566f415..518e2ad 100644 --- a/src/sound/sound.h +++ b/src/sound/sound.h @@ -168,7 +168,7 @@ class CSoundInterface * 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(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(value+0.5f), true); + value *= m_lineTotal - m_lineVisible; + Scroll(static_cast(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(m_lineVisible/m_lineTotal); - m_scroll->SetVisibleRatio(value); - - value = static_cast(m_lineFirst/(m_lineTotal-m_lineVisible)); - m_scroll->SetVisibleValue(value); - - value = static_cast(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(m_lineVisible) / m_lineTotal; + m_scroll->SetVisibleRatio(value); + + value = static_cast(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 ebf7d10..68e7854 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -4305,8 +4305,8 @@ void CMainDialog::IOReadName() } } - // TODO: language letters - sprintf(op, "Title.%c", 'E' /*MAX_FNAME()*/ ); + // TODO: Fallback to an non-localized entry + sprintf(op, "Title.%c", m_app->GetLanguageChar() ); if ( Cmd(line, op) ) { OpString(line, "resume", resume); @@ -4701,8 +4701,8 @@ void CMainDialog::UpdateSceneChap(int &chap) } } - /* TODO: language letters */ - sprintf(op, "Title.%c", 'E' /*GetLanguageLetter()*/); + // TODO: Fallback to an non-localized entry + sprintf(op, "Title.%c", m_app->GetLanguageChar()); if ( Cmd(line, op) ) { OpString(line, "text", name); @@ -4748,8 +4748,8 @@ void CMainDialog::UpdateSceneChap(int &chap) } } - // TODO: language letters - sprintf(op, "Title.%c", 'E'/*GetLanguageLetter()*/); + // TODO: Fallback to an non-localized entry + sprintf(op, "Title.%c", m_app->GetLanguageChar()); if ( Cmd(line, op) ) { OpString(line, "text", name); @@ -4851,8 +4851,8 @@ void CMainDialog::UpdateSceneList(int chap, int &sel) } } - // TODO: language letters - sprintf(op, "Title.%c", 'E' /*MAX_FNAME()*/); + // TODO: Fallback to an non-localized entry + sprintf(op, "Title.%c", m_app->GetLanguageChar()); if ( Cmd(line, op) ) { OpString(line, "text", name); @@ -4996,8 +4996,8 @@ void CMainDialog::UpdateSceneResume(int rank) } } - // TODO: language letters - sprintf(op, "Resume.%c", 'E' /*MAX_FNAME()*/); + // TODO: Fallback to an non-localized entry + sprintf(op, "Resume.%c", m_app->GetLanguageChar()); if ( Cmd(line, op) ) { OpString(line, "text", name); -- cgit v1.2.3-1-g7c22