diff --git a/data/images/shadow.gif b/data/images/shadow.gif new file mode 100644 index 00000000..5ce09c70 Binary files /dev/null and b/data/images/shadow.gif differ diff --git a/po/games.pot b/po/games.pot index 98a2c2ed..61ca8371 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 Dec 7 15:25:59 2006\n" +"POT-Creation-Date: Fri Jan 12 13:34:09 2007\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -255,6 +255,9 @@ msgstr "" msgid "Betsy Ross" msgstr "" +msgid "Big Ben" +msgstr "" + msgid "Big Bertha" msgstr "" @@ -426,6 +429,9 @@ msgstr "" msgid "Busy Aces" msgstr "" +msgid "Busy Cards" +msgstr "" + msgid "Butterfly" msgstr "" @@ -438,6 +444,9 @@ msgstr "" msgid "Camelot" msgstr "" +msgid "Can Can" +msgstr "" + msgid "Canfield" msgstr "" @@ -570,6 +579,9 @@ msgstr "" msgid "Clink" msgstr "" +msgid "Clock" +msgstr "" + msgid "Clover Leaf" msgstr "" @@ -804,6 +816,9 @@ msgstr "" msgid "Double Klondike by Threes" msgstr "" +msgid "Double Line" +msgstr "" + msgid "Double Mahjongg Big Castle" msgstr "" @@ -831,6 +846,9 @@ msgstr "" msgid "Double Measure" msgstr "" +msgid "Double Pyramid" +msgstr "" + msgid "Double Rail" msgstr "" @@ -1143,6 +1161,9 @@ msgstr "" msgid "Four Winds" msgstr "" +msgid "Four by Four" +msgstr "" + msgid "Foursome" msgstr "" @@ -1356,6 +1377,9 @@ msgstr "" msgid "Harvestman" msgstr "" +msgid "Hawaiian" +msgstr "" + msgid "Hayagriva" msgstr "" @@ -2631,6 +2655,9 @@ msgstr "" msgid "Ox" msgstr "" +msgid "Paganini" +msgstr "" + msgid "Pagat" msgstr "" @@ -2922,21 +2949,6 @@ msgstr "" msgid "Robin" msgstr "" -msgid "Rock Hopper" -msgstr "" - -msgid "Rock Hopper 6x6" -msgstr "" - -msgid "Rock Hopper 7x7" -msgstr "" - -msgid "Rock Hopper Cross 1" -msgstr "" - -msgid "Rock Hopper Cross 2" -msgstr "" - msgid "Rocket" msgstr "" @@ -3003,6 +3015,9 @@ msgstr "" msgid "Russian Spider" msgstr "" +msgid "S Patience" +msgstr "" + msgid "Salic Law" msgstr "" @@ -3552,6 +3567,9 @@ msgstr "" msgid "Trefoil" msgstr "" +msgid "Triangle" +msgstr "" + msgid "Trika" msgstr "" @@ -3636,6 +3654,9 @@ msgstr "" msgid "Unlimited" msgstr "" +msgid "Up and Down" +msgstr "" + msgid "Usk" msgstr "" diff --git a/po/pysol.pot b/po/pysol.pot index 5554841e..c3254d92 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 Dec 7 15:27:04 2006\n" +"POT-Creation-Date: Fri Jan 12 13:35:13 2007\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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-12-07 15:27+0300\n" +"POT-Creation-Date: 2007-01-12 13:35+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,57 +32,57 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: pysollib/actions.py:259 pysollib/tile/toolbar.py:236 -#: pysollib/tk/toolbar.py:197 +#: pysollib/actions.py:257 pysollib/tile/toolbar.py:189 +#: pysollib/tk/toolbar.py:192 msgid "New game" msgstr "" -#: pysollib/actions.py:272 pysollib/tile/menubar.py:820 -#: pysollib/tile/menubar.py:834 pysollib/tk/menubar.py:815 -#: pysollib/tk/menubar.py:829 +#: pysollib/actions.py:270 pysollib/tile/menubar.py:822 +#: pysollib/tile/menubar.py:836 pysollib/tk/menubar.py:818 +#: pysollib/tk/menubar.py:832 msgid "Select game" msgstr "" -#: pysollib/actions.py:286 +#: pysollib/actions.py:284 msgid "Invalid game number" msgstr "" -#: pysollib/actions.py:287 +#: pysollib/actions.py:285 msgid "Invalid game number\n" msgstr "" -#: pysollib/actions.py:304 +#: pysollib/actions.py:302 msgid "Select next game number" msgstr "" -#: pysollib/actions.py:313 pysollib/actions.py:323 +#: pysollib/actions.py:311 pysollib/actions.py:321 msgid "Select new game number" msgstr "" -#: pysollib/actions.py:314 +#: pysollib/actions.py:312 msgid "" "\n" "\n" "Enter new game number" msgstr "" -#: pysollib/actions.py:315 +#: pysollib/actions.py:313 msgid "&Next number" msgstr "" -#: pysollib/actions.py:315 pysollib/app.py:881 pysollib/app.py:1164 -#: pysollib/app.py:1176 pysollib/game.py:933 pysollib/game.py:1865 +#: pysollib/actions.py:313 pysollib/app.py:886 pysollib/app.py:1169 +#: pysollib/app.py:1181 pysollib/game.py:950 pysollib/game.py:2048 #: 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:1335 -#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:388 +#: pysollib/tile/fontsdialog.py:144 pysollib/tile/fontsdialog.py:204 +#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1334 +#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:387 #: 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 -#: pysollib/tile/tkstats.py:587 pysollib/tile/tkstats.py:671 -#: pysollib/tile/tkwidget.py:146 pysollib/tile/tkwidget.py:319 +#: pysollib/tile/tkhtml.py:501 pysollib/tile/tkstats.py:214 +#: pysollib/tile/tkstats.py:384 pysollib/tile/tkstats.py:457 +#: pysollib/tile/tkstats.py:480 pysollib/tile/tkstats.py:523 +#: pysollib/tile/tkstats.py:594 pysollib/tile/tkstats.py:678 +#: pysollib/tile/tkwidget.py:154 pysollib/tile/tkwidget.py:329 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205 #: pysollib/tk/gameinfodialog.py:155 pysollib/tk/playeroptionsdialog.py:85 @@ -90,26 +90,26 @@ msgstr "" #: pysollib/tk/selectcardset.py:397 pysollib/tk/selecttile.py:159 #: pysollib/tk/soundoptionsdialog.py:170 pysollib/tk/soundoptionsdialog.py:211 #: pysollib/tk/timeoutsdialog.py:92 pysollib/tk/tkhtml.py:500 -#: pysollib/tk/tkstats.py:288 pysollib/tk/tkstats.py:512 -#: pysollib/tk/tkstats.py:579 pysollib/tk/tkstats.py:594 -#: pysollib/tk/tkstats.py:636 pysollib/tk/tkstats.py:708 -#: pysollib/tk/tkstats.py:792 pysollib/tk/tkwidget.py:159 +#: pysollib/tk/tkstats.py:288 pysollib/tk/tkstats.py:514 +#: pysollib/tk/tkstats.py:581 pysollib/tk/tkstats.py:596 +#: pysollib/tk/tkstats.py:638 pysollib/tk/tkstats.py:710 +#: pysollib/tk/tkstats.py:794 pysollib/tk/tkwidget.py:160 #: pysollib/tk/tkwidget.py:324 msgid "&OK" msgstr "" -#: pysollib/actions.py:315 pysollib/app.py:882 pysollib/app.py:1176 -#: pysollib/game.py:933 pysollib/game.py:1316 pysollib/game.py:1331 -#: pysollib/game.py:1338 pysollib/game.py:1344 +#: pysollib/actions.py:313 pysollib/app.py:887 pysollib/app.py:1181 +#: pysollib/game.py:950 pysollib/game.py:1502 pysollib/game.py:1518 +#: pysollib/game.py:1525 pysollib/game.py:1531 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83 -#: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205 +#: pysollib/tile/fontsdialog.py:144 pysollib/tile/fontsdialog.py:204 #: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:237 -#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:397 +#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:398 #: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168 -#: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:319 +#: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:329 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205 -#: pysollib/tk/menubar.py:1122 pysollib/tk/menubar.py:1124 +#: pysollib/tk/menubar.py:1133 pysollib/tk/menubar.py:1135 #: pysollib/tk/playeroptionsdialog.py:85 #: pysollib/tk/playeroptionsdialog.py:160 pysollib/tk/selectcardset.py:241 #: pysollib/tk/selectgame.py:266 pysollib/tk/selectgame.py:407 @@ -118,122 +118,122 @@ msgstr "" msgid "&Cancel" msgstr "" -#: pysollib/actions.py:331 +#: pysollib/actions.py:329 msgid "Select random game" msgstr "" -#: pysollib/actions.py:367 +#: pysollib/actions.py:365 msgid "Select next game" msgstr "" -#: pysollib/actions.py:400 pysollib/tile/toolbar.py:250 -#: pysollib/tk/toolbar.py:211 +#: pysollib/actions.py:398 pysollib/tile/toolbar.py:203 +#: pysollib/tk/toolbar.py:206 msgid "Quit " msgstr "" -#: pysollib/actions.py:451 +#: pysollib/actions.py:449 msgid "Clear bookmarks" msgstr "" -#: pysollib/actions.py:452 +#: pysollib/actions.py:450 msgid "Clear all bookmarks ?" msgstr "" -#: pysollib/actions.py:462 +#: pysollib/actions.py:460 msgid "Restart game" msgstr "" -#: pysollib/actions.py:463 +#: pysollib/actions.py:461 msgid "Restart this game ?" msgstr "" -#: pysollib/actions.py:504 +#: pysollib/actions.py:502 msgid "" "Comments for %s:\n" "\n" msgstr "" -#: pysollib/actions.py:506 +#: pysollib/actions.py:504 msgid "Comments for " msgstr "" -#: pysollib/actions.py:524 pysollib/actions.py:552 +#: pysollib/actions.py:522 pysollib/actions.py:550 msgid "Error while writing to file" msgstr "" -#: pysollib/actions.py:527 pysollib/actions.py:555 +#: pysollib/actions.py:525 pysollib/actions.py:553 msgid " Info" msgstr "" -#: pysollib/actions.py:528 +#: pysollib/actions.py:526 msgid "" "Comments were appended to\n" "\n" msgstr "" -#: pysollib/actions.py:539 +#: pysollib/actions.py:537 msgid "Demo statistics" msgstr "" -#: pysollib/actions.py:542 +#: pysollib/actions.py:540 msgid "Your statistics" msgstr "" -#: pysollib/actions.py:556 +#: pysollib/actions.py:554 msgid "" " were appended to\n" "\n" msgstr "" -#: pysollib/actions.py:571 +#: pysollib/actions.py:569 msgid " Demo" msgstr "" -#: pysollib/actions.py:571 +#: pysollib/actions.py:569 msgid " Demo " msgstr "" -#: pysollib/actions.py:574 pysollib/actions.py:593 +#: pysollib/actions.py:572 pysollib/actions.py:591 msgid " for " msgstr "" -#: pysollib/actions.py:580 pysollib/stats.py:206 +#: pysollib/actions.py:578 pysollib/stats.py:205 msgid "Statistics for " msgstr "" -#: pysollib/actions.py:583 pysollib/tile/selectgame.py:344 -#: pysollib/tile/toolbar.py:247 pysollib/tk/selectgame.py:350 -#: pysollib/tk/toolbar.py:208 +#: pysollib/actions.py:581 pysollib/tile/selectgame.py:345 +#: pysollib/tile/toolbar.py:200 pysollib/tk/selectgame.py:350 +#: pysollib/tk/toolbar.py:203 msgid "Statistics" msgstr "" -#: pysollib/actions.py:587 data/glade-translations:31 +#: pysollib/actions.py:585 data/glade-translations:31 msgid "Full log" msgstr "" -#: pysollib/actions.py:590 data/glade-translations:32 +#: pysollib/actions.py:588 data/glade-translations:32 msgid "Session log" msgstr "" -#: pysollib/actions.py:596 +#: pysollib/actions.py:594 msgid "Game Info" msgstr "" -#: pysollib/actions.py:612 +#: pysollib/actions.py:610 msgid "Reset all statistics" msgstr "" -#: pysollib/actions.py:613 +#: pysollib/actions.py:611 msgid "" "Reset ALL statistics and logs for player\n" "%s ?" msgstr "" -#: pysollib/actions.py:619 +#: pysollib/actions.py:617 msgid "Reset game statistics" msgstr "" -#: pysollib/actions.py:620 +#: pysollib/actions.py:618 msgid "" "Reset statistics and logs for player\n" "%s\n" @@ -241,23 +241,23 @@ msgid "" "%s ?" msgstr "" -#: pysollib/actions.py:676 +#: pysollib/actions.py:674 msgid "Play demo" msgstr "" -#: pysollib/actions.py:687 +#: pysollib/actions.py:685 msgid "Set player options" msgstr "" -#: pysollib/actions.py:701 data/glade-translations:40 +#: pysollib/actions.py:699 data/glade-translations:40 msgid "Set colors" msgstr "" -#: pysollib/actions.py:721 +#: pysollib/actions.py:719 msgid "Set fonts" msgstr "" -#: pysollib/actions.py:730 data/glade-translations:33 +#: pysollib/actions.py:728 data/glade-translations:33 msgid "Set timeouts" msgstr "" @@ -265,29 +265,29 @@ msgstr "" 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:366 -#: pysollib/tk/menubar.py:363 +#: pysollib/app.py:888 pysollib/game.py:1502 pysollib/game.py:1518 +#: pysollib/game.py:1525 pysollib/game.py:1531 pysollib/tile/menubar.py:361 +#: pysollib/tk/menubar.py:358 msgid "&New game" msgstr "" -#: pysollib/app.py:1026 +#: pysollib/app.py:1031 msgid "Loading %s %s..." msgstr "" -#: pysollib/app.py:1061 +#: pysollib/app.py:1066 msgid " load error" msgstr "" -#: pysollib/app.py:1062 +#: pysollib/app.py:1067 msgid "Error while loading " msgstr "" -#: pysollib/app.py:1156 +#: pysollib/app.py:1161 msgid "Incompatible " msgstr "" -#: pysollib/app.py:1158 +#: pysollib/app.py:1163 msgid "" "The currently selected %s %s\n" "is not compatible with the game\n" @@ -296,45 +296,45 @@ msgid "" "Please select a %s type %s.\n" msgstr "" -#: pysollib/app.py:1174 +#: pysollib/app.py:1179 msgid "Please select a %s type %s" msgstr "" -#: pysollib/game.py:852 pysollib/game.py:858 +#: pysollib/game.py:869 pysollib/game.py:875 msgid "Player\n" msgstr "" -#: pysollib/game.py:929 +#: pysollib/game.py:946 msgid "Discard current game ?" msgstr "" -#: pysollib/game.py:1270 +#: pysollib/game.py:1455 msgid "" "\n" "You have reached\n" "#%d in the %s of playing time" msgstr "" -#: pysollib/game.py:1275 +#: pysollib/game.py:1460 msgid "" "\n" "and #%d in the %s of moves" msgstr "" -#: pysollib/game.py:1278 +#: pysollib/game.py:1463 msgid "" "\n" "You have reached\n" "#%d in the %s of moves" msgstr "" -#: pysollib/game.py:1307 pysollib/game.py:1323 +#: pysollib/game.py:1493 pysollib/game.py:1510 #: pysollib/tile/soundoptionsdialog.py:102 #: pysollib/tk/soundoptionsdialog.py:100 msgid "Game won" msgstr "" -#: pysollib/game.py:1308 +#: pysollib/game.py:1494 msgid "" "\n" "Congratulations, this\n" @@ -345,7 +345,7 @@ msgid "" "%s\n" msgstr "" -#: pysollib/game.py:1324 +#: pysollib/game.py:1511 msgid "" "\n" "Congratulations, you did it !\n" @@ -355,101 +355,101 @@ msgid "" "%s\n" msgstr "" -#: pysollib/game.py:1336 pysollib/game.py:1342 +#: pysollib/game.py:1523 pysollib/game.py:1529 #: pysollib/tile/soundoptionsdialog.py:100 #: pysollib/tk/soundoptionsdialog.py:98 msgid "Game finished" msgstr "" -#: pysollib/game.py:1337 pysollib/game.py:1866 +#: pysollib/game.py:1524 pysollib/game.py:2049 msgid "" "\n" "Game finished\n" msgstr "" -#: pysollib/game.py:1343 +#: pysollib/game.py:1530 msgid "" "\n" "Game finished, but not without my help...\n" msgstr "" -#: pysollib/game.py:1344 +#: pysollib/game.py:1531 msgid "&Restart" msgstr "" -#: pysollib/game.py:1758 +#: pysollib/game.py:1941 msgid "Score %6d" msgstr "" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Cool" msgstr "" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Great" msgstr "" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Wow" msgstr "" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Yeah" msgstr "" -#: pysollib/game.py:1858 pysollib/game.py:1869 pysollib/game.py:1881 +#: pysollib/game.py:2041 pysollib/game.py:2052 pysollib/game.py:2064 msgid " Autopilot" msgstr "" -#: pysollib/game.py:1859 +#: pysollib/game.py:2042 msgid "" "\n" "Game solved in %d moves.\n" msgstr "" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&Hmm" msgstr "" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&Oh well" msgstr "" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&That's life" msgstr "" -#: pysollib/game.py:1882 +#: pysollib/game.py:2065 msgid "" "\n" "This won't come out...\n" msgstr "" -#: pysollib/game.py:2291 +#: pysollib/game.py:2474 msgid "Set bookmark" msgstr "" -#: pysollib/game.py:2292 +#: pysollib/game.py:2475 msgid "Replace existing bookmark %d ?" msgstr "" -#: pysollib/game.py:2314 +#: pysollib/game.py:2497 msgid "Goto bookmark" msgstr "" -#: pysollib/game.py:2315 +#: pysollib/game.py:2498 msgid "Goto bookmark %d ?" msgstr "" -#: pysollib/game.py:2346 +#: pysollib/game.py:2529 msgid "Open game" msgstr "" -#: pysollib/game.py:2357 pysollib/game.py:2366 pysollib/game.py:2371 +#: pysollib/game.py:2540 pysollib/game.py:2549 pysollib/game.py:2554 msgid "Load game error" msgstr "" -#: pysollib/game.py:2358 +#: pysollib/game.py:2541 msgid "" "Error while loading game.\n" "\n" @@ -457,22 +457,22 @@ msgid "" "but this could also be a bug you might want to report." msgstr "" -#: pysollib/game.py:2367 +#: pysollib/game.py:2550 msgid "Error while loading game" msgstr "" -#: pysollib/game.py:2372 +#: pysollib/game.py:2555 msgid "" "Internal error while loading game.\n" "\n" "Please report this bug." msgstr "" -#: pysollib/game.py:2397 +#: pysollib/game.py:2580 msgid "Save game error" msgstr "" -#: pysollib/game.py:2398 +#: pysollib/game.py:2581 msgid "Error while saving game" msgstr "" @@ -685,8 +685,9 @@ msgid "Puzzle type" msgstr "" #: pysollib/games/auldlangsyne.py:158 pysollib/games/calculation.py:104 -#: pysollib/games/numerica.py:94 pysollib/games/numerica.py:276 -#: pysollib/games/numerica.py:666 pysollib/games/numerica.py:779 +#: pysollib/games/camelot.py:588 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 "" @@ -695,14 +696,14 @@ 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/napoleon.py:183 pysollib/games/ultra/dashavatara.py:959 #: pysollib/games/ultra/hanafuda1.py:257 pysollib/games/ultra/hexadeck.py:1190 #: pysollib/games/ultra/mughal.py:802 msgid " Ascending" msgstr "" #: pysollib/games/braid.py:250 pysollib/games/camelot.py:554 -#: pysollib/games/napoleon.py:184 pysollib/games/ultra/dashavatara.py:961 +#: pysollib/games/napoleon.py:185 pysollib/games/ultra/dashavatara.py:961 #: pysollib/games/ultra/hanafuda1.py:259 pysollib/games/ultra/hexadeck.py:1192 #: pysollib/games/ultra/mughal.py:804 msgid " Descending" @@ -717,12 +718,12 @@ msgid "" msgstr "" #: pysollib/games/canfield.py:528 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1410 pysollib/util.py:80 +#: pysollib/stack.py:1389 pysollib/util.py:86 msgid "King" msgstr "" #: pysollib/games/canfield.py:531 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1409 pysollib/util.py:80 +#: pysollib/stack.py:1388 pysollib/util.py:86 msgid "Queen" msgstr "" @@ -739,11 +740,12 @@ msgid "X" msgstr "" #: pysollib/games/golf.py:114 pysollib/games/golf.py:300 -#: pysollib/stack.py:2075 +#: pysollib/stack.py:2054 msgid "Tableau. No building." msgstr "" -#: pysollib/games/golf.py:385 pysollib/stack.py:2008 +#: pysollib/games/golf.py:385 pysollib/games/pileon.py:257 +#: pysollib/stack.py:1987 msgid "Foundation. Build up regardless of suit." msgstr "" @@ -751,7 +753,7 @@ msgstr "" msgid "Balance $%d" msgstr "" -#: pysollib/games/klondike.py:169 pysollib/stack.py:2116 +#: pysollib/games/klondike.py:169 pysollib/stack.py:2095 msgid "Tableau. Build down by color." msgstr "" @@ -759,32 +761,32 @@ msgstr "" msgid "Reserve. Only Kings are acceptable." msgstr "" -#: pysollib/games/larasgame.py:163 pysollib/stack.py:1626 +#: pysollib/games/larasgame.py:163 pysollib/stack.py:1605 msgid "Round %d" msgstr "" -#: pysollib/games/mahjongg/mahjongg.py:305 +#: pysollib/games/mahjongg/mahjongg.py:308 msgid "" "No Free\n" "Matching\n" "Pairs" msgstr "" -#: pysollib/games/mahjongg/mahjongg.py:306 +#: pysollib/games/mahjongg/mahjongg.py:309 msgid "" "1 Free\n" "Matching\n" "Pair" msgstr "" -#: pysollib/games/mahjongg/mahjongg.py:307 +#: pysollib/games/mahjongg/mahjongg.py:310 msgid "" " Free\n" "Matching\n" "Pairs" msgstr "" -#: pysollib/games/mahjongg/mahjongg.py:308 +#: pysollib/games/mahjongg/mahjongg.py:311 msgid "" "\n" "Tiles\n" @@ -792,7 +794,7 @@ msgid "" "\n" msgstr "" -#: pysollib/games/mahjongg/mahjongg.py:309 +#: pysollib/games/mahjongg/mahjongg.py:312 msgid "" "\n" "Tiles\n" @@ -862,7 +864,7 @@ msgstr "" #: pysollib/games/special/tarock.py:223 #: pysollib/games/ultra/dashavatara.py:351 #: pysollib/games/ultra/hexadeck.py:273 pysollib/games/ultra/mughal.py:254 -#: pysollib/stack.py:1411 pysollib/util.py:79 +#: pysollib/stack.py:1390 pysollib/util.py:85 msgid "Ace" msgstr "" @@ -874,7 +876,7 @@ msgstr "" msgid "Valet" msgstr "" -#: pysollib/games/spider.py:1128 +#: pysollib/games/spider.py:1131 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same color " "can be moved as a unit." @@ -1171,37 +1173,37 @@ msgid "" "regardless of sequence." msgstr "" -#: pysollib/help.py:63 +#: pysollib/help.py:60 msgid "A Python Solitaire Game Collection\n" msgstr "" -#: pysollib/help.py:65 +#: pysollib/help.py:62 msgid "A World Domination Project\n" msgstr "" -#: pysollib/help.py:66 +#: pysollib/help.py:63 msgid "&Credits..." msgstr "" -#: pysollib/help.py:66 +#: pysollib/help.py:63 msgid "&Nice" msgstr "" -#: pysollib/help.py:68 +#: pysollib/help.py:65 msgid "&Enjoy" msgstr "" -#: pysollib/help.py:70 +#: pysollib/help.py:67 msgid "" "Version %s\n" "\n" msgstr "" -#: pysollib/help.py:71 +#: pysollib/help.py:68 msgid "About " msgstr "" -#: pysollib/help.py:72 +#: pysollib/help.py:69 msgid "" "PySol Fan Club edition\n" "%s%s\n" @@ -1218,11 +1220,11 @@ msgid "" "%s" msgstr "" -#: pysollib/help.py:101 +#: pysollib/help.py:98 msgid "Credits" msgstr "" -#: pysollib/help.py:102 +#: pysollib/help.py:99 msgid "" " credits go to:\n" "\n" @@ -1237,23 +1239,23 @@ msgid "" "for making this program possible" msgstr "" -#: pysollib/help.py:137 +#: pysollib/help.py:134 msgid " HTML Problem" msgstr "" -#: pysollib/help.py:138 +#: pysollib/help.py:135 msgid "Cannot find help document\n" msgstr "" -#: pysollib/help.py:151 +#: pysollib/help.py:148 msgid " Help" msgstr "" -#: pysollib/main.py:66 pysollib/main.py:269 +#: pysollib/main.py:64 pysollib/main.py:249 msgid "%s installation error" msgstr "" -#: pysollib/main.py:67 +#: pysollib/main.py:65 msgid "" "No cardsets were found !!!\n" "\n" @@ -1263,26 +1265,23 @@ msgid "" "Please check your %s installation.\n" msgstr "" -#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:385 -#: pysollib/tk/menubar.py:382 +#: pysollib/main.py:72 pysollib/main.py:257 pysollib/tile/menubar.py:381 +#: pysollib/tk/menubar.py:378 msgid "&Quit" msgstr "" -#: pysollib/main.py:96 +#: pysollib/main.py:90 msgid "" "%s: %s\n" "try %s --help for more information" msgstr "" -#: pysollib/main.py:134 +#: pysollib/main.py:119 msgid "" "Usage: %s [OPTIONS] [FILE]\n" " -g --game=GAMENAME start game GAMENAME\n" " -i --gameid=GAMEID\n" " --french-only\n" -" --fg --foreground=COLOR foreground color\n" -" --bg --background=COLOR background color\n" -" --fn --font=FONT default font\n" " --sound-mod=MOD\n" " --nosound disable sound support\n" " --noplugins disable load plugins\n" @@ -1292,19 +1291,19 @@ msgid "" " MOD - one of following: pss(default), pygame, oss, win\n" msgstr "" -#: pysollib/main.py:152 +#: pysollib/main.py:134 msgid "" "%s: too many files\n" "try %s --help for more information" msgstr "" -#: pysollib/main.py:156 +#: pysollib/main.py:138 msgid "" "%s: invalid file name\n" "try %s --help for more information" msgstr "" -#: pysollib/main.py:270 +#: pysollib/main.py:250 msgid "" "\n" "No games were found !!!\n" @@ -1315,567 +1314,567 @@ msgid "" "Please check your %s installation.\n" msgstr "" -#: pysollib/main.py:339 +#: pysollib/main.py:319 msgid "Welcome to %s" msgstr "" -#: pysollib/resource.py:193 +#: pysollib/resource.py:192 msgid "French type (52 cards)" msgstr "" -#: pysollib/resource.py:194 +#: pysollib/resource.py:193 msgid "Hanafuda type (48 cards)" msgstr "" -#: pysollib/resource.py:195 +#: pysollib/resource.py:194 msgid "Tarock type (78 cards)" msgstr "" -#: pysollib/resource.py:196 +#: pysollib/resource.py:195 msgid "Mahjongg type (42 tiles)" msgstr "" -#: pysollib/resource.py:197 +#: pysollib/resource.py:196 msgid "Hex A Deck type (68 cards)" msgstr "" -#: pysollib/resource.py:198 +#: pysollib/resource.py:197 msgid "Mughal Ganjifa type (96 cards)" msgstr "" -#: pysollib/resource.py:199 +#: pysollib/resource.py:198 msgid "Navagraha Ganjifa type (108 cards)" msgstr "" -#: pysollib/resource.py:200 +#: pysollib/resource.py:199 msgid "Dashavatara Ganjifa type (120 cards)" msgstr "" -#: pysollib/resource.py:201 +#: pysollib/resource.py:200 msgid "Trumps only type (variable cards)" msgstr "" -#: pysollib/resource.py:205 +#: pysollib/resource.py:204 msgid "French" msgstr "" -#: pysollib/resource.py:206 pysollib/resource.py:230 +#: pysollib/resource.py:205 pysollib/resource.py:229 msgid "Hanafuda" msgstr "" -#: pysollib/resource.py:207 pysollib/resource.py:246 +#: pysollib/resource.py:206 pysollib/resource.py:245 msgid "Tarock" msgstr "" -#: pysollib/resource.py:208 pysollib/resource.py:233 +#: pysollib/resource.py:207 pysollib/resource.py:232 msgid "Mahjongg" msgstr "" -#: pysollib/resource.py:209 pysollib/resource.py:231 +#: pysollib/resource.py:208 pysollib/resource.py:230 msgid "Hex A Deck" msgstr "" -#: pysollib/resource.py:210 +#: pysollib/resource.py:209 msgid "Mughal Ganjifa" msgstr "" -#: pysollib/resource.py:211 +#: pysollib/resource.py:210 msgid "Navagraha Ganjifa" msgstr "" -#: pysollib/resource.py:212 +#: pysollib/resource.py:211 msgid "Dashavatara Ganjifa" msgstr "" -#: pysollib/resource.py:213 +#: pysollib/resource.py:212 msgid "Trumps only" msgstr "" -#: pysollib/resource.py:218 +#: pysollib/resource.py:217 msgid "Adult" msgstr "" -#: pysollib/resource.py:219 +#: pysollib/resource.py:218 msgid "Animals" msgstr "" -#: pysollib/resource.py:220 +#: pysollib/resource.py:219 msgid "Anime" msgstr "" -#: pysollib/resource.py:221 +#: pysollib/resource.py:220 msgid "Art" msgstr "" -#: pysollib/resource.py:222 +#: pysollib/resource.py:221 msgid "Cartoons" msgstr "" -#: pysollib/resource.py:223 +#: pysollib/resource.py:222 msgid "Children" msgstr "" -#: pysollib/resource.py:224 +#: pysollib/resource.py:223 msgid "Classic look" msgstr "" -#: pysollib/resource.py:225 +#: pysollib/resource.py:224 msgid "Collectors" msgstr "" -#: pysollib/resource.py:226 +#: pysollib/resource.py:225 msgid "Computers" msgstr "" -#: pysollib/resource.py:227 +#: pysollib/resource.py:226 msgid "Engines" msgstr "" -#: pysollib/resource.py:228 +#: pysollib/resource.py:227 msgid "Fantasy" msgstr "" -#: pysollib/resource.py:229 +#: pysollib/resource.py:228 msgid "Ganjifa" msgstr "" -#: pysollib/resource.py:232 +#: pysollib/resource.py:231 msgid "Holiday" msgstr "" -#: pysollib/resource.py:234 +#: pysollib/resource.py:233 msgid "Movies" msgstr "" -#: pysollib/resource.py:235 +#: pysollib/resource.py:234 msgid "Matrix" msgstr "" -#: pysollib/resource.py:236 +#: pysollib/resource.py:235 msgid "Music" msgstr "" -#: pysollib/resource.py:237 +#: pysollib/resource.py:236 msgid "Nature" msgstr "" -#: pysollib/resource.py:238 +#: pysollib/resource.py:237 msgid "Operating Systems" msgstr "" -#: pysollib/resource.py:239 +#: pysollib/resource.py:238 msgid "People" msgstr "" -#: pysollib/resource.py:240 +#: pysollib/resource.py:239 msgid "Places" msgstr "" -#: pysollib/resource.py:241 +#: pysollib/resource.py:240 msgid "Plain" msgstr "" -#: pysollib/resource.py:242 +#: pysollib/resource.py:241 msgid "Products" msgstr "" -#: pysollib/resource.py:243 +#: pysollib/resource.py:242 msgid "Round cardsets" msgstr "" -#: pysollib/resource.py:244 +#: pysollib/resource.py:243 msgid "Science Fiction" msgstr "" -#: pysollib/resource.py:245 +#: pysollib/resource.py:244 msgid "Sports" msgstr "" -#: pysollib/resource.py:247 +#: pysollib/resource.py:246 msgid "Vehicels" msgstr "" -#: pysollib/resource.py:248 +#: pysollib/resource.py:247 msgid "Video Games" msgstr "" -#: pysollib/resource.py:253 +#: pysollib/resource.py:252 msgid "Australia" msgstr "" -#: pysollib/resource.py:254 +#: pysollib/resource.py:253 msgid "Austria" msgstr "" -#: pysollib/resource.py:255 +#: pysollib/resource.py:254 msgid "Belgium" msgstr "" -#: pysollib/resource.py:256 +#: pysollib/resource.py:255 msgid "Canada" msgstr "" -#: pysollib/resource.py:257 +#: pysollib/resource.py:256 msgid "China" msgstr "" -#: pysollib/resource.py:258 +#: pysollib/resource.py:257 msgid "Czech Republic" msgstr "" -#: pysollib/resource.py:259 +#: pysollib/resource.py:258 msgid "Denmark" msgstr "" -#: pysollib/resource.py:260 +#: pysollib/resource.py:259 msgid "England" msgstr "" -#: pysollib/resource.py:261 +#: pysollib/resource.py:260 msgid "France" msgstr "" -#: pysollib/resource.py:262 +#: pysollib/resource.py:261 msgid "Germany" msgstr "" -#: pysollib/resource.py:263 +#: pysollib/resource.py:262 msgid "Great Britain" msgstr "" -#: pysollib/resource.py:264 +#: pysollib/resource.py:263 msgid "Hungary" msgstr "" -#: pysollib/resource.py:265 +#: pysollib/resource.py:264 msgid "India" msgstr "" -#: pysollib/resource.py:266 +#: pysollib/resource.py:265 msgid "Italy" msgstr "" -#: pysollib/resource.py:267 +#: pysollib/resource.py:266 msgid "Japan" msgstr "" -#: pysollib/resource.py:268 +#: pysollib/resource.py:267 msgid "Netherlands" msgstr "" -#: pysollib/resource.py:269 +#: pysollib/resource.py:268 msgid "Russia" msgstr "" -#: pysollib/resource.py:270 +#: pysollib/resource.py:269 msgid "Spain" msgstr "" -#: pysollib/resource.py:271 +#: pysollib/resource.py:270 msgid "Sweden" msgstr "" -#: pysollib/resource.py:272 +#: pysollib/resource.py:271 msgid "Switzerland" msgstr "" -#: pysollib/resource.py:273 +#: pysollib/resource.py:272 msgid "USA" msgstr "" -#: pysollib/settings.py:64 data/glade-translations:29 +#: pysollib/settings.py:67 data/glade-translations:29 msgid "Top 10" msgstr "" -#: pysollib/stack.py:1405 +#: pysollib/stack.py:1384 msgid "Base card - %s." msgstr "" -#: pysollib/stack.py:1406 +#: pysollib/stack.py:1385 msgid "Empty row cannot be filled." msgstr "" -#: pysollib/stack.py:1407 +#: pysollib/stack.py:1386 msgid "any card" msgstr "" -#: pysollib/stack.py:1408 pysollib/util.py:80 +#: pysollib/stack.py:1387 pysollib/util.py:86 msgid "Jack" msgstr "" -#: pysollib/stack.py:1421 +#: pysollib/stack.py:1400 msgid "No cards" msgstr "" -#: pysollib/stack.py:1422 +#: pysollib/stack.py:1401 msgid "1 card" msgstr "" -#: pysollib/stack.py:1423 +#: pysollib/stack.py:1402 msgid " cards" msgstr "" -#: pysollib/stack.py:1635 pysollib/stack.py:1637 pysollib/stack.py:1673 +#: pysollib/stack.py:1614 pysollib/stack.py:1616 pysollib/stack.py:1652 msgid "Redeal" msgstr "" -#: pysollib/stack.py:1637 +#: pysollib/stack.py:1616 msgid "Stop" msgstr "" -#: pysollib/stack.py:1698 +#: pysollib/stack.py:1677 msgid "Variable redeals." msgstr "" -#: pysollib/stack.py:1699 +#: pysollib/stack.py:1678 msgid "Unlimited redeals." msgstr "" -#: pysollib/stack.py:1700 +#: pysollib/stack.py:1679 msgid "No redeals." msgstr "" -#: pysollib/stack.py:1701 +#: pysollib/stack.py:1680 msgid "One redeal." msgstr "" -#: pysollib/stack.py:1702 +#: pysollib/stack.py:1681 msgid " redeals." msgstr "" -#: pysollib/stack.py:1704 +#: pysollib/stack.py:1683 msgid "Talon." msgstr "" -#: pysollib/stack.py:1938 pysollib/stack.py:2389 +#: pysollib/stack.py:1917 pysollib/stack.py:2368 msgid "Reserve. No building." msgstr "" -#: pysollib/stack.py:1976 +#: pysollib/stack.py:1955 msgid "Foundation." msgstr "" -#: pysollib/stack.py:1992 +#: pysollib/stack.py:1971 msgid "Foundation. Build up by suit." msgstr "" -#: pysollib/stack.py:1993 +#: pysollib/stack.py:1972 msgid "Foundation. Build down by suit." msgstr "" -#: pysollib/stack.py:1994 pysollib/stack.py:2010 pysollib/stack.py:2032 +#: pysollib/stack.py:1973 pysollib/stack.py:1989 pysollib/stack.py:2011 msgid "Foundation. Build by same rank." msgstr "" -#: pysollib/stack.py:2009 +#: pysollib/stack.py:1988 msgid "Foundation. Build down regardless of suit." msgstr "" -#: pysollib/stack.py:2030 +#: pysollib/stack.py:2009 msgid "Foundation. Build up by alternate color." msgstr "" -#: pysollib/stack.py:2031 +#: pysollib/stack.py:2010 msgid "Foundation. Build down by alternate color." msgstr "" -#: pysollib/stack.py:2105 +#: pysollib/stack.py:2084 msgid "Tableau. Build up by alternate color." msgstr "" -#: pysollib/stack.py:2106 +#: pysollib/stack.py:2085 msgid "Tableau. Build down by alternate color." msgstr "" -#: pysollib/stack.py:2107 pysollib/stack.py:2117 pysollib/stack.py:2126 -#: pysollib/stack.py:2135 pysollib/stack.py:2145 pysollib/stack.py:2168 -#: pysollib/stack.py:2178 +#: pysollib/stack.py:2086 pysollib/stack.py:2096 pysollib/stack.py:2105 +#: pysollib/stack.py:2114 pysollib/stack.py:2124 pysollib/stack.py:2147 +#: pysollib/stack.py:2157 msgid "Tableau. Build by same rank." msgstr "" -#: pysollib/stack.py:2115 +#: pysollib/stack.py:2094 msgid "Tableau. Build up by color." msgstr "" -#: pysollib/stack.py:2124 +#: pysollib/stack.py:2103 msgid "Tableau. Build up by suit." msgstr "" -#: pysollib/stack.py:2125 +#: pysollib/stack.py:2104 msgid "Tableau. Build down by suit." msgstr "" -#: pysollib/stack.py:2133 +#: pysollib/stack.py:2112 msgid "Tableau. Build up regardless of suit." msgstr "" -#: pysollib/stack.py:2134 +#: pysollib/stack.py:2113 msgid "Tableau. Build down regardless of suit." msgstr "" -#: pysollib/stack.py:2143 +#: pysollib/stack.py:2122 msgid "Tableau. Build up in any suit but the same." msgstr "" -#: pysollib/stack.py:2144 +#: pysollib/stack.py:2123 msgid "Tableau. Build down in any suit but the same." msgstr "" -#: pysollib/stack.py:2166 +#: pysollib/stack.py:2145 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in alternate color " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2167 +#: pysollib/stack.py:2146 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in alternate " "color can be moved as a unit." msgstr "" -#: pysollib/stack.py:2176 +#: pysollib/stack.py:2155 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2177 +#: pysollib/stack.py:2156 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2199 +#: pysollib/stack.py:2178 msgid "" "Tableau. Build up by alternate color, can move any face-up cards regardless " "of sequence." msgstr "" -#: pysollib/stack.py:2200 +#: pysollib/stack.py:2179 msgid "" "Tableau. Build down by alternate color, can move any face-up cards " "regardless of sequence." msgstr "" -#: pysollib/stack.py:2201 pysollib/stack.py:2214 +#: pysollib/stack.py:2180 pysollib/stack.py:2193 msgid "" "Tableau. Build by same rank, can move any face-up cards regardless of " "sequence." msgstr "" -#: pysollib/stack.py:2212 +#: pysollib/stack.py:2191 msgid "" "Tableau. Build up by suit, can move any face-up cards regardless of sequence." msgstr "" -#: pysollib/stack.py:2213 +#: pysollib/stack.py:2192 msgid "" "Tableau. Build down by suit, can move any face-up cards regardless of " "sequence." msgstr "" -#: pysollib/stack.py:2246 +#: pysollib/stack.py:2225 msgid "Tableau. Build up or down by color." msgstr "" -#: pysollib/stack.py:2257 +#: pysollib/stack.py:2236 msgid "Tableau. Build up or down by alternate color." msgstr "" -#: pysollib/stack.py:2268 +#: pysollib/stack.py:2247 msgid "Tableau. Build up or down by suit." msgstr "" -#: pysollib/stack.py:2279 +#: pysollib/stack.py:2258 msgid "Tableau. Build up or down regardless of suit." msgstr "" -#: pysollib/stack.py:2290 +#: pysollib/stack.py:2269 msgid "Waste." msgstr "" -#: pysollib/stack.py:2390 +#: pysollib/stack.py:2369 msgid "Free cell." msgstr "" -#: pysollib/stats.py:53 pysollib/stats.py:119 +#: pysollib/stats.py:52 pysollib/stats.py:118 msgid "Game" msgstr "" -#: pysollib/stats.py:54 +#: pysollib/stats.py:53 msgid "Played" msgstr "" -#: pysollib/stats.py:55 pysollib/stats.py:158 +#: pysollib/stats.py:54 pysollib/stats.py:157 msgid "Won" msgstr "" -#: pysollib/stats.py:56 pysollib/stats.py:158 +#: pysollib/stats.py:55 pysollib/stats.py:157 msgid "Lost" msgstr "" -#: pysollib/stats.py:57 pysollib/tile/statusbar.py:157 -#: pysollib/tk/statusbar.py:156 data/glade-translations:25 +#: pysollib/stats.py:56 pysollib/tile/statusbar.py:147 +#: pysollib/tk/statusbar.py:158 data/glade-translations:25 msgid "Playing time" msgstr "" -#: pysollib/stats.py:58 data/glade-translations:26 +#: pysollib/stats.py:57 data/glade-translations:26 msgid "Moves" msgstr "" -#: pysollib/stats.py:59 +#: pysollib/stats.py:58 msgid "% won" msgstr "" -#: pysollib/stats.py:119 +#: pysollib/stats.py:118 msgid "Status" msgstr "" -#: pysollib/stats.py:119 pysollib/tile/statusbar.py:159 -#: pysollib/tile/tkstats.py:545 pysollib/tk/statusbar.py:158 -#: pysollib/tk/tkstats.py:666 +#: pysollib/stats.py:118 pysollib/tile/statusbar.py:149 +#: pysollib/tile/tkstats.py:552 pysollib/tk/statusbar.py:160 +#: pysollib/tk/tkstats.py:668 msgid "Game number" msgstr "" -#: pysollib/stats.py:119 pysollib/tile/tkstats.py:548 -#: pysollib/tk/tkstats.py:669 +#: pysollib/stats.py:118 pysollib/tile/tkstats.py:555 +#: pysollib/tk/tkstats.py:671 msgid "Started at" msgstr "" -#: pysollib/stats.py:143 +#: pysollib/stats.py:142 msgid "** UNKNOWN %d **" msgstr "" -#: pysollib/stats.py:151 +#: pysollib/stats.py:150 msgid "** ERROR **" msgstr "" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Loaded" msgstr "" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Not won" msgstr "" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Perfect" msgstr "" -#: pysollib/stats.py:205 pysollib/stats.py:236 pysollib/stats.py:242 +#: pysollib/stats.py:204 pysollib/stats.py:235 pysollib/stats.py:241 msgid "Demo" msgstr "" -#: pysollib/stats.py:216 pysollib/tile/tkstats.py:280 -#: pysollib/tk/tkstats.py:418 +#: pysollib/stats.py:215 pysollib/tile/tkstats.py:283 +#: pysollib/tk/tkstats.py:419 msgid "Total (%d out of %d games)" msgstr "" -#: pysollib/stats.py:237 +#: pysollib/stats.py:236 msgid "Full log for " msgstr "" -#: pysollib/stats.py:243 +#: pysollib/stats.py:242 msgid "Session log for " msgstr "" @@ -1885,7 +1884,7 @@ msgid "Text foreground:" msgstr "" #: pysollib/tile/colorsdialog.py:77 pysollib/tile/colorsdialog.py:95 -#: pysollib/tile/fontsdialog.py:186 pysollib/tk/colorsdialog.py:76 +#: pysollib/tile/fontsdialog.py:185 pysollib/tk/colorsdialog.py:76 #: pysollib/tk/colorsdialog.py:94 pysollib/tk/fontsdialog.py:186 #: data/glade-translations:49 data/glade-translations:50 #: data/glade-translations:51 data/glade-translations:52 @@ -1938,8 +1937,8 @@ msgstr "" msgid "Select color" msgstr "" -#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:438 -#: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:435 +#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:434 +#: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:431 msgid "Find card" msgstr "" @@ -1955,541 +1954,583 @@ msgstr "" msgid "Italic" msgstr "" -#: pysollib/tile/fontsdialog.py:168 pysollib/tk/fontsdialog.py:168 +#: pysollib/tile/fontsdialog.py:109 pysollib/tile/selectcardset.py:332 +#: pysollib/tk/selectcardset.py:341 +msgid "Size:" +msgstr "" + +#: pysollib/tile/fontsdialog.py:167 pysollib/tk/fontsdialog.py:168 #: data/glade-translations:58 msgid "HTML: " msgstr "" -#: pysollib/tile/fontsdialog.py:169 pysollib/tk/fontsdialog.py:169 +#: pysollib/tile/fontsdialog.py:168 pysollib/tk/fontsdialog.py:169 #: data/glade-translations:59 msgid "Small: " msgstr "" -#: pysollib/tile/fontsdialog.py:170 pysollib/tk/fontsdialog.py:170 +#: pysollib/tile/fontsdialog.py:169 pysollib/tk/fontsdialog.py:170 #: data/glade-translations:60 msgid "Fixed: " msgstr "" -#: pysollib/tile/fontsdialog.py:171 pysollib/tk/fontsdialog.py:171 +#: pysollib/tile/fontsdialog.py:170 pysollib/tk/fontsdialog.py:171 #: data/glade-translations:61 msgid "Tableau default: " msgstr "" -#: pysollib/tile/fontsdialog.py:172 pysollib/tk/fontsdialog.py:172 +#: pysollib/tile/fontsdialog.py:171 pysollib/tk/fontsdialog.py:172 #: data/glade-translations:62 msgid "Tableau fixed: " msgstr "" -#: pysollib/tile/fontsdialog.py:173 pysollib/tk/fontsdialog.py:173 +#: pysollib/tile/fontsdialog.py:172 pysollib/tk/fontsdialog.py:173 #: data/glade-translations:64 msgid "Tableau large: " msgstr "" -#: pysollib/tile/fontsdialog.py:174 pysollib/tk/fontsdialog.py:174 +#: pysollib/tile/fontsdialog.py:173 pysollib/tk/fontsdialog.py:174 #: data/glade-translations:63 msgid "Tableau small: " msgstr "" -#: pysollib/tile/fontsdialog.py:196 pysollib/tk/fontsdialog.py:196 +#: pysollib/tile/fontsdialog.py:195 pysollib/tk/fontsdialog.py:196 msgid "Select font" msgstr "" -#: pysollib/tile/menubar.py:77 pysollib/tk/menubar.py:75 +#: pysollib/tile/menubar.py:78 pysollib/tk/menubar.py:76 msgid "Style" msgstr "" -#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94 +#: pysollib/tile/menubar.py:86 pysollib/tk/menubar.py:85 msgid "Compound" msgstr "" -#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100 +#: pysollib/tile/menubar.py:92 pysollib/tk/menubar.py:91 msgid "Hide" msgstr "" -#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103 +#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94 msgid "Top" msgstr "" -#: pysollib/tile/menubar.py:107 pysollib/tk/menubar.py:106 +#: pysollib/tile/menubar.py:98 pysollib/tk/menubar.py:97 msgid "Bottom" msgstr "" -#: pysollib/tile/menubar.py:110 pysollib/tk/menubar.py:109 +#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100 msgid "Left" msgstr "" -#: pysollib/tile/menubar.py:113 pysollib/tk/menubar.py:112 +#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103 msgid "Right" msgstr "" -#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116 +#: pysollib/tile/menubar.py:108 pysollib/tk/menubar.py:107 msgid "Small icons" msgstr "" -#: pysollib/tile/menubar.py:120 pysollib/tk/menubar.py:119 +#: pysollib/tile/menubar.py:111 pysollib/tk/menubar.py:110 msgid "Large icons" msgstr "" -#: pysollib/tile/menubar.py:126 pysollib/tk/menubar.py:125 +#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116 msgid "Customize toolbar" msgstr "" -#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362 -msgid "&File" +#: pysollib/tile/menubar.py:357 pysollib/tk/menubar.py:354 +msgid "apple" msgstr "" -#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364 -msgid "R&ecent games" -msgstr "" - -#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366 -msgid "Select &random game" -msgstr "" - -#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:367 -msgid "&All games" -msgstr "" - -#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368 -msgid "Games played and &won" -msgstr "" - -#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369 -msgid "Games played and ¬ won" -msgstr "" - -#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370 -msgid "Games not &played" -msgstr "" - -#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:371 -msgid "Select game by nu&mber..." -msgstr "" - -#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373 -msgid "Fa&vorite games" -msgstr "" - -#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374 -msgid "A&dd to favorites" -msgstr "" - -#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:375 -msgid "R&emove from favorites" -msgstr "" - -#: pysollib/tile/menubar.py:380 pysollib/tk/menubar.py:377 -msgid "&Open..." -msgstr "" - -#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:378 -msgid "&Save" -msgstr "" - -#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:379 -msgid "Save &as..." -msgstr "" - -#: pysollib/tile/menubar.py:384 pysollib/tk/menubar.py:381 -msgid "&Hold and quit" -msgstr "" - -#: 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:394 pysollib/tk/menubar.py:391 -msgid "&Edit" -msgstr "" - -#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:392 -msgid "&Undo" -msgstr "" - -#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393 -msgid "&Redo" -msgstr "" - -#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:394 -msgid "Redo &all" -msgstr "" - -#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397 -msgid "&Set bookmark" -msgstr "" - -#: 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:404 pysollib/tk/menubar.py:401 -msgid "Go&to bookmark" -msgstr "" - -#: pysollib/tile/menubar.py:409 pysollib/tk/menubar.py:406 -msgid "&Clear bookmarks" -msgstr "" - -#: 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:414 pysollib/tk/menubar.py:411 -msgid "&Game" -msgstr "" - -#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:412 -msgid "&Deal cards" -msgstr "" - -#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413 -msgid "&Auto drop" -msgstr "" - -#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414 -msgid "&Pause" -msgstr "" - -#: pysollib/tile/menubar.py:420 pysollib/tk/menubar.py:417 -msgid "S&tatus..." -msgstr "" - -#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:418 -msgid "&Comments..." -msgstr "" - -#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420 -msgid "&Statistics" -msgstr "" - -#: 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:425 pysollib/tile/menubar.py:433 -#: pysollib/tk/menubar.py:422 pysollib/tk/menubar.py:430 -msgid "All games..." -msgstr "" - -#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424 -msgid "Session log..." -msgstr "" - -#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:425 -msgid "Full log..." -msgstr "" - -#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428 -msgid "D&emo statistics" -msgstr "" - -#: pysollib/tile/menubar.py:435 pysollib/tk/menubar.py:432 -msgid "&Assist" -msgstr "" - -#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433 -msgid "&Hint" -msgstr "" - -#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434 -msgid "Highlight p&iles" -msgstr "" - -#: pysollib/tile/menubar.py:440 pysollib/tk/menubar.py:437 -msgid "&Demo" -msgstr "" - -#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:438 -msgid "Demo (&all games)" -msgstr "" - -#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440 -msgid "Piles description" -msgstr "" - -#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444 -msgid "&Options" -msgstr "" - -#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445 -msgid "&Player options..." -msgstr "" - -#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:446 -msgid "&Automatic play" -msgstr "" - -#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447 -msgid "Auto &face up" -msgstr "" - -#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448 -msgid "A&uto drop" -msgstr "" - -#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449 -msgid "Auto &deal" -msgstr "" - -#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451 -msgid "&Quick play" -msgstr "" - -#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452 -msgid "Assist &level" -msgstr "" - -#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453 -msgid "Enable &undo" -msgstr "" - -#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454 -msgid "Enable &bookmarks" -msgstr "" - -#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455 -msgid "Enable &hint" -msgstr "" - -#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:456 -msgid "Enable highlight p&iles" -msgstr "" - -#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457 -msgid "Enable highlight &cards" -msgstr "" - -#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458 -msgid "Enable highlight same &rank" -msgstr "" - -#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:459 -msgid "Highlight &no matching" -msgstr "" - -#: pysollib/tile/menubar.py:464 pysollib/tk/menubar.py:461 -msgid "&Show removed tiles (in Mahjongg games)" -msgstr "" - -#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:462 -msgid "Show hint &arrow (in Shisen-Sho games)" -msgstr "" - -#: pysollib/tile/menubar.py:467 pysollib/tk/menubar.py:464 -msgid "&Sound..." -msgstr "" - -#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472 -msgid "Cards&et..." -msgstr "" - -#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473 -msgid "Table t&ile..." -msgstr "" - -#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475 -msgid "Card &background" -msgstr "" - -#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476 -msgid "Card &view" -msgstr "" - -#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477 -msgid "Card shado&w" -msgstr "" - -#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478 -msgid "Shade &legal moves" -msgstr "" - -#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479 -msgid "&Negative cards bottom" -msgstr "" - -#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480 -msgid "Shrink face-down cards" -msgstr "" - -#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481 -msgid "Shade &filled stacks" -msgstr "" - -#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482 -msgid "A&nimations" -msgstr "" - -#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483 -msgid "&None" -msgstr "" - -#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:484 -msgid "&Timer based" -msgstr "" - -#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485 -msgid "&Fast" -msgstr "" - -#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486 -msgid "&Slow" -msgstr "" - -#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487 -msgid "&Very slow" -msgstr "" - -#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488 -msgid "&Mouse" -msgstr "" - -#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489 -msgid "&Drag-and-Drop" -msgstr "" - -#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490 -msgid "&Point-and-Click" -msgstr "" - -#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:491 -msgid "&Sticky mouse" -msgstr "" - -#: pysollib/tile/menubar.py:496 pysollib/tk/menubar.py:493 -msgid "Use mouse for undo/redo" -msgstr "" - -#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495 -msgid "&Fonts..." -msgstr "" - -#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496 -msgid "&Colors..." -msgstr "" - -#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:497 -msgid "Time&outs..." -msgstr "" - -#: pysollib/tile/menubar.py:502 -msgid "Set t&heme" -msgstr "" - -#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:499 -msgid "&Toolbar" -msgstr "" - -#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:501 -msgid "Stat&usbar" -msgstr "" - -#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:502 -msgid "Show &statusbar" -msgstr "" - -#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:503 -msgid "Show &number of cards" -msgstr "" - -#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:504 -msgid "Show &help bar" -msgstr "" - -#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:505 -msgid "Save games &geometry" -msgstr "" - -#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:506 -msgid "&Demo logo" -msgstr "" - -#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:507 -msgid "Startup splash sc&reen" -msgstr "" - -#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:513 -msgid "&Help" -msgstr "" - -#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:514 -msgid "&Contents" -msgstr "" - -#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:515 -msgid "&How to play" -msgstr "" - -#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:516 -msgid "&Rules for this game" -msgstr "" - -#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:517 -msgid "&License terms" -msgstr "" - -#: pysollib/tile/menubar.py:525 pysollib/tk/menubar.py:520 +#: pysollib/tile/menubar.py:358 pysollib/tile/menubar.py:524 +#: pysollib/tk/menubar.py:355 pysollib/tk/menubar.py:520 msgid "&About " msgstr "" -#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:632 +#: pysollib/tile/menubar.py:360 pysollib/tk/menubar.py:357 +msgid "&File" +msgstr "" + +#: pysollib/tile/menubar.py:362 pysollib/tk/menubar.py:359 +msgid "R&ecent games" +msgstr "" + +#: pysollib/tile/menubar.py:364 pysollib/tk/menubar.py:361 +msgid "Select &random game" +msgstr "" + +#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362 +msgid "&All games" +msgstr "" + +#: pysollib/tile/menubar.py:366 pysollib/tk/menubar.py:363 +msgid "Games played and &won" +msgstr "" + +#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364 +msgid "Games played and ¬ won" +msgstr "" + +#: pysollib/tile/menubar.py:368 pysollib/tk/menubar.py:365 +msgid "Games not &played" +msgstr "" + +#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366 +msgid "Select game by nu&mber..." +msgstr "" + +#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368 +msgid "Fa&vorite games" +msgstr "" + +#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369 +msgid "A&dd to favorites" +msgstr "" + +#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370 +msgid "R&emove from favorites" +msgstr "" + +#: pysollib/tile/menubar.py:375 pysollib/tk/menubar.py:372 +msgid "&Open..." +msgstr "" + +#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373 +msgid "&Save" +msgstr "" + +#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374 +msgid "Save &as..." +msgstr "" + +#: pysollib/tile/menubar.py:379 pysollib/tk/menubar.py:376 +msgid "&Hold and quit" +msgstr "" + +#: pysollib/tile/menubar.py:385 pysollib/tile/selectgame.py:398 +#: pysollib/tk/menubar.py:382 pysollib/tk/selectgame.py:407 +msgid "&Select" +msgstr "" + +#: pysollib/tile/menubar.py:390 pysollib/tk/menubar.py:387 +msgid "&Edit" +msgstr "" + +#: pysollib/tile/menubar.py:391 pysollib/tk/menubar.py:388 +msgid "&Undo" +msgstr "" + +#: pysollib/tile/menubar.py:392 pysollib/tk/menubar.py:389 +msgid "&Redo" +msgstr "" + +#: pysollib/tile/menubar.py:393 pysollib/tk/menubar.py:390 +msgid "Redo &all" +msgstr "" + +#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393 +msgid "&Set bookmark" +msgstr "" + +#: pysollib/tile/menubar.py:398 pysollib/tile/menubar.py:402 +#: pysollib/tk/menubar.py:395 pysollib/tk/menubar.py:399 +msgid "Bookmark %d" +msgstr "" + +#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397 +msgid "Go&to bookmark" +msgstr "" + +#: pysollib/tile/menubar.py:405 pysollib/tk/menubar.py:402 +msgid "&Clear bookmarks" +msgstr "" + +#: pysollib/tile/menubar.py:408 pysollib/tile/toolbar.py:190 +#: pysollib/tk/menubar.py:405 pysollib/tk/toolbar.py:193 +msgid "Restart" +msgstr "" + +#: pysollib/tile/menubar.py:410 pysollib/tk/menubar.py:407 +msgid "&Game" +msgstr "" + +#: pysollib/tile/menubar.py:411 pysollib/tk/menubar.py:408 +msgid "&Deal cards" +msgstr "" + +#: pysollib/tile/menubar.py:412 pysollib/tk/menubar.py:409 +msgid "&Auto drop" +msgstr "" + +#: pysollib/tile/menubar.py:413 pysollib/tk/menubar.py:410 +msgid "&Pause" +msgstr "" + +#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413 +msgid "S&tatus..." +msgstr "" + +#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414 +msgid "&Comments..." +msgstr "" + +#: pysollib/tile/menubar.py:419 pysollib/tk/menubar.py:416 +msgid "&Statistics" +msgstr "" + +#: pysollib/tile/menubar.py:420 pysollib/tile/menubar.py:428 +#: pysollib/tk/menubar.py:417 pysollib/tk/menubar.py:425 +msgid "Current game..." +msgstr "" + +#: pysollib/tile/menubar.py:421 pysollib/tile/menubar.py:429 +#: pysollib/tk/menubar.py:418 pysollib/tk/menubar.py:426 +msgid "All games..." +msgstr "" + +#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420 +msgid "Session log..." +msgstr "" + +#: pysollib/tile/menubar.py:424 pysollib/tk/menubar.py:421 +msgid "Full log..." +msgstr "" + +#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424 +msgid "D&emo statistics" +msgstr "" + +#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428 +msgid "&Assist" +msgstr "" + +#: pysollib/tile/menubar.py:432 pysollib/tk/menubar.py:429 +msgid "&Hint" +msgstr "" + +#: pysollib/tile/menubar.py:433 pysollib/tk/menubar.py:430 +msgid "Highlight p&iles" +msgstr "" + +#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433 +msgid "&Demo" +msgstr "" + +#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434 +msgid "Demo (&all games)" +msgstr "" + +#: pysollib/tile/menubar.py:439 pysollib/tk/menubar.py:436 +msgid "Piles description" +msgstr "" + +#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440 +msgid "&Options" +msgstr "" + +#: pysollib/tile/menubar.py:444 pysollib/tk/menubar.py:441 +msgid "&Player options..." +msgstr "" + +#: pysollib/tile/menubar.py:445 pysollib/tk/menubar.py:442 +msgid "&Automatic play" +msgstr "" + +#: pysollib/tile/menubar.py:446 pysollib/tk/menubar.py:443 +msgid "Auto &face up" +msgstr "" + +#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444 +msgid "A&uto drop" +msgstr "" + +#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445 +msgid "Auto &deal" +msgstr "" + +#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447 +msgid "&Quick play" +msgstr "" + +#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448 +msgid "Assist &level" +msgstr "" + +#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449 +msgid "Enable &undo" +msgstr "" + +#: pysollib/tile/menubar.py:453 pysollib/tk/menubar.py:450 +msgid "Enable &bookmarks" +msgstr "" + +#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451 +msgid "Enable &hint" +msgstr "" + +#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452 +msgid "Enable highlight p&iles" +msgstr "" + +#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453 +msgid "Enable highlight &cards" +msgstr "" + +#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454 +msgid "Enable highlight same &rank" +msgstr "" + +#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455 +msgid "Highlight &no matching" +msgstr "" + +#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457 +msgid "&Show removed tiles (in Mahjongg games)" +msgstr "" + +#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458 +msgid "Show hint &arrow (in Shisen-Sho games)" +msgstr "" + +#: pysollib/tile/menubar.py:463 pysollib/tk/menubar.py:460 +msgid "&Sound..." +msgstr "" + +#: pysollib/tile/menubar.py:471 pysollib/tk/menubar.py:468 +msgid "Cards&et..." +msgstr "" + +#: pysollib/tile/menubar.py:472 pysollib/tk/menubar.py:469 +msgid "Table t&ile..." +msgstr "" + +#: pysollib/tile/menubar.py:474 pysollib/tk/menubar.py:471 +msgid "Card &background" +msgstr "" + +#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472 +msgid "Card &view" +msgstr "" + +#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473 +msgid "Card shado&w" +msgstr "" + +#: pysollib/tile/menubar.py:477 pysollib/tk/menubar.py:474 +msgid "Shade &legal moves" +msgstr "" + +#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475 +msgid "&Negative cards bottom" +msgstr "" + +#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476 +msgid "Shrink face-down cards" +msgstr "" + +#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477 +msgid "Shade &filled stacks" +msgstr "" + +#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478 +msgid "A&nimations" +msgstr "" + +#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479 +msgid "&None" +msgstr "" + +#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480 +msgid "&Timer based" +msgstr "" + +#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481 +msgid "&Fast" +msgstr "" + +#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482 +msgid "&Slow" +msgstr "" + +#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483 +msgid "&Very slow" +msgstr "" + +#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485 +msgid "&Redeal animation" +msgstr "" + +#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486 +msgid "&Winning animation" +msgstr "" + +#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487 +msgid "&Mouse" +msgstr "" + +#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488 +msgid "&Drag-and-Drop" +msgstr "" + +#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489 +msgid "&Point-and-Click" +msgstr "" + +#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490 +msgid "&Sticky mouse" +msgstr "" + +#: pysollib/tile/menubar.py:495 pysollib/tk/menubar.py:492 +msgid "Use mouse for undo/redo" +msgstr "" + +#: pysollib/tile/menubar.py:497 pysollib/tk/menubar.py:494 +msgid "&Fonts..." +msgstr "" + +#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495 +msgid "&Colors..." +msgstr "" + +#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496 +msgid "Time&outs..." +msgstr "" + +#: pysollib/tile/menubar.py:502 pysollib/tk/menubar.py:498 +msgid "&Toolbar" +msgstr "" + +#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:500 +msgid "Stat&usbar" +msgstr "" + +#: pysollib/tile/menubar.py:505 pysollib/tk/menubar.py:501 +msgid "Show &statusbar" +msgstr "" + +#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:502 +msgid "Show &number of cards" +msgstr "" + +#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:503 +msgid "Show &help bar" +msgstr "" + +#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:504 +msgid "Save games &geometry" +msgstr "" + +#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:505 +msgid "&Demo logo" +msgstr "" + +#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:506 +msgid "Startup splash sc&reen" +msgstr "" + +#: pysollib/tile/menubar.py:516 pysollib/tk/menubar.py:512 +msgid "&Help" +msgstr "" + +#: pysollib/tile/menubar.py:517 pysollib/tk/menubar.py:513 +msgid "&Contents" +msgstr "" + +#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:514 +msgid "&How to play" +msgstr "" + +#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:515 +msgid "&Rules for this game" +msgstr "" + +#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:516 +msgid "&License terms" +msgstr "" + +#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:633 msgid "All &games..." msgstr "" -#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:634 +#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:635 msgid "Playable pre&view..." msgstr "" -#: pysollib/tile/menubar.py:688 pysollib/tk/menubar.py:683 +#: pysollib/tile/menubar.py:690 pysollib/tk/menubar.py:686 msgid "&Mahjongg games" msgstr "" -#: pysollib/tile/menubar.py:726 pysollib/tk/menubar.py:721 +#: pysollib/tile/menubar.py:728 pysollib/tk/menubar.py:724 msgid "&Popular games" msgstr "" -#: pysollib/tile/menubar.py:734 pysollib/tk/menubar.py:729 +#: pysollib/tile/menubar.py:736 pysollib/tk/menubar.py:732 msgid "&French games" msgstr "" -#: pysollib/tile/menubar.py:741 pysollib/tk/menubar.py:736 +#: pysollib/tile/menubar.py:743 pysollib/tk/menubar.py:739 msgid "&Oriental games" msgstr "" -#: pysollib/tile/menubar.py:749 pysollib/tk/menubar.py:744 +#: pysollib/tile/menubar.py:751 pysollib/tk/menubar.py:747 msgid "&Special games" msgstr "" -#: pysollib/tile/menubar.py:755 pysollib/tk/menubar.py:750 +#: pysollib/tile/menubar.py:757 pysollib/tk/menubar.py:753 msgid "&All games by name" msgstr "" -#: pysollib/tile/menubar.py:1028 pysollib/tk/menubar.py:1023 +#: pysollib/tile/menubar.py:1030 pysollib/tk/menubar.py:1026 #: data/glade-translations:72 msgid "Sound settings" msgstr "" -#: pysollib/tile/menubar.py:1128 pysollib/tk/menubar.py:1127 +#: pysollib/tile/menubar.py:1138 pysollib/tk/menubar.py:1138 msgid "Select " msgstr "" -#: pysollib/tile/menubar.py:1175 pysollib/tk/menubar.py:1179 +#: pysollib/tile/menubar.py:1185 pysollib/tk/menubar.py:1190 msgid "Select table background" msgstr "" -#: pysollib/tile/menubar.py:1330 +#: pysollib/tile/menubar.py:1329 msgid "Change theme" msgstr "" -#: pysollib/tile/menubar.py:1331 +#: pysollib/tile/menubar.py:1330 msgid "" "This settings will take effect\n" "the next time you restart " msgstr "" +#: pysollib/tile/menubar.py:1338 +msgid "Set t&heme" +msgstr "" + +#: pysollib/tile/menubar.py:1344 +msgid "Default" +msgstr "" + +#: pysollib/tile/menubar.py:1345 +msgid "Classic" +msgstr "" + +#: pysollib/tile/menubar.py:1346 +msgid "Revitalized" +msgstr "" + +#: pysollib/tile/menubar.py:1347 +msgid "Windows native" +msgstr "" + +#: pysollib/tile/menubar.py:1348 +msgid "XP Native" +msgstr "" + +#: pysollib/tile/menubar.py:1349 +msgid "Aqua" +msgstr "" + #: pysollib/tile/playeroptionsdialog.py:72 #: pysollib/tk/playeroptionsdialog.py:112 msgid "" @@ -2563,12 +2604,12 @@ msgstr "" msgid "XLarge cardsets" msgstr "" -#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1124 +#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1135 msgid "&Info..." msgstr "" -#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1122 -#: pysollib/tk/menubar.py:1124 pysollib/tk/selectcardset.py:241 +#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1133 +#: pysollib/tk/menubar.py:1135 pysollib/tk/selectcardset.py:241 msgid "&Load" msgstr "" @@ -2576,7 +2617,7 @@ msgstr "" msgid "About cardset" msgstr "" -#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:354 +#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:355 #: pysollib/tk/selectcardset.py:336 pysollib/tk/selectgame.py:365 msgid "Type:" msgstr "" @@ -2593,10 +2634,6 @@ msgstr "" msgid "Year:" msgstr "" -#: pysollib/tile/selectcardset.py:332 pysollib/tk/selectcardset.py:341 -msgid "Size:" -msgstr "" - #: pysollib/tile/selectgame.py:101 pysollib/tk/selectgame.py:100 msgid "(no games)" msgstr "" @@ -2626,7 +2663,7 @@ msgid "by Compatibility" msgstr "" #: pysollib/tile/selectgame.py:153 pysollib/tk/selectgame.py:152 -msgid "New games in v." +msgid "New games in v. " msgstr "" #: pysollib/tile/selectgame.py:156 pysollib/tk/selectgame.py:155 @@ -2649,27 +2686,27 @@ msgstr "" msgid "by Skill Level" msgstr "" -#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:523 +#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:524 #: pysollib/tk/selectgame.py:170 pysollib/tk/selectgame.py:533 msgid "Luck only" msgstr "" -#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:524 +#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:525 #: pysollib/tk/selectgame.py:171 pysollib/tk/selectgame.py:534 msgid "Mostly luck" msgstr "" -#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:525 +#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:526 #: pysollib/tk/selectgame.py:172 pysollib/tk/selectgame.py:535 msgid "Balanced" msgstr "" -#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:526 +#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:527 #: pysollib/tk/selectgame.py:173 pysollib/tk/selectgame.py:536 msgid "Mostly skill" msgstr "" -#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:527 +#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:528 #: pysollib/tk/selectgame.py:174 pysollib/tk/selectgame.py:537 msgid "Skill only" msgstr "" @@ -2786,81 +2823,81 @@ msgstr "" msgid "Relaxed Variants" msgstr "" -#: pysollib/tile/selectgame.py:341 pysollib/tk/selectgame.py:349 +#: pysollib/tile/selectgame.py:342 pysollib/tk/selectgame.py:349 msgid "About game" msgstr "" -#: pysollib/tile/selectgame.py:351 pysollib/tk/selectgame.py:362 +#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:362 msgid "Name:" msgstr "" -#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:363 +#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:363 msgid "Alternate names:" msgstr "" -#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:364 +#: pysollib/tile/selectgame.py:354 pysollib/tk/selectgame.py:364 msgid "Category:" msgstr "" -#: pysollib/tile/selectgame.py:355 pysollib/tk/selectgame.py:366 +#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:366 msgid "Skill level:" msgstr "" -#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:367 +#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:367 msgid "Decks:" msgstr "" -#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:368 +#: pysollib/tile/selectgame.py:358 pysollib/tk/selectgame.py:368 msgid "Redeals:" msgstr "" -#: pysollib/tile/selectgame.py:359 pysollib/tk/selectgame.py:370 +#: pysollib/tile/selectgame.py:360 pysollib/tk/selectgame.py:370 msgid "Played:" msgstr "" -#: pysollib/tile/selectgame.py:360 pysollib/tile/tkstats.py:107 +#: pysollib/tile/selectgame.py:361 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:361 pysollib/tile/tkstats.py:108 +#: pysollib/tile/selectgame.py:362 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:362 pysollib/tile/tkstats.py:615 -#: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:736 +#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622 +#: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:738 #: data/glade-translations:18 msgid "Playing time:" msgstr "" -#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622 -#: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:743 +#: pysollib/tile/selectgame.py:364 pysollib/tile/tkstats.py:629 +#: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:745 #: data/glade-translations:19 msgid "Moves:" msgstr "" -#: pysollib/tile/selectgame.py:364 pysollib/tk/selectgame.py:375 +#: pysollib/tile/selectgame.py:365 pysollib/tk/selectgame.py:375 msgid "% won:" msgstr "" -#: pysollib/tile/selectgame.py:396 pysollib/tk/selectgame.py:407 +#: pysollib/tile/selectgame.py:397 pysollib/tk/selectgame.py:407 msgid "&Rules" msgstr "" -#: pysollib/tile/selectgame.py:476 pysollib/tk/selectgame.py:486 +#: pysollib/tile/selectgame.py:477 pysollib/tk/selectgame.py:486 msgid "Playable Preview - " msgstr "" -#: pysollib/tile/selectgame.py:530 pysollib/tk/selectgame.py:540 +#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:540 msgid "variable" msgstr "" -#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:541 +#: pysollib/tile/selectgame.py:532 pysollib/tk/selectgame.py:541 msgid "unlimited" msgstr "" @@ -2944,13 +2981,13 @@ msgstr "" msgid "No move" msgstr "" -#: pysollib/tile/soundoptionsdialog.py:94 pysollib/tile/toolbar.py:242 -#: pysollib/tk/soundoptionsdialog.py:92 pysollib/tk/toolbar.py:203 +#: pysollib/tile/soundoptionsdialog.py:94 pysollib/tile/toolbar.py:195 +#: pysollib/tk/soundoptionsdialog.py:92 pysollib/tk/toolbar.py:198 msgid "Undo" msgstr "" -#: pysollib/tile/soundoptionsdialog.py:95 pysollib/tile/toolbar.py:243 -#: pysollib/tk/soundoptionsdialog.py:93 pysollib/tk/toolbar.py:204 +#: pysollib/tile/soundoptionsdialog.py:95 pysollib/tile/toolbar.py:196 +#: pysollib/tk/soundoptionsdialog.py:93 pysollib/tk/toolbar.py:199 msgid "Redo" msgstr "" @@ -2993,8 +3030,7 @@ msgid "Music volume:" msgstr "" #: pysollib/tile/soundoptionsdialog.py:145 -#: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76 -msgid "Enable samles" +msgid "Enable samples" msgstr "" #: pysollib/tile/soundoptionsdialog.py:168 @@ -3014,11 +3050,11 @@ msgid "" "the next time you restart " msgstr "" -#: pysollib/tile/statusbar.py:158 pysollib/tk/statusbar.py:157 +#: pysollib/tile/statusbar.py:148 pysollib/tk/statusbar.py:159 msgid "Moves/Total moves" msgstr "" -#: pysollib/tile/statusbar.py:160 pysollib/tk/statusbar.py:159 +#: pysollib/tile/statusbar.py:150 pysollib/tk/statusbar.py:161 msgid "Games played: won/lost" msgstr "" @@ -3047,19 +3083,19 @@ msgstr "" msgid "Highlight same rank:" msgstr "" -#: pysollib/tile/tkconst.py:105 pysollib/tk/tkconst.py:103 +#: pysollib/tile/tkconst.py:109 pysollib/tk/tkconst.py:107 msgid "Icons only" msgstr "" -#: pysollib/tile/tkconst.py:106 pysollib/tk/tkconst.py:104 +#: pysollib/tile/tkconst.py:110 pysollib/tk/tkconst.py:108 msgid "Text below icons" msgstr "" -#: pysollib/tile/tkconst.py:107 pysollib/tk/tkconst.py:105 +#: pysollib/tile/tkconst.py:111 pysollib/tk/tkconst.py:109 msgid "Text beside icons" msgstr "" -#: pysollib/tile/tkconst.py:108 pysollib/tk/tkconst.py:106 +#: pysollib/tile/tkconst.py:112 pysollib/tk/tkconst.py:110 msgid "Text only" msgstr "" @@ -3114,244 +3150,232 @@ msgstr "" msgid "Total:" msgstr "" -#: pysollib/tile/tkstats.py:201 pysollib/tk/tkstats.py:278 +#: pysollib/tile/tkstats.py:204 pysollib/tk/tkstats.py:278 msgid "No games" msgstr "" -#: pysollib/tile/tkstats.py:212 pysollib/tk/tkstats.py:289 +#: pysollib/tile/tkstats.py:215 pysollib/tk/tkstats.py:289 msgid "&All games..." msgstr "" -#: pysollib/tile/tkstats.py:214 pysollib/tk/tkstats.py:291 +#: pysollib/tile/tkstats.py:217 pysollib/tk/tkstats.py:291 msgid "&Reset..." msgstr "" -#: pysollib/tile/tkstats.py:380 +#: pysollib/tile/tkstats.py:383 msgid "&Play this game" msgstr "" -#: pysollib/tile/tkstats.py:382 pysollib/tile/tkstats.py:451 -#: pysollib/tile/tkstats.py:474 pysollib/tk/tkstats.py:513 -#: pysollib/tk/tkstats.py:579 pysollib/tk/tkstats.py:594 +#: pysollib/tile/tkstats.py:385 pysollib/tile/tkstats.py:458 +#: pysollib/tile/tkstats.py:481 pysollib/tk/tkstats.py:515 +#: pysollib/tk/tkstats.py:581 pysollib/tk/tkstats.py:596 msgid "&Save to file" msgstr "" -#: pysollib/tile/tkstats.py:383 pysollib/tk/tkstats.py:514 +#: pysollib/tile/tkstats.py:386 pysollib/tk/tkstats.py:516 msgid "&Reset all..." msgstr "" -#: pysollib/tile/tkstats.py:450 pysollib/tk/tkstats.py:579 +#: pysollib/tile/tkstats.py:457 pysollib/tk/tkstats.py:581 msgid "Session &log..." msgstr "" -#: pysollib/tile/tkstats.py:473 pysollib/tk/tkstats.py:594 +#: pysollib/tile/tkstats.py:480 pysollib/tk/tkstats.py:596 msgid "&Full log..." msgstr "" -#: pysollib/tile/tkstats.py:489 pysollib/tk/tkstats.py:609 +#: pysollib/tile/tkstats.py:496 pysollib/tk/tkstats.py:611 msgid "Highlight piles: " msgstr "" -#: pysollib/tile/tkstats.py:490 pysollib/tk/tkstats.py:610 +#: pysollib/tile/tkstats.py:497 pysollib/tk/tkstats.py:612 msgid "Highlight cards: " msgstr "" -#: pysollib/tile/tkstats.py:491 pysollib/tk/tkstats.py:611 +#: pysollib/tile/tkstats.py:498 pysollib/tk/tkstats.py:613 msgid "Highlight same rank: " msgstr "" -#: pysollib/tile/tkstats.py:494 pysollib/tk/tkstats.py:614 +#: pysollib/tile/tkstats.py:501 pysollib/tk/tkstats.py:616 msgid "" "\n" "Redeals: " msgstr "" -#: pysollib/tile/tkstats.py:495 pysollib/tk/tkstats.py:615 +#: pysollib/tile/tkstats.py:502 pysollib/tk/tkstats.py:617 msgid "" "\n" "Cards in Talon: " msgstr "" -#: pysollib/tile/tkstats.py:497 pysollib/tk/tkstats.py:617 +#: pysollib/tile/tkstats.py:504 pysollib/tk/tkstats.py:619 msgid "" "\n" "Cards in Waste: " msgstr "" -#: pysollib/tile/tkstats.py:499 pysollib/tk/tkstats.py:619 +#: pysollib/tile/tkstats.py:506 pysollib/tk/tkstats.py:621 msgid "" "\n" "Cards in Foundations: " msgstr "" -#: pysollib/tile/tkstats.py:502 pysollib/tk/tkstats.py:622 +#: pysollib/tile/tkstats.py:509 pysollib/tk/tkstats.py:624 msgid "Game status" msgstr "" -#: pysollib/tile/tkstats.py:505 pysollib/tk/tkstats.py:625 +#: pysollib/tile/tkstats.py:512 pysollib/tk/tkstats.py:627 msgid "Playing time: " msgstr "" -#: pysollib/tile/tkstats.py:506 pysollib/tk/tkstats.py:626 +#: pysollib/tile/tkstats.py:513 pysollib/tk/tkstats.py:628 msgid "Started at: " msgstr "" -#: pysollib/tile/tkstats.py:507 pysollib/tk/tkstats.py:627 +#: pysollib/tile/tkstats.py:514 pysollib/tk/tkstats.py:629 msgid "Moves: " msgstr "" -#: pysollib/tile/tkstats.py:508 pysollib/tk/tkstats.py:628 +#: pysollib/tile/tkstats.py:515 pysollib/tk/tkstats.py:630 msgid "Undo moves: " msgstr "" -#: pysollib/tile/tkstats.py:509 pysollib/tk/tkstats.py:629 +#: pysollib/tile/tkstats.py:516 pysollib/tk/tkstats.py:631 msgid "Bookmark moves: " msgstr "" -#: pysollib/tile/tkstats.py:510 pysollib/tk/tkstats.py:630 +#: pysollib/tile/tkstats.py:517 pysollib/tk/tkstats.py:632 msgid "Demo moves: " msgstr "" -#: pysollib/tile/tkstats.py:511 pysollib/tk/tkstats.py:631 +#: pysollib/tile/tkstats.py:518 pysollib/tk/tkstats.py:633 msgid "Total player moves: " msgstr "" -#: pysollib/tile/tkstats.py:512 pysollib/tk/tkstats.py:632 +#: pysollib/tile/tkstats.py:519 pysollib/tk/tkstats.py:634 msgid "Total moves in this game: " msgstr "" -#: pysollib/tile/tkstats.py:513 pysollib/tk/tkstats.py:633 +#: pysollib/tile/tkstats.py:520 pysollib/tk/tkstats.py:635 msgid "Hints: " msgstr "" -#: pysollib/tile/tkstats.py:517 pysollib/tk/tkstats.py:637 +#: pysollib/tile/tkstats.py:524 pysollib/tk/tkstats.py:639 msgid "&Statistics..." msgstr "" -#: pysollib/tile/tkstats.py:542 pysollib/tk/tkstats.py:663 +#: pysollib/tile/tkstats.py:549 pysollib/tk/tkstats.py:665 msgid "N" msgstr "" -#: pysollib/tile/tkstats.py:551 pysollib/tk/tkstats.py:672 +#: pysollib/tile/tkstats.py:558 pysollib/tk/tkstats.py:674 msgid "Result" msgstr "" -#: pysollib/tile/tkstats.py:607 pysollib/tk/tkstats.py:728 +#: pysollib/tile/tkstats.py:614 pysollib/tk/tkstats.py:730 #: data/glade-translations:21 msgid "Minimum" msgstr "" -#: pysollib/tile/tkstats.py:608 pysollib/tk/tkstats.py:729 +#: pysollib/tile/tkstats.py:615 pysollib/tk/tkstats.py:731 #: data/glade-translations:22 msgid "Maximum" msgstr "" -#: pysollib/tile/tkstats.py:609 pysollib/tk/tkstats.py:730 +#: pysollib/tile/tkstats.py:616 pysollib/tk/tkstats.py:732 #: data/glade-translations:23 msgid "Average" msgstr "" -#: pysollib/tile/tkstats.py:629 pysollib/tk/tkstats.py:750 +#: pysollib/tile/tkstats.py:636 pysollib/tk/tkstats.py:752 #: data/glade-translations:20 msgid "Total moves:" msgstr "" -#: pysollib/tile/tkstats.py:660 pysollib/tk/tkstats.py:781 +#: pysollib/tile/tkstats.py:667 pysollib/tk/tkstats.py:783 msgid "No TOP for this game" msgstr "" -#: pysollib/tile/toolbar.py:236 pysollib/tk/toolbar.py:197 +#: pysollib/tile/toolbar.py:189 pysollib/tk/toolbar.py:192 msgid "New" msgstr "" -#: pysollib/tile/toolbar.py:237 pysollib/tk/toolbar.py:198 +#: pysollib/tile/toolbar.py:190 pysollib/tk/toolbar.py:193 msgid "" "Restart the\n" "current game" msgstr "" -#: pysollib/tile/toolbar.py:239 pysollib/tk/toolbar.py:200 +#: pysollib/tile/toolbar.py:192 pysollib/tk/toolbar.py:195 msgid "Open" msgstr "" -#: pysollib/tile/toolbar.py:239 pysollib/tk/toolbar.py:200 +#: pysollib/tile/toolbar.py:192 pysollib/tk/toolbar.py:195 msgid "" "Open a\n" "saved game" msgstr "" -#: pysollib/tile/toolbar.py:240 pysollib/tk/toolbar.py:201 +#: pysollib/tile/toolbar.py:193 pysollib/tk/toolbar.py:196 msgid "Save" msgstr "" -#: pysollib/tile/toolbar.py:240 pysollib/tk/toolbar.py:201 +#: pysollib/tile/toolbar.py:193 pysollib/tk/toolbar.py:196 msgid "Save game" msgstr "" -#: pysollib/tile/toolbar.py:242 pysollib/tk/toolbar.py:203 +#: pysollib/tile/toolbar.py:195 pysollib/tk/toolbar.py:198 msgid "Undo last move" msgstr "" -#: pysollib/tile/toolbar.py:243 pysollib/tk/toolbar.py:204 +#: pysollib/tile/toolbar.py:196 pysollib/tk/toolbar.py:199 msgid "Redo last move" msgstr "" -#: pysollib/tile/toolbar.py:244 pysollib/tk/toolbar.py:205 +#: pysollib/tile/toolbar.py:197 pysollib/tk/toolbar.py:200 msgid "Auto drop cards" msgstr "" -#: pysollib/tile/toolbar.py:244 pysollib/tk/toolbar.py:205 +#: pysollib/tile/toolbar.py:197 pysollib/tk/toolbar.py:200 msgid "Autodrop" msgstr "" -#: pysollib/tile/toolbar.py:245 pysollib/tk/toolbar.py:206 +#: pysollib/tile/toolbar.py:198 pysollib/tk/toolbar.py:201 msgid "Pause" msgstr "" -#: pysollib/tile/toolbar.py:245 pysollib/tk/toolbar.py:206 +#: pysollib/tile/toolbar.py:198 pysollib/tk/toolbar.py:201 msgid "Pause game" msgstr "" -#: pysollib/tile/toolbar.py:247 pysollib/tk/toolbar.py:208 +#: pysollib/tile/toolbar.py:200 pysollib/tk/toolbar.py:203 msgid "View statistics" msgstr "" -#: pysollib/tile/toolbar.py:248 pysollib/tk/toolbar.py:209 +#: pysollib/tile/toolbar.py:201 pysollib/tk/toolbar.py:204 msgid "Rules" msgstr "" -#: pysollib/tile/toolbar.py:248 pysollib/tk/toolbar.py:209 +#: pysollib/tile/toolbar.py:201 pysollib/tk/toolbar.py:204 msgid "Rules for this game" msgstr "" -#: pysollib/tile/toolbar.py:250 pysollib/tk/toolbar.py:211 +#: pysollib/tile/toolbar.py:203 pysollib/tk/toolbar.py:206 msgid "Quit" msgstr "" -#: pysollib/tile/toolbar.py:265 pysollib/tk/toolbar.py:225 +#: pysollib/tile/toolbar.py:217 pysollib/tk/toolbar.py:220 msgid "Player" msgstr "" -#: pysollib/tile/toolbar.py:266 pysollib/tk/toolbar.py:226 +#: pysollib/tile/toolbar.py:218 pysollib/tk/toolbar.py:221 msgid "Player options" msgstr "" -#: pysollib/tile/toolbar.py:485 pysollib/tk/toolbar.py:466 +#: pysollib/tile/toolbar.py:390 pysollib/tk/toolbar.py:431 msgid "Toolbar" msgstr "" -#: pysollib/tk/menubar.py:84 -msgid "Relief" -msgstr "" - -#: pysollib/tk/menubar.py:85 -msgid "Flat" -msgstr "" - -#: pysollib/tk/menubar.py:89 -msgid "Raised" -msgstr "" - #: pysollib/tk/playeroptionsdialog.py:120 msgid "Choose..." msgstr "" @@ -3360,31 +3384,35 @@ msgstr "" msgid "Select name" msgstr "" -#: pysollib/util.py:75 +#: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76 +msgid "Enable samles" +msgstr "" + +#: pysollib/util.py:81 msgid "Club" msgstr "" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Diamond" msgstr "" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Heart" msgstr "" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Spade" msgstr "" -#: pysollib/util.py:76 +#: pysollib/util.py:82 msgid "black" msgstr "" -#: pysollib/util.py:76 +#: pysollib/util.py:82 msgid "red" msgstr "" -#: pysollib/util.py:101 +#: pysollib/util.py:107 msgid "cardset" msgstr "" diff --git a/po/ru_games.po b/po/ru_games.po index e2ef3e0c..a6748b1c 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 Dec 7 15:25:59 2006\n" -"PO-Revision-Date: 2006-12-07 15:51+0300\n" +"POT-Creation-Date: Fri Jan 12 13:34:09 2007\n" +"PO-Revision-Date: 2007-01-13 20:30+0300\n" "Last-Translator: Скоморох \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -256,6 +256,9 @@ msgstr "Бельведер" msgid "Betsy Ross" msgstr "Бетси Росс" +msgid "Big Ben" +msgstr "Большой Бен" + msgid "Big Bertha" msgstr "Большая Берта" @@ -428,6 +431,9 @@ msgstr "Клоп" msgid "Busy Aces" msgstr "Занятые тузы" +msgid "Busy Cards" +msgstr "Занятые карты" + msgid "Butterfly" msgstr "Бабочка" @@ -440,6 +446,9 @@ msgstr "Вычисление" msgid "Camelot" msgstr "Камелот" +msgid "Can Can" +msgstr "Канкан" + msgid "Canfield" msgstr "Кенфилд" @@ -573,6 +582,9 @@ msgstr "Цитадель" msgid "Clink" msgstr "Застенок" +msgid "Clock" +msgstr "Часы" + msgid "Clover Leaf" msgstr "Лепесток клевера" @@ -810,6 +822,9 @@ msgstr "Двойной Клондайк" msgid "Double Klondike by Threes" msgstr "Двойной Клондайк по три" +msgid "Double Line" +msgstr "Двойной ряд" + msgid "Double Mahjongg Big Castle" msgstr "Двойной Маджонг Большой замок" @@ -837,6 +852,9 @@ msgstr "Двойной Маджонг Два квадрата" msgid "Double Measure" msgstr "Двойная Мера" +msgid "Double Pyramid" +msgstr "Двойная пирамида" + msgid "Double Rail" msgstr "Двойные рельсы" @@ -1155,8 +1173,11 @@ msgstr "Четыре кучи" msgid "Four Winds" msgstr "Четыре ветра" +msgid "Four by Four" +msgstr "Четыре по четыре" + msgid "Foursome" -msgstr "Четвёрки" +msgstr "По четыре" msgid "Fourteen" msgstr "Четырнадцать" @@ -1373,6 +1394,9 @@ msgstr "Заяц" msgid "Harvestman" msgstr "Сенокосец" +msgid "Hawaiian" +msgstr "Гавайский" + msgid "Hayagriva" msgstr "" @@ -1389,7 +1413,7 @@ msgid "Helios" msgstr "Гелиос" msgid "Hemispheres" -msgstr "" +msgstr "Полушария" msgid "Hex A Klon" msgstr "Шестнадцатиричный Клондайк" @@ -2663,6 +2687,9 @@ msgstr "Сова" msgid "Ox" msgstr "Бык" +msgid "Paganini" +msgstr "Паганини" + #, fuzzy msgid "Pagat" msgstr "Пагода" @@ -2955,21 +2982,6 @@ msgstr "Роберт" msgid "Robin" msgstr "Робин" -msgid "Rock Hopper" -msgstr "" - -msgid "Rock Hopper 6x6" -msgstr "" - -msgid "Rock Hopper 7x7" -msgstr "" - -msgid "Rock Hopper Cross 1" -msgstr "" - -msgid "Rock Hopper Cross 2" -msgstr "" - msgid "Rocket" msgstr "Ракета" @@ -3037,6 +3049,9 @@ msgstr "Русский солитер" msgid "Russian Spider" msgstr "Русский паук" +msgid "S Patience" +msgstr "S-пасьянс" + msgid "Salic Law" msgstr "Салический закон" @@ -3602,6 +3617,9 @@ msgstr "Древо жизни" msgid "Trefoil" msgstr "Клевер" +msgid "Triangle" +msgstr "Треугольник" + msgid "Trika" msgstr "" @@ -3687,6 +3705,9 @@ msgstr "Объединённый квадрата" msgid "Unlimited" msgstr "Неограниченный" +msgid "Up and Down" +msgstr "Вверх и вниз" + msgid "Usk" msgstr "" diff --git a/po/ru_pysol.po b/po/ru_pysol.po index 5df263e2..a3430288 100644 --- a/po/ru_pysol.po +++ b/po/ru_pysol.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: PySol 0.0.1\n" -"POT-Creation-Date: Thu Dec 7 15:27:04 2006\n" -"PO-Revision-Date: 2006-11-30 16:36+0300\n" +"POT-Creation-Date: Fri Jan 12 13:35:13 2007\n" +"PO-Revision-Date: 2007-01-12 13:44+0300\n" "Last-Translator: Скоморох \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -14,34 +14,34 @@ msgstr "" "Content-Transfer-Encoding: utf-8\n" "Generated-By: pygettext.py 1.5\n" -#: pysollib/actions.py:259 pysollib/tile/toolbar.py:236 -#: pysollib/tk/toolbar.py:197 +#: pysollib/actions.py:257 pysollib/tile/toolbar.py:189 +#: pysollib/tk/toolbar.py:192 msgid "New game" msgstr "Новая игра" -#: pysollib/actions.py:272 pysollib/tile/menubar.py:820 -#: pysollib/tile/menubar.py:834 pysollib/tk/menubar.py:815 -#: pysollib/tk/menubar.py:829 +#: pysollib/actions.py:270 pysollib/tile/menubar.py:822 +#: pysollib/tile/menubar.py:836 pysollib/tk/menubar.py:818 +#: pysollib/tk/menubar.py:832 msgid "Select game" msgstr "Выбрать игру" -#: pysollib/actions.py:286 +#: pysollib/actions.py:284 msgid "Invalid game number" msgstr "Неправильный номер игры" -#: pysollib/actions.py:287 +#: pysollib/actions.py:285 msgid "Invalid game number\n" msgstr "Неправильный номер игры\n" -#: pysollib/actions.py:304 +#: pysollib/actions.py:302 msgid "Select next game number" msgstr "Выберите номер следующей игры" -#: pysollib/actions.py:313 pysollib/actions.py:323 +#: pysollib/actions.py:311 pysollib/actions.py:321 msgid "Select new game number" msgstr "Выберите номер новой игры" -#: pysollib/actions.py:314 +#: pysollib/actions.py:312 msgid "" "\n" "\n" @@ -51,23 +51,23 @@ msgstr "" "\n" "Введите номер новой игры" -#: pysollib/actions.py:315 +#: pysollib/actions.py:313 msgid "&Next number" msgstr "&Следующий номер" -#: pysollib/actions.py:315 pysollib/app.py:881 pysollib/app.py:1164 -#: pysollib/app.py:1176 pysollib/game.py:933 pysollib/game.py:1865 +#: pysollib/actions.py:313 pysollib/app.py:886 pysollib/app.py:1169 +#: pysollib/app.py:1181 pysollib/game.py:950 pysollib/game.py:2048 #: 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:1335 -#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:388 +#: pysollib/tile/fontsdialog.py:144 pysollib/tile/fontsdialog.py:204 +#: pysollib/tile/gameinfodialog.py:155 pysollib/tile/menubar.py:1334 +#: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:387 #: 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 -#: pysollib/tile/tkstats.py:587 pysollib/tile/tkstats.py:671 -#: pysollib/tile/tkwidget.py:146 pysollib/tile/tkwidget.py:319 +#: pysollib/tile/tkhtml.py:501 pysollib/tile/tkstats.py:214 +#: pysollib/tile/tkstats.py:384 pysollib/tile/tkstats.py:457 +#: pysollib/tile/tkstats.py:480 pysollib/tile/tkstats.py:523 +#: pysollib/tile/tkstats.py:594 pysollib/tile/tkstats.py:678 +#: pysollib/tile/tkwidget.py:154 pysollib/tile/tkwidget.py:329 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205 #: pysollib/tk/gameinfodialog.py:155 pysollib/tk/playeroptionsdialog.py:85 @@ -75,26 +75,26 @@ msgstr "&Следующий номер" #: pysollib/tk/selectcardset.py:397 pysollib/tk/selecttile.py:159 #: pysollib/tk/soundoptionsdialog.py:170 pysollib/tk/soundoptionsdialog.py:211 #: pysollib/tk/timeoutsdialog.py:92 pysollib/tk/tkhtml.py:500 -#: pysollib/tk/tkstats.py:288 pysollib/tk/tkstats.py:512 -#: pysollib/tk/tkstats.py:579 pysollib/tk/tkstats.py:594 -#: pysollib/tk/tkstats.py:636 pysollib/tk/tkstats.py:708 -#: pysollib/tk/tkstats.py:792 pysollib/tk/tkwidget.py:159 +#: pysollib/tk/tkstats.py:288 pysollib/tk/tkstats.py:514 +#: pysollib/tk/tkstats.py:581 pysollib/tk/tkstats.py:596 +#: pysollib/tk/tkstats.py:638 pysollib/tk/tkstats.py:710 +#: pysollib/tk/tkstats.py:794 pysollib/tk/tkwidget.py:160 #: pysollib/tk/tkwidget.py:324 msgid "&OK" msgstr "&ОК" -#: pysollib/actions.py:315 pysollib/app.py:882 pysollib/app.py:1176 -#: pysollib/game.py:933 pysollib/game.py:1316 pysollib/game.py:1331 -#: pysollib/game.py:1338 pysollib/game.py:1344 +#: pysollib/actions.py:313 pysollib/app.py:887 pysollib/app.py:1181 +#: pysollib/game.py:950 pysollib/game.py:1502 pysollib/game.py:1518 +#: pysollib/game.py:1525 pysollib/game.py:1531 #: pysollib/tile/colorsdialog.py:123 pysollib/tile/edittextdialog.py:83 -#: pysollib/tile/fontsdialog.py:145 pysollib/tile/fontsdialog.py:205 +#: pysollib/tile/fontsdialog.py:144 pysollib/tile/fontsdialog.py:204 #: pysollib/tile/playeroptionsdialog.py:111 pysollib/tile/selectcardset.py:237 -#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:397 +#: pysollib/tile/selectgame.py:267 pysollib/tile/selectgame.py:398 #: pysollib/tile/selecttile.py:161 pysollib/tile/soundoptionsdialog.py:168 -#: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:319 +#: pysollib/tile/timeoutsdialog.py:94 pysollib/tile/tkwidget.py:329 #: pysollib/tk/colorsdialog.py:122 pysollib/tk/edittextdialog.py:82 #: pysollib/tk/fontsdialog.py:143 pysollib/tk/fontsdialog.py:205 -#: pysollib/tk/menubar.py:1122 pysollib/tk/menubar.py:1124 +#: pysollib/tk/menubar.py:1133 pysollib/tk/menubar.py:1135 #: pysollib/tk/playeroptionsdialog.py:85 #: pysollib/tk/playeroptionsdialog.py:160 pysollib/tk/selectcardset.py:241 #: pysollib/tk/selectgame.py:266 pysollib/tk/selectgame.py:407 @@ -103,36 +103,36 @@ msgstr "&ОК" msgid "&Cancel" msgstr "От&мена" -#: pysollib/actions.py:331 +#: pysollib/actions.py:329 msgid "Select random game" msgstr "Выбор случайной игры" -#: pysollib/actions.py:367 +#: pysollib/actions.py:365 msgid "Select next game" msgstr "Выбрать следующую игру" -#: pysollib/actions.py:400 pysollib/tile/toolbar.py:250 -#: pysollib/tk/toolbar.py:211 +#: pysollib/actions.py:398 pysollib/tile/toolbar.py:203 +#: pysollib/tk/toolbar.py:206 msgid "Quit " msgstr "Выйти из " -#: pysollib/actions.py:451 +#: pysollib/actions.py:449 msgid "Clear bookmarks" msgstr "Удалить закладки" -#: pysollib/actions.py:452 +#: pysollib/actions.py:450 msgid "Clear all bookmarks ?" msgstr "Удалить все закладки?" -#: pysollib/actions.py:462 +#: pysollib/actions.py:460 msgid "Restart game" msgstr "Начать игру с начала" -#: pysollib/actions.py:463 +#: pysollib/actions.py:461 msgid "Restart this game ?" msgstr "Начать игру с начала?" -#: pysollib/actions.py:504 +#: pysollib/actions.py:502 msgid "" "Comments for %s:\n" "\n" @@ -140,19 +140,19 @@ msgstr "" "Комментарий для %s:\n" "\n" -#: pysollib/actions.py:506 +#: pysollib/actions.py:504 msgid "Comments for " msgstr "Комментарий для " -#: pysollib/actions.py:524 pysollib/actions.py:552 +#: pysollib/actions.py:522 pysollib/actions.py:550 msgid "Error while writing to file" msgstr "Ошибка при записи в файл" -#: pysollib/actions.py:527 pysollib/actions.py:555 +#: pysollib/actions.py:525 pysollib/actions.py:553 msgid " Info" msgstr " Информация" -#: pysollib/actions.py:528 +#: pysollib/actions.py:526 msgid "" "Comments were appended to\n" "\n" @@ -160,15 +160,15 @@ msgstr "" "Комментарий добавлен в файл\n" "\n" -#: pysollib/actions.py:539 +#: pysollib/actions.py:537 msgid "Demo statistics" msgstr "Статистика демо" -#: pysollib/actions.py:542 +#: pysollib/actions.py:540 msgid "Your statistics" msgstr "Ваша статистика" -#: pysollib/actions.py:556 +#: pysollib/actions.py:554 msgid "" " were appended to\n" "\n" @@ -176,45 +176,45 @@ msgstr "" " добавлена в файл\n" "\n" -#: pysollib/actions.py:571 +#: pysollib/actions.py:569 msgid " Demo" msgstr " Демо" -#: pysollib/actions.py:571 +#: pysollib/actions.py:569 msgid " Demo " msgstr " Демо " -#: pysollib/actions.py:574 pysollib/actions.py:593 +#: pysollib/actions.py:572 pysollib/actions.py:591 msgid " for " msgstr " для " -#: pysollib/actions.py:580 pysollib/stats.py:206 +#: pysollib/actions.py:578 pysollib/stats.py:205 msgid "Statistics for " msgstr "Статистика игры " -#: pysollib/actions.py:583 pysollib/tile/selectgame.py:344 -#: pysollib/tile/toolbar.py:247 pysollib/tk/selectgame.py:350 -#: pysollib/tk/toolbar.py:208 +#: pysollib/actions.py:581 pysollib/tile/selectgame.py:345 +#: pysollib/tile/toolbar.py:200 pysollib/tk/selectgame.py:350 +#: pysollib/tk/toolbar.py:203 msgid "Statistics" msgstr "Статистика" -#: pysollib/actions.py:587 data/glade-translations:31 +#: pysollib/actions.py:585 data/glade-translations:31 msgid "Full log" msgstr "Полный лог" -#: pysollib/actions.py:590 data/glade-translations:32 +#: pysollib/actions.py:588 data/glade-translations:32 msgid "Session log" msgstr "Лог сессии" -#: pysollib/actions.py:596 +#: pysollib/actions.py:594 msgid "Game Info" msgstr "Информация об игре" -#: pysollib/actions.py:612 +#: pysollib/actions.py:610 msgid "Reset all statistics" msgstr "Очистить всю статистику" -#: pysollib/actions.py:613 +#: pysollib/actions.py:611 msgid "" "Reset ALL statistics and logs for player\n" "%s ?" @@ -222,11 +222,11 @@ msgstr "" "Очистить всю статистику и лог для игрока\n" "%s?" -#: pysollib/actions.py:619 +#: pysollib/actions.py:617 msgid "Reset game statistics" msgstr "Очистить статистику игры" -#: pysollib/actions.py:620 +#: pysollib/actions.py:618 msgid "" "Reset statistics and logs for player\n" "%s\n" @@ -238,23 +238,23 @@ msgstr "" "и игры\n" "%s?" -#: pysollib/actions.py:676 +#: pysollib/actions.py:674 msgid "Play demo" msgstr "Показать демо" -#: pysollib/actions.py:687 +#: pysollib/actions.py:685 msgid "Set player options" msgstr "Установить настройки игрока" -#: pysollib/actions.py:701 data/glade-translations:40 +#: pysollib/actions.py:699 data/glade-translations:40 msgid "Set colors" msgstr "Настроить цвета" -#: pysollib/actions.py:721 +#: pysollib/actions.py:719 msgid "Set fonts" msgstr "Настроить шрифт" -#: pysollib/actions.py:730 data/glade-translations:33 +#: pysollib/actions.py:728 data/glade-translations:33 msgid "Set timeouts" msgstr "Настроить таймауты" @@ -262,29 +262,29 @@ msgstr "Настроить таймауты" 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:366 -#: pysollib/tk/menubar.py:363 +#: pysollib/app.py:888 pysollib/game.py:1502 pysollib/game.py:1518 +#: pysollib/game.py:1525 pysollib/game.py:1531 pysollib/tile/menubar.py:361 +#: pysollib/tk/menubar.py:358 msgid "&New game" msgstr "&Новая игра" -#: pysollib/app.py:1026 +#: pysollib/app.py:1031 msgid "Loading %s %s..." msgstr "Загружается %s %s..." -#: pysollib/app.py:1061 +#: pysollib/app.py:1066 msgid " load error" msgstr " ошибка при загрузке" -#: pysollib/app.py:1062 +#: pysollib/app.py:1067 msgid "Error while loading " msgstr "Ошибка при загрузке" -#: pysollib/app.py:1156 +#: pysollib/app.py:1161 msgid "Incompatible " msgstr "Несовместимый " -#: pysollib/app.py:1158 +#: pysollib/app.py:1163 msgid "" "The currently selected %s %s\n" "is not compatible with the game\n" @@ -298,19 +298,19 @@ msgstr "" "\n" "Необходимо выбрать %s типа %s.\n" -#: pysollib/app.py:1174 +#: pysollib/app.py:1179 msgid "Please select a %s type %s" msgstr "Выберите %s типа %s" -#: pysollib/game.py:852 pysollib/game.py:858 +#: pysollib/game.py:869 pysollib/game.py:875 msgid "Player\n" msgstr "Игрок\n" -#: pysollib/game.py:929 +#: pysollib/game.py:946 msgid "Discard current game ?" msgstr "Завершить текущую игру?" -#: pysollib/game.py:1270 +#: pysollib/game.py:1455 msgid "" "\n" "You have reached\n" @@ -320,7 +320,7 @@ msgstr "" "Вы достигли\n" "#%d в %s игрового времени" -#: pysollib/game.py:1275 +#: pysollib/game.py:1460 msgid "" "\n" "and #%d in the %s of moves" @@ -328,7 +328,7 @@ msgstr "" "\n" "и #%d в %s количества ходов" -#: pysollib/game.py:1278 +#: pysollib/game.py:1463 msgid "" "\n" "You have reached\n" @@ -338,13 +338,13 @@ msgstr "" "Вы достигли\n" "#%d в %s количества ходов" -#: pysollib/game.py:1307 pysollib/game.py:1323 +#: pysollib/game.py:1493 pysollib/game.py:1510 #: pysollib/tile/soundoptionsdialog.py:102 #: pysollib/tk/soundoptionsdialog.py:100 msgid "Game won" msgstr "Игра выиграна" -#: pysollib/game.py:1308 +#: pysollib/game.py:1494 msgid "" "\n" "Congratulations, this\n" @@ -363,7 +363,7 @@ msgstr "" "Количество ходов: %s\n" "%s\n" -#: pysollib/game.py:1324 +#: pysollib/game.py:1511 msgid "" "\n" "Congratulations, you did it !\n" @@ -380,13 +380,13 @@ msgstr "" "Количество ходов: %s\n" "%s\n" -#: pysollib/game.py:1336 pysollib/game.py:1342 +#: pysollib/game.py:1523 pysollib/game.py:1529 #: pysollib/tile/soundoptionsdialog.py:100 #: pysollib/tk/soundoptionsdialog.py:98 msgid "Game finished" msgstr "Игра закончена" -#: pysollib/game.py:1337 pysollib/game.py:1866 +#: pysollib/game.py:1524 pysollib/game.py:2049 msgid "" "\n" "Game finished\n" @@ -394,7 +394,7 @@ msgstr "" "\n" "Игра закончена\n" -#: pysollib/game.py:1343 +#: pysollib/game.py:1530 msgid "" "\n" "Game finished, but not without my help...\n" @@ -402,35 +402,35 @@ msgstr "" "\n" "Игра закончена, но не без моей помощи...\n" -#: pysollib/game.py:1344 +#: pysollib/game.py:1531 msgid "&Restart" msgstr "&Начало" -#: pysollib/game.py:1758 +#: pysollib/game.py:1941 msgid "Score %6d" msgstr "Счёт %6d" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Cool" msgstr "&Отлично" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Great" msgstr "&Здорово" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Wow" msgstr "&Ура" -#: pysollib/game.py:1857 +#: pysollib/game.py:2040 msgid "&Yeah" msgstr "&Ага" -#: pysollib/game.py:1858 pysollib/game.py:1869 pysollib/game.py:1881 +#: pysollib/game.py:2041 pysollib/game.py:2052 pysollib/game.py:2064 msgid " Autopilot" msgstr " Автопилот" -#: pysollib/game.py:1859 +#: pysollib/game.py:2042 msgid "" "\n" "Game solved in %d moves.\n" @@ -438,19 +438,19 @@ msgstr "" "\n" "Игра решена за %d ходов\n" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&Hmm" msgstr "&Хмм" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&Oh well" msgstr "&Ох" -#: pysollib/game.py:1880 +#: pysollib/game.py:2063 msgid "&That's life" msgstr "&Такова жизнь" -#: pysollib/game.py:1882 +#: pysollib/game.py:2065 msgid "" "\n" "This won't come out...\n" @@ -458,31 +458,31 @@ msgstr "" "\n" "Не удалось...\n" -#: pysollib/game.py:2291 +#: pysollib/game.py:2474 msgid "Set bookmark" msgstr "Установить закладку" -#: pysollib/game.py:2292 +#: pysollib/game.py:2475 msgid "Replace existing bookmark %d ?" msgstr "Заменить существующую закладку %d ?" -#: pysollib/game.py:2314 +#: pysollib/game.py:2497 msgid "Goto bookmark" msgstr "Перейти к закладке" -#: pysollib/game.py:2315 +#: pysollib/game.py:2498 msgid "Goto bookmark %d ?" msgstr "Перейти к закладке %d ?" -#: pysollib/game.py:2346 +#: pysollib/game.py:2529 msgid "Open game" msgstr "Открыть игру" -#: pysollib/game.py:2357 pysollib/game.py:2366 pysollib/game.py:2371 +#: pysollib/game.py:2540 pysollib/game.py:2549 pysollib/game.py:2554 msgid "Load game error" msgstr "Ошибка при загрузке игры" -#: pysollib/game.py:2358 +#: pysollib/game.py:2541 msgid "" "Error while loading game.\n" "\n" @@ -494,11 +494,11 @@ msgstr "" "Возможно повреждён файл,\n" "или ошибка в программе." -#: pysollib/game.py:2367 +#: pysollib/game.py:2550 msgid "Error while loading game" msgstr "Ошибка при загрузке игры" -#: pysollib/game.py:2372 +#: pysollib/game.py:2555 msgid "" "Internal error while loading game.\n" "\n" @@ -508,11 +508,11 @@ msgstr "" "\n" "Пожалуйста сообщите об этой ошибке." -#: pysollib/game.py:2397 +#: pysollib/game.py:2580 msgid "Save game error" msgstr "Ошибка при сохранении игры" -#: pysollib/game.py:2398 +#: pysollib/game.py:2581 msgid "Error while saving game" msgstr "Ошибка при сохранении игры" @@ -725,25 +725,25 @@ msgid "Puzzle type" msgstr "Пазлы" #: pysollib/games/auldlangsyne.py:158 pysollib/games/calculation.py:104 -#: pysollib/games/numerica.py:94 pysollib/games/numerica.py:276 -#: pysollib/games/numerica.py:666 pysollib/games/numerica.py:779 +#: pysollib/games/camelot.py:588 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 "Базовая ячейка. Складывать не считаясь с мастью." +msgstr "Базовая ячейка. Складывать по возрастанию или убыванию не считаясь с мастью." #: pysollib/games/braid.py:248 pysollib/games/camelot.py:555 -#: pysollib/games/napoleon.py:182 pysollib/games/ultra/dashavatara.py:959 +#: pysollib/games/napoleon.py:183 pysollib/games/ultra/dashavatara.py:959 #: pysollib/games/ultra/hanafuda1.py:257 pysollib/games/ultra/hexadeck.py:1190 #: pysollib/games/ultra/mughal.py:802 msgid " Ascending" msgstr " вверх" #: pysollib/games/braid.py:250 pysollib/games/camelot.py:554 -#: pysollib/games/napoleon.py:184 pysollib/games/ultra/dashavatara.py:961 +#: pysollib/games/napoleon.py:185 pysollib/games/ultra/dashavatara.py:961 #: pysollib/games/ultra/hanafuda1.py:259 pysollib/games/ultra/hexadeck.py:1192 #: pysollib/games/ultra/mughal.py:804 msgid " Descending" @@ -762,12 +762,12 @@ msgstr "" "4: 8 Д 3 7 В 2 6 10 Т 5 9 К" #: pysollib/games/canfield.py:528 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1410 pysollib/util.py:80 +#: pysollib/stack.py:1389 pysollib/util.py:86 msgid "King" msgstr "Король" #: pysollib/games/canfield.py:531 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1409 pysollib/util.py:80 +#: pysollib/stack.py:1388 pysollib/util.py:86 msgid "Queen" msgstr "Королева" @@ -785,11 +785,12 @@ msgid "X" msgstr "Х" #: pysollib/games/golf.py:114 pysollib/games/golf.py:300 -#: pysollib/stack.py:2075 +#: pysollib/stack.py:2054 msgid "Tableau. No building." msgstr "Игровой стол. Без выкладывания." -#: pysollib/games/golf.py:385 pysollib/stack.py:2008 +#: pysollib/games/golf.py:385 pysollib/games/pileon.py:257 +#: pysollib/stack.py:1987 msgid "Foundation. Build up regardless of suit." msgstr "Базовая ячейка. Складывать по возрастанию не считаясь с мастью." @@ -797,7 +798,7 @@ msgstr "Базовая ячейка. Складывать по возраста msgid "Balance $%d" msgstr "Баланс $%d" -#: pysollib/games/klondike.py:169 pysollib/stack.py:2116 +#: pysollib/games/klondike.py:169 pysollib/stack.py:2095 msgid "Tableau. Build down by color." msgstr "Игровой стол. Складывать по убыванию в соответствии с цветом." @@ -805,11 +806,11 @@ msgstr "Игровой стол. Складывать по убыванию в msgid "Reserve. Only Kings are acceptable." msgstr "Резерв. Только для королей." -#: pysollib/games/larasgame.py:163 pysollib/stack.py:1626 +#: pysollib/games/larasgame.py:163 pysollib/stack.py:1605 msgid "Round %d" msgstr "Раунд %d" -#: pysollib/games/mahjongg/mahjongg.py:305 +#: pysollib/games/mahjongg/mahjongg.py:308 msgid "" "No Free\n" "Matching\n" @@ -819,7 +820,7 @@ msgstr "" "свободных\n" "пар" -#: pysollib/games/mahjongg/mahjongg.py:306 +#: pysollib/games/mahjongg/mahjongg.py:309 msgid "" "1 Free\n" "Matching\n" @@ -829,7 +830,7 @@ msgstr "" "свободная\n" "пара" -#: pysollib/games/mahjongg/mahjongg.py:307 +#: pysollib/games/mahjongg/mahjongg.py:310 msgid "" " Free\n" "Matching\n" @@ -839,7 +840,7 @@ msgstr "" "свободных\n" "пар" -#: pysollib/games/mahjongg/mahjongg.py:308 +#: pysollib/games/mahjongg/mahjongg.py:311 msgid "" "\n" "Tiles\n" @@ -850,7 +851,7 @@ msgstr "" "удалено\n" "\n" -#: pysollib/games/mahjongg/mahjongg.py:309 +#: pysollib/games/mahjongg/mahjongg.py:312 msgid "" "\n" "Tiles\n" @@ -934,7 +935,7 @@ msgstr "Жезлы" #: pysollib/games/special/tarock.py:223 #: pysollib/games/ultra/dashavatara.py:351 #: pysollib/games/ultra/hexadeck.py:273 pysollib/games/ultra/mughal.py:254 -#: pysollib/stack.py:1411 pysollib/util.py:79 +#: pysollib/stack.py:1390 pysollib/util.py:85 msgid "Ace" msgstr "Туз" @@ -946,7 +947,7 @@ msgstr "Паж" msgid "Valet" msgstr "Валет" -#: pysollib/games/spider.py:1128 +#: pysollib/games/spider.py:1131 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same color " "can be moved as a unit." @@ -1257,27 +1258,27 @@ msgstr "" "Игровой стол. Складывать по убыванию не считаясь с мастью, можно перемещать " "любую серию открытых карт." -#: pysollib/help.py:63 +#: pysollib/help.py:60 msgid "A Python Solitaire Game Collection\n" msgstr "Коллекция питоновских пасьянсов\n" -#: pysollib/help.py:65 +#: pysollib/help.py:62 msgid "A World Domination Project\n" msgstr "Всемирный непревзойдённый проект\n" -#: pysollib/help.py:66 +#: pysollib/help.py:63 msgid "&Credits..." msgstr "&Благодарности..." -#: pysollib/help.py:66 +#: pysollib/help.py:63 msgid "&Nice" msgstr "&Отлично" -#: pysollib/help.py:68 +#: pysollib/help.py:65 msgid "&Enjoy" msgstr "&Наслаждайтесь" -#: pysollib/help.py:70 +#: pysollib/help.py:67 msgid "" "Version %s\n" "\n" @@ -1285,11 +1286,11 @@ msgstr "" "Версия %s\n" "\n" -#: pysollib/help.py:71 +#: pysollib/help.py:68 msgid "About " msgstr "О программе " -#: pysollib/help.py:72 +#: pysollib/help.py:69 msgid "" "PySol Fan Club edition\n" "%s%s\n" @@ -1320,11 +1321,11 @@ msgstr "" "об этом приложении посетите сайт\n" "%s" -#: pysollib/help.py:101 +#: pysollib/help.py:98 msgid "Credits" msgstr "Благодарности" -#: pysollib/help.py:102 +#: pysollib/help.py:99 msgid "" " credits go to:\n" "\n" @@ -1339,23 +1340,23 @@ msgid "" "for making this program possible" msgstr "" -#: pysollib/help.py:137 +#: pysollib/help.py:134 msgid " HTML Problem" msgstr " проблема с HTML" -#: pysollib/help.py:138 +#: pysollib/help.py:135 msgid "Cannot find help document\n" msgstr "Не найден файл помощи\n" -#: pysollib/help.py:151 +#: pysollib/help.py:148 msgid " Help" msgstr " Помощь" -#: pysollib/main.py:66 pysollib/main.py:269 +#: pysollib/main.py:64 pysollib/main.py:249 msgid "%s installation error" msgstr "%s проблема с установкой" -#: pysollib/main.py:67 +#: pysollib/main.py:65 msgid "" "No cardsets were found !!!\n" "\n" @@ -1371,12 +1372,12 @@ msgstr "" "\n" "Пожалуйста проверьте установку %s.\n" -#: pysollib/main.py:74 pysollib/main.py:277 pysollib/tile/menubar.py:385 -#: pysollib/tk/menubar.py:382 +#: pysollib/main.py:72 pysollib/main.py:257 pysollib/tile/menubar.py:381 +#: pysollib/tk/menubar.py:378 msgid "&Quit" msgstr "В&ыход" -#: pysollib/main.py:96 +#: pysollib/main.py:90 msgid "" "%s: %s\n" "try %s --help for more information" @@ -1384,15 +1385,12 @@ msgstr "" "%s: %s\n" "попробуйте %s --help для получения более подробной информации" -#: pysollib/main.py:134 +#: pysollib/main.py:119 msgid "" "Usage: %s [OPTIONS] [FILE]\n" " -g --game=GAMENAME start game GAMENAME\n" " -i --gameid=GAMEID\n" " --french-only\n" -" --fg --foreground=COLOR foreground color\n" -" --bg --background=COLOR background color\n" -" --fn --font=FONT default font\n" " --sound-mod=MOD\n" " --nosound disable sound support\n" " --noplugins disable load plugins\n" @@ -1405,9 +1403,6 @@ msgstr "" " -g --game=GAMENAME начинать с игры GAMENAME\n" " -i --gameid=GAMEID\n" " --french-only\n" -" --fg --foreground=COLOR цвет текста\n" -" --bg --background=COLOR цвет фона\n" -" --fn --font=FONT шрифт по умолчанию\n" " --sound-mod=MOD\n" " --nosound отключить звук\n" " --noplugins отключить загрузку плагинов\n" @@ -1416,7 +1411,7 @@ msgstr "" " FILE - имя файла сохранённой игры\n" " MOD - одно из следующих значений: pss(default), pygame, oss, win\n" -#: pysollib/main.py:152 +#: pysollib/main.py:134 msgid "" "%s: too many files\n" "try %s --help for more information" @@ -1424,7 +1419,7 @@ msgstr "" "\"%s: слишком много файлов\n" "попробуйте %s --help для получения более подробной информации" -#: pysollib/main.py:156 +#: pysollib/main.py:138 msgid "" "%s: invalid file name\n" "try %s --help for more information" @@ -1432,7 +1427,7 @@ msgstr "" "%s: неправильное имя файла\n" "попробуйте %s --help для получения более подробной информации" -#: pysollib/main.py:270 +#: pysollib/main.py:250 msgid "" "\n" "No games were found !!!\n" @@ -1450,413 +1445,413 @@ msgstr "" "\n" "Пожалуйста проверьте установку %s.\n" -#: pysollib/main.py:339 +#: pysollib/main.py:319 msgid "Welcome to %s" msgstr "Добро пожаловать в %s" -#: pysollib/resource.py:193 +#: pysollib/resource.py:192 msgid "French type (52 cards)" msgstr "Классические (52 карты)" -#: pysollib/resource.py:194 +#: pysollib/resource.py:193 msgid "Hanafuda type (48 cards)" msgstr "Ханафуда (48 карт)" -#: pysollib/resource.py:195 +#: pysollib/resource.py:194 msgid "Tarock type (78 cards)" msgstr "Таро (78 карт)" -#: pysollib/resource.py:196 +#: pysollib/resource.py:195 msgid "Mahjongg type (42 tiles)" msgstr "Маджонг (42 фишки)" -#: pysollib/resource.py:197 +#: pysollib/resource.py:196 msgid "Hex A Deck type (68 cards)" msgstr "Hex A Deck (68 карт)" -#: pysollib/resource.py:198 +#: pysollib/resource.py:197 msgid "Mughal Ganjifa type (96 cards)" msgstr "Мугал Ганджифа (96 карт)" -#: pysollib/resource.py:199 +#: pysollib/resource.py:198 msgid "Navagraha Ganjifa type (108 cards)" msgstr "Наваграха Ганджифа (108 карт)" -#: pysollib/resource.py:200 +#: pysollib/resource.py:199 msgid "Dashavatara Ganjifa type (120 cards)" msgstr "Дашаватара Ганджифа (120 карт)" -#: pysollib/resource.py:201 +#: pysollib/resource.py:200 msgid "Trumps only type (variable cards)" msgstr "Без мастей (переменное количество карт)" -#: pysollib/resource.py:205 +#: pysollib/resource.py:204 msgid "French" msgstr "Классические" -#: pysollib/resource.py:206 pysollib/resource.py:230 +#: pysollib/resource.py:205 pysollib/resource.py:229 msgid "Hanafuda" msgstr "Ханафуда" -#: pysollib/resource.py:207 pysollib/resource.py:246 +#: pysollib/resource.py:206 pysollib/resource.py:245 msgid "Tarock" msgstr "Таро" -#: pysollib/resource.py:208 pysollib/resource.py:233 +#: pysollib/resource.py:207 pysollib/resource.py:232 msgid "Mahjongg" msgstr "Маджонг" -#: pysollib/resource.py:209 pysollib/resource.py:231 +#: pysollib/resource.py:208 pysollib/resource.py:230 msgid "Hex A Deck" msgstr "Hex A Deck" -#: pysollib/resource.py:210 +#: pysollib/resource.py:209 msgid "Mughal Ganjifa" msgstr "Мугал Ганджифа" -#: pysollib/resource.py:211 +#: pysollib/resource.py:210 msgid "Navagraha Ganjifa" msgstr "Наваграха Ганджифа" -#: pysollib/resource.py:212 +#: pysollib/resource.py:211 msgid "Dashavatara Ganjifa" msgstr "Дашаватара Ганджифа" -#: pysollib/resource.py:213 +#: pysollib/resource.py:212 msgid "Trumps only" msgstr "Без мастей" -#: pysollib/resource.py:218 +#: pysollib/resource.py:217 msgid "Adult" msgstr "Для взрослых" -#: pysollib/resource.py:219 +#: pysollib/resource.py:218 msgid "Animals" msgstr "Животные" -#: pysollib/resource.py:220 +#: pysollib/resource.py:219 msgid "Anime" msgstr "Мультфильмы" -#: pysollib/resource.py:221 +#: pysollib/resource.py:220 msgid "Art" msgstr "Искусство" -#: pysollib/resource.py:222 +#: pysollib/resource.py:221 msgid "Cartoons" msgstr "Комиксы" -#: pysollib/resource.py:223 +#: pysollib/resource.py:222 msgid "Children" msgstr "Дети" -#: pysollib/resource.py:224 +#: pysollib/resource.py:223 msgid "Classic look" msgstr "Классический вид" -#: pysollib/resource.py:225 +#: pysollib/resource.py:224 msgid "Collectors" msgstr "Коллекционные" -#: pysollib/resource.py:226 +#: pysollib/resource.py:225 msgid "Computers" msgstr "Компьютеры" -#: pysollib/resource.py:227 +#: pysollib/resource.py:226 msgid "Engines" msgstr "Машины" -#: pysollib/resource.py:228 +#: pysollib/resource.py:227 msgid "Fantasy" msgstr "Фентези" -#: pysollib/resource.py:229 +#: pysollib/resource.py:228 msgid "Ganjifa" msgstr "Ганджифа" -#: pysollib/resource.py:232 +#: pysollib/resource.py:231 msgid "Holiday" msgstr "Праздники" -#: pysollib/resource.py:234 +#: pysollib/resource.py:233 msgid "Movies" msgstr "Фильмы" -#: pysollib/resource.py:235 +#: pysollib/resource.py:234 msgid "Matrix" msgstr "Мозаика" -#: pysollib/resource.py:236 +#: pysollib/resource.py:235 msgid "Music" msgstr "Музыка" -#: pysollib/resource.py:237 +#: pysollib/resource.py:236 msgid "Nature" msgstr "Природа" -#: pysollib/resource.py:238 +#: pysollib/resource.py:237 msgid "Operating Systems" msgstr "Операционные системы" -#: pysollib/resource.py:239 +#: pysollib/resource.py:238 msgid "People" msgstr "Люди" -#: pysollib/resource.py:240 +#: pysollib/resource.py:239 msgid "Places" msgstr "Дома" -#: pysollib/resource.py:241 +#: pysollib/resource.py:240 msgid "Plain" msgstr "Простые" -#: pysollib/resource.py:242 +#: pysollib/resource.py:241 msgid "Products" msgstr "Продукты" -#: pysollib/resource.py:243 +#: pysollib/resource.py:242 msgid "Round cardsets" msgstr "Закруглённые" -#: pysollib/resource.py:244 +#: pysollib/resource.py:243 msgid "Science Fiction" msgstr "Научная фантастика" -#: pysollib/resource.py:245 +#: pysollib/resource.py:244 msgid "Sports" msgstr "Спорт" -#: pysollib/resource.py:247 +#: pysollib/resource.py:246 msgid "Vehicels" msgstr "Транспортные средства" -#: pysollib/resource.py:248 +#: pysollib/resource.py:247 msgid "Video Games" msgstr "Видеоигры" -#: pysollib/resource.py:253 +#: pysollib/resource.py:252 msgid "Australia" msgstr "Австралия" -#: pysollib/resource.py:254 +#: pysollib/resource.py:253 msgid "Austria" msgstr "Австрия" -#: pysollib/resource.py:255 +#: pysollib/resource.py:254 msgid "Belgium" msgstr "Бельгия" -#: pysollib/resource.py:256 +#: pysollib/resource.py:255 msgid "Canada" msgstr "Канада" -#: pysollib/resource.py:257 +#: pysollib/resource.py:256 msgid "China" msgstr "Китай" -#: pysollib/resource.py:258 +#: pysollib/resource.py:257 msgid "Czech Republic" msgstr "Чехия" -#: pysollib/resource.py:259 +#: pysollib/resource.py:258 msgid "Denmark" msgstr "Дания" -#: pysollib/resource.py:260 +#: pysollib/resource.py:259 msgid "England" msgstr "Англия" -#: pysollib/resource.py:261 +#: pysollib/resource.py:260 msgid "France" msgstr "Франция" -#: pysollib/resource.py:262 +#: pysollib/resource.py:261 msgid "Germany" msgstr "Германия" -#: pysollib/resource.py:263 +#: pysollib/resource.py:262 msgid "Great Britain" msgstr "Великобритания" -#: pysollib/resource.py:264 +#: pysollib/resource.py:263 msgid "Hungary" msgstr "Венгрия" -#: pysollib/resource.py:265 +#: pysollib/resource.py:264 msgid "India" msgstr "Индия" -#: pysollib/resource.py:266 +#: pysollib/resource.py:265 msgid "Italy" msgstr "Италия" -#: pysollib/resource.py:267 +#: pysollib/resource.py:266 msgid "Japan" msgstr "Япония" -#: pysollib/resource.py:268 +#: pysollib/resource.py:267 msgid "Netherlands" msgstr "Голландия" -#: pysollib/resource.py:269 +#: pysollib/resource.py:268 msgid "Russia" msgstr "Россия" -#: pysollib/resource.py:270 +#: pysollib/resource.py:269 msgid "Spain" msgstr "Испания" -#: pysollib/resource.py:271 +#: pysollib/resource.py:270 msgid "Sweden" msgstr "Швеция" -#: pysollib/resource.py:272 +#: pysollib/resource.py:271 msgid "Switzerland" msgstr "Швейцария" -#: pysollib/resource.py:273 +#: pysollib/resource.py:272 msgid "USA" msgstr "США" -#: pysollib/settings.py:64 data/glade-translations:29 +#: pysollib/settings.py:67 data/glade-translations:29 msgid "Top 10" msgstr "Top 10" -#: pysollib/stack.py:1405 +#: pysollib/stack.py:1384 msgid "Base card - %s." msgstr "Базовая карта - %s." -#: pysollib/stack.py:1406 +#: pysollib/stack.py:1385 msgid "Empty row cannot be filled." msgstr "Пустой ряд не заполняется." -#: pysollib/stack.py:1407 +#: pysollib/stack.py:1386 msgid "any card" msgstr "любая карта" -#: pysollib/stack.py:1408 pysollib/util.py:80 +#: pysollib/stack.py:1387 pysollib/util.py:86 msgid "Jack" msgstr "Валет" -#: pysollib/stack.py:1421 +#: pysollib/stack.py:1400 msgid "No cards" msgstr "Нет карт" -#: pysollib/stack.py:1422 +#: pysollib/stack.py:1401 msgid "1 card" msgstr "1 карта" -#: pysollib/stack.py:1423 +#: pysollib/stack.py:1402 msgid " cards" msgstr " карт" -#: pysollib/stack.py:1635 pysollib/stack.py:1637 pysollib/stack.py:1673 +#: pysollib/stack.py:1614 pysollib/stack.py:1616 pysollib/stack.py:1652 msgid "Redeal" msgstr "Сдать" -#: pysollib/stack.py:1637 +#: pysollib/stack.py:1616 msgid "Stop" msgstr "Стоп" -#: pysollib/stack.py:1698 +#: pysollib/stack.py:1677 msgid "Variable redeals." msgstr "Переменное количество пересдач." -#: pysollib/stack.py:1699 +#: pysollib/stack.py:1678 msgid "Unlimited redeals." msgstr "Неограниченное количество пересдач." -#: pysollib/stack.py:1700 +#: pysollib/stack.py:1679 msgid "No redeals." msgstr "Без пересдачи." -#: pysollib/stack.py:1701 +#: pysollib/stack.py:1680 msgid "One redeal." msgstr "1 пересдача." -#: pysollib/stack.py:1702 +#: pysollib/stack.py:1681 msgid " redeals." msgstr " пересдачи." -#: pysollib/stack.py:1704 +#: pysollib/stack.py:1683 msgid "Talon." msgstr "Колода." -#: pysollib/stack.py:1938 pysollib/stack.py:2389 +#: pysollib/stack.py:1917 pysollib/stack.py:2368 msgid "Reserve. No building." msgstr "Резерв. Без выкладывания." -#: pysollib/stack.py:1976 +#: pysollib/stack.py:1955 msgid "Foundation." msgstr "Базовая ячейка" -#: pysollib/stack.py:1992 +#: pysollib/stack.py:1971 msgid "Foundation. Build up by suit." msgstr "Базовая ячейка. Складывать по возрастанию в соответствии с мастью." -#: pysollib/stack.py:1993 +#: pysollib/stack.py:1972 msgid "Foundation. Build down by suit." msgstr "Базовая ячейка. Складывать по убыванию в соответствии с мастью." -#: pysollib/stack.py:1994 pysollib/stack.py:2010 pysollib/stack.py:2032 +#: pysollib/stack.py:1973 pysollib/stack.py:1989 pysollib/stack.py:2011 msgid "Foundation. Build by same rank." msgstr "Базовая ячейка. Складывать в соответствии с достоинством." -#: pysollib/stack.py:2009 +#: pysollib/stack.py:1988 msgid "Foundation. Build down regardless of suit." msgstr "Базовая ячейка. Складывать не считаясь с мастью." -#: pysollib/stack.py:2030 +#: pysollib/stack.py:2009 msgid "Foundation. Build up by alternate color." msgstr "Базовая ячейка. Складывать по возрастанию чередуя цвет." -#: pysollib/stack.py:2031 +#: pysollib/stack.py:2010 msgid "Foundation. Build down by alternate color." msgstr "Базовая ячейка. Складывать по убыванию чередуя цвет." -#: pysollib/stack.py:2105 +#: pysollib/stack.py:2084 msgid "Tableau. Build up by alternate color." msgstr "Игровой стол. Складывать по возрастанию чередуя цвет." -#: pysollib/stack.py:2106 +#: pysollib/stack.py:2085 msgid "Tableau. Build down by alternate color." msgstr "Игровой стол. Складывать по убыванию чередуя цвет." -#: pysollib/stack.py:2107 pysollib/stack.py:2117 pysollib/stack.py:2126 -#: pysollib/stack.py:2135 pysollib/stack.py:2145 pysollib/stack.py:2168 -#: pysollib/stack.py:2178 +#: pysollib/stack.py:2086 pysollib/stack.py:2096 pysollib/stack.py:2105 +#: pysollib/stack.py:2114 pysollib/stack.py:2124 pysollib/stack.py:2147 +#: pysollib/stack.py:2157 msgid "Tableau. Build by same rank." msgstr "Игровой стол. Складывать в соответствии с достоинством." -#: pysollib/stack.py:2115 +#: pysollib/stack.py:2094 msgid "Tableau. Build up by color." msgstr "Игровой стол. Складывать по возрастанию в соответствии с цветом." -#: pysollib/stack.py:2124 +#: pysollib/stack.py:2103 msgid "Tableau. Build up by suit." msgstr "Игровой стол. Складывать по возрастанию в соответствии с мастью." -#: pysollib/stack.py:2125 +#: pysollib/stack.py:2104 msgid "Tableau. Build down by suit." msgstr "Игровой стол. Складывать по убыванию в соответствии с мастью." -#: pysollib/stack.py:2133 +#: pysollib/stack.py:2112 msgid "Tableau. Build up regardless of suit." msgstr "Игровой стол. Складывать по возрастанию не считаясь с мастью." -#: pysollib/stack.py:2134 +#: pysollib/stack.py:2113 msgid "Tableau. Build down regardless of suit." msgstr "Игровой стол. Складывать по убыванию не считаясь с мастью." -#: pysollib/stack.py:2143 +#: pysollib/stack.py:2122 msgid "Tableau. Build up in any suit but the same." msgstr "Игровой стол. Складывать по возрастанию в любую масть кроме такой же." -#: pysollib/stack.py:2144 +#: pysollib/stack.py:2123 msgid "Tableau. Build down in any suit but the same." msgstr "Игровой стол. Складывать по убыванию в любую масть кроме такой же." -#: pysollib/stack.py:2166 +#: pysollib/stack.py:2145 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in alternate color " "can be moved as a unit." @@ -1864,7 +1859,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию не считаясь с мастью. Можно " "перемещать серии карт чередующихся цветом." -#: pysollib/stack.py:2167 +#: pysollib/stack.py:2146 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in alternate " "color can be moved as a unit." @@ -1872,7 +1867,7 @@ msgstr "" "Игровой стол. Складывать по убыванию не считаясь с мастью. Можно перемещать " "серии карт чередующихся цветом." -#: pysollib/stack.py:2176 +#: pysollib/stack.py:2155 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." @@ -1880,7 +1875,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию не считаясь с мастью. Можно " "перемещать серии карт одинаковой масти." -#: pysollib/stack.py:2177 +#: pysollib/stack.py:2156 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." @@ -1888,7 +1883,7 @@ msgstr "" "Игровой стол. Складывать по убыванию не считаясь с мастью. Можно перемещать " "серии карт одинаковой масти." -#: pysollib/stack.py:2199 +#: pysollib/stack.py:2178 msgid "" "Tableau. Build up by alternate color, can move any face-up cards regardless " "of sequence." @@ -1896,7 +1891,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию чередуя цвет, можно перемещать любую " "серию открытых карт." -#: pysollib/stack.py:2200 +#: pysollib/stack.py:2179 msgid "" "Tableau. Build down by alternate color, can move any face-up cards " "regardless of sequence." @@ -1904,7 +1899,7 @@ msgstr "" "Игровой стол. Складывать по убыванию чередуя цвет, можно перемещать любую " "серию открытых карт." -#: pysollib/stack.py:2201 pysollib/stack.py:2214 +#: pysollib/stack.py:2180 pysollib/stack.py:2193 msgid "" "Tableau. Build by same rank, can move any face-up cards regardless of " "sequence." @@ -1912,14 +1907,14 @@ msgstr "" "Игровой стол. Складывать в соответствии с достоинством, можно перемещать " "любую серию открытых карт." -#: pysollib/stack.py:2212 +#: pysollib/stack.py:2191 msgid "" "Tableau. Build up by suit, can move any face-up cards regardless of sequence." msgstr "" "Игровой стол. Складывать по возрастанию в соответствии с мастью, можно " "перемещать любую серию открытых карт." -#: pysollib/stack.py:2213 +#: pysollib/stack.py:2192 msgid "" "Tableau. Build down by suit, can move any face-up cards regardless of " "sequence." @@ -1927,111 +1922,111 @@ msgstr "" "Игровой стол. Складывать по убыванию в соответствии с мастью, можно " "перемещать любую серию открытых карт." -#: pysollib/stack.py:2246 +#: pysollib/stack.py:2225 msgid "Tableau. Build up or down by color." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию в соответствии с цветом." -#: pysollib/stack.py:2257 +#: pysollib/stack.py:2236 msgid "Tableau. Build up or down by alternate color." msgstr "Игровой стол. Складывать по возрастанию или убыванию чередуя цвет." -#: pysollib/stack.py:2268 +#: pysollib/stack.py:2247 msgid "Tableau. Build up or down by suit." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию в соответствии с мастью." -#: pysollib/stack.py:2279 +#: pysollib/stack.py:2258 msgid "Tableau. Build up or down regardless of suit." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию не считаясь с мастью." -#: pysollib/stack.py:2290 +#: pysollib/stack.py:2269 msgid "Waste." msgstr "Сброс." -#: pysollib/stack.py:2390 +#: pysollib/stack.py:2369 msgid "Free cell." msgstr "Свободная ячейка." -#: pysollib/stats.py:53 pysollib/stats.py:119 +#: pysollib/stats.py:52 pysollib/stats.py:118 msgid "Game" msgstr "Игра" -#: pysollib/stats.py:54 +#: pysollib/stats.py:53 msgid "Played" msgstr "Играл" -#: pysollib/stats.py:55 pysollib/stats.py:158 +#: pysollib/stats.py:54 pysollib/stats.py:157 msgid "Won" msgstr "Выиграл" -#: pysollib/stats.py:56 pysollib/stats.py:158 +#: pysollib/stats.py:55 pysollib/stats.py:157 msgid "Lost" msgstr "Проиграл" -#: pysollib/stats.py:57 pysollib/tile/statusbar.py:157 -#: pysollib/tk/statusbar.py:156 data/glade-translations:25 +#: pysollib/stats.py:56 pysollib/tile/statusbar.py:147 +#: pysollib/tk/statusbar.py:158 data/glade-translations:25 msgid "Playing time" msgstr "Время игры" -#: pysollib/stats.py:58 data/glade-translations:26 +#: pysollib/stats.py:57 data/glade-translations:26 msgid "Moves" msgstr "Ходов" -#: pysollib/stats.py:59 +#: pysollib/stats.py:58 msgid "% won" msgstr "% побед" -#: pysollib/stats.py:119 +#: pysollib/stats.py:118 msgid "Status" msgstr "Статус" -#: pysollib/stats.py:119 pysollib/tile/statusbar.py:159 -#: pysollib/tile/tkstats.py:545 pysollib/tk/statusbar.py:158 -#: pysollib/tk/tkstats.py:666 +#: pysollib/stats.py:118 pysollib/tile/statusbar.py:149 +#: pysollib/tile/tkstats.py:552 pysollib/tk/statusbar.py:160 +#: pysollib/tk/tkstats.py:668 msgid "Game number" msgstr "Номер игры" -#: pysollib/stats.py:119 pysollib/tile/tkstats.py:548 -#: pysollib/tk/tkstats.py:669 +#: pysollib/stats.py:118 pysollib/tile/tkstats.py:555 +#: pysollib/tk/tkstats.py:671 msgid "Started at" msgstr "Игра начата" -#: pysollib/stats.py:143 +#: pysollib/stats.py:142 msgid "** UNKNOWN %d **" msgstr "" -#: pysollib/stats.py:151 +#: pysollib/stats.py:150 msgid "** ERROR **" msgstr "" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Loaded" msgstr "Загружал" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Not won" msgstr "Не выиграл" -#: pysollib/stats.py:158 +#: pysollib/stats.py:157 msgid "Perfect" msgstr "Великолепная" -#: pysollib/stats.py:205 pysollib/stats.py:236 pysollib/stats.py:242 +#: pysollib/stats.py:204 pysollib/stats.py:235 pysollib/stats.py:241 msgid "Demo" msgstr "Демо" -#: pysollib/stats.py:216 pysollib/tile/tkstats.py:280 -#: pysollib/tk/tkstats.py:418 +#: pysollib/stats.py:215 pysollib/tile/tkstats.py:283 +#: pysollib/tk/tkstats.py:419 msgid "Total (%d out of %d games)" msgstr "Всего (%d из %d игр)" -#: pysollib/stats.py:237 +#: pysollib/stats.py:236 msgid "Full log for " msgstr "Полный лог для " -#: pysollib/stats.py:243 +#: pysollib/stats.py:242 msgid "Session log for " msgstr "Лог сессии для " @@ -2041,7 +2036,7 @@ msgid "Text foreground:" msgstr "Цвет текста:" #: pysollib/tile/colorsdialog.py:77 pysollib/tile/colorsdialog.py:95 -#: pysollib/tile/fontsdialog.py:186 pysollib/tk/colorsdialog.py:76 +#: pysollib/tile/fontsdialog.py:185 pysollib/tk/colorsdialog.py:76 #: pysollib/tk/colorsdialog.py:94 pysollib/tk/fontsdialog.py:186 #: data/glade-translations:49 data/glade-translations:50 #: data/glade-translations:51 data/glade-translations:52 @@ -2094,8 +2089,8 @@ msgstr "Подсветка отсутствия совпадения:" msgid "Select color" msgstr "Выбрать цвет" -#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:438 -#: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:435 +#: pysollib/tile/findcarddialog.py:54 pysollib/tile/menubar.py:434 +#: pysollib/tk/findcarddialog.py:54 pysollib/tk/menubar.py:431 msgid "Find card" msgstr "Найти карту" @@ -2111,536 +2106,551 @@ msgstr "Жирный" msgid "Italic" msgstr "Наклонный" -#: pysollib/tile/fontsdialog.py:168 pysollib/tk/fontsdialog.py:168 +#: pysollib/tile/fontsdialog.py:109 pysollib/tile/selectcardset.py:332 +#: pysollib/tk/selectcardset.py:341 +msgid "Size:" +msgstr "Размер:" + +#: pysollib/tile/fontsdialog.py:167 pysollib/tk/fontsdialog.py:168 #: data/glade-translations:58 msgid "HTML: " msgstr "HTML: " -#: pysollib/tile/fontsdialog.py:169 pysollib/tk/fontsdialog.py:169 +#: pysollib/tile/fontsdialog.py:168 pysollib/tk/fontsdialog.py:169 #: data/glade-translations:59 msgid "Small: " msgstr "Маленький: " -#: pysollib/tile/fontsdialog.py:170 pysollib/tk/fontsdialog.py:170 +#: pysollib/tile/fontsdialog.py:169 pysollib/tk/fontsdialog.py:170 #: data/glade-translations:60 msgid "Fixed: " msgstr "Моноширинный: " -#: pysollib/tile/fontsdialog.py:171 pysollib/tk/fontsdialog.py:171 +#: pysollib/tile/fontsdialog.py:170 pysollib/tk/fontsdialog.py:171 #: data/glade-translations:61 msgid "Tableau default: " msgstr "Игровой стол по умолчанию: " -#: pysollib/tile/fontsdialog.py:172 pysollib/tk/fontsdialog.py:172 +#: pysollib/tile/fontsdialog.py:171 pysollib/tk/fontsdialog.py:172 #: data/glade-translations:62 msgid "Tableau fixed: " msgstr "Игровой стол моноширинный: " -#: pysollib/tile/fontsdialog.py:173 pysollib/tk/fontsdialog.py:173 +#: pysollib/tile/fontsdialog.py:172 pysollib/tk/fontsdialog.py:173 #: data/glade-translations:64 msgid "Tableau large: " msgstr "Игровой стол большой: " -#: pysollib/tile/fontsdialog.py:174 pysollib/tk/fontsdialog.py:174 +#: pysollib/tile/fontsdialog.py:173 pysollib/tk/fontsdialog.py:174 #: data/glade-translations:63 msgid "Tableau small: " msgstr "Игровой стол маленький: " -#: pysollib/tile/fontsdialog.py:196 pysollib/tk/fontsdialog.py:196 +#: pysollib/tile/fontsdialog.py:195 pysollib/tk/fontsdialog.py:196 msgid "Select font" msgstr "Выбрать шрифт" -#: pysollib/tile/menubar.py:77 pysollib/tk/menubar.py:75 +#: pysollib/tile/menubar.py:78 pysollib/tk/menubar.py:76 msgid "Style" msgstr "Стиль" -#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94 +#: pysollib/tile/menubar.py:86 pysollib/tk/menubar.py:85 msgid "Compound" msgstr "Компоновка" -#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100 +#: pysollib/tile/menubar.py:92 pysollib/tk/menubar.py:91 msgid "Hide" msgstr "Спрятать" -#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103 +#: pysollib/tile/menubar.py:95 pysollib/tk/menubar.py:94 msgid "Top" msgstr "Сверху" -#: pysollib/tile/menubar.py:107 pysollib/tk/menubar.py:106 +#: pysollib/tile/menubar.py:98 pysollib/tk/menubar.py:97 msgid "Bottom" msgstr "Внизу" -#: pysollib/tile/menubar.py:110 pysollib/tk/menubar.py:109 +#: pysollib/tile/menubar.py:101 pysollib/tk/menubar.py:100 msgid "Left" msgstr "Слева" -#: pysollib/tile/menubar.py:113 pysollib/tk/menubar.py:112 +#: pysollib/tile/menubar.py:104 pysollib/tk/menubar.py:103 msgid "Right" msgstr "Справа" -#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116 +#: pysollib/tile/menubar.py:108 pysollib/tk/menubar.py:107 msgid "Small icons" msgstr "Маленькие пиктограммы" -#: pysollib/tile/menubar.py:120 pysollib/tk/menubar.py:119 +#: pysollib/tile/menubar.py:111 pysollib/tk/menubar.py:110 msgid "Large icons" msgstr "Большие пиктограммы" -#: pysollib/tile/menubar.py:126 pysollib/tk/menubar.py:125 +#: pysollib/tile/menubar.py:117 pysollib/tk/menubar.py:116 msgid "Customize toolbar" msgstr "Настроить панель инструментов" -#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362 -msgid "&File" -msgstr "&Файл" +#: pysollib/tile/menubar.py:357 pysollib/tk/menubar.py:354 +#, fuzzy +msgid "apple" +msgstr "Клён" -#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364 -msgid "R&ecent games" -msgstr "Выбрать н&едавнюю игру" - -#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366 -msgid "Select &random game" -msgstr "С&лучайная игра" - -#: pysollib/tile/menubar.py:370 pysollib/tk/menubar.py:367 -msgid "&All games" -msgstr "&Все игры" - -#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368 -msgid "Games played and &won" -msgstr "&Выигранные игры" - -#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369 -msgid "Games played and ¬ won" -msgstr "&Невыигранные игры" - -#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370 -msgid "Games not &played" -msgstr "Не&сыгранные игры" - -#: pysollib/tile/menubar.py:374 pysollib/tk/menubar.py:371 -msgid "Select game by nu&mber..." -msgstr "Выбрать игру по &номеру..." - -#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373 -msgid "Fa&vorite games" -msgstr "&Избранные игры" - -#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374 -msgid "A&dd to favorites" -msgstr "&Добавить в избранное" - -#: pysollib/tile/menubar.py:378 pysollib/tk/menubar.py:375 -msgid "R&emove from favorites" -msgstr "&Удалить из избранных" - -#: pysollib/tile/menubar.py:380 pysollib/tk/menubar.py:377 -msgid "&Open..." -msgstr "&Открыть..." - -#: pysollib/tile/menubar.py:381 pysollib/tk/menubar.py:378 -msgid "&Save" -msgstr "&Сохранить" - -#: pysollib/tile/menubar.py:382 pysollib/tk/menubar.py:379 -msgid "Save &as..." -msgstr "Сохранить &как..." - -#: pysollib/tile/menubar.py:384 pysollib/tk/menubar.py:381 -msgid "&Hold and quit" -msgstr "Со&храниться и выйти" - -#: 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:394 pysollib/tk/menubar.py:391 -msgid "&Edit" -msgstr "Р&едактировать" - -#: pysollib/tile/menubar.py:395 pysollib/tk/menubar.py:392 -msgid "&Undo" -msgstr "&Отмена" - -#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393 -msgid "&Redo" -msgstr "&Повтор" - -#: pysollib/tile/menubar.py:397 pysollib/tk/menubar.py:394 -msgid "Redo &all" -msgstr "Вернуть все" - -#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397 -msgid "&Set bookmark" -msgstr "Установить &закладку" - -#: 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:404 pysollib/tk/menubar.py:401 -msgid "Go&to bookmark" -msgstr "&Перейти к закладке" - -#: pysollib/tile/menubar.py:409 pysollib/tk/menubar.py:406 -msgid "&Clear bookmarks" -msgstr "О&чистить закладки" - -#: 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:414 pysollib/tk/menubar.py:411 -msgid "&Game" -msgstr "&Игра" - -#: pysollib/tile/menubar.py:415 pysollib/tk/menubar.py:412 -msgid "&Deal cards" -msgstr "&Сдать карты" - -#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413 -msgid "&Auto drop" -msgstr "С&бросить карты" - -#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414 -msgid "&Pause" -msgstr "&Пауза" - -#: pysollib/tile/menubar.py:420 pysollib/tk/menubar.py:417 -msgid "S&tatus..." -msgstr "С&татус" - -#: pysollib/tile/menubar.py:421 pysollib/tk/menubar.py:418 -msgid "&Comments..." -msgstr "&Комментарии..." - -#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420 -msgid "&Statistics" -msgstr "Ст&атистика" - -#: 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:425 pysollib/tile/menubar.py:433 -#: pysollib/tk/menubar.py:422 pysollib/tk/menubar.py:430 -msgid "All games..." -msgstr "Все игры..." - -#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424 -msgid "Session log..." -msgstr "Лог сессии..." - -#: pysollib/tile/menubar.py:428 pysollib/tk/menubar.py:425 -msgid "Full log..." -msgstr "Полный лог..." - -#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428 -msgid "D&emo statistics" -msgstr "Статистика демо" - -#: pysollib/tile/menubar.py:435 pysollib/tk/menubar.py:432 -msgid "&Assist" -msgstr "&Подсказка" - -#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433 -msgid "&Hint" -msgstr "Подсказать &ход" - -#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434 -msgid "Highlight p&iles" -msgstr "П&оказать группы" - -#: pysollib/tile/menubar.py:440 pysollib/tk/menubar.py:437 -msgid "&Demo" -msgstr "&Демо" - -#: pysollib/tile/menubar.py:441 pysollib/tk/menubar.py:438 -msgid "Demo (&all games)" -msgstr "Демо (&все игры)" - -#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440 -msgid "Piles description" -msgstr "Описания ячеек" - -#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444 -msgid "&Options" -msgstr "&Настройка" - -#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445 -msgid "&Player options..." -msgstr "Настройки &игрока..." - -#: pysollib/tile/menubar.py:449 pysollib/tk/menubar.py:446 -msgid "&Automatic play" -msgstr "Настройки &автоматической игры" - -#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447 -msgid "Auto &face up" -msgstr "Автоматически &переворачивать" - -#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448 -msgid "A&uto drop" -msgstr "А&втоматически сбрасывать карты" - -#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449 -msgid "Auto &deal" -msgstr "Автоматически &сдавать карты" - -#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451 -msgid "&Quick play" -msgstr "&Быстрая игра" - -#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452 -msgid "Assist &level" -msgstr "&Уровень подсказки" - -#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453 -msgid "Enable &undo" -msgstr "Разрешить &возврат хода" - -#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454 -msgid "Enable &bookmarks" -msgstr "Разрешить &закладки" - -#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455 -msgid "Enable &hint" -msgstr "Разрешить &подсказки" - -#: pysollib/tile/menubar.py:459 pysollib/tk/menubar.py:456 -msgid "Enable highlight p&iles" -msgstr "Разрешить показывать к&учи" - -#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457 -msgid "Enable highlight &cards" -msgstr "Разрешить показывать &карты" - -#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458 -msgid "Enable highlight same &rank" -msgstr "Разрешить показывать карты &одного достоинства" - -#: pysollib/tile/menubar.py:462 pysollib/tk/menubar.py:459 -msgid "Highlight &no matching" -msgstr "Подсветка отсутствия &совпадения" - -#: pysollib/tile/menubar.py:464 pysollib/tk/menubar.py:461 -msgid "&Show removed tiles (in Mahjongg games)" -msgstr "Показывать удалённые (в Маджонг)" - -#: pysollib/tile/menubar.py:465 pysollib/tk/menubar.py:462 -msgid "Show hint &arrow (in Shisen-Sho games)" -msgstr "Показывать стрелку (в Шисен-Сё)" - -#: pysollib/tile/menubar.py:467 pysollib/tk/menubar.py:464 -msgid "&Sound..." -msgstr "&Звук..." - -#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472 -msgid "Cards&et..." -msgstr "Коло&да..." - -#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473 -msgid "Table t&ile..." -msgstr "Игровой &стол..." - -#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475 -msgid "Card &background" -msgstr "&Рубашка карты" - -#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476 -msgid "Card &view" -msgstr "&Вид карты" - -#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477 -msgid "Card shado&w" -msgstr "Тень карты" - -#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478 -msgid "Shade &legal moves" -msgstr "Подсвечивать &разрешённые ходы" - -#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479 -msgid "&Negative cards bottom" -msgstr "&Негативные контуры карты" - -#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480 -msgid "Shrink face-down cards" -msgstr "Сжимать закрытые карты" - -#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481 -msgid "Shade &filled stacks" -msgstr "Затемнять заполненные ячейки" - -#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482 -msgid "A&nimations" -msgstr "Анимаци&я" - -#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483 -msgid "&None" -msgstr "&Нет" - -#: pysollib/tile/menubar.py:487 pysollib/tk/menubar.py:484 -msgid "&Timer based" -msgstr "Базирующаяся на &таймере" - -#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485 -msgid "&Fast" -msgstr "&Быстрая" - -#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486 -msgid "&Slow" -msgstr "&Медленная" - -#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487 -msgid "&Very slow" -msgstr "&Очень медленная" - -#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488 -msgid "&Mouse" -msgstr "&Мышь" - -#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489 -msgid "&Drag-and-Drop" -msgstr "" - -#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490 -msgid "&Point-and-Click" -msgstr "" - -#: pysollib/tile/menubar.py:494 pysollib/tk/menubar.py:491 -msgid "&Sticky mouse" -msgstr "&Липкая мышь" - -#: pysollib/tile/menubar.py:496 pysollib/tk/menubar.py:493 -msgid "Use mouse for undo/redo" -msgstr "Использовать мышь для вперёд/назад" - -#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495 -msgid "&Fonts..." -msgstr "&Шрифты..." - -#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496 -msgid "&Colors..." -msgstr "&Цвета..." - -#: pysollib/tile/menubar.py:500 pysollib/tk/menubar.py:497 -msgid "Time&outs..." -msgstr "Тайма&уты..." - -#: pysollib/tile/menubar.py:502 -msgid "Set t&heme" -msgstr "Установить &тему" - -#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:499 -msgid "&Toolbar" -msgstr "Панель и&нструментов" - -#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:501 -msgid "Stat&usbar" -msgstr "Панель с&остояния" - -#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:502 -msgid "Show &statusbar" -msgstr "Показывать панель состояния" - -#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:503 -msgid "Show &number of cards" -msgstr "Показывать количество карт" - -#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:504 -msgid "Show &help bar" -msgstr "Показывать панель помощи" - -#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:505 -msgid "Save games &geometry" -msgstr "Сохранение &геометрии игры" - -#: pysollib/tile/menubar.py:511 pysollib/tk/menubar.py:506 -msgid "&Demo logo" -msgstr "Д&емо лого" - -#: pysollib/tile/menubar.py:512 pysollib/tk/menubar.py:507 -msgid "Startup splash sc&reen" -msgstr "О&кно запуска" - -#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:513 -msgid "&Help" -msgstr "&Помощь" - -#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:514 -msgid "&Contents" -msgstr "&Содержание" - -#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:515 -msgid "&How to play" -msgstr "Как &играть" - -#: pysollib/tile/menubar.py:521 pysollib/tk/menubar.py:516 -msgid "&Rules for this game" -msgstr "&Правила текущей игры" - -#: pysollib/tile/menubar.py:522 pysollib/tk/menubar.py:517 -msgid "&License terms" -msgstr "&Лицензия" - -#: pysollib/tile/menubar.py:525 pysollib/tk/menubar.py:520 +#: pysollib/tile/menubar.py:358 pysollib/tile/menubar.py:524 +#: pysollib/tk/menubar.py:355 pysollib/tk/menubar.py:520 msgid "&About " msgstr "&О программе " -#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:632 +#: pysollib/tile/menubar.py:360 pysollib/tk/menubar.py:357 +msgid "&File" +msgstr "&Файл" + +#: pysollib/tile/menubar.py:362 pysollib/tk/menubar.py:359 +msgid "R&ecent games" +msgstr "Выбрать н&едавнюю игру" + +#: pysollib/tile/menubar.py:364 pysollib/tk/menubar.py:361 +msgid "Select &random game" +msgstr "С&лучайная игра" + +#: pysollib/tile/menubar.py:365 pysollib/tk/menubar.py:362 +msgid "&All games" +msgstr "&Все игры" + +#: pysollib/tile/menubar.py:366 pysollib/tk/menubar.py:363 +msgid "Games played and &won" +msgstr "&Выигранные игры" + +#: pysollib/tile/menubar.py:367 pysollib/tk/menubar.py:364 +msgid "Games played and ¬ won" +msgstr "&Невыигранные игры" + +#: pysollib/tile/menubar.py:368 pysollib/tk/menubar.py:365 +msgid "Games not &played" +msgstr "Не&сыгранные игры" + +#: pysollib/tile/menubar.py:369 pysollib/tk/menubar.py:366 +msgid "Select game by nu&mber..." +msgstr "Выбрать игру по &номеру..." + +#: pysollib/tile/menubar.py:371 pysollib/tk/menubar.py:368 +msgid "Fa&vorite games" +msgstr "&Избранные игры" + +#: pysollib/tile/menubar.py:372 pysollib/tk/menubar.py:369 +msgid "A&dd to favorites" +msgstr "&Добавить в избранное" + +#: pysollib/tile/menubar.py:373 pysollib/tk/menubar.py:370 +msgid "R&emove from favorites" +msgstr "&Удалить из избранных" + +#: pysollib/tile/menubar.py:375 pysollib/tk/menubar.py:372 +msgid "&Open..." +msgstr "&Открыть..." + +#: pysollib/tile/menubar.py:376 pysollib/tk/menubar.py:373 +msgid "&Save" +msgstr "&Сохранить" + +#: pysollib/tile/menubar.py:377 pysollib/tk/menubar.py:374 +msgid "Save &as..." +msgstr "Сохранить &как..." + +#: pysollib/tile/menubar.py:379 pysollib/tk/menubar.py:376 +msgid "&Hold and quit" +msgstr "Со&храниться и выйти" + +#: pysollib/tile/menubar.py:385 pysollib/tile/selectgame.py:398 +#: pysollib/tk/menubar.py:382 pysollib/tk/selectgame.py:407 +msgid "&Select" +msgstr "&Выбрать" + +#: pysollib/tile/menubar.py:390 pysollib/tk/menubar.py:387 +msgid "&Edit" +msgstr "Р&едактировать" + +#: pysollib/tile/menubar.py:391 pysollib/tk/menubar.py:388 +msgid "&Undo" +msgstr "&Отмена" + +#: pysollib/tile/menubar.py:392 pysollib/tk/menubar.py:389 +msgid "&Redo" +msgstr "&Повтор" + +#: pysollib/tile/menubar.py:393 pysollib/tk/menubar.py:390 +msgid "Redo &all" +msgstr "Вернуть все" + +#: pysollib/tile/menubar.py:396 pysollib/tk/menubar.py:393 +msgid "&Set bookmark" +msgstr "Установить &закладку" + +#: pysollib/tile/menubar.py:398 pysollib/tile/menubar.py:402 +#: pysollib/tk/menubar.py:395 pysollib/tk/menubar.py:399 +msgid "Bookmark %d" +msgstr "Закладка %d" + +#: pysollib/tile/menubar.py:400 pysollib/tk/menubar.py:397 +msgid "Go&to bookmark" +msgstr "&Перейти к закладке" + +#: pysollib/tile/menubar.py:405 pysollib/tk/menubar.py:402 +msgid "&Clear bookmarks" +msgstr "О&чистить закладки" + +#: pysollib/tile/menubar.py:408 pysollib/tile/toolbar.py:190 +#: pysollib/tk/menubar.py:405 pysollib/tk/toolbar.py:193 +msgid "Restart" +msgstr "Начало" + +#: pysollib/tile/menubar.py:410 pysollib/tk/menubar.py:407 +msgid "&Game" +msgstr "&Игра" + +#: pysollib/tile/menubar.py:411 pysollib/tk/menubar.py:408 +msgid "&Deal cards" +msgstr "&Сдать карты" + +#: pysollib/tile/menubar.py:412 pysollib/tk/menubar.py:409 +msgid "&Auto drop" +msgstr "С&бросить карты" + +#: pysollib/tile/menubar.py:413 pysollib/tk/menubar.py:410 +msgid "&Pause" +msgstr "&Пауза" + +#: pysollib/tile/menubar.py:416 pysollib/tk/menubar.py:413 +msgid "S&tatus..." +msgstr "С&татус" + +#: pysollib/tile/menubar.py:417 pysollib/tk/menubar.py:414 +msgid "&Comments..." +msgstr "&Комментарии..." + +#: pysollib/tile/menubar.py:419 pysollib/tk/menubar.py:416 +msgid "&Statistics" +msgstr "Ст&атистика" + +#: pysollib/tile/menubar.py:420 pysollib/tile/menubar.py:428 +#: pysollib/tk/menubar.py:417 pysollib/tk/menubar.py:425 +msgid "Current game..." +msgstr "Текущая игра..." + +#: pysollib/tile/menubar.py:421 pysollib/tile/menubar.py:429 +#: pysollib/tk/menubar.py:418 pysollib/tk/menubar.py:426 +msgid "All games..." +msgstr "Все игры..." + +#: pysollib/tile/menubar.py:423 pysollib/tk/menubar.py:420 +msgid "Session log..." +msgstr "Лог сессии..." + +#: pysollib/tile/menubar.py:424 pysollib/tk/menubar.py:421 +msgid "Full log..." +msgstr "Полный лог..." + +#: pysollib/tile/menubar.py:427 pysollib/tk/menubar.py:424 +msgid "D&emo statistics" +msgstr "Статистика демо" + +#: pysollib/tile/menubar.py:431 pysollib/tk/menubar.py:428 +msgid "&Assist" +msgstr "&Подсказка" + +#: pysollib/tile/menubar.py:432 pysollib/tk/menubar.py:429 +msgid "&Hint" +msgstr "Подсказать &ход" + +#: pysollib/tile/menubar.py:433 pysollib/tk/menubar.py:430 +msgid "Highlight p&iles" +msgstr "П&оказать группы" + +#: pysollib/tile/menubar.py:436 pysollib/tk/menubar.py:433 +msgid "&Demo" +msgstr "&Демо" + +#: pysollib/tile/menubar.py:437 pysollib/tk/menubar.py:434 +msgid "Demo (&all games)" +msgstr "Демо (&все игры)" + +#: pysollib/tile/menubar.py:439 pysollib/tk/menubar.py:436 +msgid "Piles description" +msgstr "Описания ячеек" + +#: pysollib/tile/menubar.py:443 pysollib/tk/menubar.py:440 +msgid "&Options" +msgstr "&Настройка" + +#: pysollib/tile/menubar.py:444 pysollib/tk/menubar.py:441 +msgid "&Player options..." +msgstr "Настройки &игрока..." + +#: pysollib/tile/menubar.py:445 pysollib/tk/menubar.py:442 +msgid "&Automatic play" +msgstr "Настройки &автоматической игры" + +#: pysollib/tile/menubar.py:446 pysollib/tk/menubar.py:443 +msgid "Auto &face up" +msgstr "Автоматически &переворачивать" + +#: pysollib/tile/menubar.py:447 pysollib/tk/menubar.py:444 +msgid "A&uto drop" +msgstr "А&втоматически сбрасывать карты" + +#: pysollib/tile/menubar.py:448 pysollib/tk/menubar.py:445 +msgid "Auto &deal" +msgstr "Автоматически &сдавать карты" + +#: pysollib/tile/menubar.py:450 pysollib/tk/menubar.py:447 +msgid "&Quick play" +msgstr "&Быстрая игра" + +#: pysollib/tile/menubar.py:451 pysollib/tk/menubar.py:448 +msgid "Assist &level" +msgstr "&Уровень подсказки" + +#: pysollib/tile/menubar.py:452 pysollib/tk/menubar.py:449 +msgid "Enable &undo" +msgstr "Разрешить &возврат хода" + +#: pysollib/tile/menubar.py:453 pysollib/tk/menubar.py:450 +msgid "Enable &bookmarks" +msgstr "Разрешить &закладки" + +#: pysollib/tile/menubar.py:454 pysollib/tk/menubar.py:451 +msgid "Enable &hint" +msgstr "Разрешить &подсказки" + +#: pysollib/tile/menubar.py:455 pysollib/tk/menubar.py:452 +msgid "Enable highlight p&iles" +msgstr "Разрешить показывать к&учи" + +#: pysollib/tile/menubar.py:456 pysollib/tk/menubar.py:453 +msgid "Enable highlight &cards" +msgstr "Разрешить показывать &карты" + +#: pysollib/tile/menubar.py:457 pysollib/tk/menubar.py:454 +msgid "Enable highlight same &rank" +msgstr "Разрешить показывать карты &одного достоинства" + +#: pysollib/tile/menubar.py:458 pysollib/tk/menubar.py:455 +msgid "Highlight &no matching" +msgstr "Подсветка отсутствия &совпадения" + +#: pysollib/tile/menubar.py:460 pysollib/tk/menubar.py:457 +msgid "&Show removed tiles (in Mahjongg games)" +msgstr "Показывать удалённые (в Маджонг)" + +#: pysollib/tile/menubar.py:461 pysollib/tk/menubar.py:458 +msgid "Show hint &arrow (in Shisen-Sho games)" +msgstr "Показывать стрелку (в Шисен-Сё)" + +#: pysollib/tile/menubar.py:463 pysollib/tk/menubar.py:460 +msgid "&Sound..." +msgstr "&Звук..." + +#: pysollib/tile/menubar.py:471 pysollib/tk/menubar.py:468 +msgid "Cards&et..." +msgstr "Коло&да..." + +#: pysollib/tile/menubar.py:472 pysollib/tk/menubar.py:469 +msgid "Table t&ile..." +msgstr "Игровой &стол..." + +#: pysollib/tile/menubar.py:474 pysollib/tk/menubar.py:471 +msgid "Card &background" +msgstr "&Рубашка карты" + +#: pysollib/tile/menubar.py:475 pysollib/tk/menubar.py:472 +msgid "Card &view" +msgstr "&Вид карты" + +#: pysollib/tile/menubar.py:476 pysollib/tk/menubar.py:473 +msgid "Card shado&w" +msgstr "Тень карты" + +#: pysollib/tile/menubar.py:477 pysollib/tk/menubar.py:474 +msgid "Shade &legal moves" +msgstr "Подсвечивать &разрешённые ходы" + +#: pysollib/tile/menubar.py:478 pysollib/tk/menubar.py:475 +msgid "&Negative cards bottom" +msgstr "&Негативные контуры карты" + +#: pysollib/tile/menubar.py:479 pysollib/tk/menubar.py:476 +msgid "Shrink face-down cards" +msgstr "Сжимать закрытые карты" + +#: pysollib/tile/menubar.py:480 pysollib/tk/menubar.py:477 +msgid "Shade &filled stacks" +msgstr "Затемнять заполненные ячейки" + +#: pysollib/tile/menubar.py:481 pysollib/tk/menubar.py:478 +msgid "A&nimations" +msgstr "Анимаци&я" + +#: pysollib/tile/menubar.py:482 pysollib/tk/menubar.py:479 +msgid "&None" +msgstr "&Нет" + +#: pysollib/tile/menubar.py:483 pysollib/tk/menubar.py:480 +msgid "&Timer based" +msgstr "Базирующаяся на &таймере" + +#: pysollib/tile/menubar.py:484 pysollib/tk/menubar.py:481 +msgid "&Fast" +msgstr "&Быстрая" + +#: pysollib/tile/menubar.py:485 pysollib/tk/menubar.py:482 +msgid "&Slow" +msgstr "&Медленная" + +#: pysollib/tile/menubar.py:486 pysollib/tk/menubar.py:483 +msgid "&Very slow" +msgstr "&Очень медленная" + +#: pysollib/tile/menubar.py:488 pysollib/tk/menubar.py:485 +msgid "&Redeal animation" +msgstr "Анимация пере&сдачи" + +#: pysollib/tile/menubar.py:489 pysollib/tk/menubar.py:486 +msgid "&Winning animation" +msgstr "Анимация &победы" + +#: pysollib/tile/menubar.py:490 pysollib/tk/menubar.py:487 +msgid "&Mouse" +msgstr "&Мышь" + +#: pysollib/tile/menubar.py:491 pysollib/tk/menubar.py:488 +msgid "&Drag-and-Drop" +msgstr "" + +#: pysollib/tile/menubar.py:492 pysollib/tk/menubar.py:489 +msgid "&Point-and-Click" +msgstr "" + +#: pysollib/tile/menubar.py:493 pysollib/tk/menubar.py:490 +msgid "&Sticky mouse" +msgstr "&Липкая мышь" + +#: pysollib/tile/menubar.py:495 pysollib/tk/menubar.py:492 +msgid "Use mouse for undo/redo" +msgstr "Использовать мышь для вперёд/назад" + +#: pysollib/tile/menubar.py:497 pysollib/tk/menubar.py:494 +msgid "&Fonts..." +msgstr "&Шрифты..." + +#: pysollib/tile/menubar.py:498 pysollib/tk/menubar.py:495 +msgid "&Colors..." +msgstr "&Цвета..." + +#: pysollib/tile/menubar.py:499 pysollib/tk/menubar.py:496 +msgid "Time&outs..." +msgstr "Тайма&уты..." + +#: pysollib/tile/menubar.py:502 pysollib/tk/menubar.py:498 +msgid "&Toolbar" +msgstr "Панель и&нструментов" + +#: pysollib/tile/menubar.py:504 pysollib/tk/menubar.py:500 +msgid "Stat&usbar" +msgstr "Панель с&остояния" + +#: pysollib/tile/menubar.py:505 pysollib/tk/menubar.py:501 +msgid "Show &statusbar" +msgstr "Показывать панель состояния" + +#: pysollib/tile/menubar.py:506 pysollib/tk/menubar.py:502 +msgid "Show &number of cards" +msgstr "Показывать количество карт" + +#: pysollib/tile/menubar.py:507 pysollib/tk/menubar.py:503 +msgid "Show &help bar" +msgstr "Показывать панель помощи" + +#: pysollib/tile/menubar.py:508 pysollib/tk/menubar.py:504 +msgid "Save games &geometry" +msgstr "Сохранение &геометрии игры" + +#: pysollib/tile/menubar.py:509 pysollib/tk/menubar.py:505 +msgid "&Demo logo" +msgstr "Д&емо лого" + +#: pysollib/tile/menubar.py:510 pysollib/tk/menubar.py:506 +msgid "Startup splash sc&reen" +msgstr "О&кно запуска" + +#: pysollib/tile/menubar.py:516 pysollib/tk/menubar.py:512 +msgid "&Help" +msgstr "&Помощь" + +#: pysollib/tile/menubar.py:517 pysollib/tk/menubar.py:513 +msgid "&Contents" +msgstr "&Содержание" + +#: pysollib/tile/menubar.py:518 pysollib/tk/menubar.py:514 +msgid "&How to play" +msgstr "Как &играть" + +#: pysollib/tile/menubar.py:519 pysollib/tk/menubar.py:515 +msgid "&Rules for this game" +msgstr "&Правила текущей игры" + +#: pysollib/tile/menubar.py:520 pysollib/tk/menubar.py:516 +msgid "&License terms" +msgstr "&Лицензия" + +#: pysollib/tile/menubar.py:637 pysollib/tk/menubar.py:633 msgid "All &games..." msgstr "&Все игры..." -#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:634 +#: pysollib/tile/menubar.py:639 pysollib/tk/menubar.py:635 msgid "Playable pre&view..." msgstr "Играемый &предпросмотр..." -#: pysollib/tile/menubar.py:688 pysollib/tk/menubar.py:683 +#: pysollib/tile/menubar.py:690 pysollib/tk/menubar.py:686 msgid "&Mahjongg games" msgstr "Игры маджонг" -#: pysollib/tile/menubar.py:726 pysollib/tk/menubar.py:721 +#: pysollib/tile/menubar.py:728 pysollib/tk/menubar.py:724 msgid "&Popular games" msgstr "&Популярные игры" -#: pysollib/tile/menubar.py:734 pysollib/tk/menubar.py:729 +#: pysollib/tile/menubar.py:736 pysollib/tk/menubar.py:732 msgid "&French games" msgstr "&Классические игры" -#: pysollib/tile/menubar.py:741 pysollib/tk/menubar.py:736 +#: pysollib/tile/menubar.py:743 pysollib/tk/menubar.py:739 msgid "&Oriental games" msgstr "&Восточные игры" -#: pysollib/tile/menubar.py:749 pysollib/tk/menubar.py:744 +#: pysollib/tile/menubar.py:751 pysollib/tk/menubar.py:747 msgid "&Special games" msgstr "&Особые игры" -#: pysollib/tile/menubar.py:755 pysollib/tk/menubar.py:750 +#: pysollib/tile/menubar.py:757 pysollib/tk/menubar.py:753 msgid "&All games by name" msgstr "&Все игры по имени" -#: pysollib/tile/menubar.py:1028 pysollib/tk/menubar.py:1023 +#: pysollib/tile/menubar.py:1030 pysollib/tk/menubar.py:1026 #: data/glade-translations:72 msgid "Sound settings" msgstr "Настройка звука" -#: pysollib/tile/menubar.py:1128 pysollib/tk/menubar.py:1127 +#: pysollib/tile/menubar.py:1138 pysollib/tk/menubar.py:1138 msgid "Select " msgstr "Выбрать " -#: pysollib/tile/menubar.py:1175 pysollib/tk/menubar.py:1179 +#: pysollib/tile/menubar.py:1185 pysollib/tk/menubar.py:1190 msgid "Select table background" msgstr "Выбрать фоновое изображение" -#: pysollib/tile/menubar.py:1330 +#: pysollib/tile/menubar.py:1329 msgid "Change theme" msgstr "Изменение темы" -#: pysollib/tile/menubar.py:1331 +#: pysollib/tile/menubar.py:1330 msgid "" "This settings will take effect\n" "the next time you restart " @@ -2648,6 +2658,36 @@ msgstr "" "Эта установка вступит в силу\n" "при следующем запуске " +#: pysollib/tile/menubar.py:1338 +msgid "Set t&heme" +msgstr "Установить &тему" + +#: pysollib/tile/menubar.py:1344 +#, fuzzy +msgid "Default" +msgstr "Сдача" + +#: pysollib/tile/menubar.py:1345 +#, fuzzy +msgid "Classic" +msgstr "Классический вид" + +#: pysollib/tile/menubar.py:1346 +msgid "Revitalized" +msgstr "" + +#: pysollib/tile/menubar.py:1347 +msgid "Windows native" +msgstr "" + +#: pysollib/tile/menubar.py:1348 +msgid "XP Native" +msgstr "" + +#: pysollib/tile/menubar.py:1349 +msgid "Aqua" +msgstr "" + #: pysollib/tile/playeroptionsdialog.py:72 #: pysollib/tk/playeroptionsdialog.py:112 msgid "" @@ -2723,12 +2763,12 @@ msgstr "Большие колоды" msgid "XLarge cardsets" msgstr "Очень большие колоды" -#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1124 +#: pysollib/tile/selectcardset.py:236 pysollib/tk/menubar.py:1135 msgid "&Info..." msgstr "&Информация..." -#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1122 -#: pysollib/tk/menubar.py:1124 pysollib/tk/selectcardset.py:241 +#: pysollib/tile/selectcardset.py:237 pysollib/tk/menubar.py:1133 +#: pysollib/tk/menubar.py:1135 pysollib/tk/selectcardset.py:241 msgid "&Load" msgstr "&Загрузить" @@ -2736,7 +2776,7 @@ msgstr "&Загрузить" msgid "About cardset" msgstr "О наборе карт" -#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:354 +#: pysollib/tile/selectcardset.py:327 pysollib/tile/selectgame.py:355 #: pysollib/tk/selectcardset.py:336 pysollib/tk/selectgame.py:365 msgid "Type:" msgstr "Тип:" @@ -2753,10 +2793,6 @@ msgstr "Национальность:" msgid "Year:" msgstr "Год:" -#: pysollib/tile/selectcardset.py:332 pysollib/tk/selectcardset.py:341 -msgid "Size:" -msgstr "Размер:" - #: pysollib/tile/selectgame.py:101 pysollib/tk/selectgame.py:100 msgid "(no games)" msgstr "(нет игр)" @@ -2786,7 +2822,7 @@ msgid "by Compatibility" msgstr "По совместимости с другими программами" #: pysollib/tile/selectgame.py:153 pysollib/tk/selectgame.py:152 -msgid "New games in v." +msgid "New games in v. " msgstr "Новые игры в версии " #: pysollib/tile/selectgame.py:156 pysollib/tk/selectgame.py:155 @@ -2809,27 +2845,27 @@ msgstr "Популярные игры" msgid "by Skill Level" msgstr "По уровню мастерства" -#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:523 +#: pysollib/tile/selectgame.py:171 pysollib/tile/selectgame.py:524 #: pysollib/tk/selectgame.py:170 pysollib/tk/selectgame.py:533 msgid "Luck only" msgstr "Только на везение" -#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:524 +#: pysollib/tile/selectgame.py:172 pysollib/tile/selectgame.py:525 #: pysollib/tk/selectgame.py:171 pysollib/tk/selectgame.py:534 msgid "Mostly luck" msgstr "В основном на везение" -#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:525 +#: pysollib/tile/selectgame.py:173 pysollib/tile/selectgame.py:526 #: pysollib/tk/selectgame.py:172 pysollib/tk/selectgame.py:535 msgid "Balanced" msgstr "Сбалансированные" -#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:526 +#: pysollib/tile/selectgame.py:174 pysollib/tile/selectgame.py:527 #: pysollib/tk/selectgame.py:173 pysollib/tk/selectgame.py:536 msgid "Mostly skill" msgstr "В основном на мастерство" -#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:527 +#: pysollib/tile/selectgame.py:175 pysollib/tile/selectgame.py:528 #: pysollib/tk/selectgame.py:174 pysollib/tk/selectgame.py:537 msgid "Skill only" msgstr "Только на мастерство" @@ -2946,81 +2982,81 @@ msgstr "Открытые игры (все карты видны)" msgid "Relaxed Variants" msgstr "Облегчённые варианты" -#: pysollib/tile/selectgame.py:341 pysollib/tk/selectgame.py:349 +#: pysollib/tile/selectgame.py:342 pysollib/tk/selectgame.py:349 msgid "About game" msgstr "Об игре " -#: pysollib/tile/selectgame.py:351 pysollib/tk/selectgame.py:362 +#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:362 msgid "Name:" msgstr "Имя:" -#: pysollib/tile/selectgame.py:352 pysollib/tk/selectgame.py:363 +#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:363 msgid "Alternate names:" msgstr "Другие имена:" -#: pysollib/tile/selectgame.py:353 pysollib/tk/selectgame.py:364 +#: pysollib/tile/selectgame.py:354 pysollib/tk/selectgame.py:364 msgid "Category:" msgstr "Категория:" -#: pysollib/tile/selectgame.py:355 pysollib/tk/selectgame.py:366 +#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:366 msgid "Skill level:" msgstr "Уровень мастерства:" -#: pysollib/tile/selectgame.py:356 pysollib/tk/selectgame.py:367 +#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:367 msgid "Decks:" msgstr "Колод:" -#: pysollib/tile/selectgame.py:357 pysollib/tk/selectgame.py:368 +#: pysollib/tile/selectgame.py:358 pysollib/tk/selectgame.py:368 msgid "Redeals:" msgstr "Пересдач:" -#: pysollib/tile/selectgame.py:359 pysollib/tk/selectgame.py:370 +#: pysollib/tile/selectgame.py:360 pysollib/tk/selectgame.py:370 msgid "Played:" msgstr "Играл:" -#: pysollib/tile/selectgame.py:360 pysollib/tile/tkstats.py:107 +#: pysollib/tile/selectgame.py:361 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:361 pysollib/tile/tkstats.py:108 +#: pysollib/tile/selectgame.py:362 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:362 pysollib/tile/tkstats.py:615 -#: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:736 +#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622 +#: pysollib/tk/selectgame.py:373 pysollib/tk/tkstats.py:738 #: data/glade-translations:18 msgid "Playing time:" msgstr "Игровое время:" -#: pysollib/tile/selectgame.py:363 pysollib/tile/tkstats.py:622 -#: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:743 +#: pysollib/tile/selectgame.py:364 pysollib/tile/tkstats.py:629 +#: pysollib/tk/selectgame.py:374 pysollib/tk/tkstats.py:745 #: data/glade-translations:19 msgid "Moves:" msgstr "Ходов:" -#: pysollib/tile/selectgame.py:364 pysollib/tk/selectgame.py:375 +#: pysollib/tile/selectgame.py:365 pysollib/tk/selectgame.py:375 msgid "% won:" msgstr "% побед:" -#: pysollib/tile/selectgame.py:396 pysollib/tk/selectgame.py:407 +#: pysollib/tile/selectgame.py:397 pysollib/tk/selectgame.py:407 msgid "&Rules" msgstr "&Правила" -#: pysollib/tile/selectgame.py:476 pysollib/tk/selectgame.py:486 +#: pysollib/tile/selectgame.py:477 pysollib/tk/selectgame.py:486 msgid "Playable Preview - " msgstr "Играемый предпросмотр - " -#: pysollib/tile/selectgame.py:530 pysollib/tk/selectgame.py:540 +#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:540 msgid "variable" msgstr "переменное кол-во" -#: pysollib/tile/selectgame.py:531 pysollib/tk/selectgame.py:541 +#: pysollib/tile/selectgame.py:532 pysollib/tk/selectgame.py:541 msgid "unlimited" msgstr "неограниченное кол-во" @@ -3104,13 +3140,13 @@ msgstr "Перемещение" msgid "No move" msgstr "Отмена перемещения" -#: pysollib/tile/soundoptionsdialog.py:94 pysollib/tile/toolbar.py:242 -#: pysollib/tk/soundoptionsdialog.py:92 pysollib/tk/toolbar.py:203 +#: pysollib/tile/soundoptionsdialog.py:94 pysollib/tile/toolbar.py:195 +#: pysollib/tk/soundoptionsdialog.py:92 pysollib/tk/toolbar.py:198 msgid "Undo" msgstr "Отмена" -#: pysollib/tile/soundoptionsdialog.py:95 pysollib/tile/toolbar.py:243 -#: pysollib/tk/soundoptionsdialog.py:93 pysollib/tk/toolbar.py:204 +#: pysollib/tile/soundoptionsdialog.py:95 pysollib/tile/toolbar.py:196 +#: pysollib/tk/soundoptionsdialog.py:93 pysollib/tk/toolbar.py:199 msgid "Redo" msgstr "Повтор" @@ -3153,7 +3189,6 @@ msgid "Music volume:" msgstr "Уровень музыки:" #: pysollib/tile/soundoptionsdialog.py:145 -#: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76 msgid "Enable samples" msgstr "Включить звуки" @@ -3176,11 +3211,11 @@ msgstr "" "Изменения установок DirectX вступят в силу\n" "при следующем запуске " -#: pysollib/tile/statusbar.py:158 pysollib/tk/statusbar.py:157 +#: pysollib/tile/statusbar.py:148 pysollib/tk/statusbar.py:159 msgid "Moves/Total moves" msgstr "Ходов/Всего ходов" -#: pysollib/tile/statusbar.py:160 pysollib/tk/statusbar.py:159 +#: pysollib/tile/statusbar.py:150 pysollib/tk/statusbar.py:161 msgid "Games played: won/lost" msgstr "Игр: выиграно/проиграно" @@ -3209,19 +3244,19 @@ msgstr "Подсветка карты:" msgid "Highlight same rank:" msgstr "Подсветка одинаковых карт:" -#: pysollib/tile/tkconst.py:105 pysollib/tk/tkconst.py:103 +#: pysollib/tile/tkconst.py:109 pysollib/tk/tkconst.py:107 msgid "Icons only" msgstr "Только пиктограммы" -#: pysollib/tile/tkconst.py:106 pysollib/tk/tkconst.py:104 +#: pysollib/tile/tkconst.py:110 pysollib/tk/tkconst.py:108 msgid "Text below icons" msgstr "Текст под пиктограммами" -#: pysollib/tile/tkconst.py:107 pysollib/tk/tkconst.py:105 +#: pysollib/tile/tkconst.py:111 pysollib/tk/tkconst.py:109 msgid "Text beside icons" msgstr "Текст рядом с пиктограммами" -#: pysollib/tile/tkconst.py:108 pysollib/tk/tkconst.py:106 +#: pysollib/tile/tkconst.py:112 pysollib/tk/tkconst.py:110 msgid "Text only" msgstr "Только текст" @@ -3282,53 +3317,53 @@ msgstr "Текущая сессия" msgid "Total:" msgstr "Всего:" -#: pysollib/tile/tkstats.py:201 pysollib/tk/tkstats.py:278 +#: pysollib/tile/tkstats.py:204 pysollib/tk/tkstats.py:278 msgid "No games" msgstr "Нет игр" -#: pysollib/tile/tkstats.py:212 pysollib/tk/tkstats.py:289 +#: pysollib/tile/tkstats.py:215 pysollib/tk/tkstats.py:289 msgid "&All games..." msgstr "&Все игры..." -#: pysollib/tile/tkstats.py:214 pysollib/tk/tkstats.py:291 +#: pysollib/tile/tkstats.py:217 pysollib/tk/tkstats.py:291 msgid "&Reset..." msgstr "О&чистить..." -#: pysollib/tile/tkstats.py:380 +#: pysollib/tile/tkstats.py:383 msgid "&Play this game" msgstr "&Выбрать игру" -#: pysollib/tile/tkstats.py:382 pysollib/tile/tkstats.py:451 -#: pysollib/tile/tkstats.py:474 pysollib/tk/tkstats.py:513 -#: pysollib/tk/tkstats.py:579 pysollib/tk/tkstats.py:594 +#: pysollib/tile/tkstats.py:385 pysollib/tile/tkstats.py:458 +#: pysollib/tile/tkstats.py:481 pysollib/tk/tkstats.py:515 +#: pysollib/tk/tkstats.py:581 pysollib/tk/tkstats.py:596 msgid "&Save to file" msgstr "&Сохранить в файл" -#: pysollib/tile/tkstats.py:383 pysollib/tk/tkstats.py:514 +#: pysollib/tile/tkstats.py:386 pysollib/tk/tkstats.py:516 msgid "&Reset all..." msgstr "О&чистить все..." -#: pysollib/tile/tkstats.py:450 pysollib/tk/tkstats.py:579 +#: pysollib/tile/tkstats.py:457 pysollib/tk/tkstats.py:581 msgid "Session &log..." msgstr "&Лог сессии..." -#: pysollib/tile/tkstats.py:473 pysollib/tk/tkstats.py:594 +#: pysollib/tile/tkstats.py:480 pysollib/tk/tkstats.py:596 msgid "&Full log..." msgstr "&Полный лог..." -#: pysollib/tile/tkstats.py:489 pysollib/tk/tkstats.py:609 +#: pysollib/tile/tkstats.py:496 pysollib/tk/tkstats.py:611 msgid "Highlight piles: " msgstr "Подсветка групп: " -#: pysollib/tile/tkstats.py:490 pysollib/tk/tkstats.py:610 +#: pysollib/tile/tkstats.py:497 pysollib/tk/tkstats.py:612 msgid "Highlight cards: " msgstr "Подсветка карт: " -#: pysollib/tile/tkstats.py:491 pysollib/tk/tkstats.py:611 +#: pysollib/tile/tkstats.py:498 pysollib/tk/tkstats.py:613 msgid "Highlight same rank: " msgstr "Подсветка карт одного достоинства: " -#: pysollib/tile/tkstats.py:494 pysollib/tk/tkstats.py:614 +#: pysollib/tile/tkstats.py:501 pysollib/tk/tkstats.py:616 msgid "" "\n" "Redeals: " @@ -3336,7 +3371,7 @@ msgstr "" "\n" "Раздач: " -#: pysollib/tile/tkstats.py:495 pysollib/tk/tkstats.py:615 +#: pysollib/tile/tkstats.py:502 pysollib/tk/tkstats.py:617 msgid "" "\n" "Cards in Talon: " @@ -3344,7 +3379,7 @@ msgstr "" "\n" "Карт в колоде: " -#: pysollib/tile/tkstats.py:497 pysollib/tk/tkstats.py:617 +#: pysollib/tile/tkstats.py:504 pysollib/tk/tkstats.py:619 msgid "" "\n" "Cards in Waste: " @@ -3352,7 +3387,7 @@ msgstr "" "\n" "Карт в сбросе: " -#: pysollib/tile/tkstats.py:499 pysollib/tk/tkstats.py:619 +#: pysollib/tile/tkstats.py:506 pysollib/tk/tkstats.py:621 msgid "" "\n" "Cards in Foundations: " @@ -3360,87 +3395,87 @@ msgstr "" "\n" "Карт в игре: " -#: pysollib/tile/tkstats.py:502 pysollib/tk/tkstats.py:622 +#: pysollib/tile/tkstats.py:509 pysollib/tk/tkstats.py:624 msgid "Game status" msgstr "Статус игры" -#: pysollib/tile/tkstats.py:505 pysollib/tk/tkstats.py:625 +#: pysollib/tile/tkstats.py:512 pysollib/tk/tkstats.py:627 msgid "Playing time: " msgstr "Игровое время: " -#: pysollib/tile/tkstats.py:506 pysollib/tk/tkstats.py:626 +#: pysollib/tile/tkstats.py:513 pysollib/tk/tkstats.py:628 msgid "Started at: " msgstr "Игра начата: " -#: pysollib/tile/tkstats.py:507 pysollib/tk/tkstats.py:627 +#: pysollib/tile/tkstats.py:514 pysollib/tk/tkstats.py:629 msgid "Moves: " msgstr "Ходов: " -#: pysollib/tile/tkstats.py:508 pysollib/tk/tkstats.py:628 +#: pysollib/tile/tkstats.py:515 pysollib/tk/tkstats.py:630 msgid "Undo moves: " msgstr "Отменено ходов: " -#: pysollib/tile/tkstats.py:509 pysollib/tk/tkstats.py:629 +#: pysollib/tile/tkstats.py:516 pysollib/tk/tkstats.py:631 msgid "Bookmark moves: " msgstr "Ходов по закладкам: " -#: pysollib/tile/tkstats.py:510 pysollib/tk/tkstats.py:630 +#: pysollib/tile/tkstats.py:517 pysollib/tk/tkstats.py:632 msgid "Demo moves: " msgstr "Демо ходов: " -#: pysollib/tile/tkstats.py:511 pysollib/tk/tkstats.py:631 +#: pysollib/tile/tkstats.py:518 pysollib/tk/tkstats.py:633 msgid "Total player moves: " msgstr "Всего ходов игрока:" -#: pysollib/tile/tkstats.py:512 pysollib/tk/tkstats.py:632 +#: pysollib/tile/tkstats.py:519 pysollib/tk/tkstats.py:634 msgid "Total moves in this game: " msgstr "Всего ходов в этой игре: " -#: pysollib/tile/tkstats.py:513 pysollib/tk/tkstats.py:633 +#: pysollib/tile/tkstats.py:520 pysollib/tk/tkstats.py:635 msgid "Hints: " msgstr "Подсказок: " -#: pysollib/tile/tkstats.py:517 pysollib/tk/tkstats.py:637 +#: pysollib/tile/tkstats.py:524 pysollib/tk/tkstats.py:639 msgid "&Statistics..." msgstr "&Статистика..." -#: pysollib/tile/tkstats.py:542 pysollib/tk/tkstats.py:663 +#: pysollib/tile/tkstats.py:549 pysollib/tk/tkstats.py:665 msgid "N" msgstr "N" -#: pysollib/tile/tkstats.py:551 pysollib/tk/tkstats.py:672 +#: pysollib/tile/tkstats.py:558 pysollib/tk/tkstats.py:674 msgid "Result" msgstr "Результат" -#: pysollib/tile/tkstats.py:607 pysollib/tk/tkstats.py:728 +#: pysollib/tile/tkstats.py:614 pysollib/tk/tkstats.py:730 #: data/glade-translations:21 msgid "Minimum" msgstr "Минимум" -#: pysollib/tile/tkstats.py:608 pysollib/tk/tkstats.py:729 +#: pysollib/tile/tkstats.py:615 pysollib/tk/tkstats.py:731 #: data/glade-translations:22 msgid "Maximum" msgstr "Максимум" -#: pysollib/tile/tkstats.py:609 pysollib/tk/tkstats.py:730 +#: pysollib/tile/tkstats.py:616 pysollib/tk/tkstats.py:732 #: data/glade-translations:23 msgid "Average" msgstr "Среднее" -#: pysollib/tile/tkstats.py:629 pysollib/tk/tkstats.py:750 +#: pysollib/tile/tkstats.py:636 pysollib/tk/tkstats.py:752 #: data/glade-translations:20 msgid "Total moves:" msgstr "Всего ходов:" -#: pysollib/tile/tkstats.py:660 pysollib/tk/tkstats.py:781 +#: pysollib/tile/tkstats.py:667 pysollib/tk/tkstats.py:783 msgid "No TOP for this game" msgstr "TOP для текущей игры отсутствует" -#: pysollib/tile/toolbar.py:236 pysollib/tk/toolbar.py:197 +#: pysollib/tile/toolbar.py:189 pysollib/tk/toolbar.py:192 msgid "New" msgstr "Новая" -#: pysollib/tile/toolbar.py:237 pysollib/tk/toolbar.py:198 +#: pysollib/tile/toolbar.py:190 pysollib/tk/toolbar.py:193 msgid "" "Restart the\n" "current game" @@ -3448,11 +3483,11 @@ msgstr "" "Начать текущую игру\n" "с начала" -#: pysollib/tile/toolbar.py:239 pysollib/tk/toolbar.py:200 +#: pysollib/tile/toolbar.py:192 pysollib/tk/toolbar.py:195 msgid "Open" msgstr "Открыть" -#: pysollib/tile/toolbar.py:239 pysollib/tk/toolbar.py:200 +#: pysollib/tile/toolbar.py:192 pysollib/tk/toolbar.py:195 msgid "" "Open a\n" "saved game" @@ -3460,78 +3495,66 @@ msgstr "" "Открыть\n" "сохранённую игру" -#: pysollib/tile/toolbar.py:240 pysollib/tk/toolbar.py:201 +#: pysollib/tile/toolbar.py:193 pysollib/tk/toolbar.py:196 msgid "Save" msgstr "Сохранить" -#: pysollib/tile/toolbar.py:240 pysollib/tk/toolbar.py:201 +#: pysollib/tile/toolbar.py:193 pysollib/tk/toolbar.py:196 msgid "Save game" msgstr "Сохранить игру" -#: pysollib/tile/toolbar.py:242 pysollib/tk/toolbar.py:203 +#: pysollib/tile/toolbar.py:195 pysollib/tk/toolbar.py:198 msgid "Undo last move" msgstr "Отменить последний ход" -#: pysollib/tile/toolbar.py:243 pysollib/tk/toolbar.py:204 +#: pysollib/tile/toolbar.py:196 pysollib/tk/toolbar.py:199 msgid "Redo last move" msgstr "Вернуть ход" -#: pysollib/tile/toolbar.py:244 pysollib/tk/toolbar.py:205 +#: pysollib/tile/toolbar.py:197 pysollib/tk/toolbar.py:200 msgid "Auto drop cards" msgstr "Автоматически сбросить карты" -#: pysollib/tile/toolbar.py:244 pysollib/tk/toolbar.py:205 +#: pysollib/tile/toolbar.py:197 pysollib/tk/toolbar.py:200 msgid "Autodrop" msgstr "Сбросить" -#: pysollib/tile/toolbar.py:245 pysollib/tk/toolbar.py:206 +#: pysollib/tile/toolbar.py:198 pysollib/tk/toolbar.py:201 msgid "Pause" msgstr "Пауза" -#: pysollib/tile/toolbar.py:245 pysollib/tk/toolbar.py:206 +#: pysollib/tile/toolbar.py:198 pysollib/tk/toolbar.py:201 msgid "Pause game" msgstr "Приостановить игру" -#: pysollib/tile/toolbar.py:247 pysollib/tk/toolbar.py:208 +#: pysollib/tile/toolbar.py:200 pysollib/tk/toolbar.py:203 msgid "View statistics" msgstr "Посмотреть статистику" -#: pysollib/tile/toolbar.py:248 pysollib/tk/toolbar.py:209 +#: pysollib/tile/toolbar.py:201 pysollib/tk/toolbar.py:204 msgid "Rules" msgstr "Правила" -#: pysollib/tile/toolbar.py:248 pysollib/tk/toolbar.py:209 +#: pysollib/tile/toolbar.py:201 pysollib/tk/toolbar.py:204 msgid "Rules for this game" msgstr "Правила текущей игры" -#: pysollib/tile/toolbar.py:250 pysollib/tk/toolbar.py:211 +#: pysollib/tile/toolbar.py:203 pysollib/tk/toolbar.py:206 msgid "Quit" msgstr "Выйти" -#: pysollib/tile/toolbar.py:265 pysollib/tk/toolbar.py:225 +#: pysollib/tile/toolbar.py:217 pysollib/tk/toolbar.py:220 msgid "Player" msgstr "Игрок" -#: pysollib/tile/toolbar.py:266 pysollib/tk/toolbar.py:226 +#: pysollib/tile/toolbar.py:218 pysollib/tk/toolbar.py:221 msgid "Player options" msgstr "Установки игрока" -#: pysollib/tile/toolbar.py:485 pysollib/tk/toolbar.py:466 +#: pysollib/tile/toolbar.py:390 pysollib/tk/toolbar.py:431 msgid "Toolbar" msgstr "Панель инструментов" -#: pysollib/tk/menubar.py:84 -msgid "Relief" -msgstr "Рельеф" - -#: pysollib/tk/menubar.py:85 -msgid "Flat" -msgstr "Плоский" - -#: pysollib/tk/menubar.py:89 -msgid "Raised" -msgstr "Выпуклый" - #: pysollib/tk/playeroptionsdialog.py:120 msgid "Choose..." msgstr "Выбрать..." @@ -3540,31 +3563,35 @@ msgstr "Выбрать..." msgid "Select name" msgstr "Выбрать имя" -#: pysollib/util.py:75 +#: pysollib/tk/soundoptionsdialog.py:144 data/glade-translations:76 +msgid "Enable samles" +msgstr "Включить звуки" + +#: pysollib/util.py:81 msgid "Club" msgstr "Треф" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Diamond" msgstr "Буби" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Heart" msgstr "Черви" -#: pysollib/util.py:75 +#: pysollib/util.py:81 msgid "Spade" msgstr "Пики" -#: pysollib/util.py:76 +#: pysollib/util.py:82 msgid "black" msgstr "чёрный" -#: pysollib/util.py:76 +#: pysollib/util.py:82 msgid "red" msgstr "красный" -#: pysollib/util.py:101 +#: pysollib/util.py:107 msgid "cardset" msgstr "набор карт" @@ -3596,6 +3623,15 @@ msgstr "Все игры" msgid "Set font" msgstr "Настроить шрифт" +#~ msgid "Relief" +#~ msgstr "Рельеф" + +#~ msgid "Flat" +#~ msgstr "Плоский" + +#~ msgid "Raised" +#~ msgstr "Выпуклый" + #~ msgid "" #~ "\n" #~ "and #%d in the %s of total moves" diff --git a/pysollib/actions.py b/pysollib/actions.py index f15d59e9..44ca65f6 100644 --- a/pysollib/actions.py +++ b/pysollib/actions.py @@ -126,7 +126,7 @@ class PysolMenubarActions: def changed(self, *args, **kw): assert self.game is not None - return apply(self.game.changed, args, kw) + return self.game.changed(*args, **kw) # diff --git a/pysollib/app.py b/pysollib/app.py index 2b3e7757..985f38fc 100644 --- a/pysollib/app.py +++ b/pysollib/app.py @@ -43,6 +43,7 @@ from mfxutil import destruct, Struct from mfxutil import pickle, unpickle, UnpicklingError from mfxutil import getusername, gethomedir, getprefdir, EnvError from mfxutil import latin1_to_ascii +from mfxutil import Image from util import Timer from util import CARDSET, IMAGE_EXTENSIONS from settings import PACKAGE, VERSION, VERSION_TUPLE, WIN_SYSTEM @@ -250,7 +251,6 @@ class Options: # not changeable options def setConstants(self): - self.win_animation = True self.dragcursor = True self.randomize_place = False diff --git a/pysollib/game.py b/pysollib/game.py index 8e6a4a92..395e7621 100644 --- a/pysollib/game.py +++ b/pysollib/game.py @@ -1168,12 +1168,12 @@ class Game: return False def winAnimation(self, perfect=0): -### if not self.app.opt.win_animation: -### return if self.preview: return if not self.app.opt.animations: return + if not self.app.opt.win_animation: + return if TOOLKIT == 'gtk': return if not Image: diff --git a/pysollib/games/bakersdozen.py b/pysollib/games/bakersdozen.py index 9feb0269..d3958641 100644 --- a/pysollib/games/bakersdozen.py +++ b/pysollib/games/bakersdozen.py @@ -62,7 +62,7 @@ class CastlesInSpain(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=13, playcards=9) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) diff --git a/pysollib/games/bakersgame.py b/pysollib/games/bakersgame.py index 9b031a92..ed44831e 100644 --- a/pysollib/games/bakersgame.py +++ b/pysollib/games/bakersgame.py @@ -88,7 +88,7 @@ class BakersGame(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=8, reserves=4, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = InitialDealTalonStack(l.s.talon.x, l.s.talon.y, self) diff --git a/pysollib/games/beleagueredcastle.py b/pysollib/games/beleagueredcastle.py index 9b06f4cd..f05cabca 100644 --- a/pysollib/games/beleagueredcastle.py +++ b/pysollib/games/beleagueredcastle.py @@ -200,7 +200,7 @@ class Fortress(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=0, texts=0, playcards=16) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -251,7 +251,7 @@ class Bastion(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=10, reserves=2, texts=0, playcards=16) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -379,7 +379,7 @@ class CastlesEnd(Bastion): class Chessboard_Foundation(SS_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=13, min_cards=1, max_move=0) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not self.cards: diff --git a/pysollib/games/braid.py b/pysollib/games/braid.py index b4923bd0..7c43a73a 100644 --- a/pysollib/games/braid.py +++ b/pysollib/games/braid.py @@ -59,7 +59,7 @@ class Braid_Hint(DefaultHint): class Braid_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=13, dir=0, base_rank=NO_RANK, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): @@ -294,7 +294,7 @@ class Fort(Braid): class Backbone_BraidStack(OpenStack): def __init__(self, x, y, game, **cap): - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = self.game.app.images.CARD_YOFFSET def basicIsBlocked(self): diff --git a/pysollib/games/freecell.py b/pysollib/games/freecell.py index b2ca6a8c..5386ec17 100644 --- a/pysollib/games/freecell.py +++ b/pysollib/games/freecell.py @@ -92,7 +92,7 @@ class FreeCell(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=8, reserves=4, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -340,7 +340,7 @@ class Spidercells(FreeCell): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=8, reserves=4, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) diff --git a/pysollib/games/golf.py b/pysollib/games/golf.py index 1e77d66f..f8fdafc2 100644 --- a/pysollib/games/golf.py +++ b/pysollib/games/golf.py @@ -93,7 +93,7 @@ class Golf_Talon(WasteTalonStack): class Golf_Waste(WasteStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=0, max_accept=1) - apply(WasteStack.__init__, (self, x, y, game), cap) + WasteStack.__init__(self, x, y, game, **cap) def acceptsCards(self, from_stack, cards): if not WasteStack.acceptsCards(self, from_stack, cards): diff --git a/pysollib/games/gypsy.py b/pysollib/games/gypsy.py index 8246c490..7693cec1 100644 --- a/pysollib/games/gypsy.py +++ b/pysollib/games/gypsy.py @@ -63,7 +63,7 @@ class Gypsy(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=0, texts=1) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) diff --git a/pysollib/games/harp.py b/pysollib/games/harp.py index fd94adfd..3b1ea86c 100644 --- a/pysollib/games/harp.py +++ b/pysollib/games/harp.py @@ -63,7 +63,7 @@ class DoubleKlondike(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=9, waste=1, texts=1, playcards=19) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = WasteTalonStack(l.s.talon.x, l.s.talon.y, self, diff --git a/pysollib/games/klondike.py b/pysollib/games/klondike.py index 6d600118..5c5d47a6 100644 --- a/pysollib/games/klondike.py +++ b/pysollib/games/klondike.py @@ -63,7 +63,7 @@ class Klondike(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=7, waste=1, texts=1, playcards=16) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self, @@ -440,7 +440,7 @@ class Batsford_ReserveStack(ReserveStack): class Batsford(Klondike): def createGame(self, **layout): kwdefault(layout, rows=10, max_rounds=1, playcards=22) - l = apply(Klondike.createGame, (self,), layout) + l = Klondike.createGame(self, **layout) s = self.s x, y = l.XM, self.height - l.YS s.reserves.append(Batsford_ReserveStack(x, y, self, max_cards=3)) diff --git a/pysollib/games/larasgame.py b/pysollib/games/larasgame.py index be32a224..ebb5e0b0 100644 --- a/pysollib/games/larasgame.py +++ b/pysollib/games/larasgame.py @@ -169,7 +169,7 @@ class LarasGame_Talon(WasteTalonStack): class LarasGame_RowStack(OpenStack): def __init__(self, x, y, game, yoffset = 1, **cap): - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset diff --git a/pysollib/games/mahjongg/mahjongg.py b/pysollib/games/mahjongg/mahjongg.py index bcf9f31e..aa05496d 100644 --- a/pysollib/games/mahjongg/mahjongg.py +++ b/pysollib/games/mahjongg/mahjongg.py @@ -85,8 +85,7 @@ class Mahjongg_Foundation(OpenStack): def __init__(self, x, y, game, suit=ANY_SUIT, **cap): kwdefault(cap, max_move=0, max_accept=0, max_cards=game.NCARDS) - #apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def acceptsCards(self, from_stack, cards): # We do not accept any cards - pairs will get @@ -125,7 +124,7 @@ class Mahjongg_RowStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1, max_cards=2, base_rank=NO_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def basicIsBlocked(self): # any of above blocks diff --git a/pysollib/games/mahjongg/shisensho.py b/pysollib/games/mahjongg/shisensho.py index bd0e9faa..de0f1e2e 100644 --- a/pysollib/games/mahjongg/shisensho.py +++ b/pysollib/games/mahjongg/shisensho.py @@ -71,7 +71,7 @@ class Shisen_Hint(AbstractHint): class Shisen_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit=ANY_SUIT, **cap): kwdefault(cap, max_move=0, max_accept=0, max_cards=game.NCARDS) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): # We do not accept any cards - pairs will get diff --git a/pysollib/games/napoleon.py b/pysollib/games/napoleon.py index 71d25807..82f3e6d4 100644 --- a/pysollib/games/napoleon.py +++ b/pysollib/games/napoleon.py @@ -60,7 +60,7 @@ class Napoleon_RowStack(UD_SS_RowStack): class Napoleon_ReserveStack(BasicRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=0) - apply(BasicRowStack.__init__, (self, x, y, game), cap) + BasicRowStack.__init__(self, x, y, game, **cap) class Napoleon_SingleFreeCell(ReserveStack): diff --git a/pysollib/games/numerica.py b/pysollib/games/numerica.py index fde489bd..f3320592 100644 --- a/pysollib/games/numerica.py +++ b/pysollib/games/numerica.py @@ -250,7 +250,7 @@ class PussInTheCorner_Talon(OpenTalonStack): class PussInTheCorner_Foundation(SS_FoundationStack): def __init__(self, x, y, game, **cap): kwdefault(cap, base_suit=ANY_SUIT) - apply(SS_FoundationStack.__init__, (self, x, y, game, ANY_SUIT), cap) + SS_FoundationStack.__init__(self, x, y, game, ANY_SUIT, **cap) def acceptsCards(self, from_stack, cards): if not SS_FoundationStack.acceptsCards(self, from_stack, cards): return False diff --git a/pysollib/games/special/tarock.py b/pysollib/games/special/tarock.py index 7f84e125..3ec65eef 100644 --- a/pysollib/games/special/tarock.py +++ b/pysollib/games/special/tarock.py @@ -84,7 +84,7 @@ class Ponytail_Foundation(Braid_Foundation): class Tarock_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset=-1, **cap): kwdefault(cap, max_move=UNLIMITED_MOVES, max_accept=UNLIMITED_ACCEPTS) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) if yoffset < 0: yoffset = game.app.images.CARD_YOFFSET self.CARD_YOFFSET = yoffset @@ -845,7 +845,7 @@ class Cavalier(AbstractTarockGame): # Create layout l, s = Layout(self), self.s kwdefault(layout, rows=18, playcards=19) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create foundations diff --git a/pysollib/games/spider.py b/pysollib/games/spider.py index b21c3ac0..f404c8c0 100644 --- a/pysollib/games/spider.py +++ b/pysollib/games/spider.py @@ -85,7 +85,7 @@ class Spider_SS_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit=ANY_SUIT, **cap): kwdefault(cap, dir=-1, base_rank=KING, min_accept=13, max_accept=13, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): @@ -128,7 +128,7 @@ class RelaxedSpider(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=0, texts=1, playcards=23) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -466,7 +466,7 @@ class RougeEtNoir(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=0, texts=1, playcards=23) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -724,7 +724,7 @@ class ScorpionHead(Scorpion): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=7, reserves=4) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks diff --git a/pysollib/games/terrace.py b/pysollib/games/terrace.py index 27f28756..37b820e6 100644 --- a/pysollib/games/terrace.py +++ b/pysollib/games/terrace.py @@ -57,7 +57,7 @@ class Terrace_Talon(WasteTalonStack): class Terrace_AC_Foundation(AC_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=13, min_cards=1, max_move=0) - apply(AC_FoundationStack.__init__, (self, x, y, game, suit), cap) + AC_FoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if self.game.getState() == 0: @@ -72,7 +72,7 @@ class Terrace_AC_Foundation(AC_FoundationStack): class Terrace_SS_Foundation(SS_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=13, min_cards=1, max_move=0) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if self.game.getState() == 0: @@ -87,7 +87,7 @@ class Terrace_SS_Foundation(SS_FoundationStack): class Terrace_RowStack(AC_RowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, mod=13, max_move=1) - apply(AC_RowStack.__init__, (self, x, y, game), cap) + AC_RowStack.__init__(self, x, y, game, **cap) def acceptsCards(self, from_stack, cards): if self.game.getState() == 0: diff --git a/pysollib/games/threepeaks.py b/pysollib/games/threepeaks.py index 5e562a93..6d3e75c3 100644 --- a/pysollib/games/threepeaks.py +++ b/pysollib/games/threepeaks.py @@ -78,7 +78,7 @@ class ThreePeaks_RowStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=0, max_cards=1, base_rank=ANY_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def basicIsBlocked(self): r, step = self.game.s.rows, (3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9) diff --git a/pysollib/games/ultra/dashavatara.py b/pysollib/games/ultra/dashavatara.py index 3d435652..e169eef8 100644 --- a/pysollib/games/ultra/dashavatara.py +++ b/pysollib/games/ultra/dashavatara.py @@ -49,7 +49,7 @@ class Dashavatara_FoundationStack(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_move=0, max_cards=12) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) def updateText(self): AbstractFoundationStack.updateText(self) @@ -60,7 +60,7 @@ class Journey_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=12, dir=0, base_rank=NO_RANK, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): @@ -80,7 +80,7 @@ class AppachansWaterfall_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, base_suit=0, mod=12, max_cards=120, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not (from_stack in self.game.s.rows and @@ -106,7 +106,7 @@ class Dashavatara_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset, **cap): kwdefault(cap, max_move=UNLIMITED_MOVES, max_cards=UNLIMITED_CARDS, max_accept=UNLIMITED_ACCEPTS, base_rank=0, dir=-1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def currentForce(self, card): @@ -296,7 +296,7 @@ class Dashavatara_TableauStack(Dashavatara_OpenStack): def __init__(self, x, y, game, base_rank, yoffset, **cap): kwdefault(cap, dir=3, max_move=99, max_cards=4, max_accept=1, base_rank=base_rank) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def acceptsCards(self, from_stack, cards): @@ -318,7 +318,7 @@ class Dashavatara_ReserveStack(ReserveStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_cards=1, max_accept=1, base_rank=ANY_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def acceptsCards(self, from_stack, cards): return (ReserveStack.acceptsCards(self, from_stack, cards) @@ -524,7 +524,7 @@ class Balarama(AbstractDashavataraGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=16, reserves=4, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create foundations @@ -670,7 +670,7 @@ class Matsya(AbstractDashavataraGame): def createGame(self, max_rounds=1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=1) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon diff --git a/pysollib/games/ultra/hanafuda.py b/pysollib/games/ultra/hanafuda.py index 01a0b98b..066ef94b 100644 --- a/pysollib/games/ultra/hanafuda.py +++ b/pysollib/games/ultra/hanafuda.py @@ -223,7 +223,7 @@ class Oonsoo(AbstractFlowerGame): l, s = Layout(self), self.s kwdefault(layout, rows=self.Rows, reserves=self.Reserves, texts=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -636,7 +636,7 @@ class Sumo(AbstractFlowerGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, reserves=2, texts=0, playcards=16) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -681,7 +681,7 @@ class BigSumo(AbstractFlowerGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=10, reserves=4, texts=0, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -727,7 +727,7 @@ class Samuri(AbstractFlowerGame): def createGame(self, max_rounds=1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=self.Rows, waste=1, texts=1, playcards=21) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -808,7 +808,7 @@ class LittleEasy(AbstractFlowerGame): def createGame(self, max_rounds=-1, num_deal=3, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=self.Rows, waste=1, texts=1, playcards=self.PlayCards) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -899,7 +899,7 @@ class JustForFun(AbstractFlowerGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=self.Rows, reserves=self.Reserves, texts=0, playcards=22) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create stacks @@ -976,7 +976,7 @@ class Paulownia(AbstractFlowerGame): def createGame(self, max_rounds=-1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon diff --git a/pysollib/games/ultra/hanafuda1.py b/pysollib/games/ultra/hanafuda1.py index 60abacba..088aa641 100644 --- a/pysollib/games/ultra/hanafuda1.py +++ b/pysollib/games/ultra/hanafuda1.py @@ -61,7 +61,7 @@ class Paulownia(AbstractFlowerGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -585,7 +585,7 @@ class FlowerArrangement_Hint(AbstractHint): class FlowerArrangement_TableauStack(Flower_OpenStack): def __init__(self, x, y, game, yoffset, **cap): kwdefault(cap, dir=-1, max_move=1, max_cards=4, max_accept=1, base_rank=3) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def acceptsCards(self, from_stack, cards): diff --git a/pysollib/games/ultra/hanafuda_common.py b/pysollib/games/ultra/hanafuda_common.py index 933dc4cb..c6433c04 100644 --- a/pysollib/games/ultra/hanafuda_common.py +++ b/pysollib/games/ultra/hanafuda_common.py @@ -85,7 +85,7 @@ class Flower_FoundationStack(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_cards=12, max_move=0, base_rank=ANY_RANK, base_suit=ANY_SUIT) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def updateText(self): AbstractFoundationStack.updateText(self) @@ -143,7 +143,7 @@ class Gaji_Foundation(Flower_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_move=1, min_cards=1, max_accept=1, base_suit=ANY_SUIT) - apply(Flower_FoundationStack.__init__, (self, x, y, game, suit), cap) + Flower_FoundationStack.__init__(self, x, y, game, suit, **cap) self.CARD_YOFFSET = self.game.app.images.CARD_YOFFSET def acceptsCards(self, from_stack, cards): @@ -181,7 +181,7 @@ class MatsuKiri_Foundation(Flower_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_move=0, max_cards=48, max_accept=4, min_accept=4) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) self.CARD_YOFFSET = self.game.app.images.CARDH / 10 def acceptsCards(self, from_stack, cards): @@ -202,7 +202,7 @@ class GreatWall_FoundationStack(Flower_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_cards=48, max_move=1, min_accept=1, max_accept=1) - apply(Flower_FoundationStack.__init__, (self, x, y, game, suit), cap) + Flower_FoundationStack.__init__(self, x, y, game, suit, **cap) self.CARD_YOFFSET = self.game.app.images.CARDH / 20 def acceptsCards(self, from_stack, cards): @@ -239,7 +239,7 @@ class FourWinds_Foundation(Flower_FoundationStack): class Queue_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=12, dir=0, base_suit=ANY_SUIT, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): @@ -267,7 +267,7 @@ class Flower_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset, **cap): kwdefault(cap, max_move=99, max_cards=99, max_accept=99, base_rank=0, dir=1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def isHanafudaSequence(self, cards, strictness=1): diff --git a/pysollib/games/ultra/hexadeck.py b/pysollib/games/ultra/hexadeck.py index cf54dd19..5a961494 100644 --- a/pysollib/games/ultra/hexadeck.py +++ b/pysollib/games/ultra/hexadeck.py @@ -48,7 +48,7 @@ from pysollib.pysoltk import MfxCanvasText class HexADeck_FoundationStack(SS_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_move=0, max_cards=12) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) class HexATrump_Foundation(HexADeck_FoundationStack): @@ -64,7 +64,7 @@ class HexATrump_Foundation(HexADeck_FoundationStack): class Merlins_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=16, dir=0, base_rank=NO_RANK, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): @@ -87,7 +87,7 @@ class HexADeck_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset, **cap): kwdefault(cap, max_move=UNLIMITED_MOVES, max_accept=UNLIMITED_ACCEPTS, dir=-1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def isRankSequence(self, cards, dir=None): @@ -405,7 +405,7 @@ class HexAKlon(Game): def createGame(self, max_rounds=-1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -464,7 +464,7 @@ class HexAKlonByThrees(Game): def createGame(self, max_rounds=-1, num_deal=3, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -523,7 +523,7 @@ class KingOnlyHexAKlon(Game): def createGame(self, max_rounds=-1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -593,7 +593,7 @@ class KlondikePlus16(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -649,7 +649,7 @@ class TheFamiliar(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -711,7 +711,7 @@ class TwoFamiliars(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=12, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -773,7 +773,7 @@ class TenByEight(Game): def createGame(self, max_rounds=-1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=1, playcards=30) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -831,7 +831,7 @@ class Drawbridge(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=7, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -887,7 +887,7 @@ class DoubleDrawbridge(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=10, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -943,7 +943,7 @@ class HiddenPassages(Game): def createGame(self, max_rounds=2, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=7, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -1012,7 +1012,7 @@ class CluitjarsLair(Game): def createGame(self, max_rounds=1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=7, waste=1, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -1219,7 +1219,7 @@ class MagesGame(Game): def createGame(self, max_rounds=1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=12, texts=0, playcards=20) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon diff --git a/pysollib/games/ultra/matrix.py b/pysollib/games/ultra/matrix.py index 0a81dca2..1a8554d2 100644 --- a/pysollib/games/ultra/matrix.py +++ b/pysollib/games/ultra/matrix.py @@ -50,7 +50,7 @@ class Matrix_RowStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1, max_cards=1, base_rank=ANY_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def canFlipCard(self): return 0 diff --git a/pysollib/games/ultra/mughal.py b/pysollib/games/ultra/mughal.py index 8d840239..f100657e 100644 --- a/pysollib/games/ultra/mughal.py +++ b/pysollib/games/ultra/mughal.py @@ -48,7 +48,7 @@ class Mughal_FoundationStack(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, max_move=0) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) def updateText(self): AbstractFoundationStack.updateText(self) @@ -59,7 +59,7 @@ class Triumph_Foundation(AbstractFoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, mod=12, dir=0, base_rank=NO_RANK, max_move=0) - apply(AbstractFoundationStack.__init__, (self, x, y, game, suit), cap) + AbstractFoundationStack.__init__(self, x, y, game, suit, **cap) def acceptsCards(self, from_stack, cards): @@ -85,7 +85,7 @@ class Mughal_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset, **cap): kwdefault(cap, max_move=UNLIMITED_MOVES, max_cards=UNLIMITED_CARDS, max_accept=UNLIMITED_ACCEPTS, base_rank=0, dir=-1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def isRankSequence(self, cards, dir=None): @@ -436,7 +436,7 @@ class Shamsher(AbstractMughalGame): def createGame(self, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=14, reserves=4, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create foundations @@ -537,7 +537,7 @@ class Tipati(AbstractMughalGame): def createGame(self, max_rounds=1, num_deal=1, **layout): l, s = Layout(self), self.s kwdefault(layout, rows=8, waste=1) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # Create talon @@ -953,7 +953,7 @@ class Dikapala_TableauStack(Mughal_OpenStack): def __init__(self, x, y, game, base_rank, yoffset, **cap): kwdefault(cap, dir=3, max_move=99, max_cards=4, max_accept=1, base_rank=base_rank) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = yoffset def acceptsCards(self, from_stack, cards): @@ -975,7 +975,7 @@ class Dikapala_ReserveStack(ReserveStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_cards=1, max_accept=1, base_rank=ANY_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def acceptsCards(self, from_stack, cards): return (ReserveStack.acceptsCards(self, from_stack, cards) diff --git a/pysollib/games/ultra/tarock.py b/pysollib/games/ultra/tarock.py index 17d65c12..e60aa8b0 100644 --- a/pysollib/games/ultra/tarock.py +++ b/pysollib/games/ultra/tarock.py @@ -50,7 +50,7 @@ class Tarock_OpenStack(OpenStack): def __init__(self, x, y, game, yoffset=-1, **cap): kwdefault(cap, max_move=UNLIMITED_MOVES, max_accept=UNLIMITED_ACCEPTS, dir=-1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) if yoffset < 0: yoffset = game.app.images.CARD_YOFFSET self.CARD_YOFFSET = yoffset diff --git a/pysollib/games/unionsquare.py b/pysollib/games/unionsquare.py index eb8cefdf..af9eaea5 100644 --- a/pysollib/games/unionsquare.py +++ b/pysollib/games/unionsquare.py @@ -62,7 +62,7 @@ class UnionSquare_RowStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, mod=8192, dir=0, base_rank=ANY_RANK, max_accept=1, max_move=1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) #self.CARD_YOFFSET = 1 def acceptsCards(self, from_stack, cards): diff --git a/pysollib/games/yukon.py b/pysollib/games/yukon.py index 3aea10b8..b70c453a 100644 --- a/pysollib/games/yukon.py +++ b/pysollib/games/yukon.py @@ -91,7 +91,7 @@ class Yukon(Game): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=7, texts=0, playcards=25) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = self.Talon_Class(l.s.talon.x, l.s.talon.y, self) @@ -299,7 +299,7 @@ class RussianPoint(Rushdike): class Abacus_Foundation(SS_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, base_rank=suit, mod=13, dir=suit+1, max_move=0) - apply(SS_FoundationStack.__init__, (self, x, y, game, suit), cap) + SS_FoundationStack.__init__(self, x, y, game, suit, **cap) class Abacus_RowStack(Yukon_SS_RowStack): @@ -407,7 +407,7 @@ class TenAcross(Yukon): # create layout l, s = Layout(self), self.s kwdefault(layout, rows=10, reserves=2, texts=0) - apply(self.Layout_Method, (l,), layout) + self.Layout_Method(l, **layout) self.setSize(l.size[0], l.size[1]) # create stacks s.talon = InitialDealTalonStack(l.s.talon.x, l.s.talon.y, self) diff --git a/pysollib/images.py b/pysollib/images.py index 1851df31..704d4838 100644 --- a/pysollib/images.py +++ b/pysollib/images.py @@ -38,6 +38,8 @@ import os # PySol imports +from settings import TOOLKIT +from mfxutil import Image, ImageTk # Toolkit imports from pysoltk import tkversion, loadImage, copyImage, createImage, shadowImage @@ -87,7 +89,9 @@ class Images: self._shadow = [] self._xshadow = [] self._shade = [] - self._shadow_cards = {} # key: (suit, rank) + self._shadow_cards = {} # key: (suit, rank) + self._pil_shadow = {} # key: (width, height) + self._pil_shadow_image = None def destruct(self): pass @@ -202,28 +206,32 @@ class Images: pass if progress: progress.update(step=pstep) # shadow - for i in range(self.cs.nshadows): - if fast: - self._shadow.append(None) - else: - name = "shadow%02d.%s" % (i, ext) - try: - im = self.__loadCard(name, check_w=0, check_h=0) - except: - im = None - self._shadow.append(im) + if TOOLKIT == 'tk' and Image: + fn = self.d.findImage('shadow', 'images') + self._pil_shadow_image = Image.open(fn).convert('RGBA') + else: + for i in range(self.cs.nshadows): + if fast: + self._shadow.append(None) + else: + name = "shadow%02d.%s" % (i, ext) + try: + im = self.__loadCard(name, check_w=0, check_h=0) + except: + im = None + self._shadow.append(im) - if fast: - self._xshadow.append(None) - elif i > 0: # skip 0 - name = "xshadow%02d.%s" % (i, ext) - try: - im = self.__loadCard(name, check_w=0, check_h=0) - except: - im = None - self._xshadow.append(im) + if fast: + self._xshadow.append(None) + elif i > 0: # skip 0 + name = "xshadow%02d.%s" % (i, ext) + try: + im = self.__loadCard(name, check_w=0, check_h=0) + except: + im = None + self._xshadow.append(im) - if progress: progress.update(step=pstep) + if progress: progress.update(step=pstep) # shade if fast: self._shade.append(None) @@ -235,6 +243,8 @@ class Images: # self._bottom = self._bottom_positive self._letter = self._letter_positive + # + return 1 def getFace(self, deck, suit, rank): @@ -285,6 +295,46 @@ class Images: return None return self._xshadow[ncards] + def getShadowPIL(self, stack, cards): + x0, y0 = stack.getPositionFor(cards[0]) + x1, y1 = stack.getPositionFor(cards[-1]) + x0, x1 = min(x1, x0), max(x1, x0) + y0, y1 = min(y1, y0), max(y1, y0) + x1 = x1 + self.CARDW + y1 = y1 + self.CARDH + #xx0, yy0 = x0, y0 + w, h = x1-x0, y1-y0 + if (w,h) in self._pil_shadow: + return self._pil_shadow[(w,h)] + # create mask + mask = Image.new('RGBA', (w, h)) + for c in cards: + x, y = stack.getPositionFor(c) + x, y = x-x0, y-y0 + im = c._active_image._pil_image + mask.paste(im, (x, y), im) + # create shadow + sh = self._pil_shadow_image + shw, shh = sh.size + shadow = Image.new('RGBA', (w, h)) + x = 0 + while x < w: + y = 0 + while y < h: + shadow.paste(sh, (x,y)) + y += shh + x += shw + shadow = Image.composite(shadow, mask, mask) + # crop image (for speed) + sx, sy = self.SHADOW_XOFFSET, self.SHADOW_YOFFSET + mask = mask.crop((sx,sy,w,h)) + tmp = Image.new('RGBA', (w-sx,h-sy)) + shadow.paste(tmp, (0,0), mask) + # + shadow = ImageTk.PhotoImage(shadow) + self._pil_shadow[(w,h)] = shadow + return shadow + def getShade(self): return self._shade[self._shade_index] diff --git a/pysollib/layout.py b/pysollib/layout.py index fb3ba24f..4c3daf2d 100644 --- a/pysollib/layout.py +++ b/pysollib/layout.py @@ -263,7 +263,7 @@ class Layout: if layout_stack is None or not layout_stack.text_args: return None layout_stack.text_args["font"] = self.game.app.getFont("canvas_default") - t = apply(MfxCanvasText, (self.game.canvas,), layout_stack.text_args) + t = MfxCanvasText(self.game.canvas, **layout_stack.text_args) t.text_format = layout_stack.text_format return t diff --git a/pysollib/mfxutil.py b/pysollib/mfxutil.py index 5c81e812..8a79eb56 100644 --- a/pysollib/mfxutil.py +++ b/pysollib/mfxutil.py @@ -322,7 +322,7 @@ def openURL(url): import webbrowser webbrowser.open(url) return 1 - except: + except ImportError: # FIXME return 0 diff --git a/pysollib/pysolgtk/tkwidget.py b/pysollib/pysolgtk/tkwidget.py index 1eece443..06bed877 100644 --- a/pysollib/pysolgtk/tkwidget.py +++ b/pysollib/pysolgtk/tkwidget.py @@ -231,7 +231,7 @@ class MfxExceptionDialog(MfxDialog): else: t = str(ex) kw.text = text + t - apply(MfxDialog.__init__, (self, parent, title), kw.__dict__) + MfxDialog.__init__(self, parent, title, **kw.__dict__) # /*********************************************************************** diff --git a/pysollib/pysolgtk/tkwrap.py b/pysollib/pysolgtk/tkwrap.py index e0f1bacc..f7724ab1 100644 --- a/pysollib/pysolgtk/tkwrap.py +++ b/pysollib/pysolgtk/tkwrap.py @@ -226,7 +226,7 @@ class _MfxToplevel(gtk.Window): class MfxRoot(_MfxToplevel): def __init__(self, **kw): - apply(_MfxToplevel.__init__, (self,), kw) + _MfxToplevel.__init__(self, **kw) self.app = None self.connect("delete_event", self.wmDeleteWindow) diff --git a/pysollib/resource.py b/pysollib/resource.py index bdc7ed30..335bb7b2 100644 --- a/pysollib/resource.py +++ b/pysollib/resource.py @@ -58,7 +58,7 @@ class Resource(Struct): index = -1, error = 0, # error while loading this resource ) - apply(Struct.__init__, (self,), kw.getKw()) + Struct.__init__(self, **kw.getKw()) def getSortKey(self): return self.name.lower() @@ -327,7 +327,7 @@ class Cardset(Resource): def __init__(self, **kw): # start with all fields from CardsetConfig config = CardsetConfig() - kw = apply(KwStruct, (config.__dict__,), kw) + kw = KwStruct(config.__dict__, **kw) # si is the SelectionInfo struct that will be queried by # the "select cardset" dialogs. It can be freely modified. si = Struct(type=0, size=0, styles=[], nationalities=[], dates=[]) @@ -345,7 +345,7 @@ class Cardset(Resource): backname = None, dir = "", ) - apply(Resource.__init__, (self,), kw.getKw()) + Resource.__init__(self, **kw.getKw()) def getFaceCardNames(self): names = [] @@ -496,12 +496,10 @@ class CardsetManager(ResourceManager): class Tile(Resource): def __init__(self, **kw): - kw = KwStruct(kw, - color = None, - text_color = "#000000", - stretch = 0, - ) - apply(Resource.__init__, (self,), kw.getKw()) + kw['color'] = None + kw['text_color'] = "#000000" + kw['stretch'] = 0 + Resource.__init__(self, **kw) class TileManager(ResourceManager): @@ -514,10 +512,8 @@ class TileManager(ResourceManager): class Sample(Resource): def __init__(self, **kw): - kw = KwStruct(kw, - volume = -1, - ) - apply(Resource.__init__, (self,), kw.getKw()) + kw['volume'] = -1 + Resource.__init__(self, **kw) class SampleManager(ResourceManager): diff --git a/pysollib/stack.py b/pysollib/stack.py index f98078ba..33c9743c 100644 --- a/pysollib/stack.py +++ b/pysollib/stack.py @@ -1154,6 +1154,17 @@ class Stack: images = self.game.app.images cx, cy = cards[0].x, cards[0].y ddx, ddy = cx-cards[-1].x, cy-cards[-1].y + if TOOLKIT == 'tk' and Image: # use PIL + c0 = cards[-1] + if self.CARD_XOFFSET[0] < 0: c0 = cards[0] + if self.CARD_YOFFSET[0] < 0: c0 = cards[0] + img = images.getShadowPIL(self, cards) + cx, cy = c0.x + images.CARDW + dx, c0.y + images.CARDH + dy + s = MfxCanvasImage(self.game.canvas, cx, cy, + image=img, anchor=ANCHOR_SE) + s.lower(c0.item) + return (s,) + if ddx == 0: # vertical for c in cards[1:]: if c.x != cx or abs(c.y - cy) != images.CARD_YOFFSET: @@ -1285,6 +1296,8 @@ class Stack: # x0, y0 = self.getPositionFor(cards[0]) x1, y1 = self.getPositionFor(cards[-1]) + x0, x1 = min(x1, x0), max(x1, x0) + y0, y1 = min(y1, y0), max(y1, y0) x1 = x1 + self.game.app.images.CARDW y1 = y1 + self.game.app.images.CARDH xx0, yy0 = x0, y0 @@ -1926,7 +1939,7 @@ class AbstractFoundationStack(OpenStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, suit=suit, base_suit=suit, base_rank=ACE, dir=1, max_accept=1, max_cards=13) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def canDropCards(self, stacks): return (None, 0) @@ -1976,7 +1989,7 @@ class SS_FoundationStack(AbstractFoundationStack): # A Rank_FoundationStack builds up in rank and ignores color and suit. class RK_FoundationStack(SS_FoundationStack): def __init__(self, x, y, game, suit=ANY_SUIT, **cap): - apply(SS_FoundationStack.__init__, (self, x, y, game, ANY_SUIT), cap) + SS_FoundationStack.__init__(self, x, y, game, ANY_SUIT, **cap) def assertStack(self): SS_FoundationStack.assertStack(self) @@ -1994,7 +2007,7 @@ class RK_FoundationStack(SS_FoundationStack): class AC_FoundationStack(SS_FoundationStack): def __init__(self, x, y, game, suit, **cap): kwdefault(cap, base_suit=suit) - apply(SS_FoundationStack.__init__, (self, x, y, game, ANY_SUIT), cap) + SS_FoundationStack.__init__(self, x, y, game, ANY_SUIT, **cap) def acceptsCards(self, from_stack, cards): if not SS_FoundationStack.acceptsCards(self, from_stack, cards): @@ -2046,7 +2059,7 @@ class SequenceStack_StackMethods: class BasicRowStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, dir=-1, base_rank=ANY_RANK) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = game.app.images.CARD_YOFFSET def getHelp(self): @@ -2062,7 +2075,7 @@ class BasicRowStack(OpenStack): class SequenceRowStack(SequenceStack_StackMethods, BasicRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=999999, max_accept=999999) - apply(BasicRowStack.__init__, (self, x, y, game), cap) + BasicRowStack.__init__(self, x, y, game, **cap) def getBaseCard(self): return self._getBaseCard() @@ -2161,7 +2174,7 @@ class Spider_SS_RowStack(SS_RowStack): class Yukon_AC_RowStack(BasicRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=999999, max_accept=999999) - apply(BasicRowStack.__init__, (self, x, y, game), cap) + BasicRowStack.__init__(self, x, y, game, **cap) def _isSequence(self, c1, c2): return (c1.rank + self.cap.dir) % self.cap.mod == c2.rank and c1.color != c2.color @@ -2200,24 +2213,24 @@ class Yukon_SS_RowStack(Yukon_AC_RowStack): class KingAC_RowStack(AC_RowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, base_rank=KING) - apply(AC_RowStack.__init__, (self, x, y, game), cap) + AC_RowStack.__init__(self, x, y, game, **cap) class KingSS_RowStack(SS_RowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, base_rank=KING) - apply(SS_RowStack.__init__, (self, x, y, game), cap) + SS_RowStack.__init__(self, x, y, game, **cap) class KingRK_RowStack(RK_RowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, base_rank=KING) - apply(RK_RowStack.__init__, (self, x, y, game), cap) + RK_RowStack.__init__(self, x, y, game, **cap) # up or down by color class UD_SC_RowStack(SequenceRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1) - apply(SequenceRowStack.__init__, (self, x, y, game), cap) + SequenceRowStack.__init__(self, x, y, game, **cap) def _isSequence(self, cards): return (isSameColorSequence(cards, self.cap.mod, 1) or isSameColorSequence(cards, self.cap.mod, -1)) @@ -2228,7 +2241,7 @@ class UD_SC_RowStack(SequenceRowStack): class UD_AC_RowStack(SequenceRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1) - apply(SequenceRowStack.__init__, (self, x, y, game), cap) + SequenceRowStack.__init__(self, x, y, game, **cap) def _isSequence(self, cards): return (isAlternateColorSequence(cards, self.cap.mod, 1) or isAlternateColorSequence(cards, self.cap.mod, -1)) @@ -2239,7 +2252,7 @@ class UD_AC_RowStack(SequenceRowStack): class UD_SS_RowStack(SequenceRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1) - apply(SequenceRowStack.__init__, (self, x, y, game), cap) + SequenceRowStack.__init__(self, x, y, game, **cap) def _isSequence(self, cards): return (isSameSuitSequence(cards, self.cap.mod, 1) or isSameSuitSequence(cards, self.cap.mod, -1)) @@ -2250,7 +2263,7 @@ class UD_SS_RowStack(SequenceRowStack): class UD_RK_RowStack(SequenceRowStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1, max_accept=1) - apply(SequenceRowStack.__init__, (self, x, y, game), cap) + SequenceRowStack.__init__(self, x, y, game, **cap) def _isSequence(self, cards): return (isRankSequence(cards, self.cap.mod, 1) or isRankSequence(cards, self.cap.mod, -1)) @@ -2274,7 +2287,7 @@ class WasteTalonStack(TalonStack): # moves it face up; if we're out of cards, it moves the waste # back to the talon and increases the number of rounds (redeals). def __init__(self, x, y, game, max_rounds, num_deal=1, waste=None, **cap): - apply(TalonStack.__init__, (self, x, y, game, max_rounds, num_deal), cap) + TalonStack.__init__(self, x, y, game, max_rounds, num_deal, **cap) self.waste = waste def prepareStack(self): @@ -2331,7 +2344,7 @@ class OpenTalonStack(TalonStack, OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_move=1) - apply(TalonStack.__init__, (self, x, y, game), cap) + TalonStack.__init__(self, x, y, game, **cap) def canDealCards(self): return 0 @@ -2358,7 +2371,7 @@ class OpenTalonStack(TalonStack, OpenStack): class ReserveStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_accept=1, max_cards=1) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) def getBottomImage(self): return self.game.app.images.getReserveBottom() @@ -2405,7 +2418,7 @@ class ArbitraryStack(OpenStack): def __init__(self, x, y, game, **cap): kwdefault(cap, max_accept=0) - apply(OpenStack.__init__, (self, x, y, game), cap) + OpenStack.__init__(self, x, y, game, **cap) self.CARD_YOFFSET = game.app.images.CARD_YOFFSET def canMoveCards(self, cards): @@ -2515,21 +2528,21 @@ class StackWrapper: def __call__(self, x, y, game, **cap): # must preserve self.cap, so create a shallow copy c = self.cap.copy() - apply(kwdefault, (c,), cap) - return apply(self.stack_class, (x, y, game), c) + kwdefault(c, **cap) + return self.stack_class(x, y, game, **c) # call-time cap override self.cap class WeakStackWrapper(StackWrapper): def __call__(self, x, y, game, **cap): - apply(kwdefault, (cap,), self.cap) - return apply(self.stack_class, (x, y, game), cap) + kwdefault(cap, **self.cap) + return self.stack_class(x, y, game, **cap) # self.cap only, call-time cap is completely ignored class FullStackWrapper(StackWrapper): def __call__(self, x, y, game, **cap): - return apply(self.stack_class, (x, y, game), self.cap) + return self.stack_class(x, y, game, **self.cap) diff --git a/pysollib/tile/menubar.py b/pysollib/tile/menubar.py index 68f51020..29887ade 100644 --- a/pysollib/tile/menubar.py +++ b/pysollib/tile/menubar.py @@ -43,6 +43,7 @@ import tkFileDialog # PySol imports from pysollib.mfxutil import destruct, Struct, kwdefault +from pysollib.mfxutil import Image from pysollib.util import CARDSET from pysollib.settings import PACKAGE, WIN_SYSTEM from pysollib.settings import TOP_TITLE @@ -132,7 +133,7 @@ class MfxMenubar(Tkinter.Menu): self.name = kw["name"] tearoff = 0 self.n = kw["tearoff"] = int(kw.get("tearoff", tearoff)) - apply(Tkinter.Menu.__init__, (self, master, ), kw) + Tkinter.Menu.__init__(self, master, **kw) def labeltoname(self, label): #print label, type(label) @@ -174,7 +175,7 @@ class MfxMenu(MfxMenubar): else: name, label, label_underline = self.labeltoname(label) kwdefault(kw, name=name) - apply(MfxMenubar.__init__, (self, master,), kw) + MfxMenubar.__init__(self, master, **kw) if underline is None: underline = label_underline if master: @@ -236,6 +237,8 @@ class PysolMenubar(PysolMenubarActions): cardback = MfxRadioMenuItem(self), tabletile = MfxRadioMenuItem(self), animations = MfxRadioMenuItem(self), + redeal_animation = MfxCheckMenuItem(self), + win_animation = MfxCheckMenuItem(self), shadow = MfxCheckMenuItem(self), shade = MfxCheckMenuItem(self), shade_filled_stacks = MfxCheckMenuItem(self), @@ -283,6 +286,8 @@ class PysolMenubar(PysolMenubarActions): tkopt.cardback.set(self.app.cardset.backindex) tkopt.tabletile.set(self.app.tabletile_index) tkopt.animations.set(opt.animations) + tkopt.redeal_animation.set(opt.redeal_animation) + tkopt.win_animation.set(opt.win_animation) tkopt.shadow.set(opt.shadow) tkopt.shade.set(opt.shade) tkopt.toolbar.set(opt.toolbar) @@ -341,7 +346,7 @@ class PysolMenubar(PysolMenubarActions): def _createMenubar(self): MfxMenubar.addPath = self._addPath kw = { "name": "menubar" } - self.__menubar = apply(MfxMenubar, (self.top,), kw) + self.__menubar = MfxMenubar(self.top, **kw) # init keybindings bind(self.top, "", self._keyPressHandler) @@ -480,6 +485,10 @@ class PysolMenubar(PysolMenubarActions): submenu.add_radiobutton(label=n_("&Fast"), variable=self.tkopt.animations, value=1, command=self.mOptAnimations) submenu.add_radiobutton(label=n_("&Slow"), variable=self.tkopt.animations, value=3, command=self.mOptAnimations) submenu.add_radiobutton(label=n_("&Very slow"), variable=self.tkopt.animations, value=4, command=self.mOptAnimations) + submenu.add_separator() + submenu.add_checkbutton(label=n_("&Redeal animation"), variable=self.tkopt.redeal_animation, command=self.mRedealAnimation) + if Image: + submenu.add_checkbutton(label=n_("&Winning animation"), variable=self.tkopt.win_animation, command=self.mWinAnimation) submenu = MfxMenu(menu, label=n_("&Mouse")) submenu.add_radiobutton(label=n_("&Drag-and-Drop"), variable=self.tkopt.mouse_type, value='drag-n-drop', command=self.mOptMouseType) submenu.add_radiobutton(label=n_("&Point-and-Click"), variable=self.tkopt.mouse_type, value='point-n-click', command=self.mOptMouseType) @@ -1084,6 +1093,14 @@ class PysolMenubar(PysolMenubarActions): if self._cancelDrag(break_pause=False): return self.app.opt.animations = self.tkopt.animations.get() + def mRedealAnimation(self, *args): + if self._cancelDrag(break_pause=False): return + self.app.opt.redeal_animation = self.tkopt.redeal_animation.get() + + def mWinAnimation(self, *args): + if self._cancelDrag(break_pause=False): return + self.app.opt.win_animation = self.tkopt.win_animation.get() + def mOptShadow(self, *args): if self._cancelDrag(break_pause=False): return self.app.opt.shadow = self.tkopt.shadow.get() diff --git a/pysollib/tile/statusbar.py b/pysollib/tile/statusbar.py index 1e9f1e1b..8a75378d 100644 --- a/pysollib/tile/statusbar.py +++ b/pysollib/tile/statusbar.py @@ -110,7 +110,7 @@ class MfxStatusbar: kw['foreground'] = kw['fg'] del kw['fg'] label = getattr(self, name + "_label") - apply(label.config, (), kw) + label.config(**kw) def show(self, show=True, resize=False): if self._show == show: diff --git a/pysollib/tile/tkcanvas.py b/pysollib/tile/tkcanvas.py index f0d8d4d7..e67a8e70 100644 --- a/pysollib/tile/tkcanvas.py +++ b/pysollib/tile/tkcanvas.py @@ -126,7 +126,7 @@ class MfxCanvasText(Canvas.CanvasText): class MfxCanvas(Tkinter.Canvas): def __init__(self, *args, **kw): - apply(Tkinter.Canvas.__init__, (self,) + args, kw) + Tkinter.Canvas.__init__(self, *args, **kw) self.preview = 0 # this is also used by lib-tk/Canvas.py self.items = {} diff --git a/pysollib/tile/tkhtml.py b/pysollib/tile/tkhtml.py index 9c644393..c45bc107 100644 --- a/pysollib/tile/tkhtml.py +++ b/pysollib/tile/tkhtml.py @@ -317,7 +317,7 @@ class HTMLViewer: self.parent = None def _yview(self, *args): - apply(self.text.yview, args, {}) + self.text.yview(*args) return 'break' def page_up(self, *event): diff --git a/pysollib/tile/tkstats.py b/pysollib/tile/tkstats.py index eb1b271a..8ba2341d 100644 --- a/pysollib/tile/tkstats.py +++ b/pysollib/tile/tkstats.py @@ -542,37 +542,37 @@ class _TopDialog(MfxDialog): cnf = {'master': top_frame, 'padding': (4, 1), } - frame = apply(Tkinter.Frame, (), cnf) + frame = Tkinter.Frame(**cnf) frame.pack(expand=Tkinter.YES, fill=Tkinter.BOTH, padx=10, pady=10) frame.columnconfigure(0, weight=1) cnf['master'] = frame cnf['text'] = _('N') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=0, sticky='ew') cnf['text'] = _('Game number') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=1, sticky='ew') cnf['text'] = _('Started at') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=2, sticky='ew') cnf['text'] = _('Result') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=3, sticky='ew') row = 1 for i in top: # N cnf['text'] = str(row) - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=0, sticky='ew') # Game number cnf['text'] = '#'+str(i.game_number) - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=1, sticky='ew') # Start time t = time.strftime('%Y-%m-%d %H:%M', time.localtime(i.game_start_time)) cnf['text'] = t - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=2, sticky='ew') # Result if isinstance(i.value, float): @@ -582,7 +582,7 @@ class _TopDialog(MfxDialog): # moves s = str(i.value) cnf['text'] = s - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=3, sticky='ew') row += 1 diff --git a/pysollib/tile/tktree.py b/pysollib/tile/tktree.py index 811e700c..316d3277 100644 --- a/pysollib/tile/tktree.py +++ b/pysollib/tile/tktree.py @@ -242,7 +242,7 @@ class MfxTreeInCanvas(MfxScrolledCanvas): def __init__(self, parent, rootnodes, **kw): kw['bd'] = 0 kw['bg'] = 'white' - apply(MfxScrolledCanvas.__init__, (self, parent,), kw) + MfxScrolledCanvas.__init__(self, parent, **kw) # self.rootnodes = rootnodes self.updateNodesWithTree(self.rootnodes, self) diff --git a/pysollib/tile/tkutil.py b/pysollib/tile/tkutil.py index 0754bed4..bbd33e27 100644 --- a/pysollib/tile/tkutil.py +++ b/pysollib/tile/tkutil.py @@ -241,12 +241,12 @@ def unbind_destroy(widget): # ************************************************************************/ def after(widget, ms, func, *args): - timer = apply(widget.after, (ms, func) + args) + timer = widget.after(ms, func, *args) command = widget._tclCommands[-1] return (timer, command, widget) def after_idle(widget, func, *args): - return apply(after, (widget, "idle", func) + args) + return after(widget, "idle", func, *args) def after_cancel(t): if t is not None: @@ -293,7 +293,7 @@ def makeImage(file=None, data=None, dither=None, alpha=None): # fromstring(mode, size, data, decoder_name='raw', *args) else: return Tkinter.PhotoImage(data=data) - return apply(Tkinter.PhotoImage, (), kw) + return Tkinter.PhotoImage(**kw) loadImage = makeImage diff --git a/pysollib/tile/tkwidget.py b/pysollib/tile/tkwidget.py index 370dac8e..2c2b49cf 100644 --- a/pysollib/tile/tkwidget.py +++ b/pysollib/tile/tkwidget.py @@ -297,7 +297,7 @@ class MfxExceptionDialog(MfxMessageDialog): else: t = str(ex) kw.text = text + unicode(t, errors='replace') - apply(MfxMessageDialog.__init__, (self, parent, title), kw.getKw()) + MfxMessageDialog.__init__(self, parent, title, **kw.getKw()) # /*********************************************************************** @@ -474,10 +474,10 @@ class MfxScrolledCanvas: self.frame.destroy() def pack(self, **kw): - apply(self.frame.pack, (), kw) + self.frame.pack(**kw) def grid(self, **kw): - apply(self.frame.grid, (), kw) + self.frame.grid(**kw) # # @@ -536,8 +536,7 @@ class MfxScrolledCanvas: self.frame = Tkinter.Frame(self.parent, width=width, height=height, bg=None) def createCanvas(self, kw): - #self.canvas = apply(Tkinter.Canvas, (self.frame,), kw) - self.canvas = apply(MfxCanvas, (self.frame,), kw) + self.canvas = MfxCanvas(self.frame, **kw) self.canvas.grid(row=0, column=0, sticky="news") def createHbar(self): self.hbar = Tkinter.Scrollbar(self.frame, name="hbar", @@ -584,15 +583,13 @@ class MfxScrolledCanvas: top.wm_geometry(g) def _setHbar(self, *args): - ##apply(self.hbar.set, args) self.canvas.update() - apply(self.hbar.set, self.canvas.xview()) + self.hbar.set(*self.canvas.xview()) self.showHbar() ##self.hbar.update_idletasks() def _setVbar(self, *args): - ##apply(self.vbar.set, args) self.canvas.update() - apply(self.vbar.set, self.canvas.yview()) + self.vbar.set(*self.canvas.yview()) self.showVbar() ##self.vbar.update_idletasks() @@ -637,10 +634,10 @@ class MfxScrolledCanvas: return 1 def _xview(self, *args): - if self.hbar_show: apply(self.canvas.xview, args, {}) + if self.hbar_show: self.canvas.xview(*args) return 'break' def _yview(self, *args): - if self.vbar_show: apply(self.canvas.yview, args, {}) + if self.vbar_show: self.canvas.yview(*args) return 'break' def page_up(self, *event): @@ -754,14 +751,17 @@ class MyPysolScale: kw['command'] = self._scale_command if 'label' in kw: self.label_text = kw['label'] + width = len(self.label_text)+4 del kw['label'] else: self.label_text = None + width = 3 # create widgets side = 'left' # 'top' self.frame = Tkinter.Frame(parent) - self.label = Tkinter.Label(self.frame, anchor='w', padding=(5,0)) + self.label = Tkinter.Label(self.frame, anchor='w', + width=width, padding=(5,0)) self.label.pack(side=side, expand=False, fill='x') self.scale = Tkinter.Scale(self.frame, **kw) self.scale.pack(side=side, expand=True, fill='both', pady=4) diff --git a/pysollib/tile/tkwrap.py b/pysollib/tile/tkwrap.py index 1700c2e9..eff80d00 100644 --- a/pysollib/tile/tkwrap.py +++ b/pysollib/tile/tkwrap.py @@ -85,7 +85,7 @@ StringVar = Tkinter.StringVar class MfxRoot(Tkinter.Tk): def __init__(self, **kw): - apply(Tkinter.Tk.__init__, (self,), kw) + Tkinter.Tk.__init__(self, **kw) self.app = None self.wm_protocol('WM_DELETE_WINDOW', self.wmDeleteWindow) # for interruptible sleep diff --git a/pysollib/tk/menubar.py b/pysollib/tk/menubar.py index 7310bf29..777ff840 100644 --- a/pysollib/tk/menubar.py +++ b/pysollib/tk/menubar.py @@ -42,6 +42,7 @@ import Tkinter, tkFileDialog # PySol imports from pysollib.mfxutil import destruct, Struct, kwdefault +from pysollib.mfxutil import Image from pysollib.util import CARDSET from pysollib.settings import PACKAGE, WIN_SYSTEM from pysollib.settings import TOP_TITLE @@ -131,7 +132,7 @@ class MfxMenubar(Tkinter.Menu): self.name = kw["name"] tearoff = 0 self.n = kw["tearoff"] = int(kw.get("tearoff", tearoff)) - apply(Tkinter.Menu.__init__, (self, master, ), kw) + Tkinter.Menu.__init__(self, master, **kw) def labeltoname(self, label): #print label, type(label) @@ -173,7 +174,7 @@ class MfxMenu(MfxMenubar): else: name, label, label_underline = self.labeltoname(label) kwdefault(kw, name=name) - apply(MfxMenubar.__init__, (self, master,), kw) + MfxMenubar.__init__(self, master, **kw) if underline is None: underline = label_underline if master: @@ -235,6 +236,8 @@ class PysolMenubar(PysolMenubarActions): cardback = MfxRadioMenuItem(self), tabletile = MfxRadioMenuItem(self), animations = MfxRadioMenuItem(self), + redeal_animation = MfxCheckMenuItem(self), + win_animation = MfxCheckMenuItem(self), shadow = MfxCheckMenuItem(self), shade = MfxCheckMenuItem(self), shade_filled_stacks = MfxCheckMenuItem(self), @@ -281,6 +284,8 @@ class PysolMenubar(PysolMenubarActions): tkopt.cardback.set(self.app.cardset.backindex) tkopt.tabletile.set(self.app.tabletile_index) tkopt.animations.set(opt.animations) + tkopt.redeal_animation.set(opt.redeal_animation) + tkopt.win_animation.set(opt.win_animation) tkopt.shadow.set(opt.shadow) tkopt.shade.set(opt.shade) tkopt.toolbar.set(opt.toolbar) @@ -338,7 +343,7 @@ class PysolMenubar(PysolMenubarActions): def _createMenubar(self): MfxMenubar.addPath = self._addPath kw = { "name": "menubar" } - self.__menubar = apply(MfxMenubar, (self.top,), kw) + self.__menubar = MfxMenubar(self.top, **kw) # init keybindings bind(self.top, "", self._keyPressHandler) @@ -477,6 +482,10 @@ class PysolMenubar(PysolMenubarActions): submenu.add_radiobutton(label=n_("&Fast"), variable=self.tkopt.animations, value=1, command=self.mOptAnimations) submenu.add_radiobutton(label=n_("&Slow"), variable=self.tkopt.animations, value=3, command=self.mOptAnimations) submenu.add_radiobutton(label=n_("&Very slow"), variable=self.tkopt.animations, value=4, command=self.mOptAnimations) + submenu.add_separator() + submenu.add_checkbutton(label=n_("&Redeal animation"), variable=self.tkopt.redeal_animation, command=self.mRedealAnimation) + if Image: + submenu.add_checkbutton(label=n_("&Winning animation"), variable=self.tkopt.win_animation, command=self.mWinAnimation) submenu = MfxMenu(menu, label=n_("&Mouse")) submenu.add_radiobutton(label=n_("&Drag-and-Drop"), variable=self.tkopt.mouse_type, value='drag-n-drop', command=self.mOptMouseType) submenu.add_radiobutton(label=n_("&Point-and-Click"), variable=self.tkopt.mouse_type, value='point-n-click', command=self.mOptMouseType) @@ -1080,6 +1089,14 @@ class PysolMenubar(PysolMenubarActions): if self._cancelDrag(break_pause=False): return self.app.opt.animations = self.tkopt.animations.get() + def mRedealAnimation(self, *args): + if self._cancelDrag(break_pause=False): return + self.app.opt.redeal_animation = self.tkopt.redeal_animation.get() + + def mWinAnimation(self, *args): + if self._cancelDrag(break_pause=False): return + self.app.opt.win_animation = self.tkopt.win_animation.get() + def mOptShadow(self, *args): if self._cancelDrag(break_pause=False): return self.app.opt.shadow = self.tkopt.shadow.get() diff --git a/pysollib/tk/progressbar.py b/pysollib/tk/progressbar.py index 59373880..171b81ca 100644 --- a/pysollib/tk/progressbar.py +++ b/pysollib/tk/progressbar.py @@ -96,7 +96,7 @@ class PysolProgressBar: def pack(self, **kw): self.canvas.pack(fill=Tkinter.X, expand=0) - apply(self.frame.pack, (), kw) + self.frame.pack(**kw) def reset(self, percent=0): self.percent = percent diff --git a/pysollib/tk/statusbar.py b/pysollib/tk/statusbar.py index e502b15e..89dfdc87 100644 --- a/pysollib/tk/statusbar.py +++ b/pysollib/tk/statusbar.py @@ -121,7 +121,7 @@ class MfxStatusbar: def configLabel(self, name, **kw): label = getattr(self, name + "_label") - apply(label.config, (), kw) + label.config(**kw) def show(self, show=True, resize=False): if self._show == show: diff --git a/pysollib/tk/tkcanvas.py b/pysollib/tk/tkcanvas.py index 8509ab11..2c9e7856 100644 --- a/pysollib/tk/tkcanvas.py +++ b/pysollib/tk/tkcanvas.py @@ -125,7 +125,7 @@ class MfxCanvasText(Canvas.CanvasText): class MfxCanvas(Tkinter.Canvas): def __init__(self, *args, **kw): - apply(Tkinter.Canvas.__init__, (self,) + args, kw) + Tkinter.Canvas.__init__(self, *args, **kw) self.preview = 0 # this is also used by lib-tk/Canvas.py self.items = {} diff --git a/pysollib/tk/tkhtml.py b/pysollib/tk/tkhtml.py index 966de908..8989db7d 100644 --- a/pysollib/tk/tkhtml.py +++ b/pysollib/tk/tkhtml.py @@ -316,7 +316,7 @@ class HTMLViewer: self.parent = None def _yview(self, *args): - apply(self.text.yview, args, {}) + self.text.yview(*args) return 'break' def page_up(self, *event): diff --git a/pysollib/tk/tkstats.py b/pysollib/tk/tkstats.py index a2a9c5fc..cb1d14d3 100644 --- a/pysollib/tk/tkstats.py +++ b/pysollib/tk/tkstats.py @@ -658,37 +658,37 @@ class _TopDialog(MfxDialog): 'highlightthickness': 1, 'highlightbackground': 'black', } - frame = apply(Tkinter.Frame, (), cnf) + frame = Tkinter.Frame(**cnf) frame.pack(expand=Tkinter.YES, fill=Tkinter.BOTH, padx=10, pady=10) frame.columnconfigure(0, weight=1) cnf['master'] = frame cnf['text'] = _('N') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=0, sticky='ew') cnf['text'] = _('Game number') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=1, sticky='ew') cnf['text'] = _('Started at') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=2, sticky='ew') cnf['text'] = _('Result') - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=0, column=3, sticky='ew') row = 1 for i in top: # N cnf['text'] = str(row) - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=0, sticky='ew') # Game number cnf['text'] = '#'+str(i.game_number) - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=1, sticky='ew') # Start time t = time.strftime('%Y-%m-%d %H:%M', time.localtime(i.game_start_time)) cnf['text'] = t - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=2, sticky='ew') # Result if isinstance(i.value, float): @@ -698,7 +698,7 @@ class _TopDialog(MfxDialog): # moves s = str(i.value) cnf['text'] = s - l = apply(Tkinter.Label, (), cnf) + l = Tkinter.Label(**cnf) l.grid(row=row, column=3, sticky='ew') row += 1 diff --git a/pysollib/tk/tktree.py b/pysollib/tk/tktree.py index 6f8ef7c0..c7eeff8e 100644 --- a/pysollib/tk/tktree.py +++ b/pysollib/tk/tktree.py @@ -242,7 +242,7 @@ class MfxTreeInCanvas(MfxScrolledCanvas): def __init__(self, parent, rootnodes, **kw): bg = kw["bg"] = kw.get("bg") or parent.cget("bg") kw['bd'] = 0 - apply(MfxScrolledCanvas.__init__, (self, parent,), kw) + MfxScrolledCanvas.__init__(self, parent, **kw) # self.rootnodes = rootnodes self.updateNodesWithTree(self.rootnodes, self) diff --git a/pysollib/tk/tkutil.py b/pysollib/tk/tkutil.py index 3df99a68..fe80caed 100644 --- a/pysollib/tk/tkutil.py +++ b/pysollib/tk/tkutil.py @@ -241,12 +241,12 @@ def unbind_destroy(widget): # ************************************************************************/ def after(widget, ms, func, *args): - timer = apply(widget.after, (ms, func) + args) + timer = widget.after(ms, func, *args) command = widget._tclCommands[-1] return (timer, command, widget) def after_idle(widget, func, *args): - return apply(after, (widget, "idle", func) + args) + return after(widget, "idle", func, *args) def after_cancel(t): if t is not None: @@ -293,7 +293,7 @@ def makeImage(file=None, data=None, dither=None, alpha=None): # fromstring(mode, size, data, decoder_name='raw', *args) else: return Tkinter.PhotoImage(data=data) - return apply(Tkinter.PhotoImage, (), kw) + return Tkinter.PhotoImage(**kw) loadImage = makeImage diff --git a/pysollib/tk/tkwidget.py b/pysollib/tk/tkwidget.py index 9b7df502..289d40d7 100644 --- a/pysollib/tk/tkwidget.py +++ b/pysollib/tk/tkwidget.py @@ -292,7 +292,7 @@ class MfxExceptionDialog(MfxMessageDialog): else: t = str(ex) kw.text = text + unicode(t, errors='replace') - apply(MfxMessageDialog.__init__, (self, parent, title), kw.getKw()) + MfxMessageDialog.__init__(self, parent, title, **kw.getKw()) # /*********************************************************************** @@ -474,10 +474,10 @@ class MfxScrolledCanvas: self.frame.destroy() def pack(self, **kw): - apply(self.frame.pack, (), kw) + self.frame.pack(**kw) def grid(self, **kw): - apply(self.frame.grid, (), kw) + self.frame.grid(**kw) # # @@ -533,11 +533,10 @@ class MfxScrolledCanvas: def createFrame(self, kw): width = kw.get("width") height = kw.get("height") - self.frame = Tkinter.Frame(self.parent, width=width, height=height, bg=None) + self.frame = Tkinter.Frame(self.parent, width=width, height=height) def createCanvas(self, kw): - #self.canvas = apply(Tkinter.Canvas, (self.frame,), kw) - self.canvas = apply(MfxCanvas, (self.frame,), kw) + self.canvas = MfxCanvas(self.frame, **kw) self.canvas.grid(row=0, column=0, sticky="news") def createHbar(self): self.hbar = Tkinter.Scrollbar(self.frame, name="hbar", @@ -585,15 +584,13 @@ class MfxScrolledCanvas: top.wm_geometry(g) def _setHbar(self, *args): - ##apply(self.hbar.set, args) self.canvas.update() - apply(self.hbar.set, self.canvas.xview()) + self.hbar.set(*self.canvas.xview()) self.showHbar() ##self.hbar.update_idletasks() def _setVbar(self, *args): - ##apply(self.vbar.set, args) self.canvas.update() - apply(self.vbar.set, self.canvas.yview()) + self.vbar.set(*self.canvas.yview()) self.showVbar() ##self.vbar.update_idletasks() @@ -638,10 +635,10 @@ class MfxScrolledCanvas: return 1 def _xview(self, *args): - if self.hbar_show: apply(self.canvas.xview, args, {}) + if self.hbar_show: self.canvas.xview(*args) return 'break' def _yview(self, *args): - if self.vbar_show: apply(self.canvas.yview, args, {}) + if self.vbar_show: self.canvas.yview(*args) return 'break' def page_up(self, *event): diff --git a/pysollib/tk/tkwrap.py b/pysollib/tk/tkwrap.py index a1bb8cac..2224cf87 100644 --- a/pysollib/tk/tkwrap.py +++ b/pysollib/tk/tkwrap.py @@ -86,7 +86,7 @@ StringVar = Tkinter.StringVar class MfxRoot(Tkinter.Tk): def __init__(self, **kw): - apply(Tkinter.Tk.__init__, (self,), kw) + Tkinter.Tk.__init__(self, **kw) self.app = None self.wm_protocol('WM_DELETE_WINDOW', self.wmDeleteWindow) # for interruptible sleep