Converted GPs to XML

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@4737 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2010-02-16 00:33:41 +00:00
parent 9f0e6a3d83
commit e15c217c5f
14 changed files with 488 additions and 306 deletions

View File

@ -1,10 +1,23 @@
;; -*- mode: lisp -*-
(supertuxkart-grand-prix
(name _("All tracks"))
(description _("All tracks included in SuperTuxKart"))
(tracks "beach" "startrack" "lighthouse" "jungle" "mines" "islandtrack" "sandtrack" "fortmagma" "snowtuxpeak" "crescentcrossing" "olivermath" "racetrack" "city" "xr591" "canyon" "snowmountain" "tuxtollway" "skyline")
(laps 2 3 4 3 3 2 3 3 3 2 4 3 2 3 2 3 2 3)
)
<supertuxkart_grand_prix name="All tracks" description="All tracks included in SuperTuxKart">
;; EOF ;;
<track id="beach" laps="2" />
<track id="startrack" laps="3" />
<track id="lighthouse" laps="4" />
<track id="jungle" laps="3" />
<track id="mines" laps="3" />
<track id="islandtrack" laps="2" />
<track id="sandtrack" laps="3" />
<track id="fortmagma" laps="3" />
<track id="snowtuxpeak" laps="3" />
<track id="crescentcrossing" laps="2" />
<track id="olivermath" laps="4" />
<track id="racetrack" laps="3" />
<track id="city" laps="2" />
<track id="xr591" laps="3" />
<track id="canyon" laps="2" />
<track id="snowmountain" laps="3" />
<track id="tuxtollway" laps="2" />
<track id="skyline" laps="3" />
</supertuxkart_grand_prix>

View File

@ -1,10 +1,11 @@
;; -*- mode: lisp -*-
(supertuxkart-grand-prix
(name _("At world's end"))
(description _("Last grand prix, longer and harder"))
(tracks "fortmagma" "canyon" "city" "snowtuxpeak" "racetrack")
(laps 3 2 2 3 3)
)
<supertuxkart_grand_prix name="At World's End" description="Last grand prix, longer and harder">
<track id="fortmagma" laps="3" />
<track id="canyon" laps="2" />
<track id="city" laps="2" />
<track id="snowtuxpeak" laps="3" />
<track id="racetrack" laps="3" />
</supertuxkart_grand_prix>
;; EOF ;;

View File

@ -1,10 +1,9 @@
;; -*- mode: lisp -*-
(supertuxkart-grand-prix
(name _("Penguin Playground"))
(description _("First grand prix, easy to get started"))
(tracks "sandtrack" "snowmountain" "olivermath" "jungle")
(laps 3 3 4 2 )
)
<supertuxkart_grand_prix name="Penguin Playground" description="First grand prix, easy to get started">
;; EOF ;;
<track id="sandtrack" laps="3" />
<track id="snowmountain" laps="3" />
<track id="olivermath" laps="4" />
<track id="jungle" laps="2" />
</supertuxkart_grand_prix>

View File

@ -1,10 +1,10 @@
;; -*- mode: lisp -*-
(supertuxkart-grand-prix
(name _("Snag Drive"))
(description _("Third grand prix"))
(tracks "islandtrack" "tuxtollway" "mines" "crescentcrossing")
(laps 2 2 3 2)
)
<supertuxkart_grand_prix name="Snag Drive" description="Third grand prix">
<track id="islandtrack" laps="2" />
<track id="tuxtollway" laps="2" />
<track id="mines" laps="3" />
<track id="crescentcrossing" laps="2" />
</supertuxkart_grand_prix>
;; EOF ;;

View File

@ -1,10 +1,10 @@
;; -*- mode: lisp -*-
(supertuxkart-grand-prix
(name _("To the Moon and Back"))
(description _("Second grand prix"))
(tracks "lighthouse" "skyline" "startrack" "xr591" "beach")
(laps 4 3 3 3 2 )
)
<supertuxkart_grand_prix name="To the Moon and Back" description="Second grand prix">
;; EOF ;;
<track id="lighthouse" laps="4" />
<track id="skyline" laps="3" />
<track id="startrack" laps="3" />
<track id="xr591" laps="3" />
<track id="beach" laps="2" />
</supertuxkart_grand_prix>

View File

@ -6,8 +6,7 @@
align="center" text_align="center" />
<scrollable_toolbar id="gps" height="175" width="100%" align="center" label_location="each"
square_items="true" align="center"
child_width="160" child_height="120" />
square_items="true" child_width="160" child_height="120" />
<header width="100%" I18N="Section in track selection screen" text="All Tracks"
align="center" text_align="center" />

View File

@ -3,7 +3,7 @@ import sys
f = open('./data/po/gui_strings.h', 'w')
def traverse(file, node, isChallenge, level=0):
def traverse(file, node, isChallenge, isGP, level=0):
for e in node.childNodes:
if e.localName == None:
@ -15,7 +15,7 @@ def traverse(file, node, isChallenge, level=0):
if e.hasAttribute("I18N"):
comment = e.getAttribute("I18N")
if isChallenge:
if isChallenge or isGP:
if e.hasAttribute("name"):
# print "Label=", e.getAttribute("name"), " Comment=", comment
line = ""
@ -47,16 +47,26 @@ def traverse(file, node, isChallenge, level=0):
f.write( line )
traverse(file, e, isChallenge, level+1)
traverse(file, e, isChallenge, isGP, level+1)
filenames = sys.argv[1:]
for file in filenames:
print "Parsing", file
#print "Parsing", file
isChallenge = False
isGP = False
if file.endswith(".challenge"):
isChallenge = True
if file.endswith(".grandprix"):
isGP = True
doc = xml.dom.minidom.parse(file)
traverse(file, doc, isChallenge)
try:
doc = xml.dom.minidom.parse(file)
except:
print "============================================"
print "/!\\ Expat doesn't like ", file, "!"
print "============================================"
traverse(file, doc, isChallenge, isGP)

