eliot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Eliot-dev] eliot po/POTFILES.in po/eliot.pot po/fr.po qt/p...


From: Olivier Teulière
Subject: [Eliot-dev] eliot po/POTFILES.in po/eliot.pot po/fr.po qt/p...
Date: Thu, 19 Feb 2009 21:56:42 +0000

CVSROOT:        /cvsroot/eliot
Module name:    eliot
Changes by:     Olivier Teulière <ipkiss>       09/02/19 21:56:42

Modified files:
        po             : POTFILES.in eliot.pot fr.po 
        qt             : prefs_dialog.cpp 

Log message:
        Update of the French translation

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/po/POTFILES.in?cvsroot=eliot&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/eliot/po/eliot.pot?cvsroot=eliot&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/eliot/po/fr.po?cvsroot=eliot&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/prefs_dialog.cpp?cvsroot=eliot&r1=1.11&r2=1.12

Patches:
Index: po/POTFILES.in
===================================================================
RCS file: /cvsroot/eliot/eliot/po/POTFILES.in,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- po/POTFILES.in      8 Dec 2008 21:45:28 -0000       1.7
+++ po/POTFILES.in      19 Feb 2009 21:56:41 -0000      1.8
@@ -1,29 +1,37 @@
+# utils/eliottxt.cpp
 dic/automaton.cpp
 dic/automaton.h
-dic/header.cpp
-dic/header.h
+dic/compdic.cpp
 dic/dic.cpp
 dic/dic.h
+dic/dic_exception.cpp
+dic/dic_exception.h
 dic/dic_internals.h
 dic/dic_search.cpp
+dic/encoding.cpp
+dic/encoding.h
+dic/grammar.cpp
+dic/grammar.h
 dic/hashtable.cpp
 dic/hashtable.h
+dic/header.cpp
+dic/header.h
+dic/listdic.cpp
 dic/regexp.cpp
 dic/regexp.h
+dic/regexpmain.cpp
 dic/tile.cpp
 dic/tile.h
-dic/compdic.cpp
-dic/listdic.cpp
-dic/regexpmain.cpp
 game/ai_percent.cpp
 game/ai_percent.h
 game/ai_player.h
 game/bag.cpp
 game/bag.h
 game/board.cpp
-game/board_cross.cpp
 game/board.h
+game/board_cross.cpp
 game/board_search.cpp
+game/board_search.h
 game/command.cpp
 game/command.h
 game/coord.cpp
@@ -36,16 +44,17 @@
 game/freegame.cpp
 game/freegame.h
 game/game.cpp
+game/game.h
 game/game_exception.cpp
 game/game_exception.h
 game/game_factory.cpp
 game/game_factory.h
-game/game.h
 game/game_io.cpp
 game/game_move_cmd.cpp
 game/game_move_cmd.h
 game/history.cpp
 game/history.h
+game/matrix.h
 game/move.cpp
 game/move.h
 game/navigation.cpp
@@ -72,32 +81,34 @@
 game/settings.h
 game/training.cpp
 game/training.h
-game/turn_cmd.cpp
-game/turn_cmd.h
 game/turn.cpp
 game/turn.h
-# utils/eliottxt.cpp
-utils/game_io.h
-utils/game_io.cpp
-utils/ncurses.cpp
-utils/ncurses.h
+game/turn_cmd.cpp
+game/turn_cmd.h
 qt/aux_window.cpp
 qt/aux_window.h
 qt/bag_widget.cpp
 qt/bag_widget.h
 qt/board_widget.cpp
 qt/board_widget.h
+qt/coord_model.cpp
+qt/coord_model.h
 qt/dic_tools_widget.cpp
 qt/dic_tools_widget.h
 qt/history_widget.cpp
 qt/history_widget.h
+qt/main.cpp
 qt/main_window.cpp
 qt/main_window.h
-qt/main.cpp
 qt/new_game.cpp
 qt/new_game.h
+qt/play_word_mediator.cpp
+qt/play_word_mediator.h
 qt/player_widget.cpp
 qt/player_widget.h
+qt/prefs_dialog.cpp
+qt/prefs_dialog.h
+qt/qtcommon.h
 qt/score_widget.cpp
 qt/score_widget.h
 qt/training_widget.cpp
@@ -108,3 +119,7 @@
 qt/ui/player_widget.ui
 qt/ui/prefs_dialog.ui
 qt/ui/training_widget.ui
+utils/game_io.cpp
+utils/game_io.h
+utils/ncurses.cpp
+utils/ncurses.h

Index: po/eliot.pot
===================================================================
RCS file: /cvsroot/eliot/eliot/po/eliot.pot,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- po/eliot.pot        24 Jan 2009 23:02:42 -0000      1.25
+++ po/eliot.pot        19 Feb 2009 21:56:41 -0000      1.26
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-24 18:48+0100\n"
+"POT-Creation-Date: 2009-02-19 22:54+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -16,73 +16,6 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: dic/header.cpp:293
-msgid ""
-"Too old dictionary format. This format is not supported anymore since Eliot "
-"1.8. You can create dictionaries in the new format with the 'compdic' tool "
-"provided with Eliot (since version 1.6)."
-msgstr ""
-
-#: dic/header.cpp:435
-#, c-format
-msgid "dictionary name: %s\n"
-msgstr ""
-
-#: dic/header.cpp:438
-#, c-format
-msgid "compressed on: %s\n"
-msgstr ""
-
-#: dic/header.cpp:439
-#, c-format
-msgid "compressed using a binary compiled by: %s\n"
-msgstr ""
-
-#: dic/header.cpp:440
-#, c-format
-msgid "dictionary type: %s\n"
-msgstr ""
-
-#: dic/header.cpp:441
-#, c-format
-msgid "letters: %s\n"
-msgstr ""
-
-#: dic/header.cpp:442
-#, c-format
-msgid "number of letters: %lu\n"
-msgstr ""
-
-#: dic/header.cpp:443
-#, c-format
-msgid "number of words: %d\n"
-msgstr ""
-
-#: dic/header.cpp:445
-#, c-format
-msgid "header size: %lu bytes\n"
-msgstr ""
-
-#: dic/header.cpp:446
-#, c-format
-msgid "root: %d (edge)\n"
-msgstr ""
-
-#: dic/header.cpp:447
-#, c-format
-msgid "nodes: %d used + %d saved\n"
-msgstr ""
-
-#: dic/header.cpp:448
-#, c-format
-msgid "edges: %d used + %d saved\n"
-msgstr ""
-
-#: dic/header.cpp:450
-#, c-format
-msgid "letter | points | frequency | vowel | consonant\n"
-msgstr ""
-
 #: dic/compdic.cpp:401
 msgid "Mandatory options:"
 msgstr ""
@@ -217,6 +150,73 @@
 msgid " Maximum recursion level reached: %d\n"
 msgstr ""
 
+#: dic/header.cpp:293
+msgid ""
+"Too old dictionary format. This format is not supported anymore since Eliot "
+"1.8. You can create dictionaries in the new format with the 'compdic' tool "
+"provided with Eliot (since version 1.6)."
+msgstr ""
+
+#: dic/header.cpp:435
+#, c-format
+msgid "dictionary name: %s\n"
+msgstr ""
+
+#: dic/header.cpp:438
+#, c-format
+msgid "compressed on: %s\n"
+msgstr ""
+
+#: dic/header.cpp:439
+#, c-format
+msgid "compressed using a binary compiled by: %s\n"
+msgstr ""
+
+#: dic/header.cpp:440
+#, c-format
+msgid "dictionary type: %s\n"
+msgstr ""
+
+#: dic/header.cpp:441
+#, c-format
+msgid "letters: %s\n"
+msgstr ""
+
+#: dic/header.cpp:442
+#, c-format
+msgid "number of letters: %lu\n"
+msgstr ""
+
+#: dic/header.cpp:443
+#, c-format
+msgid "number of words: %d\n"
+msgstr ""
+
+#: dic/header.cpp:445
+#, c-format
+msgid "header size: %lu bytes\n"
+msgstr ""
+
+#: dic/header.cpp:446
+#, c-format
+msgid "root: %d (edge)\n"
+msgstr ""
+
+#: dic/header.cpp:447
+#, c-format
+msgid "nodes: %d used + %d saved\n"
+msgstr ""
+
+#: dic/header.cpp:448
+#, c-format
+msgid "edges: %d used + %d saved\n"
+msgstr ""
+
+#: dic/header.cpp:450
+#, c-format
+msgid "letter | points | frequency | vowel | consonant\n"
+msgstr ""
+
 #: dic/listdic.cpp:94
 #, c-format
 msgid "offset binary   | structure\n"
@@ -310,385 +310,126 @@
 msgid "Training"
 msgstr ""
 
-#: utils/ncurses.cpp:284
-msgid "Scores"
+#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:100
+msgid "Letter"
 msgstr ""
 
-#: utils/ncurses.cpp:288 utils/ncurses.cpp:294
-#, c-format
-msgid "%s: %d"
+#: qt/bag_widget.cpp:51 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
+#: qt/training_widget.cpp:69
+msgid "Points"
 msgstr ""
 
-#: utils/ncurses.cpp:306
-msgid "Racks"
+#: qt/dic_tools_widget.cpp:90 qt/dic_tools_widget.cpp:95
+#: qt/ui/player_widget.ui:16 qt/ui/training_widget.ui:21
+msgid "Rack:"
 msgstr ""
 
-#: utils/ncurses.cpp:310 utils/ncurses.cpp:316
-#, c-format
-msgid "%s: %ls"
+#: qt/dic_tools_widget.cpp:102
+msgid "Frequency"
 msgstr ""
 
-#: utils/ncurses.cpp:330 utils/ncurses.cpp:333
-msgid "Search complete"
+#: qt/dic_tools_widget.cpp:103
+msgid "Vowel?"
 msgstr ""
 
