mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
+ 3 new games
* cleanup main.py and mfxutil.py * bugs fixes git-svn-id: https://pysolfc.svn.sourceforge.net/svnroot/pysolfc/PySolFC/trunk@91 39dd0a4e-7c14-0410-91b3-c4f2d318f732
This commit is contained in:
parent
40fc8ea105
commit
017379ea05
13 changed files with 296 additions and 395 deletions
11
po/games.pot
11
po/games.pot
|
@ -5,7 +5,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PySol 0.0.1\n"
|
"Project-Id-Version: PySol 0.0.1\n"
|
||||||
"POT-Creation-Date: Tue Nov 7 05:42:15 2006\n"
|
"POT-Creation-Date: Thu Nov 9 17:36:05 2006\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -993,6 +993,9 @@ msgstr ""
|
||||||
msgid "Fatimeh's Game Relaxed"
|
msgid "Fatimeh's Game Relaxed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Fifteen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Fifteen Puzzle"
|
msgid "Fifteen Puzzle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1395,6 +1398,9 @@ msgstr ""
|
||||||
msgid "Inca"
|
msgid "Inca"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Incompatibility"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Indefatigable"
|
msgid "Indefatigable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2973,6 +2979,9 @@ msgstr ""
|
||||||
msgid "Scorpion Head"
|
msgid "Scorpion Head"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Scorpion II"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Scorpion Tail"
|
msgid "Scorpion Tail"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
134
po/pysol.pot
134
po/pysol.pot
|
@ -14,7 +14,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"#-#-#-#-# pysol-1.pot (PACKAGE VERSION) #-#-#-#-#\n"
|
"#-#-#-#-# pysol-1.pot (PACKAGE VERSION) #-#-#-#-#\n"
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: Tue Nov 7 05:43:10 2006\n"
|
"POT-Creation-Date: Thu Nov 9 17:36:57 2006\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -24,7 +24,7 @@ msgstr ""
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
"#-#-#-#-# pysol-2.pot (PACKAGE VERSION) #-#-#-#-#\n"
|
"#-#-#-#-# pysol-2.pot (PACKAGE VERSION) #-#-#-#-#\n"
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 2006-11-07 05:43+0300\n"
|
"POT-Creation-Date: 2006-11-09 17:36+0300\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -70,7 +70,7 @@ msgstr ""
|
||||||
|
|
||||||
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
|
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
|
||||||
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
|
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
|
||||||
#: pysollib/main.py:376 pysollib/main.py:384 pysollib/tk/colorsdialog.py:122
|
#: pysollib/main.py:379 pysollib/main.py:387 pysollib/tk/colorsdialog.py:122
|
||||||
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
|
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
|
||||||
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
|
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
|
||||||
#: pysollib/tk/playeroptionsdialog.py:85
|
#: pysollib/tk/playeroptionsdialog.py:85
|
||||||
|
@ -465,211 +465,211 @@ msgstr ""
|
||||||
msgid "Error while saving game"
|
msgid "Error while saving game"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:120
|
#: pysollib/gamedb.py:121
|
||||||
msgid "Baker's Dozen"
|
msgid "Baker's Dozen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:121
|
#: pysollib/gamedb.py:122
|
||||||
msgid "Beleaguered Castle"
|
msgid "Beleaguered Castle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:122
|
#: pysollib/gamedb.py:123
|
||||||
msgid "Canfield"
|
msgid "Canfield"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:123
|
#: pysollib/gamedb.py:124
|
||||||
msgid "Fan"
|
msgid "Fan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:124
|
#: pysollib/gamedb.py:125
|
||||||
msgid "Forty Thieves"
|
msgid "Forty Thieves"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:125
|
#: pysollib/gamedb.py:126
|
||||||
msgid "FreeCell"
|
msgid "FreeCell"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:126
|
#: pysollib/gamedb.py:127
|
||||||
msgid "Golf"
|
msgid "Golf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:127
|
#: pysollib/gamedb.py:128
|
||||||
msgid "Gypsy"
|
msgid "Gypsy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:128
|
#: pysollib/gamedb.py:129
|
||||||
msgid "Klondike"
|
msgid "Klondike"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:129
|
#: pysollib/gamedb.py:130
|
||||||
msgid "Montana"
|
msgid "Montana"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:130
|
#: pysollib/gamedb.py:131
|
||||||
msgid "Napoleon"
|
msgid "Napoleon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:131
|
#: pysollib/gamedb.py:132
|
||||||
msgid "Numerica"
|
msgid "Numerica"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:132
|
#: pysollib/gamedb.py:133
|
||||||
msgid "Pairing"
|
msgid "Pairing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:133
|
#: pysollib/gamedb.py:134
|
||||||
msgid "Raglan"
|
msgid "Raglan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:134 pysollib/gamedb.py:167
|
#: pysollib/gamedb.py:135 pysollib/gamedb.py:168
|
||||||
msgid "Simple games"
|
msgid "Simple games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:135
|
#: pysollib/gamedb.py:136
|
||||||
msgid "Spider"
|
msgid "Spider"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:136
|
#: pysollib/gamedb.py:137
|
||||||
msgid "Terrace"
|
msgid "Terrace"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:137
|
#: pysollib/gamedb.py:138
|
||||||
msgid "Yukon"
|
msgid "Yukon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:138 pysollib/gamedb.py:171
|
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
|
||||||
msgid "One-Deck games"
|
msgid "One-Deck games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
|
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
|
||||||
msgid "Two-Deck games"
|
msgid "Two-Deck games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
|
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
|
||||||
msgid "Three-Deck games"
|
msgid "Three-Deck games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
|
#: pysollib/gamedb.py:142 pysollib/gamedb.py:175
|
||||||
msgid "Four-Deck games"
|
msgid "Four-Deck games"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:153
|
#: pysollib/gamedb.py:154
|
||||||
msgid "Baker's Dozen type"
|
msgid "Baker's Dozen type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:154
|
#: pysollib/gamedb.py:155
|
||||||
msgid "Beleaguered Castle type"
|
msgid "Beleaguered Castle type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:155
|
#: pysollib/gamedb.py:156
|
||||||
msgid "Canfield type"
|
msgid "Canfield type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:156
|
#: pysollib/gamedb.py:157
|
||||||
msgid "Fan type"
|
msgid "Fan type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:157
|
#: pysollib/gamedb.py:158
|
||||||
msgid "Forty Thieves type"
|
msgid "Forty Thieves type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:158
|
#: pysollib/gamedb.py:159
|
||||||
msgid "FreeCell type"
|
msgid "FreeCell type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:159
|
#: pysollib/gamedb.py:160
|
||||||
msgid "Golf type"
|
msgid "Golf type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:160
|
#: pysollib/gamedb.py:161
|
||||||
msgid "Gypsy type"
|
msgid "Gypsy type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:161
|
#: pysollib/gamedb.py:162
|
||||||
msgid "Klondike type"
|
msgid "Klondike type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:162
|
#: pysollib/gamedb.py:163
|
||||||
msgid "Montana type"
|
msgid "Montana type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:163
|
#: pysollib/gamedb.py:164
|
||||||
msgid "Napoleon type"
|
msgid "Napoleon type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:164
|
#: pysollib/gamedb.py:165
|
||||||
msgid "Numerica type"
|
msgid "Numerica type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:165
|
#: pysollib/gamedb.py:166
|
||||||
msgid "Pairing type"
|
msgid "Pairing type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:166
|
#: pysollib/gamedb.py:167
|
||||||
msgid "Raglan type"
|
msgid "Raglan type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:168
|
#: pysollib/gamedb.py:169
|
||||||
msgid "Spider type"
|
msgid "Spider type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:169
|
#: pysollib/gamedb.py:170
|
||||||
msgid "Terrace type"
|
msgid "Terrace type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:170
|
#: pysollib/gamedb.py:171
|
||||||
msgid "Yukon type"
|
msgid "Yukon type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:178 pysollib/gamedb.py:186
|
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187
|
||||||
msgid "French type"
|
msgid "French type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187 pysollib/gamedb.py:195
|
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
|
||||||
msgid "Ganjifa type"
|
msgid "Ganjifa type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
|
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:197
|
||||||
msgid "Hanafuda type"
|
msgid "Hanafuda type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:203
|
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:204
|
||||||
msgid "Hex A Deck type"
|
msgid "Hex A Deck type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:208
|
#: pysollib/gamedb.py:183 pysollib/gamedb.py:191 pysollib/gamedb.py:209
|
||||||
msgid "Tarock type"
|
msgid "Tarock type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:194
|
#: pysollib/gamedb.py:195
|
||||||
msgid "Dashavatara Ganjifa type"
|
msgid "Dashavatara Ganjifa type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:197
|
#: pysollib/gamedb.py:198
|
||||||
msgid "Mughal Ganjifa type"
|
msgid "Mughal Ganjifa type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:198
|
#: pysollib/gamedb.py:199
|
||||||
msgid "Navagraha Ganjifa type"
|
msgid "Navagraha Ganjifa type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:202
|
#: pysollib/gamedb.py:203
|
||||||
msgid "Shisen-Sho"
|
msgid "Shisen-Sho"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:204
|
#: pysollib/gamedb.py:205
|
||||||
msgid "Matrix type"
|
msgid "Matrix type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:205
|
#: pysollib/gamedb.py:206
|
||||||
msgid "Memory type"
|
msgid "Memory type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:206
|
#: pysollib/gamedb.py:207
|
||||||
msgid "Poker type"
|
msgid "Poker type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:207
|
#: pysollib/gamedb.py:208
|
||||||
msgid "Puzzle type"
|
msgid "Puzzle type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1227,11 +1227,11 @@ msgstr ""
|
||||||
msgid " Help"
|
msgid " Help"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:67 pysollib/main.py:284
|
#: pysollib/main.py:68 pysollib/main.py:287
|
||||||
msgid " installation error"
|
msgid " installation error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:68
|
#: pysollib/main.py:69
|
||||||
msgid ""
|
msgid ""
|
||||||
"No %ss were found !!!\n"
|
"No %ss were found !!!\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1241,17 +1241,17 @@ msgid ""
|
||||||
"Please check your %s installation.\n"
|
"Please check your %s installation.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:75 pysollib/main.py:292 pysollib/tk/menubar.py:382
|
#: pysollib/main.py:76 pysollib/main.py:295 pysollib/tk/menubar.py:382
|
||||||
msgid "&Quit"
|
msgid "&Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:99
|
#: pysollib/main.py:100
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: %s\n"
|
"%s: %s\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:143
|
#: pysollib/main.py:147
|
||||||
msgid ""
|
msgid ""
|
||||||
"Usage: %s [OPTIONS] [FILE]\n"
|
"Usage: %s [OPTIONS] [FILE]\n"
|
||||||
" -g --game=GAMENAME start game GAMENAME\n"
|
" -g --game=GAMENAME start game GAMENAME\n"
|
||||||
|
@ -1269,19 +1269,19 @@ msgid ""
|
||||||
" MOD - one of following: pss(default), pygame, oss, win\n"
|
" MOD - one of following: pss(default), pygame, oss, win\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:161
|
#: pysollib/main.py:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: too many files\n"
|
"%s: too many files\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:165
|
#: pysollib/main.py:169
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: invalid file name\n"
|
"%s: invalid file name\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:285
|
#: pysollib/main.py:288
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"No games were found !!!\n"
|
"No games were found !!!\n"
|
||||||
|
@ -1292,25 +1292,25 @@ msgid ""
|
||||||
"Please check your %s installation.\n"
|
"Please check your %s installation.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:371 pysollib/main.py:379
|
#: pysollib/main.py:374 pysollib/main.py:382
|
||||||
msgid " installation problem"
|
msgid " installation problem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:372
|
#: pysollib/main.py:375
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Python installation is compiled without thread support.\n"
|
"Your Python installation is compiled without thread support.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Sounds and background music will be disabled."
|
"Sounds and background music will be disabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:380
|
#: pysollib/main.py:383
|
||||||
msgid ""
|
msgid ""
|
||||||
"The pysolsoundserver module was not found.\n"
|
"The pysolsoundserver module was not found.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Sounds and background music will be disabled."
|
"Sounds and background music will be disabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:387
|
#: pysollib/main.py:390
|
||||||
msgid "Welcome to "
|
msgid "Welcome to "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PySol 0.0.1\n"
|
"Project-Id-Version: PySol 0.0.1\n"
|
||||||
"POT-Creation-Date: Tue Nov 7 05:42:15 2006\n"
|
"POT-Creation-Date: Thu Nov 9 17:36:05 2006\n"
|
||||||
"PO-Revision-Date: 2006-11-07 05:51+0300\n"
|
"PO-Revision-Date: 2006-11-09 17:59+0300\n"
|
||||||
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
|
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -925,10 +925,10 @@ msgid "Elevator"
|
||||||
msgstr "Лифт"
|
msgstr "Лифт"
|
||||||
|
|
||||||
msgid "Elevens"
|
msgid "Elevens"
|
||||||
msgstr "Одиннадцать"
|
msgstr "По одиннадцать"
|
||||||
|
|
||||||
msgid "Elevens Too"
|
msgid "Elevens Too"
|
||||||
msgstr "Тоже Одиннадцать"
|
msgstr "Тоже по одиннадцать"
|
||||||
|
|
||||||
msgid "Emperor"
|
msgid "Emperor"
|
||||||
msgstr "Император"
|
msgstr "Император"
|
||||||
|
@ -1003,6 +1003,9 @@ msgstr "Пасьянс Фатимы"
|
||||||
msgid "Fatimeh's Game Relaxed"
|
msgid "Fatimeh's Game Relaxed"
|
||||||
msgstr "Облегчённый Пасьянс Фатимы"
|
msgstr "Облегчённый Пасьянс Фатимы"
|
||||||
|
|
||||||
|
msgid "Fifteen"
|
||||||
|
msgstr "Пятнадцать"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Fifteen Puzzle"
|
msgid "Fifteen Puzzle"
|
||||||
msgstr "Пятнашки"
|
msgstr "Пятнашки"
|
||||||
|
@ -1011,7 +1014,7 @@ msgid "Fifteen plus"
|
||||||
msgstr "Пятнадцать плюс"
|
msgstr "Пятнадцать плюс"
|
||||||
|
|
||||||
msgid "Fifteens"
|
msgid "Fifteens"
|
||||||
msgstr "Пятнадцать"
|
msgstr "По пятнадцать"
|
||||||
|
|
||||||
msgid "Final Battle"
|
msgid "Final Battle"
|
||||||
msgstr "Последняя битва"
|
msgstr "Последняя битва"
|
||||||
|
@ -1414,6 +1417,9 @@ msgstr "Маджонг Inazuma"
|
||||||
msgid "Inca"
|
msgid "Inca"
|
||||||
msgstr "Инка"
|
msgstr "Инка"
|
||||||
|
|
||||||
|
msgid "Incompatibility"
|
||||||
|
msgstr "Несовместимость"
|
||||||
|
|
||||||
msgid "Indefatigable"
|
msgid "Indefatigable"
|
||||||
msgstr "Неутомимый"
|
msgstr "Неутомимый"
|
||||||
|
|
||||||
|
@ -1576,53 +1582,41 @@ msgstr "Гигант"
|
||||||
msgid "Kurma"
|
msgid "Kurma"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 14"
|
msgid "Kyodai 14"
|
||||||
msgstr "Маджонг Kyodai 14"
|
msgstr "Kyodai 14"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 17"
|
msgid "Kyodai 17"
|
||||||
msgstr "Маджонг Kyodai 17"
|
msgstr "Kyodai 17"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 18"
|
msgid "Kyodai 18"
|
||||||
msgstr "Маджонг Kyodai 18"
|
msgstr "Kyodai 18"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 20"
|
msgid "Kyodai 20"
|
||||||
msgstr "Маджонг Kyodai 20"
|
msgstr "Kyodai 20"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 23"
|
msgid "Kyodai 23"
|
||||||
msgstr "Маджонг Kyodai 23"
|
msgstr "Kyodai 23"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 24"
|
msgid "Kyodai 24"
|
||||||
msgstr "Маджонг Kyodai 24"
|
msgstr "Kyodai 24"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 25"
|
msgid "Kyodai 25"
|
||||||
msgstr "Маджонг Kyodai 25"
|
msgstr "Kyodai 25"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 26"
|
msgid "Kyodai 26"
|
||||||
msgstr "Маджонг Kyodai 26"
|
msgstr "Kyodai 26"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 27"
|
msgid "Kyodai 27"
|
||||||
msgstr "Маджонг Kyodai 27"
|
msgstr "Kyodai 27"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 28"
|
msgid "Kyodai 28"
|
||||||
msgstr "Маджонг Kyodai 28"
|
msgstr "Kyodai 28"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 41"
|
msgid "Kyodai 41"
|
||||||
msgstr "Маджонг Kyodai 4"
|
msgstr "Kyodai 41"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Kyodai 42"
|
msgid "Kyodai 42"
|
||||||
msgstr "Маджонг Kyodai 42"
|
msgstr "Kyodai 42"
|
||||||
|
|
||||||
msgid "La Belle Lucie"
|
msgid "La Belle Lucie"
|
||||||
msgstr "Прекрасная Люси"
|
msgstr "Прекрасная Люси"
|
||||||
|
@ -1747,7 +1741,7 @@ msgid "Lucas"
|
||||||
msgstr "Лукас"
|
msgstr "Лукас"
|
||||||
|
|
||||||
msgid "Lucky Piles"
|
msgid "Lucky Piles"
|
||||||
msgstr "Счастливая ячейка"
|
msgstr "Счастливые кучки"
|
||||||
|
|
||||||
msgid "Lucky Thirteen"
|
msgid "Lucky Thirteen"
|
||||||
msgstr "Счастливые Тринадцать"
|
msgstr "Счастливые Тринадцать"
|
||||||
|
@ -3023,6 +3017,9 @@ msgstr "Скорпион"
|
||||||
msgid "Scorpion Head"
|
msgid "Scorpion Head"
|
||||||
msgstr "Голова скорпиона"
|
msgstr "Голова скорпиона"
|
||||||
|
|
||||||
|
msgid "Scorpion II"
|
||||||
|
msgstr "Скорпион II"
|
||||||
|
|
||||||
msgid "Scorpion Tail"
|
msgid "Scorpion Tail"
|
||||||
msgstr "Хвост скорпиона"
|
msgstr "Хвост скорпиона"
|
||||||
|
|
||||||
|
@ -3039,7 +3036,7 @@ msgid "Sea Towers"
|
||||||
msgstr "Морские башни"
|
msgstr "Морские башни"
|
||||||
|
|
||||||
msgid "Seahaven Towers"
|
msgid "Seahaven Towers"
|
||||||
msgstr ""
|
msgstr "Приморские башни"
|
||||||
|
|
||||||
msgid "Selective Castle"
|
msgid "Selective Castle"
|
||||||
msgstr "Избирательный Замок"
|
msgstr "Избирательный Замок"
|
||||||
|
@ -3075,7 +3072,7 @@ msgid "Shady Lanes"
|
||||||
msgstr "Тенистые аллеи"
|
msgstr "Тенистые аллеи"
|
||||||
|
|
||||||
msgid "Shamrocks"
|
msgid "Shamrocks"
|
||||||
msgstr "Трилистник"
|
msgstr "Трилистники"
|
||||||
|
|
||||||
msgid "Shamsher"
|
msgid "Shamsher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3457,7 +3454,7 @@ msgid "Thirteen Up"
|
||||||
msgstr "Тринадцать вверх"
|
msgstr "Тринадцать вверх"
|
||||||
|
|
||||||
msgid "Thirteens"
|
msgid "Thirteens"
|
||||||
msgstr "Тринадцать"
|
msgstr "По тринадцать"
|
||||||
|
|
||||||
msgid "Thirty Six"
|
msgid "Thirty Six"
|
||||||
msgstr "Тридцать шесть"
|
msgstr "Тридцать шесть"
|
||||||
|
|
132
po/ru_pysol.po
132
po/ru_pysol.po
|
@ -5,7 +5,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PySol 0.0.1\n"
|
"Project-Id-Version: PySol 0.0.1\n"
|
||||||
"POT-Creation-Date: Tue Nov 7 05:43:10 2006\n"
|
"POT-Creation-Date: Thu Nov 9 17:36:57 2006\n"
|
||||||
"PO-Revision-Date: 2006-11-06 09:53+0300\n"
|
"PO-Revision-Date: 2006-11-06 09:53+0300\n"
|
||||||
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
|
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
|
||||||
"Language-Team: Russian <ru@li.org>\n"
|
"Language-Team: Russian <ru@li.org>\n"
|
||||||
|
@ -55,7 +55,7 @@ msgstr "&Следующий номер"
|
||||||
|
|
||||||
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
|
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
|
||||||
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
|
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
|
||||||
#: pysollib/main.py:376 pysollib/main.py:384 pysollib/tk/colorsdialog.py:122
|
#: pysollib/main.py:379 pysollib/main.py:387 pysollib/tk/colorsdialog.py:122
|
||||||
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
|
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
|
||||||
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
|
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
|
||||||
#: pysollib/tk/playeroptionsdialog.py:85
|
#: pysollib/tk/playeroptionsdialog.py:85
|
||||||
|
@ -510,211 +510,211 @@ msgstr "Ошибка при сохранении игры"
|
||||||
msgid "Error while saving game"
|
msgid "Error while saving game"
|
||||||
msgstr "Ошибка при сохранении игры"
|
msgstr "Ошибка при сохранении игры"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:120
|
#: pysollib/gamedb.py:121
|
||||||
msgid "Baker's Dozen"
|
msgid "Baker's Dozen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:121
|
#: pysollib/gamedb.py:122
|
||||||
msgid "Beleaguered Castle"
|
msgid "Beleaguered Castle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:122
|
#: pysollib/gamedb.py:123
|
||||||
msgid "Canfield"
|
msgid "Canfield"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:123
|
#: pysollib/gamedb.py:124
|
||||||
msgid "Fan"
|
msgid "Fan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:124
|
#: pysollib/gamedb.py:125
|
||||||
msgid "Forty Thieves"
|
msgid "Forty Thieves"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:125
|
#: pysollib/gamedb.py:126
|
||||||
msgid "FreeCell"
|
msgid "FreeCell"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:126
|
#: pysollib/gamedb.py:127
|
||||||
msgid "Golf"
|
msgid "Golf"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:127
|
#: pysollib/gamedb.py:128
|
||||||
msgid "Gypsy"
|
msgid "Gypsy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:128
|
#: pysollib/gamedb.py:129
|
||||||
msgid "Klondike"
|
msgid "Klondike"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:129
|
#: pysollib/gamedb.py:130
|
||||||
msgid "Montana"
|
msgid "Montana"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:130
|
#: pysollib/gamedb.py:131
|
||||||
msgid "Napoleon"
|
msgid "Napoleon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:131
|
#: pysollib/gamedb.py:132
|
||||||
msgid "Numerica"
|
msgid "Numerica"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:132
|
#: pysollib/gamedb.py:133
|
||||||
msgid "Pairing"
|
msgid "Pairing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:133
|
#: pysollib/gamedb.py:134
|
||||||
msgid "Raglan"
|
msgid "Raglan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:134 pysollib/gamedb.py:167
|
#: pysollib/gamedb.py:135 pysollib/gamedb.py:168
|
||||||
msgid "Simple games"
|
msgid "Simple games"
|
||||||
msgstr "Простые игры"
|
msgstr "Простые игры"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:135
|
#: pysollib/gamedb.py:136
|
||||||
msgid "Spider"
|
msgid "Spider"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:136
|
#: pysollib/gamedb.py:137
|
||||||
msgid "Terrace"
|
msgid "Terrace"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:137
|
#: pysollib/gamedb.py:138
|
||||||
msgid "Yukon"
|
msgid "Yukon"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/gamedb.py:138 pysollib/gamedb.py:171
|
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
|
||||||
msgid "One-Deck games"
|
msgid "One-Deck games"
|
||||||
msgstr "Игры с одной колодой"
|
msgstr "Игры с одной колодой"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
|
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
|
||||||
msgid "Two-Deck games"
|
msgid "Two-Deck games"
|
||||||
msgstr "Игры с двумя колодами"
|
msgstr "Игры с двумя колодами"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
|
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
|
||||||
msgid "Three-Deck games"
|
msgid "Three-Deck games"
|
||||||
msgstr "Игры с тремя колодами"
|
msgstr "Игры с тремя колодами"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
|
#: pysollib/gamedb.py:142 pysollib/gamedb.py:175
|
||||||
msgid "Four-Deck games"
|
msgid "Four-Deck games"
|
||||||
msgstr "Игры с четырьмя колодами"
|
msgstr "Игры с четырьмя колодами"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:153
|
#: pysollib/gamedb.py:154
|
||||||
msgid "Baker's Dozen type"
|
msgid "Baker's Dozen type"
|
||||||
msgstr "Игры типа Чёртова Дюжина (Baker's Dozen)"
|
msgstr "Игры типа Чёртова Дюжина (Baker's Dozen)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:154
|
#: pysollib/gamedb.py:155
|
||||||
msgid "Beleaguered Castle type"
|
msgid "Beleaguered Castle type"
|
||||||
msgstr "Игры типа Осаждённый Замок (Beleaguered Castle)"
|
msgstr "Игры типа Осаждённый Замок (Beleaguered Castle)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:155
|
#: pysollib/gamedb.py:156
|
||||||
msgid "Canfield type"
|
msgid "Canfield type"
|
||||||
msgstr "Игры типа Кенфилд (Canfield)"
|
msgstr "Игры типа Кенфилд (Canfield)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:156
|
#: pysollib/gamedb.py:157
|
||||||
msgid "Fan type"
|
msgid "Fan type"
|
||||||
msgstr "Игры типа Веер (Fan)"
|
msgstr "Игры типа Веер (Fan)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:157
|
#: pysollib/gamedb.py:158
|
||||||
msgid "Forty Thieves type"
|
msgid "Forty Thieves type"
|
||||||
msgstr "Игры типа Сорок Воров (Forty Thieves)"
|
msgstr "Игры типа Сорок Воров (Forty Thieves)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:158
|
#: pysollib/gamedb.py:159
|
||||||
msgid "FreeCell type"
|
msgid "FreeCell type"
|
||||||
msgstr "Игры типа Свободная Ячейка (FreeCell)"
|
msgstr "Игры типа Свободная Ячейка (FreeCell)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:159
|
#: pysollib/gamedb.py:160
|
||||||
msgid "Golf type"
|
msgid "Golf type"
|
||||||
msgstr "Игры типа Гольф (Golf)"
|
msgstr "Игры типа Гольф (Golf)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:160
|
#: pysollib/gamedb.py:161
|
||||||
msgid "Gypsy type"
|
msgid "Gypsy type"
|
||||||
msgstr "Игры типа Цыганский Пасьянс (Gypsy)"
|
msgstr "Игры типа Цыганский Пасьянс (Gypsy)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:161
|
#: pysollib/gamedb.py:162
|
||||||
msgid "Klondike type"
|
msgid "Klondike type"
|
||||||
msgstr "Игры типа Клондайк (Klondike)"
|
msgstr "Игры типа Клондайк (Klondike)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:162
|
#: pysollib/gamedb.py:163
|
||||||
msgid "Montana type"
|
msgid "Montana type"
|
||||||
msgstr "Игры типа Монтана (Montana)"
|
msgstr "Игры типа Монтана (Montana)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:163
|
#: pysollib/gamedb.py:164
|
||||||
msgid "Napoleon type"
|
msgid "Napoleon type"
|
||||||
msgstr "Игры типа Наполеон (Napoleon)"
|
msgstr "Игры типа Наполеон (Napoleon)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:164
|
#: pysollib/gamedb.py:165
|
||||||
msgid "Numerica type"
|
msgid "Numerica type"
|
||||||
msgstr "Игры числового типа (Numerica)"
|
msgstr "Игры числового типа (Numerica)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:165
|
#: pysollib/gamedb.py:166
|
||||||
msgid "Pairing type"
|
msgid "Pairing type"
|
||||||
msgstr "Парные игры"
|
msgstr "Парные игры"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:166
|
#: pysollib/gamedb.py:167
|
||||||
msgid "Raglan type"
|
msgid "Raglan type"
|
||||||
msgstr "Игры типа Реглан (Raglan)"
|
msgstr "Игры типа Реглан (Raglan)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:168
|
#: pysollib/gamedb.py:169
|
||||||
msgid "Spider type"
|
msgid "Spider type"
|
||||||
msgstr "Игры типа Паук (Spider)"
|
msgstr "Игры типа Паук (Spider)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:169
|
#: pysollib/gamedb.py:170
|
||||||
msgid "Terrace type"
|
msgid "Terrace type"
|
||||||
msgstr "Игры типа Терраса (Terrace)"
|
msgstr "Игры типа Терраса (Terrace)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:170
|
#: pysollib/gamedb.py:171
|
||||||
msgid "Yukon type"
|
msgid "Yukon type"
|
||||||
msgstr "Игры типа Юкон (Yukon)"
|
msgstr "Игры типа Юкон (Yukon)"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:178 pysollib/gamedb.py:186
|
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187
|
||||||
msgid "French type"
|
msgid "French type"
|
||||||
msgstr "Классические"
|
msgstr "Классические"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187 pysollib/gamedb.py:195
|
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
|
||||||
msgid "Ganjifa type"
|
msgid "Ganjifa type"
|
||||||
msgstr "Игры типа Ганджифа"
|
msgstr "Игры типа Ганджифа"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
|
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:197
|
||||||
msgid "Hanafuda type"
|
msgid "Hanafuda type"
|
||||||
msgstr "Игры типа Ханафуда"
|
msgstr "Игры типа Ханафуда"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:203
|
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:204
|
||||||
msgid "Hex A Deck type"
|
msgid "Hex A Deck type"
|
||||||
msgstr "Игры типа Hex A Deck"
|
msgstr "Игры типа Hex A Deck"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:208
|
#: pysollib/gamedb.py:183 pysollib/gamedb.py:191 pysollib/gamedb.py:209
|
||||||
msgid "Tarock type"
|
msgid "Tarock type"
|
||||||
msgstr "Таро"
|
msgstr "Таро"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:194
|
#: pysollib/gamedb.py:195
|
||||||
msgid "Dashavatara Ganjifa type"
|
msgid "Dashavatara Ganjifa type"
|
||||||
msgstr "Игры типа Дашаватара Ганджифа"
|
msgstr "Игры типа Дашаватара Ганджифа"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:197
|
#: pysollib/gamedb.py:198
|
||||||
msgid "Mughal Ganjifa type"
|
msgid "Mughal Ganjifa type"
|
||||||
msgstr "Игры типа Мугал Ганджифа"
|
msgstr "Игры типа Мугал Ганджифа"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:198
|
#: pysollib/gamedb.py:199
|
||||||
msgid "Navagraha Ganjifa type"
|
msgid "Navagraha Ganjifa type"
|
||||||
msgstr "Игры типа Наваграха Ганджифа"
|
msgstr "Игры типа Наваграха Ганджифа"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:202
|
#: pysollib/gamedb.py:203
|
||||||
msgid "Shisen-Sho"
|
msgid "Shisen-Sho"
|
||||||
msgstr "Шисен-Сё"
|
msgstr "Шисен-Сё"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:204
|
#: pysollib/gamedb.py:205
|
||||||
msgid "Matrix type"
|
msgid "Matrix type"
|
||||||
msgstr "Мозаика"
|
msgstr "Мозаика"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:205
|
#: pysollib/gamedb.py:206
|
||||||
msgid "Memory type"
|
msgid "Memory type"
|
||||||
msgstr "Игры на запоминание"
|
msgstr "Игры на запоминание"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:206
|
#: pysollib/gamedb.py:207
|
||||||
msgid "Poker type"
|
msgid "Poker type"
|
||||||
msgstr "Покер"
|
msgstr "Покер"
|
||||||
|
|
||||||
#: pysollib/gamedb.py:207
|
#: pysollib/gamedb.py:208
|
||||||
msgid "Puzzle type"
|
msgid "Puzzle type"
|
||||||
msgstr "Пазлы"
|
msgstr "Пазлы"
|
||||||
|
|
||||||
|
@ -1331,11 +1331,11 @@ msgstr "Не найден файл помощи\n"
|
||||||
msgid " Help"
|
msgid " Help"
|
||||||
msgstr " Помощь"
|
msgstr " Помощь"
|
||||||
|
|
||||||
#: pysollib/main.py:67 pysollib/main.py:284
|
#: pysollib/main.py:68 pysollib/main.py:287
|
||||||
msgid " installation error"
|
msgid " installation error"
|
||||||
msgstr " проблема с установкой"
|
msgstr " проблема с установкой"
|
||||||
|
|
||||||
#: pysollib/main.py:68
|
#: pysollib/main.py:69
|
||||||
msgid ""
|
msgid ""
|
||||||
"No %ss were found !!!\n"
|
"No %ss were found !!!\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1345,11 +1345,11 @@ msgid ""
|
||||||
"Please check your %s installation.\n"
|
"Please check your %s installation.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:75 pysollib/main.py:292 pysollib/tk/menubar.py:382
|
#: pysollib/main.py:76 pysollib/main.py:295 pysollib/tk/menubar.py:382
|
||||||
msgid "&Quit"
|
msgid "&Quit"
|
||||||
msgstr "В&ыход"
|
msgstr "В&ыход"
|
||||||
|
|
||||||
#: pysollib/main.py:99
|
#: pysollib/main.py:100
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: %s\n"
|
"%s: %s\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
|
@ -1357,7 +1357,7 @@ msgstr ""
|
||||||
"%s: %s\n"
|
"%s: %s\n"
|
||||||
"попробуйте %s --help для получения более подробной информации"
|
"попробуйте %s --help для получения более подробной информации"
|
||||||
|
|
||||||
#: pysollib/main.py:143
|
#: pysollib/main.py:147
|
||||||
msgid ""
|
msgid ""
|
||||||
"Usage: %s [OPTIONS] [FILE]\n"
|
"Usage: %s [OPTIONS] [FILE]\n"
|
||||||
" -g --game=GAMENAME start game GAMENAME\n"
|
" -g --game=GAMENAME start game GAMENAME\n"
|
||||||
|
@ -1389,7 +1389,7 @@ msgstr ""
|
||||||
" FILE - имя файла сохранённой игры\n"
|
" FILE - имя файла сохранённой игры\n"
|
||||||
" MOD - one of following: pss(default), pygame, oss, win\n"
|
" MOD - one of following: pss(default), pygame, oss, win\n"
|
||||||
|
|
||||||
#: pysollib/main.py:161
|
#: pysollib/main.py:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: too many files\n"
|
"%s: too many files\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
|
@ -1397,7 +1397,7 @@ msgstr ""
|
||||||
"\"%s: слишком много файлов\n"
|
"\"%s: слишком много файлов\n"
|
||||||
"попробуйте %s --help для получения более подробной информации"
|
"попробуйте %s --help для получения более подробной информации"
|
||||||
|
|
||||||
#: pysollib/main.py:165
|
#: pysollib/main.py:169
|
||||||
msgid ""
|
msgid ""
|
||||||
"%s: invalid file name\n"
|
"%s: invalid file name\n"
|
||||||
"try %s --help for more information"
|
"try %s --help for more information"
|
||||||
|
@ -1405,7 +1405,7 @@ msgstr ""
|
||||||
"%s: неправильное имя файла\n"
|
"%s: неправильное имя файла\n"
|
||||||
"попробуйте %s --help для получения более подробной информации"
|
"попробуйте %s --help для получения более подробной информации"
|
||||||
|
|
||||||
#: pysollib/main.py:285
|
#: pysollib/main.py:288
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
"No games were found !!!\n"
|
"No games were found !!!\n"
|
||||||
|
@ -1416,18 +1416,18 @@ msgid ""
|
||||||
"Please check your %s installation.\n"
|
"Please check your %s installation.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:371 pysollib/main.py:379
|
#: pysollib/main.py:374 pysollib/main.py:382
|
||||||
msgid " installation problem"
|
msgid " installation problem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:372
|
#: pysollib/main.py:375
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Python installation is compiled without thread support.\n"
|
"Your Python installation is compiled without thread support.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Sounds and background music will be disabled."
|
"Sounds and background music will be disabled."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pysollib/main.py:380
|
#: pysollib/main.py:383
|
||||||
msgid ""
|
msgid ""
|
||||||
"The pysolsoundserver module was not found.\n"
|
"The pysolsoundserver module was not found.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1437,7 +1437,7 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Звук и фоновая музыка будут недоступны"
|
"Звук и фоновая музыка будут недоступны"
|
||||||
|
|
||||||
#: pysollib/main.py:387
|
#: pysollib/main.py:390
|
||||||
msgid "Welcome to "
|
msgid "Welcome to "
|
||||||
msgstr "Добро пожаловать в "
|
msgstr "Добро пожаловать в "
|
||||||
|
|
||||||
|
|
|
@ -853,6 +853,7 @@ class Application:
|
||||||
self.top.busyUpdate()
|
self.top.busyUpdate()
|
||||||
|
|
||||||
def loadImages1(self):
|
def loadImages1(self):
|
||||||
|
# load dialog images
|
||||||
dir = os.path.join("images", "logos")
|
dir = os.path.join("images", "logos")
|
||||||
for f in ("joker07_40_774",
|
for f in ("joker07_40_774",
|
||||||
"joker08_40_774",
|
"joker08_40_774",
|
||||||
|
@ -861,12 +862,33 @@ class Application:
|
||||||
"joker11_100_774",
|
"joker11_100_774",
|
||||||
"joker10_100",):
|
"joker10_100",):
|
||||||
self.gimages.logos.append(self.dataloader.findImage(f, dir))
|
self.gimages.logos.append(self.dataloader.findImage(f, dir))
|
||||||
|
if os.name == 'posix':
|
||||||
|
dir = os.path.join('images', 'dialog', 'bluecurve')
|
||||||
|
else:
|
||||||
|
dir = os.path.join('images', 'dialog', 'default')
|
||||||
|
for f in ('error', 'info', 'question', 'warning'):
|
||||||
|
fn = self.dataloader.findImage(f, dir)
|
||||||
|
im = loadImage(fn)
|
||||||
|
MfxMessageDialog.img[f] = im
|
||||||
|
|
||||||
|
# load button images
|
||||||
|
if 0 and TOOLKIT == 'tk':
|
||||||
|
dir = os.path.join('images', 'buttons', 'bluecurve')
|
||||||
|
for n, f in (
|
||||||
|
(_('&OK'), 'ok'),
|
||||||
|
(_('&Cancel'), 'cancel'),
|
||||||
|
(_('&New game'), 'new'),
|
||||||
|
):
|
||||||
|
fn = self.dataloader.findImage(f, dir)
|
||||||
|
im = loadImage(fn)
|
||||||
|
MfxDialog.button_img[n] = im
|
||||||
|
|
||||||
|
def loadImages2(self):
|
||||||
|
# load canvas images
|
||||||
dir = "images"
|
dir = "images"
|
||||||
##for f in ("noredeal", "redeal",):
|
##for f in ("noredeal", "redeal",):
|
||||||
for f in ("stopsign", "redeal",):
|
for f in ("stopsign", "redeal",):
|
||||||
self.gimages.redeal.append(self.dataloader.findImage(f, dir))
|
self.gimages.redeal.append(self.dataloader.findImage(f, dir))
|
||||||
|
|
||||||
def loadImages2(self):
|
|
||||||
dir = os.path.join("images", "demo")
|
dir = os.path.join("images", "demo")
|
||||||
for f in ("demo01", "demo02", "demo03", "demo04", "demo05",):
|
for f in ("demo01", "demo02", "demo03", "demo04", "demo05",):
|
||||||
self.gimages.demo.append(self.dataloader.findImage(f, dir))
|
self.gimages.demo.append(self.dataloader.findImage(f, dir))
|
||||||
|
@ -878,32 +900,16 @@ class Application:
|
||||||
## self.gimages.stats.append(self.dataloader.findImage(f, dir))
|
## self.gimages.stats.append(self.dataloader.findImage(f, dir))
|
||||||
|
|
||||||
def loadImages3(self):
|
def loadImages3(self):
|
||||||
if os.name == 'posix':
|
# load treeview images
|
||||||
dir = os.path.join('images', 'dialog', 'bluecurve')
|
|
||||||
else:
|
|
||||||
dir = os.path.join('images', 'dialog', 'default')
|
|
||||||
for f in ('error', 'info', 'question', 'warning'):
|
|
||||||
fn = self.dataloader.findImage(f, dir)
|
|
||||||
im = loadImage(fn)
|
|
||||||
MfxMessageDialog.img[f] = im
|
|
||||||
if 0 and TOOLKIT == 'tk':
|
|
||||||
dir = os.path.join('images', 'buttons', 'bluecurve')
|
|
||||||
for n, f in (
|
|
||||||
(_('&OK'), 'ok'),
|
|
||||||
(_('&Cancel'), 'cancel'),
|
|
||||||
(_('&New game'), 'new'),
|
|
||||||
):
|
|
||||||
fn = self.dataloader.findImage(f, dir)
|
|
||||||
im = loadImage(fn)
|
|
||||||
MfxDialog.button_img[n] = im
|
|
||||||
SelectDialogTreeData.img = []
|
SelectDialogTreeData.img = []
|
||||||
dir = os.path.join('images', 'tree')
|
dir = os.path.join('images', 'tree')
|
||||||
for f in ('folder', 'openfolder', 'node', 'emptynode'):
|
for f in ('folder', 'openfolder', 'node', 'emptynode'):
|
||||||
fn = self.dataloader.findImage(f, dir)
|
fn = self.dataloader.findImage(f, dir)
|
||||||
im = loadImage(fn)
|
im = loadImage(fn)
|
||||||
SelectDialogTreeData.img.append(im)
|
SelectDialogTreeData.img.append(im)
|
||||||
|
|
||||||
|
# load htmlviewer images
|
||||||
dir = os.path.join('images', 'htmlviewer')
|
dir = os.path.join('images', 'htmlviewer')
|
||||||
#
|
|
||||||
fn = self.dataloader.findImage('disk', dir)
|
fn = self.dataloader.findImage('disk', dir)
|
||||||
HTMLViewer.symbols_fn['disk'] = fn
|
HTMLViewer.symbols_fn['disk'] = fn
|
||||||
|
|
||||||
|
|
|
@ -48,16 +48,16 @@ class Capricieuse(Game):
|
||||||
# game layout
|
# game layout
|
||||||
#
|
#
|
||||||
|
|
||||||
def createGame(self, **layout):
|
def createGame(self, rows=12):
|
||||||
|
|
||||||
# create layout
|
# create layout
|
||||||
l, s = Layout(self), self.s
|
l, s = Layout(self), self.s
|
||||||
|
|
||||||
# set window
|
# set window
|
||||||
self.setSize(l.XM+12*l.XS, l.YM+2*l.YS+15*l.YOFFSET)
|
self.setSize(l.XM+rows*l.XS, l.YM+2*l.YS+15*l.YOFFSET)
|
||||||
|
|
||||||
# create stacks
|
# create stacks
|
||||||
x, y, = l.XM+2*l.XS, l.YM
|
x, y, = l.XM+(rows-8)*l.XS/2, l.YM
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
|
s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
|
||||||
x = x + l.XS
|
x = x + l.XS
|
||||||
|
@ -66,7 +66,7 @@ class Capricieuse(Game):
|
||||||
base_rank=KING, dir=-1))
|
base_rank=KING, dir=-1))
|
||||||
x = x + l.XS
|
x = x + l.XS
|
||||||
x, y, = l.XM, y + l.YS
|
x, y, = l.XM, y + l.YS
|
||||||
for i in range(12):
|
for i in range(rows):
|
||||||
s.rows.append(self.RowStack_Class(x, y, self,
|
s.rows.append(self.RowStack_Class(x, y, self,
|
||||||
max_move=1, max_accept=1))
|
max_move=1, max_accept=1))
|
||||||
x = x + l.XS
|
x = x + l.XS
|
||||||
|
@ -114,7 +114,7 @@ class Nationale(Capricieuse):
|
||||||
|
|
||||||
class Strata(Game):
|
class Strata(Game):
|
||||||
|
|
||||||
def createGame(self, **layout):
|
def createGame(self):
|
||||||
|
|
||||||
# create layout
|
# create layout
|
||||||
l, s = Layout(self), self.s
|
l, s = Layout(self), self.s
|
||||||
|
@ -150,6 +150,27 @@ class Strata(Game):
|
||||||
shallHighlightMatch = Game._shallHighlightMatch_AC
|
shallHighlightMatch = Game._shallHighlightMatch_AC
|
||||||
|
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // Fifteen
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
class Fifteen(Capricieuse):
|
||||||
|
Talon_Class = InitialDealTalonStack
|
||||||
|
|
||||||
|
def createGame(self):
|
||||||
|
Capricieuse.createGame(self, rows=15)
|
||||||
|
|
||||||
|
def startGame(self):
|
||||||
|
for i in range(6):
|
||||||
|
self.s.talon.dealRow(frames=0)
|
||||||
|
self.startDealSample()
|
||||||
|
self.s.talon.dealRowAvail()
|
||||||
|
|
||||||
|
def _shuffleHook(self, cards):
|
||||||
|
return cards
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# register the game
|
# register the game
|
||||||
registerGame(GameInfo(292, Capricieuse, "Capricieuse",
|
registerGame(GameInfo(292, Capricieuse, "Capricieuse",
|
||||||
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL))
|
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL))
|
||||||
|
@ -159,4 +180,6 @@ registerGame(GameInfo(293, Nationale, "Nationale",
|
||||||
registerGame(GameInfo(606, Strata, "Strata",
|
registerGame(GameInfo(606, Strata, "Strata",
|
||||||
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL,
|
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL,
|
||||||
ranks=(0, 6, 7, 8, 9, 10, 11, 12) ))
|
ranks=(0, 6, 7, 8, 9, 10, 11, 12) ))
|
||||||
|
registerGame(GameInfo(673, Fifteen, "Fifteen",
|
||||||
|
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 0, GI.SL_MOSTLY_SKILL))
|
||||||
|
|
||||||
|
|
|
@ -1081,6 +1081,39 @@ class ShortTail(LongTail):
|
||||||
LongTail.createGame(self, rows=8, playcards=24)
|
LongTail.createGame(self, rows=8, playcards=24)
|
||||||
|
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // Incompatibility
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
class Incompatibility(Spidike):
|
||||||
|
Talon_Class = GroundForADivorce_Talon
|
||||||
|
RowStack_Class = Spider_SS_RowStack
|
||||||
|
|
||||||
|
def createGame(self):
|
||||||
|
Spidike.createGame(self, rows=10)
|
||||||
|
|
||||||
|
def startGame(self):
|
||||||
|
for i in range(4):
|
||||||
|
self.s.talon.dealRow(frames=0)
|
||||||
|
self.startDealSample()
|
||||||
|
self.s.talon.dealRow()
|
||||||
|
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // Scorpion II
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
class ScorpionII(Scorpion):
|
||||||
|
|
||||||
|
def startGame(self):
|
||||||
|
for i in (3, 3, 3, 0, 0, 0):
|
||||||
|
self.s.talon.dealRow(rows=self.s.rows[:i], flip=0, frames=0)
|
||||||
|
self.s.talon.dealRow(rows=self.s.rows[i:], flip=1, frames=0)
|
||||||
|
self.startDealSample()
|
||||||
|
self.s.talon.dealRow()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# register the game
|
# register the game
|
||||||
registerGame(GameInfo(10, RelaxedSpider, "Relaxed Spider",
|
registerGame(GameInfo(10, RelaxedSpider, "Relaxed Spider",
|
||||||
GI.GT_SPIDER | GI.GT_RELAXED, 2, 0, GI.SL_MOSTLY_SKILL))
|
GI.GT_SPIDER | GI.GT_RELAXED, 2, 0, GI.SL_MOSTLY_SKILL))
|
||||||
|
@ -1193,4 +1226,8 @@ registerGame(GameInfo(571, ShortTail, "Short Tail",
|
||||||
registerGame(GameInfo(670, ChineseSpider, "Chinese Spider",
|
registerGame(GameInfo(670, ChineseSpider, "Chinese Spider",
|
||||||
GI.GT_SPIDER, 4, 0, GI.SL_MOSTLY_SKILL,
|
GI.GT_SPIDER, 4, 0, GI.SL_MOSTLY_SKILL,
|
||||||
suits=(0, 1, 2),))
|
suits=(0, 1, 2),))
|
||||||
|
registerGame(GameInfo(671, Incompatibility, "Incompatibility",
|
||||||
|
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL))
|
||||||
|
registerGame(GameInfo(672, ScorpionII, "Scorpion II",
|
||||||
|
GI.GT_SPIDER, 1, 0, GI.SL_MOSTLY_SKILL))
|
||||||
|
|
||||||
|
|
139
pysollib/main.py
139
pysollib/main.py
|
@ -35,27 +35,26 @@
|
||||||
|
|
||||||
|
|
||||||
# imports
|
# imports
|
||||||
import sys, os, locale
|
import sys, os
|
||||||
import traceback
|
import traceback
|
||||||
import getopt
|
import getopt
|
||||||
import gettext
|
|
||||||
|
|
||||||
# PySol imports
|
# PySol imports
|
||||||
from mfxutil import destruct, EnvError
|
from mfxutil import destruct, EnvError
|
||||||
from util import CARDSET, DataLoader
|
from util import CARDSET, DataLoader
|
||||||
import settings
|
|
||||||
from settings import PACKAGE, TOOLKIT, VERSION, SOUND_MOD
|
|
||||||
from resource import Tile
|
from resource import Tile
|
||||||
from gamedb import GI
|
from gamedb import GI
|
||||||
from app import Application
|
from app import Application
|
||||||
from pysolaudio import thread, pysolsoundserver
|
from pysolaudio import thread, pysolsoundserver
|
||||||
from pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient
|
from pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient
|
||||||
from pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient
|
from pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient
|
||||||
|
import settings
|
||||||
|
PACKAGE, SOUND_MOD = settings.PACKAGE, settings.SOUND_MOD
|
||||||
|
|
||||||
# Toolkit imports
|
# Toolkit imports
|
||||||
from pysoltk import tkversion, wm_withdraw, loadImage
|
from pysoltk import wm_withdraw, loadImage
|
||||||
from pysoltk import MfxMessageDialog, MfxExceptionDialog
|
from pysoltk import MfxMessageDialog, MfxExceptionDialog
|
||||||
from pysoltk import TclError, MfxRoot
|
from pysoltk import MfxRoot
|
||||||
from pysoltk import PysolProgressBar
|
from pysoltk import PysolProgressBar
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,21 +96,21 @@ def parse_option(argv):
|
||||||
"sound-mod=",
|
"sound-mod=",
|
||||||
"help"])
|
"help"])
|
||||||
except getopt.GetoptError, err:
|
except getopt.GetoptError, err:
|
||||||
print _("%s: %s\ntry %s --help for more information") \
|
print >> sys.stderr, _("%s: %s\ntry %s --help for more information") \
|
||||||
% (prog_name, err, prog_name)
|
% (prog_name, err, prog_name)
|
||||||
return None
|
return None
|
||||||
opts = {"help": False,
|
opts = {"help" : False,
|
||||||
"game": None,
|
"game" : None,
|
||||||
"gameid": None,
|
"gameid" : None,
|
||||||
"fg": None,
|
"fg" : None,
|
||||||
"bg": None,
|
"bg" : None,
|
||||||
"fn": None,
|
"fn" : None,
|
||||||
"theme": None,
|
"theme" : None,
|
||||||
"french-only": False,
|
"french-only" : False,
|
||||||
"noplugins": False,
|
"noplugins" : False,
|
||||||
"nosound": False,
|
"nosound" : False,
|
||||||
"sound-mod": None,
|
"sound-mod" : None,
|
||||||
"debug": None,
|
"debug" : None,
|
||||||
}
|
}
|
||||||
for i in optlist:
|
for i in optlist:
|
||||||
if i[0] in ("-h", "--help"):
|
if i[0] in ("-h", "--help"):
|
||||||
|
@ -162,11 +161,11 @@ def parse_option(argv):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
if len(args) > 1:
|
if len(args) > 1:
|
||||||
print _("%s: too many files\ntry %s --help for more information") % (prog_name, prog_name)
|
print >> sys.stderr, _("%s: too many files\ntry %s --help for more information") % (prog_name, prog_name)
|
||||||
return None
|
return None
|
||||||
filename = args and args[0] or None
|
filename = args and args[0] or None
|
||||||
if filename and not os.path.isfile(filename):
|
if filename and not os.path.isfile(filename):
|
||||||
print _("%s: invalid file name\ntry %s --help for more information") % (prog_name, prog_name)
|
print >> sys.stderr, _("%s: invalid file name\ntry %s --help for more information") % (prog_name, prog_name)
|
||||||
return None
|
return None
|
||||||
return opts, filename
|
return opts, filename
|
||||||
|
|
||||||
|
@ -332,7 +331,7 @@ Please check your %s installation.
|
||||||
if not app.audio.CAN_PLAY_SOUND:
|
if not app.audio.CAN_PLAY_SOUND:
|
||||||
app.opt.sound = 0
|
app.opt.sound = 0
|
||||||
if not opts["nosound"] and not opts['sound-mod'] and pysolsoundserver and not app.audio.connected:
|
if not opts["nosound"] and not opts['sound-mod'] and pysolsoundserver and not app.audio.connected:
|
||||||
print PACKAGE + ": could not connect to pysolsoundserver, sound disabled."
|
print >> sys.stderr, PACKAGE + ": could not connect to pysolsoundserver, sound disabled."
|
||||||
warn_pysolsoundserver = 1
|
warn_pysolsoundserver = 1
|
||||||
app.audio.updateSettings()
|
app.audio.updateSettings()
|
||||||
# start up the background music
|
# start up the background music
|
||||||
|
@ -364,9 +363,9 @@ Please check your %s installation.
|
||||||
if thread is None:
|
if thread is None:
|
||||||
warn_thread = 1
|
warn_thread = 1
|
||||||
if thread is None:
|
if thread is None:
|
||||||
print PACKAGE + ": Python thread module not found, sound disabled."
|
print >> sys.stderr, PACKAGE+": Python thread module not found, sound disabled."
|
||||||
else:
|
else:
|
||||||
print PACKAGE + ": pysolsoundserver module not found, sound disabled."
|
print >> sys.stderr, PACKAGE+": pysolsoundserver module not found, sound disabled."
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
if not opts["nosound"]:
|
if not opts["nosound"]:
|
||||||
if warn_thread:
|
if warn_thread:
|
||||||
|
@ -415,39 +414,10 @@ Sounds and background music will be disabled.'''),
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# //
|
# // main
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
||||||
def pysol_exit(app):
|
def main(args=None):
|
||||||
# clean up
|
|
||||||
if app.audio is not None:
|
|
||||||
app.audio.destroy() # shut down audio
|
|
||||||
destruct(app.audio)
|
|
||||||
##app.wm_withdraw()
|
|
||||||
if app.canvas is not None:
|
|
||||||
app.canvas.destroy()
|
|
||||||
destruct(app.canvas)
|
|
||||||
if app.toolbar is not None:
|
|
||||||
app.toolbar.destroy()
|
|
||||||
destruct(app.toolbar)
|
|
||||||
if app.menubar is not None:
|
|
||||||
destruct(app.menubar)
|
|
||||||
top = app.top
|
|
||||||
destruct(app)
|
|
||||||
app = None
|
|
||||||
if top is not None:
|
|
||||||
try:
|
|
||||||
top.destroy()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
destruct(top)
|
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
|
||||||
# // PySol main entry
|
|
||||||
# ************************************************************************/
|
|
||||||
|
|
||||||
def pysol_main(args):
|
|
||||||
# create the application
|
# create the application
|
||||||
app = Application()
|
app = Application()
|
||||||
r = pysol_init(app, args)
|
r = pysol_init(app, args)
|
||||||
|
@ -455,63 +425,4 @@ def pysol_main(args):
|
||||||
return r
|
return r
|
||||||
# let's go - enter the mainloop
|
# let's go - enter the mainloop
|
||||||
app.mainloop()
|
app.mainloop()
|
||||||
## try:
|
|
||||||
## r = pysol_init(app, args)
|
|
||||||
## if r != 0:
|
|
||||||
## return r
|
|
||||||
## # let's go - enter the mainloop
|
|
||||||
## app.mainloop()
|
|
||||||
## except KeyboardInterrupt, ex:
|
|
||||||
## print "Exiting on SIGINT."
|
|
||||||
## pass
|
|
||||||
## except StandardError, ex:
|
|
||||||
## if not app.top:
|
|
||||||
## raise
|
|
||||||
## t = str(ex.__class__)
|
|
||||||
## if str(ex): t = t + ":\n" + str(ex)
|
|
||||||
## d = MfxMessageDialog(app.top, title=PACKAGE + " internal error",
|
|
||||||
## text="Internal errror. Please report this bug:\n\n"+t,
|
|
||||||
## strings=("&Quit",), bitmap="error")
|
|
||||||
try:
|
|
||||||
pysol_exit(app)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
|
||||||
# // main
|
|
||||||
# ************************************************************************/
|
|
||||||
|
|
||||||
def main(args=None):
|
|
||||||
|
|
||||||
# setup (mainly for JPython)
|
|
||||||
if not hasattr(sys, "platform"):
|
|
||||||
sys.platform = "unknown"
|
|
||||||
if not hasattr(sys, "executable"):
|
|
||||||
sys.executable = None
|
|
||||||
if not hasattr(os, "defpath"):
|
|
||||||
os.defpath = ""
|
|
||||||
|
|
||||||
# check versions
|
|
||||||
if sys.platform[:4] != "java":
|
|
||||||
if sys.version[:5] < "1.5.2":
|
|
||||||
print "%s needs Python 1.5.2 or better (you have %s)" % (PACKAGE, sys.version)
|
|
||||||
return 1
|
|
||||||
assert len(tkversion) == 4
|
|
||||||
if TOOLKIT == "tk":
|
|
||||||
import Tkinter
|
|
||||||
if tkversion < (8, 0, 0, 0):
|
|
||||||
print "%s needs Tcl/Tk 8.0 or better (you have %s)" % (PACKAGE, str(tkversion))
|
|
||||||
return 1
|
|
||||||
# check that Tkinter bindings are also at version 1.5.2
|
|
||||||
if not hasattr(Tkinter.Wm, "wm_aspect") or not hasattr(Tkinter.Canvas, "tag_lower"):
|
|
||||||
print "%s: please update the Python-Tk bindings (aka Tkinter) to version 1.5.2 or better" % (PACKAGE,)
|
|
||||||
return 1
|
|
||||||
# check Python
|
|
||||||
if -1 % 13 != 12:
|
|
||||||
raise Exception, "-1 % 13 != 12"
|
|
||||||
|
|
||||||
# run it
|
|
||||||
return pysol_main(args)
|
|
||||||
|
|
||||||
|
|
|
@ -320,90 +320,6 @@ def unpickle(filename):
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
|
||||||
# //
|
|
||||||
# ************************************************************************/
|
|
||||||
|
|
||||||
def spawnv(file, args=()):
|
|
||||||
if not args:
|
|
||||||
args = ()
|
|
||||||
args = (file,) + tuple(args)
|
|
||||||
#
|
|
||||||
if not os.path.isfile(file):
|
|
||||||
raise os.error, str(file)
|
|
||||||
mode = os.stat(file)[0]
|
|
||||||
if not (mode & 0100):
|
|
||||||
return 0
|
|
||||||
#
|
|
||||||
if os.name == "posix":
|
|
||||||
pid = os.fork()
|
|
||||||
if pid == -1:
|
|
||||||
raise os.error, "fork failed"
|
|
||||||
if pid != 0:
|
|
||||||
# parent
|
|
||||||
try:
|
|
||||||
os.waitpid(pid, 0)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return 1
|
|
||||||
# child
|
|
||||||
# 1) close all files
|
|
||||||
for fd in range(255, -1, -1):
|
|
||||||
try:
|
|
||||||
os.close(fd)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
# 2) open stdin, stdout and stderr to /dev/null
|
|
||||||
try:
|
|
||||||
fd = os.open("/dev/null", os.O_RDWR)
|
|
||||||
os.dup(fd)
|
|
||||||
os.dup(fd)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
# 3) fork again and exec program
|
|
||||||
try:
|
|
||||||
if os.fork() == 0:
|
|
||||||
try:
|
|
||||||
os.setpgrp()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
os.execv(file, args)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
# 4) exit
|
|
||||||
while 1:
|
|
||||||
os._exit(0)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
def spawnvp(file, args=()):
|
|
||||||
if file and os.path.isabs(file):
|
|
||||||
try:
|
|
||||||
if spawnv(file, args):
|
|
||||||
return file
|
|
||||||
except:
|
|
||||||
##if traceback: traceback.print_exc()
|
|
||||||
pass
|
|
||||||
return None
|
|
||||||
#
|
|
||||||
path = os.environ.get("PATH", "")
|
|
||||||
path = path.split(os.pathsep)
|
|
||||||
for dir in path:
|
|
||||||
try:
|
|
||||||
if dir and os.path.isdir(dir):
|
|
||||||
f = os.path.join(dir, file)
|
|
||||||
try:
|
|
||||||
if spawnv(f, args):
|
|
||||||
return f
|
|
||||||
except:
|
|
||||||
##if traceback: traceback.print_exc()
|
|
||||||
pass
|
|
||||||
except:
|
|
||||||
##if traceback: traceback.print_exc()
|
|
||||||
pass
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# //
|
# //
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
|
@ -41,7 +41,7 @@ import Tile as Tkinter
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
# PySol imports
|
# PySol imports
|
||||||
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct, spawnvp
|
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct
|
||||||
from pysollib.settings import PACKAGE
|
from pysollib.settings import PACKAGE
|
||||||
from pysollib.pysolaudio import pysolsoundserver
|
from pysollib.pysolaudio import pysolsoundserver
|
||||||
|
|
||||||
|
|
|
@ -496,7 +496,8 @@ to open the following URL:
|
||||||
|
|
||||||
def errorDialog(self, msg):
|
def errorDialog(self, msg):
|
||||||
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
|
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
|
||||||
text=msg, bitmap="warning",
|
text=msg,
|
||||||
|
##bitmap="warning", # FIXME: this interp don't have images
|
||||||
strings=(_("&OK"),), default=0)
|
strings=(_("&OK"),), default=0)
|
||||||
|
|
||||||
def getImage(self, fn):
|
def getImage(self, fn):
|
||||||
|
|
|
@ -41,7 +41,7 @@ import Tkinter
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
# PySol imports
|
# PySol imports
|
||||||
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct, spawnvp
|
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct
|
||||||
from pysollib.settings import PACKAGE
|
from pysollib.settings import PACKAGE
|
||||||
from pysollib.pysolaudio import pysolsoundserver
|
from pysollib.pysolaudio import pysolsoundserver
|
||||||
|
|
||||||
|
|
|
@ -495,7 +495,8 @@ to open the following URL:
|
||||||
|
|
||||||
def errorDialog(self, msg):
|
def errorDialog(self, msg):
|
||||||
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
|
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
|
||||||
text=msg, bitmap="warning",
|
text=msg,
|
||||||
|
##bitmap="warning", # FIXME: this interp don't have images
|
||||||
strings=(_("&OK"),), default=0)
|
strings=(_("&OK"),), default=0)
|
||||||
|
|
||||||
def getImage(self, fn):
|
def getImage(self, fn):
|
||||||
|
|
Loading…
Add table
Reference in a new issue