View File

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: supertuxkart\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-01 21:05-0500\n"
"PO-Revision-Date: 2010-02-01 21:06-0500\n"
"POT-Creation-Date: 2010-02-15 19:20-0500\n"
"PO-Revision-Date: 2010-02-15 19:21-0500\n"
"Last-Translator: Marianne Gagnon (Auria) <auria.mg@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -12,13 +12,13 @@ msgstr ""
"X-Poedit-Language: French\n"
#. I18N: In the track setup screen (number of laps choice, where %i is the number)
#: src/states_screens/dialogs/track_info_dialog.cpp:114
#: src/states_screens/dialogs/track_info_dialog.cpp:116
#, c-format
msgid "%i laps"
msgstr "%i tours"
#. I18N: as in "fastest lap: 60 seconds by Wilber"
#: src/modes/linear_world.cpp:263
#: src/modes/linear_world.cpp:270
#, c-format
msgid "%s by %s"
msgstr "%s par %s"
@ -28,7 +28,7 @@ msgstr "%s par %s"
msgid "%s is ready"
msgstr "%s est prêt"
#: src/modes/world.cpp:461
#: src/modes/world.cpp:520
#, c-format
msgid ""
"'%s' has\n"
@ -38,7 +38,7 @@ msgstr ""
"été éliminé."
#. I18N: for empty highscores entries
#: src/states_screens/dialogs/track_info_dialog.cpp:237
#: src/states_screens/dialogs/track_info_dialog.cpp:238
msgid "(Empty)"
msgstr "(Vide)"
@ -66,7 +66,7 @@ msgid "* Which config to use will be inferred from which 'fire' key is pressed t
msgstr "* Le jeu va automatiquement détecter quelle configuration utiliser selon la touche 'feu' utilisée pour se joindre au jeu."
#. I18N: Game mode
#: src/race/race_manager.hpp:121
#: src/race/race_manager.hpp:120
msgid "3 Strikes Battle"
msgstr "Combat 3 Prises"
@ -76,10 +76,14 @@ msgstr "Combat 3 Prises"
msgid "3 Strikes Battle : only in multiplayer games. Hit others with weapons until they lose all their lives."
msgstr "Combat '3 prises' : seulement dans les jeux multijoueurs. Utilise des armes pour faire perdre leurs vies à tes rivaux !"
#: src/states_screens/dialogs/track_info_dialog.cpp:161
#: src/states_screens/dialogs/track_info_dialog.cpp:163
msgid "= Highscores ="
msgstr "= Meilleurs scores ="
#: src/states_screens/dialogs/race_over_dialog.cpp:229
msgid "Abort Grand Prix"
msgstr "Abandonner le Grand Prix"
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: data/po/gui_strings.h:194
@ -93,7 +97,7 @@ msgid "Accelerate"
msgstr "Accélérer"
#. I18N: In the 'add new input device' dialog
#: src/states_screens/dialogs/add_device_dialog.cpp:56
#: src/states_screens/dialogs/add_device_dialog.cpp:58
msgid "Add Keyboard Configuration"
msgstr "Ajouter un clavier"
@ -119,21 +123,31 @@ msgstr ""
#. I18N: ./data/gui/arenas.stkgui
#. I18N: track group
#: src/states_screens/kart_selection.cpp:723
#: src/states_screens/tracks_screen.cpp:56
#: src/states_screens/tracks_screen.cpp:61
#: data/po/gui_strings.h:15
msgid "All"
msgstr "Tout"
#. I18N: ./data/gui/tracks.stkgui
#. I18N: Section in track selection screen
#: data/po/gui_strings.h:412
#: data/po/gui_strings.h:400
msgid "All Tracks"
msgstr "Toutes les pistes"
#: src/states_screens/race_setup_screen.cpp:164
#: src/states_screens/race_setup_screen.cpp:124
msgid "All blows allowed, so catch weapons and make clever use of them!"
msgstr "Tous les coups sont permis, alors collecte des armes et utilise-les astucieusement!"
#. I18N: ./data/grandprix/alltracks.grandprix
#: data/po/gui_strings.h:475
msgid "All tracks"
msgstr "Toutes les pistes"
#. I18N: ./data/grandprix/alltracks.grandprix
#: data/po/gui_strings.h:478
msgid "All tracks included in SuperTuxKart"
msgstr "Toutes les pistes de SuperTuxKart"
#. I18N: ./data/gui/help2.stkgui
#: data/po/gui_strings.h:116
msgid "Anchor - slows down greatly the kart in the first position"
@ -151,8 +165,8 @@ msgstr "Appliquer le mode vidéo"
msgid "Arenas"
msgstr "Arènes"
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:408
#. I18N: ./data/grandprix/atworldsend.grandprix
#: data/po/gui_strings.h:481
msgid "At World's End"
msgstr "Au bout du monde"
@ -202,7 +216,7 @@ msgid "Back"
msgstr "Retour"
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:67
#: src/states_screens/dialogs/race_paused_dialog.cpp:70
msgid "Back to Race"
msgstr "Retour à la course"
@ -213,7 +227,7 @@ msgstr "Retour à la course"
msgid "Back to main menu"
msgstr "Retour au menu principal"
#: src/states_screens/dialogs/race_over_dialog.cpp:232
#: src/states_screens/dialogs/race_over_dialog.cpp:249
msgid "Back to the main menu"
msgstr "Retour au menu principal"
@ -240,14 +254,15 @@ msgstr ""
msgid "Cake - thrown at the closest rival, best on short ranges and long straights"
msgstr "Gâteau - lance-le sur ton plus proche rival, idéal sur courtes distances et sur les routes droites"
#: src/states_screens/dialogs/add_device_dialog.cpp:71
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:69
#: src/states_screens/dialogs/player_info_dialog.cpp:85
#: src/states_screens/dialogs/add_device_dialog.cpp:73
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:79
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:72
#: src/states_screens/dialogs/player_info_dialog.cpp:87
msgid "Cancel"
msgstr "Annuler"
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:165
#: src/states_screens/dialogs/player_info_dialog.cpp:169
msgid "Cancel Remove"
msgstr "Annuler la supression"
@ -270,7 +285,7 @@ msgid "Choose a Kart"
msgstr "Choisis un Kart"
#. I18N: ./data/tracks/crescentcrossing/crescentcrossing.challenge
#: data/po/gui_strings.h:463
#: data/po/gui_strings.h:451
msgid "Collect Nitro in Math Class"
msgstr "Nitro dans la classe de maths !"
@ -281,7 +296,7 @@ msgid "Collect blue boxes : they will give you weapons or other powerups"
msgstr "Ramasse les boîtes bleues : elles contiennent des armes et divers bonus"
#. I18N: ./data/grandprix/tothemoonandback.challenge
#: data/po/gui_strings.h:439
#: data/po/gui_strings.h:427
msgid "Collect the Pharaohs Treasure"
msgstr "Le trésor du Pharaon"
@ -292,16 +307,21 @@ msgid "Collecting nitro allows you to get speed boosts whenever you wish by pres
msgstr "La nitro que tu collectes peut être ensuite utilisée pour te propulser vers l'avant en utilisant la touche correspondante. Ton niveau de nitro est visible dans la barre à la droite de l'écran."
#. I18N: ./data/grandprix/alltracks.challenge
#: data/po/gui_strings.h:424
#: data/po/gui_strings.h:412
msgid "Come first in the At World's End Grand Prix with 3 'Racer' Level AI karts."
msgstr "Arrive premier dans le grand prix 'Au bout du monde' contre 3 opposants virtuels de niveau élevé."
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:147
#: src/states_screens/dialogs/player_info_dialog.cpp:151
msgid "Confirm Remove"
msgstr "Confirme la suppression"
#: src/states_screens/race_setup_screen.cpp:170
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:126
#, c-format
msgid "Confirm resolution within %i seconds"
msgstr "Confirme la résolution dans les %i prochaines secondes."
#: src/states_screens/race_setup_screen.cpp:131
msgid "Contains no powerups, so only your driving skills matter!"
msgstr "Aucun bonus dans les pistes - seule ton habileté compte !"
@ -310,7 +330,7 @@ msgstr "Aucun bonus dans les pistes - seule ton habileté compte !"
msgid "Continue"
msgstr "Continuer"
#: src/states_screens/dialogs/race_over_dialog.cpp:227
#: src/states_screens/dialogs/race_over_dialog.cpp:244
msgid "Continue Grand Prix"
msgstr "Continuer le Grand Prix"
@ -333,7 +353,7 @@ msgid "Credits"
msgstr "Crédits"
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:131
#: src/states_screens/dialogs/player_info_dialog.cpp:135
#, c-format
msgid "Do you really want to delete player '%s' ?"
msgstr "Voulez-vous vraiment supprimer le joueur '%s' ?"
@ -346,12 +366,12 @@ msgid "Enabled"
msgstr "Activé"
#. I18N: In the 'add new player' dialog
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:35
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:38
msgid "Enter the new player's name"
msgstr "Entre le nom du nouveau joueur"
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:136
#: src/states_screens/dialogs/race_paused_dialog.cpp:139
msgid "Exit Race"
msgstr "Quitter la course"
@ -361,56 +381,56 @@ msgstr "Quitter la course"
msgid "Expert"
msgstr "Expert"
#: src/states_screens/feature_unlocked.cpp:234
#: src/states_screens/feature_unlocked.cpp:246
msgid "Feature Unlocked"
msgstr "Fonctionnalité Déverouillée"
#: src/modes/linear_world.cpp:229
#: src/modes/linear_world.cpp:233
msgid "Final lap!"
msgstr "Dernier tour!"
#. I18N: ./data/tracks/jungle/jungle.challenge
#: data/po/gui_strings.h:478
#: data/po/gui_strings.h:466
msgid "Finish 3 laps in Racetrack with 3 easy AI karts in under 2:40 minutes."
msgstr "Finis 3 tours dans 'Piste de course' avec trois opposants virtuels novices en 2:40."
#. I18N: ./data/tracks/snowtuxpeak/snowtuxpeak.challenge
#: data/po/gui_strings.h:484
#: data/po/gui_strings.h:472
msgid "Finish 3 laps on the City track with 3 AI karts in under 4:20 minutes."
msgstr "Finis 3 tours dans la piste 'Ville' contre 3 opposants virtuels en 4:20."
#. I18N: ./data/tracks/canyon/canyon.challenge
#: data/po/gui_strings.h:454
#: data/po/gui_strings.h:442
msgid "Finish 3 laps on the Tux Tollway track with 3 AI karts in under 3:35 minutes."
msgstr "Finis 3 tours dans 'L'autoroute de Tux' contre 3 opposants virtuels en 3:35."
#. I18N: ./data/tracks/jungle/jungle.challenge
#: data/po/gui_strings.h:475
#: data/po/gui_strings.h:463
msgid "Finish Race track in 2:40"
msgstr "Piste de course en 2:40"
#. I18N: ./data/tracks/canyon/canyon.challenge
#: data/po/gui_strings.h:451
#: data/po/gui_strings.h:439
msgid "Finish Tux Tollway track in 3:35"
msgstr "L'autoroute de Tux en 3:35"
#. I18N: ./data/tracks/snowtuxpeak/snowtuxpeak.challenge
#: data/po/gui_strings.h:481
#: data/po/gui_strings.h:469
msgid "Finish the City track in 4:20"
msgstr "Course dans la ville en 4:20"
#. I18N: ./data/tracks/crescentcrossing/crescentcrossing.challenge
#: data/po/gui_strings.h:466
#: data/po/gui_strings.h:454
msgid "Finish with at least 6 points of nitro on three laps of Oliver's Math Class in under 52 seconds."
msgstr "Ramasse au moins 6 points de nitro en 3 tours de 'La classe de Maths d'Oliver' en 52 secondes."
#. I18N: ./data/grandprix/tothemoonandback.challenge
#: data/po/gui_strings.h:442
#: data/po/gui_strings.h:430
msgid "Finish with at least 9 nitro points on 3 laps of Shifting Sands in under 2:20 minutes."
msgstr "Ramasse au moins 9 points de nitro en 3 tours sur la piste 'Sables mouvants' en 2:20."
#. I18N: Shown at the end of a race
#: src/states_screens/race_gui.cpp:76
#: src/states_screens/race_gui.cpp:75
msgid "Finished"
msgstr "Fini"
@ -420,18 +440,23 @@ msgstr "Fini"
msgid "Fire"
msgstr "Tirer"
#. I18N: ./data/grandprix/penguinplayground.grandprix
#: data/po/gui_strings.h:496
msgid "First grand prix, easy to get started"
msgstr "Premier grand prix, facile pour commencer"
#. I18N: Game mode
#: src/race/race_manager.hpp:119
#: src/race/race_manager.hpp:118
msgid "Follow the Leader"
msgstr "Suis le meneur"
#. I18N: ./data/tracks/city/city.challenge
#: data/po/gui_strings.h:457
#: data/po/gui_strings.h:445
msgid "Follow the Leader in the Jungle"
msgstr "Suis le meneur dans la jungle"
#. I18N: ./data/grandprix/atworldsend.challenge
#: data/po/gui_strings.h:427
#: data/po/gui_strings.h:415
msgid "Follow the Leader on a Desert Island"
msgstr "Suis le meneur sur une île déserte"
@ -483,7 +508,7 @@ msgstr ""
msgid "General"
msgstr "Général"
#: src/states_screens/race_gui.cpp:81
#: src/states_screens/race_gui.cpp:80
msgid "Go!"
msgstr "Partez!"
@ -496,16 +521,16 @@ msgstr "Grand Prix"
#. I18N: In the 'paused' screen
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: src/states_screens/dialogs/race_paused_dialog.cpp:126
#: src/states_screens/dialogs/race_paused_dialog.cpp:129
#: data/po/gui_strings.h:190
msgid "Help"
msgstr "Aide"
#: src/states_screens/dialogs/race_over_dialog.cpp:153
#: src/states_screens/dialogs/race_over_dialog.cpp:158
msgid "Highscores"
msgstr "Meilleurs scores"
#: src/states_screens/race_setup_screen.cpp:190
#: src/states_screens/race_setup_screen.cpp:153
msgid "Hit others with weapons until they lose all their lives. (Only in multiplayer games)"
msgstr ""
"Combat '3 prises' \n"
@ -523,16 +548,26 @@ msgstr "Certains boutons ont un cadenas comme celui-ci. Tu dois réussir un déf
msgid "Intermediate"
msgstr "Intermédiaire"
#. I18N: In the 'confirm resolution' dialog, that's shown when switching resoluton
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:63
msgid "Keep this resolution"
msgstr "Conserver cette résolution."
#: src/states_screens/options_screen_input.cpp:234
#, c-format
msgid "Keyboard %i"
msgstr "Clavier %i"
#: src/states_screens/race_gui.cpp:77
#: src/states_screens/race_gui.cpp:76
msgid "Lap"
msgstr "Tour"
#: src/modes/follow_the_leader.cpp:152
#. I18N: ./data/grandprix/atworldsend.grandprix
#: data/po/gui_strings.h:484
msgid "Last grand prix, longer and harder"
msgstr "Dernier grand prix, plus long et difficile"
#: src/modes/follow_the_leader.cpp:128
msgid "Leader"
msgstr "Meneur"
@ -544,11 +579,15 @@ msgstr "Gauche"
#: src/states_screens/arenas_screen.cpp:83
#: src/states_screens/challenges.cpp:83
#: src/states_screens/race_setup_screen.cpp:175
#: src/states_screens/tracks_screen.cpp:151
#: src/states_screens/race_setup_screen.cpp:136
#: src/states_screens/tracks_screen.cpp:199
msgid "Locked : solve active challenges to gain access to more!"
msgstr "Barré : relève des défis pour accéder à plus!"
#: src/states_screens/tracks_screen.cpp:175
msgid "Locked!"
msgstr "Verrouillé!"
#. I18N: ./data/gui/options_input.stkgui
#. I18N: Key binding
#: data/po/gui_strings.h:328
@ -585,7 +624,7 @@ msgstr "Musique"
msgid "Networking"
msgstr "Jeu en ligne"
#: src/challenges/challenge.cpp:123
#: src/challenges/challenge.cpp:121
#, c-format
msgid ""
"New Grand Prix '%s'\n"
@ -594,7 +633,7 @@ msgstr ""
"Nouveau grand prix\n"
"'%s' déverrouillé"
#: src/challenges/challenge.cpp:129
#: src/challenges/challenge.cpp:127
#, c-format
msgid ""
"New difficulty\n"
@ -605,11 +644,11 @@ msgstr ""
"'%s'\n"
"déverrouillée"
#: src/modes/linear_world.cpp:257
#: src/modes/linear_world.cpp:264
msgid "New fastest lap"
msgstr "Meilleur temps"
#: src/challenges/challenge.cpp:116
#: src/challenges/challenge.cpp:114
#, c-format
msgid ""
"New game mode\n"
@ -620,7 +659,7 @@ msgstr ""
"jeu déverrouillé :\n"
"'%s'"
#: src/challenges/challenge.cpp:135
#: src/challenges/challenge.cpp:133
#, c-format
msgid ""
"New kart\n"
@ -631,7 +670,7 @@ msgstr ""
"'%s'\n"
"déverrouillé"
#: src/challenges/challenge.cpp:110
#: src/challenges/challenge.cpp:108
#, c-format
msgid ""
"New track '%s'\n"
@ -648,7 +687,7 @@ msgid "Nitro"
msgstr "Nitro"
#. I18N: Game mode
#: src/race/race_manager.hpp:115
#: src/race/race_manager.hpp:114
msgid "Normal Race"
msgstr "Course Normale"
@ -667,7 +706,7 @@ msgstr "Nombre de karts IA"
#. I18N: In the 'paused' screen
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: src/states_screens/dialogs/race_paused_dialog.cpp:116
#: src/states_screens/dialogs/race_paused_dialog.cpp:119
#: data/po/gui_strings.h:186
msgid "Options"
msgstr "Options"
@ -677,16 +716,16 @@ msgstr "Options"
msgid "Parachute - slows down all karts in a better position!"
msgstr "Parachute - ralentit tous les karts en meilleure position que toi !"
#: src/states_screens/dialogs/race_paused_dialog.cpp:54
#: src/states_screens/dialogs/race_paused_dialog.cpp:57
msgid "Paused"
msgstr "Pause"
#: src/karts/player_kart.cpp:254
#: src/karts/controller/player_controller.cpp:251
msgid "Penalty time!!"
msgstr "Temps de pénalité !"
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:399
#. I18N: ./data/grandprix/penguinplayground.grandprix
#: data/po/gui_strings.h:493
msgid "Penguin Playground"
msgstr "Pour jeunes pingouins"
@ -714,11 +753,11 @@ msgstr "Joueurs"
msgid "Plunger - throw straight to pull an opponent back, or throw while looking back to make one lose sight!"
msgstr "Débouchoir à ventouse - lance-le droit devant pour tirer un opposant vers l'arrière, ou lance-le en regardant vers l'arrière pour lui obstruer la vue !"
#: src/states_screens/dialogs/press_a_key_dialog.cpp:49
#: src/states_screens/dialogs/press_a_key_dialog.cpp:51
msgid "Press ESC to cancel"
msgstr "Appuie sur <ESC> pour annuler"
#: src/states_screens/dialogs/press_a_key_dialog.cpp:32
#: src/states_screens/dialogs/press_a_key_dialog.cpp:34
msgid "Press a key"
msgstr "Appuie sur une touche"
@ -740,7 +779,7 @@ msgstr "Quitter"
msgid "Race"
msgstr "Course"
#: src/states_screens/dialogs/race_over_dialog.cpp:61
#: src/states_screens/dialogs/race_over_dialog.cpp:62
msgid "Race Results"
msgstr "Résultats de la course"
@ -749,7 +788,7 @@ msgstr "Résultats de la course"
msgid "Race Setup"
msgstr "Réglages de la course"
#: src/states_screens/dialogs/race_over_dialog.cpp:213
#: src/states_screens/dialogs/race_over_dialog.cpp:215
msgid "Race in this track again"
msgstr "Rejouer cette piste"
@ -763,12 +802,12 @@ msgstr "Arène aléatoire"
msgid "Random Kart"
msgstr "Kart aléatoire"
#: src/states_screens/tracks_screen.cpp:158
#: src/states_screens/tracks_screen.cpp:209
msgid "Random Track"
msgstr "Piste aléatoire"
#. I18N: as in "ready, set, go", shown at the beginning of the race
#: src/states_screens/race_gui.cpp:79
#: src/states_screens/race_gui.cpp:78
msgid "Ready!"
msgstr "À vos marques..."
@ -779,12 +818,12 @@ msgid "Regular Race - all blows allowed, so catch weapons and make clever use of
msgstr "Course normale - tous les coups sont permis, alors utilise les armes pour t'aider à gagner!"
#. I18N: In the player info dialog
#: src/states_screens/dialogs/player_info_dialog.cpp:103
#: src/states_screens/dialogs/player_info_dialog.cpp:105
msgid "Remove"
msgstr "Supprimer"
#. I18N: In the player info dialog
#: src/states_screens/dialogs/player_info_dialog.cpp:70
#: src/states_screens/dialogs/player_info_dialog.cpp:72
msgid "Rename"
msgstr "Renommer"
@ -795,7 +834,7 @@ msgid "Rescue"
msgstr "Sauvetage"
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:106
#: src/states_screens/dialogs/race_paused_dialog.cpp:109
msgid "Restart Race"
msgstr "Recommencer la course"
@ -805,22 +844,27 @@ msgstr "Recommencer la course"
msgid "Right"
msgstr "Droite"
#: src/states_screens/race_setup_screen.cpp:182
#: src/states_screens/race_setup_screen.cpp:144
msgid "Run for second place, as the last kart will be disqualified every time the counter hits zero. Beware : going in front of the leader will get you eliminated too!"
msgstr "vise la seconde place, car lorsque le compte à rebours atteint zéro, le dernier est éliminé. Attention: dépasser le meneur n'est pas non plus recommendé, car là aussi tu risques l'élimination!"
#. I18N: ./data/grandprix/tothemoonandback.grandprix
#: data/po/gui_strings.h:508
msgid "Second grand prix"
msgstr "Second grand prix"
#. I18N: ./data/gui/racesetup.stkgui
#: data/po/gui_strings.h:392
msgid "Select a game mode"
msgstr "Choisis un mode de jeu"
#: src/states_screens/race_gui.cpp:80
#: src/states_screens/race_gui.cpp:79
msgid "Set!"
msgstr "Prêts"
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_over_dialog.cpp:201
#: src/states_screens/dialogs/race_paused_dialog.cpp:96
#: src/states_screens/dialogs/race_over_dialog.cpp:204
#: src/states_screens/dialogs/race_paused_dialog.cpp:99
msgid "Setup New Race"
msgstr "Nouvelle course"
@ -830,8 +874,8 @@ msgstr "Nouvelle course"
msgid "Sharp Turn"
msgstr "Virage brusque"
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:402
#. I18N: ./data/grandprix/snagdrive.grandprix
#: data/po/gui_strings.h:499
msgid "Snag Drive"
msgstr "Chemin des Embûches"
@ -847,7 +891,11 @@ msgstr "Effets sonores"
msgid "Standard"
msgstr "Standard"
#: src/states_screens/dialogs/track_info_dialog.cpp:125
#: src/states_screens/dialogs/gp_info_dialog.cpp:137
msgid "Start Grand Prix"
msgstr "Commencer le Grand Prix"
#: src/states_screens/dialogs/track_info_dialog.cpp:127
msgid "Start Race"
msgstr "Commencer la course"
@ -888,8 +936,13 @@ msgstr ""
"Le fichier des meilleurs scores était\n"
"trop vieux, il a donc été supprimé."
#. I18N: ./data/grandprix/snagdrive.grandprix
#: data/po/gui_strings.h:502
msgid "Third grand prix"
msgstr "Troisième grand prix"
#. I18N: Game mode
#: src/race/race_manager.hpp:117
#: src/race/race_manager.hpp:116
msgid "Time Trial"
msgstr "Contre la Montre"
@ -899,7 +952,7 @@ msgstr "Contre la Montre"
msgid "Time Trial: Contains no powerups, so only your driving skills matter!"
msgstr "Contre la montre : aucun bonus dans les pistes - seule ton habileté compte !"
#: src/states_screens/dialogs/add_device_dialog.cpp:45
#: src/states_screens/dialogs/add_device_dialog.cpp:47
msgid ""
"To add a new Gamepad/Joystick device, simply start SuperTuxKart with it connected and it will appear in the list.\n"
"\n"
@ -915,8 +968,8 @@ msgstr ""
msgid "To help you win, there are some powerups you can collect :"
msgstr "Pour t'aider à gagner, voici certains bonus que tu peux ramasser :"
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:405
#. I18N: ./data/grandprix/tothemoonandback.grandprix
#: data/po/gui_strings.h:505
msgid "To the Moon and Back"
msgstr "Jusqu'à la lune"
@ -932,7 +985,7 @@ msgstr "Piste par %s"
msgid "Video"
msgstr "Vidéo"
#: src/modes/linear_world.cpp:612
#: src/modes/linear_world.cpp:622
msgid "WRONG WAY!"
msgstr "MAUVAISE DIRECTION !"
@ -949,65 +1002,65 @@ msgid "Weapons"
msgstr "Armes"
#. I18N: ./data/followtheleader.challenge
#: data/po/gui_strings.h:415
#: data/po/gui_strings.h:403
msgid "Win Penguin Playground Grand Prix"
msgstr "Gagne le Grand Prix 'Pour jeunes pingouins'"
#. I18N: ./data/followtheleader.challenge
#: data/po/gui_strings.h:418
#: data/po/gui_strings.h:406
msgid "Win Penguin Playground Grand Prix with 3 'Racer' Level AI karts."
msgstr "Remporte le grand prix 'Jusqu'à la lune' contre 3 opposants virtuels expérimentés."
#. I18N: ./data/grandprix/snagdrive.challenge
#: data/po/gui_strings.h:433
#: data/po/gui_strings.h:421
msgid "Win To the Moon and Back Grand Prix"
msgstr "Remporte le grand prix 'Jusqu'à la lune'."
#. I18N: ./data/tracks/fortmagma/fortmagma.challenge
#: data/po/gui_strings.h:472
#: data/po/gui_strings.h:460
msgid "Win a 1 lap Head to Head on Tux Tollway against 1 'Racer' level AI kart."
msgstr "Remporte un duel d'un tour sur l'Autoroute de Tux contre un opposant virtuel expérimenté."
#. I18N: ./data/karts/gnu/gnu.challenge
#: data/po/gui_strings.h:448
#: data/po/gui_strings.h:436
msgid "Win a 4 lap race on Snow Mountain against 4 'Racer' level AI kart."
msgstr "Remporte un duel d'un tour sur l'Autoroute de Tux contre un opposant virtuel expérimenté."
#. I18N: ./data/tracks/city/city.challenge
#: data/po/gui_strings.h:460
#: data/po/gui_strings.h:448
msgid "Win a Follow the Leader race with 3 AI karts in the Amazonian Jungle."
msgstr "Remporte une course de type 'Suis le meneur' contre 3 opposants dans la jungle."
#. I18N: ./data/grandprix/atworldsend.challenge
#: data/po/gui_strings.h:430
#: data/po/gui_strings.h:418
msgid "Win a Follow the Leader race with 3 AI karts on a Desert Island."
msgstr "Remporte une course de type 'Suis le meneur' contre 3 opposants sur un île déserte."
#. I18N: ./data/tracks/fortmagma/fortmagma.challenge
#: data/po/gui_strings.h:469
#: data/po/gui_strings.h:457
msgid "Win a Head to Head on Tux Tollway"
msgstr "Remporte un duel sur l'Autoroute de Tux."
#. I18N: ./data/karts/gnu/gnu.challenge
#: data/po/gui_strings.h:445
#: data/po/gui_strings.h:433
msgid "Win a race on Snow Mountain"
msgstr "Remporte une course sur \"Sommet enneigé\""
#. I18N: ./data/grandprix/alltracks.challenge
#: data/po/gui_strings.h:421
#: data/po/gui_strings.h:409
msgid "Win the At World's End Grand Prix"
msgstr "Remporte le grand prix 'Au bout du monde'."
#. I18N: ./data/grandprix/snagdrive.challenge
#: data/po/gui_strings.h:436
#: data/po/gui_strings.h:424
msgid "Win the To the Moon and Back Grand Prix with 3 'Racer' Level AI karts."
msgstr "Remporte le grand prix 'Jusqu'à la lune' contre 3 opposants virtuels expérimentés."
#: src/karts/player_kart.cpp:354
#: src/karts/controller/player_controller.cpp:342
msgid "You finished the race!"
msgstr "Tu as fini la course !"
#: src/modes/world.cpp:457
#: src/modes/world.cpp:516
msgid ""
"You have been\n"
"eliminated!"
@ -1015,7 +1068,7 @@ msgstr ""
"Tu as été\n"
"éliminé !"
#: src/karts/player_kart.cpp:353
#: src/karts/controller/player_controller.cpp:341
msgid "You won the race!"
msgstr "Tu as gagné la course !"
@ -1037,10 +1090,6 @@ msgstr "[aucun]"
#~ msgid "Special"
#~ msgstr "Spécial"
#~ msgid "All tracks"
#~ msgstr "Toutes les pistes"
#~ msgid "All tracks included in SuperTuxKart"
#~ msgstr "Toutes les pistes de SuperTuxKart"
#~ msgid "Amazonian Journey"
#~ msgstr "Voyage en Amazonie"
#~ msgid "Around the Lighthouse"
@ -1067,14 +1116,10 @@ msgstr "[aucun]"
#~ "modifié par Marianne Gagnon"
#~ msgid "Crescent Crossing"
#~ msgstr "Sous la pleine lune"
#~ msgid "First grand prix, easy to get started"
#~ msgstr "Premier grand prix, facile pour commencer"
#~ msgid "Fort Magma"
#~ msgstr "Fort Magma"
#~ msgid "King Weird's Castle"
#~ msgstr "Château du Roi Tordu"
#~ msgid "Last grand prix, longer and harder"
#~ msgstr "Dernier grand prix, plus long et difficile"
#~ msgid "Oliver's Math Class"
#~ msgstr "Classe de maths d'Oliver"
#~ msgid "On the Beach"
@ -1083,8 +1128,6 @@ msgstr "[aucun]"
#~ msgstr "Île préhistorique"
#~ msgid "Racetrack"
#~ msgstr "Piste de course"
#~ msgid "Second grand prix"
#~ msgstr "Second grand prix"
#~ msgid "Secret Garden"
#~ msgstr "Jardin Secret"
#~ msgid "Shifting Sands"
@ -1101,8 +1144,6 @@ msgstr "[aucun]"
#~ msgstr "L'île"
#~ msgid "The old mine"
#~ msgstr "La vieille mine"
#~ msgid "Third grand prix"
#~ msgstr "Troisième grand prix"
#~ msgid "Tux Tollway"
#~ msgstr "Autoroute de Tux"
#~ msgid "XR591"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-01 21:05-0500\n"
"POT-Creation-Date: 2010-02-15 19:20-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,13 +17,13 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#. I18N: In the track setup screen (number of laps choice, where %i is the number)
#: src/states_screens/dialogs/track_info_dialog.cpp:114
#: src/states_screens/dialogs/track_info_dialog.cpp:116
#, c-format
msgid "%i laps"
msgstr ""
#. I18N: as in "fastest lap: 60 seconds by Wilber"
#: src/modes/linear_world.cpp:263
#: src/modes/linear_world.cpp:270
#, c-format
msgid "%s by %s"
msgstr ""
@ -33,7 +33,7 @@ msgstr ""
msgid "%s is ready"
msgstr ""
#: src/modes/world.cpp:461
#: src/modes/world.cpp:520
#, c-format
msgid ""
"'%s' has\n"
@ -41,7 +41,7 @@ msgid ""
msgstr ""
#. I18N: for empty highscores entries
#: src/states_screens/dialogs/track_info_dialog.cpp:237
#: src/states_screens/dialogs/track_info_dialog.cpp:238
msgid "(Empty)"
msgstr ""
@ -75,7 +75,7 @@ msgid ""
msgstr ""
#. I18N: Game mode
#: src/race/race_manager.hpp:121
#: src/race/race_manager.hpp:120
msgid "3 Strikes Battle"
msgstr ""
@ -87,10 +87,14 @@ msgid ""
"they lose all their lives."
msgstr ""
#: src/states_screens/dialogs/track_info_dialog.cpp:161
#: src/states_screens/dialogs/track_info_dialog.cpp:163
msgid "= Highscores ="
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:229
msgid "Abort Grand Prix"
msgstr ""
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: data/po/gui_strings.h:194
@ -104,7 +108,7 @@ msgid "Accelerate"
msgstr ""
#. I18N: In the 'add new input device' dialog
#: src/states_screens/dialogs/add_device_dialog.cpp:56
#: src/states_screens/dialogs/add_device_dialog.cpp:58
msgid "Add Keyboard Configuration"
msgstr ""
@ -130,20 +134,30 @@ msgstr ""
#. I18N: ./data/gui/arenas.stkgui
#. I18N: track group
#: src/states_screens/kart_selection.cpp:723
#: src/states_screens/tracks_screen.cpp:56 data/po/gui_strings.h:15
#: src/states_screens/tracks_screen.cpp:61 data/po/gui_strings.h:15
msgid "All"
msgstr ""
#. I18N: ./data/gui/tracks.stkgui
#. I18N: Section in track selection screen
#: data/po/gui_strings.h:412
#: data/po/gui_strings.h:400
msgid "All Tracks"
msgstr ""
#: src/states_screens/race_setup_screen.cpp:164
#: src/states_screens/race_setup_screen.cpp:124
msgid "All blows allowed, so catch weapons and make clever use of them!"
msgstr ""
#. I18N: ./data/grandprix/alltracks.grandprix
#: data/po/gui_strings.h:475
msgid "All tracks"
msgstr ""
#. I18N: ./data/grandprix/alltracks.grandprix
#: data/po/gui_strings.h:478
msgid "All tracks included in SuperTuxKart"
msgstr ""
#. I18N: ./data/gui/help2.stkgui
#: data/po/gui_strings.h:116
msgid "Anchor - slows down greatly the kart in the first position"
@ -161,8 +175,8 @@ msgstr ""
msgid "Arenas"
msgstr ""
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:408
#. I18N: ./data/grandprix/atworldsend.grandprix
#: data/po/gui_strings.h:481
msgid "At World's End"
msgstr ""
@ -208,7 +222,7 @@ msgid "Back"
msgstr ""
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:67
#: src/states_screens/dialogs/race_paused_dialog.cpp:70
msgid "Back to Race"
msgstr ""
@ -218,7 +232,7 @@ msgstr ""
msgid "Back to main menu"
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:232
#: src/states_screens/dialogs/race_over_dialog.cpp:249
msgid "Back to the main menu"
msgstr ""
@ -246,14 +260,15 @@ msgid ""
"Cake - thrown at the closest rival, best on short ranges and long straights"
msgstr ""
#: src/states_screens/dialogs/add_device_dialog.cpp:71
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:69
#: src/states_screens/dialogs/player_info_dialog.cpp:85
#: src/states_screens/dialogs/add_device_dialog.cpp:73
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:79
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:72
#: src/states_screens/dialogs/player_info_dialog.cpp:87
msgid "Cancel"
msgstr ""
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:165
#: src/states_screens/dialogs/player_info_dialog.cpp:169
msgid "Cancel Remove"
msgstr ""
@ -276,7 +291,7 @@ msgid "Choose a Kart"
msgstr ""
#. I18N: ./data/tracks/crescentcrossing/crescentcrossing.challenge
#: data/po/gui_strings.h:463
#: data/po/gui_strings.h:451
msgid "Collect Nitro in Math Class"
msgstr ""
@ -287,7 +302,7 @@ msgid "Collect blue boxes : they will give you weapons or other powerups"
msgstr ""
#. I18N: ./data/grandprix/tothemoonandback.challenge
#: data/po/gui_strings.h:439
#: data/po/gui_strings.h:427
msgid "Collect the Pharaohs Treasure"
msgstr ""
@ -301,17 +316,22 @@ msgid ""
msgstr ""
#. I18N: ./data/grandprix/alltracks.challenge
#: data/po/gui_strings.h:424
#: data/po/gui_strings.h:412
msgid ""
"Come first in the At World's End Grand Prix with 3 'Racer' Level AI karts."
msgstr ""
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:147
#: src/states_screens/dialogs/player_info_dialog.cpp:151
msgid "Confirm Remove"
msgstr ""
#: src/states_screens/race_setup_screen.cpp:170
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:126
#, c-format
msgid "Confirm resolution within %i seconds"
msgstr ""
#: src/states_screens/race_setup_screen.cpp:131
msgid "Contains no powerups, so only your driving skills matter!"
msgstr ""
@ -320,7 +340,7 @@ msgstr ""
msgid "Continue"
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:227
#: src/states_screens/dialogs/race_over_dialog.cpp:244
msgid "Continue Grand Prix"
msgstr ""
@ -342,7 +362,7 @@ msgid "Credits"
msgstr ""
#. I18N: In the player info dialog (when deleting)
#: src/states_screens/dialogs/player_info_dialog.cpp:131
#: src/states_screens/dialogs/player_info_dialog.cpp:135
#, c-format
msgid "Do you really want to delete player '%s' ?"
msgstr ""
@ -354,12 +374,12 @@ msgid "Enabled"
msgstr ""
#. I18N: In the 'add new player' dialog
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:35
#: src/states_screens/dialogs/enter_player_name_dialog.cpp:38
msgid "Enter the new player's name"
msgstr ""
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:136
#: src/states_screens/dialogs/race_paused_dialog.cpp:139
msgid "Exit Race"
msgstr ""
@ -369,61 +389,61 @@ msgstr ""
msgid "Expert"
msgstr ""
#: src/states_screens/feature_unlocked.cpp:234
#: src/states_screens/feature_unlocked.cpp:246
msgid "Feature Unlocked"
msgstr ""
#: src/modes/linear_world.cpp:229
#: src/modes/linear_world.cpp:233
msgid "Final lap!"
msgstr ""
#. I18N: ./data/tracks/jungle/jungle.challenge
#: data/po/gui_strings.h:478
#: data/po/gui_strings.h:466
msgid "Finish 3 laps in Racetrack with 3 easy AI karts in under 2:40 minutes."
msgstr ""
#. I18N: ./data/tracks/snowtuxpeak/snowtuxpeak.challenge
#: data/po/gui_strings.h:484
#: data/po/gui_strings.h:472
msgid "Finish 3 laps on the City track with 3 AI karts in under 4:20 minutes."
msgstr ""
#. I18N: ./data/tracks/canyon/canyon.challenge
#: data/po/gui_strings.h:454
#: data/po/gui_strings.h:442
msgid ""
"Finish 3 laps on the Tux Tollway track with 3 AI karts in under 3:35 minutes."
msgstr ""
#. I18N: ./data/tracks/jungle/jungle.challenge
#: data/po/gui_strings.h:475
#: data/po/gui_strings.h:463
msgid "Finish Race track in 2:40"
msgstr ""
#. I18N: ./data/tracks/canyon/canyon.challenge
#: data/po/gui_strings.h:451
#: data/po/gui_strings.h:439
msgid "Finish Tux Tollway track in 3:35"
msgstr ""
#. I18N: ./data/tracks/snowtuxpeak/snowtuxpeak.challenge
#: data/po/gui_strings.h:481
#: data/po/gui_strings.h:469
msgid "Finish the City track in 4:20"
msgstr ""
#. I18N: ./data/tracks/crescentcrossing/crescentcrossing.challenge
#: data/po/gui_strings.h:466
#: data/po/gui_strings.h:454
msgid ""
"Finish with at least 6 points of nitro on three laps of Oliver's Math Class "
"in under 52 seconds."
msgstr ""
#. I18N: ./data/grandprix/tothemoonandback.challenge
#: data/po/gui_strings.h:442
#: data/po/gui_strings.h:430
msgid ""
"Finish with at least 9 nitro points on 3 laps of Shifting Sands in under "
"2:20 minutes."
msgstr ""
#. I18N: Shown at the end of a race
#: src/states_screens/race_gui.cpp:76
#: src/states_screens/race_gui.cpp:75
msgid "Finished"
msgstr ""
@ -433,18 +453,23 @@ msgstr ""
msgid "Fire"
msgstr ""
#. I18N: ./data/grandprix/penguinplayground.grandprix
#: data/po/gui_strings.h:496
msgid "First grand prix, easy to get started"
msgstr ""
#. I18N: Game mode
#: src/race/race_manager.hpp:119
#: src/race/race_manager.hpp:118
msgid "Follow the Leader"
msgstr ""
#. I18N: ./data/tracks/city/city.challenge
#: data/po/gui_strings.h:457
#: data/po/gui_strings.h:445
msgid "Follow the Leader in the Jungle"
msgstr ""
#. I18N: ./data/grandprix/atworldsend.challenge
#: data/po/gui_strings.h:427
#: data/po/gui_strings.h:415
msgid "Follow the Leader on a Desert Island"
msgstr ""
@ -495,7 +520,7 @@ msgstr ""
msgid "General"
msgstr ""
#: src/states_screens/race_gui.cpp:81
#: src/states_screens/race_gui.cpp:80
msgid "Go!"
msgstr ""
@ -508,16 +533,16 @@ msgstr ""
#. I18N: In the 'paused' screen
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: src/states_screens/dialogs/race_paused_dialog.cpp:126
#: src/states_screens/dialogs/race_paused_dialog.cpp:129
#: data/po/gui_strings.h:190
msgid "Help"
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:153
#: src/states_screens/dialogs/race_over_dialog.cpp:158
msgid "Highscores"
msgstr ""
#: src/states_screens/race_setup_screen.cpp:190
#: src/states_screens/race_setup_screen.cpp:153
msgid ""
"Hit others with weapons until they lose all their lives. (Only in "
"multiplayer games)"
@ -537,16 +562,26 @@ msgstr ""
msgid "Intermediate"
msgstr ""
#. I18N: In the 'confirm resolution' dialog, that's shown when switching resoluton
#: src/states_screens/dialogs/confirm_resolution_dialog.cpp:63
msgid "Keep this resolution"
msgstr ""
#: src/states_screens/options_screen_input.cpp:234
#, c-format
msgid "Keyboard %i"
msgstr ""
#: src/states_screens/race_gui.cpp:77
#: src/states_screens/race_gui.cpp:76
msgid "Lap"
msgstr ""
#: src/modes/follow_the_leader.cpp:152
#. I18N: ./data/grandprix/atworldsend.grandprix
#: data/po/gui_strings.h:484
msgid "Last grand prix, longer and harder"
msgstr ""
#: src/modes/follow_the_leader.cpp:128
msgid "Leader"
msgstr ""
@ -558,11 +593,15 @@ msgstr ""
#: src/states_screens/arenas_screen.cpp:83
#: src/states_screens/challenges.cpp:83
#: src/states_screens/race_setup_screen.cpp:175
#: src/states_screens/tracks_screen.cpp:151
#: src/states_screens/race_setup_screen.cpp:136
#: src/states_screens/tracks_screen.cpp:199
msgid "Locked : solve active challenges to gain access to more!"
msgstr ""
#: src/states_screens/tracks_screen.cpp:175
msgid "Locked!"
msgstr ""
#. I18N: ./data/gui/options_input.stkgui
#. I18N: Key binding
#: data/po/gui_strings.h:328
@ -599,14 +638,14 @@ msgstr ""
msgid "Networking"
msgstr ""
#: src/challenges/challenge.cpp:123
#: src/challenges/challenge.cpp:121
#, c-format
msgid ""
"New Grand Prix '%s'\n"
"now available"
msgstr ""
#: src/challenges/challenge.cpp:129
#: src/challenges/challenge.cpp:127
#, c-format
msgid ""
"New difficulty\n"
@ -614,11 +653,11 @@ msgid ""
"now available"
msgstr ""
#: src/modes/linear_world.cpp:257
#: src/modes/linear_world.cpp:264
msgid "New fastest lap"
msgstr ""
#: src/challenges/challenge.cpp:116
#: src/challenges/challenge.cpp:114
#, c-format
msgid ""
"New game mode\n"
@ -626,7 +665,7 @@ msgid ""
"now available"
msgstr ""
#: src/challenges/challenge.cpp:135
#: src/challenges/challenge.cpp:133
#, c-format
msgid ""
"New kart\n"
@ -634,7 +673,7 @@ msgid ""
"now available"
msgstr ""
#: src/challenges/challenge.cpp:110
#: src/challenges/challenge.cpp:108
#, c-format
msgid ""
"New track '%s'\n"
@ -648,7 +687,7 @@ msgid "Nitro"
msgstr ""
#. I18N: Game mode
#: src/race/race_manager.hpp:115
#: src/race/race_manager.hpp:114
msgid "Normal Race"
msgstr ""
@ -667,7 +706,7 @@ msgstr ""
#. I18N: In the 'paused' screen
#. I18N: ./data/gui/main.stkgui
#. I18N: Main menu button
#: src/states_screens/dialogs/race_paused_dialog.cpp:116
#: src/states_screens/dialogs/race_paused_dialog.cpp:119
#: data/po/gui_strings.h:186
msgid "Options"
msgstr ""
@ -677,16 +716,16 @@ msgstr ""
msgid "Parachute - slows down all karts in a better position!"
msgstr ""
#: src/states_screens/dialogs/race_paused_dialog.cpp:54
#: src/states_screens/dialogs/race_paused_dialog.cpp:57
msgid "Paused"
msgstr ""
#: src/karts/player_kart.cpp:254
#: src/karts/controller/player_controller.cpp:251
msgid "Penalty time!!"
msgstr ""
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:399
#. I18N: ./data/grandprix/penguinplayground.grandprix
#: data/po/gui_strings.h:493
msgid "Penguin Playground"
msgstr ""
@ -715,11 +754,11 @@ msgid ""
"back to make one lose sight!"
msgstr ""
#: src/states_screens/dialogs/press_a_key_dialog.cpp:49
#: src/states_screens/dialogs/press_a_key_dialog.cpp:51
msgid "Press ESC to cancel"
msgstr ""
#: src/states_screens/dialogs/press_a_key_dialog.cpp:32
#: src/states_screens/dialogs/press_a_key_dialog.cpp:34
msgid "Press a key"
msgstr ""
@ -741,7 +780,7 @@ msgstr ""
msgid "Race"
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:61
#: src/states_screens/dialogs/race_over_dialog.cpp:62
msgid "Race Results"
msgstr ""
@ -750,7 +789,7 @@ msgstr ""
msgid "Race Setup"
msgstr ""
#: src/states_screens/dialogs/race_over_dialog.cpp:213
#: src/states_screens/dialogs/race_over_dialog.cpp:215
msgid "Race in this track again"
msgstr ""
@ -764,12 +803,12 @@ msgstr ""
msgid "Random Kart"
msgstr ""
#: src/states_screens/tracks_screen.cpp:158
#: src/states_screens/tracks_screen.cpp:209
msgid "Random Track"
msgstr ""
#. I18N: as in "ready, set, go", shown at the beginning of the race
#: src/states_screens/race_gui.cpp:79
#: src/states_screens/race_gui.cpp:78
msgid "Ready!"
msgstr ""
@ -782,12 +821,12 @@ msgid ""
msgstr ""
#. I18N: In the player info dialog
#: src/states_screens/dialogs/player_info_dialog.cpp:103
#: src/states_screens/dialogs/player_info_dialog.cpp:105
msgid "Remove"
msgstr ""
#. I18N: In the player info dialog
#: src/states_screens/dialogs/player_info_dialog.cpp:70
#: src/states_screens/dialogs/player_info_dialog.cpp:72
msgid "Rename"
msgstr ""
@ -798,7 +837,7 @@ msgid "Rescue"
msgstr ""
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_paused_dialog.cpp:106
#: src/states_screens/dialogs/race_paused_dialog.cpp:109
msgid "Restart Race"
msgstr ""
@ -808,25 +847,30 @@ msgstr ""
msgid "Right"
msgstr ""
#: src/states_screens/race_setup_screen.cpp:182
#: src/states_screens/race_setup_screen.cpp:144
msgid ""
"Run for second place, as the last kart will be disqualified every time the "
"counter hits zero. Beware : going in front of the leader will get you "
"eliminated too!"
msgstr ""
#. I18N: ./data/grandprix/tothemoonandback.grandprix
#: data/po/gui_strings.h:508
msgid "Second grand prix"
msgstr ""
#. I18N: ./data/gui/racesetup.stkgui
#: data/po/gui_strings.h:392
msgid "Select a game mode"
msgstr ""
#: src/states_screens/race_gui.cpp:80
#: src/states_screens/race_gui.cpp:79
msgid "Set!"
msgstr ""
#. I18N: In the 'paused' screen
#: src/states_screens/dialogs/race_over_dialog.cpp:201
#: src/states_screens/dialogs/race_paused_dialog.cpp:96
#: src/states_screens/dialogs/race_over_dialog.cpp:204
#: src/states_screens/dialogs/race_paused_dialog.cpp:99
msgid "Setup New Race"
msgstr ""
@ -836,8 +880,8 @@ msgstr ""
msgid "Sharp Turn"
msgstr ""
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:402
#. I18N: ./data/grandprix/snagdrive.grandprix
#: data/po/gui_strings.h:499
msgid "Snag Drive"
msgstr ""
@ -853,7 +897,11 @@ msgstr ""
msgid "Standard"
msgstr ""
#: src/states_screens/dialogs/track_info_dialog.cpp:125
#: src/states_screens/dialogs/gp_info_dialog.cpp:137
msgid "Start Grand Prix"
msgstr ""
#: src/states_screens/dialogs/track_info_dialog.cpp:127
msgid "Start Race"
msgstr ""
@ -891,8 +939,13 @@ msgid ""
"all highscores have been erased."
msgstr ""
#. I18N: ./data/grandprix/snagdrive.grandprix
#: data/po/gui_strings.h:502
msgid "Third grand prix"
msgstr ""
#. I18N: Game mode
#: src/race/race_manager.hpp:117
#: src/race/race_manager.hpp:116
msgid "Time Trial"
msgstr ""
@ -902,7 +955,7 @@ msgstr ""
msgid "Time Trial: Contains no powerups, so only your driving skills matter!"
msgstr ""
#: src/states_screens/dialogs/add_device_dialog.cpp:45
#: src/states_screens/dialogs/add_device_dialog.cpp:47
msgid ""
"To add a new Gamepad/Joystick device, simply start SuperTuxKart with it "
"connected and it will appear in the list.\n"
@ -920,8 +973,8 @@ msgstr ""
msgid "To help you win, there are some powerups you can collect :"
msgstr ""
#. I18N: ./data/gui/tracks.stkgui
#: data/po/gui_strings.h:405
#. I18N: ./data/grandprix/tothemoonandback.grandprix
#: data/po/gui_strings.h:505
msgid "To the Moon and Back"
msgstr ""
@ -937,7 +990,7 @@ msgstr ""
msgid "Video"
msgstr ""
#: src/modes/linear_world.cpp:612
#: src/modes/linear_world.cpp:622
msgid "WRONG WAY!"
msgstr ""
@ -952,72 +1005,72 @@ msgid "Weapons"
msgstr ""
#. I18N: ./data/followtheleader.challenge
#: data/po/gui_strings.h:415
#: data/po/gui_strings.h:403
msgid "Win Penguin Playground Grand Prix"
msgstr ""
#. I18N: ./data/followtheleader.challenge
#: data/po/gui_strings.h:418
#: data/po/gui_strings.h:406
msgid "Win Penguin Playground Grand Prix with 3 'Racer' Level AI karts."
msgstr ""
#. I18N: ./data/grandprix/snagdrive.challenge
#: data/po/gui_strings.h:433
#: data/po/gui_strings.h:421
msgid "Win To the Moon and Back Grand Prix"
msgstr ""
#. I18N: ./data/tracks/fortmagma/fortmagma.challenge
#: data/po/gui_strings.h:472
#: data/po/gui_strings.h:460
msgid ""
"Win a 1 lap Head to Head on Tux Tollway against 1 'Racer' level AI kart."
msgstr ""
#. I18N: ./data/karts/gnu/gnu.challenge
#: data/po/gui_strings.h:448
#: data/po/gui_strings.h:436
msgid "Win a 4 lap race on Snow Mountain against 4 'Racer' level AI kart."
msgstr ""
#. I18N: ./data/tracks/city/city.challenge
#: data/po/gui_strings.h:460
#: data/po/gui_strings.h:448
msgid "Win a Follow the Leader race with 3 AI karts in the Amazonian Jungle."
msgstr ""
#. I18N: ./data/grandprix/atworldsend.challenge
#: data/po/gui_strings.h:430
#: data/po/gui_strings.h:418
msgid "Win a Follow the Leader race with 3 AI karts on a Desert Island."
msgstr ""
#. I18N: ./data/tracks/fortmagma/fortmagma.challenge
#: data/po/gui_strings.h:469
#: data/po/gui_strings.h:457
msgid "Win a Head to Head on Tux Tollway"
msgstr ""
#. I18N: ./data/karts/gnu/gnu.challenge
#: data/po/gui_strings.h:445
#: data/po/gui_strings.h:433
msgid "Win a race on Snow Mountain"
msgstr ""
#. I18N: ./data/grandprix/alltracks.challenge
#: data/po/gui_strings.h:421
#: data/po/gui_strings.h:409
msgid "Win the At World's End Grand Prix"
msgstr ""
#. I18N: ./data/grandprix/snagdrive.challenge
#: data/po/gui_strings.h:436
#: data/po/gui_strings.h:424
msgid "Win the To the Moon and Back Grand Prix with 3 'Racer' Level AI karts."
msgstr ""
#: src/karts/player_kart.cpp:354
#: src/karts/controller/player_controller.cpp:342
msgid "You finished the race!"
msgstr ""
#: src/modes/world.cpp:457
#: src/modes/world.cpp:516
msgid ""
"You have been\n"
"eliminated!"
msgstr ""
#: src/karts/player_kart.cpp:353
#: src/karts/controller/player_controller.cpp:341
msgid "You won the race!"
msgstr ""