-#: utils/ncurses.cpp:342 qt/ui/training_widget.ui:71
-msgid "Search results"
+#: qt/dic_tools_widget.cpp:104
+msgid "Consonant?"
 msgstr ""
 
-#: utils/ncurses.cpp:371
-msgid "History of the game"
+#: qt/dic_tools_widget.cpp:142 qt/dic_tools_widget.cpp:175
+#: qt/dic_tools_widget.cpp:228
+msgid "Please select a dictionary"
 msgstr ""
 
-#: utils/ncurses.cpp:377
-msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
+#: qt/dic_tools_widget.cpp:153
+msgid "The word '%1' exists"
 msgstr ""
 
-#: utils/ncurses.cpp:416 qt/history_widget.cpp:143 qt/main_window.cpp:656
-msgid "(PASS)"
+#: qt/dic_tools_widget.cpp:158
+msgid "The word '%1' does not exist"
 msgstr ""
 
-#: utils/ncurses.cpp:442
-msgid "Help"
+#: qt/dic_tools_widget.cpp:182
+msgid "Rack: %1"
 msgstr ""
 
-#: utils/ncurses.cpp:446
-msgid "[Global]"
+#: qt/dic_tools_widget.cpp:201
+msgid "Anagrams"
 msgstr ""
 
-#: utils/ncurses.cpp:447
-msgid "   h, H, ?          Show/hide help box"
+#: qt/dic_tools_widget.cpp:235
+msgid "Regular expression: %1"
 msgstr ""
 
-#: utils/ncurses.cpp:448
-msgid "   y, Y             Show/hide history of the game"
+#: qt/dic_tools_widget.cpp:258
+msgid "Invalid regular expression: %1"
 msgstr ""
 
-#: utils/ncurses.cpp:449
-msgid ""
-"   b, B             Show/hide contents of the bag (including letters of the "
-"racks)"
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
+msgid "Yes"
 msgstr ""
 
-#: utils/ncurses.cpp:450
-msgid "   e, E             Show/hide dots on empty squares of the board"
+#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
+msgid "No"
 msgstr ""
 
-#: utils/ncurses.cpp:451
-msgid "   d, D             Check the existence of a word in the dictionary"
+#: qt/history_widget.cpp:51
+msgid "Turn"
 msgstr ""
 
-#: utils/ncurses.cpp:452
-msgid "   j, J             Play a word"
+#: qt/history_widget.cpp:52
+msgid "Rack"
 msgstr ""
 
-#: utils/ncurses.cpp:453
-msgid "   s, S             Save the game"
+#: qt/history_widget.cpp:53 qt/training_widget.cpp:67
+msgid "Word"
 msgstr ""
 
-#: utils/ncurses.cpp:454
-msgid "   l, L             Load a game"
+#: qt/history_widget.cpp:54 qt/training_widget.cpp:68
+msgid "Ref"
 msgstr ""
 
-#: utils/ncurses.cpp:455
-msgid "   q, Q             Quit"
+#: qt/history_widget.cpp:87 qt/score_widget.cpp:46
+msgid "Player"
 msgstr ""
 
-#: utils/ncurses.cpp:458
-msgid "[Training mode]"
+#: qt/history_widget.cpp:143 qt/main_window.cpp:656 utils/ncurses.cpp:416
+msgid "(PASS)"
 msgstr ""
 
-#: utils/ncurses.cpp:459
-msgid "   *                Take a random rack"
+#: qt/history_widget.cpp:177 qt/main_window.cpp:382
+msgid "&Game"
 msgstr ""
 
-#: utils/ncurses.cpp:460
-msgid "   +                Complete the current rack randomly"
+#: qt/main_window.cpp:112 qt/main_window.cpp:770 qt/ui/main_window.ui:38
+msgid "Board"
 msgstr ""
 
-#: utils/ncurses.cpp:461
-msgid "   t, T             Set the rack manually"
+#: qt/main_window.cpp:171
+msgid ""
+"Cannot load dictionary '%1' indicated in the preferences.\n"
+"Reason: %2"
 msgstr ""
 
-#: utils/ncurses.cpp:462
-msgid "   c, C             Compute all the possible words"
+#: qt/main_window.cpp:261
+msgid "No game"
 msgstr ""
 
-#: utils/ncurses.cpp:463
-msgid "   r, R             Show/hide search results"
+#: qt/main_window.cpp:269 qt/ui/prefs_dialog.ui:192 utils/ncurses.cpp:1116
+msgid "Training mode"
 msgstr ""
 
-#: utils/ncurses.cpp:466
-msgid "[Duplicate mode]"
+#: qt/main_window.cpp:274
+msgid "Duplicate game"
 msgstr ""
 
-#: utils/ncurses.cpp:467
-msgid "   n, N             Switch to the next human player"
+#: qt/main_window.cpp:279 qt/new_game.cpp:100 qt/new_game.cpp:169
+#: qt/ui/new_game.ui:47
+msgid "Free game"
 msgstr ""
 
-#: utils/ncurses.cpp:470
-msgid "[Free game mode]"
-msgstr ""
-
-#: utils/ncurses.cpp:471
-msgid "   p, P             Pass your turn (with or without changing letters)"
-msgstr ""
-
-#: utils/ncurses.cpp:474
-msgid "[Miscellaneous]"
-msgstr ""
-
-#: utils/ncurses.cpp:475
-msgid "   <up>, <down>     Navigate in a box line by line"
-msgstr ""
-
-#: utils/ncurses.cpp:476
-msgid "   <pgup>, <pgdown> Navigate in a box page by page"
-msgstr ""
-
-#: utils/ncurses.cpp:477
-msgid "   Ctrl-l           Refresh the screen"
-msgstr ""
-
-#: utils/ncurses.cpp:488 qt/main_window.cpp:752 qt/ui/main_window.ui:94
-msgid "Bag"
-msgstr ""
-
-#: utils/ncurses.cpp:495
-msgid " LETTER | POINTS | FREQUENCY | REMAINING"
-msgstr ""
-
-#: utils/ncurses.cpp:548
-msgid "Play a word"
-msgstr ""
-
-#. TRANSLATORS: Align the : when translating "Played word:" and
-#. "Coordinates:". For example:
-#. Pl. word   :
-#. Coordinates:
-#: utils/ncurses.cpp:549 utils/ncurses.cpp:557
-msgid "Played word:"
-msgstr ""
-
-#: utils/ncurses.cpp:550 utils/ncurses.cpp:558
-msgid "Coordinates:"
-msgstr ""
-
-#: utils/ncurses.cpp:572
-msgid "Incorrect or misplaced word"
-msgstr ""
-
-#: utils/ncurses.cpp:582
-msgid "Dictionary"
-msgstr ""
-
-#: utils/ncurses.cpp:583
-msgid "Enter the word to check:"
-msgstr ""
-
-#: utils/ncurses.cpp:592
-#, c-format
-msgid "The word '%ls' exists"
-msgstr ""
-
-#: utils/ncurses.cpp:594
-#, c-format
-msgid "The word '%ls' does not exist"
-msgstr ""
-
-#: utils/ncurses.cpp:604
-msgid "Save the game"
-msgstr ""
-
-#: utils/ncurses.cpp:605 utils/ncurses.cpp:635
-msgid "Enter the file name:"
-msgstr ""
-
-#: utils/ncurses.cpp:615
-#, c-format
-msgid "Cannot open file %ls for writing"
-msgstr ""
-
-#: utils/ncurses.cpp:623
-#, c-format
-msgid "Game saved in '%ls'"
-msgstr ""
-
-#: utils/ncurses.cpp:634 qt/main_window.cpp:500
-msgid "Load a game"
-msgstr ""
-
-#: utils/ncurses.cpp:645
-#, c-format
-msgid "Cannot open file '%ls' for reading"
-msgstr ""
-
-#: utils/ncurses.cpp:653
-#, c-format
-msgid "Invalid saved game"
-msgstr ""
-
-#: utils/ncurses.cpp:658 qt/main_window.cpp:515
-#, c-format
-msgid "Game loaded"
-msgstr ""
-
-#: utils/ncurses.cpp:674
-msgid "Pass your turn"
-msgstr ""
-
-#: utils/ncurses.cpp:675
-msgid "Enter the letters to change:"
-msgstr ""
-
-#: utils/ncurses.cpp:684
-msgid "Cannot pass the turn"
-msgstr ""
-
-#: utils/ncurses.cpp:694
-msgid "Set rack"
-msgstr ""
-
-#: utils/ncurses.cpp:695
-msgid "Enter the new letters:"
-msgstr ""
-
-#: utils/ncurses.cpp:707
-msgid "Cannot take these letters from the bag:"
-msgstr ""
-
-#: utils/ncurses.cpp:1116 qt/main_window.cpp:269 qt/ui/prefs_dialog.ui:192
-msgid "Training mode"
-msgstr ""
-
-#: utils/ncurses.cpp:1118 qt/ui/prefs_dialog.ui:173
-msgid "Free game mode"
-msgstr ""
-
-#: utils/ncurses.cpp:1120 qt/ui/prefs_dialog.ui:101
-msgid "Duplicate mode"
-msgstr ""
-
-#: utils/ncurses.cpp:1123 qt/ui/new_game.ui:91
-msgid "Joker game"
-msgstr ""
-
-#: utils/ncurses.cpp:1124
-msgid "[h for help]"
-msgstr ""
-
-#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:100
-msgid "Letter"
-msgstr ""
-
-#: qt/bag_widget.cpp:51 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
-#: qt/training_widget.cpp:61
-msgid "Points"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:90 qt/dic_tools_widget.cpp:95
-#: qt/ui/player_widget.ui:16 qt/ui/training_widget.ui:21
-msgid "Rack:"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:102
-msgid "Frequency"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:103
-msgid "Vowel?"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:104
-msgid "Consonant?"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:142 qt/dic_tools_widget.cpp:175
-#: qt/dic_tools_widget.cpp:228
-msgid "Please select a dictionary"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:153
-msgid "The word '%1' exists"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:158
-msgid "The word '%1' does not exist"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:182
-msgid "Rack: %1"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:201
-msgid "Anagrams"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:235
-msgid "Regular expression: %1"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:258
-msgid "Invalid regular expression: %1"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
-msgid "Yes"
-msgstr ""
-
-#: qt/dic_tools_widget.cpp:307 qt/dic_tools_widget.cpp:309
-msgid "No"
-msgstr ""
-
-#: qt/history_widget.cpp:51
-msgid "Turn"
-msgstr ""
-
-#: qt/history_widget.cpp:52
-msgid "Rack"
-msgstr ""
-
-#: qt/history_widget.cpp:53 qt/training_widget.cpp:59
-msgid "Word"
-msgstr ""
-
-#: qt/history_widget.cpp:54 qt/training_widget.cpp:60
-msgid "Ref"
-msgstr ""
-
-#: qt/history_widget.cpp:87 qt/score_widget.cpp:46
-msgid "Player"
-msgstr ""
-
-#: qt/history_widget.cpp:177 qt/main_window.cpp:382
-msgid "&Game"
-msgstr ""
-
-#: qt/main_window.cpp:112 qt/main_window.cpp:770 qt/ui/main_window.ui:38
-msgid "Board"
-msgstr ""
-
-#: qt/main_window.cpp:171
-msgid ""
-"Cannot load dictionary '%1' indicated in the preferences.\n"
-"Reason: %2"
-msgstr ""
-
-#: qt/main_window.cpp:261
-msgid "No game"
-msgstr ""
-
-#: qt/main_window.cpp:274
-msgid "Duplicate game"
-msgstr ""
-
-#: qt/main_window.cpp:279 qt/new_game.cpp:100 qt/new_game.cpp:169
-#: qt/ui/new_game.ui:47
-msgid "Free game"
-msgstr ""
-
-#: qt/main_window.cpp:291
-msgid "Dictionary: %1"
+#: qt/main_window.cpp:291
+msgid "Dictionary: %1"
 msgstr ""
 
 #: qt/main_window.cpp:300
