From ab9e316cd9a02af34f8792e1d6cfd31ded613b86 Mon Sep 17 00:00:00 2001
From: skomoroh <skomoroh@39dd0a4e-7c14-0410-91b3-c4f2d318f732>
Date: Thu, 7 Dec 2006 22:19:52 +0000
Subject: [PATCH] + 4 new games * updated russian translation

git-svn-id: https://pysolfc.svn.sourceforge.net/svnroot/pysolfc/PySolFC/trunk@106 39dd0a4e-7c14-0410-91b3-c4f2d318f732
---
 data/html-src/wikipedia/bigben.html |  64 +++++
 po/games.pot                        |  56 ++++-
 po/pysol.pot                        | 356 ++++++++++++++--------------
 po/ru_games.po                      |  59 ++++-
 po/ru_pysol.po                      | 355 +++++++++++++--------------
 pysollib/games/freecell.py          |  22 ++
 pysollib/games/grandfathersclock.py | 115 +++++++++
 pysollib/games/royalcotillion.py    |  79 +++++-
 pysollib/games/windmill.py          |  11 +-
 pysollib/layout.py                  |   2 +-
 10 files changed, 761 insertions(+), 358 deletions(-)
 create mode 100644 data/html-src/wikipedia/bigben.html

diff --git a/data/html-src/wikipedia/bigben.html b/data/html-src/wikipedia/bigben.html
new file mode 100644
index 00000000..1d2d39da
--- /dev/null
+++ b/data/html-src/wikipedia/bigben.html
@@ -0,0 +1,64 @@
+<h1>Big Ben</h1>
+<h3>From Wikipedia, the free encyclopedia</h3>
+<p>
+Big Ben (or known in other solitaire brands as Clock) is a solitaire card game
+which uses two decks of playing cards mixed together. It is basically a
+large-scale, two-deck version of <a
+href="grandfathersclock.html">Grandfather's Clock</a> and is probably named
+after Big Ben, the colloquially used nickname for the clock face at the tower
+of the Palace of Westminster in London.
+<p>
+Before the start of the game, the following cards are separated from the
+decks: 2<img src="../images/c.gif">, 3<img src="../images/h.gif">, 4<img
+src="../images/s.gif">, 5<img src="../images/d.gif">, 6<img
+src="../images/c.gif">, 7<img src="../images/h.gif">, 8<img
+src="../images/s.gif">, 9<img src="../images/d.gif">, 10<img
+src="../images/c.gif">, J<img src="../images/h.gif">, Q<img
+src="../images/s.gif">, K<img src="../images/d.gif">. These cards to form a
+circle arranged like numbers on a clock face with the 2<img
+src="../images/c.gif"> on the "9 o' clock" position, the 5<img
+src="../images/d.gif"> at the "12 o' clock" position, and the K<img
+src="../images/d.gif"> at the "8 o' clock." This will be the foundations, or
+the "inner circle" (otherwise known as the "clock").
+<p>
+Twelves piles of three cards are then dealt around the inner circle. These
+piles form the tableau, or the "outer circle." The top cards of the outer
+circle are available for play to the inner circle or around the outer circle.
+Building on the outer circle is down by suit, while the foundations in the
+inner circle are built up by suit until the last card corresponds to the its
+position on the clock (i.e. the Q<img src="../images/s.gif"> should be built
+up to 7<img src="../images/s.gif">, for instance). Building is also
+continuous, with Aces placed over Kings in the inner circle and vice versa in
+the outer circle.
+<p>
+It should be noted that the minimum number of cards in each pile in the outer
+circle is three. A pile containing less than three cards is said to have gaps;
+an empty pile has three "gaps," a pile having one card has two "gaps," and a
+pile with two cards has one "gap." As cards are built, "gaps" are formed and
+the only way these are "filled" is by dealing cards from the stock. Building
+on a pile having cards less than three is like "filling a gap" from the
+tableau and is therefore not allowed.
+<p>
+It is the player's discretion when to fill the "gaps," but when the player
+decides to do so, one has to fill all "gaps," i. e. replenish all piles with
+less than three cards so each of them contains three cards once again. For
+example, two piles are empty, one pile has one card left, and two piles have
+two cards left. So the player has to fill a total of 10 gaps. He does this by
+dealing cards one card per pile at a time clockwise starting from the pile
+above the "12 o' clock" foundation. No building is done until this process is
+complete. The player can do this as long as there are "gaps."
+<p>
+Sometimes, the player cannot make any moves even when all piles contain three
+cards each. So the player can deal cards from the stock one at a time. Cards
+that cannot be built either onto the inner or outer circles are placed on the
+wastepile (as a suggestion, one can place the wastepile at the center of the
+inner circle for convenience). Again, cards at the wastepile cannot be used to
+fill "gaps." But once the stock is exhausted, there are no redeals; the game
+ends sooner after this or later.
+<p>
+The game is successfully won when all foundations show cards corresponding to
+their positions in the clock (J<img src="../images/s.gif"> on "11 o' clock,"
+Q<img src="../images/d.gif"> on "12 o' clock," A<img src="../images/c.gif"> on
+"1 o' clock," and so on.)
+<p>
+<i>(Retrieved from <a href="http://en.wikipedia.org/wiki/Big_Ben_%28solitaire%29">http://en.wikipedia.org/wiki/Big_Ben_(solitaire)</a>)</i>
diff --git a/po/games.pot b/po/games.pot
index cac81607..98a2c2ed 100644
--- a/po/games.pot
+++ b/po/games.pot
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PySol 0.0.1\n"
-"POT-Creation-Date: Thu Nov 30 16:31:56 2006\n"
+"POT-Creation-Date: Thu Dec  7 15:25:59 2006\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -36,6 +36,9 @@ msgstr ""
 msgid " 9x9 Matrix"
 msgstr ""
 
+msgid " Pyramid's Stones"
+msgstr ""
+
 msgid "10 x 8"
 msgstr ""
 
@@ -339,6 +342,9 @@ msgstr ""
 msgid "Boar"
 msgstr ""
 
+msgid "Board Patience"
+msgstr ""
+
 msgid "Boat"
 msgstr ""
 
@@ -408,6 +414,9 @@ msgstr ""
 msgid "Brunswick"
 msgstr ""
 
+msgid "Brush"
+msgstr ""
+
 msgid "Buffalo Bill"
 msgstr ""
 
@@ -462,6 +471,9 @@ msgstr ""
 msgid "Casino Klondike"
 msgstr ""
 
+msgid "Casket"
+msgstr ""
+
 msgid "Cassim"
 msgstr ""
 
@@ -567,6 +579,9 @@ msgstr ""
 msgid "Cockroach"
 msgstr ""
 
+msgid "Colonel"
+msgstr ""
+
 msgid "Colorado"
 msgstr ""
 
@@ -654,6 +669,9 @@ msgstr ""
 msgid "Dead King Golf"
 msgstr ""
 
+msgid "Deck"
+msgstr ""
+
 msgid "Deep"
 msgstr ""
 
@@ -690,6 +708,9 @@ msgstr ""
 msgid "Dhanpati"
 msgstr ""
 
+msgid "Dial"
+msgstr ""
+
 msgid "Diamond"
 msgstr ""
 
@@ -972,6 +993,9 @@ msgstr ""
 msgid "Falling Star"
 msgstr ""
 
+msgid "Famous Fifty"
+msgstr ""
+
 msgid "Fan"
 msgstr ""
 
@@ -999,6 +1023,9 @@ msgstr ""
 msgid "Fatimeh's Game Relaxed"
 msgstr ""
 
+msgid "Fechter's Game"
+msgstr ""
+
 msgid "Fifteen"
 msgstr ""
 
@@ -1047,6 +1074,9 @@ msgstr ""
 msgid "Floradora"
 msgstr ""
 
+msgid "Florentine Patience"
+msgstr ""
+
 msgid "Flower Arrangement"
 msgstr ""
 
@@ -1068,6 +1098,9 @@ msgstr ""
 msgid "ForeCell"
 msgstr ""
 
+msgid "Formic"
+msgstr ""
+
 msgid "Fort"
 msgstr ""
 
@@ -1203,6 +1236,9 @@ msgstr ""
 msgid "Giza"
 msgstr ""
 
+msgid "Glacier"
+msgstr ""
+
 msgid "Glade"
 msgstr ""
 
@@ -1335,6 +1371,9 @@ msgstr ""
 msgid "Helios"
 msgstr ""
 
+msgid "Hemispheres"
+msgstr ""
+
 msgid "Hex A Klon"
 msgstr ""
 
@@ -1362,6 +1401,9 @@ msgstr ""
 msgid "Horse"
 msgstr ""
 
+msgid "Hospital Patience"
+msgstr ""
+
 msgid "House in the Wood"
 msgstr ""
 
@@ -1518,6 +1560,9 @@ msgstr ""
 msgid "Khadga"
 msgstr ""
 
+msgid "Khedive"
+msgstr ""
+
 msgid "King Albert"
 msgstr ""
 
@@ -1527,6 +1572,9 @@ msgstr ""
 msgid "King Only Hex A Klon"
 msgstr ""
 
+msgid "King Tut"
+msgstr ""
+
 msgid "KingCell"
 msgstr ""
 
@@ -3384,6 +3432,9 @@ msgstr ""
 msgid "The Familiar"
 msgstr ""
 
+msgid "The Four Continents"
+msgstr ""
+
 msgid "The Garden"
 msgstr ""
 
@@ -3399,6 +3450,9 @@ msgstr ""
 msgid "The Little Corporal"
 msgstr ""
 
+msgid "The Red and the Black"
+msgstr ""
+
 msgid "The Spark"
 msgstr ""
 
diff --git a/po/pysol.pot b/po/pysol.pot
index a4d66a8a..5554841e 100644
--- a/po/pysol.pot
+++ b/po/pysol.pot
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "#-#-#-#-#  pysol-1.pot (PACKAGE VERSION)  #-#-#-#-#\n"
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: Thu Nov 30 16:32:59 2006\n"
+"POT-Creation-Date: Thu Dec  7 15:27:04 2006\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Generated-By: pygettext.py 1.5\n"
 "#-#-#-#-#  pysol-2.pot (PACKAGE VERSION)  #-#-#-#-#\n"
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2006-11-30 16:33+0300\n"
+"POT-Creation-Date: 2006-12-07 15:27+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,8 +37,8 @@ msgstr ""
 msgid "New game"
 msgstr ""
 
-#: pysollib/actions.py:272 pysollib/tile/menubar.py:821
-#: pysollib/tile/menubar.py:835 pysollib/tk/menubar.py:815
+#: pysollib/actions.py:272 pysollib/tile/menubar.py:820
+#: pysollib/tile/menubar.py:834 pysollib/tk/menubar.py:815
 #: pysollib/tk/menubar.py:829
 msgid "Select game"
 msgstr ""
@@ -74,10 +74,10 @@ msgstr ""
 #: pysollib/app.py:1176 pysollib/game.py:933 pysollib/game.py:1865
 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83
 #: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205
-#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1336
-#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:397
-#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:171
-#: pysollib/tile/soundoptionsdialog.py:209 pysollib/tile/timeoutsdialog.py:94
+#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1335
+#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:388
+#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168
+#: pysollib/tile/soundoptionsdialog.py:206 pysollib/tile/timeoutsdialog.py:94
 #: pysollib/tile/tkhtml.py:501 pysollib/tile/tkstats.py:211
 #: pysollib/tile/tkstats.py:381 pysollib/tile/tkstats.py:450
 #: pysollib/tile/tkstats.py:473 pysollib/tile/tkstats.py:516
@@ -103,9 +103,9 @@ msgstr ""
 #: pysollib/game.py:1338 pysollib/game.py:1344
 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83
 #: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205
-#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:243
-#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:407
-#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:171
+#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:237
+#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:397
+#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168
 #: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:319
 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82
 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205
@@ -201,7 +201,7 @@ msgstr ""
 msgid "Statistics for "
 msgstr ""
 
-#: pysollib/actions.py:583 pysollib/tile/selectgame.py:349
+#: pysollib/actions.py:583 pysollib/tile/selectgame.py:344
 #: pysollib/tile/toolbar.py:247 pysollib/tk/selectgame.py:350
 #: pysollib/tk/toolbar.py:208
 msgid "Statistics"
@@ -266,7 +266,7 @@ msgid "Unknown"
 msgstr ""
 
 #: pysollib/app.py:883 pysollib/game.py:1316 pysollib/game.py:1331
-#: pysollib/game.py:1338 pysollib/game.py:1344 pysollib/tile/menubar.py:367
+#: pysollib/game.py:1338 pysollib/game.py:1344 pysollib/tile/menubar.py:366
 #: pysollib/tk/menubar.py:363
 msgid "&New game"
 msgstr ""
@@ -685,11 +685,15 @@ msgid "Puzzle type"
 msgstr ""
 
 #: pysollib/games/auldlangsyne.py:158 pysollib/games/calculation.py:104
-#: pysollib/games/numerica.py:90 pysollib/games/numerica.py:272
-#: pysollib/games/numerica.py:644 pysollib/games/numerica.py:757
+#: pysollib/games/numerica.py:94 pysollib/games/numerica.py:276
+#: pysollib/games/numerica.py:666 pysollib/games/numerica.py:779
 msgid "Tableau. Build regardless of rank and suit."
 msgstr ""
 
+#: pysollib/games/auldlangsyne.py:555
+msgid "Foundation. Build up or down regardless of suit."
+msgstr ""
+
 #: pysollib/games/braid.py:248 pysollib/games/camelot.py:555
 #: pysollib/games/napoleon.py:182 pysollib/games/ultra/dashavatara.py:959
 #: pysollib/games/ultra/hanafuda1.py:257 pysollib/games/ultra/hexadeck.py:1190
@@ -804,7 +808,7 @@ msgstr ""
 msgid "Deal %d"
 msgstr ""
 
-#: pysollib/games/numerica.py:259 pysollib/games/royalcotillion.py:849
+#: pysollib/games/numerica.py:263 pysollib/games/royalcotillion.py:850
 msgid "Foundation. Build up by color."
 msgstr ""
 
@@ -1259,7 +1263,7 @@ msgid ""
 "Please check your %s installation.\n"
 msgstr ""
 
-#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:386
+#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:385
 #: pysollib/tk/menubar.py:382
 msgid "&Quit"
 msgstr ""
@@ -1934,7 +1938,7 @@ msgstr ""
 msgid "Select color"
 msgstr ""
 
-#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:439
+#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:438
 #: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:435
 msgid "Find card"
 msgstr ""
@@ -1994,493 +1998,493 @@ msgstr ""
 msgid "Style"
 msgstr ""
 
-#: pysollib/tile/menubar.py:96 pysollib/tk/menubar.py:94
+#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94
 msgid "Compound"
 msgstr ""
 
-#: pysollib/tile/menubar.py:102 pysollib/tk/menubar.py:100
+#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100
 msgid "Hide"
 msgstr ""
 
-#: pysollib/tile/menubar.py:105 pysollib/tk/menubar.py:103
+#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103
 msgid "Top"
 msgstr ""
 
-#: pysollib/tile/menubar.py:108 pysollib/tk/menubar.py:106
+#: pysollib/tile/menubar.py:107 pysollib/tk/menubar.py:106
 msgid "Bottom"
 msgstr ""
 
-#: pysollib/tile/menubar.py:111 pysollib/tk/menubar.py:109
+#: pysollib/tile/menubar.py:110 pysollib/tk/menubar.py:109
 msgid "Left"
 msgstr ""
 
-#: pysollib/tile/menubar.py:114 pysollib/tk/menubar.py:112
+#: pysollib/tile/menubar.py:113 pysollib/tk/menubar.py:112
 msgid "Right"
 msgstr ""
 
-#: pysollib/tile/menubar.py:118 pysollib/tk/menubar.py:116
+#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116
 msgid "Small icons"
 msgstr ""
 
-#: pysollib/tile/menubar.py:121 pysollib/tk/menubar.py:119
+#: pysollib/tile/menubar.py:120 pysollib/tk/menubar.py:119
 msgid "Large icons"
 msgstr ""
 
-#: pysollib/tile/menubar.py:127 pysollib/tk/menubar.py:125
+#: pysollib/tile/menubar.py:126 pysollib/tk/menubar.py:125
 msgid "Customize toolbar"
 msgstr ""
 
-#: pysollib/tile/menubar.py:366 pysollib/tk/menubar.py:362
+#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362
 msgid "&File"
 msgstr ""
 
-#: pysollib/tile/menubar.py:368 pysollib/tk/menubar.py:364
+#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364
 msgid "R&ecent games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:366
+#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366
 msgid "Select &random game"
 msgstr ""
 
-#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:367
+#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:367
 msgid "&All games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:368
+#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368
 msgid "Games played and &won"
 msgstr ""
 
-#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:369
+#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369
 msgid "Games played and &not won"
 msgstr ""
 
-#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:370
+#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370
 msgid "Games not &played"
 msgstr ""
 
-#: pysollib/tile/menubar.py:375 pysollib/tk/menubar.py:371
+#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:371
 msgid "Select game by nu&mber..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:373
+#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373
 msgid "Fa&vorite games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:374
+#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374
 msgid "A&dd to favorites"
 msgstr ""
 
-#: pysollib/tile/menubar.py:379 pysollib/tk/menubar.py:375
+#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:375
 msgid "R&emove from favorites"
 msgstr ""
 
-#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:377
+#: pysollib/tile/menubar.py:380 pysollib/tk/menubar.py:377
 msgid "&Open..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:378
+#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:378
 msgid "&Save"
 msgstr ""
 
-#: pysollib/tile/menubar.py:383 pysollib/tk/menubar.py:379
+#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:379
 msgid "Save &as..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:385 pysollib/tk/menubar.py:381
+#: pysollib/tile/menubar.py:384 pysollib/tk/menubar.py:381
 msgid "&Hold and quit"
 msgstr ""
 
-#: pysollib/tile/menubar.py:390 pysollib/tile/selectgame.py:407
+#: pysollib/tile/menubar.py:389 pysollib/tile/selectgame.py:397
 #: pysollib/tk/menubar.py:386 pysollib/tk/selectgame.py:407
 msgid "&Select"
 msgstr ""
 
-#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:391
+#: pysollib/tile/menubar.py:394 pysollib/tk/menubar.py:391
 msgid "&Edit"
 msgstr ""
 
-#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:392
+#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:392
 msgid "&Undo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:393
+#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393
 msgid "&Redo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:398 pysollib/tk/menubar.py:394
+#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:394
 msgid "Redo &all"
 msgstr ""
 
-#: pysollib/tile/menubar.py:401 pysollib/tk/menubar.py:397
+#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397
 msgid "&Set bookmark"
 msgstr ""
 
-#: pysollib/tile/menubar.py:403 pysollib/tile/menubar.py:407
+#: pysollib/tile/menubar.py:402 pysollib/tile/menubar.py:406
 #: pysollib/tk/menubar.py:399 pysollib/tk/menubar.py:403
 msgid "Bookmark %d"
 msgstr ""
 
-#: pysollib/tile/menubar.py:405 pysollib/tk/menubar.py:401
+#: pysollib/tile/menubar.py:404 pysollib/tk/menubar.py:401
 msgid "Go&to bookmark"
 msgstr ""
 
-#: pysollib/tile/menubar.py:410 pysollib/tk/menubar.py:406
+#: pysollib/tile/menubar.py:409 pysollib/tk/menubar.py:406
 msgid "&Clear bookmarks"
 msgstr ""
 
-#: pysollib/tile/menubar.py:413 pysollib/tile/toolbar.py:237
+#: pysollib/tile/menubar.py:412 pysollib/tile/toolbar.py:237
 #: pysollib/tk/menubar.py:409 pysollib/tk/toolbar.py:198
 msgid "Restart"
 msgstr ""
 
-#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:411
+#: pysollib/tile/menubar.py:414 pysollib/tk/menubar.py:411
 msgid "&Game"
 msgstr ""
 
-#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:412
+#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:412
 msgid "&Deal cards"
 msgstr ""
 
-#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:413
+#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413
 msgid "&Auto drop"
 msgstr ""
 
-#: pysollib/tile/menubar.py:418 pysollib/tk/menubar.py:414
+#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414
 msgid "&Pause"
 msgstr ""
 
-#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:417
+#: pysollib/tile/menubar.py:420 pysollib/tk/menubar.py:417
 msgid "S&tatus..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:422 pysollib/tk/menubar.py:418
+#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:418
 msgid "&Comments..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:424 pysollib/tk/menubar.py:420
+#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420
 msgid "&Statistics"
 msgstr ""
 
-#: pysollib/tile/menubar.py:425 pysollib/tile/menubar.py:433
+#: pysollib/tile/menubar.py:424 pysollib/tile/menubar.py:432
 #: pysollib/tk/menubar.py:421 pysollib/tk/menubar.py:429
 msgid "Current game..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:426 pysollib/tile/menubar.py:434
+#: pysollib/tile/menubar.py:425 pysollib/tile/menubar.py:433
 #: pysollib/tk/menubar.py:422 pysollib/tk/menubar.py:430
 msgid "All games..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:424
+#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424
 msgid "Session log..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:429 pysollib/tk/menubar.py:425
+#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:425
 msgid "Full log..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:432 pysollib/tk/menubar.py:428
+#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428
 msgid "D&emo statistics"
 msgstr ""
 
-#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:432
+#: pysollib/tile/menubar.py:435 pysollib/tk/menubar.py:432
 msgid "&Assist"
 msgstr ""
 
-#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:433
+#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433
 msgid "&Hint"
 msgstr ""
 
-#: pysollib/tile/menubar.py:438 pysollib/tk/menubar.py:434
+#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434
 msgid "Highlight p&iles"
 msgstr ""
 
-#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:437
+#: pysollib/tile/menubar.py:440 pysollib/tk/menubar.py:437
 msgid "&Demo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:442 pysollib/tk/menubar.py:438
+#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:438
 msgid "Demo (&all games)"
 msgstr ""
 
-#: pysollib/tile/menubar.py:444 pysollib/tk/menubar.py:440
+#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440
 msgid "Piles description"
 msgstr ""
 
-#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:444
+#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444
 msgid "&Options"
 msgstr ""
 
-#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:445
+#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445
 msgid "&Player options..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:446
+#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:446
 msgid "&Automatic play"
 msgstr ""
 
-#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:447
+#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447
 msgid "Auto &face up"
 msgstr ""
 
-#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:448
+#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448
 msgid "A&uto drop"
 msgstr ""
 
-#: pysollib/tile/menubar.py:453 pysollib/tk/menubar.py:449
+#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449
 msgid "Auto &deal"
 msgstr ""
 
-#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:451
+#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451
 msgid "&Quick play"
 msgstr ""
 
-#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:452
+#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452
 msgid "Assist &level"
 msgstr ""
 
-#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:453
+#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453
 msgid "Enable &undo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:454
+#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454
 msgid "Enable &bookmarks"
 msgstr ""
 
-#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:455
+#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455
 msgid "Enable &hint"
 msgstr ""
 
-#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:456
+#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:456
 msgid "Enable highlight p&iles"
 msgstr ""
 
-#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:457
+#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457
 msgid "Enable highlight &cards"
 msgstr ""
 
-#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:458
+#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458
 msgid "Enable highlight same &rank"
 msgstr ""
 
-#: pysollib/tile/menubar.py:463 pysollib/tk/menubar.py:459
+#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:459
 msgid "Highlight &no matching"
 msgstr ""
 
-#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:461
+#: pysollib/tile/menubar.py:464 pysollib/tk/menubar.py:461
 msgid "&Show removed tiles (in Mahjongg games)"
 msgstr ""
 
-#: pysollib/tile/menubar.py:466 pysollib/tk/menubar.py:462
+#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:462
 msgid "Show hint &arrow (in Shisen-Sho games)"
 msgstr ""
 
-#: pysollib/tile/menubar.py:468 pysollib/tk/menubar.py:464
+#: pysollib/tile/menubar.py:467 pysollib/tk/menubar.py:464
 msgid "&Sound..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:472
+#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472
 msgid "Cards&et..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:477 pysollib/tk/menubar.py:473
+#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473
 msgid "Table t&ile..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:475
+#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475
 msgid "Card &background"
 msgstr ""
 
-#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:476
+#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476
 msgid "Card &view"
 msgstr ""
 
-#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:477
+#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477
 msgid "Card shado&w"
 msgstr ""
 
-#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:478
+#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478
 msgid "Shade &legal moves"
 msgstr ""
 
-#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:479
+#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479
 msgid "&Negative cards bottom"
 msgstr ""
 
-#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:480
+#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480
 msgid "Shrink face-down cards"
 msgstr ""
 
-#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:481
+#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481
 msgid "Shade &filled stacks"
 msgstr ""
 
-#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:482
+#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482
 msgid "A&nimations"
 msgstr ""
 
-#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:483
+#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483
 msgid "&None"
 msgstr ""
 
-#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:484
+#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:484
 msgid "&Timer based"
 msgstr ""
 
-#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:485
+#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485
 msgid "&Fast"
 msgstr ""
 
-#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:486
+#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486
 msgid "&Slow"
 msgstr ""
 
-#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:487
+#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487
 msgid "&Very slow"
 msgstr ""
 
-#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:488
+#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488
 msgid "&Mouse"
 msgstr ""
 
-#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:489
+#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489
 msgid "&Drag-and-Drop"
 msgstr ""
 
-#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:490
+#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490
 msgid "&Point-and-Click"
 msgstr ""
 
-#: pysollib/tile/menubar.py:495 pysollib/tk/menubar.py:491
+#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:491
 msgid "&Sticky mouse"
 msgstr ""
 
-#: pysollib/tile/menubar.py:497 pysollib/tk/menubar.py:493
+#: pysollib/tile/menubar.py:496 pysollib/tk/menubar.py:493
 msgid "Use mouse for undo/redo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:495
+#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495
 msgid "&Fonts..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:496
+#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496
 msgid "&Colors..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:501 pysollib/tk/menubar.py:497
+#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:497
 msgid "Time&outs..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:503
+#: pysollib/tile/menubar.py:502
 msgid "Set t&heme"
 msgstr ""
 
-#: pysollib/tile/menubar.py:505 pysollib/tk/menubar.py:499
+#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:499
 msgid "&Toolbar"
 msgstr ""
 
-#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:501
+#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:501
 msgid "Stat&usbar"
 msgstr ""
 
-#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:502
+#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:502
 msgid "Show &statusbar"
 msgstr ""
 
-#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:503
+#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:503
 msgid "Show &number of cards"
 msgstr ""
 
-#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:504
+#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:504
 msgid "Show &help bar"
 msgstr ""
 
-#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:505
+#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:505
 msgid "Save games &geometry"
 msgstr ""
 
-#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:506
+#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:506
 msgid "&Demo logo"
 msgstr ""
 
-#: pysollib/tile/menubar.py:513 pysollib/tk/menubar.py:507
+#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:507
 msgid "Startup splash sc&reen"
 msgstr ""
 
-#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:513
+#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:513
 msgid "&Help"
 msgstr ""
 
-#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:514
+#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:514
 msgid "&Contents"
 msgstr ""
 
-#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:515
+#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:515
 msgid "&How to play"
 msgstr ""
 
-#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:516
+#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:516
 msgid "&Rules for this game"
 msgstr ""
 
-#: pysollib/tile/menubar.py:523 pysollib/tk/menubar.py:517
+#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:517
 msgid "&License terms"
 msgstr ""
 
-#: pysollib/tile/menubar.py:526 pysollib/tk/menubar.py:520
+#: pysollib/tile/menubar.py:525 pysollib/tk/menubar.py:520
 msgid "&About "
 msgstr ""
 
-#: pysollib/tile/menubar.py:638 pysollib/tk/menubar.py:632
+#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:632
 msgid "All &games..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:640 pysollib/tk/menubar.py:634
+#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:634
 msgid "Playable pre&view..."
 msgstr ""
 
-#: pysollib/tile/menubar.py:689 pysollib/tk/menubar.py:683
+#: pysollib/tile/menubar.py:688 pysollib/tk/menubar.py:683
 msgid "&Mahjongg games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:727 pysollib/tk/menubar.py:721
+#: pysollib/tile/menubar.py:726 pysollib/tk/menubar.py:721
 msgid "&Popular games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:735 pysollib/tk/menubar.py:729
+#: pysollib/tile/menubar.py:734 pysollib/tk/menubar.py:729
 msgid "&French games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:742 pysollib/tk/menubar.py:736
+#: pysollib/tile/menubar.py:741 pysollib/tk/menubar.py:736
 msgid "&Oriental games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:750 pysollib/tk/menubar.py:744
+#: pysollib/tile/menubar.py:749 pysollib/tk/menubar.py:744
 msgid "&Special games"
 msgstr ""
 
-#: pysollib/tile/menubar.py:756 pysollib/tk/menubar.py:750
+#: pysollib/tile/menubar.py:755 pysollib/tk/menubar.py:750
 msgid "&All games by name"
 msgstr ""
 
-#: pysollib/tile/menubar.py:1029 pysollib/tk/menubar.py:1023
+#: pysollib/tile/menubar.py:1028 pysollib/tk/menubar.py:1023
 #: data/glade-translations:72
 msgid "Sound settings"
 msgstr ""
 
-#: pysollib/tile/menubar.py:1129 pysollib/tk/menubar.py:1127
+#: pysollib/tile/menubar.py:1128 pysollib/tk/menubar.py:1127
 msgid "Select "
 msgstr ""
 
-#: pysollib/tile/menubar.py:1176 pysollib/tk/menubar.py:1179
+#: pysollib/tile/menubar.py:1175 pysollib/tk/menubar.py:1179
 msgid "Select table background"
 msgstr ""
 
-#: pysollib/tile/menubar.py:1331
+#: pysollib/tile/menubar.py:1330
 msgid "Change theme"
 msgstr ""
 
-#: pysollib/tile/menubar.py:1332
+#: pysollib/tile/menubar.py:1331
 msgid ""
 "This settings will take effect\n"
 "the next time you restart "
@@ -2559,37 +2563,37 @@ msgstr ""
 msgid "XLarge cardsets"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:242 pysollib/tk/menubar.py:1124
+#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1124
 msgid "&Info..."
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:243 pysollib/tk/menubar.py:1122
+#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1122
 #: pysollib/tk/menubar.py:1124 pysollib/tk/selectcardset.py:241
 msgid "&Load"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:320 pysollib/tk/selectcardset.py:320
+#: pysollib/tile/selectcardset.py:313 pysollib/tk/selectcardset.py:320
 msgid "About cardset"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:336 pysollib/tile/selectgame.py:364
+#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:354
 #: pysollib/tk/selectcardset.py:336 pysollib/tk/selectgame.py:365
 msgid "Type:"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:337 pysollib/tk/selectcardset.py:337
+#: pysollib/tile/selectcardset.py:328 pysollib/tk/selectcardset.py:337
 msgid "Styles:"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:338 pysollib/tk/selectcardset.py:338
+#: pysollib/tile/selectcardset.py:329 pysollib/tk/selectcardset.py:338
 msgid "Nationality:"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:339 pysollib/tk/selectcardset.py:339
+#: pysollib/tile/selectcardset.py:330 pysollib/tk/selectcardset.py:339
 msgid "Year:"
 msgstr ""
 
-#: pysollib/tile/selectcardset.py:341 pysollib/tk/selectcardset.py:341
+#: pysollib/tile/selectcardset.py:332 pysollib/tk/selectcardset.py:341
 msgid "Size:"
 msgstr ""
 
@@ -2645,27 +2649,27 @@ msgstr ""
 msgid "by Skill Level"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:533
+#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:523
 #: pysollib/tk/selectgame.py:170 pysollib/tk/selectgame.py:533
 msgid "Luck only"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:534
+#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:524
 #: pysollib/tk/selectgame.py:171 pysollib/tk/selectgame.py:534
 msgid "Mostly luck"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:535
+#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:525
 #: pysollib/tk/selectgame.py:172 pysollib/tk/selectgame.py:535
 msgid "Balanced"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:536
+#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:526
 #: pysollib/tk/selectgame.py:173 pysollib/tk/selectgame.py:536
 msgid "Mostly skill"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:537
+#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:527
 #: pysollib/tk/selectgame.py:174 pysollib/tk/selectgame.py:537
 msgid "Skill only"
 msgstr ""
@@ -2782,81 +2786,81 @@ msgstr ""
 msgid "Relaxed Variants"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:348 pysollib/tk/selectgame.py:349
+#: pysollib/tile/selectgame.py:341 pysollib/tk/selectgame.py:349
 msgid "About game"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:361 pysollib/tk/selectgame.py:362
+#: pysollib/tile/selectgame.py:351 pysollib/tk/selectgame.py:362
 msgid "Name:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:362 pysollib/tk/selectgame.py:363
+#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:363
 msgid "Alternate names:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:363 pysollib/tk/selectgame.py:364
+#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:364
 msgid "Category:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:365 pysollib/tk/selectgame.py:366
+#: pysollib/tile/selectgame.py:355 pysollib/tk/selectgame.py:366
 msgid "Skill level:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:366 pysollib/tk/selectgame.py:367
+#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:367
 msgid "Decks:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:367 pysollib/tk/selectgame.py:368
+#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:368
 msgid "Redeals:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:369 pysollib/tk/selectgame.py:370
+#: pysollib/tile/selectgame.py:359 pysollib/tk/selectgame.py:370
 msgid "Played:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:370 pysollib/tile/tkstats.py:107
+#: pysollib/tile/selectgame.py:360 pysollib/tile/tkstats.py:107
 #: pysollib/tile/tkstats.py:159 pysollib/tk/selectgame.py:371
 #: pysollib/tk/tkstats.py:111 pysollib/tk/tkstats.py:163
 #: data/glade-translations:9 data/glade-translations:13
 msgid "Won:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:371 pysollib/tile/tkstats.py:108
+#: pysollib/tile/selectgame.py:361 pysollib/tile/tkstats.py:108
 #: pysollib/tile/tkstats.py:160 pysollib/tk/selectgame.py:372
 #: pysollib/tk/tkstats.py:112 pysollib/tk/tkstats.py:164
 #: data/glade-translations:11 data/glade-translations:14
 msgid "Lost:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:372 pysollib/tile/tkstats.py:615
+#: pysollib/tile/selectgame.py:362 pysollib/tile/tkstats.py:615
 #: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:736
 #: data/glade-translations:18
 msgid "Playing time:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:373 pysollib/tile/tkstats.py:622
+#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622
 #: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:743
 #: data/glade-translations:19
 msgid "Moves:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:374 pysollib/tk/selectgame.py:375
+#: pysollib/tile/selectgame.py:364 pysollib/tk/selectgame.py:375
 msgid "% won:"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:406 pysollib/tk/selectgame.py:407
+#: pysollib/tile/selectgame.py:396 pysollib/tk/selectgame.py:407
 msgid "&Rules"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:486 pysollib/tk/selectgame.py:486
+#: pysollib/tile/selectgame.py:476 pysollib/tk/selectgame.py:486
 msgid "Playable Preview - "
 msgstr ""
 
-#: pysollib/tile/selectgame.py:540 pysollib/tk/selectgame.py:540
+#: pysollib/tile/selectgame.py:530 pysollib/tk/selectgame.py:540
 msgid "variable"
 msgstr ""
 
-#: pysollib/tile/selectgame.py:541 pysollib/tk/selectgame.py:541
+#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:541
 msgid "unlimited"
 msgstr ""
 
@@ -2988,22 +2992,22 @@ msgstr ""
 msgid "Music volume:"
 msgstr ""
 
-#: pysollib/tile/soundoptionsdialog.py:146
+#: pysollib/tile/soundoptionsdialog.py:145
 #: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76
 msgid "Enable samles"
 msgstr ""
 
-#: pysollib/tile/soundoptionsdialog.py:171
+#: pysollib/tile/soundoptionsdialog.py:168
 #: pysollib/tk/soundoptionsdialog.py:170
 msgid "&Apply"
 msgstr ""
 
-#: pysollib/tile/soundoptionsdialog.py:204
+#: pysollib/tile/soundoptionsdialog.py:201
 #: pysollib/tk/soundoptionsdialog.py:206
 msgid "Sound preferences info"
 msgstr ""
 
-#: pysollib/tile/soundoptionsdialog.py:205
+#: pysollib/tile/soundoptionsdialog.py:202
 #: pysollib/tk/soundoptionsdialog.py:207
 msgid ""
 "Changing DirectX settings will take effect\n"
@@ -3324,15 +3328,15 @@ msgstr ""
 msgid "Quit"
 msgstr ""
 
-#: pysollib/tile/toolbar.py:268 pysollib/tk/toolbar.py:225
+#: pysollib/tile/toolbar.py:265 pysollib/tk/toolbar.py:225
 msgid "Player"
 msgstr ""
 
-#: pysollib/tile/toolbar.py:269 pysollib/tk/toolbar.py:226
+#: pysollib/tile/toolbar.py:266 pysollib/tk/toolbar.py:226
 msgid "Player options"
 msgstr ""
 
-#: pysollib/tile/toolbar.py:490 pysollib/tk/toolbar.py:466
+#: pysollib/tile/toolbar.py:485 pysollib/tk/toolbar.py:466
 msgid "Toolbar"
 msgstr ""
 
diff --git a/po/ru_games.po b/po/ru_games.po
index 466d6684..e2ef3e0c 100644
--- a/po/ru_games.po
+++ b/po/ru_games.po
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PySol 0.0.1\n"
-"POT-Creation-Date: Thu Nov 30 16:31:56 2006\n"
-"PO-Revision-Date: 2006-12-04 16:26+0300\n"
+"POT-Creation-Date: Thu Dec  7 15:25:59 2006\n"
+"PO-Revision-Date: 2006-12-07 15:51+0300\n"
 "Last-Translator: Скоморох <skomoroh@gmail.com>\n"
 "Language-Team: Russian <ru@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -35,6 +35,9 @@ msgstr "Матрица 8x8"
 msgid " 9x9 Matrix"
 msgstr "Матрица 9x9"
 
+msgid " Pyramid's Stones"
+msgstr "Камни пирамид"
+
 msgid "10 x 8"
 msgstr "10 x 8"
 
@@ -341,6 +344,9 @@ msgstr "Голубая луна"
 msgid "Boar"
 msgstr "Боров"
 
+msgid "Board Patience"
+msgstr "Полочный пасьянс"
+
 msgid "Boat"
 msgstr "Лодка"
 
@@ -410,6 +416,9 @@ msgstr "Британский квадрат"
 msgid "Brunswick"
 msgstr "Брюнсвик"
 
+msgid "Brush"
+msgstr "Щётка"
+
 msgid "Buffalo Bill"
 msgstr "Буффало Билл"
 
@@ -464,6 +473,9 @@ msgstr "Карфаген"
 msgid "Casino Klondike"
 msgstr "Казино Клондайк"
 
+msgid "Casket"
+msgstr "Шкатулка"
+
 msgid "Cassim"
 msgstr ""
 
@@ -570,6 +582,9 @@ msgstr ""
 msgid "Cockroach"
 msgstr "Таракан"
 
+msgid "Colonel"
+msgstr "Полковник"
+
 msgid "Colorado"
 msgstr "Колорадо"
 
@@ -658,6 +673,9 @@ msgstr "Дашаватара Круги"
 msgid "Dead King Golf"
 msgstr "Гольф Смертельный Король"
 
+msgid "Deck"
+msgstr "Колода"
+
 msgid "Deep"
 msgstr "Глубокий"
 
@@ -694,6 +712,9 @@ msgstr "Двойки"
 msgid "Dhanpati"
 msgstr "Dhanpati"
 
+msgid "Dial"
+msgstr "Циферблат"
+
 msgid "Diamond"
 msgstr "Буби"
 
@@ -981,6 +1002,9 @@ msgstr "Ковёр"
 msgid "Falling Star"
 msgstr "Падающая звезда"
 
+msgid "Famous Fifty"
+msgstr ""
+
 msgid "Fan"
 msgstr "Веер"
 
@@ -1008,6 +1032,9 @@ msgstr "Пасьянс Фатимы"
 msgid "Fatimeh's Game Relaxed"
 msgstr "Облегчённый Пасьянс Фатимы"
 
+msgid "Fechter's Game"
+msgstr "Пасьянс Фехтера"
+
 msgid "Fifteen"
 msgstr "Пятнадцать"
 
@@ -1058,6 +1085,9 @@ msgstr "Плавающий город"
 msgid "Floradora"
 msgstr "Флорадора"
 
+msgid "Florentine Patience"
+msgstr "Флорентийский пасьянс"
+
 msgid "Flower Arrangement"
 msgstr "Аранжировка цветов"
 
@@ -1080,6 +1110,9 @@ msgstr "Летящий дракон"
 msgid "ForeCell"
 msgstr "Свободная ячейка"
 
+msgid "Formic"
+msgstr "Муравьиный"
+
 msgid "Fort"
 msgstr "Форт"
 
@@ -1218,6 +1251,9 @@ msgstr "Великан"
 msgid "Giza"
 msgstr "Гиза"
 
+msgid "Glacier"
+msgstr "Ледник"
+
 msgid "Glade"
 msgstr "Поляна"
 
@@ -1352,6 +1388,9 @@ msgstr "Головы и хвосты"
 msgid "Helios"
 msgstr "Гелиос"
 
+msgid "Hemispheres"
+msgstr ""
+
 msgid "Hex A Klon"
 msgstr "Шестнадцатиричный Клондайк"
 
@@ -1379,6 +1418,9 @@ msgstr "Классы"
 msgid "Horse"
 msgstr "Конь"
 
+msgid "Hospital Patience"
+msgstr "Больничный пасьянс"
+
 msgid "House in the Wood"
 msgstr "Дом в лесу"
 
@@ -1537,6 +1579,9 @@ msgstr "Облегчённый Пасьянс Катрины"
 msgid "Khadga"
 msgstr "Khadga"
 
+msgid "Khedive"
+msgstr "Хедив"
+
 msgid "King Albert"
 msgstr "Король Альберт"
 
@@ -1546,6 +1591,10 @@ msgstr ""
 msgid "King Only Hex A Klon"
 msgstr "Королевский Шестнадцатиричный Клондайк"
 
+#, fuzzy
+msgid "King Tut"
+msgstr "Король Альберт"
+
 msgid "KingCell"
 msgstr "Королевская Ячейка"
 
@@ -3426,6 +3475,9 @@ msgstr "Дверь"
 msgid "The Familiar"
 msgstr "Близкий"
 
+msgid "The Four Continents"
+msgstr "Четыре континента"
+
 msgid "The Garden"
 msgstr "Сад"
 
@@ -3441,6 +3493,9 @@ msgstr "Последний Монарх II"
 msgid "The Little Corporal"
 msgstr "Маленький Капрал"
 
+msgid "The Red and the Black"
+msgstr "Красное и Чёрное II"
+
 msgid "The Spark"
 msgstr "Вспышка"
 
diff --git a/po/ru_pysol.po b/po/ru_pysol.po
index 1d04ff1c..aa807baf 100644
--- a/po/ru_pysol.po
+++ b/po/ru_pysol.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PySol 0.0.1\n"
-"POT-Creation-Date: Thu Nov 30 16:32:59 2006\n"
+"POT-Creation-Date: Thu Dec  7 15:27:04 2006\n"
 "PO-Revision-Date: 2006-11-30 16:36+0300\n"
 "Last-Translator: Скоморох <skomoroh@gmail.com>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -19,8 +19,8 @@ msgstr ""
 msgid "New game"
 msgstr "Новая игра"
 
-#: pysollib/actions.py:272 pysollib/tile/menubar.py:821
-#: pysollib/tile/menubar.py:835 pysollib/tk/menubar.py:815
+#: pysollib/actions.py:272 pysollib/tile/menubar.py:820
+#: pysollib/tile/menubar.py:834 pysollib/tk/menubar.py:815
 #: pysollib/tk/menubar.py:829
 msgid "Select game"
 msgstr "Выбрать игру"
@@ -59,10 +59,10 @@ msgstr "&Следующий номер"
 #: pysollib/app.py:1176 pysollib/game.py:933 pysollib/game.py:1865
 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83
 #: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205
-#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1336
-#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:397
-#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:171
-#: pysollib/tile/soundoptionsdialog.py:209 pysollib/tile/timeoutsdialog.py:94
+#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1335
+#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:388
+#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168
+#: pysollib/tile/soundoptionsdialog.py:206 pysollib/tile/timeoutsdialog.py:94
 #: pysollib/tile/tkhtml.py:501 pysollib/tile/tkstats.py:211
 #: pysollib/tile/tkstats.py:381 pysollib/tile/tkstats.py:450
 #: pysollib/tile/tkstats.py:473 pysollib/tile/tkstats.py:516
@@ -88,9 +88,9 @@ msgstr "&ОК"
 #: pysollib/game.py:1338 pysollib/game.py:1344
 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83
 #: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205
-#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:243
-#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:407
-#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:171
+#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:237
+#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:397
+#: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168
 #: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:319
 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82
 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205
@@ -192,7 +192,7 @@ msgstr " для "
 msgid "Statistics for "
 msgstr "Статистика игры "
 
-#: pysollib/actions.py:583 pysollib/tile/selectgame.py:349
+#: pysollib/actions.py:583 pysollib/tile/selectgame.py:344
 #: pysollib/tile/toolbar.py:247 pysollib/tk/selectgame.py:350
 #: pysollib/tk/toolbar.py:208
 msgid "Statistics"
@@ -263,7 +263,7 @@ msgid "Unknown"
 msgstr "Неизвестный"
 
 #: pysollib/app.py:883 pysollib/game.py:1316 pysollib/game.py:1331
-#: pysollib/game.py:1338 pysollib/game.py:1344 pysollib/tile/menubar.py:367
+#: pysollib/game.py:1338 pysollib/game.py:1344 pysollib/tile/menubar.py:366
 #: pysollib/tk/menubar.py:363
 msgid "&New game"
 msgstr "&Новая игра"
@@ -725,11 +725,16 @@ msgid "Puzzle type"
 msgstr "Пазлы"
 
 #: pysollib/games/auldlangsyne.py:158 pysollib/games/calculation.py:104
-#: pysollib/games/numerica.py:90 pysollib/games/numerica.py:272
-#: pysollib/games/numerica.py:644 pysollib/games/numerica.py:757
+#: pysollib/games/numerica.py:94 pysollib/games/numerica.py:276
+#: pysollib/games/numerica.py:666 pysollib/games/numerica.py:779
 msgid "Tableau. Build regardless of rank and suit."
 msgstr "Игровой стол. Складывать не считаясь с мастью и достоинством."
 
+#: pysollib/games/auldlangsyne.py:555
+#, fuzzy
+msgid "Foundation. Build up or down regardless of suit."
+msgstr "Базовая ячейка. Складывать не считаясь с мастью."
+
 #: pysollib/games/braid.py:248 pysollib/games/camelot.py:555
 #: pysollib/games/napoleon.py:182 pysollib/games/ultra/dashavatara.py:959
 #: pysollib/games/ultra/hanafuda1.py:257 pysollib/games/ultra/hexadeck.py:1190
@@ -864,7 +869,7 @@ msgstr "Раунд %d/%d"
 msgid "Deal %d"
 msgstr "Сдача %d"
 
-#: pysollib/games/numerica.py:259 pysollib/games/royalcotillion.py:849
+#: pysollib/games/numerica.py:263 pysollib/games/royalcotillion.py:850
 msgid "Foundation. Build up by color."
 msgstr "Базовая ячейка. Складывать по возрастанию в соответствии с цветом."
 
@@ -1366,7 +1371,7 @@ msgstr ""
 "\n"
 "Пожалуйста проверьте установку %s.\n"
 
-#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:386
+#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:385
 #: pysollib/tk/menubar.py:382
 msgid "&Quit"
 msgstr "В&ыход"
@@ -2089,7 +2094,7 @@ msgstr "Подсветка отсутствия совпадения:"
 msgid "Select color"
 msgstr "Выбрать цвет"
 
-#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:439
+#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:438
 #: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:435
 msgid "Find card"
 msgstr "Найти карту"
@@ -2149,493 +2154,493 @@ msgstr "Выбрать шрифт"
 msgid "Style"
 msgstr "Стиль"
 
-#: pysollib/tile/menubar.py:96 pysollib/tk/menubar.py:94
+#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94
 msgid "Compound"
 msgstr "Компоновка"
 
-#: pysollib/tile/menubar.py:102 pysollib/tk/menubar.py:100
+#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100
 msgid "Hide"
 msgstr "Спрятать"
 
-#: pysollib/tile/menubar.py:105 pysollib/tk/menubar.py:103
+#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103
 msgid "Top"
 msgstr "Сверху"
 
-#: pysollib/tile/menubar.py:108 pysollib/tk/menubar.py:106
+#: pysollib/tile/menubar.py:107 pysollib/tk/menubar.py:106
 msgid "Bottom"
 msgstr "Внизу"
 
-#: pysollib/tile/menubar.py:111 pysollib/tk/menubar.py:109
+#: pysollib/tile/menubar.py:110 pysollib/tk/menubar.py:109
 msgid "Left"
 msgstr "Слева"
 
-#: pysollib/tile/menubar.py:114 pysollib/tk/menubar.py:112
+#: pysollib/tile/menubar.py:113 pysollib/tk/menubar.py:112
 msgid "Right"
 msgstr "Справа"
 
-#: pysollib/tile/menubar.py:118 pysollib/tk/menubar.py:116
+#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116
 msgid "Small icons"
 msgstr "Маленькие пиктограммы"
 
-#: pysollib/tile/menubar.py:121 pysollib/tk/menubar.py:119
+#: pysollib/tile/menubar.py:120 pysollib/tk/menubar.py:119
 msgid "Large icons"
 msgstr "Большие пиктограммы"
 
-#: pysollib/tile/menubar.py:127 pysollib/tk/menubar.py:125
+#: pysollib/tile/menubar.py:126 pysollib/tk/menubar.py:125
 msgid "Customize toolbar"
 msgstr "Настроить панель инструментов"
 
-#: pysollib/tile/menubar.py:366 pysollib/tk/menubar.py:362
+#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362
 msgid "&File"
 msgstr "&Файл"
 
-#: pysollib/tile/menubar.py:368 pysollib/tk/menubar.py:364
+#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364
 msgid "R&ecent games"
 msgstr "Выбрать н&едавнюю игру"
 
-#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:366
+#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366
 msgid "Select &random game"
 msgstr "С&лучайная игра"
 
-#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:367
+#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:367
 msgid "&All games"
 msgstr "&Все игры"
 
-#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:368
+#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368
 msgid "Games played and &won"
 msgstr "&Выигранные игры"
 
-#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:369
+#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369
 msgid "Games played and &not won"
 msgstr "&Невыигранные игры"
 
-#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:370
+#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370
 msgid "Games not &played"
 msgstr "Не&сыгранные игры"
 
-#: pysollib/tile/menubar.py:375 pysollib/tk/menubar.py:371
+#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:371
 msgid "Select game by nu&mber..."
 msgstr "Выбрать игру по &номеру..."
 
-#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:373
+#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373
 msgid "Fa&vorite games"
 msgstr "&Избранные игры"
 
-#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:374
+#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374
 msgid "A&dd to favorites"
 msgstr "&Добавить в избранное"
 
-#: pysollib/tile/menubar.py:379 pysollib/tk/menubar.py:375
+#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:375
 msgid "R&emove from favorites"
 msgstr "&Удалить из избранных"
 
-#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:377
+#: pysollib/tile/menubar.py:380 pysollib/tk/menubar.py:377
 msgid "&Open..."
 msgstr "&Открыть..."
 
-#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:378
+#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:378
 msgid "&Save"
 msgstr "&Сохранить"
 
-#: pysollib/tile/menubar.py:383 pysollib/tk/menubar.py:379
+#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:379
 msgid "Save &as..."
 msgstr "Сохранить &как..."
 
-#: pysollib/tile/menubar.py:385 pysollib/tk/menubar.py:381
+#: pysollib/tile/menubar.py:384 pysollib/tk/menubar.py:381
 msgid "&Hold and quit"
 msgstr "Со&храниться и выйти"
 
-#: pysollib/tile/menubar.py:390 pysollib/tile/selectgame.py:407
+#: pysollib/tile/menubar.py:389 pysollib/tile/selectgame.py:397
 #: pysollib/tk/menubar.py:386 pysollib/tk/selectgame.py:407
 msgid "&Select"
 msgstr "&Выбрать"
 
-#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:391
+#: pysollib/tile/menubar.py:394 pysollib/tk/menubar.py:391
 msgid "&Edit"
 msgstr "Р&едактировать"
 
-#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:392
+#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:392
 msgid "&Undo"
 msgstr "&Отмена"
 
-#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:393
+#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393
 msgid "&Redo"
 msgstr "&Повтор"
 
-#: pysollib/tile/menubar.py:398 pysollib/tk/menubar.py:394
+#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:394
 msgid "Redo &all"
 msgstr "Вернуть все"
 
-#: pysollib/tile/menubar.py:401 pysollib/tk/menubar.py:397
+#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397
 msgid "&Set bookmark"
 msgstr "Установить &закладку"
 
-#: pysollib/tile/menubar.py:403 pysollib/tile/menubar.py:407
+#: pysollib/tile/menubar.py:402 pysollib/tile/menubar.py:406
 #: pysollib/tk/menubar.py:399 pysollib/tk/menubar.py:403
 msgid "Bookmark %d"
 msgstr "Закладка %d"
 
-#: pysollib/tile/menubar.py:405 pysollib/tk/menubar.py:401
+#: pysollib/tile/menubar.py:404 pysollib/tk/menubar.py:401
 msgid "Go&to bookmark"
 msgstr "&Перейти к закладке"
 
-#: pysollib/tile/menubar.py:410 pysollib/tk/menubar.py:406
+#: pysollib/tile/menubar.py:409 pysollib/tk/menubar.py:406
 msgid "&Clear bookmarks"
 msgstr "О&чистить закладки"
 
-#: pysollib/tile/menubar.py:413 pysollib/tile/toolbar.py:237
+#: pysollib/tile/menubar.py:412 pysollib/tile/toolbar.py:237
 #: pysollib/tk/menubar.py:409 pysollib/tk/toolbar.py:198
 msgid "Restart"
 msgstr "Начало"
 
-#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:411
+#: pysollib/tile/menubar.py:414 pysollib/tk/menubar.py:411
 msgid "&Game"
 msgstr "&Игра"
 
-#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:412
+#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:412
 msgid "&Deal cards"
 msgstr "&Сдать карты"
 
-#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:413
+#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413
 msgid "&Auto drop"
 msgstr "С&бросить карты"
 
-#: pysollib/tile/menubar.py:418 pysollib/tk/menubar.py:414
+#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414
 msgid "&Pause"
 msgstr "&Пауза"
 
-#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:417
+#: pysollib/tile/menubar.py:420 pysollib/tk/menubar.py:417
 msgid "S&tatus..."
 msgstr "С&татус"
 
-#: pysollib/tile/menubar.py:422 pysollib/tk/menubar.py:418
+#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:418
 msgid "&Comments..."
 msgstr "&Комментарии..."
 
-#: pysollib/tile/menubar.py:424 pysollib/tk/menubar.py:420
+#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420
 msgid "&Statistics"
 msgstr "Ст&атистика"
 
-#: pysollib/tile/menubar.py:425 pysollib/tile/menubar.py:433
+#: pysollib/tile/menubar.py:424 pysollib/tile/menubar.py:432
 #: pysollib/tk/menubar.py:421 pysollib/tk/menubar.py:429
 msgid "Current game..."
 msgstr "Текущая игра..."
 
-#: pysollib/tile/menubar.py:426 pysollib/tile/menubar.py:434
+#: pysollib/tile/menubar.py:425 pysollib/tile/menubar.py:433
 #: pysollib/tk/menubar.py:422 pysollib/tk/menubar.py:430
 msgid "All games..."
 msgstr "Все игры..."
 
-#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:424
+#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424
 msgid "Session log..."
 msgstr "Лог сессии..."
 
-#: pysollib/tile/menubar.py:429 pysollib/tk/menubar.py:425
+#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:425
 msgid "Full log..."
 msgstr "Полный лог..."
 
-#: pysollib/tile/menubar.py:432 pysollib/tk/menubar.py:428
+#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428
 msgid "D&emo statistics"
 msgstr "Статистика демо"
 
-#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:432
+#: pysollib/tile/menubar.py:435 pysollib/tk/menubar.py:432
 msgid "&Assist"
 msgstr "&Подсказка"
 
-#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:433
+#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433
 msgid "&Hint"
 msgstr "Подсказать &ход"
 
-#: pysollib/tile/menubar.py:438 pysollib/tk/menubar.py:434
+#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434
 msgid "Highlight p&iles"
 msgstr "П&оказать группы"
 
-#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:437
+#: pysollib/tile/menubar.py:440 pysollib/tk/menubar.py:437
 msgid "&Demo"
 msgstr "&Демо"
 
-#: pysollib/tile/menubar.py:442 pysollib/tk/menubar.py:438
+#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:438
 msgid "Demo (&all games)"
 msgstr "Демо (&все игры)"
 
-#: pysollib/tile/menubar.py:444 pysollib/tk/menubar.py:440
+#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440
 msgid "Piles description"
 msgstr "Описания ячеек"
 
-#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:444
+#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444
 msgid "&Options"
 msgstr "&Настройка"
 
-#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:445
+#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445
 msgid "&Player options..."
 msgstr "Настройки &игрока..."
 
-#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:446
+#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:446
 msgid "&Automatic play"
 msgstr "Настройки &автоматической игры"
 
-#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:447
+#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447
 msgid "Auto &face up"
 msgstr "Автоматически &переворачивать"
 
-#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:448
+#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448
 msgid "A&uto drop"
 msgstr "А&втоматически сбрасывать карты"
 
-#: pysollib/tile/menubar.py:453 pysollib/tk/menubar.py:449
+#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449
 msgid "Auto &deal"
 msgstr "Автоматически &сдавать карты"
 
-#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:451
+#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451
 msgid "&Quick play"
 msgstr "&Быстрая игра"
 
-#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:452
+#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452
 msgid "Assist &level"
 msgstr "&Уровень подсказки"
 
-#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:453
+#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453
 msgid "Enable &undo"
 msgstr "Разрешить &возврат хода"
 
-#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:454
+#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454
 msgid "Enable &bookmarks"
 msgstr "Разрешить &закладки"
 
-#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:455
+#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455
 msgid "Enable &hint"
 msgstr "Разрешить &подсказки"
 
-#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:456
+#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:456
 msgid "Enable highlight p&iles"
 msgstr "Разрешить показывать к&учи"
 
-#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:457
+#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457
 msgid "Enable highlight &cards"
 msgstr "Разрешить показывать &карты"
 
-#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:458
+#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458
 msgid "Enable highlight same &rank"
 msgstr "Разрешить показывать карты &одного достоинства"
 
-#: pysollib/tile/menubar.py:463 pysollib/tk/menubar.py:459
+#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:459
 msgid "Highlight &no matching"
 msgstr "Подсветка отсутствия &совпадения"
 
-#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:461
+#: pysollib/tile/menubar.py:464 pysollib/tk/menubar.py:461
 msgid "&Show removed tiles (in Mahjongg games)"
 msgstr "Показывать удалённые (в Маджонг)"
 
-#: pysollib/tile/menubar.py:466 pysollib/tk/menubar.py:462
+#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:462
 msgid "Show hint &arrow (in Shisen-Sho games)"
 msgstr "Показывать стрелку (в Шисен-Сё)"
 
-#: pysollib/tile/menubar.py:468 pysollib/tk/menubar.py:464
+#: pysollib/tile/menubar.py:467 pysollib/tk/menubar.py:464
 msgid "&Sound..."
 msgstr "&Звук..."
 
-#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:472
+#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472
 msgid "Cards&et..."
 msgstr "Коло&да..."
 
-#: pysollib/tile/menubar.py:477 pysollib/tk/menubar.py:473
+#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473
 msgid "Table t&ile..."
 msgstr "Игровой &стол..."
 
-#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:475
+#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475
 msgid "Card &background"
 msgstr "&Рубашка карты"
 
-#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:476
+#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476
 msgid "Card &view"
 msgstr "&Вид карты"
 
-#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:477
+#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477
 msgid "Card shado&w"
 msgstr "Тень карты"
 
-#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:478
+#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478
 msgid "Shade &legal moves"
 msgstr "Подсвечивать &разрешённые ходы"
 
-#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:479
+#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479
 msgid "&Negative cards bottom"
 msgstr "&Негативные контуры карты"
 
-#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:480
+#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480
 msgid "Shrink face-down cards"
 msgstr "Сжимать закрытые карты"
 
-#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:481
+#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481
 msgid "Shade &filled stacks"
 msgstr "Затемнять заполненные ячейки"
 
-#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:482
+#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482
 msgid "A&nimations"
 msgstr "Анимаци&я"
 
-#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:483
+#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483
 msgid "&None"
 msgstr "&Нет"
 
-#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:484
+#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:484
 msgid "&Timer based"
 msgstr "Базирующаяся на &таймере"
 
-#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:485
+#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485
 msgid "&Fast"
 msgstr "&Быстрая"
 
-#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:486
+#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486
 msgid "&Slow"
 msgstr "&Медленная"
 
-#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:487
+#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487
 msgid "&Very slow"
 msgstr "&Очень медленная"
 
-#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:488
+#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488
 msgid "&Mouse"
 msgstr "&Мышь"
 
-#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:489
+#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489
 msgid "&Drag-and-Drop"
 msgstr ""
 
-#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:490
+#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490
 msgid "&Point-and-Click"
 msgstr ""
 
-#: pysollib/tile/menubar.py:495 pysollib/tk/menubar.py:491
+#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:491
 msgid "&Sticky mouse"
 msgstr "&Липкая мышь"
 
-#: pysollib/tile/menubar.py:497 pysollib/tk/menubar.py:493
+#: pysollib/tile/menubar.py:496 pysollib/tk/menubar.py:493
 msgid "Use mouse for undo/redo"
 msgstr "Использовать мышь для вперёд/назад"
 
-#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:495
+#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495
 msgid "&Fonts..."
 msgstr "&Шрифты..."
 
-#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:496
+#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496
 msgid "&Colors..."
 msgstr "&Цвета..."
 
-#: pysollib/tile/menubar.py:501 pysollib/tk/menubar.py:497
+#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:497
 msgid "Time&outs..."
 msgstr "Тайма&уты..."
 
-#: pysollib/tile/menubar.py:503
+#: pysollib/tile/menubar.py:502
 msgid "Set t&heme"
 msgstr "Установить &тему"
 
-#: pysollib/tile/menubar.py:505 pysollib/tk/menubar.py:499
+#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:499
 msgid "&Toolbar"
 msgstr "Панель и&нструментов"
 
-#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:501
+#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:501
 msgid "Stat&usbar"
 msgstr "Панель с&остояния"
 
-#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:502
+#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:502
 msgid "Show &statusbar"
 msgstr "Показывать панель состояния"
 
-#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:503
+#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:503
 msgid "Show &number of cards"
 msgstr "Показывать количество карт"
 
-#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:504
+#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:504
 msgid "Show &help bar"
 msgstr "Показывать панель помощи"
 
-#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:505
+#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:505
 msgid "Save games &geometry"
 msgstr "Сохранение &геометрии игры"
 
-#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:506
+#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:506
 msgid "&Demo logo"
 msgstr "Д&емо лого"
 
-#: pysollib/tile/menubar.py:513 pysollib/tk/menubar.py:507
+#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:507
 msgid "Startup splash sc&reen"
 msgstr "О&кно запуска"
 
-#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:513
+#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:513
 msgid "&Help"
 msgstr "&Помощь"
 
-#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:514
+#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:514
 msgid "&Contents"
 msgstr "&Содержание"
 
-#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:515
+#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:515
 msgid "&How to play"
 msgstr "Как &играть"
 
-#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:516
+#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:516
 msgid "&Rules for this game"
 msgstr "&Правила текущей игры"
 
-#: pysollib/tile/menubar.py:523 pysollib/tk/menubar.py:517
+#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:517
 msgid "&License terms"
 msgstr "&Лицензия"
 
-#: pysollib/tile/menubar.py:526 pysollib/tk/menubar.py:520
+#: pysollib/tile/menubar.py:525 pysollib/tk/menubar.py:520
 msgid "&About "
 msgstr "&О программе "
 
-#: pysollib/tile/menubar.py:638 pysollib/tk/menubar.py:632
+#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:632
 msgid "All &games..."
 msgstr "&Все игры..."
 
-#: pysollib/tile/menubar.py:640 pysollib/tk/menubar.py:634
+#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:634
 msgid "Playable pre&view..."
 msgstr "Играемый &предпросмотр..."
 
-#: pysollib/tile/menubar.py:689 pysollib/tk/menubar.py:683
+#: pysollib/tile/menubar.py:688 pysollib/tk/menubar.py:683
 msgid "&Mahjongg games"
 msgstr "Игры маджонг"
 
-#: pysollib/tile/menubar.py:727 pysollib/tk/menubar.py:721
+#: pysollib/tile/menubar.py:726 pysollib/tk/menubar.py:721
 msgid "&Popular games"
 msgstr "&Популярные игры"
 
-#: pysollib/tile/menubar.py:735 pysollib/tk/menubar.py:729
+#: pysollib/tile/menubar.py:734 pysollib/tk/menubar.py:729
 msgid "&French games"
 msgstr "&Классические игры"
 
-#: pysollib/tile/menubar.py:742 pysollib/tk/menubar.py:736
+#: pysollib/tile/menubar.py:741 pysollib/tk/menubar.py:736
 msgid "&Oriental games"
 msgstr "&Восточные игры"
 
-#: pysollib/tile/menubar.py:750 pysollib/tk/menubar.py:744
+#: pysollib/tile/menubar.py:749 pysollib/tk/menubar.py:744
 msgid "&Special games"
 msgstr "&Особые игры"
 
-#: pysollib/tile/menubar.py:756 pysollib/tk/menubar.py:750
+#: pysollib/tile/menubar.py:755 pysollib/tk/menubar.py:750
 msgid "&All games by name"
 msgstr "&Все игры по имени"
 
-#: pysollib/tile/menubar.py:1029 pysollib/tk/menubar.py:1023
+#: pysollib/tile/menubar.py:1028 pysollib/tk/menubar.py:1023
 #: data/glade-translations:72
 msgid "Sound settings"
 msgstr "Настройка звука"
 
-#: pysollib/tile/menubar.py:1129 pysollib/tk/menubar.py:1127
+#: pysollib/tile/menubar.py:1128 pysollib/tk/menubar.py:1127
 msgid "Select "
 msgstr "Выбрать "
 
-#: pysollib/tile/menubar.py:1176 pysollib/tk/menubar.py:1179
+#: pysollib/tile/menubar.py:1175 pysollib/tk/menubar.py:1179
 msgid "Select table background"
 msgstr "Выбрать фоновое изображение"
 
-#: pysollib/tile/menubar.py:1331
+#: pysollib/tile/menubar.py:1330
 msgid "Change theme"
 msgstr "Изменение темы"
 
-#: pysollib/tile/menubar.py:1332
+#: pysollib/tile/menubar.py:1331
 msgid ""
 "This settings will take effect\n"
 "the next time you restart "
@@ -2718,37 +2723,37 @@ msgstr "Большие колоды"
 msgid "XLarge cardsets"
 msgstr "Очень большие колоды"
 
-#: pysollib/tile/selectcardset.py:242 pysollib/tk/menubar.py:1124
+#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1124
 msgid "&Info..."
 msgstr "&Информация..."
 
-#: pysollib/tile/selectcardset.py:243 pysollib/tk/menubar.py:1122
+#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1122
 #: pysollib/tk/menubar.py:1124 pysollib/tk/selectcardset.py:241
 msgid "&Load"
 msgstr "&Загрузить"
 
-#: pysollib/tile/selectcardset.py:320 pysollib/tk/selectcardset.py:320
+#: pysollib/tile/selectcardset.py:313 pysollib/tk/selectcardset.py:320
 msgid "About cardset"
 msgstr "О наборе карт"
 
-#: pysollib/tile/selectcardset.py:336 pysollib/tile/selectgame.py:364
+#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:354
 #: pysollib/tk/selectcardset.py:336 pysollib/tk/selectgame.py:365
 msgid "Type:"
 msgstr "Тип:"
 
-#: pysollib/tile/selectcardset.py:337 pysollib/tk/selectcardset.py:337
+#: pysollib/tile/selectcardset.py:328 pysollib/tk/selectcardset.py:337
 msgid "Styles:"
 msgstr "Стиль:"
 
-#: pysollib/tile/selectcardset.py:338 pysollib/tk/selectcardset.py:338
+#: pysollib/tile/selectcardset.py:329 pysollib/tk/selectcardset.py:338
 msgid "Nationality:"
 msgstr "Национальность:"
 
-#: pysollib/tile/selectcardset.py:339 pysollib/tk/selectcardset.py:339
+#: pysollib/tile/selectcardset.py:330 pysollib/tk/selectcardset.py:339
 msgid "Year:"
 msgstr "Год:"
 
-#: pysollib/tile/selectcardset.py:341 pysollib/tk/selectcardset.py:341
+#: pysollib/tile/selectcardset.py:332 pysollib/tk/selectcardset.py:341
 msgid "Size:"
 msgstr "Размер:"
 
@@ -2804,27 +2809,27 @@ msgstr "Популярные игры"
 msgid "by Skill Level"
 msgstr "По уровню мастерства"
 
-#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:533
+#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:523
 #: pysollib/tk/selectgame.py:170 pysollib/tk/selectgame.py:533
 msgid "Luck only"
 msgstr "Только на везение"
 
-#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:534
+#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:524
 #: pysollib/tk/selectgame.py:171 pysollib/tk/selectgame.py:534
 msgid "Mostly luck"
 msgstr "В основном на везение"
 
-#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:535
+#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:525
 #: pysollib/tk/selectgame.py:172 pysollib/tk/selectgame.py:535
 msgid "Balanced"
 msgstr "Сбалансированные"
 
-#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:536
+#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:526
 #: pysollib/tk/selectgame.py:173 pysollib/tk/selectgame.py:536
 msgid "Mostly skill"
 msgstr "В основном на мастерство"
 
-#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:537
+#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:527
 #: pysollib/tk/selectgame.py:174 pysollib/tk/selectgame.py:537
 msgid "Skill only"
 msgstr "Только на мастерство"
@@ -2941,81 +2946,81 @@ msgstr "Открытые игры (все карты видны)"
 msgid "Relaxed Variants"
 msgstr "Облегчённые варианты"
 
-#: pysollib/tile/selectgame.py:348 pysollib/tk/selectgame.py:349
+#: pysollib/tile/selectgame.py:341 pysollib/tk/selectgame.py:349
 msgid "About game"
 msgstr "Об игре "
 
-#: pysollib/tile/selectgame.py:361 pysollib/tk/selectgame.py:362
+#: pysollib/tile/selectgame.py:351 pysollib/tk/selectgame.py:362
 msgid "Name:"
 msgstr "Имя:"
 
-#: pysollib/tile/selectgame.py:362 pysollib/tk/selectgame.py:363
+#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:363
 msgid "Alternate names:"
 msgstr "Другие имена:"
 
-#: pysollib/tile/selectgame.py:363 pysollib/tk/selectgame.py:364
+#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:364
 msgid "Category:"
 msgstr "Категория:"
 
-#: pysollib/tile/selectgame.py:365 pysollib/tk/selectgame.py:366
+#: pysollib/tile/selectgame.py:355 pysollib/tk/selectgame.py:366
 msgid "Skill level:"
 msgstr "Уровень мастерства:"
 
-#: pysollib/tile/selectgame.py:366 pysollib/tk/selectgame.py:367
+#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:367
 msgid "Decks:"
 msgstr "Колод:"
 
-#: pysollib/tile/selectgame.py:367 pysollib/tk/selectgame.py:368
+#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:368
 msgid "Redeals:"
 msgstr "Пересдач:"
 
-#: pysollib/tile/selectgame.py:369 pysollib/tk/selectgame.py:370
+#: pysollib/tile/selectgame.py:359 pysollib/tk/selectgame.py:370
 msgid "Played:"
 msgstr "Играл:"
 
-#: pysollib/tile/selectgame.py:370 pysollib/tile/tkstats.py:107
+#: pysollib/tile/selectgame.py:360 pysollib/tile/tkstats.py:107
 #: pysollib/tile/tkstats.py:159 pysollib/tk/selectgame.py:371
 #: pysollib/tk/tkstats.py:111 pysollib/tk/tkstats.py:163
 #: data/glade-translations:9 data/glade-translations:13
 msgid "Won:"
 msgstr "Выиграл:"
 
-#: pysollib/tile/selectgame.py:371 pysollib/tile/tkstats.py:108
+#: pysollib/tile/selectgame.py:361 pysollib/tile/tkstats.py:108
 #: pysollib/tile/tkstats.py:160 pysollib/tk/selectgame.py:372
 #: pysollib/tk/tkstats.py:112 pysollib/tk/tkstats.py:164
 #: data/glade-translations:11 data/glade-translations:14
 msgid "Lost:"
 msgstr "Проиграл:"
 
-#: pysollib/tile/selectgame.py:372 pysollib/tile/tkstats.py:615
+#: pysollib/tile/selectgame.py:362 pysollib/tile/tkstats.py:615
 #: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:736
 #: data/glade-translations:18
 msgid "Playing time:"
 msgstr "Игровое время:"
 
-#: pysollib/tile/selectgame.py:373 pysollib/tile/tkstats.py:622
+#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622
 #: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:743
 #: data/glade-translations:19
 msgid "Moves:"
 msgstr "Ходов:"
 
-#: pysollib/tile/selectgame.py:374 pysollib/tk/selectgame.py:375
+#: pysollib/tile/selectgame.py:364 pysollib/tk/selectgame.py:375
 msgid "% won:"
 msgstr "% побед:"
 
-#: pysollib/tile/selectgame.py:406 pysollib/tk/selectgame.py:407
+#: pysollib/tile/selectgame.py:396 pysollib/tk/selectgame.py:407
 msgid "&Rules"
 msgstr "&Правила"
 
-#: pysollib/tile/selectgame.py:486 pysollib/tk/selectgame.py:486
+#: pysollib/tile/selectgame.py:476 pysollib/tk/selectgame.py:486
 msgid "Playable Preview - "
 msgstr "Играемый предпросмотр - "
 
-#: pysollib/tile/selectgame.py:540 pysollib/tk/selectgame.py:540
+#: pysollib/tile/selectgame.py:530 pysollib/tk/selectgame.py:540
 msgid "variable"
 msgstr "переменное кол-во"
 
-#: pysollib/tile/selectgame.py:541 pysollib/tk/selectgame.py:541
+#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:541
 msgid "unlimited"
 msgstr "неограниченное кол-во"
 
@@ -3147,22 +3152,22 @@ msgstr "Уровень звуков:"
 msgid "Music volume:"
 msgstr "Уровень музыки:"
 
-#: pysollib/tile/soundoptionsdialog.py:146
+#: pysollib/tile/soundoptionsdialog.py:145
 #: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76
 msgid "Enable samles"
 msgstr "Включить звуки"
 
-#: pysollib/tile/soundoptionsdialog.py:171
+#: pysollib/tile/soundoptionsdialog.py:168
 #: pysollib/tk/soundoptionsdialog.py:170
 msgid "&Apply"
 msgstr "&Применить"
 
-#: pysollib/tile/soundoptionsdialog.py:204
+#: pysollib/tile/soundoptionsdialog.py:201
 #: pysollib/tk/soundoptionsdialog.py:206
 msgid "Sound preferences info"
 msgstr "Информация о настройках звука"
 
-#: pysollib/tile/soundoptionsdialog.py:205
+#: pysollib/tile/soundoptionsdialog.py:202
 #: pysollib/tk/soundoptionsdialog.py:207
 msgid ""
 "Changing DirectX settings will take effect\n"
@@ -3503,15 +3508,15 @@ msgstr "Правила текущей игры"
 msgid "Quit"
 msgstr "Выйти"
 
-#: pysollib/tile/toolbar.py:268 pysollib/tk/toolbar.py:225
+#: pysollib/tile/toolbar.py:265 pysollib/tk/toolbar.py:225
 msgid "Player"
 msgstr "Игрок"
 
-#: pysollib/tile/toolbar.py:269 pysollib/tk/toolbar.py:226
+#: pysollib/tile/toolbar.py:266 pysollib/tk/toolbar.py:226
 msgid "Player options"
 msgstr "Установки игрока"
 
-#: pysollib/tile/toolbar.py:490 pysollib/tk/toolbar.py:466
+#: pysollib/tile/toolbar.py:485 pysollib/tk/toolbar.py:466
 msgid "Toolbar"
 msgstr "Панель инструментов"
 
diff --git a/pysollib/games/freecell.py b/pysollib/games/freecell.py
index ed53fcb8..b2ca6a8c 100644
--- a/pysollib/games/freecell.py
+++ b/pysollib/games/freecell.py
@@ -606,6 +606,26 @@ class Headquarters(Game):
     shallHighlightMatch = Game._shallHighlightMatch_AC
 
 
+# /***********************************************************************
+# // Can Can
+# ************************************************************************/
+
+class CanCan(FreeCell):
+    Hint_Class = DefaultHint
+    RowStack_Class = KingAC_RowStack
+    ReserveStack_Class = StackWrapper(OpenStack, max_accept=0)
+
+    def createGame(self):
+        FreeCell.createGame(self, rows=13, reserves=3)
+
+    def startGame(self):
+        for i in range(3):
+            self.s.talon.dealRow(frames=0)
+        self.startDealSample()
+        self.s.talon.dealRow(rows=self.s.reserves)
+        self.s.talon.dealRowAvail()
+
+
 
 # register the game
 registerGame(GameInfo(5, RelaxedFreeCell, "Relaxed FreeCell",
@@ -652,4 +672,6 @@ registerGame(GameInfo(542, KingCell, "KingCell",
                       GI.GT_FREECELL | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
 registerGame(GameInfo(648, Headquarters, "Headquarters",
                       GI.GT_FREECELL | GI.GT_OPEN | GI.GT_ORIGINAL, 2, 0, GI.SL_MOSTLY_SKILL))
+registerGame(GameInfo(698, CanCan, "Can Can",
+                      GI.GT_RAGLAN | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
 
diff --git a/pysollib/games/grandfathersclock.py b/pysollib/games/grandfathersclock.py
index 1fbf4138..95b6772e 100644
--- a/pysollib/games/grandfathersclock.py
+++ b/pysollib/games/grandfathersclock.py
@@ -361,6 +361,118 @@ class Hemispheres(Game):
         return card1.color == card2.color and abs(card1.rank-card2.rank) == 1
 
 
+# /***********************************************************************
+# // Big Ben
+# ************************************************************************/
+
+class BigBen_Talon(DealRowTalonStack):
+
+    def dealCards(self, sound=0):
+        rows = [s for s in self.game.s.rows if len(s.cards) < 3]
+        if not rows:
+            if sound and not self.game.demo:
+                self.game.playSample("dealwaste")
+            return self.dealRow(rows=[self.game.s.waste], sound=0)
+        if sound and self.game.app.opt.animations:
+            self.game.startDealSample()
+        ncards = 0
+        while rows:
+            n = self.dealRowAvail(rows=rows, sound=0)
+            if not n:
+                break
+            ncards += n
+            rows = [s for s in self.game.s.rows if len(s.cards) < 3]
+        if sound:
+            self.game.stopSamples()
+        return ncards
+
+class BigBen_RowStack(SS_RowStack):
+    def acceptsCards(self, from_stack, cards):
+        if not SS_RowStack.acceptsCards(self, from_stack, cards):
+            return False
+        if len(self.cards) < 3:
+            return False
+        return True
+
+class BigBen(Game):
+    Hint_Class = CautiousDefaultHint
+
+    def createGame(self):
+        l, s = Layout(self), self.s
+        self.setSize(l.XM+12*l.XS, l.YM+5.5*l.YS)
+
+        y = l.YM
+        for i in range(2):
+            x = l.XM
+            for j in range(6):
+                s.rows.append(BigBen_RowStack(x, y, self, max_move=1, mod=13))
+                x += l.XS
+            y += 2.75*l.YS
+
+        x0, y0 = l.XM+6*l.XS, l.YM
+        rank = 1
+        for xx, yy in (
+            (0,   1.5),
+            (0.5, 0.5),
+            (1.5, 0.15),
+            (2.5, 0),
+            (3.5, 0.15),
+            (4.5, 0.5),
+            (5,   1.5),
+            (4.5, 2.5),
+            (3.5, 2.85),
+            (2.5, 3),
+            (1.5, 2.85),
+            (0.5, 2.5),
+            ):
+            x = int(x0 + xx*l.XS)
+            y = int(y0 + yy*l.YS)
+            suit=(3,0,2,1)[rank%4]
+            max_cards = rank <= 4 and 8 or 9
+            s.foundations.append(SS_FoundationStack(x, y, self, suit=suit,
+                                 max_cards=max_cards, base_rank=rank,
+                                 mod=13, max_move=0))
+            rank += 1
+
+        x, y = self.width-l.XS, self.height-l.YS
+        s.talon = BigBen_Talon(x, y, self, max_rounds=1)
+        l.createText(s.talon, 'n')
+        x -= l.XS
+        s.waste = WasteStack(x, y, self)
+        l.createText(s.waste, 'n')
+
+        l.defaultStackGroups()
+
+    def _shuffleHook(self, cards):
+        # move clock cards to top of the Talon (i.e. first cards to be dealt)
+        C, S, H, D = range(4)           # suits
+        t = [(1,C), (2,H), (3,S), (4,D), (5,C), (6,H),
+             (7,S), (8,D), (9,C), (JACK,H), (QUEEN,S), (KING,D)]
+        clocks = []
+        for c in cards[:]:
+            if (c.rank, c.suit) in t:
+                t.remove((c.rank, c.suit))
+                cards.remove(c)
+                clocks.append(c)
+            if not t:
+                break
+        # sort clocks reverse by rank
+        clocks.sort(lambda a, b: cmp(b.rank, a.rank))
+        return cards+clocks
+
+    def startGame(self):
+        self.startDealSample()
+        self.s.talon.dealRow(rows=self.s.foundations)
+        for i in range(3):
+            self.s.talon.dealRow()
+
+    def _autoDeal(self, sound=1):
+        # don't deal a card to the waste if the waste is empty
+        return 0
+
+    shallHighlightMatch = Game._shallHighlightMatch_SSW
+
+
 
 # register the game
 registerGame(GameInfo(261, GrandfathersClock, "Grandfather's Clock",
@@ -370,4 +482,7 @@ registerGame(GameInfo(682, Dial, "Dial",
 registerGame(GameInfo(690, Hemispheres, "Hemispheres",
                       GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED,
                       altnames=("The Four Continents",) ))
+registerGame(GameInfo(697, BigBen, "Big Ben",
+                      GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED,
+                      altnames=("Clock",) ))
 
diff --git a/pysollib/games/royalcotillion.py b/pysollib/games/royalcotillion.py
index f002e572..e85fdc98 100644
--- a/pysollib/games/royalcotillion.py
+++ b/pysollib/games/royalcotillion.py
@@ -462,7 +462,8 @@ class BritishConstitution(Game):
         # create stacks
         x, y = l.XM+l.XS, l.YM
         for i in range(8):
-            s.foundations.append(BritishConstitution_Foundation(x, y, self, suit=int(i/2), max_cards=11))
+            s.foundations.append(BritishConstitution_Foundation(x, y, self,
+                                 suit=int(i/2), max_cards=11))
             x += l.XS
 
         y = l.YM+l.YS
@@ -1084,6 +1085,80 @@ class Colonel(Game):
     shallHighlightMatch = Game._shallHighlightMatch_SS
 
 
+# /***********************************************************************
+# // The Red and the Black
+# ************************************************************************/
+
+
+
+class TheRedAndTheBlack_Foundation(AC_FoundationStack):
+    def acceptsCards(self, from_stack, cards):
+        if not AC_FoundationStack.acceptsCards(self, from_stack, cards):
+            return False
+        if from_stack is self.game.s.waste or from_stack in self.game.s.rows:
+            return True
+        return False
+
+class TheRedAndTheBlack_Reserve(ReserveStack):
+    def acceptsCards(self, from_stack, cards):
+        if not ReserveStack.acceptsCards(self, from_stack, cards):
+            return False
+        if from_stack is self.game.s.waste:
+            return True
+        return False
+
+class TheRedAndTheBlack_RowStack(AC_RowStack):
+    def getBottomImage(self):
+        return self.game.app.images.getReserveBottom()
+
+
+class TheRedAndTheBlack(Game):
+    Hint_Class = CautiousDefaultHint
+
+    def createGame(self):
+
+        l, s = Layout(self), self.s
+        self.setSize(l.XM + 8*l.XS, l.YM + 4.5*l.YS)
+
+        x, y = l.XM, l.YM
+        for i in range(8):
+            s.foundations.append(TheRedAndTheBlack_Foundation(x, y, self,
+                                                              suit=i/2))
+            x += l.XS
+        x, y = l.XM+2*l.XS, l.YM+l.YS
+        for i in range(4):
+            stack = TheRedAndTheBlack_RowStack(x, y, self, max_move=1)
+            stack.CARD_YOFFSET = 0
+            s.rows.append(stack)
+            x += l.XS
+        x, y = l.XM+2*l.XS, l.YM+2*l.YS
+        for i in range(4):
+            s.reserves.append(TheRedAndTheBlack_Reserve(x, y, self))
+            x += l.XS
+        x, y = l.XM+3*l.XS, l.YM+3.5*l.YS
+        s.talon = WasteTalonStack(x, y, self, max_rounds=1)
+        l.createText(s.talon, "sw")
+        x += l.XS
+        s.waste = WasteStack(x, y, self)
+        l.createText(s.waste, "se")
+
+        # define stack-groups
+        l.defaultStackGroups()
+
+    def startGame(self):
+        self.s.talon.dealRow(rows=self.s.foundations, frames=0)
+        self.startDealSample()
+        self.s.talon.dealRow()
+        self.s.talon.dealRow(rows=self.s.reserves)
+        self.s.talon.dealCards()       # deal first card to WasteStack
+
+    def _shuffleHook(self, cards):
+        # move Aces to top of the Talon (i.e. first cards to be dealt)
+        return self._shuffleHookMoveToTop(cards, lambda c: (c.rank == ACE, c.suit))
+
+    shallHighlightMatch = Game._shallHighlightMatch_AC
+
+
 
 # register the game
 registerGame(GameInfo(54, RoyalCotillion, "Royal Cotillion",
@@ -1124,4 +1199,6 @@ registerGame(GameInfo(676, BoxingTheCompass, "Boxing the Compass",
                       GI.GT_2DECK_TYPE, 2, 1, GI.SL_BALANCED))
 registerGame(GameInfo(693, Colonel, "Colonel",
                       GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL))
+registerGame(GameInfo(695, TheRedAndTheBlack, "The Red and the Black",
+                      GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED))
 
diff --git a/pysollib/games/windmill.py b/pysollib/games/windmill.py
index 5a78cab3..509edaec 100644
--- a/pysollib/games/windmill.py
+++ b/pysollib/games/windmill.py
@@ -325,6 +325,7 @@ class Corners(Game):
 # /***********************************************************************
 # // Czarina
 # // Four Seasons
+# // Florentine Patience
 # ************************************************************************/
 
 class Czarina_RowStack(RK_RowStack):
@@ -336,10 +337,10 @@ class Czarina(Corners):
     Hint_Class = CautiousDefaultHint
     RowStack_Class = StackWrapper(Czarina_RowStack, mod=13, max_move=1)
 
-    def createGame(self):
+    def createGame(self, max_rounds=1):
         # extra settings
         self.base_card = None
-        Corners.createGame(self, max_rounds=1)
+        Corners.createGame(self, max_rounds=max_rounds)
 
     def startGame(self):
         self.startDealSample()
@@ -375,6 +376,10 @@ class FourSeasons(Czarina):
     def fillStack(self, stack):
         pass
 
+class FlorentinePatience(FourSeasons):
+    def createGame(self):
+        Czarina.createGame(self, max_rounds=2)
+
 
 # /***********************************************************************
 # // Simplicity
@@ -464,4 +469,6 @@ registerGame(GameInfo(484, FourSeasons, "Four Seasons",
                       altnames=('Corner Card', 'Vanishing Cross') ))
 registerGame(GameInfo(561, DutchSolitaire, "Dutch Solitaire",
                       GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL))
+registerGame(GameInfo(696, FlorentinePatience, "Florentine Patience",
+                      GI.GT_1DECK_TYPE, 1, 1, GI.SL_MOSTLY_LUCK))
 
diff --git a/pysollib/layout.py b/pysollib/layout.py
index 74b7d282..58977332 100644
--- a/pysollib/layout.py
+++ b/pysollib/layout.py
@@ -375,7 +375,7 @@ class Layout:
         for i in range(rows):
             self.s.rows.append(S(x, y))
             x = x + XS
-        self.setRegion(self.s.rows, (-999, y - YM / 2, 999999, 999999))
+        self.setRegion(self.s.rows, (-999, y - CH / 2, 999999, 999999))
 
         # create talon
         x, y = XM, h - YS