eliot-dev
[Top][All Lists]
Advanced

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

[Eliot-dev] eliot configure.in game/ai_percent.cpp game/ai_...


From: eliot-dev
Subject: [Eliot-dev] eliot configure.in game/ai_percent.cpp game/ai_...
Date: Sat, 22 Nov 2008 14:40:27 +0000

CVSROOT:        /cvsroot/eliot
Module name:    eliot
Changes by:     Olivier Teulière <ipkiss>      08/11/22 14:40:27

Modified files:
        .              : configure.in 
        game           : ai_percent.cpp ai_percent.h ai_player.h 
                         duplicate.cpp freegame.cpp game.h results.cpp 
                         results.h training.cpp 
        po             : eliot.pot fr.po 
        qt             : main_window.cpp 

Log message:
         - Bumped version to 1.8-cvs
         - Improved the error message when the dictionary cannot be loaded at 
startup
         - Updated the french translation
         - Made some Game fields private
         - Added more constness

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/configure.in?cvsroot=eliot&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/eliot/game/ai_percent.cpp?cvsroot=eliot&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/eliot/game/ai_percent.h?cvsroot=eliot&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/eliot/game/ai_player.h?cvsroot=eliot&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/eliot/game/duplicate.cpp?cvsroot=eliot&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/eliot/game/freegame.cpp?cvsroot=eliot&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/eliot/game/game.h?cvsroot=eliot&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/eliot/game/results.cpp?cvsroot=eliot&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/eliot/game/results.h?cvsroot=eliot&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/eliot/game/training.cpp?cvsroot=eliot&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/eliot/po/eliot.pot?cvsroot=eliot&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/eliot/po/fr.po?cvsroot=eliot&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/eliot/qt/main_window.cpp?cvsroot=eliot&r1=1.16&r2=1.17

Patches:
Index: configure.in
===================================================================
RCS file: /cvsroot/eliot/eliot/configure.in,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- configure.in        17 Oct 2008 21:59:56 -0000      1.30
+++ configure.in        22 Nov 2008 14:40:25 -0000      1.31
@@ -3,7 +3,7 @@
 dnl --------------------------------------------------------------
 dnl configure.in for Eliot
 dnl --------------------------------------------------------------
-AC_INIT(eliot, 1.7a)
+AC_INIT(eliot, 1.8-cvs)
 AC_CONFIG_SRCDIR(qt/main.cpp)
 AM_INIT_AUTOMAKE
 AM_CONFIG_HEADER(config.h)

Index: game/ai_percent.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/game/ai_percent.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- game/ai_percent.cpp 22 Nov 2008 13:09:29 -0000      1.9
+++ game/ai_percent.cpp 22 Nov 2008 14:40:25 -0000      1.10
@@ -39,7 +39,7 @@
 }
 
 
-void AIPercent::compute(const Dictionary &iDic, Board &iBoard, bool iFirstWord)
+void AIPercent::compute(const Dictionary &iDic, const Board &iBoard, bool 
iFirstWord)
 {
     m_results.clear();
 

Index: game/ai_percent.h
===================================================================
RCS file: /cvsroot/eliot/eliot/game/ai_percent.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- game/ai_percent.h   22 Nov 2008 13:09:29 -0000      1.9
+++ game/ai_percent.h   22 Nov 2008 14:40:25 -0000      1.10
@@ -46,7 +46,7 @@
      * This method does the actual computation. It will be called before any
      * of the following methods, so it must prepare everything for them.
      */
-    virtual void compute(const Dictionary &iDic, Board &iBoard, bool 
iFirstWord);
+    virtual void compute(const Dictionary &iDic, const Board &iBoard, bool 
iFirstWord);
 
     /// Return the move played by the AI
     virtual Move getMove() const;

Index: game/ai_player.h
===================================================================
RCS file: /cvsroot/eliot/eliot/game/ai_player.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- game/ai_player.h    22 Nov 2008 13:09:29 -0000      1.10
+++ game/ai_player.h    22 Nov 2008 14:40:26 -0000      1.11
@@ -70,7 +70,7 @@
      * This method does the actual computation. It will be called before any
      * of the following methods, so it must prepare everything for them.
      */
-    virtual void compute(const Dictionary &iDic, Board &iBoard, bool 
iFirstWord) = 0;
+    virtual void compute(const Dictionary &iDic, const Board &iBoard, bool 
iFirstWord) = 0;
 
     /// Return the move played by the AI
     virtual Move getMove() const = 0;

Index: game/duplicate.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/game/duplicate.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- game/duplicate.cpp  22 Nov 2008 13:09:30 -0000      1.20
+++ game/duplicate.cpp  22 Nov 2008 14:40:26 -0000      1.21
@@ -77,7 +77,7 @@
     AIPlayer *player = dynamic_cast<AIPlayer*>(m_players[p]);
     ASSERT(player != NULL, "AI requested for a human player");
 
-    player->compute(m_dic, m_board, m_history.beforeFirstRound());
+    player->compute(getDic(), getBoard(), getHistory().beforeFirstRound());
     const Move move = player->getMove();
     if (move.getType() == Move::CHANGE_LETTERS ||
         move.getType() == Move::PASS)
@@ -169,7 +169,7 @@
     const Rack &newRack = helperComputeRackForMove(oldRack, iMove);
 
     // Update the rack and the score of the playing player
-    m_players[p]->endTurn(iMove, m_history.getSize(), newRack);
+    m_players[p]->endTurn(iMove, getHistory().getSize(), newRack);
 
     m_hasPlayed[p] = true;
 }

Index: game/freegame.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/game/freegame.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- game/freegame.cpp   22 Nov 2008 13:09:30 -0000      1.22
+++ game/freegame.cpp   22 Nov 2008 14:40:26 -0000      1.23
@@ -87,7 +87,7 @@
 
     AIPlayer *player = static_cast<AIPlayer*>(m_players[p]);
 
-    player->compute(m_dic, m_board, m_history.beforeFirstRound());
+    player->compute(getDic(), getBoard(), getHistory().beforeFirstRound());
     const Move move = player->getMove();
     if (move.getType() == Move::CHANGE_LETTERS ||
         move.getType() == Move::PASS)
@@ -113,7 +113,7 @@
     const Rack &newRack = helperComputeRackForMove(oldRack, iMove);
 
     // Record the invalid move of the player
-    m_players[p]->endTurn(iMove, m_history.getSize(), newRack);
+    m_players[p]->endTurn(iMove, getHistory().getSize(), newRack);
 }
 
 
@@ -225,7 +225,7 @@
         return 3;
 
     // Check that the letters are valid for the current dictionary
-    if (!m_dic.validateLetters(iToChange))
+    if (!getDic().validateLetters(iToChange))
         return 4;
 
     // It is forbidden to change letters when the bag does not contain at
@@ -234,7 +234,7 @@
 #ifdef REAL_BAG_MODE
     if (m_bag.getNbTiles() < 7 && !iToChange.empty())
 #else
-    Bag bag(m_dic);
+    Bag bag(getDic());
     realBag(bag);
     if (bag.getNbTiles() < 7 && !iToChange.empty())
 #endif

Index: game/game.h
===================================================================
RCS file: /cvsroot/eliot/eliot/game/game.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- game/game.h 22 Nov 2008 13:09:30 -0000      1.37
+++ game/game.h 22 Nov 2008 14:40:26 -0000      1.38
@@ -213,7 +213,7 @@
     unsigned int m_currPlayer;
 
 // TODO: check what should be private and what should be protected
-// private:
+private:
 
     /// Variant
     GameVariant m_variant;
@@ -221,12 +221,6 @@
     /// Dictionary currently associated to the game
     const Dictionary & m_dic;
 
-    /// Board
-    Board m_board;
-
-    /// Bag
-    Bag m_bag;
-
     /**
      * History of the game.
      */
@@ -234,6 +228,13 @@
 
     int m_points;
 