@@ -928,10 +669,19 @@
 msgid "Game started"
 msgstr ""
 
+#: qt/main_window.cpp:500 utils/ncurses.cpp:634
+msgid "Load a game"
+msgstr ""
+
 #: qt/main_window.cpp:507
 msgid "Error while loading the game"
 msgstr ""
 
+#: qt/main_window.cpp:515 utils/ncurses.cpp:658
+#, c-format
+msgid "Game loaded"
+msgstr ""
+
 #: qt/main_window.cpp:525
 msgid "Save a game"
 msgstr ""
@@ -972,11 +722,15 @@
 msgid "Do you want to continue?"
 msgstr ""
 
-#: qt/main_window.cpp:709
+#: qt/main_window.cpp:709 qt/prefs_dialog.cpp:153
 msgid "Choose a dictionary"
 msgstr ""
 
-#: qt/main_window.cpp:788 qt/ui/main_window.ui:49 qt/ui/main_window.ui:122
+#: qt/main_window.cpp:752 qt/ui/main_window.ui:94 utils/ncurses.cpp:488
+msgid "Bag"
+msgstr ""
+
+#: qt/main_window.cpp:788 qt/ui/main_window.ui:49 qt/ui/main_window.ui:122
 msgid "History"
 msgstr ""
 
@@ -1039,14 +793,14 @@
 msgid "Duplicate"
 msgstr ""
 
-#: qt/player_widget.cpp:80
+#: qt/play_word_mediator.cpp:66
 msgid ""
 "Enter the word to play (case-insensitive).\n"
 "A joker from the rack must be written in parentheses.\n"
 "E.g.: w(o)rd or W(O)RD"
 msgstr ""
 
-#: qt/player_widget.cpp:83
+#: qt/play_word_mediator.cpp:69
 msgid ""
 "Enter the coordinates of the word.\n"
 "Specify the row before the column for horizontal words,\n"
@@ -1054,74 +808,86 @@
 "E.g.: H4 or 4H"
 msgstr ""
 
-#: qt/player_widget.cpp:190
+#: qt/play_word_mediator.cpp:120
 msgid "Cannot play word: misplaced parentheses"
 msgstr ""
 
-#: qt/player_widget.cpp:212
+#: qt/play_word_mediator.cpp:142
 msgid "Cannot play '%1' at position '%2':\n"
 msgstr ""
 
-#: qt/player_widget.cpp:217
+#: qt/play_word_mediator.cpp:147
 msgid "Some letters are not valid for the current dictionary"
 msgstr ""
 
-#: qt/player_widget.cpp:220
+#: qt/play_word_mediator.cpp:150
 msgid "Invalid coordinates"
 msgstr ""
 
-#: qt/player_widget.cpp:223
+#: qt/play_word_mediator.cpp:153
 msgid "The word does not exist"
 msgstr ""
 
-#: qt/player_widget.cpp:226
+#: qt/play_word_mediator.cpp:156
 msgid "The rack doesn't contain the letters needed to play this word"
 msgstr ""
 
-#: qt/player_widget.cpp:229
+#: qt/play_word_mediator.cpp:159
 msgid "The word is part of a longer one"
 msgstr ""
 
-#: qt/player_widget.cpp:232
+#: qt/play_word_mediator.cpp:162
 msgid "The word tries to replace an existing letter"
 msgstr ""
 
-#: qt/player_widget.cpp:235
+#: qt/play_word_mediator.cpp:165
 msgid "An orthogonal word is not valid"
 msgstr ""
 
-#: qt/player_widget.cpp:238
+#: qt/play_word_mediator.cpp:168
 msgid "The word is already present on the board at these coordinates"
 msgstr ""
 
-#: qt/player_widget.cpp:241
+#: qt/play_word_mediator.cpp:171
 msgid "A word cannot be isolated (not connected to the placed words)"
 msgstr ""
 
-#: qt/player_widget.cpp:244
+#: qt/play_word_mediator.cpp:174
 msgid "The first word of the game must be horizontal"
 msgstr ""
 
-#: qt/player_widget.cpp:247
+#: qt/play_word_mediator.cpp:177
 msgid "The first word of the game must cover the H8 square"
 msgstr ""
 
-#: qt/player_widget.cpp:250
+#: qt/play_word_mediator.cpp:180
 msgid "The word is going out of the board"
 msgstr ""
 
-#: qt/player_widget.cpp:253
+#: qt/play_word_mediator.cpp:183
 msgid "Incorrect or misplaced word (%1)"
 msgstr ""
 
-#: qt/player_widget.cpp:276
+#: qt/player_widget.cpp:159
 msgid "Cannot pass turn (%1)"
 msgstr ""
 
-#: qt/player_widget.cpp:278
+#: qt/player_widget.cpp:161
 msgid "Cannot change letters '%1' (%2)"
 msgstr ""
 
+#: qt/prefs_dialog.cpp:71 qt/prefs_dialog.cpp:86 qt/prefs_dialog.cpp:141
+msgid "%1 error"
+msgstr ""
+
+#: qt/prefs_dialog.cpp:72
+msgid "Cannot load preferences: %1"
+msgstr ""
+
+#: qt/prefs_dialog.cpp:87 qt/prefs_dialog.cpp:142
+msgid "Cannot save preferences: %1"
+msgstr ""
+
 #: qt/score_widget.cpp:47
 msgid "Score"
 msgstr ""
@@ -1212,6 +978,10 @@
 "the joker."
 msgstr ""
 
+#: qt/ui/new_game.ui:91 utils/ncurses.cpp:1123
+msgid "Joker game"
+msgstr ""
+
 #: qt/ui/new_game.ui:98
 msgid ""
 "An explosive game is a bit like a joker game, except than when the computer "
@@ -1251,51 +1021,51 @@
 msgstr ""
 
 #: qt/ui/player_widget.ui:37
-msgid "Play a word:"
+msgid "Change letters:"
 msgstr ""
 
-#: qt/ui/player_widget.ui:49
-msgid ""
-"Enter the word to play (case-insensitive). A joker from the rack must be "
-"written in parentheses. E.g.: w(o)rd or W(O)RD"
+#: qt/ui/player_widget.ui:44
+msgid "Enter the letters you want to change"
 msgstr ""
 
-#: qt/ui/player_widget.ui:77
-msgid ""
-"Enter the coordinates of the word. Specify the row before the column for "
-"horizontal words, and the column before the row for vertical words. E.g.: H4 "
-"or 4H"
+#: qt/ui/player_widget.ui:54
+msgid "Change"
 msgstr ""
 
-#: qt/ui/player_widget.ui:84 qt/ui/training_widget.ui:62
-msgid "Play"
+#: qt/ui/player_widget.ui:61
+msgid "Pass"
 msgstr ""
 
-#: qt/ui/player_widget.ui:91
-msgid "Change letters:"
+#: qt/ui/player_widget.ui:68 qt/ui/training_widget.ui:66
+msgid "Ref.:"
 msgstr ""
 
-#: qt/ui/player_widget.ui:98
-msgid "Enter the letters you want to change"
+#: qt/ui/player_widget.ui:75 qt/ui/training_widget.ui:38
+msgid "Play a word:"
 msgstr ""
 
-#: qt/ui/player_widget.ui:108
-msgid "Change"
+#: qt/ui/player_widget.ui:87 qt/ui/training_widget.ui:56
+msgid ""
+"Enter the word to play (case-insensitive). A joker from the rack must be "
+"written in parentheses. E.g.: w(o)rd or W(O)RD"
 msgstr ""
 
-#: qt/ui/player_widget.ui:115
-msgid "Pass"
+#: qt/ui/player_widget.ui:97 qt/ui/training_widget.ui:98
+msgid "Play"
 msgstr ""
 