View File

@ -4,8 +4,8 @@
CPP_FILE_LIST="`find ./src -name '*.cpp' -print` `find ./src -name '*.hpp' -print`"
LISP_FILE_LIST="`find ./data -name '*.track' -print` `find ./data -name '*.challenge' -print` `find ./data -name '*.grandprix' -print`"
XML_FILE_LIST=`find ./data -name '*.xml' -print`
STKGUI_FILE_LIST=`find ./data -name '*.stkgui' -print && find ./data -name '*.challenge' -print`
#XML_FILE_LIST=`find ./data -name '*.xml' -print`
OTHER_XML_FILES=`find ./data -name '*.stkgui' -print && find ./data -name '*.challenge' -print && find ./data -name '*.grandprix' -print`
echo "--------------------"
echo " Source Files :"
@ -20,13 +20,10 @@ echo $LISP_FILE_LIST
echo "--------------------"
echo " XMl Files :"
echo "--------------------"
echo $STKGUI_FILE_LIST # $XML_FILE_LIST
echo $OTHER_XML_FILES # $XML_FILE_LIST
# XML Files
# (Since xgettext cannot read XML directly, strings are extracted using 'grep' and 'sed' first
#grep -ho 'text=\"[^\"]*' $XML_FILE_LIST $STKGUI_FILE_LIST | sed 's/text=\"\(.*\)/_(\"\1\")/' > ./data/po/gui_strings.txt
# nothing in .xml files atm. If there ever is, add $XML_FILE_LIST below
python ./data/po/extract_strings_from_XML.py $STKGUI_FILE_LIST
python ./data/po/extract_strings_from_XML.py $OTHER_XML_FILES