+protected:
+    /// Board
+    Board m_board;
+
+    /// Bag
+    Bag m_bag;
+
     bool m_finished;
 
     /*********************************************************

Index: game/results.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/game/results.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- game/results.cpp    22 Nov 2008 13:09:31 -0000      1.15
+++ game/results.cpp    22 Nov 2008 14:40:26 -0000      1.16
@@ -98,7 +98,7 @@
 }
 
 
-void Results::search(const Dictionary &iDic, Board &iBoard,
+void Results::search(const Dictionary &iDic, const Board &iBoard,
                      const Rack &iRack, bool iFirstWord)
 {
     clear();

Index: game/results.h
===================================================================
RCS file: /cvsroot/eliot/eliot/game/results.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- game/results.h      22 Nov 2008 13:09:31 -0000      1.10
+++ game/results.h      22 Nov 2008 14:40:26 -0000      1.11
@@ -46,7 +46,7 @@
     const Round & get(unsigned int) const;
 
     /// Perform a search on the board
-    void search(const Dictionary &iDic, Board &iBoard,
+    void search(const Dictionary &iDic, const Board &iBoard,
                 const Rack &iRack, bool iFirstWord);
 
     // FIXME: This method is used to fill the container with the rounds,

Index: game/training.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/game/training.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- game/training.cpp   22 Nov 2008 13:09:31 -0000      1.23
+++ game/training.cpp   22 Nov 2008 14:40:26 -0000      1.24
@@ -134,7 +134,7 @@
     const Rack &newRack = helperComputeRackForMove(oldRack, iMove);
 
     // Record the invalid move of the player
-    m_players[p]->endTurn(iMove, m_history.getSize(), newRack);
+    m_players[p]->endTurn(iMove, getHistory().getSize(), newRack);
 }
 
 
@@ -163,7 +163,7 @@
     // Search for the current player
     Rack r;
     m_players[m_currPlayer]->getCurrentRack().getRack(r);
-    m_results.search(m_dic, m_board, r, m_history.beforeFirstRound());
+    m_results.search(getDic(), getBoard(), r, getHistory().beforeFirstRound());
 }
 
 

Index: po/eliot.pot
===================================================================
RCS file: /cvsroot/eliot/eliot/po/eliot.pot,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- po/eliot.pot        4 Nov 2008 21:31:13 -0000       1.18
+++ po/eliot.pot        22 Nov 2008 14:40:26 -0000      1.19
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-04 21:56+0100\n"
+"POT-Creation-Date: 2008-11-16 10:29+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,260 +16,266 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: dic/header.cpp:319 dic/header.cpp:320
-msgid "Unknown (old format)"
+#: 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:494
+#: dic/header.cpp:435
 #, c-format
 msgid "dictionary name: %s\n"
 msgstr ""
 
-#: dic/header.cpp:499
+#: dic/header.cpp:438
 #, c-format
 msgid "compressed on: %s\n"
 msgstr ""
 
-#: dic/header.cpp:503
-#, c-format
-msgid "compressed on: Unknown date (old format)\n"
-msgstr ""
-
-#: dic/header.cpp:505
+#: dic/header.cpp:439
 #, c-format
 msgid "compressed using a binary compiled by: %s\n"
 msgstr ""
 
-#: dic/header.cpp:506
+#: dic/header.cpp:440
 #, c-format
 msgid "dictionary type: %s\n"
 msgstr ""
 
-#: dic/header.cpp:507
+#: dic/header.cpp:441
 #, c-format
 msgid "letters: %s\n"
 msgstr ""
 
-#: dic/header.cpp:508
+#: dic/header.cpp:442
 #, c-format
 msgid "number of letters: %lu\n"
 msgstr ""
 
-#: dic/header.cpp:509
+#: dic/header.cpp:443
 #, c-format
 msgid "number of words: %d\n"
 msgstr ""
 
-#: dic/header.cpp:512
+#: dic/header.cpp:445
 #, c-format
 msgid "header size: %lu bytes\n"
 msgstr ""
 
-#: dic/header.cpp:513
+#: dic/header.cpp:446
 #, c-format
 msgid "root: %d (edge)\n"
 msgstr ""
 
-#: dic/header.cpp:514
+#: dic/header.cpp:447
 #, c-format
 msgid "nodes: %d used + %d saved\n"
 msgstr ""
 
-#: dic/header.cpp:515
+#: dic/header.cpp:448
 #, c-format
 msgid "edges: %d used + %d saved\n"
 msgstr ""
 
-#: dic/header.cpp:517
+#: dic/header.cpp:450
 #, c-format
 msgid "letter | points | frequency | vowel | consonant\n"
 msgstr ""
 
-#: dic/compdic.cpp:408
+#: dic/compdic.cpp:401
 msgid "Mandatory options:"
 msgstr ""
 
-#: dic/compdic.cpp:409
+#: dic/compdic.cpp:402
 msgid "  -d, --dicname <string>  Set the dictionary name and version"
 msgstr ""
 
-#: dic/compdic.cpp:410
+#: dic/compdic.cpp:403
 msgid ""
 "  -l, --letters <string>  Path to the file containing the letters (see below)"
 msgstr ""
 
-#: dic/compdic.cpp:411
+#: dic/compdic.cpp:404
 msgid ""
 "  -i, --input <string>    Path to the uncompressed dictionary file (encoded "
 "in UTF-8)"
 msgstr ""
 
-#: dic/compdic.cpp:412
+#: dic/compdic.cpp:405
 msgid ""
 "                          The words must be in alphabetical order, without "
 "duplicates"
 msgstr ""
 
-#: dic/compdic.cpp:413
+#: dic/compdic.cpp:406
 msgid ""
 "  -o, --output <string    Path to the generated compressed dictionary file"
 msgstr ""
 
-#: dic/compdic.cpp:414
+#: dic/compdic.cpp:407
 msgid "Other options:"
 msgstr ""
 
-#: dic/compdic.cpp:415
+#: dic/compdic.cpp:408
 msgid "  -h, --help              Print this help and exit"
 msgstr ""
 
-#: dic/compdic.cpp:416
+#: dic/compdic.cpp:409
 msgid "Example:"
 msgstr ""
 
-#: dic/compdic.cpp:417
+#: dic/compdic.cpp:410
 msgid " -d 'ODS 5.0' -l letters.txt -i ods5.txt -o ods5.dawg"
 msgstr ""
 
-#: dic/compdic.cpp:419
+#: dic/compdic.cpp:412
 msgid ""
 "The file containing the letters (--letters switch) must be UTF-8 encoded."
 msgstr ""
 
-#: dic/compdic.cpp:420
+#: dic/compdic.cpp:413
 msgid ""
 "Each line corresponds to one letter, and must contain 5 fields separated "
 "with "
 msgstr ""
 
-#: dic/compdic.cpp:421
+#: dic/compdic.cpp:414
 msgid "one or more space(s)."
 msgstr ""
 
-#: dic/compdic.cpp:422
+#: dic/compdic.cpp:415
 msgid " - 1st field: the letter itself"
 msgstr ""
 
-#: dic/compdic.cpp:423
+#: dic/compdic.cpp:416
 msgid " - 2nd field: the points of the letter"
 msgstr ""
 
-#: dic/compdic.cpp:424
+#: dic/compdic.cpp:417
 msgid ""
 " - 3rd field: the frequency of the letter (how many letters of this kind in "
 "the game)"
 msgstr ""
 
-#: dic/compdic.cpp:425
+#: dic/compdic.cpp:418
 msgid ""
 " - 4th field: 1 if the letter is considered as a vowel in Scrabble game, 0 "
 "otherwise"
 msgstr ""
 
-#: dic/compdic.cpp:426
+#: dic/compdic.cpp:419
 msgid ""
 " - 5th field: 1 if the letter is considered as a consonant in Scrabble game, "
 "0 otherwise"
 msgstr ""
 
-#: dic/compdic.cpp:427
+#: dic/compdic.cpp:420
 msgid "Example for french:"
 msgstr ""
 
-#: dic/compdic.cpp:428
+#: dic/compdic.cpp:421
 msgid "A 1 9 1 0"
 msgstr ""
 
-#: dic/compdic.cpp:429
+#: dic/compdic.cpp:422
 msgid "[...]"
 msgstr ""
 
-#: dic/compdic.cpp:430
+#: dic/compdic.cpp:423
 msgid "Z 10 1 0 1"
 msgstr ""
 
-#: dic/compdic.cpp:431
+#: dic/compdic.cpp:424
 msgid "? 0 2 1 1"
 msgstr ""
 
-#: dic/compdic.cpp:512
+#: dic/compdic.cpp:505
 msgid "A mandatory option is missing"
 msgstr ""
 
-#: dic/compdic.cpp:520
+#: dic/compdic.cpp:513
 msgid "Cannot stat uncompressed dictionary "
 msgstr ""
 
-#: dic/compdic.cpp:528
+#: dic/compdic.cpp:521
 msgid "Cannot open output file "
 msgstr ""
 
-#: dic/compdic.cpp:576
+#: dic/compdic.cpp:569
 #, c-format
 msgid " Load time: %.3f s\n"
 msgstr ""
 
-#: dic/compdic.cpp:577
+#: dic/compdic.cpp:570
 #, c-format
 msgid " Compression time: %.3f s\n"
 msgstr ""
 
-#: dic/compdic.cpp:579
+#: dic/compdic.cpp:572
 #, c-format
 msgid " Maximum recursion level reached: %d\n"
 msgstr ""
 
-#: dic/listdic.cpp:105
+#: dic/listdic.cpp:94
 #, c-format
 msgid "offset binary   | structure\n"
 msgstr ""
 
-#: dic/listdic.cpp:114
+#: dic/listdic.cpp:103
 #, c-format
 msgid "usage: %s [-a|-h|-l|-x] dictionary\n"
 msgstr ""
 
-#: dic/listdic.cpp:115
+#: dic/listdic.cpp:104
 #, c-format
 msgid "  -a: print all\n"
 msgstr ""
 
-#: dic/listdic.cpp:116
+#: dic/listdic.cpp:105
 #, c-format
 msgid "  -h: print header\n"
 msgstr ""
 
-#: dic/listdic.cpp:117
+#: dic/listdic.cpp:106
 #, c-format
 msgid "  -l: print dictionary word list\n"
 msgstr ""
 
-#: dic/listdic.cpp:118
+#: dic/listdic.cpp:107
 #, c-format
 msgid "  -x: print dictionary in hex\n"
 msgstr ""
 
-#: dic/regexpmain.cpp:53
+#: dic/regexpmain.cpp:46
 #, c-format
 msgid "usage: %s dictionary"
 msgstr ""
 
-#: dic/regexpmain.cpp:54
+#: dic/regexpmain.cpp:47
 msgid "   dictionary: path to eliot dawg dictionary"
 msgstr ""
 
-#: dic/regexpmain.cpp:95 dic/regexpmain.cpp:119
+#: dic/regexpmain.cpp:88 dic/regexpmain.cpp:112
 msgid "Enter a regular expression:"
 msgstr ""
 
-#: dic/regexpmain.cpp:106
+#: dic/regexpmain.cpp:99
 msgid "result:"
 msgstr ""
 
-#: dic/regexpmain.cpp:115 wxwin/searchpanel.cc:296
+#: dic/regexpmain.cpp:108 wxwin/searchpanel.cc:296
 msgid "Invalid regular expression: "
 msgstr ""
 
+#: game/game.cpp:468
+msgid "The bag is empty"
+msgstr ""
+
+#: game/game.cpp:475 game/game.cpp:485
+msgid "Not enough vowels or consonants to complete the rack"
+msgstr ""
+
 #: game/training.cpp:49 qt/new_game.cpp:97 qt/new_game.cpp:105
 #: qt/new_game.cpp:140 qt/ui/new_game.ui:46
 msgid "Training"
@@ -309,7 +315,7 @@
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr ""
 
-#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:563
+#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:553
 msgid "(PASS)"
 msgstr ""
 
@@ -415,7 +421,7 @@
 msgid "   Ctrl-l           Refresh the screen"
 msgstr ""
 
-#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:646
+#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:636
 #: qt/ui/main_window.ui:94
 msgid "Bag"
 msgstr ""
@@ -481,7 +487,7 @@
 msgstr ""
 
 #: utils/ncurses.cpp:632 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
-#: wxwin/mainframe.cc:429 qt/main_window.cpp:408
+#: wxwin/mainframe.cc:429 qt/main_window.cpp:398
 msgid "Load a game"
 msgstr ""
 
@@ -495,7 +501,7 @@
 msgid "Invalid saved game"
 msgstr ""
 
-#: utils/ncurses.cpp:656 qt/main_window.cpp:422
+#: utils/ncurses.cpp:656 qt/main_window.cpp:412
 #, c-format
 msgid "Game loaded"
 msgstr ""
@@ -524,7 +530,7 @@
 msgid "Cannot take these letters from the bag"
 msgstr ""
 
-#: utils/ncurses.cpp:1095 qt/main_window.cpp:212 qt/ui/prefs_dialog.ui:181
+#: utils/ncurses.cpp:1095 qt/main_window.cpp:214 qt/ui/prefs_dialog.ui:181
 msgid "Training mode"
 msgstr ""
 
@@ -745,7 +751,7 @@
 msgid "Cancel last changes"
 msgstr ""
 
-#: wxwin/gfxresult.cc:67 qt/history_widget.cpp:53 qt/training_widget.cpp:58
+#: wxwin/gfxresult.cc:67 qt/history_widget.cpp:53 qt/training_widget.cpp:59
 msgid "Word"
 msgstr ""
 
@@ -797,7 +803,7 @@
 msgid "&New game\tCtrl+N"
 msgstr ""
 
-#: wxwin/mainframe.cc:272 qt/main_window.cpp:326
+#: wxwin/mainframe.cc:272 qt/main_window.cpp:316
 msgid "Start a new game"
 msgstr ""
 
@@ -817,7 +823,7 @@
 msgid "&Save as...\tCtrl+S"
 msgstr ""
 
-#: wxwin/mainframe.cc:276 qt/main_window.cpp:331
+#: wxwin/mainframe.cc:276 qt/main_window.cpp:321
 msgid "Save the current game"
 msgstr ""
 
@@ -849,7 +855,7 @@
 msgid "&Quit\tCtrl+Q"
 msgstr ""
 
-#: wxwin/mainframe.cc:284 qt/main_window.cpp:337
+#: wxwin/mainframe.cc:284 qt/main_window.cpp:327
 msgid "Quit Eliot"
 msgstr ""
 
@@ -857,7 +863,7 @@
 msgid "&Dictionary...\tCtrl+D"
 msgstr ""
 
-#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:613
+#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:603
 msgid "Choose a dictionary"
 msgstr ""
 
@@ -966,7 +972,7 @@
 msgstr ""
 
 #: wxwin/mainframe.cc:310 wxwin/mainframe.cc:334 qt/history_widget.cpp:177
-#: qt/main_window.cpp:324
+#: qt/main_window.cpp:314
 msgid "&Game"
 msgstr ""
 
@@ -1062,24 +1068,24 @@
 msgid "R&esults"
 msgstr ""
 
-#: wxwin/mainframe.cc:331 qt/main_window.cpp:362
+#: wxwin/mainframe.cc:331 qt/main_window.cpp:352
 msgid "&About..."
 msgstr ""
 
-#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:363
-#: qt/main_window.cpp:724
+#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:353
+#: qt/main_window.cpp:714
 msgid "About Eliot"
 msgstr ""
 
-#: wxwin/mainframe.cc:335 qt/main_window.cpp:341
+#: wxwin/mainframe.cc:335 qt/main_window.cpp:331
 msgid "&Settings"
 msgstr ""
 
-#: wxwin/mainframe.cc:336 qt/main_window.cpp:349
+#: wxwin/mainframe.cc:336 qt/main_window.cpp:339
 msgid "&Windows"
 msgstr ""
 
-#: wxwin/mainframe.cc:337 qt/main_window.cpp:361
+#: wxwin/mainframe.cc:337 qt/main_window.cpp:351
 msgid "&Help"
 msgstr ""
 
@@ -1096,7 +1102,7 @@
 msgid "Cannot open "
 msgstr ""
 
-#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:415
+#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:405
 msgid "Error while loading the game"
 msgstr ""
 
@@ -1207,12 +1213,12 @@
 msgid "Regular expressions"
 msgstr ""
 
-#: qt/bag_widget.cpp:49 qt/dic_tools_widget.cpp:100
+#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:100
 msgid "Letter"
 msgstr ""
 
-#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
-#: qt/training_widget.cpp:60
+#: qt/bag_widget.cpp:51 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
+#: qt/training_widget.cpp:61
 msgid "Points"
 msgstr ""
 
@@ -1274,7 +1280,7 @@
 msgid "Turn"
 msgstr ""
 
-#: qt/history_widget.cpp:54 qt/training_widget.cpp:59
+#: qt/history_widget.cpp:54 qt/training_widget.cpp:60
 msgid "Ref"
 msgstr ""
 
@@ -1282,23 +1288,25 @@
 msgid "Player"
 msgstr ""
 
-#: qt/main_window.cpp:108 qt/main_window.cpp:664 qt/ui/main_window.ui:40
+#: qt/main_window.cpp:109 qt/main_window.cpp:654 qt/ui/main_window.ui:40
 msgid "Board"
 msgstr ""
 
-#: qt/main_window.cpp:163
-msgid "Cannot load dictionary '%1' indicated in the preferences"
+#: qt/main_window.cpp:164
+msgid ""
+"Cannot load dictionary '%1' indicated in the preferences.\n"
+"Reason: %2"
 msgstr ""
 
-#: qt/main_window.cpp:204
+#: qt/main_window.cpp:206
 msgid "No game"
 msgstr ""
 
-#: qt/main_window.cpp:217
+#: qt/main_window.cpp:219
 msgid "Duplicate game"
 msgstr ""
 
-#: qt/main_window.cpp:222 qt/new_game.cpp:99 qt/new_game.cpp:165
+#: qt/main_window.cpp:224 qt/new_game.cpp:99 qt/new_game.cpp:165
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr ""
@@ -1307,201 +1315,189 @@
 msgid "Dictionary: %1"
 msgstr ""
 
-#: qt/main_window.cpp:241
-msgid "Dictionary: Unknown (old format)"
-msgstr ""
-
-#: qt/main_window.cpp:242
-msgid ""
-"The dictionary name cannot be retrieved, because you are using an old "
-"dictionary format.\n"
-"You can probably download a newer version of the dictionary on http://www.";
-"nongnu.org/eliot/"
-msgstr ""
-
-#: qt/main_window.cpp:255
+#: qt/main_window.cpp:245
 msgid "Eliot - Error"
 msgstr ""
 
-#: qt/main_window.cpp:325
+#: qt/main_window.cpp:315
 msgid "&New..."
 msgstr ""
 
-#: qt/main_window.cpp:325
+#: qt/main_window.cpp:315
 msgid "Ctrl+N"
 msgstr ""
 
-#: qt/main_window.cpp:328
+#: qt/main_window.cpp:318
 msgid "&Load..."
 msgstr ""
 
-#: qt/main_window.cpp:328
+#: qt/main_window.cpp:318
 msgid "Ctrl+O"
 msgstr ""
 
-#: qt/main_window.cpp:329
+#: qt/main_window.cpp:319
 msgid "Load an existing game"
 msgstr ""
 
-#: qt/main_window.cpp:330
+#: qt/main_window.cpp:320
 msgid "&Save as..."
 msgstr ""
 
-#: qt/main_window.cpp:330
+#: qt/main_window.cpp:320
 msgid "Ctrl+S"
 msgstr ""
 
-#: qt/main_window.cpp:333
+#: qt/main_window.cpp:323
 msgid "&Print..."
 msgstr ""
 
-#: qt/main_window.cpp:333
+#: qt/main_window.cpp:323
 msgid "Ctrl+P"
 msgstr ""
 
-#: qt/main_window.cpp:334
+#: qt/main_window.cpp:324
 msgid "Print the current game"
 msgstr ""
 
-#: qt/main_window.cpp:336
+#: qt/main_window.cpp:326
 msgid "&Quit"
 msgstr ""
 
-#: qt/main_window.cpp:336
+#: qt/main_window.cpp:326
 msgid "Ctrl+Q"
 msgstr ""
 
-#: qt/main_window.cpp:342
+#: qt/main_window.cpp:332
 msgid "&Choose dictionary..."
 msgstr ""
 
-#: qt/main_window.cpp:342
+#: qt/main_window.cpp:332
 msgid "Ctrl+C"
 msgstr ""
 
-#: qt/main_window.cpp:343
+#: qt/main_window.cpp:333
 msgid "Select a new dictionary"
 msgstr ""
 
-#: qt/main_window.cpp:344
+#: qt/main_window.cpp:334
 msgid "&Preferences..."
 msgstr ""
 
-#: qt/main_window.cpp:344
+#: qt/main_window.cpp:334
 msgid "Ctrl+F"
 msgstr ""
 
-#: qt/main_window.cpp:345
+#: qt/main_window.cpp:335
 msgid "Edit the preferences"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:340
 msgid "&Bag"
 msgstr ""
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:340
 msgid "Ctrl+B"
 msgstr ""
 
-#: qt/main_window.cpp:351 qt/ui/main_window.ui:97
+#: qt/main_window.cpp:341 qt/ui/main_window.ui:97
 msgid "Show/hide the remaining tiles in the bag"
 msgstr ""
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:342
 msgid "&External board"
 msgstr ""
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:342
 msgid "Ctrl+E"
 msgstr ""
 
-#: qt/main_window.cpp:353 qt/ui/main_window.ui:111
+#: qt/main_window.cpp:343 qt/ui/main_window.ui:111
 msgid "Show/hide the external board"
 msgstr ""
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:344
 msgid "&History"
 msgstr ""
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:344
 msgid "Ctrl+H"
 msgstr ""
 
-#: qt/main_window.cpp:355 qt/ui/main_window.ui:125
+#: qt/main_window.cpp:345 qt/ui/main_window.ui:125
 msgid "Show/hide the game history"
 msgstr ""
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:346
 msgid "&Dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:346
 msgid "Ctrl+D"
 msgstr ""
 
-#: qt/main_window.cpp:357 qt/ui/main_window.ui:139
+#: qt/main_window.cpp:347 qt/ui/main_window.ui:139
 msgid "Show/hide the dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:362
+#: qt/main_window.cpp:352
 msgid "Ctrl+A"
 msgstr ""
 
-#: qt/main_window.cpp:371 qt/main_window.cpp:404
+#: qt/main_window.cpp:361 qt/main_window.cpp:394
 msgid "You have to select a dictionary first!"
 msgstr ""
 
-#: qt/main_window.cpp:396
+#: qt/main_window.cpp:386
 msgid "Game started"
 msgstr ""
 
-#: qt/main_window.cpp:432
+#: qt/main_window.cpp:422
 msgid "Save a game"
 msgstr ""
 
-#: qt/main_window.cpp:437
+#: qt/main_window.cpp:427
 msgid "Game saved"
 msgstr ""
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "N."
 msgstr ""
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "RACK"
 msgstr ""
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "SOLUTION"
 msgstr ""
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "REF"
 msgstr ""
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "PTS"
 msgstr ""
 
-#: qt/main_window.cpp:604
+#: qt/main_window.cpp:594
 msgid "Stop current game?"
 msgstr ""
 
-#: qt/main_window.cpp:605
+#: qt/main_window.cpp:595
 msgid ""
 "Loading a dictionary will stop the current game. Do you want to continue?"
 msgstr ""
 
-#: qt/main_window.cpp:682 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
+#: qt/main_window.cpp:672 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
 msgid "History"
 msgstr ""
 
-#: qt/main_window.cpp:699 qt/ui/dic_tools_widget.ui:13
+#: qt/main_window.cpp:689 qt/ui/dic_tools_widget.ui:13
 #: qt/ui/main_window.ui:136
 msgid "Dictionary tools"
 msgstr ""
 
-#: qt/main_window.cpp:716
+#: qt/main_window.cpp:706
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -1631,15 +1627,15 @@
 msgid "Score"
 msgstr ""
 
-#: qt/training_widget.cpp:199
+#: qt/training_widget.cpp:200
 msgid "Warning: Cannot set the rack to '%1'"
 msgstr ""
 
-#: qt/training_widget.cpp:224
+#: qt/training_widget.cpp:239
 msgid "Searching with rack '%1'..."
 msgstr ""
 
-#: qt/training_widget.cpp:226
+#: qt/training_widget.cpp:241
 msgid "Search done"
 msgstr ""
 

Index: po/fr.po
===================================================================
RCS file: /cvsroot/eliot/eliot/po/fr.po,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- po/fr.po    4 Nov 2008 21:31:14 -0000       1.19
+++ po/fr.po    22 Nov 2008 14:40:26 -0000      1.20
@@ -8,100 +8,101 @@
 msgstr ""
 "Project-Id-Version: eliot 1.7\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-04 21:56+0100\n"
-"PO-Revision-Date: 2008-08-31 10:43+0100\n"
-"Last-Translator: Olivier Teuliere <address@hidden>\n"
+"POT-Creation-Date: 2008-11-16 10:29+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"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: dic/header.cpp:319 dic/header.cpp:320
-msgid "Unknown (old format)"
-msgstr "Inconnu (vieux format)"
+#: 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:494
+#: dic/header.cpp:435
 #, c-format
 msgid "dictionary name: %s\n"
 msgstr "Nom du dictionnaire : %s\n"
 
-#: dic/header.cpp:499
+#: dic/header.cpp:438
 #, c-format
 msgid "compressed on: %s\n"
 msgstr "Compressé le : %s\n"
 
-#: dic/header.cpp:503
-#, c-format
-msgid "compressed on: Unknown date (old format)\n"
-msgstr "Compressé le : Date inconnue (vieux format)\n"
-
-#: dic/header.cpp:505
+#: 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:506
+#: dic/header.cpp:440
 #, c-format
 msgid "dictionary type: %s\n"
 msgstr "Type de dictionnaire : %s\n"
 
-#: dic/header.cpp:507
+#: dic/header.cpp:441
 #, c-format
 msgid "letters: %s\n"
 msgstr "Lettres : %s\n"
 
-#: dic/header.cpp:508
+#: dic/header.cpp:442
 #, c-format
 msgid "number of letters: %lu\n"
 msgstr "Nombre de lettres : %lu\n"
 
-#: dic/header.cpp:509
+#: dic/header.cpp:443
 #, c-format
 msgid "number of words: %d\n"
 msgstr "Nombre de mots : %d\n"
 
-#: dic/header.cpp:512
+#: dic/header.cpp:445
 #, c-format
 msgid "header size: %lu bytes\n"
 msgstr "Taille du header : %lu octets\n"
 
-#: dic/header.cpp:513
+#: dic/header.cpp:446
 #, c-format
 msgid "root: %d (edge)\n"
 msgstr "Racine : %d (arcs)\n"
 
-#: dic/header.cpp:514
+#: 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:515
+#: 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:517
+#: dic/header.cpp:450
 #, c-format
 msgid "letter | points | frequency | vowel | consonant\n"
 msgstr "lettre | points | frequence | voye. | consonne\n"
 
-#: dic/compdic.cpp:408
+#: dic/compdic.cpp:401
 msgid "Mandatory options:"
 msgstr "Options obligatoires :"
 
-#: dic/compdic.cpp:409
+#: dic/compdic.cpp:402
 msgid "  -d, --dicname <string>  Set the dictionary name and version"
 msgstr "  -d, --dicname <string>  Choisir le nom et la version du dictionnaire"
 
-#: dic/compdic.cpp:410
+#: dic/compdic.cpp:403
 msgid ""
 "  -l, --letters <string>  Path to the file containing the letters (see below)"
 msgstr ""
 "  -l, --letters <string>  Chemin vers un fichier contenant les lettres (voir "
 "ci-dessous)"
 
-#: dic/compdic.cpp:411
+#: dic/compdic.cpp:404
 msgid ""
 "  -i, --input <string>    Path to the uncompressed dictionary file (encoded "
 "in UTF-8)"
@@ -109,7 +110,7 @@
 "  -i, --input <string>    Chemin vers le fichier de dictionnaire non "
 "compressé (encodé en UTF-8)"
 
-#: dic/compdic.cpp:412
+#: dic/compdic.cpp:405
 msgid ""
 "                          The words must be in alphabetical order, without "
 "duplicates"
@@ -117,56 +118,56 @@
 "                          Les mots doivent être triés par ordre 
alphabétique,"
 "sans doublons"
 
-#: dic/compdic.cpp:413
+#: dic/compdic.cpp:406
 msgid ""
 "  -o, --output <string    Path to the generated compressed dictionary file"
 msgstr ""
 "  -o, --output <string    Chemin vers le fichier de dictionnaire compressé "
 "généré"
 
-#: dic/compdic.cpp:414
+#: dic/compdic.cpp:407
 msgid "Other options:"
 msgstr "Autres options :"
 
-#: dic/compdic.cpp:415
+#: dic/compdic.cpp:408
 msgid "  -h, --help              Print this help and exit"
 msgstr "  -h, --help              Affiche cette aide et quitte"
 
-#: dic/compdic.cpp:416
+#: dic/compdic.cpp:409
 msgid "Example:"
 msgstr "Exemple :"
 
-#: dic/compdic.cpp:417
+#: dic/compdic.cpp:410
 msgid " -d 'ODS 5.0' -l letters.txt -i ods5.txt -o ods5.dawg"
 msgstr " -d 'ODS 5.0' -l lettres.txt -i ods5.txt -o ods5.dawg"
 
-#: dic/compdic.cpp:419
+#: dic/compdic.cpp:412
 msgid ""
 "The file containing the letters (--letters switch) must be UTF-8 encoded."
 msgstr ""
 "Le fichier contenant les lettres (option --letters) doit être encodé en 
UTF-"
 "8."
 
-#: dic/compdic.cpp:420
+#: dic/compdic.cpp:413
 msgid ""
 "Each line corresponds to one letter, and must contain 5 fields separated "
 "with "
 msgstr ""
 "Chaque ligne correspond à une lettre, et doit contenir 5 champs séparés 
par "
 
-#: dic/compdic.cpp:421
+#: dic/compdic.cpp:414
 msgid "one or more space(s)."
 msgstr "un ou plusieurs espace(s)."
 
-#: dic/compdic.cpp:422
+#: dic/compdic.cpp:415
 msgid " - 1st field: the letter itself"
 msgstr " - 1er champ : la lettre elle-même"
 
-#: dic/compdic.cpp:423
+#: dic/compdic.cpp:416
 msgid " - 2nd field: the points of the letter"
 msgstr " - 2e champ : les points de cette lettre"
 
-#: dic/compdic.cpp:424
+#: dic/compdic.cpp:417
 msgid ""
 " - 3rd field: the frequency of the letter (how many letters of this kind in "
 "the game)"
@@ -174,7 +175,7 @@
 " - 3e champ : la fréquence de la lettre (nombre de lettres de ce genre dans "
 "le jeu)"
 
-#: dic/compdic.cpp:425
+#: dic/compdic.cpp:418
 msgid ""
 " - 4th field: 1 if the letter is considered as a vowel in Scrabble game, 0 "
 "otherwise"
@@ -182,7 +183,7 @@
 " - 4e champ : 1 si la lettre est considérée comme une voyelle au jeu de "
 "Scrabble, 0 sinon"
 
-#: dic/compdic.cpp:426
+#: dic/compdic.cpp:419
 msgid ""
 " - 5th field: 1 if the letter is considered as a consonant in Scrabble game, "
 "0 otherwise"
@@ -190,104 +191,112 @@
 " - 5e champ : 1 si la lettre est considérée comme une consonne au jeu de "
 "Scrabble, 0 sinon"
 
-#: dic/compdic.cpp:427
+#: dic/compdic.cpp:420
 msgid "Example for french:"
 msgstr "Exemple pour le Français :"
 
-#: dic/compdic.cpp:428
+#: dic/compdic.cpp:421
 msgid "A 1 9 1 0"
 msgstr "A 1 9 1 0"
 
-#: dic/compdic.cpp:429
+#: dic/compdic.cpp:422
 msgid "[...]"
 msgstr "[...]"
 
-#: dic/compdic.cpp:430
+#: dic/compdic.cpp:423
 msgid "Z 10 1 0 1"
 msgstr "Z 10 1 0 1"
 
-#: dic/compdic.cpp:431
+#: dic/compdic.cpp:424
 msgid "? 0 2 1 1"
 msgstr "? 0 2 1 1"
 
-#: dic/compdic.cpp:512
+#: dic/compdic.cpp:505
 msgid "A mandatory option is missing"
 msgstr "Une option obligatoire est manquante"
 
-#: dic/compdic.cpp:520
+#: dic/compdic.cpp:513
 msgid "Cannot stat uncompressed dictionary "
 msgstr "Impossible de trouver le dictionnaire non compressé "
 
-#: dic/compdic.cpp:528
+#: dic/compdic.cpp:521
 msgid "Cannot open output file "
 msgstr "Impossible d'ouvrir le fichier d'output "
 
-#: dic/compdic.cpp:576
+#: dic/compdic.cpp:569
 #, c-format
 msgid " Load time: %.3f s\n"
 msgstr " Temps de chargement : %.3f s\n"
 
-#: dic/compdic.cpp:577
+#: dic/compdic.cpp:570
 #, c-format
 msgid " Compression time: %.3f s\n"
 msgstr " Temps de compression : %.3f s\n"
 
-#: dic/compdic.cpp:579
+#: dic/compdic.cpp:572
 #, c-format
 msgid " Maximum recursion level reached: %d\n"
 msgstr " Niveau maximum de rcursion atteint : %d\n"
 
-#: dic/listdic.cpp:105
+#: dic/listdic.cpp:94
 #, c-format
 msgid "offset binary   | structure\n"
 msgstr "offset binaire  | structure\n"
 
-#: dic/listdic.cpp:114
+#: dic/listdic.cpp:103
 #, c-format
 msgid "usage: %s [-a|-h|-l|-x] dictionary\n"
 msgstr "Usage : %s [-a|-h|-l|-x] dictionnaire\n"
 
-#: dic/listdic.cpp:115
+#: dic/listdic.cpp:104
 #, c-format
 msgid "  -a: print all\n"
 msgstr "  -a : affiche tout\n"
 
-#: dic/listdic.cpp:116
+#: dic/listdic.cpp:105
 #, c-format
 msgid "  -h: print header\n"
 msgstr "  -h : affiche l'en-tête\n"
 
-#: dic/listdic.cpp:117
+#: dic/listdic.cpp:106
 #, c-format
 msgid "  -l: print dictionary word list\n"
 msgstr "  -l : affiche la liste de mots du dictionnaire\n"
 
-#: dic/listdic.cpp:118
+#: dic/listdic.cpp:107
 #, c-format
 msgid "  -x: print dictionary in hex\n"
 msgstr "  -x : affiche le dictionnaire en hexadécimal\n"
 
-#: dic/regexpmain.cpp:53
+#: dic/regexpmain.cpp:46
 #, c-format
 msgid "usage: %s dictionary"
 msgstr "Usage : %s dictionnaire"
 
-#: dic/regexpmain.cpp:54
+#: dic/regexpmain.cpp:47
 msgid "   dictionary: path to eliot dawg dictionary"
 msgstr "   dictionnaire : chemin vers un dictionnaire de type dawg pour Eliot"
 
-#: dic/regexpmain.cpp:95 dic/regexpmain.cpp:119
+#: dic/regexpmain.cpp:88 dic/regexpmain.cpp:112
 msgid "Enter a regular expression:"
 msgstr "Entrer une expression régulière :"
 
-#: dic/regexpmain.cpp:106
+#: dic/regexpmain.cpp:99
 msgid "result:"
 msgstr "résultat :"
 
-#: dic/regexpmain.cpp:115 wxwin/searchpanel.cc:296
+#: dic/regexpmain.cpp:108 wxwin/searchpanel.cc:296
 msgid "Invalid regular expression: "
 msgstr "Expression régulière invalide : "
 
+#: game/game.cpp:468
+msgid "The bag is empty"
+msgstr "Le sac est vide"
+
+#: game/game.cpp:475 game/game.cpp:485
+msgid "Not enough vowels or consonants to complete the rack"
+msgstr "Pas assez de voyelles ou de consonnes pour compléter le tirage"
+
 #: game/training.cpp:49 qt/new_game.cpp:97 qt/new_game.cpp:105
 #: qt/new_game.cpp:140 qt/ui/new_game.ui:46
 msgid "Training"
@@ -327,7 +336,7 @@
 msgid " N |   RACK   |    SOLUTION     | REF | PTS | P | BONUS"
 msgstr " N |  TIRAGE  |    SOLUTION     | REF | PTS | J | BONUS"
 
-#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:563
+#: utils/ncurses.cpp:414 qt/history_widget.cpp:143 qt/main_window.cpp:553
 msgid "(PASS)"
 msgstr "(PASSE)"
 
@@ -438,7 +447,7 @@
 msgid "   Ctrl-l           Refresh the screen"
 msgstr "   Ctrl-l           Rafraîchir l'écran"
 
-#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:646
+#: utils/ncurses.cpp:486 wxwin/auxframes.cc:147 qt/main_window.cpp:636
 #: qt/ui/main_window.ui:94
 msgid "Bag"
 msgstr "Sac"
@@ -504,7 +513,7 @@
 msgstr "Partie sauvée dans '%ls'"
 
 #: utils/ncurses.cpp:632 wxwin/mainframe.cc:275 wxwin/mainframe.cc:405
-#: wxwin/mainframe.cc:429 qt/main_window.cpp:408
+#: wxwin/mainframe.cc:429 qt/main_window.cpp:398
 msgid "Load a game"
 msgstr "Charger une partie"
 
@@ -518,7 +527,7 @@
 msgid "Invalid saved game"
 msgstr "Partie sauvée invalide"
 
-#: utils/ncurses.cpp:656 qt/main_window.cpp:422
+#: utils/ncurses.cpp:656 qt/main_window.cpp:412
 #, c-format
 msgid "Game loaded"
 msgstr "Partie chargée"
@@ -547,7 +556,7 @@
 msgid "Cannot take these letters from the bag"
 msgstr "Impossible de retirer ces lettres du sac"
 
-#: utils/ncurses.cpp:1095 qt/main_window.cpp:212 qt/ui/prefs_dialog.ui:181
+#: utils/ncurses.cpp:1095 qt/main_window.cpp:214 qt/ui/prefs_dialog.ui:181
 msgid "Training mode"
 msgstr "Mode entraînement"
 
@@ -768,7 +777,7 @@
 msgid "Cancel last changes"
 msgstr "Annuler les derniers changements"
 
-#: wxwin/gfxresult.cc:67 qt/history_widget.cpp:53 qt/training_widget.cpp:58
+#: wxwin/gfxresult.cc:67 qt/history_widget.cpp:53 qt/training_widget.cpp:59
 msgid "Word"
 msgstr "Mot"
 
@@ -820,7 +829,7 @@
 msgid "&New game\tCtrl+N"
 msgstr "&Nouvelle partie\tCtrl+N"
 
-#: wxwin/mainframe.cc:272 qt/main_window.cpp:326
+#: wxwin/mainframe.cc:272 qt/main_window.cpp:316
 msgid "Start a new game"
 msgstr "Démarrer une nouvelle partie"
 
@@ -840,7 +849,7 @@
 msgid "&Save as...\tCtrl+S"
 msgstr "&Enregistrer sous...\tCtrl+S"
 
-#: wxwin/mainframe.cc:276 qt/main_window.cpp:331
+#: wxwin/mainframe.cc:276 qt/main_window.cpp:321
 msgid "Save the current game"
 msgstr "Sauvegarder la partie en cours"
 
@@ -872,7 +881,7 @@
 msgid "&Quit\tCtrl+Q"
 msgstr "&Quitter\tCtrl+Q"
 
-#: wxwin/mainframe.cc:284 qt/main_window.cpp:337
+#: wxwin/mainframe.cc:284 qt/main_window.cpp:327
 msgid "Quit Eliot"
 msgstr "Quitter Eliot"
 
@@ -880,7 +889,7 @@
 msgid "&Dictionary...\tCtrl+D"
 msgstr "&Dictionnaire...\tCtrl+D"
 
-#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:613
+#: wxwin/mainframe.cc:287 wxwin/mainframe.cc:604 qt/main_window.cpp:603
 msgid "Choose a dictionary"
 msgstr "Choisir un dictionnaire"
 
@@ -989,7 +998,7 @@
 msgstr "Police de caractères pour la recherche"
 
 #: wxwin/mainframe.cc:310 wxwin/mainframe.cc:334 qt/history_widget.cpp:177
-#: qt/main_window.cpp:324
+#: qt/main_window.cpp:314
 msgid "&Game"
 msgstr "&Partie"
 
@@ -1085,24 +1094,24 @@
 msgid "R&esults"
 msgstr "Ré&sultats"
 
-#: wxwin/mainframe.cc:331 qt/main_window.cpp:362
+#: wxwin/mainframe.cc:331 qt/main_window.cpp:352
 msgid "&About..."
 msgstr "À &propos..."
 
-#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:363
-#: qt/main_window.cpp:724
+#: wxwin/mainframe.cc:331 wxwin/mainframe.cc:733 qt/main_window.cpp:353
+#: qt/main_window.cpp:714
 msgid "About Eliot"
 msgstr "À propos d'Eliot"
 
-#: wxwin/mainframe.cc:335 qt/main_window.cpp:341
+#: wxwin/mainframe.cc:335 qt/main_window.cpp:331
 msgid "&Settings"
 msgstr "Para&mètres"
 
-#: wxwin/mainframe.cc:336 qt/main_window.cpp:349
+#: wxwin/mainframe.cc:336 qt/main_window.cpp:339
 msgid "&Windows"
 msgstr "&Fenêtres"
 
-#: wxwin/mainframe.cc:337 qt/main_window.cpp:361
+#: wxwin/mainframe.cc:337 qt/main_window.cpp:351
 msgid "&Help"
 msgstr "&Aide"
 
@@ -1119,7 +1128,7 @@
 msgid "Cannot open "
 msgstr "Impossible d'ouvrir "
 
-#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:415
+#: wxwin/mainframe.cc:440 wxwin/mainframe.cc:449 qt/main_window.cpp:405
 msgid "Error while loading the game"
 msgstr "Erreur pendant le chargement de la partie"
 
@@ -1237,12 +1246,12 @@
 msgid "Regular expressions"
 msgstr "Expressions régulières"
 
-#: qt/bag_widget.cpp:49 qt/dic_tools_widget.cpp:100
+#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:100
 msgid "Letter"
 msgstr "Lettre"
 
-#: qt/bag_widget.cpp:50 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
-#: qt/training_widget.cpp:60
+#: qt/bag_widget.cpp:51 qt/dic_tools_widget.cpp:101 qt/history_widget.cpp:55
+#: qt/training_widget.cpp:61
 msgid "Points"
 msgstr "Points"
 
@@ -1304,7 +1313,7 @@
 msgid "Turn"
 msgstr "Coup"
 
-#: qt/history_widget.cpp:54 qt/training_widget.cpp:59
+#: qt/history_widget.cpp:54 qt/training_widget.cpp:60
 msgid "Ref"
 msgstr "Ref"
 
@@ -1312,24 +1321,27 @@
 msgid "Player"
 msgstr "Joueur"
 
-#: qt/main_window.cpp:108 qt/main_window.cpp:664 qt/ui/main_window.ui:40
+#: qt/main_window.cpp:109 qt/main_window.cpp:654 qt/ui/main_window.ui:40
 msgid "Board"
 msgstr "Grille"
 
-#: qt/main_window.cpp:163
-msgid "Cannot load dictionary '%1' indicated in the preferences"
+#: qt/main_window.cpp:164
+msgid ""
+"Cannot load dictionary '%1' indicated in the preferences.\n"
+"Reason: %2"
 msgstr ""
-"Impossible de charger le dictionnaire '%1' indiqué dans les préférences"
+"Impossible de charger le dictionnaire '%1' indiqué dans les préférences.\n"
+"Raison : %2"
 
-#: qt/main_window.cpp:204
+#: qt/main_window.cpp:206
 msgid "No game"
 msgstr "Pas de partie en cours"
 
-#: qt/main_window.cpp:217
+#: qt/main_window.cpp:219
 msgid "Duplicate game"
 msgstr "Partie duplicate"
 
-#: qt/main_window.cpp:222 qt/new_game.cpp:99 qt/new_game.cpp:165
+#: qt/main_window.cpp:224 qt/new_game.cpp:99 qt/new_game.cpp:165
 #: qt/ui/new_game.ui:41
 msgid "Free game"
 msgstr "Partie libre"
@@ -1338,206 +1350,190 @@
 msgid "Dictionary: %1"
 msgstr "Dictionnaire : %1"
 
-#: qt/main_window.cpp:241
-msgid "Dictionary: Unknown (old format)"
-msgstr "Dictionnaire : Inconnu (vieux format)"
-
-#: qt/main_window.cpp:242
-msgid ""
-"The dictionary name cannot be retrieved, because you are using an old "
-"dictionary format.\n"
-"You can probably download a newer version of the dictionary on http://www.";
-"nongnu.org/eliot/"
-msgstr ""
-"Le nom du dictionnaire ne peut pas être récupéré, car vous utilisez un 
vieux "
-"format de dictionnaire.\n"
-"Vous ouvez probablement télécharger une nouvelle version du dictionnaire 
sur "
-"http://www.nongnu.org/eliot/";
-
-#: qt/main_window.cpp:255
+#: qt/main_window.cpp:245
 msgid "Eliot - Error"
 msgstr "Eliot - erreur"
 
-#: qt/main_window.cpp:325
+#: qt/main_window.cpp:315
 msgid "&New..."
 msgstr "&Nouvelle partie..."
 
-#: qt/main_window.cpp:325
+#: qt/main_window.cpp:315
 msgid "Ctrl+N"
 msgstr "Ctrl+N"
 
-#: qt/main_window.cpp:328
+#: qt/main_window.cpp:318
 msgid "&Load..."
 msgstr "&Charger..."
 
-#: qt/main_window.cpp:328
+#: qt/main_window.cpp:318
 msgid "Ctrl+O"
 msgstr "Ctrl+O"
 
-#: qt/main_window.cpp:329
+#: qt/main_window.cpp:319
 msgid "Load an existing game"
 msgstr "Charger une partie existante"
 
-#: qt/main_window.cpp:330
+#: qt/main_window.cpp:320
 msgid "&Save as..."
 msgstr "&Enregistrer sous..."
 
-#: qt/main_window.cpp:330
+#: qt/main_window.cpp:320
 msgid "Ctrl+S"
 msgstr "Ctrl+S"
 
-#: qt/main_window.cpp:333
+#: qt/main_window.cpp:323
 msgid "&Print..."
 msgstr "Im&primer..."
 
-#: qt/main_window.cpp:333
+#: qt/main_window.cpp:323
 msgid "Ctrl+P"
 msgstr "Ctrl+P"
 
-#: qt/main_window.cpp:334
+#: qt/main_window.cpp:324
 msgid "Print the current game"
 msgstr "Imprimer la partie en cours"
 
-#: qt/main_window.cpp:336
+#: qt/main_window.cpp:326
 msgid "&Quit"
 msgstr "&Quitter"
 
-#: qt/main_window.cpp:336
+#: qt/main_window.cpp:326
 msgid "Ctrl+Q"
 msgstr "Ctrl+Q"
 
-#: qt/main_window.cpp:342
+#: qt/main_window.cpp:332
 msgid "&Choose dictionary..."
 msgstr "Choisir un &dictionnaire..."
 
-#: qt/main_window.cpp:342
+#: qt/main_window.cpp:332
 msgid "Ctrl+C"
 msgstr "Ctrl+C"
 
-#: qt/main_window.cpp:343
+#: qt/main_window.cpp:333
 msgid "Select a new dictionary"
 msgstr "Choisir un nouveau dictionnaire"
 
-#: qt/main_window.cpp:344
+#: qt/main_window.cpp:334
 msgid "&Preferences..."
 msgstr "&Préférences..."
 
-#: qt/main_window.cpp:344
+#: qt/main_window.cpp:334
 msgid "Ctrl+F"
 msgstr "Ctrl+F"
 
-#: qt/main_window.cpp:345
+#: qt/main_window.cpp:335
 msgid "Edit the preferences"
 msgstr "Modifier les préférences"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:340
 msgid "&Bag"
 msgstr "&Sac"
 
-#: qt/main_window.cpp:350
+#: qt/main_window.cpp:340
 msgid "Ctrl+B"
 msgstr "Ctrl+B"
 
-#: qt/main_window.cpp:351 qt/ui/main_window.ui:97
+#: qt/main_window.cpp:341 qt/ui/main_window.ui:97
 msgid "Show/hide the remaining tiles in the bag"
 msgstr "Afficher/cacher les lettres restantes dans le sac"
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:342
 msgid "&External board"
 msgstr "&Plateau de jeu externe"
 
-#: qt/main_window.cpp:352
+#: qt/main_window.cpp:342
 msgid "Ctrl+E"
 msgstr "Ctrl+E"
 
-#: qt/main_window.cpp:353 qt/ui/main_window.ui:111
+#: qt/main_window.cpp:343 qt/ui/main_window.ui:111
 msgid "Show/hide the external board"
 msgstr "Afficher/cacher le plateau de jeu externe"
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:344
 msgid "&History"
 msgstr "&Historique"
 
-#: qt/main_window.cpp:354
+#: qt/main_window.cpp:344
 msgid "Ctrl+H"
 msgstr "Ctrl+H"
 
-#: qt/main_window.cpp:355 qt/ui/main_window.ui:125
+#: qt/main_window.cpp:345 qt/ui/main_window.ui:125
 msgid "Show/hide the game history"
 msgstr "Afficher/cacher l'historique de la partie"
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:346
 msgid "&Dictionary tools"
 msgstr "Outils du &dictionnaire"
 
-#: qt/main_window.cpp:356
+#: qt/main_window.cpp:346
 msgid "Ctrl+D"
 msgstr "Ctrl+D"
 
-#: qt/main_window.cpp:357 qt/ui/main_window.ui:139
+#: qt/main_window.cpp:347 qt/ui/main_window.ui:139
 msgid "Show/hide the dictionary tools"
 msgstr "Afficher/cacher les outils de recherche dans le dictionnaire"
 
-#: qt/main_window.cpp:362
+#: qt/main_window.cpp:352
 msgid "Ctrl+A"
 msgstr "Ctrl+A"
 
-#: qt/main_window.cpp:371 qt/main_window.cpp:404
+#: qt/main_window.cpp:361 qt/main_window.cpp:394
 msgid "You have to select a dictionary first!"
 msgstr "Vous devez d'abord choisir un dictionnaire !"
 
-#: qt/main_window.cpp:396
+#: qt/main_window.cpp:386
 msgid "Game started"
 msgstr "Partie démarrée"
 
-#: qt/main_window.cpp:432
+#: qt/main_window.cpp:422
 msgid "Save a game"
 msgstr "Sauvegarder la partie"
 
-#: qt/main_window.cpp:437
+#: qt/main_window.cpp:427
 msgid "Game saved"
 msgstr "Partie enregistrée"
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "N."
 msgstr "N."
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "RACK"
 msgstr "TIRAGE"
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "SOLUTION"
 msgstr "SOLUTION"
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "REF"
 msgstr "REF"
 
-#: qt/main_window.cpp:471
+#: qt/main_window.cpp:461
 msgid "PTS"
 msgstr "PTS"
 
-#: qt/main_window.cpp:604
+#: qt/main_window.cpp:594
 msgid "Stop current game?"
 msgstr "Arrêter la partie en cours ?"
 
-#: qt/main_window.cpp:605
+#: qt/main_window.cpp:595
 msgid ""
 "Loading a dictionary will stop the current game. Do you want to continue?"
 msgstr ""
 "Charger un dictionnaire arrêtera la partie en cours. Voulez-vous continuer ?"
 
-#: qt/main_window.cpp:682 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
+#: qt/main_window.cpp:672 qt/ui/main_window.ui:53 qt/ui/main_window.ui:122
 msgid "History"
 msgstr "Historique"
 
-#: qt/main_window.cpp:699 qt/ui/dic_tools_widget.ui:13
+#: qt/main_window.cpp:689 qt/ui/dic_tools_widget.ui:13
 #: qt/ui/main_window.ui:136
 msgid "Dictionary tools"
 msgstr "Outils du dictionnaire"
 
-#: qt/main_window.cpp:716
+#: qt/main_window.cpp:706
 msgid ""
 "Copyright (C) 1999-2008 - Antoine Fraboulet & Olivier Teuliere\n"
 "\n"
@@ -1681,15 +1677,15 @@
 msgid "Score"
 msgstr "Score"
 
-#: qt/training_widget.cpp:199
+#: qt/training_widget.cpp:200
 msgid "Warning: Cannot set the rack to '%1'"
 msgstr "Attention : Impossible de choisir le tirage '%1'"
 
-#: qt/training_widget.cpp:224
+#: qt/training_widget.cpp:239
 msgid "Searching with rack '%1'..."
 msgstr "Recherche en cours pour le tirage '%1'..."
 
-#: qt/training_widget.cpp:226
+#: qt/training_widget.cpp:241
 msgid "Search done"
 msgstr "Recherche terminée"
 
@@ -1892,6 +1888,26 @@
 msgid "Complement"
 msgstr "Complément"
 
+#~ msgid "Unknown (old format)"
+#~ msgstr "Inconnu (vieux format)"
+
+#~ msgid "compressed on: Unknown date (old format)\n"
+#~ msgstr "Compressé le : Date inconnue (vieux format)\n"
+
+#~ msgid "Dictionary: Unknown (old format)"
+#~ msgstr "Dictionnaire : Inconnu (vieux format)"
+
+#~ msgid ""
+#~ "The dictionary name cannot be retrieved, because you are using an old "
+#~ "dictionary format.\n"
+#~ "You can probably download a newer version of the dictionary on http://www.";
+#~ "nongnu.org/eliot/"
+#~ msgstr ""
+#~ "Le nom du dictionnaire ne peut pas être récupéré, car vous utilisez un 
"
+#~ "vieux format de dictionnaire.\n"
+#~ "Vous ouvez probablement télécharger une nouvelle version du dictionnaire 
"
+#~ "sur http://www.nongnu.org/eliot/";
+
 #~ msgid "%1 error"
 #~ msgstr "Erreur %1"
 

Index: qt/main_window.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/qt/main_window.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- qt/main_window.cpp  22 Nov 2008 13:11:48 -0000      1.16
+++ qt/main_window.cpp  22 Nov 2008 14:40:27 -0000      1.17
@@ -34,6 +34,7 @@
 
 #include "main_window.h"
 #include "dic.h"
+#include "dic_exception.h"
 #include "encoding.h"
 #include "header.h"
 #include "game_factory.h"
@@ -158,9 +159,10 @@
         {
             m_dic = new Dictionary(qtl(dicPath));
         }
-        catch (...)
+        catch (DicException &e)
         {
-            displayErrorMsg(_q("Cannot load dictionary '%1' indicated in the 
preferences").arg(dicPath));
+            displayErrorMsg(_q("Cannot load dictionary '%1' indicated in the "
+                               "preferences.\nReason: 
%2").arg(dicPath).arg(e.what()));
         }
     }
     emit dicChanged(m_dic);




reply via email to

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