-#: qt/ui/player_widget.ui:122
-msgid "Ref.:"
+#: qt/ui/player_widget.ui:122 qt/ui/training_widget.ui:91
+msgid ""
+"Enter the coordinates of the word. Specify the row before the column for "
+"horizontal words, and the column before the row for vertical words. E.g.: H4 "
+"or 4H"
 msgstr ""
 
-#: qt/ui/player_widget.ui:71
+#: qt/ui/player_widget.ui:116 qt/ui/training_widget.ui:85
 msgid "Enter the coordinates of the word."
 msgstr ""
 
-#: qt/ui/player_widget.ui:44
+#: qt/ui/player_widget.ui:82 qt/ui/training_widget.ui:51
 msgid "Enter the word to play (case-insensitive)."
 msgstr ""
 
@@ -1351,6 +1121,10 @@
 msgid "Warn before replaying a turn"
 msgstr ""
 
+#: qt/ui/prefs_dialog.ui:101 utils/ncurses.cpp:1120
+msgid "Duplicate mode"
+msgstr ""
+
 #: qt/ui/prefs_dialog.ui:107 qt/ui/prefs_dialog.ui:179
 msgid ""
 "If checked, playing an invalid or misplaced word will not be possible. If "
@@ -1377,6 +1151,10 @@
 msgid "Minimum number of players needed to take into account the solo bonus"
 msgstr ""
 
+#: qt/ui/prefs_dialog.ui:173 utils/ncurses.cpp:1118
+msgid "Free game mode"
+msgstr ""
+
 #: qt/ui/prefs_dialog.ui:198
 msgid ""
 "If checked, any change to the player rack in training mode will update the "
@@ -1398,14 +1176,252 @@
 "yielding many results can be extremely slow in this case!)."
 msgstr ""
 
-#: qt/ui/training_widget.ui:35
+#: qt/ui/training_widget.ui:109
 msgid "New rack"
 msgstr ""
 
-#: qt/ui/training_widget.ui:42
+#: qt/ui/training_widget.ui:116
 msgid "Complement"
 msgstr ""
 
-#: qt/ui/training_widget.ui:52
+#: qt/ui/training_widget.ui:126
 msgid "Search"
 msgstr ""
+
+#: qt/ui/training_widget.ui:136
+msgid "Play selected"
+msgstr ""
+
+#: qt/ui/training_widget.ui:145 utils/ncurses.cpp:342
+msgid "Search results"
+msgstr ""
+
+#: utils/ncurses.cpp:284
+msgid "Scores"
+msgstr ""
+
+#: utils/ncurses.cpp:288 utils/ncurses.cpp:294
+#, c-format
+msgid "%s: %d"
+msgstr ""
+
+#: utils/ncurses.cpp:306
+msgid "Racks"
+msgstr ""
+
+#: utils/ncurses.cpp:310 utils/ncurses.cpp:316
+#, c-format
+msgid "%s: %ls"
+msgstr ""
+
+#: utils/ncurses.cpp:330 utils/ncurses.cpp:333
+msgid "Search complete"
+msgstr ""
+
+#: utils/ncurses.cpp:371
+msgid "History of the game"
+msgstr ""
+
+#: utils/ncurses.cpp:377
+msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
+msgstr ""
+
+#: utils/ncurses.cpp:442
+msgid "Help"
+msgstr ""
+
+#: utils/ncurses.cpp:446
+msgid "[Global]"
+msgstr ""
+
+#: utils/ncurses.cpp:447
+msgid "   h, H, ?          Show/hide help box"
+msgstr ""
+
+#: utils/ncurses.cpp:448
+msgid "   y, Y             Show/hide history of the game"
+msgstr ""
+
+#: utils/ncurses.cpp:449
+msgid ""
+"   b, B             Show/hide contents of the bag (including letters of the "
+"racks)"
+msgstr ""
+
+#: utils/ncurses.cpp:450
+msgid "   e, E             Show/hide dots on empty squares of the board"
+msgstr ""
+
+#: utils/ncurses.cpp:451
+msgid "   d, D             Check the existence of a word in the dictionary"
+msgstr ""
+
+#: utils/ncurses.cpp:452
+msgid "   j, J             Play a word"
+msgstr ""
+
+#: utils/ncurses.cpp:453
+msgid "   s, S             Save the game"
+msgstr ""
+
+#: utils/ncurses.cpp:454
+msgid "   l, L             Load a game"
+msgstr ""
+
+#: utils/ncurses.cpp:455
+msgid "   q, Q             Quit"
+msgstr ""
+
+#: utils/ncurses.cpp:458
+msgid "[Training mode]"
+msgstr ""
+
+#: utils/ncurses.cpp:459
+msgid "   *                Take a random rack"
+msgstr ""
+
+#: utils/ncurses.cpp:460
+msgid "   +                Complete the current rack randomly"
+msgstr ""
+
+#: utils/ncurses.cpp:461
+msgid "   t, T             Set the rack manually"
+msgstr ""
+
+#: utils/ncurses.cpp:462
+msgid "   c, C             Compute all the possible words"
+msgstr ""
+
+#: utils/ncurses.cpp:463
+msgid "   r, R             Show/hide search results"
+msgstr ""
+
+#: utils/ncurses.cpp:466
+msgid "[Duplicate mode]"
+msgstr ""
+
+#: utils/ncurses.cpp:467
+msgid "   n, N             Switch to the next human player"
+msgstr ""
+
+#: utils/ncurses.cpp:470
+msgid "[Free game mode]"
+msgstr ""
+
+#: utils/ncurses.cpp:471
+msgid "   p, P             Pass your turn (with or without changing letters)"
+msgstr ""
+
+#: utils/ncurses.cpp:474
+msgid "[Miscellaneous]"
+msgstr ""
+
+#: utils/ncurses.cpp:475
+msgid "   <up>, <down>     Navigate in a box line by line"
+msgstr ""
+
+#: utils/ncurses.cpp:476
+msgid "   <pgup>, <pgdown> Navigate in a box page by page"
+msgstr ""
+
+#: utils/ncurses.cpp:477
+msgid "   Ctrl-l           Refresh the screen"
+msgstr ""
+
+#: utils/ncurses.cpp:495
+msgid " LETTER | POINTS | FREQUENCY | REMAINING"
+msgstr ""
+
+#: utils/ncurses.cpp:548
+msgid "Play a word"
+msgstr ""
+
+#. TRANSLATORS: Align the : when translating "Played word:" and
+#. "Coordinates:". For example:
+#. Pl. word   :
+#. Coordinates:
+#: utils/ncurses.cpp:549 utils/ncurses.cpp:557
+msgid "Played word:"
+msgstr ""
+
+#: utils/ncurses.cpp:550 utils/ncurses.cpp:558
+msgid "Coordinates:"
+msgstr ""
+
+#: utils/ncurses.cpp:572
+msgid "Incorrect or misplaced word"
+msgstr ""
+
+#: utils/ncurses.cpp:582
+msgid "Dictionary"
+msgstr ""
+
+#: utils/ncurses.cpp:583
+msgid "Enter the word to check:"
+msgstr ""
+
+#: utils/ncurses.cpp:592
+#, c-format
+msgid "The word '%ls' exists"
+msgstr ""
+
+#: utils/ncurses.cpp:594
+#, c-format
+msgid "The word '%ls' does not exist"
+msgstr ""
+
+#: utils/ncurses.cpp:604
+msgid "Save the game"
+msgstr ""
+
+#: utils/ncurses.cpp:605 utils/ncurses.cpp:635
+msgid "Enter the file name:"
+msgstr ""
+
+#: utils/ncurses.cpp:615
+#, c-format
+msgid "Cannot open file %ls for writing"
+msgstr ""
+
+#: utils/ncurses.cpp:623
+#, c-format
+msgid "Game saved in '%ls'"
+msgstr ""
+
+#: utils/ncurses.cpp:645
+#, c-format
+msgid "Cannot open file '%ls' for reading"
+msgstr ""
+
+#: utils/ncurses.cpp:653
+#, c-format
+msgid "Invalid saved game"
+msgstr ""
+
+#: utils/ncurses.cpp:674
+msgid "Pass your turn"
+msgstr ""
+
+#: utils/ncurses.cpp:675
+msgid "Enter the letters to change:"
+msgstr ""
+
+#: utils/ncurses.cpp:684
+msgid "Cannot pass the turn"
+msgstr ""
+
+#: utils/ncurses.cpp:694
+msgid "Set rack"
+msgstr ""
+
+#: utils/ncurses.cpp:695
+msgid "Enter the new letters:"
+msgstr ""
+
+#: utils/ncurses.cpp:707
+msgid "Cannot take these letters from the bag:"
+msgstr ""
+
+#: utils/ncurses.cpp:1124
+msgid "[h for help]"
+msgstr ""

Index: po/fr.po
===================================================================
RCS file: /cvsroot/eliot/eliot/po/fr.po,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- po/fr.po    24 Jan 2009 23:02:42 -0000      1.26
+++ po/fr.po    19 Feb 2009 21:56:41 -0000      1.27
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: eliot 1.7\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-24 18:48+0100\n"
+"POT-Creation-Date: 2009-02-19 22:54+0100\n"
 "PO-Revision-Date: 2008-11-16 10:35+0100\n"
 "Last-Translator: Olivier Teulière <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