View File

@ -24,50 +24,102 @@
#include <stdexcept>
#include "io/file_manager.hpp"
#include "lisp/parser.hpp"
#include "lisp/lisp.hpp"
#include "tracks/track_manager.hpp"
#include "utils/string_utils.hpp"
#include "utils/translation.hpp"
GrandPrixData::GrandPrixData(const std::string filename)
GrandPrixData::GrandPrixData(const std::string filename) throw(std::logic_error)
{
m_filename = filename;
m_id = StringUtils::getBasename(StringUtils::removeExtension(filename));
const lisp::Lisp* lisp = 0;
try
XMLNode* root = file_manager->createXMLTree(file_manager->getDataDir()+filename);
if (!root)
{
fprintf(stderr, "/!\\ Error while trying to read grandprix file '%s'\n", filename.c_str());
throw std::logic_error("File not found");
}
bool foundName = false;
if (root->getName() == "supertuxkart_grand_prix")
{
lisp::Parser parser;
lisp = parser.parse(file_manager->getConfigFile(m_filename));
lisp = lisp->getLisp("supertuxkart-grand-prix");
if(!lisp)
{
throw std::runtime_error("No supertuxkart-grand-prix node");
}
std::string temp_name;
lisp->get ("name", temp_name );
// FIXME: for now all GP names are automatically translated by
// the lisp code, so no need to translate them here (which actually
// results in a crash, since the translated name is wchar_t and not
// utf-8.
//m_name = _(temp_name.c_str());
m_name = temp_name.c_str();
if (root->get("name", &temp_name) == 0)
{
fprintf(stderr, "/!\\ Error while trying to read grandprix file '%s' : "
"missing 'name' attribute\n", filename.c_str());
delete root;
throw std::logic_error("File contents are incomplete or corrupt");
}
m_name = _(temp_name.c_str());
foundName = true;
std::string temp_desc;
const int readDesc = root->get( "description", &temp_desc );
if (readDesc == 1 && temp_desc.size() > 0)
{
m_description = _(temp_desc.c_str());
}
// This used to be there, but I'm leaving it out since it seems it was unused
// lisp->get("item", m_item_style);
lisp->get ("description", m_description );
lisp->get ("item", m_item_style);
lisp->getVector("tracks", m_tracks );
lisp->getVector("laps", m_laps );
}
catch(std::exception& err)
else
{
fprintf(stderr, "Error while reading grandprix file '%s'\n", filename.c_str());
fprintf(stderr, "%s", err.what());
fprintf(stderr, "\n");
fprintf(stderr, "/!\\ Error while trying to read grandprix file '%s' : "
"Root node has an unexpected name\n", filename.c_str());
delete root;
throw std::logic_error("File contents are incomplete or corrupt");
}
const int amount = root->getNumNodes();
for (int i=0; i<amount; i++)
{
const XMLNode* node = root->getNode(i);
// read a track entry
if (node->getName() == "track")
{
std::string trackID;
int numLaps;
const int idFound = node->get("id", &trackID );
const int lapFound = node->get("laps", &numLaps );
if (!idFound || !lapFound)
{
fprintf(stderr, "/!\\ Error while trying to read grandprix file '%s' : "
"<track> tag does not have id and laps attributes. \n", filename.c_str());
delete root;
throw std::logic_error("File contents are incomplete or corrupt");
}
m_tracks.push_back(trackID);
m_laps.push_back(numLaps);
assert(m_tracks.size() == m_laps.size());
}
else
{
std::cerr << "Unknown node in Grand Prix XML file : " << node->getName().c_str() << std::endl;
delete root;
throw std::runtime_error("Unknown node in sfx XML file");
}
}// nend for
delete root;
// sanity checks
if (!foundName)
{
fprintf(stderr, "/!\\ Error while trying to read grandprix file '%s' : "
"missing 'name' attribute\n", filename.c_str());
throw std::logic_error("File contents are incomplete or corrupt");
}
delete lisp;
}
// ----------------------------------------------------------------------------
bool GrandPrixData::checkConsistency()