@@ -17,76 +17,6 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: dic/header.cpp:293
-msgid ""
-"Too old dictionary format. This format is not supported anymore since Eliot "
-"1.8. You can create dictionaries in the new format with the 'compdic' tool "
-"provided with Eliot (since version 1.6)."
-msgstr ""
-"Format de dictionnaire trop vieux. Ce format n'est plus supporté depuis "
-"Eliot 1.8. Vous pouvez créer des dictionnaires dans le nouveau format avec "
-"l'outil 'compdic' fourni avec Eliot (depuis la version 1.6)."
-
-#: dic/header.cpp:435
-#, c-format
-msgid "dictionary name: %s\n"
-msgstr "Nom du dictionnaire : %s\n"
-
-#: dic/header.cpp:438
-#, c-format
-msgid "compressed on: %s\n"
-msgstr "Compressé le : %s\n"
-
-#: dic/header.cpp:439
-#, c-format
-msgid "compressed using a binary compiled by: %s\n"
-msgstr "Compressé avec un binaire compilé par : %s\n"
-
-#: dic/header.cpp:440
-#, c-format
-msgid "dictionary type: %s\n"
-msgstr "Type de dictionnaire : %s\n"
-
-#: dic/header.cpp:441
-#, c-format
-msgid "letters: %s\n"
-msgstr "Lettres : %s\n"
-
-#: dic/header.cpp:442
-#, c-format
-msgid "number of letters: %lu\n"
-msgstr "Nombre de lettres : %lu\n"
-
-#: dic/header.cpp:443
-#, c-format
-msgid "number of words: %d\n"
-msgstr "Nombre de mots : %d\n"
-
-#: dic/header.cpp:445
-#, c-format
-msgid "header size: %lu bytes\n"
-msgstr "Taille du header : %lu octets\n"
-
-#: dic/header.cpp:446
-#, c-format
-msgid "root: %d (edge)\n"
-msgstr "Racine : %d (arcs)\n"
-
-#: dic/header.cpp:447
-#, c-format
-msgid "nodes: %d used + %d saved\n"
-msgstr "Noeuds : %d utilisés + %d évités\n"
-
-#: dic/header.cpp:448
-#, c-format
-msgid "edges: %d used + %d saved\n"
-msgstr "Arcs : %d utilisés + %d évités\n"
-
-#: dic/header.cpp:450
-#, c-format
-msgid "letter | points | frequency | vowel | consonant\n"
-msgstr "lettre | points | frequence | voye. | consonne\n"
-
 #: dic/compdic.cpp:401
 msgid "Mandatory options:"
 msgstr "Options obligatoires :"
@@ -238,6 +168,76 @@
 msgid " Maximum recursion level reached: %d\n"
 msgstr " Niveau maximum de rcursion atteint : %d\n"
 
+#: dic/header.cpp:293
+msgid ""
+"Too old dictionary format. This format is not supported anymore since Eliot "
+"1.8. You can create dictionaries in the new format with the 'compdic' tool "
+"provided with Eliot (since version 1.6)."
+msgstr ""
+"Format de dictionnaire trop vieux. Ce format n'est plus supporté depuis "
+"Eliot 1.8. Vous pouvez créer des dictionnaires dans le nouveau format avec "
+"l'outil 'compdic' fourni avec Eliot (depuis la version 1.6)."
+
+#: dic/header.cpp:435
+#, c-format
+msgid "dictionary name: %s\n"
+msgstr "Nom du dictionnaire : %s\n"
+
+#: dic/header.cpp:438
+#, c-format
+msgid "compressed on: %s\n"
+msgstr "Compressé le : %s\n"
+
+#: dic/header.cpp:439
+#, c-format
+msgid "compressed using a binary compiled by: %s\n"
+msgstr "Compressé avec un binaire compilé par : %s\n"
+
+#: dic/header.cpp:440
+#, c-format
+msgid "dictionary type: %s\n"
+msgstr "Type de dictionnaire : %s\n"
+
+#: dic/header.cpp:441
+#, c-format
+msgid "letters: %s\n"
+msgstr "Lettres : %s\n"
+
+#: dic/header.cpp:442
+#, c-format
+msgid "number of letters: %lu\n"
+msgstr "Nombre de lettres : %lu\n"
+
+#: dic/header.cpp:443
+#, c-format
+msgid "number of words: %d\n"
+msgstr "Nombre de mots : %d\n"
+
+#: dic/header.cpp:445
+#, c-format
+msgid "header size: %lu bytes\n"
+msgstr "Taille du header : %lu octets\n"
+
+#: dic/header.cpp:446
+#, c-format
+msgid "root: %d (edge)\n"
+msgstr "Racine : %d (arcs)\n"
+
+#: dic/header.cpp:447
+#, c-format
+msgid "nodes: %d used + %d saved\n"
+msgstr "Noeuds : %d utilisés + %d évités\n"
+
+#: dic/header.cpp:448
+#, c-format
+msgid "edges: %d used + %d saved\n"
+msgstr "Arcs : %d utilisés + %d évités\n"
+
+#: dic/header.cpp:450
+#, c-format
+msgid "letter | points | frequency | vowel | consonant\n"
+msgstr "lettre | points | frequence | voye. | consonne\n"
+
 #: dic/listdic.cpp:94
 #, c-format
 msgid "offset binary   | structure\n"
@@ -331,284 +331,12 @@
 msgid "Training"
 msgstr "Entraînement"
 
-#: utils/ncurses.cpp:284
-msgid "Scores"
-msgstr "Scores"
-
-#: utils/ncurses.cpp:288 utils/ncurses.cpp:294
-#, c-format
-msgid "%s: %d"
-msgstr "%s : %d"
-
-#: utils/ncurses.cpp:306
-msgid "Racks"
-msgstr "Tirages"
-
-#: utils/ncurses.cpp:310 utils/ncurses.cpp:316
-#, c-format
-msgid "%s: %ls"
-msgstr "%s : %ls"
-
-#: utils/ncurses.cpp:330 utils/ncurses.cpp:333
-msgid "Search complete"
-msgstr "Recherche terminée"
-
-#: utils/ncurses.cpp:342 qt/ui/training_widget.ui:71
-msgid "Search results"
-msgstr "Résultats de la recherche"
-
-#: utils/ncurses.cpp:371
-msgid "History of the game"
-msgstr "Historique de la partie"
-
-#: utils/ncurses.cpp:377
-msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
-msgstr " N |  TIRAGE  |    SOLUTION     | REF | PTS | J | BONUS"
-
-#: utils/ncurses.cpp:416 qt/history_widget.cpp:143 qt/main_window.cpp:656
-msgid "(PASS)"
-msgstr "(PASSE)"
-
-#: utils/ncurses.cpp:442
-msgid "Help"
-msgstr "Aide"
-
-#: utils/ncurses.cpp:446
-msgid "[Global]"
-msgstr "[Général]"
-
-#: utils/ncurses.cpp:447
-msgid "   h, H, ?          Show/hide help box"
-msgstr "   h, H, ?          Afficher/cacher la boîte d'aide"
-
-#: utils/ncurses.cpp:448
-msgid "   y, Y             Show/hide history of the game"
-msgstr "   y, Y             Afficher/cacher l'historique de la partie"
-
-#: utils/ncurses.cpp:449
-msgid ""
-"   b, B             Show/hide contents of the bag (including letters of the "
-"racks)"
-msgstr ""
-"   b, B             Afficher/cacher le contenu du sac (avec les lettres des "
-"tirages)"
-
-#: utils/ncurses.cpp:450
-msgid "   e, E             Show/hide dots on empty squares of the board"
-msgstr ""
-"   e, E             Afficher/cacher les points sur les cases vides du "
-"plateau de jeu"
-
-#: utils/ncurses.cpp:451
-msgid "   d, D             Check the existence of a word in the dictionary"
-msgstr "   d, D             Vérifier l'existence d'un mot dans le 
dictionnaire"
-
-#: utils/ncurses.cpp:452
-msgid "   j, J             Play a word"
-msgstr "   j, J             Jouer un mot"
-
-#: utils/ncurses.cpp:453
-msgid "   s, S             Save the game"
-msgstr "   s, S             Sauvegarder la partie"
-
-#: utils/ncurses.cpp:454
-msgid "   l, L             Load a game"
-msgstr "   l, L             Charger une partie"
-
-#: utils/ncurses.cpp:455
-msgid "   q, Q             Quit"
-msgstr "   q, Q             Quitter"
-
-#: utils/ncurses.cpp:458
-msgid "[Training mode]"
-msgstr "[Mode entraînement]"
-
-#: utils/ncurses.cpp:459
-msgid "   *                Take a random rack"
-msgstr "   *                Tirage aléatoire"
-
-#: utils/ncurses.cpp:460
-msgid "   +                Complete the current rack randomly"
-msgstr "   +                Compléter le tirage courant de manière 
aléatoire"
-
-#: utils/ncurses.cpp:461
-msgid "   t, T             Set the rack manually"
-msgstr "   t, T             Entrer le tirage manuellement"
-
-#: utils/ncurses.cpp:462
-msgid "   c, C             Compute all the possible words"
-msgstr "   c, C             Calculer tous les mots possibles"
-
-#: utils/ncurses.cpp:463
-msgid "   r, R             Show/hide search results"
-msgstr "   r, R             Afficher/cacher les résultats de la recherche"
-
-#: utils/ncurses.cpp:466
-msgid "[Duplicate mode]"
-msgstr "[Mode duplicate]"
-
-#: utils/ncurses.cpp:467
-msgid "   n, N             Switch to the next human player"
-msgstr "   n, N             Passer au joueur humain suivant"
-
-#: utils/ncurses.cpp:470
-msgid "[Free game mode]"
-msgstr "[Mode partie libre]"
-
-#: utils/ncurses.cpp:471
-msgid "   p, P             Pass your turn (with or without changing letters)"
-msgstr ""
-"   p, P             Passer son tour (en changeant ou pas certaines lettres)"
-
-#: utils/ncurses.cpp:474
-msgid "[Miscellaneous]"
-msgstr "[Divers]"
-
-#: utils/ncurses.cpp:475
-msgid "   <up>, <down>     Navigate in a box line by line"
-msgstr "   <haut>, <bas>    Naviguer dans une boîte ligne par ligne"
-
-#: utils/ncurses.cpp:476
-msgid "   <pgup>, <pgdown> Navigate in a box page by page"
-msgstr "   <pgup>, <pgdown> Naviguer dans une boîte page par page"
-
-#: utils/ncurses.cpp:477
-msgid "   Ctrl-l           Refresh the screen"
-msgstr "   Ctrl-l           Rafraîchir l'écran"
-
-#: utils/ncurses.cpp:488 qt/main_window.cpp:752 qt/ui/main_window.ui:94
-msgid "Bag"
-msgstr "Sac"
-
-#: utils/ncurses.cpp:495
-msgid " LETTER | POINTS | FREQUENCY | REMAINING"
-msgstr " LETTRE | POINTS | FREQUENCE | RESTANT"
-
-#: utils/ncurses.cpp:548
-msgid "Play a word"
-msgstr "Jouer un mot"
-
-#. TRANSLATORS: Align the : when translating "Played word:" and
-#. "Coordinates:". For example:
-#. Pl. word   :
-#. Coordinates:
-#: utils/ncurses.cpp:549 utils/ncurses.cpp:557
-msgid "Played word:"
-msgstr "Mot joué    :"
-
-#: utils/ncurses.cpp:550 utils/ncurses.cpp:558
-msgid "Coordinates:"
-msgstr "Coordonnées :"
-
-#: utils/ncurses.cpp:572
-msgid "Incorrect or misplaced word"
-msgstr "Mot incorrect ou mal placé"
-
-#: utils/ncurses.cpp:582
-msgid "Dictionary"
-msgstr "Dictionnaire"
-
-#: utils/ncurses.cpp:583
-msgid "Enter the word to check:"
-msgstr "Entrer le mot à vérifier:"
-
-#: utils/ncurses.cpp:592
-#, c-format
-msgid "The word '%ls' exists"
-msgstr "Le mot '%ls' existe"
-
-#: utils/ncurses.cpp:594
-#, c-format
-msgid "The word '%ls' does not exist"
-msgstr "Le mot '%ls' n'existe pas"
-
-#: utils/ncurses.cpp:604
-msgid "Save the game"
-msgstr "Sauvegarder la partie"
-
-#: utils/ncurses.cpp:605 utils/ncurses.cpp:635
-msgid "Enter the file name:"
-msgstr "Entrer le nom du fichier :"
-
-#: utils/ncurses.cpp:615
-#, c-format
-msgid "Cannot open file %ls for writing"
-msgstr "Impossible d'ouvrir le fichier %ls en écriture"
-
-#: utils/ncurses.cpp:623
-#, c-format
-msgid "Game saved in '%ls'"
-msgstr "Partie sauvée dans '%ls'"
-
-#: utils/ncurses.cpp:634 qt/main_window.cpp:500
-msgid "Load a game"
-msgstr "Charger une partie"
-
-#: utils/ncurses.cpp:645
-#, c-format
-msgid "Cannot open file '%ls' for reading"
-msgstr "Impossible d'ouvrir le fichier '%ls' en lecture"
-
-#: utils/ncurses.cpp:653
-#, c-format
-msgid "Invalid saved game"
-msgstr "Partie sauvée invalide"
-
-#: utils/ncurses.cpp:658 qt/main_window.cpp:515
-#, c-format
-msgid "Game loaded"
-msgstr "Partie chargée"
-
-#: utils/ncurses.cpp:674
-msgid "Pass your turn"
-msgstr "Passer son tour"
-
-#: utils/ncurses.cpp:675
-msgid "Enter the letters to change:"
-msgstr "Entrer les lettres à changer:"
-
-#: utils/ncurses.cpp:684
-msgid "Cannot pass the turn"
-msgstr "Impossible de passer le tour"
-
-#: utils/ncurses.cpp:694
-msgid "Set rack"
-msgstr "Choix du tirage"
-
-#: utils/ncurses.cpp:695
-msgid "Enter the new letters:"
-msgstr "Entrer les nouvelles lettres:"
-
-#: utils/ncurses.cpp:707
-msgid "Cannot take these letters from the bag:"
-msgstr "Impossible de prendre ces lettres dans le sac:"
-
-#: utils/ncurses.cpp:1116 qt/main_window.cpp:269 qt/ui/prefs_dialog.ui:192
-msgid "Training mode"
-msgstr "Mode entraînement"
-
-#: utils/ncurses.cpp:1118 qt/ui/prefs_dialog.ui:173
-msgid "Free game mode"
-msgstr "Mode partie libre"
-
-#: utils/ncurses.cpp:1120 qt/ui/prefs_dialog.ui:101
-msgid "Duplicate mode"
-msgstr "Mode duplicate"
-
-#: utils/ncurses.cpp:1123 qt/ui/new_game.ui:91
-msgid "Joker game"
-msgstr "Partie joker"
-
-#: utils/ncurses.cpp:1124
-msgid "[h for help]"
-msgstr "[h pour l'aide]"
-
 #: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:100
 msgid "Letter"
 msgstr "Lettre"
 
 #: qt/bag_widget.cpp:51 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
-#: qt/training_widget.cpp:61
+#: qt/training_widget.cpp:69
 msgid "Points"
 msgstr "Points"
 
@@ -674,11 +402,11 @@
 msgid "Rack"
 msgstr "Tirage"
 
-#: qt/history_widget.cpp:53 qt/training_widget.cpp:59
+#: qt/history_widget.cpp:53 qt/training_widget.cpp:67
 msgid "Word"
 msgstr "Mot"
 
-#: qt/history_widget.cpp:54 qt/training_widget.cpp:60
+#: qt/history_widget.cpp:54 qt/training_widget.cpp:68
 msgid "Ref"
 msgstr "Ref"
 
@@ -686,6 +414,10 @@
 msgid "Player"
 msgstr "Joueur"
 
+#: qt/history_widget.cpp:143 qt/main_window.cpp:656 utils/ncurses.cpp:416
+msgid "(PASS)"
+msgstr "(PASSE)"
+
 #: qt/history_widget.cpp:177 qt/main_window.cpp:382
 msgid "&Game"
 msgstr "&Partie"
@@ -706,6 +438,10 @@
 msgid "No game"
 msgstr "Pas de partie en cours"
 
+#: qt/main_window.cpp:269 qt/ui/prefs_dialog.ui:192 utils/ncurses.cpp:1116
+msgid "Training mode"
+msgstr "Mode entraînement"
+
 #: qt/main_window.cpp:274
 msgid "Duplicate game"
 msgstr "Partie duplicate"
@@ -958,10 +694,19 @@
 msgid "Game started"
 msgstr "Partie démarrée"
 
+#: qt/main_window.cpp:500 utils/ncurses.cpp:634
+msgid "Load a game"
+msgstr "Charger une partie"
+
 #: qt/main_window.cpp:507
 msgid "Error while loading the game"
 msgstr "Erreur pendant le chargement de la partie"
 
+#: qt/main_window.cpp:515 utils/ncurses.cpp:658
+#, c-format
+msgid "Game loaded"
+msgstr "Partie chargée"
+
 #: qt/main_window.cpp:525
 msgid "Save a game"
 msgstr "Sauvegarder la partie"
@@ -1002,10 +747,14 @@
 msgid "Do you want to continue?"
 msgstr "Voulez-vous continuer ?"
 
-#: qt/main_window.cpp:709
+#: qt/main_window.cpp:709 qt/prefs_dialog.cpp:153
 msgid "Choose a dictionary"
 msgstr "Choisir un dictionnaire"
 
+#: qt/main_window.cpp:752 qt/ui/main_window.ui:94 utils/ncurses.cpp:488
+msgid "Bag"
+msgstr "Sac"
+
 #: qt/main_window.cpp:788 qt/ui/main_window.ui:49 qt/ui/main_window.ui:122
 msgid "History"
 msgstr "Historique"
@@ -1077,7 +826,7 @@
 msgid "Duplicate"
 msgstr "Duplicate"
 
-#: qt/player_widget.cpp:80
+#: qt/play_word_mediator.cpp:66
 msgid ""
 "Enter the word to play (case-insensitive).\n"
 "A joker from the rack must be written in parentheses.\n"
@@ -1085,9 +834,9 @@
 msgstr ""
 "Entrer le mot à jouer (insensible à la casse).\n"
 "Un joker provenant du chevalet doit être écrit entre parenthèses.\n"
-"Ex. : m(o)( ou M(O)T"
+"Ex. : m(o)t ou M(O)T"
 
-#: qt/player_widget.cpp:83
+#: qt/play_word_mediator.cpp:69
 msgid ""
 "Enter the coordinates of the word.\n"
 "Specify the row before the column for horizontal words,\n"
@@ -1099,75 +848,87 @@
 "et la colonne avant la rangée pour les mots verticaux.\n"
 "Ex. : H4 ou 4H"
 
-#: qt/player_widget.cpp:190
+#: qt/play_word_mediator.cpp:120
 msgid "Cannot play word: misplaced parentheses"
 msgstr "Impossible de jouer le mot : parenthèses mal placées"
 
-#: qt/player_widget.cpp:212
+#: qt/play_word_mediator.cpp:142
 msgid "Cannot play '%1' at position '%2':\n"
 msgstr "Impossible de jouer '%1' en '%2' :\n"
 
-#: qt/player_widget.cpp:217
+#: qt/play_word_mediator.cpp:147
 msgid "Some letters are not valid for the current dictionary"
 msgstr ""
 "Le tirage contient des lettres incorrectes pour le dictionnaire courant"
 
-#: qt/player_widget.cpp:220
+#: qt/play_word_mediator.cpp:150
 msgid "Invalid coordinates"
 msgstr "Coordonnées invalides"
 
-#: qt/player_widget.cpp:223
+#: qt/play_word_mediator.cpp:153
 msgid "The word does not exist"
 msgstr "Le mot n'existe pas"
 