View File

@ -25,33 +25,43 @@
#include <vector>
#include <cassert>
#include <irrString.h>
#include <stdexcept>
/** Simple class that hold the data relevant to a 'grand_prix', aka. a number
of races that has to be completed one after the other */
class GrandPrixData
{
irr::core::stringw m_name; // The name of the grand prix - might be translated!
std::string m_id; // Internal name of the grand prix, not translated
std::string m_filename; // Original filename, only for error handling needed
std::string m_description; // Description for this track
std::string m_item_style; // item style which overwrites the track default
/** The ident of the tracks in this grand prix in their right order, ident
means the filename of the .track file without .track extension
(ie. 'volcano') */
irr::core::stringw m_name; //!< The name of the grand prix - might be translated!
irr::core::stringw m_description; //!< Description for this GP
std::string m_id; //!< Internal name of the grand prix, not translated
std::string m_filename; //!< Original filename, only for error handling needed
std::string m_item_style; //!< item style which overwrites the track default
/**
* The ident of the tracks in this grand prix in their right order, ident
* means the filename of the .track file without .track extension (ie. 'volcano')
*/
std::vector<std::string> m_tracks;
/** The number of laps that each track should be raced, in the right
* order*/
/** The number of laps that each track should be raced, in the right order */
std::vector<int> m_laps;
public:
/** Load the GrandPrixData from the given filename */
GrandPrixData (const std::string filename);
GrandPrixData (const std::string filename) throw(std::logic_error);
GrandPrixData () {}; // empty for initialising
/** @return the (potentially translated) user-visible name of the Grand Prix */
const irr::core::stringw& getName () const { return m_name; }
/** @return the (potentially translated) user-visible description of the Grand Prix */
const irr::core::stringw& getDescription () const { return m_description; }
/** @return the internale name identifier of the Grand Prix (not translated) */
const std::string& getId () const { return m_id; }
const std::string& getDescription () const { return m_description; }
const std::string& getItemStyle () const { return m_item_style; }
const std::string& getItemStyle () const { return m_item_style; }
const std::string& getFilename () const { return m_filename; }
const std::string& getTrack(size_t track_index) const { assert(track_index >= 0); assert(track_index < m_tracks.size());
return m_tracks[track_index]; }

View File

@ -57,7 +57,14 @@ const GrandPrixData* GrandPrixManager::getGrandPrix(const std::string& s) const
// ----------------------------------------------------------------------------
void GrandPrixManager::load(const std::string& filename)
{
m_gp_data.push_back(new GrandPrixData(filename));
try
{
m_gp_data.push_back(new GrandPrixData(filename));
}
catch (std::logic_error& er)
{
fprintf(stderr, "GrandPrixManager : ignoring GP %s ( %s ) \n", filename.c_str(), er.what());
}
} // load
// ----------------------------------------------------------------------------