-#: qt/player_widget.cpp:226
+#: qt/play_word_mediator.cpp:156
 msgid "The rack doesn't contain the letters needed to play this word"
 msgstr "Le chevalet ne contient pas les lettres permettant de jouer ce mot"
 
-#: qt/player_widget.cpp:229
+#: qt/play_word_mediator.cpp:159
 msgid "The word is part of a longer one"
 msgstr "Le mot fait partie d'un autre mot plus long"
 
-#: qt/player_widget.cpp:232
+#: qt/play_word_mediator.cpp:162
 msgid "The word tries to replace an existing letter"
 msgstr "Le mot remplace une lettre existante"
 
-#: qt/player_widget.cpp:235
+#: qt/play_word_mediator.cpp:165
 msgid "An orthogonal word is not valid"
 msgstr "Un mot perpendiculaire est invalide"
 
-#: qt/player_widget.cpp:238
+#: qt/play_word_mediator.cpp:168
 msgid "The word is already present on the board at these coordinates"
 msgstr "Le mot est déjà présent sur la grille à cette position"
 
-#: qt/player_widget.cpp:241
+#: qt/play_word_mediator.cpp:171
 msgid "A word cannot be isolated (not connected to the placed words)"
 msgstr "Un mot ne peut pas être isolé (non connecté aux autres mots 
placés)"
 
-#: qt/player_widget.cpp:244
+#: qt/play_word_mediator.cpp:174
 msgid "The first word of the game must be horizontal"
 msgstr "Le premier mot de la partie doit être horizontal"
 
-#: qt/player_widget.cpp:247
+#: qt/play_word_mediator.cpp:177
 msgid "The first word of the game must cover the H8 square"
 msgstr "Le premier mot de la partie doit couvrir la case H8"
 
-#: qt/player_widget.cpp:250
+#: qt/play_word_mediator.cpp:180
 msgid "The word is going out of the board"
 msgstr "Le mot sort de la grille"
 
-#: qt/player_widget.cpp:253
+#: qt/play_word_mediator.cpp:183
 msgid "Incorrect or misplaced word (%1)"
 msgstr "Mot incorrect ou mal placé (%1)"
 
-#: qt/player_widget.cpp:276
+#: qt/player_widget.cpp:159
 msgid "Cannot pass turn (%1)"
 msgstr "Impossible de passer le tour (%1)"
 
-#: qt/player_widget.cpp:278
+#: qt/player_widget.cpp:161
 msgid "Cannot change letters '%1' (%2)"
 msgstr "Impossible de changer les lettres '%1' (%2)"
 
+#: qt/prefs_dialog.cpp:71 qt/prefs_dialog.cpp:86 qt/prefs_dialog.cpp:141
+msgid "%1 error"
+msgstr "Erreur %1"
+
+#: qt/prefs_dialog.cpp:72
+msgid "Cannot load preferences: %1"
+msgstr "Impossible de charger les préférences : %1"
+
+#: qt/prefs_dialog.cpp:87 qt/prefs_dialog.cpp:142
+msgid "Cannot save preferences: %1"
+msgstr "Impossible de sauver les préférences : %1"
+
 #: qt/score_widget.cpp:47
 msgid "Score"
 msgstr "Score"
@@ -1265,6 +1026,10 @@
 "Cette variante, particulièrement intéressante en mode duplicate, permet 
de\n"
 "s'entraîner à jouer des tirages contenant un joker."
 
+#: qt/ui/new_game.ui:91 utils/ncurses.cpp:1123
+msgid "Joker game"
+msgstr "Partie joker"
+
 #: qt/ui/new_game.ui:98
 msgid ""
 "An explosive game is a bit like a joker game, except than when the computer "
@@ -1311,56 +1076,56 @@
 msgstr "Mélanger"
 
 #: qt/ui/player_widget.ui:37
-msgid "Play a word:"
-msgstr "Jouer le mot :"
-
-#: qt/ui/player_widget.ui:49
-msgid ""
-"Enter the word to play (case-insensitive). A joker from the rack must be "
-"written in parentheses. E.g.: w(o)rd or W(O)RD"
-msgstr ""
-"Entrer le mot à jouer (insensible à la casse). Un joker provenant du "
-"chevalet doit être écrit entre parenthèses. Ex. : m(o)( ou M(O)T"
-
-#: qt/ui/player_widget.ui:77
-msgid ""
-"Enter the coordinates of the word. Specify the row before the column for "
-"horizontal words, and the column before the row for vertical words. E.g.: H4 "
-"or 4H"
-msgstr ""
-"Entrer les coordonnées du mot. Spécifier la rangée avant la colonne pour 
les "
-"mots horizontaux, et la colonne avant la rangée pour les mots verticaux. "
-"Ex. : H4 ou 4H"
-
-#: qt/ui/player_widget.ui:84 qt/ui/training_widget.ui:62
-msgid "Play"
-msgstr "Jouer"
-
-#: qt/ui/player_widget.ui:91
 msgid "Change letters:"
 msgstr "Lettres à changer :"
 
-#: qt/ui/player_widget.ui:98
+#: qt/ui/player_widget.ui:44
 msgid "Enter the letters you want to change"
 msgstr "Entrer les lettres à changer"
 
-#: qt/ui/player_widget.ui:108
+#: qt/ui/player_widget.ui:54
 msgid "Change"
 msgstr "Changer"
 
-#: qt/ui/player_widget.ui:115
+#: qt/ui/player_widget.ui:61
 msgid "Pass"
 msgstr "Passer"
 
-#: qt/ui/player_widget.ui:122
+#: qt/ui/player_widget.ui:68 qt/ui/training_widget.ui:66
 msgid "Ref.:"
 msgstr "Ref. :"
 
-#: qt/ui/player_widget.ui:71
+#: qt/ui/player_widget.ui:75 qt/ui/training_widget.ui:38
+msgid "Play a word:"
+msgstr "Jouer le mot :"
+
+#: qt/ui/player_widget.ui:87 qt/ui/training_widget.ui:56
+msgid ""
+"Enter the word to play (case-insensitive). A joker from the rack must be "
+"written in parentheses. E.g.: w(o)rd or W(O)RD"
+msgstr ""
+"Entrer le mot à jouer (insensible à la casse). Un joker provenant du "
+"chevalet doit être écrit entre parenthèses. Ex. : m(o)( ou M(O)T"
+
+#: qt/ui/player_widget.ui:97 qt/ui/training_widget.ui:98
+msgid "Play"
+msgstr "Jouer"
+
+#: qt/ui/player_widget.ui:122 qt/ui/training_widget.ui:91
+msgid ""
+"Enter the coordinates of the word. Specify the row before the column for "
+"horizontal words, and the column before the row for vertical words. E.g.: H4 "
+"or 4H"
+msgstr ""
+"Entrer les coordonnées du mot. Spécifier la rangée avant la colonne pour 
les "
+"mots horizontaux, et la colonne avant la rangée pour les mots verticaux. "
+"Ex. : H4 ou 4H"
+
+#: qt/ui/player_widget.ui:116 qt/ui/training_widget.ui:85
 msgid "Enter the coordinates of the word."
 msgstr "Entrer les coordonnées du mot."
 
-#: qt/ui/player_widget.ui:44
+#: qt/ui/player_widget.ui:82 qt/ui/training_widget.ui:51
 msgid "Enter the word to play (case-insensitive)."
 msgstr "Entrer le mot à jouer (non sensible à la casse)."
 
@@ -1421,6 +1186,10 @@
 msgid "Warn before replaying a turn"
 msgstr "Avertir avant de rejouer un coup"
 
+#: qt/ui/prefs_dialog.ui:101 utils/ncurses.cpp:1120
+msgid "Duplicate mode"
+msgstr "Mode duplicate"
+
 #: qt/ui/prefs_dialog.ui:107 qt/ui/prefs_dialog.ui:179
 msgid ""
 "If checked, playing an invalid or misplaced word will not be possible. If "
@@ -1451,6 +1220,10 @@
 msgid "Minimum number of players needed to take into account the solo bonus"
 msgstr "Nombre minimal de joueurs pour prendre en compte la prime de solo"
 
+#: qt/ui/prefs_dialog.ui:173 utils/ncurses.cpp:1118
+msgid "Free game mode"
+msgstr "Mode partie libre"
+
 #: qt/ui/prefs_dialog.ui:198
 msgid ""
 "If checked, any change to the player rack in training mode will update the "
@@ -1480,18 +1253,264 @@
 "(attention: les recherches renvoyant beaucoup de résultats peuvent\n"
 "devenir extrêmement lentes dans ce cas !)"
 
-#: qt/ui/training_widget.ui:35
+#: qt/ui/training_widget.ui:109
 msgid "New rack"
 msgstr "Nouveau tirage"
 
-#: qt/ui/training_widget.ui:42
+#: qt/ui/training_widget.ui:116
 msgid "Complement"
 msgstr "Complément"
 
-#: qt/ui/training_widget.ui:52
+#: qt/ui/training_widget.ui:126
 msgid "Search"
 msgstr "Recherche"
 
+#: qt/ui/training_widget.ui:136
+msgid "Play selected"
+msgstr "Jouer sélection"
+
+#: qt/ui/training_widget.ui:145 utils/ncurses.cpp:342
+msgid "Search results"
+msgstr "Résultats de la recherche"
+
+#: utils/ncurses.cpp:284
+msgid "Scores"
+msgstr "Scores"
+
+#: utils/ncurses.cpp:288 utils/ncurses.cpp:294
+#, c-format
+msgid "%s: %d"
+msgstr "%s : %d"
+
+#: utils/ncurses.cpp:306
+msgid "Racks"
+msgstr "Tirages"
+
+#: utils/ncurses.cpp:310 utils/ncurses.cpp:316
+#, c-format
+msgid "%s: %ls"
+msgstr "%s : %ls"
+
+#: utils/ncurses.cpp:330 utils/ncurses.cpp:333
+msgid "Search complete"
+msgstr "Recherche terminée"
+
+#: utils/ncurses.cpp:371
+msgid "History of the game"
+msgstr "Historique de la partie"
+
+#: utils/ncurses.cpp:377
+msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
+msgstr " N |  TIRAGE  |    SOLUTION     | REF | PTS | J | BONUS"
+
+#: utils/ncurses.cpp:442
+msgid "Help"
+msgstr "Aide"
+
+#: utils/ncurses.cpp:446
+msgid "[Global]"
+msgstr "[Général]"
+
+#: utils/ncurses.cpp:447
+msgid "   h, H, ?          Show/hide help box"
+msgstr "   h, H, ?          Afficher/cacher la boîte d'aide"
+
+#: utils/ncurses.cpp:448
+msgid "   y, Y             Show/hide history of the game"
+msgstr "   y, Y             Afficher/cacher l'historique de la partie"
+
+#: utils/ncurses.cpp:449
+msgid ""
+"   b, B             Show/hide contents of the bag (including letters of the "
+"racks)"
+msgstr ""
+"   b, B             Afficher/cacher le contenu du sac (avec les lettres des "
+"tirages)"
+
+#: utils/ncurses.cpp:450
+msgid "   e, E             Show/hide dots on empty squares of the board"
+msgstr ""
+"   e, E             Afficher/cacher les points sur les cases vides du "
+"plateau de jeu"
+
+#: utils/ncurses.cpp:451
+msgid "   d, D             Check the existence of a word in the dictionary"
+msgstr "   d, D             Vérifier l'existence d'un mot dans le 
dictionnaire"
+
+#: utils/ncurses.cpp:452
+msgid "   j, J             Play a word"
+msgstr "   j, J             Jouer un mot"
+
+#: utils/ncurses.cpp:453
+msgid "   s, S             Save the game"
+msgstr "   s, S             Sauvegarder la partie"
+
+#: utils/ncurses.cpp:454
+msgid "   l, L             Load a game"
+msgstr "   l, L             Charger une partie"
+
+#: utils/ncurses.cpp:455
+msgid "   q, Q             Quit"
+msgstr "   q, Q             Quitter"
+
+#: utils/ncurses.cpp:458
+msgid "[Training mode]"
+msgstr "[Mode entraînement]"
+
+#: utils/ncurses.cpp:459
+msgid "   *                Take a random rack"
+msgstr "   *                Tirage aléatoire"
+
+#: utils/ncurses.cpp:460
+msgid "   +                Complete the current rack randomly"
+msgstr "   +                Compléter le tirage courant de manière 
aléatoire"
+
+#: utils/ncurses.cpp:461
+msgid "   t, T             Set the rack manually"
+msgstr "   t, T             Entrer le tirage manuellement"
+
+#: utils/ncurses.cpp:462
+msgid "   c, C             Compute all the possible words"
+msgstr "   c, C             Calculer tous les mots possibles"
+
+#: utils/ncurses.cpp:463
+msgid "   r, R             Show/hide search results"
+msgstr "   r, R             Afficher/cacher les résultats de la recherche"
+
+#: utils/ncurses.cpp:466
+msgid "[Duplicate mode]"
+msgstr "[Mode duplicate]"
+
+#: utils/ncurses.cpp:467
+msgid "   n, N             Switch to the next human player"
+msgstr "   n, N             Passer au joueur humain suivant"
+
+#: utils/ncurses.cpp:470
+msgid "[Free game mode]"
+msgstr "[Mode partie libre]"
+
+#: utils/ncurses.cpp:471
+msgid "   p, P             Pass your turn (with or without changing letters)"
+msgstr ""
+"   p, P             Passer son tour (en changeant ou pas certaines lettres)"
+
+#: utils/ncurses.cpp:474
+msgid "[Miscellaneous]"
+msgstr "[Divers]"
+
+#: utils/ncurses.cpp:475
+msgid "   <up>, <down>     Navigate in a box line by line"
+msgstr "   <haut>, <bas>    Naviguer dans une boîte ligne par ligne"
+
+#: utils/ncurses.cpp:476
+msgid "   <pgup>, <pgdown> Navigate in a box page by page"
+msgstr "   <pgup>, <pgdown> Naviguer dans une boîte page par page"
+
+#: utils/ncurses.cpp:477
+msgid "   Ctrl-l           Refresh the screen"
+msgstr "   Ctrl-l           Rafraîchir l'écran"
+
+#: utils/ncurses.cpp:495
+msgid " LETTER | POINTS | FREQUENCY | REMAINING"
+msgstr " LETTRE | POINTS | FREQUENCE | RESTANT"
+
+#: utils/ncurses.cpp:548
+msgid "Play a word"
+msgstr "Jouer un mot"
+
+#. TRANSLATORS: Align the : when translating "Played word:" and
+#. "Coordinates:". For example:
+#. Pl. word   :
+#. Coordinates:
+#: utils/ncurses.cpp:549 utils/ncurses.cpp:557
+msgid "Played word:"
+msgstr "Mot joué    :"
+
+#: utils/ncurses.cpp:550 utils/ncurses.cpp:558
+msgid "Coordinates:"
+msgstr "Coordonnées :"
+
+#: utils/ncurses.cpp:572
+msgid "Incorrect or misplaced word"
+msgstr "Mot incorrect ou mal placé"
+
+#: utils/ncurses.cpp:582
+msgid "Dictionary"
+msgstr "Dictionnaire"
+
+#: utils/ncurses.cpp:583
+msgid "Enter the word to check:"
+msgstr "Entrer le mot à vérifier:"
+
+#: utils/ncurses.cpp:592
+#, c-format
+msgid "The word '%ls' exists"
+msgstr "Le mot '%ls' existe"
+
+#: utils/ncurses.cpp:594
+#, c-format
+msgid "The word '%ls' does not exist"
+msgstr "Le mot '%ls' n'existe pas"
+
+#: utils/ncurses.cpp:604
+msgid "Save the game"
+msgstr "Sauvegarder la partie"
+
+#: utils/ncurses.cpp:605 utils/ncurses.cpp:635
+msgid "Enter the file name:"
+msgstr "Entrer le nom du fichier :"
+
+#: utils/ncurses.cpp:615
+#, c-format
+msgid "Cannot open file %ls for writing"
+msgstr "Impossible d'ouvrir le fichier %ls en écriture"
+
+#: utils/ncurses.cpp:623
+#, c-format
+msgid "Game saved in '%ls'"
+msgstr "Partie sauvée dans '%ls'"
+
+#: utils/ncurses.cpp:645
+#, c-format
+msgid "Cannot open file '%ls' for reading"
+msgstr "Impossible d'ouvrir le fichier '%ls' en lecture"
+
+#: utils/ncurses.cpp:653
+#, c-format
+msgid "Invalid saved game"
+msgstr "Partie sauvée invalide"
+
+#: utils/ncurses.cpp:674
+msgid "Pass your turn"
+msgstr "Passer son tour"
+
+#: utils/ncurses.cpp:675
+msgid "Enter the letters to change:"
+msgstr "Entrer les lettres à changer:"
+
+#: utils/ncurses.cpp:684
+msgid "Cannot pass the turn"
+msgstr "Impossible de passer le tour"
+
+#: utils/ncurses.cpp:694
+msgid "Set rack"
+msgstr "Choix du tirage"
+
+#: utils/ncurses.cpp:695
+msgid "Enter the new letters:"
+msgstr "Entrer les nouvelles lettres:"
+
+#: utils/ncurses.cpp:707
+msgid "Cannot take these letters from the bag:"
+msgstr "Impossible de prendre ces lettres dans le sac:"
+
+#: utils/ncurses.cpp:1124
+msgid "[h for help]"
+msgstr "[h pour l'aide]"
+
+#~ msgid "Cannot save the preferences: %1"
+#~ msgstr "Impossible de sauver les préférences : %1"
+
 #~ msgid "Ctrl+A"
 #~ msgstr "Ctrl+A"
 
@@ -1663,9 +1682,6 @@
 #~ msgid "Go back one turn"
 #~ msgstr "Revenir un coup en arrière"
 
-#~ msgid "Play the selected word"
-#~ msgstr "Jouer le mot selectionné"
-
 #~ msgid "&New game\tCtrl+N"
 #~ msgstr "&Nouvelle partie\tCtrl+N"
 
@@ -1852,9 +1868,6 @@
 #~ msgid "Eliot: error"
 #~ msgstr "Eliot : erreur"
 
-#~ msgid "Cannot open "
-#~ msgstr "Impossible d'ouvrir "
-
 #~ msgid "Invalid game"
 #~ msgstr "Partie invalide"
 
@@ -1960,9 +1973,6 @@
 #~ "Vous ouvez probablement télécharger une nouvelle version du dictionnaire 
"
 #~ "sur http://www.nongnu.org/eliot/";
 
-#~ msgid "%1 error"
-#~ msgstr "Erreur %1"
-
 #~ msgid ""
 #~ "To play a word, enter the word (case sensitive) and its coordinates. E."
 #~ "g.: WORD H4"

Index: qt/prefs_dialog.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/prefs_dialog.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- qt/prefs_dialog.cpp 24 Jan 2009 17:44:57 -0000      1.11
+++ qt/prefs_dialog.cpp 19 Feb 2009 21:56:41 -0000      1.12
@@ -84,7 +84,7 @@
     catch (GameException &e)
     {
         QMessageBox::warning(this, _q("%1 error").arg(PACKAGE_NAME),
-                             _q("Cannot save the preferences: 
%1").arg(e.what()));
+                             _q("Cannot save preferences: %1").arg(e.what()));
     }
     QDialog::accept();
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]