From 09f3205e770c23dfb647b1c796f98bd3d36cbf4f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 01:30:33 +0200 Subject: [PATCH 01/58] update email config section as discussed on ML --- pyfpdb/Configuration.py | 46 +++++++++-------- pyfpdb/GuiImapFetcher.py | 94 +++++++++++++++++------------------ pyfpdb/HUD_config.xml.example | 5 +- 3 files changed, 72 insertions(+), 73 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 29b74b54..7e49d12d 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -256,6 +256,20 @@ class Layout: return temp + "\n" +class Email: + def __init__(self, node): + self.node = node + self.host= node.getAttribute("host") + self.username = node.getAttribute("username") + self.password = node.getAttribute("password") + self.useSsl = node.getAttribute("useSsl") + self.folder = node.getAttribute("folder") + self.fetchType = node.getAttribute("fetchType") + + def __str__(self): + return " fetchType=%s\n host = %s\n username = %s\n password = %s\n useSsl = %s\n folder = %s\n" \ + % (self.fetchType, self.host, self.username, self.password, self.useSsl, self.folder) + class Site: def __init__(self, node): def normalizePath(path): @@ -284,12 +298,17 @@ class Site: self.xshift = node.getAttribute("xshift") self.yshift = node.getAttribute("yshift") self.layout = {} + self.emails = {} print _("Loading site"), self.site_name for layout_node in node.getElementsByTagName('layout'): lo = Layout(layout_node) self.layout[lo.max] = lo + + for email_node in node.getElementsByTagName('email'): + email = Email(email_node) + self.emails[email.fetchType] = email # Site defaults self.xpad = 1 if self.xpad == "" else int(self.xpad) @@ -467,21 +486,6 @@ class Import: return " interval = %s\n callFpdbHud = %s\n hhArchiveBase = %s\n saveActions = %s\n fastStoreHudCache = %s\n" \ % (self.interval, self.callFpdbHud, self.hhArchiveBase, self.saveActions, self.fastStoreHudCache) -class Email: - def __init__(self, node): - self.node = node - self.host= node.getAttribute("host") - self.username = node.getAttribute("username") - self.password = node.getAttribute("password") - self.useSsl = node.getAttribute("useSsl") - self.folder = node.getAttribute("folder") - self.siteName = node.getAttribute("siteName") - self.fetchType = node.getAttribute("fetchType") - - def __str__(self): - return " siteName=%s\n fetchType=%s\n host = %s\n username = %s\n password = %s\n useSsl = %s\n folder = %s\n" \ - % (self.siteName, self.fetchType, self.host, self.username, self.password, self.useSsl, self.folder) - class HudUI: def __init__(self, node): self.node = node @@ -716,11 +720,6 @@ class Config: imp = Import(node = imp_node) self.imp = imp - for email_node in doc.getElementsByTagName("email"): - email = Email(node = email_node) - if email.siteName!="": #FIXME: Why on earth is this needed? - self.emails[email.siteName+"_"+email.fetchType]=email - for hui_node in doc.getElementsByTagName('hud_ui'): hui = HudUI(node = hui_node) self.ui = hui @@ -767,9 +766,12 @@ class Config: return site_node def getEmailNode(self, siteName, fetchType): - for emailNode in self.doc.getElementsByTagName("email"): - if emailNode.getAttribute("siteName") == siteName and emailNode.getAttribute("fetchType") == fetchType: + siteNode = self.get_site_node(siteName) + for emailNode in siteNode.getElementsByTagName("email"): + if emailNode.getAttribute("fetchType") == fetchType: + print "found emailNode" return emailNode + break #end def getEmailNode def getGameNode(self,gameName): diff --git a/pyfpdb/GuiImapFetcher.py b/pyfpdb/GuiImapFetcher.py index b9391daa..7294086a 100644 --- a/pyfpdb/GuiImapFetcher.py +++ b/pyfpdb/GuiImapFetcher.py @@ -72,19 +72,14 @@ class GuiImapFetcher (threading.Thread): siteName=columns[0].get_text() fetchType=columns[1].get_text() - code=siteName+"_"+fetchType - for email in self.config.emails: - toSave=self.config.emails[email] - break - toSave.siteName=siteName - toSave.fetchType=fetchType + toSave=self.config.supported_sites[siteName].emails[fetchType] toSave.host=columns[2].get_text() toSave.username=columns[3].get_text() if columns[4].get_text()=="***": - toSave.password=self.passwords[code] + toSave.password=self.passwords[siteName+fetchType] else: toSave.password=columns[4].get_text() @@ -101,16 +96,17 @@ class GuiImapFetcher (threading.Thread): def importAllClicked(self, widget, data=None): self.statusLabel.set_label(_("Starting import. Please wait.")) #FIXME: why doesnt this one show? - for email in self.config.emails: - try: - result=ImapFetcher.run(self.config.emails[email], self.db) - self.statusLabel.set_label(_("Finished import without error.")) - except IMAP4.error as error: - if str(error)=="[AUTHENTICATIONFAILED] Authentication failed.": - self.statusLabel.set_label(_("Login to mailserver failed: please check mailserver, username and password")) - except gaierror as error: - if str(error)=="[Errno -2] Name or service not known": - self.statusLabel.set_label(_("Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity")) + for siteName in self.config.supported_sites: + for fetchType in self.config.supported_sites[siteName].emails: + try: + result=ImapFetcher.run(self.config.supported_sites[siteName].emails[fetchType], self.db) + self.statusLabel.set_label(_("Finished import without error.")) + except IMAP4.error as error: + if str(error)=="[AUTHENTICATIONFAILED] Authentication failed.": + self.statusLabel.set_label(_("Login to mailserver failed: please check mailserver, username and password")) + except gaierror as error: + if str(error)=="[Errno -2] Name or service not known": + self.statusLabel.set_label(_("Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity")) #def importAllClicked def get_vbox(self): @@ -128,38 +124,42 @@ class GuiImapFetcher (threading.Thread): self.rowVBox = gtk.VBox() self.mainVBox.add(self.rowVBox) - for email in self.config.emails: - config=self.config.emails[email] - box=gtk.HBox(homogeneous=True) - - for field in (config.siteName, config.fetchType): - label=gtk.Label(field) - box.add(label) - - for field in (config.host, config.username): + for siteName in self.config.supported_sites: + for fetchType in self.config.supported_sites[siteName].emails: + config=self.config.supported_sites[siteName].emails[fetchType] + box=gtk.HBox(homogeneous=True) + + for field in (siteName, config.fetchType): + label=gtk.Label(field) + box.add(label) + + for field in (config.host, config.username): + entry=gtk.Entry() + entry.set_text(field) + box.add(entry) + entry=gtk.Entry() - entry.set_text(field) + self.passwords[siteName+fetchType]=config.password + entry.set_text("***") box.add(entry) - - entry=gtk.Entry() - self.passwords[email]=config.password - entry.set_text("***") - box.add(entry) - - entry=gtk.Entry() - entry.set_text(config.folder) - box.add(entry) - - sslBox = gtk.combo_box_new_text() - sslBox.append_text(_("Yes")) - sslBox.append_text(_("No")) - sslBox.set_active(0) - box.add(sslBox) - - #TODO: "run just this one" button - - self.rowVBox.pack_start(box, expand=False) - #print + + entry=gtk.Entry() + entry.set_text(config.folder) + box.add(entry) + + sslBox = gtk.combo_box_new_text() + sslBox.append_text(_("Yes")) + sslBox.append_text(_("No")) + if config.useSsl: + sslBox.set_active(0) + else: + sslBox.set_active(1) + box.add(sslBox) + + #TODO: "run just this one" button + + self.rowVBox.pack_start(box, expand=False) + #print self.mainVBox.show_all() #end def displayConfig diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index e95db1b8..58e12f42 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -156,6 +156,7 @@ Left-Drag to Move" xshift="0" yshift="0" supported_games="holdem,razz,omahahi,omahahilo,studhi,studhilo"> + @@ -708,10 +709,6 @@ Left-Drag to Move" - - - - From fa6da55618b81067c967392524f8cc5c88175015 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 04:18:00 +0200 Subject: [PATCH 02/58] remove table viewer config handling from code --- pyfpdb/Configuration.py | 28 ---------------------------- pyfpdb/fpdb.pyw | 1 - 2 files changed, 29 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 7e49d12d..59fe2a2e 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -508,16 +508,6 @@ class HudUI: return " label = %s\n" % self.label -class Tv: - def __init__(self, node): - self.combinedStealFold = string_to_bool(node.getAttribute("combinedStealFold"), default=True) - self.combined2B3B = string_to_bool(node.getAttribute("combined2B3B"), default=True) - self.combinedPostflop = string_to_bool(node.getAttribute("combinedPostflop"), default=True) - - def __str__(self): - return (" combinedStealFold = %s\n combined2B3B = %s\n combinedPostflop = %s\n" % - (self.combinedStealFold, self.combined2B3B, self.combinedPostflop) ) - class General(dict): def __init__(self): super(General, self).__init__() @@ -657,7 +647,6 @@ class Config: self.hhcs = {} self.popup_windows = {} self.db_selected = None # database the user would like to use - self.tv = None self.general = General() self.emails = {} self.gui_cash_stats = GUICashStats() @@ -724,9 +713,6 @@ class Config: hui = HudUI(node = hui_node) self.ui = hui - for tv_node in doc.getElementsByTagName("tv"): - self.tv = Tv(node = tv_node) - db = self.get_db_parameters() if db['db-password'] == 'YOUR MYSQL PASSWORD': df_file = self.find_default_conf() @@ -1012,15 +998,6 @@ class Config: return site_name return None - def get_tv_parameters(self): - if self.tv is not None: - return { - 'combinedStealFold': self.tv.combinedStealFold, - 'combined2B3B': self.tv.combined2B3B, - 'combinedPostflop': self.tv.combinedPostflop - } - return {} - # Allow to change the menu appearance def get_hud_ui_parameters(self): hui = {} @@ -1313,15 +1290,10 @@ if __name__== "__main__": print c.imp print "----------- END IMPORT -----------" - print "\n----------- TABLE VIEW -----------" -# print c.tv - print "----------- END TABLE VIEW -----------" - c.edit_layout("PokerStars", 6, locations=( (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6) )) c.save(file="testout.xml") print "db = ", c.get_db_parameters() -# print "tv = ", c.get_tv_parameters() # print "imp = ", c.get_import_parameters() print "paths = ", c.get_default_paths("PokerStars") print "colors = ", c.get_default_colors("PokerStars") diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 1aefebd5..ba8e5737 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -888,7 +888,6 @@ class fpdb: self.settings.update({'cl_options': cl_options}) self.settings.update(self.config.get_db_parameters()) - self.settings.update(self.config.get_tv_parameters()) self.settings.update(self.config.get_import_parameters()) self.settings.update(self.config.get_default_paths()) From ccec82886711b10766f9bbc31c6cce78cd98c299 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 04:36:23 +0200 Subject: [PATCH 03/58] add config sections for RawHands/Tourneys --- pyfpdb/Configuration.py | 65 ++++++++++++++++++++++++++++++++++- pyfpdb/HUD_config.xml.example | 4 +++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 59fe2a2e..2d3f864f 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -594,6 +594,58 @@ class GUICashStats(list): # s = s + " %s = %s\n" % (k, self[k]) # return(s) +class RawHands: + def __init__(self, node=None): + if node==None: + self.save="error" + self.compression="none" + print _("missing config section raw_hands") + else: + save=node.getAttribute("save") + if save in ("none", "error", "all"): + self.save=save + else: + print _("Invalid config value for raw_hands.save, defaulting to \"error\"") + self.save="error" + + compression=node.getAttribute("compression") + if save in ("none", "gzip", "bzip2"): + self.compression=compression + else: + print _("Invalid config value for raw_hands.compression, defaulting to \"none\"") + self.compression="none" + #end def __init__ + + def __str__(self): + return " save= %s, compression= %s\n" % (self.save, self.compression) +#end class RawHands + +class RawTourneys: + def __init__(self, node=None): + if node==None: + self.save="error" + self.compression="none" + print _("missing config section raw_tourneys") + else: + save=node.getAttribute("save") + if save in ("none", "error", "all"): + self.save=save + else: + print _("Invalid config value for raw_tourneys.save, defaulting to \"error\"") + self.save="error" + + compression=node.getAttribute("compression") + if save in ("none", "gzip", "bzip2"): + self.compression=compression + else: + print _("Invalid config value for raw_tourneys.compression, defaulting to \"none\"") + self.compression="none" + #end def __init__ + + def __str__(self): + return " save= %s, compression= %s\n" % (self.save, self.compression) +#end class RawTourneys + class Config: def __init__(self, file = None, dbname = ''): # "file" is a path to an xml file with the fpdb/HUD configuration @@ -724,8 +776,19 @@ class Config: db_user = df_parms['db-user'], db_pass = df_parms['db-password']) self.save(file=os.path.join(self.default_config_path, "HUD_config.xml")) - + + if doc.getElementsByTagName("raw_hands") == []: + self.raw_hands = RawHands() + for raw_hands_node in doc.getElementsByTagName('raw_hands'): + self.raw_hands = RawHands(raw_hands_node) + + if doc.getElementsByTagName("raw_tourneys") == []: + self.raw_tourneys = RawTourneys() + for raw_tourneys_node in doc.getElementsByTagName('raw_tourneys'): + self.raw_tourneys = RawTourneys(raw_tourneys_node) + print "" + #end def __init__ def set_hhArchiveBase(self, path): self.imp.node.setAttribute("hhArchiveBase", path) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index 58e12f42..c2a47419 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -705,6 +705,10 @@ Left-Drag to Move" + + + + From a4e3d0c514016f2be2c5dd293630452c43ec5bc3 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 05:02:22 +0200 Subject: [PATCH 04/58] a missing gettextification from a recent patch --- pyfpdb/Configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 2d3f864f..b5afcf5a 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -110,7 +110,7 @@ def get_config(file_name, fallback = True): example_path = '/usr/share/python-fpdb/' + file_name + '.example' try: shutil.copyfile(example_path, config_path) - msg = 'Configuration file created: %s\n' % config_path + msg = _("Config file has been created at %s.\n") % config_path logging.info(msg) return (config_path,False) except IOError: From fb6c5c7ec66b2a750e798390841e6acbe0a64fcd Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 06:46:29 +0200 Subject: [PATCH 05/58] fix to recognise different spelling of FT headsup --- pyfpdb/FulltiltToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 4d7a7b62..a3526ca0 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -260,7 +260,7 @@ class Fulltilt(HandHistoryConverter): hand.isRebuy = True if special == "KO": hand.isKO = True - if special == "Head's Up": + if special == "Head's Up" or special == "Heads Up": hand.maxSeats = 2 if re.search("Matrix", special): hand.isMatrix = True From aabc9d20065342c9fa01c93dc6fc2f21fdcfad6c Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 06:46:47 +0200 Subject: [PATCH 06/58] actually store TT.maxSeats --- pyfpdb/Database.py | 8 +++++--- pyfpdb/SQL.py | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index ec670b1b..de32791f 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -2062,8 +2062,9 @@ class Database: #print "info that we use to get TT by detail:", hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.isKO, hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix #print "the query:",self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']) cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']), - (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], hand.isKO, - hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix) #TODO: add koamount + (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], + hand.gametype['limitType'], hand.maxSeats, hand.isKO, + hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix) ) result=cursor.fetchone() #print "result of fetching TT by details:",result @@ -2072,7 +2073,8 @@ class Database: tourneyTypeId = result[0] except TypeError: #this means we need to create a new entry cursor.execute (self.sql.query['insertTourneyType'].replace('%s', self.sql.query['placeholder']), - (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], hand.gametype['limitType'], + (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], + hand.gametype['limitType'], hand.maxSeats, hand.buyInChips, hand.isKO, hand.koBounty, hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix, hand.added, hand.addedCurrency) ) diff --git a/pyfpdb/SQL.py b/pyfpdb/SQL.py index c6a2e91d..57eb8c35 100644 --- a/pyfpdb/SQL.py +++ b/pyfpdb/SQL.py @@ -3968,6 +3968,7 @@ class Sql: AND fee=%s AND category=%s AND limitType=%s + AND maxSeats=%s AND knockout=%s AND rebuy=%s AND addOn=%s @@ -3977,9 +3978,9 @@ class Sql: """ self.query['insertTourneyType'] = """INSERT INTO TourneyTypes - (siteId, currency, buyin, fee, category, limitType, buyInChips, knockout, koBounty, rebuy, + (siteId, currency, buyin, fee, category, limitType, maxSeats, buyInChips, knockout, koBounty, rebuy, addOn ,speed, shootout, matrix, added, addedCurrency) - VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """ self.query['getTourneyByTourneyNo'] = """SELECT t.* From 4fcc157ff854f07d20b2308e932a2149afc4e84a Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 07:25:07 +0200 Subject: [PATCH 07/58] update empty and 0001 dump for DB v143 --- ...ax-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql | 13 +++++++++++-- pyfpdb/regression-test-files/empty_DB.0000.sql | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql index e8ee0bd7..f18d8a7e 100644 --- a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql @@ -1,5 +1,5 @@ fpdb database dump -DB version=142 +DB version=143 ################### Table Autorates @@ -1643,11 +1643,20 @@ Table Players comment=None commentTs=None +################### +Table RawHands +################### +empty table + +################### +Table RawTourneys +################### +empty table ################### Table Settings ################### - version=142 + version=143 ################### diff --git a/pyfpdb/regression-test-files/empty_DB.0000.sql b/pyfpdb/regression-test-files/empty_DB.0000.sql index 7e43b4a0..6c812924 100644 --- a/pyfpdb/regression-test-files/empty_DB.0000.sql +++ b/pyfpdb/regression-test-files/empty_DB.0000.sql @@ -1,5 +1,5 @@ fpdb database dump -DB version=142 +DB version=143 ################### Table Autorates @@ -41,10 +41,20 @@ Table Players ################### empty table +################### +Table RawHands +################### +empty table + +################### +Table RawTourneys +################### +empty table + ################### Table Settings ################### - version=142 + version=143 ################### From 6ba7f36a0e08594f4f6b4399654d13d104899540 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 07:32:10 +0200 Subject: [PATCH 08/58] fix import of tourneys --- pyfpdb/Database.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index de32791f..d5b06543 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -2063,7 +2063,7 @@ class Database: #print "the query:",self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']) cursor.execute (self.sql.query['getTourneyTypeId'].replace('%s', self.sql.query['placeholder']), (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], - hand.gametype['limitType'], hand.maxSeats, hand.isKO, + hand.gametype['limitType'], hand.maxseats, hand.isKO, hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix) ) result=cursor.fetchone() @@ -2074,7 +2074,7 @@ class Database: except TypeError: #this means we need to create a new entry cursor.execute (self.sql.query['insertTourneyType'].replace('%s', self.sql.query['placeholder']), (hand.siteId, hand.buyinCurrency, hand.buyin, hand.fee, hand.gametype['category'], - hand.gametype['limitType'], hand.maxSeats, + hand.gametype['limitType'], hand.maxseats, hand.buyInChips, hand.isKO, hand.koBounty, hand.isRebuy, hand.isAddOn, hand.speed, hand.isShootout, hand.isMatrix, hand.added, hand.addedCurrency) ) From 79c81ee99742618110f03e0cf3bd4957bd51346a Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 07:39:49 +0200 Subject: [PATCH 09/58] fix HHC for PS/FT --- pyfpdb/HandHistoryConverter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyfpdb/HandHistoryConverter.py b/pyfpdb/HandHistoryConverter.py index af758352..860d05e1 100644 --- a/pyfpdb/HandHistoryConverter.py +++ b/pyfpdb/HandHistoryConverter.py @@ -587,6 +587,7 @@ or None if we fail to get the info """ offset = int(givenTimezone[-5:]) givenTimezone = givenTimezone[0:-5] log.debug( _("changeTimeZone: offset=") + str(offset) ) + else: offset=0 if givenTimezone=="ET": givenTZ = timezone('US/Eastern') From b06c7763d8027409c50bff500c93aa02d623350b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 07:54:03 +0200 Subject: [PATCH 10/58] dumpDB stores ignore for importTime and styleKey as those are runtime-dependant and outside of its scope --- pyfpdb/Database.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyfpdb/Database.py b/pyfpdb/Database.py index d5b06543..f1b8dd72 100644 --- a/pyfpdb/Database.py +++ b/pyfpdb/Database.py @@ -321,7 +321,12 @@ class Database: else: for row in rows: for columnNumber in range(len(columnNames)): - result+=(" "+columnNames[columnNumber][0]+"="+str(row[columnNumber])+"\n") + if columnNames[columnNumber][0]=="importTime": + result+=(" "+columnNames[columnNumber][0]+"=ignore\n") + elif columnNames[columnNumber][0]=="styleKey": + result+=(" "+columnNames[columnNumber][0]+"=ignore\n") + else: + result+=(" "+columnNames[columnNumber][0]+"="+str(row[columnNumber])+"\n") result+="\n" result+="\n" return result From e0a2c4e0b4b05e31ed5546d8abd6231a76427bf4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 22 Aug 2010 07:54:37 +0200 Subject: [PATCH 11/58] more dump data updates --- ...-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql | 1 + ...-USD-STT-5-20100607.allInPreflop.txt.0002.sql | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql index f18d8a7e..164ff4fe 100644 --- a/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql +++ b/pyfpdb/regression-test-files/cash/Stars/Flop/LHE-10max-USD-0.05-0.10-PF_all_fold_to_BB.txt.0001.sql @@ -1643,6 +1643,7 @@ Table Players comment=None commentTs=None + ################### Table RawHands ################### diff --git a/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql index 7f0a00cc..776e1032 100644 --- a/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql +++ b/pyfpdb/regression-test-files/tour/Stars/Flop/LHE-USD-STT-5-20100607.allInPreflop.txt.0002.sql @@ -1,5 +1,5 @@ fpdb database dump -DB version=142 +DB version=143 ################### Table Autorates @@ -1857,7 +1857,6 @@ Table HandsPlayers street4Raises=0 actionString=None -!!!verified to here ################### Table HudCache ################### @@ -2557,6 +2556,7 @@ Table HudCache street3Raises=0 street4Raises=0 +!!!verified to here id=9 gametypeId=2 playerId=1 @@ -3441,10 +3441,20 @@ Table Players commentTs=None +################### +Table RawHands +################### +empty table + +################### +Table RawTourneys +################### +empty table + ################### Table Settings ################### - version=142 + version=143 ################### From b41e385979863a687f3eaff6acec303207ec64d2 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 02:16:44 +0200 Subject: [PATCH 12/58] improve error reporting in Hand.checkPlayerExists --- pyfpdb/Hand.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index c32f9f37..aa048ae4 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -320,10 +320,8 @@ If a player has None chips he won't be added.""" def checkPlayerExists(self,player): if player not in [p[1] for p in self.players]: - print _("DEBUG: checkPlayerExists %s fail") % player - raise FpdbParseError(_("checkPlayerExists: '%s' failed.") % player) - - + print (_("DEBUG: checkPlayerExists %s fail on hand number %s") % (player, self.handid)) + raise FpdbParseError(_("checkPlayerExists: '%s fail on hand number %s") % (player, self.handid)) def setCommunityCards(self, street, cards): log.debug("setCommunityCards %s %s" %(street, cards)) From 0cc5865ba1e9f22565115460e0e5cd4a8b4e918f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 03:56:07 +0200 Subject: [PATCH 13/58] config: expand general section as discussed on ML, add defaults for it --- pyfpdb/Configuration.py | 16 ++++++++++++++++ pyfpdb/HUD_config.xml.example | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index b5afcf5a..980fc8e5 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -519,6 +519,20 @@ class General(dict): for (name, value) in node.attributes.items(): log.debug(_("config.general: adding %s = %s") % (name,value)) self[name] = value + + try: + self["version"]=int(self["version"]) + except KeyError: + self["version"]=0 + self["ui_language"]="system" + self["config_difficuly"]="expert" + + def get_defaults(self): + self["version"]=0 + self["ui_language"]="system" + self["config_difficuly"]="expert" + self["config_wrap_len"]="-1" + self["day_start"]="5" def __str__(self): s = "" @@ -703,6 +717,8 @@ class Config: self.emails = {} self.gui_cash_stats = GUICashStats() + if doc.getElementsByTagName("general") == []: + self.general.get_defaults() for gen_node in doc.getElementsByTagName("general"): self.general.add_elements(node=gen_node) # add/overwrite elements in self.general diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index c2a47419..977b6060 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -5,8 +5,11 @@ - From 994fea2e224ff0d05ef7d55e23413eab4e75d614 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 05:21:07 +0200 Subject: [PATCH 14/58] move localisation scripts into locale folder --- pyfpdb/{ => locale}/create-mo-files.sh | 2 ++ pyfpdb/{ => locale}/create-po-file.sh | 1 + 2 files changed, 3 insertions(+) rename pyfpdb/{ => locale}/create-mo-files.sh (94%) rename pyfpdb/{ => locale}/create-po-file.sh (95%) diff --git a/pyfpdb/create-mo-files.sh b/pyfpdb/locale/create-mo-files.sh similarity index 94% rename from pyfpdb/create-mo-files.sh rename to pyfpdb/locale/create-mo-files.sh index 2e76648b..4b9d1dc9 100755 --- a/pyfpdb/create-mo-files.sh +++ b/pyfpdb/locale/create-mo-files.sh @@ -1 +1,3 @@ +cd .. python /usr/share/doc/python-2.7/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po + diff --git a/pyfpdb/create-po-file.sh b/pyfpdb/locale/create-po-file.sh similarity index 95% rename from pyfpdb/create-po-file.sh rename to pyfpdb/locale/create-po-file.sh index c2cdfefe..d26c853a 100755 --- a/pyfpdb/create-po-file.sh +++ b/pyfpdb/locale/create-po-file.sh @@ -1,2 +1,3 @@ +cd .. python /usr/share/doc/python-2.7/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.po *.py* From 4170e33b35cd741e1cfdf3335b8f123d81010d3d Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 05:28:45 +0200 Subject: [PATCH 15/58] update PO file --- pyfpdb/locale/fpdb-en_GB.po | 611 ++++++++++++++++++++---------------- 1 file changed, 334 insertions(+), 277 deletions(-) diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index 3a0103e8..b5023daf 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -5,12 +5,12 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-17 20:08+CEST\n" +"POT-Creation-Date: 2010-08-23 05:27+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" @@ -23,31 +23,31 @@ msgstr "" msgid "Output being written to" msgstr "" -#: BetfairToFpdb.py:83 +#: BetfairToFpdb.py:84 msgid "GameInfo regex did not match" msgstr "" -#: BetfairToFpdb.py:114 +#: BetfairToFpdb.py:115 msgid "Didn't match re_HandInfo" msgstr "" -#: BetfairToFpdb.py:170 +#: BetfairToFpdb.py:171 msgid "No bringin found" msgstr "" -#: BetfairToFpdb.py:206 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:207 OnGameToFpdb.py:328 PokerStarsToFpdb.py:440 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 msgid "parse input hand history" msgstr "" -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 msgid "output translation to" msgstr "" -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +#: BetfairToFpdb.py:232 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 msgid "follow (tail -f) the input" msgstr "" @@ -65,71 +65,95 @@ msgid "" "Could not encode: \"%s\"\n" msgstr "" -#: Configuration.py:110 +#: Configuration.py:113 Configuration.py:126 +msgid "" +"Config file has been created at %s.\n" +msgstr "" + +#: Configuration.py:125 msgid "" "No %s found\n" " in %s\n" " or %s\n" msgstr "" -#: Configuration.py:111 -msgid "" -"Config file has been created at %s.\n" -msgstr "" - -#: Configuration.py:116 Configuration.py:117 +#: Configuration.py:131 Configuration.py:132 msgid "" "Error copying .example file, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:121 Configuration.py:122 +#: Configuration.py:136 Configuration.py:137 msgid "" "No %s found, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:152 +#: Configuration.py:167 msgid "Default logger initialised for " msgstr "" -#: Configuration.py:153 +#: Configuration.py:168 msgid "Default logger intialised for " msgstr "" -#: Configuration.py:164 Database.py:431 Database.py:432 +#: Configuration.py:179 Database.py:438 Database.py:439 msgid "Creating directory: '%s'" msgstr "" -#: Configuration.py:190 +#: Configuration.py:205 msgid "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem." msgstr "" -#: Configuration.py:273 +#: Configuration.py:303 msgid "Loading site" msgstr "" -#: Configuration.py:511 +#: Configuration.py:520 msgid "config.general: adding %s = %s" msgstr "" -#: Configuration.py:544 Configuration.py:545 +#: Configuration.py:567 Configuration.py:568 msgid "bad number in xalignment was ignored" msgstr "" -#: Configuration.py:598 Configuration.py:599 +#: Configuration.py:616 +msgid "missing config section raw_hands" +msgstr "" + +#: Configuration.py:622 +msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:629 +msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:642 +msgid "missing config section raw_tourneys" +msgstr "" + +#: Configuration.py:648 +msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:655 +msgid "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:673 Configuration.py:674 msgid "Configuration file %s not found. Using defaults." msgstr "" -#: Configuration.py:615 +#: Configuration.py:690 msgid "Reading configuration file %s" msgstr "" -#: Configuration.py:616 +#: Configuration.py:691 msgid "" "\n" "Reading configuration file %s\n" msgstr "" -#: Configuration.py:621 +#: Configuration.py:696 msgid "Error parsing %s. See error log file." msgstr "" @@ -141,295 +165,291 @@ msgstr "" msgid "Not using numpy to define variance in sqlite." msgstr "" -#: Database.py:246 +#: Database.py:250 msgid "Creating Database instance, sql = %s" msgstr "" -#: Database.py:382 +#: Database.py:389 msgid "*** WARNING UNKNOWN MYSQL ERROR:" msgstr "" -#: Database.py:436 +#: Database.py:443 msgid "Connecting to SQLite: %(database)s" msgstr "" -#: Database.py:448 +#: Database.py:455 msgid "Some database functions will not work without NumPy support" msgstr "" -#: Database.py:469 +#: Database.py:476 msgid "outdated or too new database version (%s) - please recreate tables" msgstr "" -#: Database.py:475 Database.py:476 +#: Database.py:482 Database.py:483 msgid "Failed to read settings table - recreating tables" msgstr "" -#: Database.py:480 Database.py:481 +#: Database.py:487 Database.py:488 msgid "Failed to read settings table - please recreate tables" msgstr "" -#: Database.py:499 -msgid "commit finished ok, i = " -msgstr "" - -#: Database.py:502 +#: Database.py:509 msgid "commit %s failed: info=%s value=%s" msgstr "" -#: Database.py:506 +#: Database.py:513 msgid "commit failed" msgstr "" -#: Database.py:675 Database.py:704 +#: Database.py:682 Database.py:711 msgid "*** Database Error: " msgstr "" -#: Database.py:701 +#: Database.py:708 msgid "Database: date n hands ago = " msgstr "" -#: Database.py:858 +#: Database.py:865 msgid "ERROR: query %s result does not have player_id as first column" msgstr "" -#: Database.py:900 +#: Database.py:907 msgid "getLastInsertId(): problem fetching insert_id? ret=%d" msgstr "" -#: Database.py:912 +#: Database.py:919 msgid "getLastInsertId(%s): problem fetching lastval? row=%d" msgstr "" -#: Database.py:919 +#: Database.py:926 msgid "getLastInsertId(): unknown backend: %d" msgstr "" -#: Database.py:924 +#: Database.py:931 msgid "*** Database get_last_insert_id error: " msgstr "" -#: Database.py:978 Database.py:1398 +#: Database.py:985 Database.py:1407 msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." msgstr "" -#: Database.py:982 Database.py:1402 +#: Database.py:989 Database.py:1411 msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." msgstr "" -#: Database.py:990 Database.py:1276 +#: Database.py:997 Database.py:1285 msgid "dropping mysql index " msgstr "" -#: Database.py:996 Database.py:1281 Database.py:1289 Database.py:1296 +#: Database.py:1003 Database.py:1290 Database.py:1298 Database.py:1305 msgid " drop index failed: " msgstr "" -#: Database.py:1001 Database.py:1283 +#: Database.py:1008 Database.py:1292 msgid "dropping pg index " msgstr "" -#: Database.py:1014 +#: Database.py:1021 msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." msgstr "" -#: Database.py:1018 +#: Database.py:1025 msgid "warning: index %s_%s_idx not dropped %s, continuing ..." msgstr "" -#: Database.py:1058 Database.py:1066 Database.py:1329 Database.py:1337 +#: Database.py:1065 Database.py:1073 Database.py:1338 Database.py:1346 msgid "creating foreign key " msgstr "" -#: Database.py:1064 Database.py:1085 Database.py:1335 +#: Database.py:1071 Database.py:1092 Database.py:1344 msgid " create foreign key failed: " msgstr "" -#: Database.py:1073 Database.py:1344 +#: Database.py:1080 Database.py:1353 msgid " create foreign key failed: " msgstr "" -#: Database.py:1080 +#: Database.py:1087 msgid "creating mysql index " msgstr "" -#: Database.py:1089 +#: Database.py:1096 msgid "creating pg index " msgstr "" -#: Database.py:1094 +#: Database.py:1101 msgid " create index failed: " msgstr "" -#: Database.py:1134 Database.py:1135 +#: Database.py:1141 Database.py:1142 msgid "Finished recreating tables" msgstr "" -#: Database.py:1172 +#: Database.py:1181 msgid "***Error creating tables: " msgstr "" -#: Database.py:1182 +#: Database.py:1191 msgid "*** Error unable to get databasecursor" msgstr "" -#: Database.py:1194 Database.py:1205 Database.py:1215 Database.py:1222 +#: Database.py:1203 Database.py:1214 Database.py:1224 Database.py:1231 msgid "***Error dropping tables: " msgstr "" -#: Database.py:1220 +#: Database.py:1229 msgid "*** Error in committing table drop" msgstr "" -#: Database.py:1234 Database.py:1235 +#: Database.py:1243 Database.py:1244 msgid "Creating mysql index %s %s" msgstr "" -#: Database.py:1240 Database.py:1249 +#: Database.py:1249 Database.py:1258 msgid " create index failed: " msgstr "" -#: Database.py:1243 Database.py:1244 +#: Database.py:1252 Database.py:1253 msgid "Creating pgsql index %s %s" msgstr "" -#: Database.py:1251 Database.py:1252 +#: Database.py:1260 Database.py:1261 msgid "Creating sqlite index %s %s" msgstr "" -#: Database.py:1257 +#: Database.py:1266 msgid "Create index failed: " msgstr "" -#: Database.py:1259 +#: Database.py:1268 msgid "Unknown database: MySQL, Postgres and SQLite supported" msgstr "" -#: Database.py:1264 +#: Database.py:1273 msgid "Error creating indexes: " msgstr "" -#: Database.py:1291 +#: Database.py:1300 msgid "Dropping sqlite index " msgstr "" -#: Database.py:1298 +#: Database.py:1307 msgid "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" msgstr "" -#: Database.py:1312 Database.py:1352 +#: Database.py:1321 Database.py:1361 msgid " set_isolation_level failed: " msgstr "" -#: Database.py:1346 Database.py:1405 +#: Database.py:1355 Database.py:1414 msgid "Only MySQL and Postgres supported so far" msgstr "" -#: Database.py:1376 +#: Database.py:1385 msgid "dropping mysql foreign key" msgstr "" -#: Database.py:1380 +#: Database.py:1389 msgid " drop failed: " msgstr "" -#: Database.py:1383 +#: Database.py:1392 msgid "dropping pg foreign key" msgstr "" -#: Database.py:1395 +#: Database.py:1404 msgid "dropped pg foreign key %s_%s_fkey, continuing ..." msgstr "" -#: Database.py:1496 +#: Database.py:1505 msgid "Rebuild hudcache took %.1f seconds" msgstr "" -#: Database.py:1499 Database.py:1532 +#: Database.py:1508 Database.py:1541 msgid "Error rebuilding hudcache:" msgstr "" -#: Database.py:1544 Database.py:1550 +#: Database.py:1553 Database.py:1559 msgid "Error during analyze:" msgstr "" -#: Database.py:1554 +#: Database.py:1563 msgid "Analyze took %.1f seconds" msgstr "" -#: Database.py:1564 Database.py:1570 +#: Database.py:1573 Database.py:1579 msgid "Error during vacuum:" msgstr "" -#: Database.py:1574 +#: Database.py:1583 msgid "Vacuum took %.1f seconds" msgstr "" -#: Database.py:1586 +#: Database.py:1595 msgid "Error during lock_for_insert:" msgstr "" -#: Database.py:1959 +#: Database.py:1992 msgid "queue empty too long - writer stopping ..." msgstr "" -#: Database.py:1962 +#: Database.py:1995 msgid "writer stopping, error reading queue: " msgstr "" -#: Database.py:1987 +#: Database.py:2020 msgid "deadlock detected - trying again ..." msgstr "" -#: Database.py:1992 +#: Database.py:2025 msgid "too many deadlocks - failed to store hand " msgstr "" -#: Database.py:1996 +#: Database.py:2029 msgid "***Error storing hand: " msgstr "" -#: Database.py:2006 +#: Database.py:2039 msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" msgstr "" -#: Database.py:2016 +#: Database.py:2049 msgid "***Error sending finish: " msgstr "" -#: Database.py:2096 +#: Database.py:2131 msgid "invalid source in Database.createOrUpdateTourney" msgstr "" -#: Database.py:2109 +#: Database.py:2144 msgid "invalid source in Database.createOrUpdateTourneysPlayers" msgstr "" -#: Database.py:2235 +#: Database.py:2270 msgid "HandToWrite.init error: " msgstr "" -#: Database.py:2285 +#: Database.py:2320 msgid "HandToWrite.set_all error: " msgstr "" -#: Database.py:2316 +#: Database.py:2351 msgid "nutOmatic is id_player = %d" msgstr "" -#: Database.py:2324 +#: Database.py:2359 msgid "query plan: " msgstr "" -#: Database.py:2333 +#: Database.py:2368 msgid "cards =" msgstr "" -#: Database.py:2336 +#: Database.py:2371 msgid "get_stats took: %4.3f seconds" msgstr "" -#: Database.py:2338 Tables.py:448 +#: Database.py:2373 Tables.py:448 msgid "press enter to continue" msgstr "" @@ -689,7 +709,7 @@ msgstr "" msgid "auto" msgstr "" -#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:397 +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:399 msgid "don't drop" msgstr "" @@ -709,8 +729,8 @@ msgstr "" msgid "Drop HudCache:" msgstr "" -#: GuiBulkImport.py:297 -msgid "Import" +#: GuiBulkImport.py:297 fpdb.pyw:832 +msgid "_Bulk Import" msgstr "" #: GuiBulkImport.py:299 @@ -745,35 +765,39 @@ msgstr "" msgid "Do the required conversion for Stars Archive format (ie. as provided by support" msgstr "" -#: GuiBulkImport.py:363 -msgid "USAGE:" -msgstr "" - -#: GuiBulkImport.py:364 -msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" +#: GuiBulkImport.py:360 +msgid "Output the pprinted version of the HandsPlayer hash for regresion testing" msgstr "" #: GuiBulkImport.py:365 -msgid "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" +msgid "USAGE:" msgstr "" #: GuiBulkImport.py:366 -msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" +msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" msgstr "" #: GuiBulkImport.py:367 -msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" +msgid "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" msgstr "" #: GuiBulkImport.py:368 +msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" +msgstr "" + +#: GuiBulkImport.py:369 +msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" +msgstr "" + +#: GuiBulkImport.py:370 msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" msgstr "" -#: GuiBulkImport.py:384 +#: GuiBulkImport.py:386 msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "" -#: GuiBulkImport.py:406 +#: GuiBulkImport.py:410 msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" msgstr "" @@ -793,11 +817,11 @@ msgstr "" msgid "Description" msgstr "" -#: GuiDatabase.py:114 GuiImapFetcher.py:123 +#: GuiDatabase.py:114 GuiImapFetcher.py:119 msgid "Username" msgstr "" -#: GuiDatabase.py:115 GuiImapFetcher.py:123 +#: GuiDatabase.py:115 GuiImapFetcher.py:119 msgid "Password" msgstr "" @@ -829,7 +853,7 @@ msgstr "" msgid " not connected but no exception" msgstr "" -#: GuiDatabase.py:293 fpdb.pyw:906 +#: GuiDatabase.py:293 fpdb.pyw:905 msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -837,7 +861,7 @@ msgstr "" msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" msgstr "" -#: GuiDatabase.py:301 fpdb.pyw:911 +#: GuiDatabase.py:301 fpdb.pyw:910 msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -958,47 +982,47 @@ msgstr "" msgid "If you change the config you must save before importing" msgstr "" -#: GuiImapFetcher.py:103 +#: GuiImapFetcher.py:98 msgid "Starting import. Please wait." msgstr "" -#: GuiImapFetcher.py:107 +#: GuiImapFetcher.py:103 msgid "Finished import without error." msgstr "" -#: GuiImapFetcher.py:110 +#: GuiImapFetcher.py:106 msgid "Login to mailserver failed: please check mailserver, username and password" msgstr "" -#: GuiImapFetcher.py:113 +#: GuiImapFetcher.py:109 msgid "Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity" msgstr "" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Fetch Type" msgstr "" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Mail Folder" msgstr "" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Mailserver" msgstr "" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Site" msgstr "" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Use SSL" msgstr "" -#: GuiImapFetcher.py:154 +#: GuiImapFetcher.py:151 msgid "Yes" msgstr "" -#: GuiImapFetcher.py:155 +#: GuiImapFetcher.py:152 msgid "No" msgstr "" @@ -1117,7 +1141,7 @@ msgid "" "HUD_main: starting ..." msgstr "" -#: HUD_main.pyw:89 fpdb.pyw:876 +#: HUD_main.pyw:89 msgid "Logfile is " msgstr "" @@ -1130,7 +1154,7 @@ msgid "" "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:96 fpdb.pyw:1138 +#: HUD_main.pyw:96 fpdb.pyw:1139 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1406,7 +1430,7 @@ msgstr "" msgid "TOURNEYS PLAYER IDS" msgstr "" -#: Hand.py:225 Hand.py:1244 +#: Hand.py:225 Hand.py:1242 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "" @@ -1423,206 +1447,226 @@ msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" #: Hand.py:323 -msgid "DEBUG: checkPlayerExists %s fail" +msgid "DEBUG: checkPlayerExists %s fail on hand number %s" msgstr "" #: Hand.py:324 -msgid "checkPlayerExists: '%s' failed." +msgid "checkPlayerExists: '%s fail on hand number %s" msgstr "" -#: Hand.py:407 +#: Hand.py:405 msgid "%s %s calls %s" msgstr "" -#: Hand.py:477 +#: Hand.py:475 msgid "%s %s raise %s" msgstr "" -#: Hand.py:488 +#: Hand.py:486 msgid "%s %s bets %s" msgstr "" -#: Hand.py:507 +#: Hand.py:505 msgid "%s %s folds" msgstr "" -#: Hand.py:516 +#: Hand.py:514 msgid "%s %s checks" msgstr "" -#: Hand.py:536 +#: Hand.py:534 msgid "addShownCards %s hole=%s all=%s" msgstr "" -#: Hand.py:647 +#: Hand.py:645 msgid "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, expecting datetime.date object, received:" msgstr "" -#: Hand.py:648 +#: Hand.py:646 msgid "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" -#: Hand.py:649 +#: Hand.py:647 msgid "*** Game String:" msgstr "" -#: Hand.py:703 +#: Hand.py:701 msgid "*** Parse error reading blinds (check compilePlayerRegexs as a likely culprit)" msgstr "" -#: Hand.py:730 +#: Hand.py:728 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" -#: Hand.py:732 +#: Hand.py:730 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" -#: Hand.py:1113 +#: Hand.py:1111 msgid "*** DEALING HANDS ***" msgstr "" -#: Hand.py:1118 +#: Hand.py:1116 msgid "Dealt to %s: [%s]" msgstr "" -#: Hand.py:1123 +#: Hand.py:1121 msgid "*** FIRST DRAW ***" msgstr "" -#: Hand.py:1133 +#: Hand.py:1131 msgid "*** SECOND DRAW ***" msgstr "" -#: Hand.py:1143 +#: Hand.py:1141 msgid "*** THIRD DRAW ***" msgstr "" -#: Hand.py:1153 Hand.py:1371 +#: Hand.py:1151 Hand.py:1369 msgid "*** SHOW DOWN ***" msgstr "" -#: Hand.py:1168 Hand.py:1386 +#: Hand.py:1166 Hand.py:1384 msgid "*** SUMMARY ***" msgstr "" -#: Hand.py:1253 +#: Hand.py:1251 msgid "%s %s completes %s" msgstr "" -#: Hand.py:1271 +#: Hand.py:1269 msgid "Bringin: %s, %s" msgstr "" -#: Hand.py:1311 +#: Hand.py:1309 msgid "*** 3RD STREET ***" msgstr "" -#: Hand.py:1325 +#: Hand.py:1323 msgid "*** 4TH STREET ***" msgstr "" -#: Hand.py:1337 +#: Hand.py:1335 msgid "*** 5TH STREET ***" msgstr "" -#: Hand.py:1349 +#: Hand.py:1347 msgid "*** 6TH STREET ***" msgstr "" -#: Hand.py:1359 +#: Hand.py:1357 msgid "*** RIVER ***" msgstr "" -#: Hand.py:1451 +#: Hand.py:1449 msgid "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should be impossible for anyone who is not a hero" msgstr "" -#: Hand.py:1452 +#: Hand.py:1450 msgid "join_holcards: holecards(%s): %s" msgstr "" -#: Hand.py:1535 +#: Hand.py:1533 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "" -#: Hand.py:1537 +#: Hand.py:1535 msgid "FpdbError in printing Hand object" msgstr "" -#: HandHistoryConverter.py:134 +#: HandHistoryConverter.py:135 msgid "Failed sanity check" msgstr "" -#: HandHistoryConverter.py:142 +#: HandHistoryConverter.py:143 msgid "Tailing '%s'" msgstr "" -#: HandHistoryConverter.py:149 +#: HandHistoryConverter.py:150 msgid "HHC.start(follow): processHand failed: Exception msg: '%s'" msgstr "" -#: HandHistoryConverter.py:163 +#: HandHistoryConverter.py:154 +msgid "handsList is " +msgstr "" + +#: HandHistoryConverter.py:165 msgid "HHC.start(): processHand failed: Exception msg: '%s'" msgstr "" -#: HandHistoryConverter.py:167 +#: HandHistoryConverter.py:169 msgid "Read %d hands (%d failed) in %.3f seconds" msgstr "" -#: HandHistoryConverter.py:173 +#: HandHistoryConverter.py:175 msgid "Summary file '%s' correctly parsed (took %.3f seconds)" msgstr "" -#: HandHistoryConverter.py:175 +#: HandHistoryConverter.py:177 msgid "Error converting summary file '%s' (took %.3f seconds)" msgstr "" -#: HandHistoryConverter.py:178 +#: HandHistoryConverter.py:180 msgid "Error converting '%s'" msgstr "" -#: HandHistoryConverter.py:209 +#: HandHistoryConverter.py:211 msgid "%s changed inode numbers from %d to %d" msgstr "" -#: HandHistoryConverter.py:254 +#: HandHistoryConverter.py:256 msgid "Converting starsArchive format to readable" msgstr "" -#: HandHistoryConverter.py:259 +#: HandHistoryConverter.py:261 msgid "Converting ftpArchive format to readable" msgstr "" -#: HandHistoryConverter.py:264 +#: HandHistoryConverter.py:266 msgid "Read no hands." msgstr "" -#: HandHistoryConverter.py:401 +#: HandHistoryConverter.py:474 msgid "HH Sanity Check: output and input files are the same, check config" msgstr "" -#: HandHistoryConverter.py:436 +#: HandHistoryConverter.py:497 msgid "Reading stdin with %s" msgstr "" -#: HandHistoryConverter.py:451 +#: HandHistoryConverter.py:512 msgid "unable to read file with any codec in list!" msgstr "" -#: HandHistoryConverter.py:605 +#: HandHistoryConverter.py:579 +msgid " given TZ:" +msgstr "" + +#: HandHistoryConverter.py:579 +msgid "raw time:" +msgstr "" + +#: HandHistoryConverter.py:589 +msgid "changeTimeZone: offset=" +msgstr "" + +#: HandHistoryConverter.py:652 +msgid "utcTime:" +msgstr "" + +#: HandHistoryConverter.py:685 msgid "Unable to create output directory %s for HHC!" msgstr "" -#: HandHistoryConverter.py:606 +#: HandHistoryConverter.py:686 msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" msgstr "" -#: HandHistoryConverter.py:608 +#: HandHistoryConverter.py:688 msgid "Created directory '%s'" msgstr "" -#: HandHistoryConverter.py:612 +#: HandHistoryConverter.py:692 msgid "out_path %s couldn't be opened" msgstr "" @@ -1733,51 +1777,51 @@ msgstr "" msgid "Set max seats" msgstr "" -#: Hud.py:540 +#: Hud.py:543 msgid "Updating config file" msgstr "" -#: Hud.py:549 +#: Hud.py:552 msgid "" "No layout found for %d-max games for site %s\n" msgstr "" -#: Hud.py:563 +#: Hud.py:566 msgid "" "exception in Hud.adj_seats\n" "\n" msgstr "" -#: Hud.py:564 +#: Hud.py:567 msgid "error is %s" msgstr "" -#: Hud.py:571 +#: Hud.py:574 msgid "" "Error finding actual seat.\n" msgstr "" -#: Hud.py:587 +#: Hud.py:590 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" msgstr "" -#: Hud.py:636 +#: Hud.py:639 msgid "KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric" msgstr "" -#: Hud.py:637 +#: Hud.py:640 msgid "(btw, the key was %s and statd is %s" msgstr "" -#: Hud.py:944 +#: Hud.py:947 msgid "" "Fake main window, blah blah, blah\n" "blah, blah" msgstr "" -#: Hud.py:952 +#: Hud.py:955 msgid "Table not found." msgstr "" @@ -1785,7 +1829,7 @@ msgstr "" msgid "response to logging in:" msgstr "" -#: ImapFetcher.py:86 +#: ImapFetcher.py:85 msgid "completed running Imap import, closing server connection" msgstr "" @@ -1793,6 +1837,38 @@ msgstr "" msgid "No Name" msgstr "" +#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +msgid "determineGameType: Unable to recognise gametype from: '%s'" +msgstr "" + +#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +msgid "determineGameType: Raising FpdbParseError" +msgstr "" + +#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +msgid "Unable to recognise gametype from: '%s'" +msgstr "" + +#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +msgid "readButton: not found" +msgstr "" + +#: OnGameToFpdb.py:250 +msgid "readBlinds starting" +msgstr "" + +#: OnGameToFpdb.py:254 +msgid "re_postSB failed, hand=" +msgstr "" + +#: OnGameToFpdb.py:257 +msgid "readBlinds in noSB exception" +msgstr "" + +#: OnGameToFpdb.py:265 PokerStarsToFpdb.py:358 +msgid "reading antes" +msgstr "" + #: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "" @@ -1857,10 +1933,6 @@ msgstr "" msgid "Cannot read GameType for current hand" msgstr "" -#: PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 -msgid "readButton: not found" -msgstr "" - #: PartyPokerToFpdb.py:479 msgid "Unimplemented readAction: '%s' '%s'" msgstr "" @@ -1873,18 +1945,6 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:189 -msgid "determineGameType: Unable to recognise gametype from: '%s'" -msgstr "" - -#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 -msgid "determineGameType: Raising FpdbParseError" -msgstr "" - -#: PokerStarsToFpdb.py:191 -msgid "Unable to recognise gametype from: '%s'" -msgstr "" - #: PokerStarsToFpdb.py:221 msgid "Lim_Blinds has no lookup for '%s'" msgstr "" @@ -1893,10 +1953,6 @@ msgstr "" msgid "failed to detect currency" msgstr "" -#: PokerStarsToFpdb.py:358 -msgid "reading antes" -msgstr "" - #: Stats.py:103 msgid "exception getting stat %s for player %s %s" msgstr "" @@ -2321,11 +2377,11 @@ msgstr "" msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" msgstr "" -#: WinTables.py:70 +#: WinTables.py:82 msgid "Window %s not found. Skipping." msgstr "" -#: WinTables.py:73 +#: WinTables.py:85 msgid "self.window doesn't exist? why?" msgstr "" @@ -2574,10 +2630,6 @@ msgstr "" msgid "B" msgstr "" -#: fpdb.pyw:832 -msgid "_Bulk Import" -msgstr "" - #: fpdb.pyw:833 msgid "I" msgstr "" @@ -2642,7 +2694,7 @@ msgstr "" msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:842 fpdb.pyw:1059 +#: fpdb.pyw:842 fpdb.pyw:1058 msgid "Session Stats" msgstr "" @@ -2702,6 +2754,11 @@ msgstr "" msgid "CONFIG FILE ERROR" msgstr "" +#: fpdb.pyw:876 +msgid "" +"Logfile is %s\n" +msgstr "" + #: fpdb.pyw:878 msgid "Config file" msgstr "" @@ -2720,96 +2777,96 @@ msgstr "" msgid "section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:904 -msgid "Connected to SQLite: %(database)s" +#: fpdb.pyw:903 +msgid "Connected to SQLite: %s" msgstr "" -#: fpdb.pyw:908 +#: fpdb.pyw:907 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" -#: fpdb.pyw:909 +#: fpdb.pyw:908 msgid "Please check that the MySQL service has been started" msgstr "" -#: fpdb.pyw:913 +#: fpdb.pyw:912 msgid "Postgres client reports: Unable to connect - " msgstr "" -#: fpdb.pyw:914 +#: fpdb.pyw:913 msgid "Please check that the Postgres service has been started" msgstr "" -#: fpdb.pyw:938 +#: fpdb.pyw:937 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:940 +#: fpdb.pyw:939 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:944 +#: fpdb.pyw:943 msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." msgstr "" -#: fpdb.pyw:948 +#: fpdb.pyw:947 msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." msgstr "" -#: fpdb.pyw:961 +#: fpdb.pyw:960 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:971 +#: fpdb.pyw:970 msgid "" "\n" "Global lock taken by" msgstr "" -#: fpdb.pyw:974 +#: fpdb.pyw:973 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "" -#: fpdb.pyw:984 +#: fpdb.pyw:983 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1008 +#: fpdb.pyw:1007 msgid "" "Global lock released.\n" msgstr "" -#: fpdb.pyw:1015 +#: fpdb.pyw:1014 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1022 +#: fpdb.pyw:1021 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1028 +#: fpdb.pyw:1027 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1035 +#: fpdb.pyw:1034 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1041 +#: fpdb.pyw:1040 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1047 +#: fpdb.pyw:1046 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1053 +#: fpdb.pyw:1052 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1063 +#: fpdb.pyw:1062 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" @@ -2830,40 +2887,40 @@ msgid "" "You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." msgstr "" -#: fpdb.pyw:1080 +#: fpdb.pyw:1079 msgid "Help" msgstr "" -#: fpdb.pyw:1087 +#: fpdb.pyw:1086 msgid "Graphs" msgstr "" -#: fpdb.pyw:1137 +#: fpdb.pyw:1138 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" msgstr "" -#: fpdb.pyw:1166 +#: fpdb.pyw:1167 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1215 +#: fpdb.pyw:1224 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1234 +#: fpdb.pyw:1243 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1242 +#: fpdb.pyw:1251 msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." msgstr "" -#: fpdb.pyw:1247 +#: fpdb.pyw:1256 msgid "Select HH Output Directory" msgstr "" @@ -2875,87 +2932,87 @@ msgstr "" msgid "Import database module: psycopg2 not found" msgstr "" -#: fpdb_import.py:178 +#: fpdb_import.py:189 msgid "Database ID for %s not found" msgstr "" -#: fpdb_import.py:180 +#: fpdb_import.py:191 msgid "[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet" msgstr "" -#: fpdb_import.py:216 +#: fpdb_import.py:227 msgid "Attempted to add non-directory: '%s' as an import directory" msgstr "" -#: fpdb_import.py:226 +#: fpdb_import.py:237 msgid "Started at %s -- %d files to import. indexes: %s" msgstr "" -#: fpdb_import.py:235 +#: fpdb_import.py:246 msgid "No need to drop indexes." msgstr "" -#: fpdb_import.py:254 +#: fpdb_import.py:265 msgid "writers finished already" msgstr "" -#: fpdb_import.py:257 +#: fpdb_import.py:268 msgid "waiting for writers to finish ..." msgstr "" -#: fpdb_import.py:267 +#: fpdb_import.py:278 msgid " ... writers finished" msgstr "" -#: fpdb_import.py:273 +#: fpdb_import.py:284 msgid "No need to rebuild indexes." msgstr "" -#: fpdb_import.py:277 +#: fpdb_import.py:288 msgid "No need to rebuild hudcache." msgstr "" -#: fpdb_import.py:302 +#: fpdb_import.py:313 msgid "sending finish msg qlen =" msgstr "" -#: fpdb_import.py:428 fpdb_import.py:430 +#: fpdb_import.py:439 fpdb_import.py:441 msgid "Converting " msgstr "" -#: fpdb_import.py:466 +#: fpdb_import.py:477 msgid "Hand processed but empty" msgstr "" -#: fpdb_import.py:479 +#: fpdb_import.py:490 msgid "fpdb_import: sending hand to hud" msgstr "" -#: fpdb_import.py:482 +#: fpdb_import.py:493 msgid "Failed to send hand to HUD: %s" msgstr "" -#: fpdb_import.py:493 +#: fpdb_import.py:508 msgid "Unknown filter filter_name:'%s' in filter:'%s'" msgstr "" -#: fpdb_import.py:504 +#: fpdb_import.py:519 msgid "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem." msgstr "" -#: fpdb_import.py:505 +#: fpdb_import.py:520 msgid "Filename:" msgstr "" -#: fpdb_import.py:506 +#: fpdb_import.py:521 msgid "Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:" msgstr "" -#: fpdb_import.py:508 +#: fpdb_import.py:523 msgid "Hand logged to hand-errors.txt" msgstr "" -#: fpdb_import.py:516 +#: fpdb_import.py:531 msgid "CLI for fpdb_import is now available as CliFpdb.py" msgstr "" From 3a6b0002bddecee7988b343bf8ae783791a1372b Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 13:22:40 +0800 Subject: [PATCH 16/58] Remove Table viewer options from settings hash --- pyfpdb/GuiBulkImport.py | 1 - pyfpdb/GuiRingPlayerStats.py | 1 - 2 files changed, 2 deletions(-) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index dc023e01..943a81fd 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -378,7 +378,6 @@ def main(argv=None): else: settings['os'] = 'linuxmac' settings.update(config.get_db_parameters()) - settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) diff --git a/pyfpdb/GuiRingPlayerStats.py b/pyfpdb/GuiRingPlayerStats.py index 081e1b70..ef519290 100644 --- a/pyfpdb/GuiRingPlayerStats.py +++ b/pyfpdb/GuiRingPlayerStats.py @@ -69,7 +69,6 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): settings = {} settings.update(self.conf.get_db_parameters()) - settings.update(self.conf.get_tv_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) From bc755f3e5f2736435c1552c8cf4127bf1eb29a8e Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 13:23:39 +0800 Subject: [PATCH 17/58] OnGame: Fix re_CollectPot So that it actually finds the player that has won money --- pyfpdb/OnGameToFpdb.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index 088920d3..ee281c1d 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -132,8 +132,8 @@ class OnGame(HandHistoryConverter): self.re_ShowdownAction = re.compile('(?P.*) shows \[ (?P.+) \]') # TODO: read SUMMARY correctly for collected pot stuff. - #Uchilka, bets $11.75, collects $23.04, net $11.29 - self.re_CollectPot = re.compile('(?P.*), bets.+, collects \$(?P\d*\.?\d*), net.* ') + # Main pot: 6.75 won by player3 (6.45) + self.re_CollectPot = re.compile('Main pot: (?P\d*\.?\d*) won by %(PLYR)s' % subst) self.re_sitsOut = re.compile('(?P.*) sits out') def readSupportedGames(self): From acfc110d0378ef90b159c896f5aab657a72cdb5e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 07:28:30 +0200 Subject: [PATCH 18/58] remove remaining calls to removed config section --- pyfpdb/AlchemyTables.py | 1 - pyfpdb/GuiAutoImport.py | 1 - pyfpdb/GuiBulkImport.py | 1 - pyfpdb/GuiPositionalStats.py | 1 - pyfpdb/GuiRingPlayerStats.py | 1 - pyfpdb/GuiSessionViewer.py | 1 - pyfpdb/TestHandsPlayers.py | 2 +- pyfpdb/test_Betfair.py | 1 - pyfpdb/test_PokerStars.py | 1 - 9 files changed, 1 insertion(+), 9 deletions(-) diff --git a/pyfpdb/AlchemyTables.py b/pyfpdb/AlchemyTables.py index c74665b1..e89380a7 100644 --- a/pyfpdb/AlchemyTables.py +++ b/pyfpdb/AlchemyTables.py @@ -450,7 +450,6 @@ def sss(): self.settings['os']="windows" self.settings.update(self.config.get_db_parameters()) - self.settings.update(self.config.get_tv_parameters()) self.settings.update(self.config.get_import_parameters()) self.settings.update(self.config.get_default_paths()) diff --git a/pyfpdb/GuiAutoImport.py b/pyfpdb/GuiAutoImport.py index 1d4c2053..c386f475 100755 --- a/pyfpdb/GuiAutoImport.py +++ b/pyfpdb/GuiAutoImport.py @@ -334,7 +334,6 @@ if __name__== "__main__": else: settings['os'] = 'linuxmac' settings.update(config.get_db_parameters('fpdb')) - settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index dc023e01..943a81fd 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -378,7 +378,6 @@ def main(argv=None): else: settings['os'] = 'linuxmac' settings.update(config.get_db_parameters()) - settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) diff --git a/pyfpdb/GuiPositionalStats.py b/pyfpdb/GuiPositionalStats.py index 4963a88f..2f7c36cc 100644 --- a/pyfpdb/GuiPositionalStats.py +++ b/pyfpdb/GuiPositionalStats.py @@ -53,7 +53,6 @@ class GuiPositionalStats (threading.Thread): settings = {} settings.update(self.conf.get_db_parameters()) - settings.update(self.conf.get_tv_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) diff --git a/pyfpdb/GuiRingPlayerStats.py b/pyfpdb/GuiRingPlayerStats.py index 081e1b70..ef519290 100644 --- a/pyfpdb/GuiRingPlayerStats.py +++ b/pyfpdb/GuiRingPlayerStats.py @@ -69,7 +69,6 @@ class GuiRingPlayerStats (GuiPlayerStats.GuiPlayerStats): settings = {} settings.update(self.conf.get_db_parameters()) - settings.update(self.conf.get_tv_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) diff --git a/pyfpdb/GuiSessionViewer.py b/pyfpdb/GuiSessionViewer.py index 56df5e78..d4ffaccc 100755 --- a/pyfpdb/GuiSessionViewer.py +++ b/pyfpdb/GuiSessionViewer.py @@ -82,7 +82,6 @@ class GuiSessionViewer (threading.Thread): settings = {} settings.update(self.conf.get_db_parameters()) - settings.update(self.conf.get_tv_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py index a49cd88b..6179e11d 100644 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- import sys import os import codecs @@ -76,7 +77,6 @@ def main(argv=None): sql = SQL.Sql(db_server = 'sqlite') settings = {} settings.update(config.get_db_parameters()) - settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) db.recreate_tables() diff --git a/pyfpdb/test_Betfair.py b/pyfpdb/test_Betfair.py index 231b1bf3..aba5655b 100644 --- a/pyfpdb/test_Betfair.py +++ b/pyfpdb/test_Betfair.py @@ -30,7 +30,6 @@ sql = SQL.Sql(db_server = 'sqlite') settings = {} settings.update(config.get_db_parameters()) -settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) diff --git a/pyfpdb/test_PokerStars.py b/pyfpdb/test_PokerStars.py index 5178adef..5824c471 100755 --- a/pyfpdb/test_PokerStars.py +++ b/pyfpdb/test_PokerStars.py @@ -30,7 +30,6 @@ sql = SQL.Sql(db_server = 'sqlite') settings = {} settings.update(config.get_db_parameters()) -settings.update(config.get_tv_parameters()) settings.update(config.get_import_parameters()) settings.update(config.get_default_paths()) From ce5d029d0b70583dc11e1f50c7f792a64037daff Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 13:29:41 +0800 Subject: [PATCH 19/58] OnGame: Make NLHE parse --- pyfpdb/OnGameToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index ee281c1d..a2320e74 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -78,7 +78,7 @@ class OnGame(HandHistoryConverter): Start\shand:\s(?P.*) Table:\s(?P[\'\w\s]+)\s\[\d+\]\s\( ( - (?PNo\sLimit|Limit|LIMIT|Pot\sLimit)\s + (?PNO_LIMIT|Limit|LIMIT|Pot\sLimit)\s (?PTEXAS_HOLDEM|RAZZ)\s (?P[.0-9]+)/ (?P[.0-9]+) From ccb62b4c80ce045d6e77dc3da50b6800a520fbaf Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 23 Aug 2010 07:43:02 +0200 Subject: [PATCH 20/58] enter character encoding in english PO file --- pyfpdb/locale/fpdb-en_GB.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index b5023daf..def83ac3 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -10,7 +10,7 @@ msgstr "" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" From ce93c2f7fe6fc146d03aaa3e3d1f52e24401d326 Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 13:50:04 +0800 Subject: [PATCH 21/58] OnGame: Parse herocards --- pyfpdb/OnGameToFpdb.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index a2320e74..a8b82c1b 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -122,7 +122,7 @@ class OnGame(HandHistoryConverter): self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) self.re_PostBoth = re.compile('.*\n(?P.*): posts small \& big blinds \(\$? (?P[.0-9]+)\)') - self.re_HeroCards = re.compile('.*\nDealt\sto\s(?P.*)\s\[ (?P.*) \]') + self.re_HeroCards = re.compile('Dealing\sto\s%(PLYR)s:\s\[(?P.*)\]' % subst) #lopllopl checks, Eurolll checks, .Lucchess checks. self.re_Action = re.compile('(, )?(?P.*?)(?P bets| checks| raises| calls| folds)( (?P\d*\.?\d*))?( and is all-in)?') @@ -275,17 +275,15 @@ class OnGame(HandHistoryConverter): hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) def readHeroCards(self, hand): - m = self.re_HeroCards.search(hand.handText) - if(m == None): - #Not involved in hand - hand.involved = False - else: - hand.hero = m.group('PNAME') - # "2c, qh" -> set(["2c","qc"]) - # Also works with Omaha hands. - cards = m.group('CARDS') - cards = set(cards.split(',')) - hand.addHoleCards(cards, m.group('PNAME')) + # streets PREFLOP, PREDRAW, and THIRD are special cases beacause + # we need to grab hero's cards + for street in ('PREFLOP', 'DEAL'): + if street in hand.streets.keys(): + m = self.re_HeroCards.finditer(hand.streets[street]) + for found in m: + hand.hero = found.group('PNAME') + newcards = found.group('CARDS').split(', ') + hand.addHoleCards(street, hand.hero, closed=newcards, shown=False, mucked=False, dealt=True) def readAction_old(self, hand, street): m = self.re_Action.finditer(hand.streets.group(street)) From 137cadd4917087f44383317a14ce343a4d0df89d Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 14:17:30 +0800 Subject: [PATCH 22/58] OnGame: Remove copied function --- pyfpdb/OnGameToFpdb.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/pyfpdb/OnGameToFpdb.py b/pyfpdb/OnGameToFpdb.py index a8b82c1b..00ecf6ae 100755 --- a/pyfpdb/OnGameToFpdb.py +++ b/pyfpdb/OnGameToFpdb.py @@ -285,24 +285,6 @@ class OnGame(HandHistoryConverter): newcards = found.group('CARDS').split(', ') hand.addHoleCards(street, hand.hero, closed=newcards, shown=False, mucked=False, dealt=True) - def readAction_old(self, hand, street): - m = self.re_Action.finditer(hand.streets.group(street)) - for action in m: - if action.group('ATYPE') == ' raises': - hand.addRaiseTo( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' calls': - hand.addCall( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' bets': - hand.addBet( street, action.group('PNAME'), action.group('BET') ) - elif action.group('ATYPE') == ' folds': - hand.addFold( street, action.group('PNAME')) - elif action.group('ATYPE') == ' checks': - hand.addCheck( street, action.group('PNAME')) - else: - print "DEBUG: unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),) - #hand.actions[street] += [[action.group('PNAME'), action.group('ATYPE')]] - # TODO: Everleaf does not record uncalled bets. - def readAction(self, hand, street): m = self.re_Action.finditer(hand.streets[street]) for action in m: From 66da700df816c724d8b303d8658fa91d4dd56414 Mon Sep 17 00:00:00 2001 From: Worros Date: Mon, 23 Aug 2010 14:42:58 +0800 Subject: [PATCH 23/58] HUD_Config.example: Add OnGame section, remove Betfair --- pyfpdb/HUD_config.xml.example | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index 977b6060..dde3626b 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -443,16 +443,7 @@ Left-Drag to Move" - - + @@ -473,7 +464,7 @@ Left-Drag to Move" - + @@ -488,8 +479,7 @@ Left-Drag to Move" - - + From 9949185214c0b00059cfdb63b5b868638a2e521d Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Mon, 23 Aug 2010 16:35:01 +0300 Subject: [PATCH 24/58] Modify build script to install locales When fpdb is built, the prebuilt .mo files from locale/$LANG/$TYPE/ are now automatically copied to target directory. For debian builds this means that all locales are placed in $INSTROOT/usr/share/locale and should be instantly usable for inclusion. --- setup.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/setup.py b/setup.py index 83e46a0c..f114553d 100644 --- a/setup.py +++ b/setup.py @@ -10,6 +10,36 @@ # Python packaging for fpdb from distutils.core import setup +from distutils.command.install_data import install_data as INST + +import glob, string, os + + +class inst_translations(INST): + + # Return triples for installations + def __locales(self, rootdir): + _globstr = '%s/*/*/*.mo' % rootdir + paths = glob.glob(_globstr) + _locales = [] + for p in paths: + rp = string.split(p, '/', 2) + (lang, loc, mo) = string.split(rp[2], '/') + _locales.append( (lang, loc, mo) ) + return _locales + + def run(self): + locales = self.__locales('pyfpdb/locale') + for (lang, loc, mo_file) in locales: + lang_dir = os.path.join('share', 'locale', lang, loc) + lang_file = os.path.join('pyfpdb/locale', lang, loc, mo_file) + self.data_files.append( (lang_dir, [lang_file]) ) + INST.run(self) + + +commands = { + 'install_data': inst_translations +} setup(name = 'fpdb', description = 'Free Poker Database', @@ -18,6 +48,7 @@ setup(name = 'fpdb', author_email = 'fpdb-main@lists.sourceforge.net', packages = ['fpdb'], package_dir = { 'fpdb' : 'pyfpdb' }, + cmdclass = commands, data_files = [ ('/usr/share/pixmaps', ['gfx/fpdb-icon.png', 'gfx/fpdb-icon2.png', From edae36d1088cc27396b7467c7f81a996acf1f4db Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 24 Aug 2010 11:09:13 +0800 Subject: [PATCH 25/58] THP: Create Error class for recording and reporting errors usefully --- pyfpdb/TestHandsPlayers.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py index 6179e11d..e803b03a 100644 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -10,13 +10,19 @@ import Database import SQL import fpdb_import -def error_report( filename, hand, stat, ghash, testhash, player): - print "Regression Test Error:" - print "\tFile: %s" % filename - print "\tStat: %s" % stat - print "\tPlayer: %s" % player -def compare(leaf, importer): +class FpdbError: + def __init__(self): + self.errorcount = 0 + + def error_report(self, filename, hand, stat, ghash, testhash, player): + print "Regression Test Error:" + print "\tFile: %s" % filename + print "\tStat: %s" % stat + print "\tPlayer: %s" % player + self.errorcount += 1 + +def compare(leaf, importer, errors): filename = leaf #print "DEBUG: fileanme: %s" % filename @@ -52,21 +58,21 @@ def compare(leaf, importer): pass else: # Stats don't match - Doh! - error_report(filename, hand, stat, ghash, testhash, p) + errors.error_report(filename, hand, stat, ghash, testhash, p) importer.clearFileList() -def walk_testfiles(dir, function, importer): +def walk_testfiles(dir, function, importer, errors): """Walks a directory, and executes a callback on each file """ dir = os.path.abspath(dir) for file in [file for file in os.listdir(dir) if not file in [".",".."]]: nfile = os.path.join(dir,file) if os.path.isdir(nfile): - walk_testfiles(nfile, compare, importer) + walk_testfiles(nfile, compare, importer, errors) else: - compare(nfile, importer) + compare(nfile, importer, errors) def main(argv=None): if argv is None: @@ -86,8 +92,14 @@ def main(argv=None): importer.setThreads(-1) importer.setCallHud(False) importer.setFakeCacheHHC(True) + + errors = FpdbError() - walk_testfiles("regression-test-files/cash/Stars/", compare, importer) + walk_testfiles("regression-test-files/cash/Stars/", compare, importer, errors) + + print "---------------------" + print "Total Errors: %d" % errors.errorcount + print "---------------------" if __name__ == '__main__': sys.exit(main()) From fb9d0c85c7a1a4bd795a58f167172a1a4982dab1 Mon Sep 17 00:00:00 2001 From: Worros Date: Tue, 24 Aug 2010 11:55:30 +0800 Subject: [PATCH 26/58] THP: Make THP print a better error message --- pyfpdb/TestHandsPlayers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py index e803b03a..5da4d672 100644 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -14,14 +14,24 @@ import fpdb_import class FpdbError: def __init__(self): self.errorcount = 0 + self.histogram = {} def error_report(self, filename, hand, stat, ghash, testhash, player): print "Regression Test Error:" print "\tFile: %s" % filename print "\tStat: %s" % stat print "\tPlayer: %s" % player + if filename in self.histogram: + self.histogram[filename] += 1 + else: + self.histogram[filename] = 1 self.errorcount += 1 + def print_histogram(self): + for f in self.histogram: + idx = f.find('regression') + print "(%3d) : %s" %(self.histogram[f], f[idx:]) + def compare(leaf, importer, errors): filename = leaf #print "DEBUG: fileanme: %s" % filename @@ -100,6 +110,7 @@ def main(argv=None): print "---------------------" print "Total Errors: %d" % errors.errorcount print "---------------------" + errors.print_histogram() if __name__ == '__main__': sys.exit(main()) From 59ed2ea1131a3d6f2480d044eb05372cbfae6d09 Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 25 Aug 2010 11:59:31 +0800 Subject: [PATCH 27/58] Regression: Add .hp for 7-StudHL-USD-0.04-0.08-200911.Cardtest.txt Verified that the positions were correct for that hand --- ...tudHL-USD-0.04-0.08-200911.Cardtest.txt.hp | 752 ++++++++++++++++++ 1 file changed, 752 insertions(+) create mode 100644 pyfpdb/regression-test-files/cash/Stars/Stud/7-StudHL-USD-0.04-0.08-200911.Cardtest.txt.hp diff --git a/pyfpdb/regression-test-files/cash/Stars/Stud/7-StudHL-USD-0.04-0.08-200911.Cardtest.txt.hp b/pyfpdb/regression-test-files/cash/Stars/Stud/7-StudHL-USD-0.04-0.08-200911.Cardtest.txt.hp new file mode 100644 index 00000000..8606f7bc --- /dev/null +++ b/pyfpdb/regression-test-files/cash/Stars/Stud/7-StudHL-USD-0.04-0.08-200911.Cardtest.txt.hp @@ -0,0 +1,752 @@ +{ u'123smoothie': { 'card1': 0, + 'card2': 0, + 'card3': 29, + 'card4': 28, + 'card5': 47, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': True, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 1, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 2, + 'sitout': False, + 'startCards': 0, + 'startCash': 99, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -3, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'Soroka69': { 'card1': 0, + 'card2': 0, + 'card3': 19, + 'card4': 43, + 'card5': 30, + 'card6': 40, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': True, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': True, + 'otherRaisedStreet4': True, + 'position': 4, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 7, + 'sitout': False, + 'startCards': 0, + 'startCash': 83, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 1, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 1, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': True, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': True, + 'street4CheckCallRaiseDone': True, + 'street4Raises': 0, + 'street4Seen': True, + 'totalProfit': -19, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'TomSludge': { 'card1': 0, + 'card2': 0, + 'card3': 46, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 5, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 6, + 'sitout': False, + 'startCards': 0, + 'startCash': 158, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -1, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'denny501': { 'card1': 0, + 'card2': 0, + 'card3': 27, + 'card4': 45, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 'S', + 'raiseFirstInChance': True, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 4, + 'sitout': False, + 'startCards': 0, + 'startCash': 71, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -3, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'gashpor': { 'card1': 3, + 'card2': 15, + 'card3': 17, + 'card4': 24, + 'card5': 23, + 'card6': 21, + 'card7': 5, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 0, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 2, + 'sawShowdown': True, + 'seatNo': 3, + 'sitout': False, + 'startCards': 0, + 'startCash': 140, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': True, + 'street2Bets': 1, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': True, + 'street3Bets': 1, + 'street3CBChance': True, + 'street3CBDone': True, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': True, + 'street4Bets': 1, + 'street4CBChance': True, + 'street4CBDone': True, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': True, + 'totalProfit': 13, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 40, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'rdiezchang': { 'card1': 0, + 'card2': 0, + 'card3': 26, + 'card4': 49, + 'card5': 48, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': True, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 3, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 8, + 'sitout': False, + 'startCards': 0, + 'startCash': 205, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': True, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -3, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u's0rrow': { 'card1': 32, + 'card2': 41, + 'card3': 4, + 'card4': 37, + 'card5': 38, + 'card6': 18, + 'card7': 16, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': True, + 'otherRaisedStreet3': True, + 'otherRaisedStreet4': True, + 'position': 6, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 2, + 'sawShowdown': True, + 'seatNo': 5, + 'sitout': False, + 'startCards': 0, + 'startCash': 152, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 1, + 'street0Raises': 0, + 'street0VPI': True, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': True, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 1, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': True, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 1, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': True, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 1, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': True, + 'totalProfit': 13, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 40, + 'wonAtSD': 1.0, + 'wonWhenSeenStreet1': 1.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}, + u'u.pressure': { 'card1': 0, + 'card2': 0, + 'card3': 22, + 'card4': 0, + 'card5': 0, + 'card6': 0, + 'card7': 0, + 'foldBbToStealChance': False, + 'foldSbToStealChance': False, + 'foldToOtherRaisedStreet0': False, + 'foldToOtherRaisedStreet1': False, + 'foldToOtherRaisedStreet2': False, + 'foldToOtherRaisedStreet3': False, + 'foldToOtherRaisedStreet4': False, + 'foldToStreet1CBChance': False, + 'foldToStreet1CBDone': False, + 'foldToStreet2CBChance': False, + 'foldToStreet2CBDone': False, + 'foldToStreet3CBChance': False, + 'foldToStreet3CBDone': False, + 'foldToStreet4CBChance': False, + 'foldToStreet4CBDone': False, + 'foldedBbToSteal': False, + 'foldedSbToSteal': False, + 'other3BStreet0': False, + 'other4BStreet0': False, + 'otherRaisedStreet0': False, + 'otherRaisedStreet1': False, + 'otherRaisedStreet2': False, + 'otherRaisedStreet3': False, + 'otherRaisedStreet4': False, + 'position': 2, + 'raiseFirstInChance': False, + 'raisedFirstIn': False, + 'rake': 0, + 'sawShowdown': False, + 'seatNo': 1, + 'sitout': False, + 'startCards': 0, + 'startCash': 1117, + 'street0Aggr': False, + 'street0Bets': 0, + 'street0Calls': 0, + 'street0Raises': 0, + 'street0VPI': False, + 'street0_3BChance': False, + 'street0_3BDone': False, + 'street0_4BChance': False, + 'street0_4BDone': False, + 'street1Aggr': False, + 'street1Bets': 0, + 'street1CBChance': False, + 'street1CBDone': False, + 'street1Calls': 0, + 'street1CheckCallRaiseChance': False, + 'street1CheckCallRaiseDone': False, + 'street1Raises': 0, + 'street1Seen': False, + 'street2Aggr': False, + 'street2Bets': 0, + 'street2CBChance': False, + 'street2CBDone': False, + 'street2Calls': 0, + 'street2CheckCallRaiseChance': False, + 'street2CheckCallRaiseDone': False, + 'street2Raises': 0, + 'street2Seen': False, + 'street3Aggr': False, + 'street3Bets': 0, + 'street3CBChance': False, + 'street3CBDone': False, + 'street3Calls': 0, + 'street3CheckCallRaiseChance': False, + 'street3CheckCallRaiseDone': False, + 'street3Raises': 0, + 'street3Seen': False, + 'street4Aggr': False, + 'street4Bets': 0, + 'street4CBChance': False, + 'street4CBDone': False, + 'street4Calls': 0, + 'street4CheckCallRaiseChance': False, + 'street4CheckCallRaiseDone': False, + 'street4Raises': 0, + 'street4Seen': False, + 'totalProfit': -1, + 'tourneyTypeId': None, + 'tourneysPlayersIds': None, + 'winnings': 0, + 'wonAtSD': 0.0, + 'wonWhenSeenStreet1': 0.0, + 'wonWhenSeenStreet2': 0.0, + 'wonWhenSeenStreet3': 0.0, + 'wonWhenSeenStreet4': 0.0}} From afa41229c8e7127b11aa4bf3863e83cfe228d17e Mon Sep 17 00:00:00 2001 From: Worros Date: Wed, 25 Aug 2010 12:01:17 +0800 Subject: [PATCH 28/58] Revert "Betfair: Fix for Betfair 2.0" This reverts commit 5d2e7cb32010891f621c31bb5a0c7e1f567f177d. --- pyfpdb/BetfairToFpdb.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 62db0311..07ee2612 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -44,9 +44,8 @@ class Betfair(HandHistoryConverter): siteId = 7 # Needs to match id entry in Sites database # Static regexes - #re_SplitHands = re.compile(r'\n\n+') # Betfair 1.0 version re_GameInfo = re.compile("^(?PNL|PL|) (?P\$|)?(?P[.0-9]+)/\$?(?P[.0-9]+) (?P(Texas Hold\'em|Omaha Hi|Razz))", re.MULTILINE) - re_SplitHands = re.compile(r'End of hand .{2}-\d{7,9}-\d+ \*\*\*\*\*\n') + re_SplitHands = re.compile(r'\n\n+') re_HandInfo = re.compile("\*\*\*\*\* Betfair Poker Hand History for Game (?P[0-9]+) \*\*\*\*\*\n(?PNL|PL|) (?P\$|)?(?P[.0-9]+)/\$?(?P[.0-9]+) (?P(Texas Hold\'em|Omaha Hi|Razz)) - (?P[a-zA-Z]+, [a-zA-Z]+ \d+, \d\d:\d\d:\d\d GMT \d\d\d\d)\nTable (?P
[ a-zA-Z0-9]+) \d-max \(Real Money\)\nSeat (?P- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fdfefc753fe46b46df9b5a8a940c72e871f2b0d4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Wed, 25 Aug 2010 11:50:36 +0200 Subject: [PATCH 35/58] update GUI version string to git again --- pyfpdb/fpdb.pyw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index ca519c59..6e034931 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -129,7 +129,7 @@ import Configuration import Exceptions import Stats -VERSION = "0.20.905" +VERSION = "0.20.905 plus git" class fpdb: From 1821e16eb1c4bbabb92c12adc14e2b00ccf101a5 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Wed, 25 Aug 2010 13:21:31 +0200 Subject: [PATCH 36/58] l10n: revised Hungarian translation file Just replaced some words and expressions here and there to a more fitting one. --- pyfpdb/locale/fpdb-hu_HU.po | 54 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index e57b8877..8112617b 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.904\n" "POT-Creation-Date: 2010-08-17 20:08+CEST\n" -"PO-Revision-Date: 2010-08-17 23:49+0200\n" +"PO-Revision-Date: 2010-08-25 02:55+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -169,7 +169,8 @@ msgstr "" #: Database.py:475 Database.py:476 msgid "Failed to read settings table - recreating tables" -msgstr "Nem sikerült az olvasás a beállítások táblából - táblák létrehozása" +msgstr "" +"Nem sikerült az olvasás a beállítások táblából - táblák újra létrehozása" #: Database.py:480 Database.py:481 msgid "Failed to read settings table - please recreate tables" @@ -274,7 +275,7 @@ msgstr " index létrehozása nem sikerült: " #: Database.py:1134 Database.py:1135 msgid "Finished recreating tables" -msgstr "A táblák létrehozása befejeződött" +msgstr "A táblák újra létrehozása befejeződött" #: Database.py:1172 msgid "***Error creating tables: " @@ -555,7 +556,7 @@ msgstr "self.groups[%s] beállítva erre: %s" #: Filters.py:582 msgid "Min # Hands:" -msgstr "Minimum ennyi leosztással:" +msgstr "Min. leosztásszám:" #: Filters.py:648 msgid "INFO: No tourney types returned from database" @@ -575,11 +576,11 @@ msgstr "Nem található játék az adatbázisban" #: Filters.py:913 msgid " Clear Dates " -msgstr "Dátumok törlése" +msgstr "Törlés" #: Filters.py:940 fpdb.pyw:721 msgid "Pick a date" -msgstr "Válassz egy dátumot" +msgstr "Válassz napot" #: Filters.py:946 fpdb.pyw:727 msgid "Done" @@ -693,7 +694,7 @@ msgstr "Importálás kész" #: GuiBulkImport.py:139 msgid "bulk-import aborted - global lock not available" -msgstr "tömeges importálás megszakítva - nem elérhető a globális zárolás" +msgstr "importálás megszakítva - nem elérhető a globális zárolás" #: GuiBulkImport.py:165 msgid "Print Start/Stop Info" @@ -713,11 +714,11 @@ msgstr "Hiba esetén megáll" #: GuiBulkImport.py:214 msgid "Hands/file:" -msgstr "Leosztás/fájl" +msgstr "Leosztás/fájl:" #: GuiBulkImport.py:229 msgid "Drop indexes:" -msgstr "Indexek eldobása" +msgstr "Indexek eldobása:" #: GuiBulkImport.py:238 GuiBulkImport.py:288 msgid "auto" @@ -725,7 +726,7 @@ msgstr "automatikus" #: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:397 msgid "don't drop" -msgstr "ne dobja el" +msgstr "megtartás" #: GuiBulkImport.py:240 GuiBulkImport.py:290 msgid "drop" @@ -737,7 +738,7 @@ msgstr "HUD teszt mód" #: GuiBulkImport.py:251 msgid "Site filter:" -msgstr "Teremszűrő:" +msgstr "Terem:" #: GuiBulkImport.py:279 msgid "Drop HudCache:" @@ -1160,7 +1161,7 @@ msgstr "Statisztikák f_rissítése" #: GuiTourneyViewer.py:49 msgid "Enter the tourney number you want to display:" -msgstr "Add meg a megjelenítendő verseny azonosítóját" +msgstr "Add meg a megjelenítendő verseny azonosítóját:" #: GuiTourneyViewer.py:55 msgid "_Display" @@ -2584,12 +2585,12 @@ msgstr "Adatbázis statisztikák" #: fpdb.pyw:362 msgid "HUD Configurator - choose category" -msgstr "HUD beállító - válassz kategóriát" +msgstr "HUD beállító - válassz típust és méretet" #: fpdb.pyw:368 msgid "" "Please select the game category for which you want to configure HUD stats:" -msgstr "Válassz játéktípust, amelyre vonatkozóan akarod beállítani a HUD-ot:" +msgstr "Válassz játéktípust, amelyre vonatkozóan be akarod állítani a HUD-ot:" #: fpdb.pyw:420 msgid "HUD Configurator - please choose your stats" @@ -2602,8 +2603,7 @@ msgstr "Válaszd ki a lenti táblázatból a megjelenítendő statisztikákat." #: fpdb.pyw:430 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" -"Vedd figyelembe, hogy egy statisztikát nem választhatsz ki többször, " -"különben ki fog lépni." +"Egy statisztikát ne válassz ki többször, mert nem fog működni (ki fog lépni)." #: fpdb.pyw:434 msgid "" @@ -2616,7 +2616,7 @@ msgid "" "To configure things like colouring you will still have to manually edit your " "HUD_config.xml." msgstr "" -"Bizonyos dolgok, mint pl. a színezés beállításához egyelőre még kézzel kell " +"Bizonyos dolgok (pl. színezés) beállításához egyelőre még kézzel kell " "szerkesztened a HUD_config.xml fájlt." #: fpdb.pyw:545 @@ -2641,7 +2641,7 @@ msgstr "" #: fpdb.pyw:572 msgid "User cancelled recreating tables" -msgstr "A felhasználó mégsem generálja újra a táblákat." +msgstr "A felhasználó megszakította a táblák újra létrehozását" #: fpdb.pyw:579 msgid "Please confirm that you want to re-create the HUD cache." @@ -2750,7 +2750,7 @@ msgstr "_Importálás" #: fpdb.pyw:831 msgid "_Set HandHistory Archive Directory" -msgstr "Leo_sztástörténet archívumának könyvtára" +msgstr "Leo_sztásarchívum könyvtára" #: fpdb.pyw:832 msgid "B" @@ -2758,7 +2758,7 @@ msgstr "B" #: fpdb.pyw:832 msgid "_Bulk Import" -msgstr "_Tömeges importálás" +msgstr "_Importálás" #: fpdb.pyw:833 msgid "I" @@ -2766,7 +2766,7 @@ msgstr "I" #: fpdb.pyw:833 msgid "_Import through eMail/IMAP" -msgstr "Email _import (IMAP)" +msgstr "_Email import (IMAP)" #: fpdb.pyw:834 msgid "_Viewers" @@ -2802,7 +2802,7 @@ msgstr "P" #: fpdb.pyw:838 msgid "Ring _Player Stats (tabulated view)" -msgstr "Kész_pénzes statisztikák (táblázatos nézet)" +msgstr "Kész_pénzes statisztikák (táblázat)" #: fpdb.pyw:839 msgid "T" @@ -2810,7 +2810,7 @@ msgstr "T" #: fpdb.pyw:839 msgid "_Tourney Player Stats (tabulated view)" -msgstr "Versenyjá_tékos statisztikák (táblázatos nézet)" +msgstr "Versenyjá_tékos statisztikák (táblázat)" #: fpdb.pyw:840 msgid "Tourney _Viewer" @@ -2822,7 +2822,7 @@ msgstr "O" #: fpdb.pyw:841 msgid "P_ositional Stats (tabulated view, not on sqlite)" -msgstr "P_ozíciós statisztikák (táblázatos nézet, SQLite-tal nem megy)" +msgstr "P_ozíciós statisztikák (táblázat; SQLite-tal nem)" #: fpdb.pyw:842 fpdb.pyw:1059 msgid "Session Stats" @@ -2838,7 +2838,7 @@ msgstr "_Karbantartás" #: fpdb.pyw:845 msgid "Create or Recreate _Tables" -msgstr "_Táblák létrehozása vagy újragenerálása" +msgstr "_Táblák (újra) létrehozása" #: fpdb.pyw:846 msgid "Rebuild HUD Cache" @@ -2854,7 +2854,7 @@ msgstr "_Statisztikák" #: fpdb.pyw:849 msgid "Dump Database to Textfile (takes ALOT of time)" -msgstr "Adatbázis exportálása textfájlba (SOKÁIG tart)" +msgstr "Adatbázis kiírása textfájlba (SOKÁIG tart)" #: fpdb.pyw:850 msgid "_Help" @@ -2994,7 +2994,7 @@ msgstr "AutoImport" #: fpdb.pyw:1022 msgid "Bulk Import" -msgstr "Tömeges import" +msgstr "Importálás" #: fpdb.pyw:1028 msgid "eMail Import" From 73f50fff1238631613c769427960ac24b579e6ff Mon Sep 17 00:00:00 2001 From: steffen123 Date: Wed, 25 Aug 2010 13:36:12 +0200 Subject: [PATCH 37/58] l10n: update PO/MO files --- pyfpdb/locale/fpdb-de_DE.po | 3042 ++++++++++++++++++++++++++ pyfpdb/locale/fpdb-en_GB.po | 70 +- pyfpdb/locale/fpdb-hu_HU.po | 667 +++--- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 63100 -> 62387 bytes 4 files changed, 3446 insertions(+), 333 deletions(-) create mode 100644 pyfpdb/locale/fpdb-de_DE.po diff --git a/pyfpdb/locale/fpdb-de_DE.po b/pyfpdb/locale/fpdb-de_DE.po new file mode 100644 index 00000000..38f761df --- /dev/null +++ b/pyfpdb/locale/fpdb-de_DE.po @@ -0,0 +1,3042 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.20.905 plus git\n" +"POT-Creation-Date: 2010-08-25 13:31+CEST\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Steffen Schaumburg \n" +"Language-Team: de_DE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: UTF-8\n" +"Generated-By: pygettext.py 1.5\n" + + +#: Anonymise.py:55 +msgid "Could not find file %s" +msgstr "" + +#: Anonymise.py:61 +msgid "Output being written to" +msgstr "" + +#: BetfairToFpdb.py:83 +msgid "GameInfo regex did not match" +msgstr "" + +#: BetfairToFpdb.py:114 +msgid "Didn't match re_HandInfo" +msgstr "" + +#: BetfairToFpdb.py:170 +msgid "No bringin found" +msgstr "" + +#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 +msgid "DEBUG: unimplemented readAction: '%s' '%s'" +msgstr "" + +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +msgid "parse input hand history" +msgstr "" + +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +msgid "output translation to" +msgstr "" + +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +msgid "follow (tail -f) the input" +msgstr "" + +#: Card.py:167 +msgid "fpdb card encoding(same as pokersource)" +msgstr "" + +#: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 +msgid "" +"Could not convert: \"%s\"\n" +msgstr "" + +#: Charset.py:48 Charset.py:63 Charset.py:78 +msgid "" +"Could not encode: \"%s\"\n" +msgstr "" + +#: Configuration.py:113 Configuration.py:126 +msgid "" +"Config file has been created at %s.\n" +msgstr "" + +#: Configuration.py:125 +msgid "" +"No %s found\n" +" in %s\n" +" or %s\n" +msgstr "" + +#: Configuration.py:131 Configuration.py:132 +msgid "" +"Error copying .example file, cannot fall back. Exiting.\n" +msgstr "" + +#: Configuration.py:136 Configuration.py:137 +msgid "" +"No %s found, cannot fall back. Exiting.\n" +msgstr "" + +#: Configuration.py:167 +msgid "Default logger initialised for " +msgstr "" + +#: Configuration.py:168 +msgid "Default logger intialised for " +msgstr "" + +#: Configuration.py:179 Database.py:438 Database.py:439 +msgid "Creating directory: '%s'" +msgstr "" + +#: Configuration.py:205 +msgid "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem." +msgstr "" + +#: Configuration.py:303 +msgid "Loading site" +msgstr "" + +#: Configuration.py:520 +msgid "config.general: adding %s = %s" +msgstr "" + +#: Configuration.py:567 Configuration.py:568 +msgid "bad number in xalignment was ignored" +msgstr "" + +#: Configuration.py:616 +msgid "missing config section raw_hands" +msgstr "" + +#: Configuration.py:622 +msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:629 +msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:642 +msgid "missing config section raw_tourneys" +msgstr "" + +#: Configuration.py:648 +msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:655 +msgid "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:673 Configuration.py:674 +msgid "Configuration file %s not found. Using defaults." +msgstr "" + +#: Configuration.py:690 +msgid "Reading configuration file %s" +msgstr "" + +#: Configuration.py:691 +msgid "" +"\n" +"Reading configuration file %s\n" +msgstr "" + +#: Configuration.py:696 +msgid "Error parsing %s. See error log file." +msgstr "" + +#: Database.py:74 +msgid "Not using sqlalchemy connection pool." +msgstr "" + +#: Database.py:81 +msgid "Not using numpy to define variance in sqlite." +msgstr "" + +#: Database.py:250 +msgid "Creating Database instance, sql = %s" +msgstr "" + +#: Database.py:389 +msgid "*** WARNING UNKNOWN MYSQL ERROR:" +msgstr "" + +#: Database.py:443 +msgid "Connecting to SQLite: %(database)s" +msgstr "" + +#: Database.py:455 +msgid "Some database functions will not work without NumPy support" +msgstr "" + +#: Database.py:476 +msgid "outdated or too new database version (%s) - please recreate tables" +msgstr "" + +#: Database.py:482 Database.py:483 +msgid "Failed to read settings table - recreating tables" +msgstr "" + +#: Database.py:487 Database.py:488 +msgid "Failed to read settings table - please recreate tables" +msgstr "" + +#: Database.py:509 +msgid "commit %s failed: info=%s value=%s" +msgstr "" + +#: Database.py:513 +msgid "commit failed" +msgstr "" + +#: Database.py:682 Database.py:711 +msgid "*** Database Error: " +msgstr "" + +#: Database.py:708 +msgid "Database: date n hands ago = " +msgstr "" + +#: Database.py:865 +msgid "ERROR: query %s result does not have player_id as first column" +msgstr "" + +#: Database.py:907 +msgid "getLastInsertId(): problem fetching insert_id? ret=%d" +msgstr "" + +#: Database.py:919 +msgid "getLastInsertId(%s): problem fetching lastval? row=%d" +msgstr "" + +#: Database.py:926 +msgid "getLastInsertId(): unknown backend: %d" +msgstr "" + +#: Database.py:931 +msgid "*** Database get_last_insert_id error: " +msgstr "" + +#: Database.py:985 Database.py:1407 +msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." +msgstr "" + +#: Database.py:989 Database.py:1411 +msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." +msgstr "" + +#: Database.py:997 Database.py:1285 +msgid "dropping mysql index " +msgstr "" + +#: Database.py:1003 Database.py:1290 Database.py:1298 Database.py:1305 +msgid " drop index failed: " +msgstr "" + +#: Database.py:1008 Database.py:1292 +msgid "dropping pg index " +msgstr "" + +#: Database.py:1021 +msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." +msgstr "" + +#: Database.py:1025 +msgid "warning: index %s_%s_idx not dropped %s, continuing ..." +msgstr "" + +#: Database.py:1065 Database.py:1073 Database.py:1338 Database.py:1346 +msgid "creating foreign key " +msgstr "" + +#: Database.py:1071 Database.py:1092 Database.py:1344 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1080 Database.py:1353 +msgid " create foreign key failed: " +msgstr "" + +#: Database.py:1087 +msgid "creating mysql index " +msgstr "" + +#: Database.py:1096 +msgid "creating pg index " +msgstr "" + +#: Database.py:1101 +msgid " create index failed: " +msgstr "" + +#: Database.py:1141 Database.py:1142 +msgid "Finished recreating tables" +msgstr "" + +#: Database.py:1181 +msgid "***Error creating tables: " +msgstr "" + +#: Database.py:1191 +msgid "*** Error unable to get databasecursor" +msgstr "" + +#: Database.py:1203 Database.py:1214 Database.py:1224 Database.py:1231 +msgid "***Error dropping tables: " +msgstr "" + +#: Database.py:1229 +msgid "*** Error in committing table drop" +msgstr "" + +#: Database.py:1243 Database.py:1244 +msgid "Creating mysql index %s %s" +msgstr "" + +#: Database.py:1249 Database.py:1258 +msgid " create index failed: " +msgstr "" + +#: Database.py:1252 Database.py:1253 +msgid "Creating pgsql index %s %s" +msgstr "" + +#: Database.py:1260 Database.py:1261 +msgid "Creating sqlite index %s %s" +msgstr "" + +#: Database.py:1266 +msgid "Create index failed: " +msgstr "" + +#: Database.py:1268 +msgid "Unknown database: MySQL, Postgres and SQLite supported" +msgstr "" + +#: Database.py:1273 +msgid "Error creating indexes: " +msgstr "" + +#: Database.py:1300 +msgid "Dropping sqlite index " +msgstr "" + +#: Database.py:1307 +msgid "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" +msgstr "" + +#: Database.py:1321 Database.py:1361 +msgid " set_isolation_level failed: " +msgstr "" + +#: Database.py:1355 Database.py:1414 +msgid "Only MySQL and Postgres supported so far" +msgstr "" + +#: Database.py:1385 +msgid "dropping mysql foreign key" +msgstr "" + +#: Database.py:1389 +msgid " drop failed: " +msgstr "" + +#: Database.py:1392 +msgid "dropping pg foreign key" +msgstr "" + +#: Database.py:1404 +msgid "dropped pg foreign key %s_%s_fkey, continuing ..." +msgstr "" + +#: Database.py:1505 +msgid "Rebuild hudcache took %.1f seconds" +msgstr "" + +#: Database.py:1508 Database.py:1541 +msgid "Error rebuilding hudcache:" +msgstr "" + +#: Database.py:1553 Database.py:1559 +msgid "Error during analyze:" +msgstr "" + +#: Database.py:1563 +msgid "Analyze took %.1f seconds" +msgstr "" + +#: Database.py:1573 Database.py:1579 +msgid "Error during vacuum:" +msgstr "" + +#: Database.py:1583 +msgid "Vacuum took %.1f seconds" +msgstr "" + +#: Database.py:1595 +msgid "Error during lock_for_insert:" +msgstr "" + +#: Database.py:1992 +msgid "queue empty too long - writer stopping ..." +msgstr "" + +#: Database.py:1995 +msgid "writer stopping, error reading queue: " +msgstr "" + +#: Database.py:2020 +msgid "deadlock detected - trying again ..." +msgstr "" + +#: Database.py:2025 +msgid "too many deadlocks - failed to store hand " +msgstr "" + +#: Database.py:2029 +msgid "***Error storing hand: " +msgstr "" + +#: Database.py:2039 +msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" +msgstr "" + +#: Database.py:2049 +msgid "***Error sending finish: " +msgstr "" + +#: Database.py:2131 +msgid "invalid source in Database.createOrUpdateTourney" +msgstr "" + +#: Database.py:2144 +msgid "invalid source in Database.createOrUpdateTourneysPlayers" +msgstr "" + +#: Database.py:2270 +msgid "HandToWrite.init error: " +msgstr "" + +#: Database.py:2320 +msgid "HandToWrite.set_all error: " +msgstr "" + +#: Database.py:2351 +msgid "nutOmatic is id_player = %d" +msgstr "" + +#: Database.py:2359 +msgid "query plan: " +msgstr "" + +#: Database.py:2368 +msgid "cards =" +msgstr "" + +#: Database.py:2371 +msgid "get_stats took: %4.3f seconds" +msgstr "" + +#: Database.py:2373 Tables.py:448 +msgid "press enter to continue" +msgstr "" + +#: Filters.py:62 +msgid "All" +msgstr "" + +#: Filters.py:62 +msgid "None" +msgstr "" + +#: Filters.py:62 +msgid "Show _Limits" +msgstr "" + +#: Filters.py:63 +msgid "Show Number of _Players" +msgstr "" + +#: Filters.py:63 TourneyFilters.py:60 +msgid "And:" +msgstr "" + +#: Filters.py:63 TourneyFilters.py:60 +msgid "Between:" +msgstr "" + +#: Filters.py:64 +msgid "Games:" +msgstr "" + +#: Filters.py:64 TourneyFilters.py:59 +msgid "Hero:" +msgstr "" + +#: Filters.py:64 TourneyFilters.py:59 +msgid "Sites:" +msgstr "" + +#: Filters.py:65 +msgid "Limits:" +msgstr "" + +#: Filters.py:65 TourneyFilters.py:59 +msgid "Number of Players:" +msgstr "" + +#: Filters.py:66 +msgid "Grouping:" +msgstr "" + +#: Filters.py:66 +msgid "Show Position Stats:" +msgstr "" + +#: Filters.py:67 TourneyFilters.py:60 +msgid "Date:" +msgstr "" + +#: Filters.py:68 +msgid "All Players" +msgstr "" + +#: Filters.py:69 +msgid "Ring" +msgstr "" + +#: Filters.py:69 +msgid "Tourney" +msgstr "" + +#: Filters.py:103 TourneyFilters.py:116 +msgid "Either 0 or more than one site matched (%s) - EEK" +msgstr "" + +#: Filters.py:313 +msgid "%s was toggled %s" +msgstr "" + +#: Filters.py:313 +msgid "OFF" +msgstr "" + +#: Filters.py:313 +msgid "ON" +msgstr "" + +#: Filters.py:394 +msgid "self.sites[%s] set to %s" +msgstr "" + +#: Filters.py:400 +msgid "self.games[%s] set to %s" +msgstr "" + +#: Filters.py:406 +msgid "self.limit[%s] set to %s" +msgstr "" + +#: Filters.py:543 +msgid "self.seats[%s] set to %s" +msgstr "" + +#: Filters.py:549 +msgid "self.groups[%s] set to %s" +msgstr "" + +#: Filters.py:582 +msgid "Min # Hands:" +msgstr "" + +#: Filters.py:648 +msgid "INFO: No tourney types returned from database" +msgstr "" + +#: Filters.py:649 +msgid "No tourney types returned from database" +msgstr "" + +#: Filters.py:675 Filters.py:764 +msgid "INFO: No games returned from database" +msgstr "" + +#: Filters.py:676 Filters.py:765 +msgid "No games returned from database" +msgstr "" + +#: Filters.py:913 +msgid " Clear Dates " +msgstr "" + +#: Filters.py:940 fpdb.pyw:721 +msgid "Pick a date" +msgstr "" + +#: Filters.py:946 fpdb.pyw:727 +msgid "Done" +msgstr "" + +#: GuiAutoImport.py:85 +msgid "Time between imports in seconds:" +msgstr "" + +#: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 +msgid " Start _Autoimport " +msgstr "" + +#: GuiAutoImport.py:135 +msgid "AutoImport Ready." +msgstr "" + +#: GuiAutoImport.py:148 +msgid "Please choose the path that you want to auto import" +msgstr "" + +#: GuiAutoImport.py:171 +msgid " _Auto Import Running " +msgstr "" + +#: GuiAutoImport.py:182 +msgid " Stop _Autoimport " +msgstr "" + +#: GuiAutoImport.py:207 +msgid "" +"\n" +"Global lock taken ... Auto Import Started.\n" +msgstr "" + +#: GuiAutoImport.py:209 +msgid " _Stop Autoimport " +msgstr "" + +#: GuiAutoImport.py:225 +msgid "opening pipe to HUD" +msgstr "" + +#: GuiAutoImport.py:237 +msgid "" +"\n" +"*** GuiAutoImport Error opening pipe: " +msgstr "" + +#: GuiAutoImport.py:249 +msgid "" +"\n" +"auto-import aborted - global lock not available" +msgstr "" + +#: GuiAutoImport.py:254 +msgid "" +"\n" +"Stopping autoimport - global lock released." +msgstr "" + +#: GuiAutoImport.py:256 +msgid "" +"\n" +" * Stop Autoimport: HUD already terminated" +msgstr "" + +#: GuiAutoImport.py:283 +msgid "Browse..." +msgstr "" + +#: GuiAutoImport.py:326 GuiBulkImport.py:354 +msgid "How often to print a one-line status report (0 (default) means never)" +msgstr "" + +#: GuiBulkImport.py:67 +msgid "" +"\n" +"Global lock taken ..." +msgstr "" + +#: GuiBulkImport.py:68 +msgid "Importing..." +msgstr "" + +#: GuiBulkImport.py:117 +msgid "GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" +msgstr "" + +#: GuiBulkImport.py:131 +msgid "Import Complete" +msgstr "" + +#: GuiBulkImport.py:139 +msgid "bulk-import aborted - global lock not available" +msgstr "" + +#: GuiBulkImport.py:165 +msgid "Print Start/Stop Info" +msgstr "" + +#: GuiBulkImport.py:172 +msgid "Hands/status print:" +msgstr "" + +#: GuiBulkImport.py:189 +msgid "Number of threads:" +msgstr "" + +#: GuiBulkImport.py:209 +msgid "Fail on error" +msgstr "" + +#: GuiBulkImport.py:214 +msgid "Hands/file:" +msgstr "" + +#: GuiBulkImport.py:229 +msgid "Drop indexes:" +msgstr "" + +#: GuiBulkImport.py:238 GuiBulkImport.py:288 +msgid "auto" +msgstr "" + +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:398 +msgid "don't drop" +msgstr "" + +#: GuiBulkImport.py:240 GuiBulkImport.py:290 +msgid "drop" +msgstr "" + +#: GuiBulkImport.py:246 +msgid "HUD Test mode" +msgstr "" + +#: GuiBulkImport.py:251 +msgid "Site filter:" +msgstr "" + +#: GuiBulkImport.py:279 +msgid "Drop HudCache:" +msgstr "" + +#: GuiBulkImport.py:297 fpdb.pyw:832 +msgid "_Bulk Import" +msgstr "" + +#: GuiBulkImport.py:299 +msgid "Import clicked" +msgstr "" + +#: GuiBulkImport.py:317 +msgid "Waiting..." +msgstr "" + +#: GuiBulkImport.py:346 +msgid "Input file in quiet mode" +msgstr "" + +#: GuiBulkImport.py:348 +msgid "don't start gui; deprecated (just give a filename with -f)." +msgstr "" + +#: GuiBulkImport.py:350 +msgid "Conversion filter (*Full Tilt Poker, PokerStars, Everleaf, Absolute)" +msgstr "" + +#: GuiBulkImport.py:352 +msgid "If this option is passed it quits when it encounters any error" +msgstr "" + +#: GuiBulkImport.py:356 +msgid "Print some useful one liners" +msgstr "" + +#: GuiBulkImport.py:358 +msgid "Do the required conversion for Stars Archive format (ie. as provided by support" +msgstr "" + +#: GuiBulkImport.py:360 +msgid "Output the pprinted version of the HandsPlayer hash for regresion testing" +msgstr "" + +#: GuiBulkImport.py:365 +msgid "USAGE:" +msgstr "" + +#: GuiBulkImport.py:366 +msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" +msgstr "" + +#: GuiBulkImport.py:367 +msgid "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" +msgstr "" + +#: GuiBulkImport.py:368 +msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" +msgstr "" + +#: GuiBulkImport.py:369 +msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" +msgstr "" + +#: GuiBulkImport.py:370 +msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" +msgstr "" + +#: GuiBulkImport.py:385 +msgid "-q is deprecated. Just use \"-f filename\" instead" +msgstr "" + +#: GuiBulkImport.py:409 +msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" +msgstr "" + +#: GuiDatabase.py:106 GuiLogView.py:96 +msgid "Refresh" +msgstr "" + +#: GuiDatabase.py:111 +msgid "Type" +msgstr "" + +#: GuiDatabase.py:112 +msgid "Name" +msgstr "" + +#: GuiDatabase.py:113 +msgid "Description" +msgstr "" + +#: GuiDatabase.py:114 GuiImapFetcher.py:119 +msgid "Username" +msgstr "" + +#: GuiDatabase.py:115 GuiImapFetcher.py:119 +msgid "Password" +msgstr "" + +#: GuiDatabase.py:116 +msgid "Host" +msgstr "" + +#: GuiDatabase.py:117 +msgid "Default" +msgstr "" + +#: GuiDatabase.py:118 +msgid "Status" +msgstr "" + +#: GuiDatabase.py:251 +msgid "Testing database connections ... " +msgstr "" + +#: GuiDatabase.py:281 +msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" +msgstr "" + +#: GuiDatabase.py:284 +msgid " connected ok" +msgstr "" + +#: GuiDatabase.py:291 +msgid " not connected but no exception" +msgstr "" + +#: GuiDatabase.py:293 fpdb.pyw:905 +msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:297 +msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" +msgstr "" + +#: GuiDatabase.py:301 fpdb.pyw:910 +msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:304 +msgid "Postgres client reports: Unable to connect - Please check that the Postgres service has been started" +msgstr "" + +#: GuiDatabase.py:321 +msgid "finished." +msgstr "" + +#: GuiDatabase.py:331 +msgid "loaddbs error: " +msgstr "" + +#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 +msgid "***sortCols error: " +msgstr "" + +#: GuiDatabase.py:354 +msgid "sortCols error: " +msgstr "" + +#: GuiDatabase.py:424 GuiLogView.py:213 +msgid "Test Log Viewer" +msgstr "" + +#: GuiDatabase.py:429 GuiLogView.py:218 +msgid "Log Viewer" +msgstr "" + +#: GuiGraphViewer.py:39 +msgid "" +"Failed to load libs for graphing, graphing will not function. Please\n" +" install numpy and matplotlib if you want to use graphs." +msgstr "" + +#: GuiGraphViewer.py:41 +msgid "" +"This is of no consequence for other parts of the program, e.g. import \n" +" and HUD are NOT affected by this problem." +msgstr "" + +#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:354 +msgid "***Error: " +msgstr "" + +#: GuiGraphViewer.py:171 GuiPositionalStats.py:177 GuiRingPlayerStats.py:251 +#: GuiSessionViewer.py:203 GuiTourneyPlayerStats.py:277 +msgid "No sites selected - defaulting to PokerStars" +msgstr "" + +#: GuiGraphViewer.py:176 GuiPositionalStats.py:180 GuiRingPlayerStats.py:254 +#: GuiSessionViewer.py:206 GuiTourneyPlayerStats.py:280 +msgid "No player ids found" +msgstr "" + +#: GuiGraphViewer.py:181 GuiPositionalStats.py:183 GuiRingPlayerStats.py:257 +#: GuiSessionViewer.py:209 +msgid "No limits found" +msgstr "" + +#: GuiGraphViewer.py:191 +msgid "Graph generated in: %s" +msgstr "" + +#: GuiGraphViewer.py:195 +msgid "Hands" +msgstr "" + +#: GuiGraphViewer.py:199 +msgid "No Data for Player(s) Found" +msgstr "" + +#: GuiGraphViewer.py:222 GuiGraphViewer.py:241 +msgid "" +"Hands: %d\n" +"Profit: $%.2f" +msgstr "" + +#: GuiGraphViewer.py:223 GuiGraphViewer.py:242 +msgid "Showdown: $%.2f" +msgstr "" + +#: GuiGraphViewer.py:224 GuiGraphViewer.py:243 +msgid "Non-showdown: $%.2f" +msgstr "" + +#: GuiGraphViewer.py:232 +msgid "Profit graph for ring games" +msgstr "" + +#: GuiGraphViewer.py:352 +msgid "Please choose the directory you wish to export to:" +msgstr "" + +#: GuiGraphViewer.py:365 +msgid "Closed, no graph exported" +msgstr "" + +#: GuiGraphViewer.py:383 +msgid "Graph created" +msgstr "" + +#: GuiImapFetcher.py:49 +msgid "To cancel just close this tab." +msgstr "" + +#: GuiImapFetcher.py:52 +msgid "_Save" +msgstr "" + +#: GuiImapFetcher.py:56 +msgid "_Import All" +msgstr "" + +#: GuiImapFetcher.py:60 +msgid "If you change the config you must save before importing" +msgstr "" + +#: GuiImapFetcher.py:98 +msgid "Starting import. Please wait." +msgstr "" + +#: GuiImapFetcher.py:103 +msgid "Finished import without error." +msgstr "" + +#: GuiImapFetcher.py:106 +msgid "Login to mailserver failed: please check mailserver, username and password" +msgstr "" + +#: GuiImapFetcher.py:109 +msgid "Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity" +msgstr "" + +#: GuiImapFetcher.py:119 +msgid "Fetch Type" +msgstr "" + +#: GuiImapFetcher.py:119 +msgid "Mail Folder" +msgstr "" + +#: GuiImapFetcher.py:119 +msgid "Mailserver" +msgstr "" + +#: GuiImapFetcher.py:119 +msgid "Site" +msgstr "" + +#: GuiImapFetcher.py:119 +msgid "Use SSL" +msgstr "" + +#: GuiImapFetcher.py:151 +msgid "Yes" +msgstr "" + +#: GuiImapFetcher.py:152 +msgid "No" +msgstr "" + +#: GuiLogView.py:61 +msgid "Log Messages" +msgstr "" + +#: GuiPositionalStats.py:146 +msgid "DEBUG: activesite set to %s" +msgstr "" + +#: GuiPositionalStats.py:332 +msgid "Positional Stats page displayed in %4.2f seconds" +msgstr "" + +#: GuiPrefs.py:81 +msgid "Setting" +msgstr "" + +#: GuiPrefs.py:87 +msgid "Value (double-click to change)" +msgstr "" + +#: GuiPrefs.py:187 +msgid "Test Preferences Dialog" +msgstr "" + +#: GuiPrefs.py:192 fpdb.pyw:296 +msgid "Preferences" +msgstr "" + +#: GuiRingPlayerStats.py:322 GuiSessionViewer.py:248 +#: GuiTourneyPlayerStats.py:252 +msgid "Stats page displayed in %4.2f seconds" +msgstr "" + +#: GuiRingPlayerStats.py:369 +msgid "***sortnums error: " +msgstr "" + +#: GuiRingPlayerStats.py:391 +msgid "***sortcols error: " +msgstr "" + +#: GuiRingPlayerStats.py:682 +msgid "Detailed Filters" +msgstr "" + +#: GuiRingPlayerStats.py:691 +msgid "Hand Filters:" +msgstr "" + +#: GuiRingPlayerStats.py:704 +msgid "between" +msgstr "" + +#: GuiRingPlayerStats.py:705 +msgid "and" +msgstr "" + +#: GuiSessionViewer.py:41 +msgid "Failed to load numpy and/or matplotlib in Session Viewer" +msgstr "" + +#: GuiSessionViewer.py:42 +msgid "ImportError: %s" +msgstr "" + +#: GuiSessionViewer.py:89 +msgid "Hand Breakdown for all levels listed above" +msgstr "" + +#: GuiSessionViewer.py:375 +msgid "Session candlestick graph" +msgstr "" + +#: GuiSessionViewer.py:378 +msgid "Sessions" +msgstr "" + +#: GuiTourneyPlayerStats.py:84 +msgid "_Refresh Stats" +msgstr "" + +#: GuiTourneyViewer.py:49 +msgid "Enter the tourney number you want to display:" +msgstr "" + +#: GuiTourneyViewer.py:55 +msgid "_Display" +msgstr "" + +#: GuiTourneyViewer.py:62 +msgid "Display _Player" +msgstr "" + +#: GuiTourneyViewer.py:77 +msgid "Tournament not found - please ensure you imported it and selected the correct site" +msgstr "" + +#: GuiTourneyViewer.py:105 +msgid "Player or tourney not found - please ensure you imported it and selected the correct site" +msgstr "" + +#: GuiTourneyViewer.py:119 +msgid "N/A" +msgstr "" + +#: GuiTourneyViewer.py:140 +msgid "invalid entry in tourney number - must enter numbers only" +msgstr "" + +#: HUD_main.pyw:86 +msgid "" +"\n" +"HUD_main: starting ..." +msgstr "" + +#: HUD_main.pyw:89 +msgid "Logfile is " +msgstr "" + +#: HUD_main.pyw:90 +msgid "HUD_main starting: using db name = %s" +msgstr "" + +#: HUD_main.pyw:95 +msgid "" +"Note: error output is being diverted to:\n" +msgstr "" + +#: HUD_main.pyw:96 fpdb.pyw:1139 +msgid "" +"\n" +"Any major error will be reported there _only_.\n" +msgstr "" + +#: HUD_main.pyw:97 +msgid "Note: error output is being diverted to:" +msgstr "" + +#: HUD_main.pyw:98 +msgid "Any major error will be reported there _only_." +msgstr "" + +#: HUD_main.pyw:101 +msgid "" +"HUD_main: starting ...\n" +msgstr "" + +#: HUD_main.pyw:114 HUD_run_me.py:62 +msgid "Closing this window will exit from the HUD." +msgstr "" + +#: HUD_main.pyw:117 HUD_run_me.py:66 +msgid "HUD Main Window" +msgstr "" + +#: HUD_main.pyw:126 +msgid "Terminating normally." +msgstr "" + +#: HUD_main.pyw:230 +msgid "Received hand no %s" +msgstr "" + +#: HUD_main.pyw:249 +msgid "HUD_main.read_stdin: hand processing starting ..." +msgstr "" + +#: HUD_main.pyw:275 +msgid "" +"hud_dict[%s] was not found\n" +msgstr "" + +#: HUD_main.pyw:276 +msgid "" +"will not send hand\n" +msgstr "" + +#: HUD_main.pyw:310 +msgid "HUD create: table name %s not found, skipping." +msgstr "" + +#: HUD_main.pyw:318 +msgid "" +"Table \"%s\" no longer exists\n" +msgstr "" + +#: HUD_main.pyw:321 +msgid "HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%4.3f,%4.3f)" +msgstr "" + +#: HUD_run_me.py:45 +msgid "" +"HUD_main starting\n" +msgstr "" + +#: HUD_run_me.py:51 TournamentTracker.py:317 +msgid "" +"Using db name = %s\n" +msgstr "" + +#: Hand.py:150 +msgid "BB" +msgstr "" + +#: Hand.py:151 +msgid "SB" +msgstr "" + +#: Hand.py:152 +msgid "BUTTONPOS" +msgstr "" + +#: Hand.py:153 +msgid "HAND NO." +msgstr "" + +#: Hand.py:154 TourneySummary.py:134 +msgid "SITE" +msgstr "" + +#: Hand.py:155 +msgid "TABLE NAME" +msgstr "" + +#: Hand.py:156 TourneySummary.py:144 +msgid "HERO" +msgstr "" + +#: Hand.py:157 TourneySummary.py:145 +msgid "MAXSEATS" +msgstr "" + +#: Hand.py:158 +msgid "LEVEL" +msgstr "" + +#: Hand.py:159 TourneySummary.py:150 +msgid "MIXED" +msgstr "" + +#: Hand.py:160 +msgid "LASTBET" +msgstr "" + +#: Hand.py:161 +msgid "ACTION STREETS" +msgstr "" + +#: Hand.py:162 +msgid "STREETS" +msgstr "" + +#: Hand.py:163 +msgid "ALL STREETS" +msgstr "" + +#: Hand.py:164 +msgid "COMMUNITY STREETS" +msgstr "" + +#: Hand.py:165 +msgid "HOLE STREETS" +msgstr "" + +#: Hand.py:166 +msgid "COUNTED SEATS" +msgstr "" + +#: Hand.py:167 +msgid "DEALT" +msgstr "" + +#: Hand.py:168 +msgid "SHOWN" +msgstr "" + +#: Hand.py:169 +msgid "MUCKED" +msgstr "" + +#: Hand.py:170 +msgid "TOTAL POT" +msgstr "" + +#: Hand.py:171 +msgid "TOTAL COLLECTED" +msgstr "" + +#: Hand.py:172 +msgid "RAKE" +msgstr "" + +#: Hand.py:173 TourneySummary.py:135 +msgid "START TIME" +msgstr "" + +#: Hand.py:174 +msgid "TOURNAMENT NO" +msgstr "" + +#: Hand.py:175 TourneySummary.py:140 +msgid "TOURNEY ID" +msgstr "" + +#: Hand.py:176 TourneySummary.py:139 +msgid "TOURNEY TYPE ID" +msgstr "" + +#: Hand.py:177 TourneySummary.py:141 +msgid "BUYIN" +msgstr "" + +#: Hand.py:178 +msgid "BUYIN CURRENCY" +msgstr "" + +#: Hand.py:179 +msgid "BUYIN CHIPS" +msgstr "" + +#: Hand.py:180 TourneySummary.py:142 +msgid "FEE" +msgstr "" + +#: Hand.py:181 +msgid "IS REBUY" +msgstr "" + +#: Hand.py:182 +msgid "IS ADDON" +msgstr "" + +#: Hand.py:183 +msgid "IS KO" +msgstr "" + +#: Hand.py:184 TourneySummary.py:166 +msgid "KO BOUNTY" +msgstr "" + +#: Hand.py:185 +msgid "IS MATRIX" +msgstr "" + +#: Hand.py:186 +msgid "IS SHOOTOUT" +msgstr "" + +#: Hand.py:187 TourneySummary.py:167 +msgid "TOURNEY COMMENT" +msgstr "" + +#: Hand.py:190 TourneySummary.py:179 +msgid "PLAYERS" +msgstr "" + +#: Hand.py:191 +msgid "STACKS" +msgstr "" + +#: Hand.py:192 +msgid "POSTED" +msgstr "" + +#: Hand.py:193 +msgid "POT" +msgstr "" + +#: Hand.py:194 +msgid "SEATING" +msgstr "" + +#: Hand.py:195 +msgid "GAMETYPE" +msgstr "" + +#: Hand.py:196 +msgid "ACTION" +msgstr "" + +#: Hand.py:197 +msgid "COLLECTEES" +msgstr "" + +#: Hand.py:198 +msgid "BETS" +msgstr "" + +#: Hand.py:199 +msgid "BOARD" +msgstr "" + +#: Hand.py:200 +msgid "DISCARDS" +msgstr "" + +#: Hand.py:201 +msgid "HOLECARDS" +msgstr "" + +#: Hand.py:202 +msgid "TOURNEYS PLAYER IDS" +msgstr "" + +#: Hand.py:225 Hand.py:1242 +msgid "[ERROR] Tried to add holecards for unknown player: %s" +msgstr "" + +#: Hand.py:278 +msgid "Hand.insert(): hid #: %s is a duplicate" +msgstr "" + +#: Hand.py:317 +msgid "markstreets didn't match - Assuming hand cancelled" +msgstr "" + +#: Hand.py:319 +msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" +msgstr "" + +#: Hand.py:323 +msgid "DEBUG: checkPlayerExists %s fail on hand number %s" +msgstr "" + +#: Hand.py:324 +msgid "checkPlayerExists: '%s fail on hand number %s" +msgstr "" + +#: Hand.py:405 +msgid "%s %s calls %s" +msgstr "" + +#: Hand.py:475 +msgid "%s %s raise %s" +msgstr "" + +#: Hand.py:486 +msgid "%s %s bets %s" +msgstr "" + +#: Hand.py:505 +msgid "%s %s folds" +msgstr "" + +#: Hand.py:514 +msgid "%s %s checks" +msgstr "" + +#: Hand.py:534 +msgid "addShownCards %s hole=%s all=%s" +msgstr "" + +#: Hand.py:645 +msgid "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, expecting datetime.date object, received:" +msgstr "" + +#: Hand.py:646 +msgid "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" +msgstr "" + +#: Hand.py:647 +msgid "*** Game String:" +msgstr "" + +#: Hand.py:701 +msgid "*** Parse error reading blinds (check compilePlayerRegexs as a likely culprit)" +msgstr "" + +#: Hand.py:728 +msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" +msgstr "" + +#: Hand.py:730 +msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" +msgstr "" + +#: Hand.py:1111 +msgid "*** DEALING HANDS ***" +msgstr "" + +#: Hand.py:1116 +msgid "Dealt to %s: [%s]" +msgstr "" + +#: Hand.py:1121 +msgid "*** FIRST DRAW ***" +msgstr "" + +#: Hand.py:1131 +msgid "*** SECOND DRAW ***" +msgstr "" + +#: Hand.py:1141 +msgid "*** THIRD DRAW ***" +msgstr "" + +#: Hand.py:1151 Hand.py:1369 +msgid "*** SHOW DOWN ***" +msgstr "" + +#: Hand.py:1166 Hand.py:1384 +msgid "*** SUMMARY ***" +msgstr "" + +#: Hand.py:1251 +msgid "%s %s completes %s" +msgstr "" + +#: Hand.py:1269 +msgid "Bringin: %s, %s" +msgstr "" + +#: Hand.py:1309 +msgid "*** 3RD STREET ***" +msgstr "" + +#: Hand.py:1323 +msgid "*** 4TH STREET ***" +msgstr "" + +#: Hand.py:1335 +msgid "*** 5TH STREET ***" +msgstr "" + +#: Hand.py:1347 +msgid "*** 6TH STREET ***" +msgstr "" + +#: Hand.py:1357 +msgid "*** RIVER ***" +msgstr "" + +#: Hand.py:1449 +msgid "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should be impossible for anyone who is not a hero" +msgstr "" + +#: Hand.py:1450 +msgid "join_holcards: holecards(%s): %s" +msgstr "" + +#: Hand.py:1533 +msgid "DEBUG: call Pot.end() before printing pot total" +msgstr "" + +#: Hand.py:1535 +msgid "FpdbError in printing Hand object" +msgstr "" + +#: HandHistoryConverter.py:135 +msgid "Failed sanity check" +msgstr "" + +#: HandHistoryConverter.py:143 +msgid "Tailing '%s'" +msgstr "" + +#: HandHistoryConverter.py:150 +msgid "HHC.start(follow): processHand failed: Exception msg: '%s'" +msgstr "" + +#: HandHistoryConverter.py:154 +msgid "handsList is " +msgstr "" + +#: HandHistoryConverter.py:165 +msgid "HHC.start(): processHand failed: Exception msg: '%s'" +msgstr "" + +#: HandHistoryConverter.py:169 +msgid "Read %d hands (%d failed) in %.3f seconds" +msgstr "" + +#: HandHistoryConverter.py:175 +msgid "Summary file '%s' correctly parsed (took %.3f seconds)" +msgstr "" + +#: HandHistoryConverter.py:177 +msgid "Error converting summary file '%s' (took %.3f seconds)" +msgstr "" + +#: HandHistoryConverter.py:180 +msgid "Error converting '%s'" +msgstr "" + +#: HandHistoryConverter.py:211 +msgid "%s changed inode numbers from %d to %d" +msgstr "" + +#: HandHistoryConverter.py:256 +msgid "Converting starsArchive format to readable" +msgstr "" + +#: HandHistoryConverter.py:261 +msgid "Converting ftpArchive format to readable" +msgstr "" + +#: HandHistoryConverter.py:266 +msgid "Read no hands." +msgstr "" + +#: HandHistoryConverter.py:474 +msgid "HH Sanity Check: output and input files are the same, check config" +msgstr "" + +#: HandHistoryConverter.py:497 +msgid "Reading stdin with %s" +msgstr "" + +#: HandHistoryConverter.py:512 +msgid "unable to read file with any codec in list!" +msgstr "" + +#: HandHistoryConverter.py:579 +msgid " given TZ:" +msgstr "" + +#: HandHistoryConverter.py:579 +msgid "raw time:" +msgstr "" + +#: HandHistoryConverter.py:589 +msgid "changeTimeZone: offset=" +msgstr "" + +#: HandHistoryConverter.py:652 +msgid "utcTime:" +msgstr "" + +#: HandHistoryConverter.py:685 +msgid "Unable to create output directory %s for HHC!" +msgstr "" + +#: HandHistoryConverter.py:686 +msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" +msgstr "" + +#: HandHistoryConverter.py:688 +msgid "Created directory '%s'" +msgstr "" + +#: HandHistoryConverter.py:692 +msgid "out_path %s couldn't be opened" +msgstr "" + +#: Hello.py:44 +msgid "creating Hello" +msgstr "" + +#: Hello.py:47 +msgid "Hello World" +msgstr "" + +#: Hello.py:65 +msgid "site =" +msgstr "" + +#: Hello.py:73 +msgid "YOUR NAME HERE" +msgstr "" + +#: Hello.py:104 +msgid "" +"Hello %s\n" +"You have played %d hands\n" +" on %s." +msgstr "" + +#: Hud.py:149 +msgid "Kill This HUD" +msgstr "" + +#: Hud.py:154 +msgid "Save HUD Layout" +msgstr "" + +#: Hud.py:158 +msgid "Reposition StatWindows" +msgstr "" + +#: Hud.py:162 +msgid "Show Player Stats" +msgstr "" + +#: Hud.py:167 Hud.py:236 +msgid "For This Blind Level Only" +msgstr "" + +#: Hud.py:172 Hud.py:241 +msgid "For Multiple Blind Levels:" +msgstr "" + +#: Hud.py:175 Hud.py:244 +msgid " 0.5 to 2.0 x Current Blinds" +msgstr "" + +#: Hud.py:180 Hud.py:249 +msgid " 0.33 to 3.0 x Current Blinds" +msgstr "" + +#: Hud.py:185 Hud.py:254 +msgid " 0.1 to 10 x Current Blinds" +msgstr "" + +#: Hud.py:190 Hud.py:259 +msgid " All Levels" +msgstr "" + +#: Hud.py:195 Hud.py:264 +msgid "For #Seats:" +msgstr "" + +#: Hud.py:198 Hud.py:267 +msgid " Any Number" +msgstr "" + +#: Hud.py:203 Hud.py:272 +msgid " Custom" +msgstr "" + +#: Hud.py:208 Hud.py:277 +msgid " Exact" +msgstr "" + +#: Hud.py:213 Hud.py:282 +msgid "Since:" +msgstr "" + +#: Hud.py:216 Hud.py:285 +msgid " All Time" +msgstr "" + +#: Hud.py:221 Hud.py:290 +msgid " Session" +msgstr "" + +#: Hud.py:226 Hud.py:295 +msgid " %s Days" +msgstr "" + +#: Hud.py:231 +msgid "Show Opponent Stats" +msgstr "" + +#: Hud.py:353 +msgid "Debug StatWindows" +msgstr "" + +#: Hud.py:357 +msgid "Set max seats" +msgstr "" + +#: Hud.py:543 +msgid "Updating config file" +msgstr "" + +#: Hud.py:552 +msgid "" +"No layout found for %d-max games for site %s\n" +msgstr "" + +#: Hud.py:566 +msgid "" +"exception in Hud.adj_seats\n" +"\n" +msgstr "" + +#: Hud.py:567 +msgid "error is %s" +msgstr "" + +#: Hud.py:574 +msgid "" +"Error finding actual seat.\n" +msgstr "" + +#: Hud.py:590 +msgid "" +"------------------------------------------------------------\n" +"Creating hud from hand %s\n" +msgstr "" + +#: Hud.py:639 +msgid "KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric" +msgstr "" + +#: Hud.py:640 +msgid "(btw, the key was %s and statd is %s" +msgstr "" + +#: Hud.py:947 +msgid "" +"Fake main window, blah blah, blah\n" +"blah, blah" +msgstr "" + +#: Hud.py:955 +msgid "Table not found." +msgstr "" + +#: ImapFetcher.py:54 +msgid "response to logging in:" +msgstr "" + +#: ImapFetcher.py:85 +msgid "completed running Imap import, closing server connection" +msgstr "" + +#: Mucked.py:327 +msgid "No Name" +msgstr "" + +#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +msgid "determineGameType: Unable to recognise gametype from: '%s'" +msgstr "" + +#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +msgid "determineGameType: Raising FpdbParseError" +msgstr "" + +#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +msgid "Unable to recognise gametype from: '%s'" +msgstr "" + +#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +msgid "readButton: not found" +msgstr "" + +#: OnGameToFpdb.py:250 +msgid "readBlinds starting" +msgstr "" + +#: OnGameToFpdb.py:254 +msgid "re_postSB failed, hand=" +msgstr "" + +#: OnGameToFpdb.py:257 +msgid "readBlinds in noSB exception" +msgstr "" + +#: OnGameToFpdb.py:265 PokerStarsToFpdb.py:358 +msgid "reading antes" +msgstr "" + +#: Options.py:40 +msgid "If passed error output will go to the console rather than ." +msgstr "" + +#: Options.py:43 +msgid "Overrides the default database name" +msgstr "" + +#: Options.py:46 +msgid "Specifies a configuration file." +msgstr "" + +#: Options.py:49 +msgid "Indicates program was restarted with a different path (only allowed once)." +msgstr "" + +#: Options.py:52 +msgid "Input file" +msgstr "" + +#: Options.py:55 +msgid "Module name for Hand History Converter" +msgstr "" + +#: Options.py:59 +msgid "Error logging level:" +msgstr "" + +#: Options.py:62 +msgid "Print version information and exit." +msgstr "" + +#: Options.py:73 +msgid "press enter to end" +msgstr "" + +#: P5sResultsParser.py:10 +msgid "You need to manually enter the playername" +msgstr "" + +#: PartyPokerToFpdb.py:215 +msgid "Cannot fetch field '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:219 +msgid "Unknown limit '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:224 +msgid "Unknown game type '%s'" +msgstr "" + +#: PartyPokerToFpdb.py:258 +msgid "Cannot read HID for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:263 +msgid "Cannot read Handinfo for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:268 +msgid "Cannot read GameType for current hand" +msgstr "" + +#: PartyPokerToFpdb.py:479 +msgid "Unimplemented readAction: '%s' '%s'" +msgstr "" + +#: PokerStarsSummary.py:72 +msgid "didn't recognise buyin currency in:" +msgstr "" + +#: PokerStarsSummary.py:112 +msgid "in not result starttime" +msgstr "" + +#: PokerStarsToFpdb.py:221 +msgid "Lim_Blinds has no lookup for '%s'" +msgstr "" + +#: PokerStarsToFpdb.py:273 +msgid "failed to detect currency" +msgstr "" + +#: Stats.py:103 +msgid "exception getting stat %s for player %s %s" +msgstr "" + +#: Stats.py:104 +msgid "Stats.do_stat result = %s" +msgstr "" + +#: Stats.py:113 +msgid "error: %s" +msgstr "" + +#: Stats.py:132 Stats.py:133 +msgid "Total Profit" +msgstr "" + +#: Stats.py:154 Stats.py:161 +msgid "Voluntarily Put In Pot Pre-Flop%" +msgstr "" + +#: Stats.py:174 Stats.py:182 +msgid "Pre-Flop Raise %" +msgstr "" + +#: Stats.py:195 Stats.py:203 +msgid "% went to showdown" +msgstr "" + +#: Stats.py:216 Stats.py:224 +msgid "% won money at showdown" +msgstr "" + +#: Stats.py:237 Stats.py:246 +msgid "profit/100hands" +msgstr "" + +#: Stats.py:240 +msgid "exception calcing p/100: 100 * %d / %d" +msgstr "" + +#: Stats.py:259 Stats.py:268 +msgid "big blinds/100 hands" +msgstr "" + +#: Stats.py:281 Stats.py:290 +msgid "Big Bets/100 hands" +msgstr "" + +#: Stats.py:284 +msgid "exception calcing BB/100: " +msgstr "" + +#: Stats.py:304 Stats.py:315 +msgid "Flop Seen %" +msgstr "" + +#: Stats.py:338 Stats.py:346 +msgid "number hands seen" +msgstr "" + +#: Stats.py:359 Stats.py:367 +msgid "folded flop/4th" +msgstr "" + +#: Stats.py:380 +msgid "% steal attempted" +msgstr "" + +#: Stats.py:395 Stats.py:402 +msgid "% folded SB to steal" +msgstr "" + +#: Stats.py:414 Stats.py:421 +msgid "% folded BB to steal" +msgstr "" + +#: Stats.py:436 Stats.py:443 +msgid "% folded blind to steal" +msgstr "" + +#: Stats.py:455 Stats.py:462 +msgid "% 3/4 Bet preflop/3rd" +msgstr "" + +#: Stats.py:474 Stats.py:481 +msgid "% won$/saw flop/4th" +msgstr "" + +#: Stats.py:493 Stats.py:500 +msgid "Aggression Freq flop/4th" +msgstr "" + +#: Stats.py:512 Stats.py:519 +msgid "Aggression Freq turn/5th" +msgstr "" + +#: Stats.py:531 Stats.py:538 +msgid "Aggression Freq river/6th" +msgstr "" + +#: Stats.py:550 Stats.py:557 +msgid "Aggression Freq 7th" +msgstr "" + +#: Stats.py:576 Stats.py:583 +msgid "Post-Flop Aggression Freq" +msgstr "" + +#: Stats.py:604 Stats.py:611 +msgid "Aggression Freq" +msgstr "" + +#: Stats.py:630 Stats.py:637 +msgid "Aggression Factor" +msgstr "" + +#: Stats.py:654 Stats.py:661 +msgid "% continuation bet " +msgstr "" + +#: Stats.py:673 Stats.py:680 +msgid "% continuation bet flop/4th" +msgstr "" + +#: Stats.py:692 Stats.py:699 +msgid "% continuation bet turn/5th" +msgstr "" + +#: Stats.py:711 Stats.py:718 +msgid "% continuation bet river/6th" +msgstr "" + +#: Stats.py:730 Stats.py:737 +msgid "% continuation bet 7th" +msgstr "" + +#: Stats.py:749 Stats.py:756 +msgid "% fold frequency flop/4th" +msgstr "" + +#: Stats.py:768 Stats.py:775 +msgid "% fold frequency turn/5th" +msgstr "" + +#: Stats.py:787 Stats.py:794 +msgid "% fold frequency river/6th" +msgstr "" + +#: Stats.py:806 Stats.py:813 +msgid "% fold frequency 7th" +msgstr "" + +#: Stats.py:833 +msgid "Example stats, player = %s hand = %s:" +msgstr "" + +#: Stats.py:866 +msgid "" +"\n" +"\n" +"Legal stats:" +msgstr "" + +#: Stats.py:867 +msgid "" +"(add _0 to name to display with 0 decimal places, _1 to display with 1, etc)\n" +msgstr "" + +#: Tables.py:234 +msgid "Found unknown table = %s" +msgstr "" + +#: Tables.py:261 +msgid "attach to window" +msgstr "" + +#: Tables_Demo.py:72 +msgid "Fake HUD Main Window" +msgstr "" + +#: Tables_Demo.py:95 +msgid "enter table name to find: " +msgstr "" + +#: Tables_Demo.py:120 +msgid "calling main" +msgstr "" + +#: TournamentTracker.py:50 +msgid "Note: error output is being diverted to fpdb-error-log.txt and HUD-error.txt. Any major error will be reported there _only_." +msgstr "" + +#: TournamentTracker.py:111 +msgid "tournament edit window=" +msgstr "" + +#: TournamentTracker.py:114 +msgid "FPDB Tournament Entry" +msgstr "" + +#: TournamentTracker.py:154 +msgid "Closing this window will stop the Tournament Tracker" +msgstr "" + +#: TournamentTracker.py:156 +msgid "Enter Tournament" +msgstr "" + +#: TournamentTracker.py:161 +msgid "FPDB Tournament Tracker" +msgstr "" + +#: TournamentTracker.py:172 +msgid "Edit" +msgstr "" + +#: TournamentTracker.py:175 +msgid "Rebuy" +msgstr "" + +#: TournamentTracker.py:274 +msgid "db error: skipping " +msgstr "" + +#: TournamentTracker.py:276 +msgid "" +"Database error %s in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:285 +msgid "could not find tournament: skipping" +msgstr "" + +#: TournamentTracker.py:286 +msgid "" +"Could not find tournament %d in hand %d. Skipping.\n" +msgstr "" + +#: TournamentTracker.py:309 +msgid "" +"table name %s not found, skipping.\n" +msgstr "" + +#: TournamentTracker.py:316 +msgid "" +"tournament tracker starting\n" +msgstr "" + +#: TourneyFilters.py:61 +msgid "Tourney Type" +msgstr "" + +#: TourneyFilters.py:88 +msgid "setting numTourneys:" +msgstr "" + +#: TourneySummary.py:136 +msgid "END TIME" +msgstr "" + +#: TourneySummary.py:137 +msgid "TOURNEY NAME" +msgstr "" + +#: TourneySummary.py:138 +msgid "TOURNEY NO" +msgstr "" + +#: TourneySummary.py:143 +msgid "CURRENCY" +msgstr "" + +#: TourneySummary.py:146 +msgid "ENTRIES" +msgstr "" + +#: TourneySummary.py:147 +msgid "SPEED" +msgstr "" + +#: TourneySummary.py:148 +msgid "PRIZE POOL" +msgstr "" + +#: TourneySummary.py:149 +msgid "STARTING CHIP COUNT" +msgstr "" + +#: TourneySummary.py:151 +msgid "REBUY" +msgstr "" + +#: TourneySummary.py:152 +msgid "ADDON" +msgstr "" + +#: TourneySummary.py:153 +msgid "KO" +msgstr "" + +#: TourneySummary.py:154 +msgid "MATRIX" +msgstr "" + +#: TourneySummary.py:155 +msgid "MATRIX ID PROCESSED" +msgstr "" + +#: TourneySummary.py:156 +msgid "SHOOTOUT" +msgstr "" + +#: TourneySummary.py:157 +msgid "MATRIX MATCH ID" +msgstr "" + +#: TourneySummary.py:158 +msgid "SUB TOURNEY BUY IN" +msgstr "" + +#: TourneySummary.py:159 +msgid "SUB TOURNEY FEE" +msgstr "" + +#: TourneySummary.py:160 +msgid "REBUY CHIPS" +msgstr "" + +#: TourneySummary.py:161 +msgid "ADDON CHIPS" +msgstr "" + +#: TourneySummary.py:162 +msgid "REBUY COST" +msgstr "" + +#: TourneySummary.py:163 +msgid "ADDON COST" +msgstr "" + +#: TourneySummary.py:164 +msgid "TOTAL REBUYS" +msgstr "" + +#: TourneySummary.py:165 +msgid "TOTAL ADDONS" +msgstr "" + +#: TourneySummary.py:168 +msgid "SNG" +msgstr "" + +#: TourneySummary.py:169 +msgid "SATELLITE" +msgstr "" + +#: TourneySummary.py:170 +msgid "DOUBLE OR NOTHING" +msgstr "" + +#: TourneySummary.py:171 +msgid "GUARANTEE" +msgstr "" + +#: TourneySummary.py:172 +msgid "ADDED" +msgstr "" + +#: TourneySummary.py:173 +msgid "ADDED CURRENCY" +msgstr "" + +#: TourneySummary.py:174 +msgid "COMMENT" +msgstr "" + +#: TourneySummary.py:175 +msgid "COMMENT TIMESTAMP" +msgstr "" + +#: TourneySummary.py:178 +msgid "PLAYER IDS" +msgstr "" + +#: TourneySummary.py:180 +msgid "TOURNEYS PLAYERS IDS" +msgstr "" + +#: TourneySummary.py:181 +msgid "RANKS" +msgstr "" + +#: TourneySummary.py:182 +msgid "WINNINGS" +msgstr "" + +#: TourneySummary.py:183 +msgid "WINNINGS CURRENCY" +msgstr "" + +#: TourneySummary.py:184 +msgid "COUNT REBUYS" +msgstr "" + +#: TourneySummary.py:185 +msgid "COUNT ADDONS" +msgstr "" + +#: TourneySummary.py:186 +msgid "NB OF KO" +msgstr "" + +#: TourneySummary.py:233 +msgid "Tourney Insert/Update done" +msgstr "" + +#: TourneySummary.py:253 +msgid "addPlayer: rank:%s - name : '%s' - Winnings (%s)" +msgstr "" + +#: TourneySummary.py:280 +msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" +msgstr "" + +#: WinTables.py:82 +msgid "Window %s not found. Skipping." +msgstr "" + +#: WinTables.py:85 +msgid "self.window doesn't exist? why?" +msgstr "" + +#: fpdb.pyw:48 +msgid "" +" - press return to continue\n" +msgstr "" + +#: fpdb.pyw:55 +msgid "" +"\n" +"python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" +msgstr "" + +#: fpdb.pyw:56 fpdb.pyw:68 fpdb.pyw:90 +msgid "Press ENTER to continue." +msgstr "" + +#: fpdb.pyw:67 +msgid "We appear to be running in Windows, but the Windows Python Extensions are not loading. Please install the PYWIN32 package from http://sourceforge.net/projects/pywin32/" +msgstr "" + +#: fpdb.pyw:89 +msgid "Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org." +msgstr "" + +#: fpdb.pyw:247 +msgid "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, sqlcoder, Bostik, and others" +msgstr "" + +#: fpdb.pyw:248 +msgid "You are free to change, and distribute original or changed versions of fpdb within the rules set out by the license" +msgstr "" + +#: fpdb.pyw:249 +msgid "Please see fpdb's start screen for license information" +msgstr "" + +#: fpdb.pyw:253 +msgid "and others" +msgstr "" + +#: fpdb.pyw:259 +msgid "Operating System" +msgstr "" + +#: fpdb.pyw:279 +msgid "Your config file is: " +msgstr "" + +#: fpdb.pyw:284 +msgid "Version Information:" +msgstr "" + +#: fpdb.pyw:291 +msgid "Threads: " +msgstr "" + +#: fpdb.pyw:314 +msgid "Updated preferences have not been loaded because windows are open. Re-start fpdb to load them." +msgstr "" + +#: fpdb.pyw:324 +msgid "Maintain Databases" +msgstr "" + +#: fpdb.pyw:334 +msgid "saving updated db data" +msgstr "" + +#: fpdb.pyw:341 +msgid "guidb response was " +msgstr "" + +#: fpdb.pyw:347 +msgid "Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option." +msgstr "" + +#: fpdb.pyw:350 +msgid "Number of Hands: " +msgstr "" + +#: fpdb.pyw:351 +msgid "" +"\n" +"Number of Tourneys: " +msgstr "" + +#: fpdb.pyw:352 +msgid "" +"\n" +"Number of TourneyTypes: " +msgstr "" + +#: fpdb.pyw:353 +msgid "Database Statistics" +msgstr "" + +#: fpdb.pyw:362 +msgid "HUD Configurator - choose category" +msgstr "" + +#: fpdb.pyw:368 +msgid "Please select the game category for which you want to configure HUD stats:" +msgstr "" + +#: fpdb.pyw:420 +msgid "HUD Configurator - please choose your stats" +msgstr "" + +#: fpdb.pyw:426 +msgid "Please choose the stats you wish to use in the below table." +msgstr "" + +#: fpdb.pyw:430 +msgid "Note that you may not select any stat more than once or it will crash." +msgstr "" + +#: fpdb.pyw:434 +msgid "It is not currently possible to select \"empty\" or anything else to that end." +msgstr "" + +#: fpdb.pyw:438 +msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." +msgstr "" + +#: fpdb.pyw:545 +msgid "Confirm deleting and recreating tables" +msgstr "" + +#: fpdb.pyw:546 +msgid "Please confirm that you want to (re-)create the tables. If there already are tables in the database " +msgstr "" + +#: fpdb.pyw:547 +msgid "" +" they will be deleted.\n" +"This may take a while." +msgstr "" + +#: fpdb.pyw:572 +msgid "User cancelled recreating tables" +msgstr "" + +#: fpdb.pyw:579 +msgid "Please confirm that you want to re-create the HUD cache." +msgstr "" + +#: fpdb.pyw:587 +msgid " Hero's cache starts: " +msgstr "" + +#: fpdb.pyw:601 +msgid " Villains' cache starts: " +msgstr "" + +#: fpdb.pyw:614 +msgid " Rebuilding HUD Cache ... " +msgstr "" + +#: fpdb.pyw:622 +msgid "User cancelled rebuilding hud cache" +msgstr "" + +#: fpdb.pyw:634 +msgid "Confirm rebuilding database indexes" +msgstr "" + +#: fpdb.pyw:635 +msgid "Please confirm that you want to rebuild the database indexes." +msgstr "" + +#: fpdb.pyw:643 +msgid " Rebuilding Indexes ... " +msgstr "" + +#: fpdb.pyw:650 +msgid " Cleaning Database ... " +msgstr "" + +#: fpdb.pyw:655 +msgid " Analyzing Database ... " +msgstr "" + +#: fpdb.pyw:660 +msgid "User cancelled rebuilding db indexes" +msgstr "" + +#: fpdb.pyw:755 +msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" +msgstr "" + +#: fpdb.pyw:758 +msgid "Fatal Error - Config File Missing" +msgstr "" + +#: fpdb.pyw:760 +msgid "Please copy the config file from the docs folder to:" +msgstr "" + +#: fpdb.pyw:768 +msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" +msgstr "" + +#: fpdb.pyw:825 +msgid "_Main" +msgstr "" + +#: fpdb.pyw:826 fpdb.pyw:854 +msgid "_Quit" +msgstr "" + +#: fpdb.pyw:827 +msgid "L" +msgstr "" + +#: fpdb.pyw:827 +msgid "_Load Profile (broken)" +msgstr "" + +#: fpdb.pyw:828 +msgid "S" +msgstr "" + +#: fpdb.pyw:828 +msgid "_Save Profile (todo)" +msgstr "" + +#: fpdb.pyw:829 +msgid "F" +msgstr "" + +#: fpdb.pyw:829 +msgid "Pre_ferences" +msgstr "" + +#: fpdb.pyw:830 +msgid "_Import" +msgstr "" + +#: fpdb.pyw:831 +msgid "_Set HandHistory Archive Directory" +msgstr "" + +#: fpdb.pyw:832 +msgid "B" +msgstr "" + +#: fpdb.pyw:833 +msgid "I" +msgstr "" + +#: fpdb.pyw:833 +msgid "_Import through eMail/IMAP" +msgstr "" + +#: fpdb.pyw:834 +msgid "_Viewers" +msgstr "" + +#: fpdb.pyw:835 +msgid "A" +msgstr "" + +#: fpdb.pyw:835 +msgid "_Auto Import and HUD" +msgstr "" + +#: fpdb.pyw:836 +msgid "H" +msgstr "" + +#: fpdb.pyw:836 +msgid "_HUD Configurator" +msgstr "" + +#: fpdb.pyw:837 +msgid "G" +msgstr "" + +#: fpdb.pyw:837 +msgid "_Graphs" +msgstr "" + +#: fpdb.pyw:838 +msgid "P" +msgstr "" + +#: fpdb.pyw:838 +msgid "Ring _Player Stats (tabulated view, not on pgsql)" +msgstr "" + +#: fpdb.pyw:839 +msgid "T" +msgstr "" + +#: fpdb.pyw:839 +msgid "_Tourney Player Stats (tabulated view, not on pgsql)" +msgstr "" + +#: fpdb.pyw:840 +msgid "Tourney _Viewer" +msgstr "" + +#: fpdb.pyw:841 +msgid "O" +msgstr "" + +#: fpdb.pyw:841 +msgid "P_ositional Stats (tabulated view, not on sqlite)" +msgstr "" + +#: fpdb.pyw:842 fpdb.pyw:1058 +msgid "Session Stats" +msgstr "" + +#: fpdb.pyw:843 +msgid "_Database" +msgstr "" + +#: fpdb.pyw:844 +msgid "_Maintain Databases" +msgstr "" + +#: fpdb.pyw:845 +msgid "Create or Recreate _Tables" +msgstr "" + +#: fpdb.pyw:846 +msgid "Rebuild HUD Cache" +msgstr "" + +#: fpdb.pyw:847 +msgid "Rebuild DB Indexes" +msgstr "" + +#: fpdb.pyw:848 +msgid "_Statistics" +msgstr "" + +#: fpdb.pyw:849 +msgid "Dump Database to Textfile (takes ALOT of time)" +msgstr "" + +#: fpdb.pyw:850 +msgid "_Help" +msgstr "" + +#: fpdb.pyw:851 +msgid "_Log Messages" +msgstr "" + +#: fpdb.pyw:852 +msgid "A_bout, License, Copying" +msgstr "" + +#: fpdb.pyw:870 +msgid "" +"There is an error in your config file\n" +msgstr "" + +#: fpdb.pyw:871 +msgid "" +"\n" +"\n" +"Error is: " +msgstr "" + +#: fpdb.pyw:872 +msgid "CONFIG FILE ERROR" +msgstr "" + +#: fpdb.pyw:876 +msgid "" +"Logfile is %s\n" +msgstr "" + +#: fpdb.pyw:878 +msgid "Config file" +msgstr "" + +#: fpdb.pyw:879 +msgid "" +"has been created at:\n" +"%s.\n" +msgstr "" + +#: fpdb.pyw:880 +msgid "Edit your screen_name and hand history path in the supported_sites " +msgstr "" + +#: fpdb.pyw:881 +msgid "section of the Preferences window (Main menu) before trying to import hands." +msgstr "" + +#: fpdb.pyw:903 +msgid "Connected to SQLite: %s" +msgstr "" + +#: fpdb.pyw:907 +msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " +msgstr "" + +#: fpdb.pyw:908 +msgid "Please check that the MySQL service has been started" +msgstr "" + +#: fpdb.pyw:912 +msgid "Postgres client reports: Unable to connect - " +msgstr "" + +#: fpdb.pyw:913 +msgid "Please check that the Postgres service has been started" +msgstr "" + +#: fpdb.pyw:937 +msgid "Strong Warning - Invalid database version" +msgstr "" + +#: fpdb.pyw:939 +msgid "An invalid DB version or missing tables have been detected." +msgstr "" + +#: fpdb.pyw:943 +msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." +msgstr "" + +#: fpdb.pyw:947 +msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." +msgstr "" + +#: fpdb.pyw:960 +msgid "Status: Connected to %s database named %s on host %s" +msgstr "" + +#: fpdb.pyw:970 +msgid "" +"\n" +"Global lock taken by" +msgstr "" + +#: fpdb.pyw:973 +msgid "" +"\n" +"Failed to get global lock, it is currently held by" +msgstr "" + +#: fpdb.pyw:983 +msgid "Quitting normally" +msgstr "" + +#: fpdb.pyw:1007 +msgid "" +"Global lock released.\n" +msgstr "" + +#: fpdb.pyw:1014 +msgid "Auto Import" +msgstr "" + +#: fpdb.pyw:1021 +msgid "Bulk Import" +msgstr "" + +#: fpdb.pyw:1027 +msgid "eMail Import" +msgstr "" + +#: fpdb.pyw:1034 +msgid "Ring Player Stats" +msgstr "" + +#: fpdb.pyw:1040 +msgid "Tourney Player Stats" +msgstr "" + +#: fpdb.pyw:1046 +msgid "Tourney Viewer" +msgstr "" + +#: fpdb.pyw:1052 +msgid "Positional Stats" +msgstr "" + +#: fpdb.pyw:1062 +msgid "" +"Fpdb needs translators!\n" +"If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" +"\n" +"Welcome to Fpdb!\n" +"To be notified of new snapshots and releases go to https://lists.sourceforge.net/lists/listinfo/fpdb-announce and subscribe.\n" +"If you want to follow development more closely go to https://lists.sourceforge.net/lists/listinfo/fpdb-main and subscribe.\n" +"\n" +"This program is currently in an alpha-state, so our database format is still sometimes changed.\n" +"You should therefore always keep your hand history files so that you can re-import after an update, if necessary.\n" +"\n" +"For documentation please visit our website/wiki at http://fpdb.sourceforge.net/.\n" +"If you need help click on Contact - Get Help on our website.\n" +"Please note that default.conf is no longer needed nor used, all configuration now happens in HUD_config.xml.\n" +"\n" +"This program is free/libre open source software licensed partially under the AGPL3, and partially under GPL2 or later.\n" +"The Windows installer package includes code licensed under the MIT license.\n" +"You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." +msgstr "" + +#: fpdb.pyw:1079 +msgid "Help" +msgstr "" + +#: fpdb.pyw:1086 +msgid "Graphs" +msgstr "" + +#: fpdb.pyw:1138 +msgid "" +"\n" +"Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" +msgstr "" + +#: fpdb.pyw:1167 +msgid "fpdb starting ..." +msgstr "" + +#: fpdb.pyw:1224 +msgid "FPDB WARNING" +msgstr "" + +#: fpdb.pyw:1243 +msgid "" +"WARNING: Unable to find output hh directory %s\n" +"\n" +" Press YES to create this directory, or NO to select a new one." +msgstr "" + +#: fpdb.pyw:1251 +msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." +msgstr "" + +#: fpdb.pyw:1256 +msgid "Select HH Output Directory" +msgstr "" + +#: fpdb_import.py:60 +msgid "Import database module: MySQLdb not found" +msgstr "" + +#: fpdb_import.py:67 +msgid "Import database module: psycopg2 not found" +msgstr "" + +#: fpdb_import.py:189 +msgid "Database ID for %s not found" +msgstr "" + +#: fpdb_import.py:191 +msgid "[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet" +msgstr "" + +#: fpdb_import.py:227 +msgid "Attempted to add non-directory: '%s' as an import directory" +msgstr "" + +#: fpdb_import.py:237 +msgid "Started at %s -- %d files to import. indexes: %s" +msgstr "" + +#: fpdb_import.py:246 +msgid "No need to drop indexes." +msgstr "" + +#: fpdb_import.py:265 +msgid "writers finished already" +msgstr "" + +#: fpdb_import.py:268 +msgid "waiting for writers to finish ..." +msgstr "" + +#: fpdb_import.py:278 +msgid " ... writers finished" +msgstr "" + +#: fpdb_import.py:284 +msgid "No need to rebuild indexes." +msgstr "" + +#: fpdb_import.py:288 +msgid "No need to rebuild hudcache." +msgstr "" + +#: fpdb_import.py:313 +msgid "sending finish msg qlen =" +msgstr "" + +#: fpdb_import.py:439 fpdb_import.py:441 +msgid "Converting " +msgstr "" + +#: fpdb_import.py:477 +msgid "Hand processed but empty" +msgstr "" + +#: fpdb_import.py:490 +msgid "fpdb_import: sending hand to hud" +msgstr "" + +#: fpdb_import.py:493 +msgid "Failed to send hand to HUD: %s" +msgstr "" + +#: fpdb_import.py:508 +msgid "Unknown filter filter_name:'%s' in filter:'%s'" +msgstr "" + +#: fpdb_import.py:519 +msgid "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem." +msgstr "" + +#: fpdb_import.py:520 +msgid "Filename:" +msgstr "" + +#: fpdb_import.py:521 +msgid "Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:" +msgstr "" + +#: fpdb_import.py:523 +msgid "Hand logged to hand-errors.txt" +msgstr "" + +#: fpdb_import.py:531 +msgid "CLI for fpdb_import is now available as CliFpdb.py" +msgstr "" + +#: interlocks.py:61 +msgid "lock already held by:" +msgstr "" + +#: test_Database.py:50 +msgid "DEBUG: Testing variance function" +msgstr "" + +#: test_Database.py:51 +msgid "DEBUG: result: %s expecting: 0.666666 (result-expecting ~= 0.0): %s" +msgstr "" + +#: windows_make_bats.py:39 +msgid "" +"\n" +"This script is only for windows\n" +msgstr "" + +#: windows_make_bats.py:66 +msgid "" +"\n" +"no gtk directories found in your path - install gtk or edit the path manually\n" +msgstr "" + diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index def83ac3..d6859904 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -4,14 +4,14 @@ # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-23 05:27+CEST\n" +"Project-Id-Version: 0.20.905 plus git\n" +"POT-Creation-Date: 2010-08-25 13:31+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" +"Content-Transfer-Encoding: UTF-8\n" "Generated-By: pygettext.py 1.5\n" @@ -23,31 +23,31 @@ msgstr "" msgid "Output being written to" msgstr "" -#: BetfairToFpdb.py:84 +#: BetfairToFpdb.py:83 msgid "GameInfo regex did not match" msgstr "" -#: BetfairToFpdb.py:115 +#: BetfairToFpdb.py:114 msgid "Didn't match re_HandInfo" msgstr "" -#: BetfairToFpdb.py:171 +#: BetfairToFpdb.py:170 msgid "No bringin found" msgstr "" -#: BetfairToFpdb.py:207 OnGameToFpdb.py:328 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 msgid "parse input hand history" msgstr "" -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 msgid "output translation to" msgstr "" -#: BetfairToFpdb.py:232 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 msgid "follow (tail -f) the input" msgstr "" @@ -709,7 +709,7 @@ msgstr "" msgid "auto" msgstr "" -#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:399 +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:398 msgid "don't drop" msgstr "" @@ -793,11 +793,11 @@ msgstr "" msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" msgstr "" -#: GuiBulkImport.py:386 +#: GuiBulkImport.py:385 msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "" -#: GuiBulkImport.py:410 +#: GuiBulkImport.py:409 msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" msgstr "" @@ -905,22 +905,22 @@ msgid "" " and HUD are NOT affected by this problem." msgstr "" -#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:355 +#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:354 msgid "***Error: " msgstr "" -#: GuiGraphViewer.py:171 GuiPositionalStats.py:178 GuiRingPlayerStats.py:252 -#: GuiSessionViewer.py:204 GuiTourneyPlayerStats.py:277 +#: GuiGraphViewer.py:171 GuiPositionalStats.py:177 GuiRingPlayerStats.py:251 +#: GuiSessionViewer.py:203 GuiTourneyPlayerStats.py:277 msgid "No sites selected - defaulting to PokerStars" msgstr "" -#: GuiGraphViewer.py:176 GuiPositionalStats.py:181 GuiRingPlayerStats.py:255 -#: GuiSessionViewer.py:207 GuiTourneyPlayerStats.py:280 +#: GuiGraphViewer.py:176 GuiPositionalStats.py:180 GuiRingPlayerStats.py:254 +#: GuiSessionViewer.py:206 GuiTourneyPlayerStats.py:280 msgid "No player ids found" msgstr "" -#: GuiGraphViewer.py:181 GuiPositionalStats.py:184 GuiRingPlayerStats.py:258 -#: GuiSessionViewer.py:210 +#: GuiGraphViewer.py:181 GuiPositionalStats.py:183 GuiRingPlayerStats.py:257 +#: GuiSessionViewer.py:209 msgid "No limits found" msgstr "" @@ -1030,11 +1030,11 @@ msgstr "" msgid "Log Messages" msgstr "" -#: GuiPositionalStats.py:147 +#: GuiPositionalStats.py:146 msgid "DEBUG: activesite set to %s" msgstr "" -#: GuiPositionalStats.py:333 +#: GuiPositionalStats.py:332 msgid "Positional Stats page displayed in %4.2f seconds" msgstr "" @@ -1054,32 +1054,32 @@ msgstr "" msgid "Preferences" msgstr "" -#: GuiRingPlayerStats.py:323 GuiSessionViewer.py:249 +#: GuiRingPlayerStats.py:322 GuiSessionViewer.py:248 #: GuiTourneyPlayerStats.py:252 msgid "Stats page displayed in %4.2f seconds" msgstr "" -#: GuiRingPlayerStats.py:370 +#: GuiRingPlayerStats.py:369 msgid "***sortnums error: " msgstr "" -#: GuiRingPlayerStats.py:392 +#: GuiRingPlayerStats.py:391 msgid "***sortcols error: " msgstr "" -#: GuiRingPlayerStats.py:683 +#: GuiRingPlayerStats.py:682 msgid "Detailed Filters" msgstr "" -#: GuiRingPlayerStats.py:692 +#: GuiRingPlayerStats.py:691 msgid "Hand Filters:" msgstr "" -#: GuiRingPlayerStats.py:705 +#: GuiRingPlayerStats.py:704 msgid "between" msgstr "" -#: GuiRingPlayerStats.py:706 +#: GuiRingPlayerStats.py:705 msgid "and" msgstr "" @@ -1091,15 +1091,15 @@ msgstr "" msgid "ImportError: %s" msgstr "" -#: GuiSessionViewer.py:90 +#: GuiSessionViewer.py:89 msgid "Hand Breakdown for all levels listed above" msgstr "" -#: GuiSessionViewer.py:376 +#: GuiSessionViewer.py:375 msgid "Session candlestick graph" msgstr "" -#: GuiSessionViewer.py:379 +#: GuiSessionViewer.py:378 msgid "Sessions" msgstr "" @@ -2671,7 +2671,7 @@ msgid "P" msgstr "" #: fpdb.pyw:838 -msgid "Ring _Player Stats (tabulated view)" +msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "" #: fpdb.pyw:839 @@ -2679,7 +2679,7 @@ msgid "T" msgstr "" #: fpdb.pyw:839 -msgid "_Tourney Player Stats (tabulated view)" +msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "" #: fpdb.pyw:840 @@ -3016,7 +3016,7 @@ msgstr "" msgid "CLI for fpdb_import is now available as CliFpdb.py" msgstr "" -#: interlocks.py:49 +#: interlocks.py:61 msgid "lock already held by:" msgstr "" diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 8112617b..784b8940 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -4,8 +4,8 @@ # msgid "" msgstr "" -"Project-Id-Version: 0.20.904\n" -"POT-Creation-Date: 2010-08-17 20:08+CEST\n" +"Project-Id-Version: 0.20.905 plus git\n" +"POT-Creation-Date: 2010-08-25 13:31+CEST\n" "PO-Revision-Date: 2010-08-25 02:55+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -36,7 +36,7 @@ msgstr "re_HandInfo nem illeszkedik" msgid "No bringin found" msgstr "Beülő nem található" -#: BetfairToFpdb.py:206 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "DEBUG: nem ismert readAction: '%s' '%s'" @@ -64,7 +64,11 @@ msgstr "Nem sikerült konvertálni: \"%s\"\n" msgid "Could not encode: \"%s\"\n" msgstr "Nem sikerült kódolni: \"%s\"\n" -#: Configuration.py:110 +#: Configuration.py:113 Configuration.py:126 +msgid "Config file has been created at %s.\n" +msgstr "Konfigurációs fájl létrehozva itt: %s.\n" + +#: Configuration.py:125 msgid "" "No %s found\n" " in %s\n" @@ -74,31 +78,27 @@ msgstr "" " itt: %s\n" " vagy itt: %s\n" -#: Configuration.py:111 -msgid "Config file has been created at %s.\n" -msgstr "Konfigurációs fájl létrehozva itt: %s.\n" - -#: Configuration.py:116 Configuration.py:117 +#: Configuration.py:131 Configuration.py:132 msgid "Error copying .example file, cannot fall back. Exiting.\n" msgstr "Hiba a .example fájl másolása közben, nem tudom folytatni. Kilépés.\n" -#: Configuration.py:121 Configuration.py:122 +#: Configuration.py:136 Configuration.py:137 msgid "No %s found, cannot fall back. Exiting.\n" msgstr "%s nem található, nem tudom folytatni. Kilépés.\n" -#: Configuration.py:152 +#: Configuration.py:167 msgid "Default logger initialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:153 +#: Configuration.py:168 msgid "Default logger intialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:164 Database.py:431 Database.py:432 +#: Configuration.py:179 Database.py:438 Database.py:439 msgid "Creating directory: '%s'" msgstr "Könyvtár létrehozása: '%s'" -#: Configuration.py:190 +#: Configuration.py:205 msgid "" "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're " "not on a Mac, please report this problem." @@ -106,27 +106,52 @@ msgstr "" "US-ASCII az alapértelmezett karakterkódolás, CP1252 használata ehelyett.Ha " "nem Mac-et használsz, akkor kérlek jelentsd ezt a problémát." -#: Configuration.py:273 +#: Configuration.py:303 msgid "Loading site" msgstr "Terem betöltése" -#: Configuration.py:511 +#: Configuration.py:520 msgid "config.general: adding %s = %s" msgstr "config.general: %s = %s hozzáadása" -#: Configuration.py:544 Configuration.py:545 +#: Configuration.py:567 Configuration.py:568 msgid "bad number in xalignment was ignored" msgstr "hibás érték az xalignment-ben - figyelmen kívül hagyás" -#: Configuration.py:598 Configuration.py:599 +#: Configuration.py:616 +msgid "missing config section raw_hands" +msgstr "" + +#: Configuration.py:622 +msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:629 +msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:642 +msgid "missing config section raw_tourneys" +msgstr "" + +#: Configuration.py:648 +msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" +msgstr "" + +#: Configuration.py:655 +msgid "" +"Invalid config value for raw_tourneys.compression, defaulting to \"none\"" +msgstr "" + +#: Configuration.py:673 Configuration.py:674 msgid "Configuration file %s not found. Using defaults." msgstr "A %s konfigurációs fájl nem található. Alapértelmezések használata." -#: Configuration.py:615 +#: Configuration.py:690 msgid "Reading configuration file %s" msgstr "%s konfigurációs fájl használata" -#: Configuration.py:616 +#: Configuration.py:691 msgid "" "\n" "Reading configuration file %s\n" @@ -134,7 +159,7 @@ msgstr "" "\n" "%s konfigurációs fájl használata\n" -#: Configuration.py:621 +#: Configuration.py:696 msgid "Error parsing %s. See error log file." msgstr "Hiba a(z) %s olvasása közben. Nézz bele a naplófájlba." @@ -146,307 +171,303 @@ msgstr "SQLAlchemy connection pool használatának kihagyása." msgid "Not using numpy to define variance in sqlite." msgstr "A variancia SQLite-ban való definiálásához nincs használva a NumPy." -#: Database.py:246 +#: Database.py:250 msgid "Creating Database instance, sql = %s" msgstr "Adatbázis-példány létrehozása, sql = %s" -#: Database.py:382 +#: Database.py:389 msgid "*** WARNING UNKNOWN MYSQL ERROR:" msgstr "*** FIGYELEM: ISMERETLEN MYSQL HIBA: " -#: Database.py:436 +#: Database.py:443 msgid "Connecting to SQLite: %(database)s" msgstr "Kapcsolódás a %(database)s SQLite adatbázishoz" -#: Database.py:448 +#: Database.py:455 msgid "Some database functions will not work without NumPy support" msgstr "Néhány adatbázis-funkció nem fog működni NumPy támogatás nélkül" -#: Database.py:469 +#: Database.py:476 msgid "outdated or too new database version (%s) - please recreate tables" msgstr "" "elavult vagy túl új adatbázis verzió (%s) - kérlek hozd létre újra a táblákat" -#: Database.py:475 Database.py:476 +#: Database.py:482 Database.py:483 msgid "Failed to read settings table - recreating tables" msgstr "" "Nem sikerült az olvasás a beállítások táblából - táblák újra létrehozása" -#: Database.py:480 Database.py:481 +#: Database.py:487 Database.py:488 msgid "Failed to read settings table - please recreate tables" msgstr "" "Nem sikerült az olvasás a beállítások táblából - kérlek hozd létre újra a " "táblákat" -#: Database.py:499 -msgid "commit finished ok, i = " -msgstr "a véglegesítés sikeresen befejeződött, i = " - -#: Database.py:502 +#: Database.py:509 msgid "commit %s failed: info=%s value=%s" msgstr "%s. véglegesítés nem sikerült: info=%s érték=%s" -#: Database.py:506 +#: Database.py:513 msgid "commit failed" msgstr "a véglegesítés nem sikerült" -#: Database.py:675 Database.py:704 +#: Database.py:682 Database.py:711 msgid "*** Database Error: " msgstr "*** Adatbázis hiba: " -#: Database.py:701 +#: Database.py:708 msgid "Database: date n hands ago = " msgstr "Adatbázis: n-nel ezelőtti leosztás dátuma = " -#: Database.py:858 +#: Database.py:865 msgid "ERROR: query %s result does not have player_id as first column" msgstr "ERROR: a(z) %s lekérdezés eredményének nem a player_id az első oszlopa" -#: Database.py:900 +#: Database.py:907 msgid "getLastInsertId(): problem fetching insert_id? ret=%d" msgstr "getLastInsertId(): probléma insert_id lekérdezése közben? ret=%d" -#: Database.py:912 +#: Database.py:919 msgid "getLastInsertId(%s): problem fetching lastval? row=%d" msgstr "getLastInsertId(%s): probléma lastval lekérdezése közben? sor=%d" -#: Database.py:919 +#: Database.py:926 msgid "getLastInsertId(): unknown backend: %d" msgstr "getLastInsertId(): ismeretlen backend: %d" -#: Database.py:924 +#: Database.py:931 msgid "*** Database get_last_insert_id error: " msgstr "*** get_last_insert_id adatbázis hiba: " -#: Database.py:978 Database.py:1398 +#: Database.py:985 Database.py:1407 msgid "warning: drop pg fk %s_%s_fkey failed: %s, continuing ..." msgstr "" "figyelem: a(z) %s_%s_fkey pg idegen kulcs eldobása nem sikerült: %s, " "folytatás ..." -#: Database.py:982 Database.py:1402 +#: Database.py:989 Database.py:1411 msgid "warning: constraint %s_%s_fkey not dropped: %s, continuing ..." msgstr "figyelem: a(z) %s_%s_fkey megkötés nem lett eldobva: %s, folytatás ..." -#: Database.py:990 Database.py:1276 +#: Database.py:997 Database.py:1285 msgid "dropping mysql index " msgstr "MySQL index eldobása: " -#: Database.py:996 Database.py:1281 Database.py:1289 Database.py:1296 +#: Database.py:1003 Database.py:1290 Database.py:1298 Database.py:1305 msgid " drop index failed: " msgstr " index eldobása nem sikerült: " -#: Database.py:1001 Database.py:1283 +#: Database.py:1008 Database.py:1292 msgid "dropping pg index " msgstr "pg index eldobása: " -#: Database.py:1014 +#: Database.py:1021 msgid "warning: drop index %s_%s_idx failed: %s, continuing ..." msgstr "" "figyelem: a(z) %s_%s_idx index eldobása nem sikerült: %s, folytatás ..." -#: Database.py:1018 +#: Database.py:1025 msgid "warning: index %s_%s_idx not dropped %s, continuing ..." msgstr "figyelem: a(z) %s_%s_idx index nem lett eldobva: %s, folytatás ..." -#: Database.py:1058 Database.py:1066 Database.py:1329 Database.py:1337 +#: Database.py:1065 Database.py:1073 Database.py:1338 Database.py:1346 msgid "creating foreign key " msgstr "idegen kulcs létrehozása: " -#: Database.py:1064 Database.py:1085 Database.py:1335 +#: Database.py:1071 Database.py:1092 Database.py:1344 msgid " create foreign key failed: " msgstr " idegen kulcs létrehozása sikertelen: " -#: Database.py:1073 Database.py:1344 +#: Database.py:1080 Database.py:1353 msgid " create foreign key failed: " msgstr " idegen kulcs létrehozása sikertelen: " -#: Database.py:1080 +#: Database.py:1087 msgid "creating mysql index " msgstr "MySQL index létrehozása: " -#: Database.py:1089 +#: Database.py:1096 msgid "creating pg index " msgstr "pg index létrehozása: " -#: Database.py:1094 +#: Database.py:1101 msgid " create index failed: " msgstr " index létrehozása nem sikerült: " -#: Database.py:1134 Database.py:1135 +#: Database.py:1141 Database.py:1142 msgid "Finished recreating tables" msgstr "A táblák újra létrehozása befejeződött" -#: Database.py:1172 +#: Database.py:1181 msgid "***Error creating tables: " msgstr "*** Hiba a táblák létrehozása közben: " -#: Database.py:1182 +#: Database.py:1191 msgid "*** Error unable to get databasecursor" msgstr "*** Hiba: nem olvasható a databasecursor" -#: Database.py:1194 Database.py:1205 Database.py:1215 Database.py:1222 +#: Database.py:1203 Database.py:1214 Database.py:1224 Database.py:1231 msgid "***Error dropping tables: " msgstr "*** Hiba a táblák eldobása közben: " -#: Database.py:1220 +#: Database.py:1229 msgid "*** Error in committing table drop" msgstr "*** Hiba a tábla-eldobás véglegesítése közben" -#: Database.py:1234 Database.py:1235 +#: Database.py:1243 Database.py:1244 msgid "Creating mysql index %s %s" msgstr "MySQL index létrehozása: %s %s" -#: Database.py:1240 Database.py:1249 +#: Database.py:1249 Database.py:1258 msgid " create index failed: " msgstr " Index létrehozása nem sikerült: " -#: Database.py:1243 Database.py:1244 +#: Database.py:1252 Database.py:1253 msgid "Creating pgsql index %s %s" msgstr "pgsql index létrehozása: %s %s" -#: Database.py:1251 Database.py:1252 +#: Database.py:1260 Database.py:1261 msgid "Creating sqlite index %s %s" msgstr "SQLite index létrehozása: %s %s" -#: Database.py:1257 +#: Database.py:1266 msgid "Create index failed: " msgstr "Index létrehozása nem sikerült: " -#: Database.py:1259 +#: Database.py:1268 msgid "Unknown database: MySQL, Postgres and SQLite supported" msgstr "Ismeretlen adatbázis: a MySQL, a Postgres és az SQLite támogatott" -#: Database.py:1264 +#: Database.py:1273 msgid "Error creating indexes: " msgstr "Hiba az indexek létrehozása közben: " -#: Database.py:1291 +#: Database.py:1300 msgid "Dropping sqlite index " msgstr "SQLite index eldobása: " -#: Database.py:1298 +#: Database.py:1307 msgid "" "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" msgstr "" "Fpdb csak a MySQL-t, a Postgres-t és az SQLite-ot támogatja. Mit próbáltál " "használni?" -#: Database.py:1312 Database.py:1352 +#: Database.py:1321 Database.py:1361 msgid " set_isolation_level failed: " msgstr " set_isolation_level meghiúsult: " -#: Database.py:1346 Database.py:1405 +#: Database.py:1355 Database.py:1414 msgid "Only MySQL and Postgres supported so far" msgstr "Egyelőre csak a MySQL és a Postgres támogatott" -#: Database.py:1376 +#: Database.py:1385 msgid "dropping mysql foreign key" msgstr "MySQL idegen kulcs eldobása" -#: Database.py:1380 +#: Database.py:1389 msgid " drop failed: " msgstr " az eldobás sikertelen: " -#: Database.py:1383 +#: Database.py:1392 msgid "dropping pg foreign key" msgstr "pg idegen kulcs eldobása" -#: Database.py:1395 +#: Database.py:1404 msgid "dropped pg foreign key %s_%s_fkey, continuing ..." msgstr "%s_%s_fkey pg idegen kulcs eldobva, folytatás ..." -#: Database.py:1496 +#: Database.py:1505 msgid "Rebuild hudcache took %.1f seconds" msgstr "A HUD cache újraépítése %.1f másodpercig tartott" -#: Database.py:1499 Database.py:1532 +#: Database.py:1508 Database.py:1541 msgid "Error rebuilding hudcache:" msgstr "Hiba a HUD cache újraépítése közben:" -#: Database.py:1544 Database.py:1550 +#: Database.py:1553 Database.py:1559 msgid "Error during analyze:" msgstr "Hiba analyze közben:" -#: Database.py:1554 +#: Database.py:1563 msgid "Analyze took %.1f seconds" msgstr "Analyze %1.f másodpercig tartott" -#: Database.py:1564 Database.py:1570 +#: Database.py:1573 Database.py:1579 msgid "Error during vacuum:" msgstr "Hiba vacuum közben:" -#: Database.py:1574 +#: Database.py:1583 msgid "Vacuum took %.1f seconds" msgstr "Vacuum %.1f másodpercig tartott" -#: Database.py:1586 +#: Database.py:1595 msgid "Error during lock_for_insert:" msgstr "Hiba lock_for_insert közben:" -#: Database.py:1959 +#: Database.py:1992 msgid "queue empty too long - writer stopping ..." msgstr "Queue.Empty túl sokáig tart - az írás befejeződik ..." -#: Database.py:1962 +#: Database.py:1995 msgid "writer stopping, error reading queue: " msgstr "az írás megállt, hiba a sor olvasásakor: " -#: Database.py:1987 +#: Database.py:2020 msgid "deadlock detected - trying again ..." msgstr "deadlock történt - újrapróbálás ..." -#: Database.py:1992 +#: Database.py:2025 msgid "too many deadlocks - failed to store hand " msgstr "túl sok deadlock - nem sikerült tárolni a leosztást " -#: Database.py:1996 +#: Database.py:2029 msgid "***Error storing hand: " msgstr "***Hiba a leosztás tárolása közben: " -#: Database.py:2006 +#: Database.py:2039 msgid "db writer finished: stored %d hands (%d fails) in %.1f seconds" msgstr "" "adatbázisba írás befejeződött: %d leosztás tárolva (%d sikertelen) %.1f mp " "alatt" -#: Database.py:2016 +#: Database.py:2049 msgid "***Error sending finish: " msgstr "***Hiba a befejezés küldésekor: " -#: Database.py:2096 +#: Database.py:2131 msgid "invalid source in Database.createOrUpdateTourney" msgstr "érvénytelen forrás a Database.createOrUpdateTourney-ban" -#: Database.py:2109 +#: Database.py:2144 msgid "invalid source in Database.createOrUpdateTourneysPlayers" msgstr "érvénytelen forrás a Database.createOrUpdateTourneysPlayers-ben" -#: Database.py:2235 +#: Database.py:2270 msgid "HandToWrite.init error: " msgstr "HandToWrite.init hiba: " -#: Database.py:2285 +#: Database.py:2320 msgid "HandToWrite.set_all error: " msgstr "HandToWrite.set_all hiba: " -#: Database.py:2316 +#: Database.py:2351 msgid "nutOmatic is id_player = %d" msgstr "nutOmatic id_player értéke = %d" -#: Database.py:2324 +#: Database.py:2359 msgid "query plan: " msgstr "lekérdezési terv: " -#: Database.py:2333 +#: Database.py:2368 msgid "cards =" msgstr "kezdőkéz =" -#: Database.py:2336 +#: Database.py:2371 msgid "get_stats took: %4.3f seconds" msgstr "get_stats időigény: %4.3f mp" -#: Database.py:2338 Tables.py:448 +#: Database.py:2373 Tables.py:448 msgid "press enter to continue" msgstr "nyomj ENTER-t a folytatáshoz" @@ -724,7 +745,7 @@ msgstr "Indexek eldobása:" msgid "auto" msgstr "automatikus" -#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:397 +#: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:398 msgid "don't drop" msgstr "megtartás" @@ -744,9 +765,9 @@ msgstr "Terem:" msgid "Drop HudCache:" msgstr "HUD gyorstár eldobása:" -#: GuiBulkImport.py:297 -msgid "Import" -msgstr "Importálás" +#: GuiBulkImport.py:297 fpdb.pyw:832 +msgid "_Bulk Import" +msgstr "_Importálás" #: GuiBulkImport.py:299 msgid "Import clicked" @@ -786,43 +807,48 @@ msgstr "" "A kiválasztott konverzió elvégzése Stars Archívum formátumra (ahogy az " "ügyfélszolgálattól jön" -#: GuiBulkImport.py:363 +#: GuiBulkImport.py:360 +msgid "" +"Output the pprinted version of the HandsPlayer hash for regresion testing" +msgstr "" + +#: GuiBulkImport.py:365 msgid "USAGE:" msgstr "HASZNÁLAT:" -#: GuiBulkImport.py:364 +#: GuiBulkImport.py:366 msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" msgstr "PokerStars átalakító: ./GuiBulkImport.py -c PokerStars -f fájlnév" -#: GuiBulkImport.py:365 +#: GuiBulkImport.py:367 msgid "" "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" msgstr "" "Full Tilt átalakító: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f fájlnév" -#: GuiBulkImport.py:366 +#: GuiBulkImport.py:368 msgid "Everleaf converter: ./GuiBulkImport.py -c Everleaf -f filename" msgstr "Everleaf átalakító: ./GuiBulkImport.py -c Everleaf -f fájlnév" -#: GuiBulkImport.py:367 +#: GuiBulkImport.py:369 msgid "Absolute converter: ./GuiBulkImport.py -c Absolute -f filename" msgstr "Absolute átalakító: ./GuiBulkImport.py -c Absolute -f fájlnév" -#: GuiBulkImport.py:368 +#: GuiBulkImport.py:370 msgid "PartyPoker converter: ./GuiBulkImport.py -c PartyPoker -f filename" msgstr "PartyPoker átalakító: ./GuiBulkImport.py -c PartyPoker -f fájlnév" -#: GuiBulkImport.py:384 +#: GuiBulkImport.py:385 msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "A -q már elévült. Használd helyette a \"-f fájlnév\" formát." -#: GuiBulkImport.py:406 +#: GuiBulkImport.py:409 msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" -"s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " +"%s másodperc alatt - %.0f/mp" #: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" @@ -840,11 +866,11 @@ msgstr "Név" msgid "Description" msgstr "Leírás" -#: GuiDatabase.py:114 GuiImapFetcher.py:123 +#: GuiDatabase.py:114 GuiImapFetcher.py:119 msgid "Username" msgstr "Felhasználónév" -#: GuiDatabase.py:115 GuiImapFetcher.py:123 +#: GuiDatabase.py:115 GuiImapFetcher.py:119 msgid "Password" msgstr "Jelszó" @@ -876,7 +902,7 @@ msgstr " kapcsolódás OK" msgid " not connected but no exception" msgstr " nem kapcsolódott, de nincs hibaüzenet" -#: GuiDatabase.py:293 fpdb.pyw:906 +#: GuiDatabase.py:293 fpdb.pyw:905 msgid "" "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -891,7 +917,7 @@ msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: GuiDatabase.py:301 fpdb.pyw:911 +#: GuiDatabase.py:301 fpdb.pyw:910 msgid "" "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -946,22 +972,22 @@ msgstr "" "A program más részeit, pl. az importálást vagy a HUD-ot,\n" "nem érinti ez a probléma." -#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:355 +#: GuiGraphViewer.py:141 GuiGraphViewer.py:255 GuiSessionViewer.py:354 msgid "***Error: " msgstr "***Hiba: " -#: GuiGraphViewer.py:171 GuiPositionalStats.py:178 GuiRingPlayerStats.py:252 -#: GuiSessionViewer.py:204 GuiTourneyPlayerStats.py:277 +#: GuiGraphViewer.py:171 GuiPositionalStats.py:177 GuiRingPlayerStats.py:251 +#: GuiSessionViewer.py:203 GuiTourneyPlayerStats.py:277 msgid "No sites selected - defaulting to PokerStars" msgstr "Nincs kiválasztott terem - PokerStars használata" -#: GuiGraphViewer.py:176 GuiPositionalStats.py:181 GuiRingPlayerStats.py:255 -#: GuiSessionViewer.py:207 GuiTourneyPlayerStats.py:280 +#: GuiGraphViewer.py:176 GuiPositionalStats.py:180 GuiRingPlayerStats.py:254 +#: GuiSessionViewer.py:206 GuiTourneyPlayerStats.py:280 msgid "No player ids found" msgstr "Nincs játékosazonosító" -#: GuiGraphViewer.py:181 GuiPositionalStats.py:184 GuiRingPlayerStats.py:258 -#: GuiSessionViewer.py:210 +#: GuiGraphViewer.py:181 GuiPositionalStats.py:183 GuiRingPlayerStats.py:257 +#: GuiSessionViewer.py:209 msgid "No limits found" msgstr "Nem található limit" @@ -1027,22 +1053,22 @@ msgstr "" "Ha megváltoztatod a beállításokat, akkor importálás előtt előbb el kell " "mentened őket." -#: GuiImapFetcher.py:103 +#: GuiImapFetcher.py:98 msgid "Starting import. Please wait." msgstr "Importálás indítása. Kérlek várj." -#: GuiImapFetcher.py:107 +#: GuiImapFetcher.py:103 msgid "Finished import without error." msgstr "Importálás sikeresen befejezve." -#: GuiImapFetcher.py:110 +#: GuiImapFetcher.py:106 msgid "" "Login to mailserver failed: please check mailserver, username and password" msgstr "" "A bejelentkezés a levelezőkiszolgálóra meghiúsult: kérlek ellenőrizd a " "megadott levelezőkiszolgálót, a felhasználónevet és a jelszót." -#: GuiImapFetcher.py:113 +#: GuiImapFetcher.py:109 msgid "" "Could not connect to mailserver: check mailserver and use SSL settings and " "internet connectivity" @@ -1050,31 +1076,31 @@ msgstr "" "nem sikerült a csatlakozás a levelezőkiszolgálóhoz: ellenőrizd a " "levelezőkiszolgáló és az SSL beállításait, illetve az internetkapcsolatot." -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Fetch Type" msgstr "Fogadás módja" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Mail Folder" msgstr "Levelek mappája" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Mailserver" msgstr "Levelezőkiszolgáló" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Site" msgstr "Terem" -#: GuiImapFetcher.py:123 +#: GuiImapFetcher.py:119 msgid "Use SSL" msgstr "SSL használata" -#: GuiImapFetcher.py:154 +#: GuiImapFetcher.py:151 msgid "Yes" msgstr "Igen" -#: GuiImapFetcher.py:155 +#: GuiImapFetcher.py:152 msgid "No" msgstr "Nem" @@ -1082,11 +1108,11 @@ msgstr "Nem" msgid "Log Messages" msgstr "Naplóbejegyzések" -#: GuiPositionalStats.py:147 +#: GuiPositionalStats.py:146 msgid "DEBUG: activesite set to %s" msgstr "DEBUG: aktív terem: %s" -#: GuiPositionalStats.py:333 +#: GuiPositionalStats.py:332 msgid "Positional Stats page displayed in %4.2f seconds" msgstr "Pozíciós statisztikák megjelenítve %4.2f mp alatt" @@ -1106,32 +1132,32 @@ msgstr "Beállítási párbeszéd (teszt)" msgid "Preferences" msgstr "Beállítások" -#: GuiRingPlayerStats.py:323 GuiSessionViewer.py:249 +#: GuiRingPlayerStats.py:322 GuiSessionViewer.py:248 #: GuiTourneyPlayerStats.py:252 msgid "Stats page displayed in %4.2f seconds" msgstr "Statisztikák megjelenítve %4.2f mp alatt" -#: GuiRingPlayerStats.py:370 +#: GuiRingPlayerStats.py:369 msgid "***sortnums error: " msgstr "***sortnums hiba: " -#: GuiRingPlayerStats.py:392 +#: GuiRingPlayerStats.py:391 msgid "***sortcols error: " msgstr "***sortCols hiba: " -#: GuiRingPlayerStats.py:683 +#: GuiRingPlayerStats.py:682 msgid "Detailed Filters" msgstr "Részletes szűrők" -#: GuiRingPlayerStats.py:692 +#: GuiRingPlayerStats.py:691 msgid "Hand Filters:" msgstr "Leosztás szűrők:" -#: GuiRingPlayerStats.py:705 +#: GuiRingPlayerStats.py:704 msgid "between" msgstr "Min:" -#: GuiRingPlayerStats.py:706 +#: GuiRingPlayerStats.py:705 msgid "and" msgstr "Max:" @@ -1143,15 +1169,15 @@ msgstr "Nem sikerült a numpy és/vagy a matplotlib betöltése a Session nézet msgid "ImportError: %s" msgstr "ImportError: %s" -#: GuiSessionViewer.py:90 +#: GuiSessionViewer.py:89 msgid "Hand Breakdown for all levels listed above" msgstr "Kezdőkezekre bontva a fenti limiteknél" -#: GuiSessionViewer.py:376 +#: GuiSessionViewer.py:375 msgid "Session candlestick graph" msgstr "Session gyertya grafikon" -#: GuiSessionViewer.py:379 +#: GuiSessionViewer.py:378 msgid "Sessions" msgstr "Sessionök" @@ -1203,7 +1229,7 @@ msgstr "" "\n" "HUD_main: indítás ..." -#: HUD_main.pyw:89 fpdb.pyw:876 +#: HUD_main.pyw:89 msgid "Logfile is " msgstr "A naplófájl " @@ -1215,7 +1241,7 @@ msgstr "HUD_main indítás: " msgid "Note: error output is being diverted to:\n" msgstr "Megjegyzés: a hibakimenet ide van átirányítva:\n" -#: HUD_main.pyw:96 fpdb.pyw:1138 +#: HUD_main.pyw:96 fpdb.pyw:1139 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1273,11 +1299,11 @@ msgstr "\"%s\" nevű asztal már nem létezik\n" #: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" @@ -1491,7 +1517,7 @@ msgstr "KEZDŐKÉZ" msgid "TOURNEYS PLAYER IDS" msgstr "VERSENYJÁTÉKOS AZONOSÍTÓK" -#: Hand.py:225 Hand.py:1244 +#: Hand.py:225 Hand.py:1242 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "[ERROR] Kezdőkéz hozzáadása ismeretlen játékoshoz: %s" @@ -1509,38 +1535,40 @@ msgstr "" "FpdbParseError: markStreets hívása meghiúsult: az első 100 karakter: '%s'" #: Hand.py:323 -msgid "DEBUG: checkPlayerExists %s fail" +#, fuzzy +msgid "DEBUG: checkPlayerExists %s fail on hand number %s" msgstr "DEBUG: checkPlayerExists %s játékos nem létezik." #: Hand.py:324 -msgid "checkPlayerExists: '%s' failed." +#, fuzzy +msgid "checkPlayerExists: '%s fail on hand number %s" msgstr "checkPlayerExists: '%s' játékos nem létezik." -#: Hand.py:407 +#: Hand.py:405 msgid "%s %s calls %s" msgstr "%s utcán %s játékos ennyit megad: %s" -#: Hand.py:477 +#: Hand.py:475 msgid "%s %s raise %s" msgstr "%s utcán %s játékos eddig emel: %s" -#: Hand.py:488 +#: Hand.py:486 msgid "%s %s bets %s" msgstr "%s utcán %s játékos ennyit hív: %s" -#: Hand.py:507 +#: Hand.py:505 msgid "%s %s folds" msgstr "%s utcán %s játékos dob" -#: Hand.py:516 +#: Hand.py:514 msgid "%s %s checks" msgstr "%s utcán %s játékos passzol" -#: Hand.py:536 +#: Hand.py:534 msgid "addShownCards %s hole=%s all=%s" msgstr "addShownCards %s játékos kézben=%s mind=%s" -#: Hand.py:647 +#: Hand.py:645 msgid "" "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, " "expecting datetime.date object, received:" @@ -1548,18 +1576,18 @@ msgstr "" "*** ERROR - HAND: writeGameLine hívása nem várt STARTTIME értékkel, datetime." "date objektumot vár, ezt kapta:" -#: Hand.py:648 +#: Hand.py:646 msgid "" "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" "*** Győződj meg róla, hogy a feldolgozód helyesen állítja be a hand." "startTime értékét!" -#: Hand.py:649 +#: Hand.py:647 msgid "*** Game String:" msgstr "*** Játék sztring:" -#: Hand.py:703 +#: Hand.py:701 msgid "" "*** Parse error reading blinds (check compilePlayerRegexs as a likely " "culprit)" @@ -1567,75 +1595,75 @@ msgstr "" "*** Feldolgozási hiba a vakok beolvasása közben (valószínűleg a " "compilePlayerRegex-eket kell ellenőrizni)" -#: Hand.py:730 +#: Hand.py:728 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" "HoldemOmahaHand.__init__: nem lehet a leosztást összeállítani az " "adatbázisból a leosztás azonosítója nélkül" -#: Hand.py:732 +#: Hand.py:730 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" "HoldemOmahaHand.__init__: sem a HHC, sem az adatbázis+leosztásaonosító nem " "lett megadva" -#: Hand.py:1113 +#: Hand.py:1111 msgid "*** DEALING HANDS ***" msgstr "*** OSZTÁS ***" -#: Hand.py:1118 +#: Hand.py:1116 msgid "Dealt to %s: [%s]" msgstr "%s kapja: [%s]" -#: Hand.py:1123 +#: Hand.py:1121 msgid "*** FIRST DRAW ***" msgstr "*** ELSŐ CSERE ***" -#: Hand.py:1133 +#: Hand.py:1131 msgid "*** SECOND DRAW ***" msgstr "*** MÁSODIK CSERE ***" -#: Hand.py:1143 +#: Hand.py:1141 msgid "*** THIRD DRAW ***" msgstr "*** HARMADIK CSERE ***" -#: Hand.py:1153 Hand.py:1371 +#: Hand.py:1151 Hand.py:1369 msgid "*** SHOW DOWN ***" msgstr "*** MUTATÁS ***" -#: Hand.py:1168 Hand.py:1386 +#: Hand.py:1166 Hand.py:1384 msgid "*** SUMMARY ***" msgstr "*** ÖSSZEGZÉS ***" -#: Hand.py:1253 +#: Hand.py:1251 msgid "%s %s completes %s" msgstr "%s utcán %s játékos kiegészít erre: %s" -#: Hand.py:1271 +#: Hand.py:1269 msgid "Bringin: %s, %s" msgstr "Beülő: %s, %s" -#: Hand.py:1311 +#: Hand.py:1309 msgid "*** 3RD STREET ***" msgstr "*** HARMADIK UTCA ***" -#: Hand.py:1325 +#: Hand.py:1323 msgid "*** 4TH STREET ***" msgstr "*** NEGYEDIK UTCA ***" -#: Hand.py:1337 +#: Hand.py:1335 msgid "*** 5TH STREET ***" msgstr "*** ÖTÖDIK UTCA ***" -#: Hand.py:1349 +#: Hand.py:1347 msgid "*** 6TH STREET ***" msgstr "*** HATODIK UTCA ***" -#: Hand.py:1359 +#: Hand.py:1357 msgid "*** RIVER ***" msgstr "*** RIVER ***" -#: Hand.py:1451 +#: Hand.py:1449 msgid "" "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should " "be impossible for anyone who is not a hero" @@ -1643,93 +1671,113 @@ msgstr "" "join_holecards: a kézbe kapott lapok száma vagy < 4, 4 or 7 - 5 és 6 " "mindenki számára lehetetlen, aki nem hős" -#: Hand.py:1452 +#: Hand.py:1450 msgid "join_holcards: holecards(%s): %s" msgstr "join_holcards: holecards(%s): %s" -#: Hand.py:1535 +#: Hand.py:1533 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "DEBUG: Pot.end() hívása a teljes kassza kiírása előtt" -#: Hand.py:1537 +#: Hand.py:1535 msgid "FpdbError in printing Hand object" msgstr "FpdbError egy Hand objektum kiírása közben" -#: HandHistoryConverter.py:134 +#: HandHistoryConverter.py:135 msgid "Failed sanity check" msgstr "A megfelelőségi ellenőrzésen nem ment át" -#: HandHistoryConverter.py:142 +#: HandHistoryConverter.py:143 msgid "Tailing '%s'" msgstr "'%s' követése" -#: HandHistoryConverter.py:149 +#: HandHistoryConverter.py:150 msgid "HHC.start(follow): processHand failed: Exception msg: '%s'" msgstr "HHC.start(follow): processHand meghiúsult: A hibaüzenet szövege: '%s'" -#: HandHistoryConverter.py:163 +#: HandHistoryConverter.py:154 +msgid "handsList is " +msgstr "" + +#: HandHistoryConverter.py:165 msgid "HHC.start(): processHand failed: Exception msg: '%s'" msgstr "HHC.start(): processHand meghiúsult: A hibaüzenet szövege: '%s'" -#: HandHistoryConverter.py:167 +#: HandHistoryConverter.py:169 msgid "Read %d hands (%d failed) in %.3f seconds" msgstr "%d leosztás beolvasva (%d sikertelen) %.3f mp alatt" -#: HandHistoryConverter.py:173 +#: HandHistoryConverter.py:175 msgid "Summary file '%s' correctly parsed (took %.3f seconds)" msgstr "A(z) '%s' összefoglaló fájl rendben feldolgozva (%.3f mp)" -#: HandHistoryConverter.py:175 +#: HandHistoryConverter.py:177 msgid "Error converting summary file '%s' (took %.3f seconds)" msgstr "Hiba a(z) '%s' összefoglaló fájl konvertálása közben (%.3f mp)" -#: HandHistoryConverter.py:178 +#: HandHistoryConverter.py:180 msgid "Error converting '%s'" msgstr "Hiba a(z) '%s' konvertálása közben" -#: HandHistoryConverter.py:209 +#: HandHistoryConverter.py:211 msgid "%s changed inode numbers from %d to %d" msgstr "%s megváltoztatta az inode számokat %d =>%d" -#: HandHistoryConverter.py:254 +#: HandHistoryConverter.py:256 msgid "Converting starsArchive format to readable" msgstr "starsArchive formátum konvertálása olvashatóra" -#: HandHistoryConverter.py:259 +#: HandHistoryConverter.py:261 msgid "Converting ftpArchive format to readable" msgstr "ftpArchive formátum konvertálása olvashatóra" -#: HandHistoryConverter.py:264 +#: HandHistoryConverter.py:266 msgid "Read no hands." msgstr "Nem történt beolvasás." -#: HandHistoryConverter.py:401 +#: HandHistoryConverter.py:474 msgid "HH Sanity Check: output and input files are the same, check config" msgstr "" "HH Sanity Check: a kimeneti és bemeneti fájlok azonosak, ellenőrizd a " "beállításokat" -#: HandHistoryConverter.py:436 +#: HandHistoryConverter.py:497 msgid "Reading stdin with %s" msgstr "Standard bemenet olvasása ezzel: %s" -#: HandHistoryConverter.py:451 +#: HandHistoryConverter.py:512 msgid "unable to read file with any codec in list!" msgstr "a fájl olvasása nem sikerült egyik listabeli kódolással sem" -#: HandHistoryConverter.py:605 +#: HandHistoryConverter.py:579 +msgid " given TZ:" +msgstr "" + +#: HandHistoryConverter.py:579 +msgid "raw time:" +msgstr "" + +#: HandHistoryConverter.py:589 +msgid "changeTimeZone: offset=" +msgstr "" + +#: HandHistoryConverter.py:652 +msgid "utcTime:" +msgstr "" + +#: HandHistoryConverter.py:685 msgid "Unable to create output directory %s for HHC!" msgstr "A %s kimeneti könyvtár nem hozható létre a feldolgozó számára'" -#: HandHistoryConverter.py:606 +#: HandHistoryConverter.py:686 msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" msgstr "*** ERROR: A KIMENETI KÖNYVTÁR NEM HOZHATÓ LÉTRE" -#: HandHistoryConverter.py:608 +#: HandHistoryConverter.py:688 msgid "Created directory '%s'" msgstr "'%s' könyvtár létrehozva" -#: HandHistoryConverter.py:612 +#: HandHistoryConverter.py:692 msgid "out_path %s couldn't be opened" msgstr "%s kimeneti könyvtár nem nyitható meg" @@ -1843,15 +1891,15 @@ msgstr "StatWindows debugolása" msgid "Set max seats" msgstr "Max székek beállítása" -#: Hud.py:540 +#: Hud.py:543 msgid "Updating config file" msgstr "Konfigurációs fájl frissítése" -#: Hud.py:549 +#: Hud.py:552 msgid "No layout found for %d-max games for site %s\n" msgstr "Nem található elrendezés a %d fős asztalok számára a %s teremben\n" -#: Hud.py:563 +#: Hud.py:566 msgid "" "exception in Hud.adj_seats\n" "\n" @@ -1859,15 +1907,15 @@ msgstr "" "hiba a Hud.adj_seats helyen\n" "\n" -#: Hud.py:564 +#: Hud.py:567 msgid "error is %s" msgstr "A hiba a következő: %s" -#: Hud.py:571 +#: Hud.py:574 msgid "Error finding actual seat.\n" msgstr "Hiba az aktuális szék keresése közben.\n" -#: Hud.py:587 +#: Hud.py:590 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" @@ -1875,7 +1923,7 @@ msgstr "" "------------------------------------------------------------\n" "HUD készítése ebből a leosztásból: %s\n" -#: Hud.py:636 +#: Hud.py:639 msgid "" "KeyError at the start of the for loop in update in hud_main. How this can " "possibly happen is totally beyond my comprehension. Your HUD may be about to " @@ -1884,11 +1932,11 @@ msgstr "" "KeyError a for ciklus kezdeténél a hud_main-ban. Fogalmam sincs, hogy ez " "hogyan lehetséges. A HUD-od valószínűleg nagyon furcsa lesz. -Eric" -#: Hud.py:637 +#: Hud.py:640 msgid "(btw, the key was %s and statd is %s" msgstr "(ja, a kulcs %s volt a statd pedig %s)" -#: Hud.py:944 +#: Hud.py:947 msgid "" "Fake main window, blah blah, blah\n" "blah, blah" @@ -1896,7 +1944,7 @@ msgstr "" "Kamu főablak, bla bla, bla\n" "bla, bla" -#: Hud.py:952 +#: Hud.py:955 msgid "Table not found." msgstr "Az asztal nem található." @@ -1904,7 +1952,7 @@ msgstr "Az asztal nem található." msgid "response to logging in:" msgstr "válasz a bejelentkezésre:" -#: ImapFetcher.py:86 +#: ImapFetcher.py:85 msgid "completed running Imap import, closing server connection" msgstr "IMAP import befejezve, kapcsolat lezárása" @@ -1912,6 +1960,39 @@ msgstr "IMAP import befejezve, kapcsolat lezárása" msgid "No Name" msgstr "Nincs név" +#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +msgid "determineGameType: Unable to recognise gametype from: '%s'" +msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" + +#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +msgid "determineGameType: Raising FpdbParseError" +msgstr "determineGameType: FpdbParseError" + +#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +msgid "Unable to recognise gametype from: '%s'" +msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" + +#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +msgid "readButton: not found" +msgstr "readButton: nem található" + +#: OnGameToFpdb.py:250 +#, fuzzy +msgid "readBlinds starting" +msgstr "HUD_main indítása\n" + +#: OnGameToFpdb.py:254 +msgid "re_postSB failed, hand=" +msgstr "" + +#: OnGameToFpdb.py:257 +msgid "readBlinds in noSB exception" +msgstr "" + +#: OnGameToFpdb.py:265 PokerStarsToFpdb.py:358 +msgid "reading antes" +msgstr "antek olvasása" + #: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "Ha be van állítva, akkor a hibakimenet a konzolra lesz irányítva." @@ -1978,10 +2059,6 @@ msgstr "Handinfo nem olvasható az aktuális leosztásból" msgid "Cannot read GameType for current hand" msgstr "GameType nem olvasható az aktuális leosztásból" -#: PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 -msgid "readButton: not found" -msgstr "readButton: nem található" - #: PartyPokerToFpdb.py:479 msgid "Unimplemented readAction: '%s' '%s'" msgstr "Nem ismert readAction: '%s' '%s'" @@ -1994,18 +2071,6 @@ msgstr "nem sikerült felismerni a beülő pénznemét ebben:" msgid "in not result starttime" msgstr "a starttime nem található részében" -#: PokerStarsToFpdb.py:189 -msgid "determineGameType: Unable to recognise gametype from: '%s'" -msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" - -#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 -msgid "determineGameType: Raising FpdbParseError" -msgstr "determineGameType: FpdbParseError" - -#: PokerStarsToFpdb.py:191 -msgid "Unable to recognise gametype from: '%s'" -msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" - #: PokerStarsToFpdb.py:221 msgid "Lim_Blinds has no lookup for '%s'" msgstr "Lim_Blinds nem tartalmazza ezt: '%s'" @@ -2014,10 +2079,6 @@ msgstr "Lim_Blinds nem tartalmazza ezt: '%s'" msgid "failed to detect currency" msgstr "nem sikerült a pénznem meghatározása" -#: PokerStarsToFpdb.py:358 -msgid "reading antes" -msgstr "antek olvasása" - #: Stats.py:103 msgid "exception getting stat %s for player %s %s" msgstr "hiba a %s statisztika számításakor %s játékosnál: %s" @@ -2448,11 +2509,11 @@ msgstr "addPlayer: helyezés:%s - név : '%s' - Nyeremény (%s)" msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" msgstr "incrementPlayerWinnings: név : '%s' - plusz nyeremény (%s)" -#: WinTables.py:70 +#: WinTables.py:82 msgid "Window %s not found. Skipping." msgstr "A(z) %s nevű ablak nincs meg. Kihagyás." -#: WinTables.py:73 +#: WinTables.py:85 msgid "self.window doesn't exist? why?" msgstr "self.window nem létezik? miért?" @@ -2756,10 +2817,6 @@ msgstr "Leo_sztásarchívum könyvtára" msgid "B" msgstr "B" -#: fpdb.pyw:832 -msgid "_Bulk Import" -msgstr "_Importálás" - #: fpdb.pyw:833 msgid "I" msgstr "I" @@ -2801,7 +2858,8 @@ msgid "P" msgstr "P" #: fpdb.pyw:838 -msgid "Ring _Player Stats (tabulated view)" +#, fuzzy +msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "Kész_pénzes statisztikák (táblázat)" #: fpdb.pyw:839 @@ -2809,7 +2867,8 @@ msgid "T" msgstr "T" #: fpdb.pyw:839 -msgid "_Tourney Player Stats (tabulated view)" +#, fuzzy +msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "Versenyjá_tékos statisztikák (táblázat)" #: fpdb.pyw:840 @@ -2824,7 +2883,7 @@ msgstr "O" msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "P_ozíciós statisztikák (táblázat; SQLite-tal nem)" -#: fpdb.pyw:842 fpdb.pyw:1059 +#: fpdb.pyw:842 fpdb.pyw:1058 msgid "Session Stats" msgstr "Session statisztikák" @@ -2886,6 +2945,11 @@ msgstr "" msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" +#: fpdb.pyw:876 +#, fuzzy +msgid "Logfile is %s\n" +msgstr "A naplófájl " + #: fpdb.pyw:878 msgid "Config file" msgstr "Konfigurációs fájl" @@ -2911,37 +2975,38 @@ msgstr "" "résznél a Beállítások ablakban (Főmenü) mielőtt megpróbálnál leosztásokat " "importálni." -#: fpdb.pyw:904 -msgid "Connected to SQLite: %(database)s" +#: fpdb.pyw:903 +#, fuzzy +msgid "Connected to SQLite: %s" msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" -#: fpdb.pyw:908 +#: fpdb.pyw:907 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- " -#: fpdb.pyw:909 +#: fpdb.pyw:908 msgid "Please check that the MySQL service has been started" msgstr "Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: fpdb.pyw:913 +#: fpdb.pyw:912 msgid "Postgres client reports: Unable to connect - " msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " -#: fpdb.pyw:914 +#: fpdb.pyw:913 msgid "Please check that the Postgres service has been started" msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" -#: fpdb.pyw:938 +#: fpdb.pyw:937 msgid "Strong Warning - Invalid database version" msgstr "Nyomatékos figyelmeztetés - Érvénytelen adatbázis verzió" -#: fpdb.pyw:940 +#: fpdb.pyw:939 msgid "An invalid DB version or missing tables have been detected." msgstr "Érvénytelen adatbázis verziót vagy hiányzó táblá(ka)t találtam." -#: fpdb.pyw:944 +#: fpdb.pyw:943 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." @@ -2949,7 +3014,7 @@ msgstr "" "Ez a hiba nem feltétlenül végzetes, de erősen javasolt a táblák " "újragenerálása az Adatbázis menü használatával." -#: fpdb.pyw:948 +#: fpdb.pyw:947 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." @@ -2958,13 +3023,13 @@ msgstr "" "kiléphet, tönkretehet adatokat, stb." # FIXME: would need a different word ordering in Hungarian -#: fpdb.pyw:961 +#: fpdb.pyw:960 msgid "Status: Connected to %s database named %s on host %s" msgstr "" "Állapot: Kapcsolódva a(z) %s adatbázis-kezelő %s nevű adatbázisához a(z) %s " "kiszolgálón" -#: fpdb.pyw:971 +#: fpdb.pyw:970 msgid "" "\n" "Global lock taken by" @@ -2972,7 +3037,7 @@ msgstr "" "\n" "Globális zárolást végzett:" -#: fpdb.pyw:974 +#: fpdb.pyw:973 msgid "" "\n" "Failed to get global lock, it is currently held by" @@ -2980,43 +3045,43 @@ msgstr "" "\n" "Globális zárolás meghiúsult, jelenleg már zárolta:" -#: fpdb.pyw:984 +#: fpdb.pyw:983 msgid "Quitting normally" msgstr "Normál kilépés" -#: fpdb.pyw:1008 +#: fpdb.pyw:1007 msgid "Global lock released.\n" msgstr "Globális zárolás feloldva.\n" -#: fpdb.pyw:1015 +#: fpdb.pyw:1014 msgid "Auto Import" msgstr "AutoImport" -#: fpdb.pyw:1022 +#: fpdb.pyw:1021 msgid "Bulk Import" msgstr "Importálás" -#: fpdb.pyw:1028 +#: fpdb.pyw:1027 msgid "eMail Import" msgstr "Email import" -#: fpdb.pyw:1035 +#: fpdb.pyw:1034 msgid "Ring Player Stats" msgstr "Készpénzes statisztikák" -#: fpdb.pyw:1041 +#: fpdb.pyw:1040 msgid "Tourney Player Stats" msgstr "Versenystatisztikák" -#: fpdb.pyw:1047 +#: fpdb.pyw:1046 msgid "Tourney Viewer" msgstr "Verseny nézet" -#: fpdb.pyw:1053 +#: fpdb.pyw:1052 msgid "Positional Stats" msgstr "Pozíciós statisztikák" -#: fpdb.pyw:1063 +#: fpdb.pyw:1062 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -3074,18 +3139,18 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" -"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " +"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." -#: fpdb.pyw:1080 +#: fpdb.pyw:1079 msgid "Help" msgstr "Súgó" -#: fpdb.pyw:1087 +#: fpdb.pyw:1086 msgid "Graphs" msgstr "Grafikonok" -#: fpdb.pyw:1137 +#: fpdb.pyw:1138 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " @@ -3095,15 +3160,15 @@ msgstr "" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " "fájlokba itt:\n" -#: fpdb.pyw:1166 +#: fpdb.pyw:1167 msgid "fpdb starting ..." msgstr "fpdb indítása ..." -#: fpdb.pyw:1215 +#: fpdb.pyw:1224 msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" -#: fpdb.pyw:1234 +#: fpdb.pyw:1243 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" @@ -3114,7 +3179,7 @@ msgstr "" " Kattints az IGEN gombra a könyvtár létrehozásához, vagy a NEM gombra egy " "másik könyvtár választásához." -#: fpdb.pyw:1242 +#: fpdb.pyw:1251 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -3122,7 +3187,7 @@ msgstr "" "FIGYELEM: Nem sikerült a leosztásarchívum könyvtárának létrehozása. Az " "importálás valószínűleg nem fog működni." -#: fpdb.pyw:1247 +#: fpdb.pyw:1256 msgid "Select HH Output Directory" msgstr "Válaszd ki a leosztásarchívum könyvtárát" @@ -3134,11 +3199,11 @@ msgstr "Nem található a következő adatbázis-modul: MySQLdb" msgid "Import database module: psycopg2 not found" msgstr "Nem található a következő adatbázis-modul: psycopg2" -#: fpdb_import.py:178 +#: fpdb_import.py:189 msgid "Database ID for %s not found" msgstr "Azonosító nem található a(z) %s teremhez" -#: fpdb_import.py:180 +#: fpdb_import.py:191 msgid "" "[ERROR] More than 1 Database ID found for %s - Multiple currencies not " "implemented yet" @@ -3146,63 +3211,63 @@ msgstr "" "[ERROR] Egynél több azonosítót találtam a(z) %s teremhez - Termenként több " "pénznem még nem támogatott" -#: fpdb_import.py:216 +#: fpdb_import.py:227 msgid "Attempted to add non-directory: '%s' as an import directory" msgstr "Nem könyvtár ('%s') megadása importálási könyvtárként" -#: fpdb_import.py:226 +#: fpdb_import.py:237 msgid "Started at %s -- %d files to import. indexes: %s" msgstr "Elindítva: %s -- %d fájl importálása. Indexek: %s" -#: fpdb_import.py:235 +#: fpdb_import.py:246 msgid "No need to drop indexes." msgstr "Nem szükséges az indexek eldobása." -#: fpdb_import.py:254 +#: fpdb_import.py:265 msgid "writers finished already" msgstr "az írások már befejeződtek" -#: fpdb_import.py:257 +#: fpdb_import.py:268 msgid "waiting for writers to finish ..." msgstr "várakozás az írások befejeződésére ..." -#: fpdb_import.py:267 +#: fpdb_import.py:278 msgid " ... writers finished" msgstr " ... az írások befejeződtek" -#: fpdb_import.py:273 +#: fpdb_import.py:284 msgid "No need to rebuild indexes." msgstr "Nem szükséges az adatbázis indexeinek újraépítése." -#: fpdb_import.py:277 +#: fpdb_import.py:288 msgid "No need to rebuild hudcache." msgstr "Nem szükséges a HUD gyorstár újraépítése." -#: fpdb_import.py:302 +#: fpdb_import.py:313 msgid "sending finish msg qlen =" msgstr "befejező üzenet küldése; qlen =" -#: fpdb_import.py:428 fpdb_import.py:430 +#: fpdb_import.py:439 fpdb_import.py:441 msgid "Converting " msgstr "Konvertálás" -#: fpdb_import.py:466 +#: fpdb_import.py:477 msgid "Hand processed but empty" msgstr "A leosztás feldolgozva, de üres volt" -#: fpdb_import.py:479 +#: fpdb_import.py:490 msgid "fpdb_import: sending hand to hud" msgstr "fpdb_import: leosztás küldése a HUD számára" -#: fpdb_import.py:482 +#: fpdb_import.py:493 msgid "Failed to send hand to HUD: %s" msgstr "Nem sikerült a leosztás elküldése a HUD számára: %s" -#: fpdb_import.py:493 +#: fpdb_import.py:508 msgid "Unknown filter filter_name:'%s' in filter:'%s'" msgstr "Ismeretlen szűrő: filter_name:'%s' a '%s' szűrőben" -#: fpdb_import.py:504 +#: fpdb_import.py:519 msgid "" "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge." "net so we can fix the problem." @@ -3210,11 +3275,11 @@ msgstr "" "%s számú hiba. Kérlek küldd el az ezt okozo leosztást az fpdb-main@lists." "sourceforge.net címre, hogy ki tudjuk javítani a hibát." -#: fpdb_import.py:505 +#: fpdb_import.py:520 msgid "Filename:" msgstr "Fájlnév:" -#: fpdb_import.py:506 +#: fpdb_import.py:521 msgid "" "Here is the first line of the hand so you can identify it. Please mention " "that the error was a ValueError:" @@ -3222,15 +3287,15 @@ msgstr "" "Itt az első sora a leosztásnak azonosítás céljából. Kérlek említsd majd meg, " "hogy a hiba ValueError volt:" -#: fpdb_import.py:508 +#: fpdb_import.py:523 msgid "Hand logged to hand-errors.txt" msgstr "A leosztás naplózva a hand-errors.txt fájlba" -#: fpdb_import.py:516 +#: fpdb_import.py:531 msgid "CLI for fpdb_import is now available as CliFpdb.py" msgstr "az fpdb_import már parancssorból is elérhető a CliFpdb.py segítségével" -#: interlocks.py:49 +#: interlocks.py:61 msgid "lock already held by:" msgstr "a zárolást már elvégezte:" @@ -3260,3 +3325,9 @@ msgstr "" "\n" "Nem találhatóak a GTK könyvtárak az útvonaladban - telepítsd a GTK-t, vagy " "állítsd be kézzel az útvonalat\n" + +#~ msgid "commit finished ok, i = " +#~ msgstr "a véglegesítés sikeresen befejeződött, i = " + +#~ msgid "Import" +#~ msgstr "Importálás" diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index d8ce15cbe6a39c34b60de45311d753f1dc766a79..ced7701f08ab78ef87e8c9878ed33e1c38362f9f 100644 GIT binary patch delta 11991 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 From cd70d491c6913a0d08da3b8be4f8b62309aff7d5 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Wed, 25 Aug 2010 13:42:00 +0200 Subject: [PATCH 38/58] remove duplicate example config section --- pyfpdb/HUD_config.xml.example | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index b21a4578..fca23a39 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -667,37 +667,6 @@ Left-Drag to Move" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From b8ad153f919ab48fa252acfce4955e2c89d1ba2b Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Wed, 25 Aug 2010 14:25:53 +0200 Subject: [PATCH 39/58] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 68 ++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 784b8940..5b087003 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" "POT-Creation-Date: 2010-08-25 13:31+CEST\n" -"PO-Revision-Date: 2010-08-25 02:55+0200\n" +"PO-Revision-Date: 2010-08-25 14:25+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -120,28 +120,35 @@ msgstr "hibás érték az xalignment-ben - figyelmen kívül hagyás" #: Configuration.py:616 msgid "missing config section raw_hands" -msgstr "" +msgstr "hiányzó konfigurációs bekezdés: raw_hands" #: Configuration.py:622 msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" msgstr "" +"Érvénytelen raw_hands.save beállítás, az alapértelmezett \"error\" használata" #: Configuration.py:629 msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" msgstr "" +"Érvénytelen raw_hands.compression beállítás, az alapértelmezett \"none\" " +"használata" #: Configuration.py:642 msgid "missing config section raw_tourneys" -msgstr "" +msgstr "hiányzó konfigurációs bekezdés: raw_tourneys" #: Configuration.py:648 msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" msgstr "" +"Érvénytelen raw_tourneys.save beállítás, az alapértelmezett \"error\" " +"használata" #: Configuration.py:655 msgid "" "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" msgstr "" +"Érvénytelen raw_tourneys.compression beállítás, az alapértelmezett \"none\" " +"használata" #: Configuration.py:673 Configuration.py:674 msgid "Configuration file %s not found. Using defaults." @@ -810,7 +817,7 @@ msgstr "" #: GuiBulkImport.py:360 msgid "" "Output the pprinted version of the HandsPlayer hash for regresion testing" -msgstr "" +msgstr "A HandsPlayer hash kiíratása pprint-tel regresszió tesztelés céljából" #: GuiBulkImport.py:365 msgid "USAGE:" @@ -847,8 +854,8 @@ msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " -"%s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" +"s másodperc alatt - %.0f/mp" #: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" @@ -900,7 +907,7 @@ msgstr " kapcsolódás OK" #: GuiDatabase.py:291 msgid " not connected but no exception" -msgstr " nem kapcsolódott, de nincs hibaüzenet" +msgstr " nem kapcsolódott, de nem volt hibaüzenet" #: GuiDatabase.py:293 fpdb.pyw:905 msgid "" @@ -1299,11 +1306,11 @@ msgstr "\"%s\" nevű asztal már nem létezik\n" #: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" @@ -1535,14 +1542,12 @@ msgstr "" "FpdbParseError: markStreets hívása meghiúsult: az első 100 karakter: '%s'" #: Hand.py:323 -#, fuzzy msgid "DEBUG: checkPlayerExists %s fail on hand number %s" -msgstr "DEBUG: checkPlayerExists %s játékos nem létezik." +msgstr "DEBUG: checkPlayerExists %s hiba a következő leosztásban: %s" #: Hand.py:324 -#, fuzzy msgid "checkPlayerExists: '%s fail on hand number %s" -msgstr "checkPlayerExists: '%s' játékos nem létezik." +msgstr "checkPlayerExists: '%s hiba a következő leosztásban: %s" #: Hand.py:405 msgid "%s %s calls %s" @@ -1697,7 +1702,7 @@ msgstr "HHC.start(follow): processHand meghiúsult: A hibaüzenet szövege: '%s' #: HandHistoryConverter.py:154 msgid "handsList is " -msgstr "" +msgstr "A handsList a következő: " #: HandHistoryConverter.py:165 msgid "HHC.start(): processHand failed: Exception msg: '%s'" @@ -1751,19 +1756,19 @@ msgstr "a fájl olvasása nem sikerült egyik listabeli kódolással sem" #: HandHistoryConverter.py:579 msgid " given TZ:" -msgstr "" +msgstr " adott időzóna:" #: HandHistoryConverter.py:579 msgid "raw time:" -msgstr "" +msgstr "nyers idő:" #: HandHistoryConverter.py:589 msgid "changeTimeZone: offset=" -msgstr "" +msgstr "changeTimeZone: offszet=" #: HandHistoryConverter.py:652 msgid "utcTime:" -msgstr "" +msgstr "utcTime:" #: HandHistoryConverter.py:685 msgid "Unable to create output directory %s for HHC!" @@ -1977,17 +1982,16 @@ msgid "readButton: not found" msgstr "readButton: nem található" #: OnGameToFpdb.py:250 -#, fuzzy msgid "readBlinds starting" -msgstr "HUD_main indítása\n" +msgstr "readBlinds indítása" #: OnGameToFpdb.py:254 msgid "re_postSB failed, hand=" -msgstr "" +msgstr "re_postSB nem sikerült, leosztás=" #: OnGameToFpdb.py:257 msgid "readBlinds in noSB exception" -msgstr "" +msgstr "readBlinds noSB-n belül hiba" #: OnGameToFpdb.py:265 PokerStarsToFpdb.py:358 msgid "reading antes" @@ -2858,18 +2862,16 @@ msgid "P" msgstr "P" #: fpdb.pyw:838 -#, fuzzy msgid "Ring _Player Stats (tabulated view, not on pgsql)" -msgstr "Kész_pénzes statisztikák (táblázat)" +msgstr "Kész_pénzes statisztikák (táblázat; Postgre-vel nem)" #: fpdb.pyw:839 msgid "T" msgstr "T" #: fpdb.pyw:839 -#, fuzzy msgid "_Tourney Player Stats (tabulated view, not on pgsql)" -msgstr "Versenyjá_tékos statisztikák (táblázat)" +msgstr "Versenyjá_tékos statisztikák (táblázat; Postgre-vel nem)" #: fpdb.pyw:840 msgid "Tourney _Viewer" @@ -2946,9 +2948,8 @@ msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" #: fpdb.pyw:876 -#, fuzzy msgid "Logfile is %s\n" -msgstr "A naplófájl " +msgstr "A naplófájl: %s\n" #: fpdb.pyw:878 msgid "Config file" @@ -2976,9 +2977,8 @@ msgstr "" "importálni." #: fpdb.pyw:903 -#, fuzzy msgid "Connected to SQLite: %s" -msgstr "Kapcsolódva a %(database)s SQLite adatbázishoz" +msgstr "Kapcsolódva az SQLite adatbázishoz: %s" #: fpdb.pyw:907 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " @@ -3139,8 +3139,8 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " -"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" +"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." #: fpdb.pyw:1079 msgid "Help" From de9d48cc6ad1f52ffa779a04f7388767a3822712 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Wed, 25 Aug 2010 14:55:37 +0200 Subject: [PATCH 40/58] remove menu entry for set handhistory archive directory --- pyfpdb/fpdb.pyw | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 6e034931..9ea632b0 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -786,7 +786,6 @@ class fpdb: - @@ -828,7 +827,6 @@ class fpdb: ('SaveProf', None, _('_Save Profile (todo)'), _('S'), 'Save your profile', self.dia_save_profile), ('Preferences', None, _('Pre_ferences'), _('F'), 'Edit your preferences', self.dia_preferences), ('import', None, _('_Import')), - ('sethharchive', None, _('_Set HandHistory Archive Directory'), None, 'Set HandHistory Archive Directory', self.select_hhArchiveBase), ('bulkimp', None, _('_Bulk Import'), _('B'), 'Bulk Import', self.tab_bulk_import), ('imapimport', None, _('_Import through eMail/IMAP'), _('I'), 'Import through eMail/IMAP', self.tab_imap_import), ('viewers', None, _('_Viewers')), @@ -1252,16 +1250,6 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an elif response == gtk.RESPONSE_NO: self.select_hhArchiveBase() - def select_hhArchiveBase(self, widget=None): - fc = gtk.FileChooserDialog(title=_("Select HH Output Directory"), parent=None, action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_OPEN,gtk.RESPONSE_OK), backend=None) - fc.run() - # TODO: We need to put in a Cancel button, and handle if the user presses that or the "Close" box without selecting anything as a cancel, and return to the prior setting - #self.warning_box("You selected %s" % fc.get_filename()) - self.config.set_hhArchiveBase(fc.get_filename()) - self.config.save() - self.load_profile() # we can't do this at the end of this func because load_profile calls this func - fc.destroy() # TODO: loop this to make sure we get valid data back from it, because the open directory thing in GTK lets you select files and not select things and other stupid bullshit - def main(self): gtk.main() return 0 From f07a16cee462d7606057ee4b03d0be7edaa9bfb1 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Wed, 25 Aug 2010 23:17:30 +0200 Subject: [PATCH 41/58] ebuild: added support for IUSE="linguas_hu" For now we just symlinking the mo file to its proper place under /usr/share/locale/hu --- packaging/gentoo/current_testing.ebuild | 63 +++++++++++++----------- packaging/gentoo/fpdb-9999.ebuild | 65 +++++++++++++------------ 2 files changed, 69 insertions(+), 59 deletions(-) diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index e2a9c67c..73bedd02 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -17,44 +17,49 @@ SLOT="0" KEYWORDS="~amd64 ~x86" #note: this should work on other architectures too, please send me your experiences -IUSE="graph mysql postgres sqlite" +IUSE="graph mysql postgres sqlite linguas_hu" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - doins readme.txt + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + if use linguas_hu; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo + fi - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + doins readme.txt - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} + + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index a2e28197..b3bfa9dc 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -18,48 +18,53 @@ SLOT="0" KEYWORDS="" #note: this should work on other architectures too, please send me your experiences -IUSE="graph mysql postgres sqlite" +IUSE="graph mysql postgres sqlite linguas_hu" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_unpack() { - git_src_unpack + git_src_unpack } src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - doins readme.txt + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + if use linguas_hu; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo + fi - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + doins readme.txt - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} + + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } From 3272d0c7a956cabc85c62e008fe6f9f73d6ee8a2 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Wed, 25 Aug 2010 23:56:02 +0200 Subject: [PATCH 42/58] Anonymised and cleaned up regression test files for PartyPoker The "blind is forced allin" situation file has been splitted into two files as the sample hands were played on different days and on different limits. --- ...01-0.02-20100731.bigBlindIsForcedAllIn.txt | 33 ++++++++++ ...-0.01-0.02-20100731.blindIsForcedAllIn.txt | 63 ------------------- ...-0.04-20100804.smallBlindIsForcedAllIn.txt | 28 +++++++++ 3 files changed, 61 insertions(+), 63 deletions(-) create mode 100644 pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.bigBlindIsForcedAllIn.txt delete mode 100644 pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.blindIsForcedAllIn.txt create mode 100644 pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.02-0.04-20100804.smallBlindIsForcedAllIn.txt diff --git a/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.bigBlindIsForcedAllIn.txt b/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.bigBlindIsForcedAllIn.txt new file mode 100644 index 00000000..89c06d75 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.bigBlindIsForcedAllIn.txt @@ -0,0 +1,33 @@ +Game #9485557849 starts. + +#Game No : 9485557849 +***** Hand History for Game 9485557849 ***** +$0.80 USD NL Texas Hold'em - Saturday, July 31, 13:52:16 EDT 2010 +Table 20BB Min Speed #1770998 (Real Money) +Seat 1 is the button +Total number of players : 4/9 +Seat 3: Player1 ( $1.64 USD ) +Seat 5: Player2 ( $0.01 USD ) +Seat 9: Player3 ( $1.02 USD ) +Seat 1: Player4 ( $1.20 USD ) +Player1 posts small blind [$0.01 USD]. +Player2 posts big blind [$0.01 USD]. +** Dealing down cards ** +Dealt to Player1 [ 8h Kc ] +Player3 folds +Player4 calls [$0.02 USD] +Player1 calls [$0.01 USD] +** Dealing Flop ** [ Td, 7c, 9h ] +Player1 checks +Player4 checks +** Dealing Turn ** [ 3h ] +Player1 checks +Player4 checks +** Dealing River ** [ Jc ] +Player1 bets [$0.04 USD] +Player4 folds +Player1 shows [ 8h, Kc ]a straight, Seven to Jack. +Player2 doesn't show [ Ts, Jd ]two pairs, Jacks and Tens. +Player1 wins $0.06 USD from the side pot 1 with a straight, Seven to Jack. +Player1 wins $0.03 USD from the main pot with a straight, Seven to Jack. +Player2 has left the table. diff --git a/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.blindIsForcedAllIn.txt b/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.blindIsForcedAllIn.txt deleted file mode 100644 index 489dbe5e..00000000 --- a/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.01-0.02-20100731.blindIsForcedAllIn.txt +++ /dev/null @@ -1,63 +0,0 @@ -Game #9485557849 starts. - -#Game No : 9485557849 -***** Hand History for Game 9485557849 ***** -$0.80 USD NL Texas Hold'em - Saturday, July 31, 13:52:16 EDT 2010 -Table 20BB Min Speed #1770998 (Real Money) -Seat 1 is the button -Total number of players : 4/9 -Seat 3: FErki84 ( $1.64 USD ) -Seat 5: Vandercasses ( $0.01 USD ) -Seat 9: jeremyho888 ( $1.02 USD ) -Seat 1: sergeodem ( $1.20 USD ) -FErki84 posts small blind [$0.01 USD]. -Vandercasses posts big blind [$0.01 USD]. -** Dealing down cards ** -Dealt to FErki84 [ 8h Kc ] -jeremyho888 folds -sergeodem calls [$0.02 USD] -FErki84 calls [$0.01 USD] -** Dealing Flop ** [ Td, 7c, 9h ] -FErki84 checks -sergeodem checks -** Dealing Turn ** [ 3h ] -FErki84 checks -sergeodem checks -** Dealing River ** [ Jc ] -FErki84 bets [$0.04 USD] -sergeodem folds -FErki84 shows [ 8h, Kc ]a straight, Seven to Jack. -Vandercasses doesn't show [ Ts, Jd ]two pairs, Jacks and Tens. -FErki84 wins $0.06 USD from the side pot 1 with a straight, Seven to Jack. -FErki84 wins $0.03 USD from the main pot with a straight, Seven to Jack. -Vandercasses has left the table. - -Game #9498788316 starts. - -#Game No : 9498788316 -***** Hand History for Game 9498788316 ***** -$1.60 USD NL Texas Hold'em - Wednesday, August 04, 15:02:33 EDT 2010 -Table 20BB Min #1847547 (No DP) (Real Money) -Seat 2 is the button -Total number of players : 5/6 -Seat 5: CepguTbIu999 ( $1.60 USD ) -Seat 1: Daytona_955 ( $2.45 USD ) -Seat 4: FErki84 ( $2.18 USD ) -Seat 2: anjl2009 ( $2.80 USD ) -Seat 3: lukeman2 ( $0.01 USD ) -lukeman2 posts small blind [$0.01 USD]. -FErki84 posts big blind [$0.04 USD]. -** Dealing down cards ** -Dealt to FErki84 [ 6s 2c ] -CepguTbIu999 folds -Daytona_955 folds -anjl2009 folds -** Dealing Flop ** [ 9d, Ah, 3h ] -** Dealing Turn ** [ Js ] -** Dealing River ** [ Kc ] -lukeman2 shows [ 5h, 5s ]a pair of Fives. -FErki84 shows [ 6s, 2c ]high card Ace. -FErki84 wins $0.03 USD from the side pot 1 with high card, Ace. -lukeman2 wins $0.02 USD from the main pot with a pair of Fives. -lukeman2 has left the table. - diff --git a/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.02-0.04-20100804.smallBlindIsForcedAllIn.txt b/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.02-0.04-20100804.smallBlindIsForcedAllIn.txt new file mode 100644 index 00000000..d59ab400 --- /dev/null +++ b/pyfpdb/regression-test-files/cash/PartyPoker/Flop/NLHE-USD-0.02-0.04-20100804.smallBlindIsForcedAllIn.txt @@ -0,0 +1,28 @@ +Game #9498788316 starts. + +#Game No : 9498788316 +***** Hand History for Game 9498788316 ***** +$1.60 USD NL Texas Hold'em - Wednesday, August 04, 15:02:33 EDT 2010 +Table 20BB Min #1847547 (No DP) (Real Money) +Seat 2 is the button +Total number of players : 5/6 +Seat 5: Player1 ( $1.60 USD ) +Seat 1: Player2 ( $2.45 USD ) +Seat 4: Player3 ( $2.18 USD ) +Seat 2: Player4 ( $2.80 USD ) +Seat 3: Player5 ( $0.01 USD ) +Player5 posts small blind [$0.01 USD]. +Player3 posts big blind [$0.04 USD]. +** Dealing down cards ** +Dealt to Player3 [ 6s 2c ] +Player1 folds +Player2 folds +Player4 folds +** Dealing Flop ** [ 9d, Ah, 3h ] +** Dealing Turn ** [ Js ] +** Dealing River ** [ Kc ] +Player5 shows [ 5h, 5s ]a pair of Fives. +Player3 shows [ 6s, 2c ]high card Ace. +Player3 wins $0.03 USD from the side pot 1 with high card, Ace. +Player5 wins $0.02 USD from the main pot with a pair of Fives. +Player5 has left the table. From 6a823a430c2acbbfe6d64b929c164bb49556663c Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 26 Aug 2010 10:27:40 +0800 Subject: [PATCH 43/58] Hand: Add PKR to sites lookup --- pyfpdb/Hand.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 0973141f..d90a8d8c 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -58,7 +58,7 @@ class Hand(object): LCS = {'H':'h', 'D':'d', 'C':'c', 'S':'s'} SYMBOL = {'USD': '$', 'EUR': u'$', 'T$': '', 'play': ''} MS = {'horse' : 'HORSE', '8game' : '8-Game', 'hose' : 'HOSE', 'ha': 'HA'} - SITEIDS = {'Fulltilt':1, 'PokerStars':2, 'Everleaf':3, 'Win2day':4, 'OnGame':5, 'UltimateBet':6, 'Betfair':7, 'Absolute':8, 'PartyPoker':9, 'Partouche':10, 'Carbon':11 } + SITEIDS = {'Fulltilt':1, 'PokerStars':2, 'Everleaf':3, 'Win2day':4, 'OnGame':5, 'UltimateBet':6, 'Betfair':7, 'Absolute':8, 'PartyPoker':9, 'Partouche':10, 'Carbon':11, 'PKR':12 } def __init__(self, config, sitename, gametype, handText, builtFrom = "HHC"): From 159384db17007e776ea5fced27f5b2196e490085 Mon Sep 17 00:00:00 2001 From: Worros Date: Thu, 26 Aug 2010 10:28:37 +0800 Subject: [PATCH 44/58] PKR: Add a PKR HHC Doesn't actualy work as yet, but the primary regexes are done. --- pyfpdb/PkrToFpdb.py | 394 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100755 pyfpdb/PkrToFpdb.py diff --git a/pyfpdb/PkrToFpdb.py b/pyfpdb/PkrToFpdb.py new file mode 100755 index 00000000..56697210 --- /dev/null +++ b/pyfpdb/PkrToFpdb.py @@ -0,0 +1,394 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2010, Carl Gherardi +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +######################################################################## + + +import sys +from HandHistoryConverter import * + +import locale +lang=locale.getdefaultlocale()[0][0:2] +if lang=="en": + def _(string): return string +else: + import gettext + try: + trans = gettext.translation("fpdb", localedir="locale", languages=[lang]) + trans.install() + except IOError: + def _(string): return string + + +class Pkr(HandHistoryConverter): + + # Class Variables + + sitename = "PKR" + filetype = "text" + codepage = ("utf8", "cp1252") + siteId = 12 # Needs to match id entry in Sites database + + mixes = { 'HORSE': 'horse', '8-Game': '8game', 'HOSE': 'hose'} # Legal mixed games + sym = {'USD': "\$"} # ADD Euro, Sterling, etc HERE + substitutions = { + 'LEGAL_ISO' : "USD", # legal ISO currency codes + 'LS' : "\$|" # legal currency symbols - Euro(cp1252, utf-8) + } + + limits = { 'NO LIMIT':'nl', 'POT LIMIT':'pl', 'LIMIT':'fl' } + games = { # base, category + "HOLD'EM" : ('hold','holdem'), + 'FIXMEOmaha' : ('hold','omahahi'), + 'FIXMEOmaha Hi/Lo' : ('hold','omahahilo'), + 'FIXME5 Card Draw' : ('draw','fivedraw') + } + currencies = { u'€':'EUR', '$':'USD', '':'T$' } + + # Static regexes + re_GameInfo = re.compile(u""" + Table\s\#\d+\s\-\s(?P
[a-zA-Z\ \d]+)\s + Starting\sHand\s\#(?P[0-9]+)\s + Start\stime\sof\shand:\s(?P.*)\s + Last\sHand\s\#[0-9]+\s + Game\sType:\s(?PHOLD'EM|5\sCard\sDraw)\s + Limit\sType:\s(?PNO\sLIMIT|LIMIT|POT\sLIMIT)\s + Table\sType\:\sRING\s + Money\sType:\sREAL\sMONEY\s + Blinds\sare\snow\s(?P%(LS)s|)? + (?P[.0-9]+)/(%(LS)s)? + (?P[.0-9]+) + """ % substitutions, re.MULTILINE|re.VERBOSE) + + re_PlayerInfo = re.compile(u""" + ^Seat\s(?P[0-9]+):\s + (?P.*)\s + \((%(LS)s)?(?P[.0-9]+)\sin\schips\)""" % substitutions, + re.MULTILINE|re.VERBOSE) + + re_HandInfo = re.compile(""" + ^Table\s\'(?P
[-\ a-zA-Z\d]+)\'\s + ((?P\d+)-max\s)? + (?P\(Play\sMoney\)\s)? + (Seat\s\#(?P
[ a-zA-Z]+) - \$?(?P[.0-9]+)/\$?(?P[.0-9]+) - (?P.*) - (?P
[0-9]+):(?P[0-9]+) ET - (?P[0-9]+)/(?P[0-9]+)/(?P[0-9]+)Table (?P
[ a-zA-Z]+)\nSeat (?P
[-\ a-zA-Z\d]+)\'\s @@ -97,28 +97,24 @@ class Pkr(HandHistoryConverter): re_DateTime = re.compile("""(?P[0-9]{4})\/(?P[0-9]{2})\/(?P[0-9]{2})[\- ]+(?P[0-9]+):(?P[0-9]+):(?P[0-9]+)""", re.MULTILINE) def compilePlayerRegexs(self, hand): - print "DEBUG: compilePlayerRegexs" players = set([player[1] for player in hand.players]) if not players <= self.compiledPlayers: # x <= y means 'x is subset of y' # we need to recompile the player regexs. -# TODO: should probably rename re_HeroCards and corresponding method, -# since they are used to find all cards on lines starting with "Dealt to:" -# They still identify the hero. self.compiledPlayers = players player_re = "(?P" + "|".join(map(re.escape, players)) + ")" subst = {'PLYR': player_re, 'CUR': self.sym[hand.gametype['currency']]} log.debug("player_re: " + player_re) - self.re_PostSB = re.compile(r"^%(PLYR)s: posts small blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_PostBB = re.compile(r"^%(PLYR)s: posts big blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_PostBoth = re.compile(r"^%(PLYR)s: posts small \& big blinds %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) - self.re_HeroCards = re.compile(r"^Dealt to %(PLYR)s(?: \[(?P.+?)\])?( \[(?P.+?)\])" % subst, re.MULTILINE) - self.re_Action = re.compile(r""" - ^%(PLYR)s:(?P\sbets|\schecks|\sraises|\scalls|\sfolds|\sdiscards|\sstands\spat) - (\s(%(CUR)s)?(?P[.\d]+))?(\sto\s%(CUR)s(?P[.\d]+))? # the number discarded goes in - (\scards?(\s\[(?P.+?)\])?)?""" - % subst, re.MULTILINE|re.VERBOSE) + self.re_PostSB = re.compile(r"^%(PLYR)s posts small blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) + # FIXME: Sionel posts $0.04 is a second big blind in a different format. + self.re_PostBB = re.compile(r"^%(PLYR)s posts big blind %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) + self.re_Antes = re.compile(r"^%(PLYR)s: posts the ante %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) + self.re_BringIn = re.compile(r"^%(PLYR)s: brings[- ]in( low|) for %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) + self.re_PostBoth = re.compile(r"^%(PLYR)s: posts small \& big blinds %(CUR)s(?P[.0-9]+)" % subst, re.MULTILINE) + self.re_HeroCards = re.compile(r"^Dealing( \[(?P.+?)\])?( \[(?P.+?)\]) to %(PLYR)s" % subst, re.MULTILINE) + self.re_Action = re.compile(r""" + ^%(PLYR)s(?P\sbets|\schecks|\sraises|\scalls|\sfolds)(\sto)? + (\s(%(CUR)s)?(?P[.\d]+))? + """ % subst, re.MULTILINE|re.VERBOSE) self.re_ShowdownAction = re.compile(r"^%s: shows \[(?P.*)\]" % player_re, re.MULTILINE) self.re_CollectPot = re.compile(r"Seat (?P[0-9]+): %(PLYR)s (\(button\) |\(small blind\) |\(big blind\) |\(button\) \(small blind\) )?(collected|showed \[.*\] and won) \(%(CUR)s(?P[.\d]+)\)(, mucked| with.*|)" % subst, re.MULTILINE) self.re_sitsOut = re.compile("^%s sits out" % player_re, re.MULTILINE) @@ -150,7 +146,7 @@ class Pkr(HandHistoryConverter): raise FpdbParseError(_("Unable to recognise gametype from: '%s'") % tmp) mg = m.groupdict() - print "DEBUG: %s" % mg + #print "DEBUG: %s" % mg if 'LIMIT' in mg: info['limitType'] = self.limits[mg['LIMIT']] @@ -341,7 +337,7 @@ class Pkr(HandHistoryConverter): for action in m: acts = action.groupdict() if action.group('ATYPE') == ' raises': - hand.addRaiseBy( street, action.group('PNAME'), action.group('BET') ) + hand.addRaiseTo( street, action.group('PNAME'), action.group('BET') ) elif action.group('ATYPE') == ' calls': hand.addCall( street, action.group('PNAME'), action.group('BET') ) elif action.group('ATYPE') == ' bets': From 264f4da36554e2881a81ce2662f9b150501031d3 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Thu, 26 Aug 2010 16:16:34 +0200 Subject: [PATCH 46/58] l10n: cleaned up Hungarian menu shortcuts --- pyfpdb/locale/fpdb-hu_HU.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 5b087003..1d454451 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" "POT-Creation-Date: 2010-08-25 13:31+CEST\n" -"PO-Revision-Date: 2010-08-25 14:25+0200\n" +"PO-Revision-Date: 2010-08-26 01:40+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -2779,7 +2779,7 @@ msgstr "" #: fpdb.pyw:825 msgid "_Main" -msgstr "_Főmenü" +msgstr "Fő_menü" #: fpdb.pyw:826 fpdb.pyw:854 msgid "_Quit" @@ -2803,7 +2803,7 @@ msgstr "Profil menté_se (todo)" #: fpdb.pyw:829 msgid "F" -msgstr "F" +msgstr "B" #: fpdb.pyw:829 msgid "Pre_ferences" @@ -2819,11 +2819,11 @@ msgstr "Leo_sztásarchívum könyvtára" #: fpdb.pyw:832 msgid "B" -msgstr "B" +msgstr "I" #: fpdb.pyw:833 msgid "I" -msgstr "I" +msgstr "E" #: fpdb.pyw:833 msgid "_Import through eMail/IMAP" From 6d2de998c861c8aa2bd132f11e4ec5aff7ebc550 Mon Sep 17 00:00:00 2001 From: Worros Date: Fri, 27 Aug 2010 00:09:18 +0800 Subject: [PATCH 47/58] FTP: fix type hand.maxSeats to maxseats --- pyfpdb/FulltiltToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index a3526ca0..4b5fbcfd 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -261,7 +261,7 @@ class Fulltilt(HandHistoryConverter): if special == "KO": hand.isKO = True if special == "Head's Up" or special == "Heads Up": - hand.maxSeats = 2 + hand.maxseats = 2 if re.search("Matrix", special): hand.isMatrix = True if special == "Shootout": From 28aaa5366d1895de6fa094e92bd5137e1f62d76b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 18:17:22 +0200 Subject: [PATCH 48/58] revert recent change of Hand.py to fix FTP --- pyfpdb/Hand.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Hand.py b/pyfpdb/Hand.py index 0973141f..aa048ae4 100644 --- a/pyfpdb/Hand.py +++ b/pyfpdb/Hand.py @@ -77,7 +77,7 @@ class Hand(object): self.dbid_gt = 0 self.tablename = "" self.hero = "" - self.maxseats = 0 + self.maxseats = None self.counted_seats = 0 self.buttonpos = 0 From 93573ac51941efe51375265d07f8a5e0cbd721f6 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 18:19:58 +0200 Subject: [PATCH 49/58] start of german translation --- pyfpdb/locale/fpdb-de_DE.po | 41 +++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/pyfpdb/locale/fpdb-de_DE.po b/pyfpdb/locale/fpdb-de_DE.po index 38f761df..5952cbbb 100644 --- a/pyfpdb/locale/fpdb-de_DE.po +++ b/pyfpdb/locale/fpdb-de_DE.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# +# Steffen Schaumburg , 2010. msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" "POT-Creation-Date: 2010-08-25 13:31+CEST\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2010-08-25 18:41+0200\n" "Last-Translator: Steffen Schaumburg \n" -"Language-Team: de_DE \n" +"Language-Team: Fpdb\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: UTF-8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.6.1\n" "Generated-By: pygettext.py 1.5\n" - #: Anonymise.py:55 msgid "Could not find file %s" msgstr "" @@ -2478,7 +2479,7 @@ msgstr "" #: fpdb.pyw:353 msgid "Database Statistics" -msgstr "" +msgstr "Datenbankstatistiken" #: fpdb.pyw:362 msgid "HUD Configurator - choose category" @@ -2588,39 +2589,40 @@ msgstr "" #: fpdb.pyw:825 msgid "_Main" -msgstr "" +msgstr "_Hauptmenü" #: fpdb.pyw:826 fpdb.pyw:854 msgid "_Quit" -msgstr "" +msgstr "_Beenden" #: fpdb.pyw:827 +#, fuzzy msgid "L" -msgstr "" +msgstr "L" #: fpdb.pyw:827 msgid "_Load Profile (broken)" -msgstr "" +msgstr "Profil _Laden (kaputt)" #: fpdb.pyw:828 msgid "S" -msgstr "" +msgstr "S" #: fpdb.pyw:828 msgid "_Save Profile (todo)" -msgstr "" +msgstr "Profil _Speichern (nicht fertig)" #: fpdb.pyw:829 msgid "F" -msgstr "" +msgstr "F" #: fpdb.pyw:829 msgid "Pre_ferences" -msgstr "" +msgstr "_Einstellungen" #: fpdb.pyw:830 msgid "_Import" -msgstr "" +msgstr "_Importieren" #: fpdb.pyw:831 msgid "_Set HandHistory Archive Directory" @@ -2628,15 +2630,15 @@ msgstr "" #: fpdb.pyw:832 msgid "B" -msgstr "" +msgstr "B" #: fpdb.pyw:833 msgid "I" -msgstr "" +msgstr "I" #: fpdb.pyw:833 msgid "_Import through eMail/IMAP" -msgstr "" +msgstr "_Import per eMail/IMAP" #: fpdb.pyw:834 msgid "_Viewers" @@ -2720,7 +2722,7 @@ msgstr "" #: fpdb.pyw:848 msgid "_Statistics" -msgstr "" +msgstr "_Statistiken" #: fpdb.pyw:849 msgid "Dump Database to Textfile (takes ALOT of time)" @@ -3039,4 +3041,3 @@ msgid "" "\n" "no gtk directories found in your path - install gtk or edit the path manually\n" msgstr "" - From 76f60e3592d51bd049366df9b2e92f78d29097e7 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 18:32:01 +0200 Subject: [PATCH 50/58] include fpdb version in GUI version listing --- pyfpdb/fpdb.pyw | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 9ea632b0..1c1ba4cb 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -264,7 +264,8 @@ class fpdb: , ('numpy', numpy_version) , ('sqlite3', sqlite3_version) , ('sqlite', sqlite_version) - , ('database', self.settings['db-server'] + db_version) + , ('fpdb version', VERSION) + , ('database used', self.settings['db-server']) ] versions = gtk.TextBuffer() w = 20 # width used for module names and version numbers From 8222fa93282a8868dd01d8942a24c3fc18992a26 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 18:54:15 +0200 Subject: [PATCH 51/58] l10n: update all po/mo files, scripts --- pyfpdb/locale/create-mo-files.sh | 1 + pyfpdb/locale/fpdb-de_DE.po | 519 +++++++++++++++------------ pyfpdb/locale/fpdb-en_GB.po | 259 +++++++------ pyfpdb/locale/fpdb-hu_HU.po | 267 +++++++------- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 62387 -> 64382 bytes pyfpdb/locale/update-po-files.sh | 1 + 6 files changed, 550 insertions(+), 497 deletions(-) diff --git a/pyfpdb/locale/create-mo-files.sh b/pyfpdb/locale/create-mo-files.sh index 4b9d1dc9..5df25bcb 100755 --- a/pyfpdb/locale/create-mo-files.sh +++ b/pyfpdb/locale/create-mo-files.sh @@ -1,3 +1,4 @@ cd .. python /usr/share/doc/python-2.7/examples/Tools/i18n/msgfmt.py --output-file=locale/hu/LC_MESSAGES/fpdb.mo locale/fpdb-hu_HU.po +python /usr/share/doc/python-2.7/examples/Tools/i18n/msgfmt.py --output-file=locale/de/LC_MESSAGES/fpdb.mo locale/fpdb-de_DE.po diff --git a/pyfpdb/locale/fpdb-de_DE.po b/pyfpdb/locale/fpdb-de_DE.po index 5952cbbb..9d7032b7 100644 --- a/pyfpdb/locale/fpdb-de_DE.po +++ b/pyfpdb/locale/fpdb-de_DE.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" -"POT-Creation-Date: 2010-08-25 13:31+CEST\n" +"POT-Creation-Date: 2010-08-26 18:52+CEST\n" "PO-Revision-Date: 2010-08-25 18:41+0200\n" "Last-Translator: Steffen Schaumburg \n" "Language-Team: Fpdb\n" @@ -57,18 +57,15 @@ msgid "fpdb card encoding(same as pokersource)" msgstr "" #: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 -msgid "" -"Could not convert: \"%s\"\n" +msgid "Could not convert: \"%s\"\n" msgstr "" #: Charset.py:48 Charset.py:63 Charset.py:78 -msgid "" -"Could not encode: \"%s\"\n" +msgid "Could not encode: \"%s\"\n" msgstr "" #: Configuration.py:113 Configuration.py:126 -msgid "" -"Config file has been created at %s.\n" +msgid "Config file has been created at %s.\n" msgstr "" #: Configuration.py:125 @@ -79,13 +76,11 @@ msgid "" msgstr "" #: Configuration.py:131 Configuration.py:132 -msgid "" -"Error copying .example file, cannot fall back. Exiting.\n" +msgid "Error copying .example file, cannot fall back. Exiting.\n" msgstr "" #: Configuration.py:136 Configuration.py:137 -msgid "" -"No %s found, cannot fall back. Exiting.\n" +msgid "No %s found, cannot fall back. Exiting.\n" msgstr "" #: Configuration.py:167 @@ -101,7 +96,9 @@ msgid "Creating directory: '%s'" msgstr "" #: Configuration.py:205 -msgid "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're not on a Mac, please report this problem." +msgid "" +"Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're " +"not on a Mac, please report this problem." msgstr "" #: Configuration.py:303 @@ -137,7 +134,8 @@ msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" msgstr "" #: Configuration.py:655 -msgid "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" +msgid "" +"Invalid config value for raw_tourneys.compression, defaulting to \"none\"" msgstr "" #: Configuration.py:673 Configuration.py:674 @@ -335,7 +333,8 @@ msgid "Dropping sqlite index " msgstr "" #: Database.py:1307 -msgid "Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" +msgid "" +"Fpdb only supports MySQL, Postgres and SQLITE, what are you trying to use?" msgstr "" #: Database.py:1321 Database.py:1361 @@ -582,11 +581,11 @@ msgstr "" msgid " Clear Dates " msgstr "" -#: Filters.py:940 fpdb.pyw:721 +#: Filters.py:940 fpdb.pyw:722 msgid "Pick a date" msgstr "" -#: Filters.py:946 fpdb.pyw:727 +#: Filters.py:946 fpdb.pyw:728 msgid "Done" msgstr "" @@ -671,7 +670,9 @@ msgid "Importing..." msgstr "" #: GuiBulkImport.py:117 -msgid "GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" +msgid "" +"GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: " +"%d in %s seconds - %.0f/sec" msgstr "" #: GuiBulkImport.py:131 @@ -730,7 +731,7 @@ msgstr "" msgid "Drop HudCache:" msgstr "" -#: GuiBulkImport.py:297 fpdb.pyw:832 +#: GuiBulkImport.py:297 fpdb.pyw:831 msgid "_Bulk Import" msgstr "" @@ -763,11 +764,14 @@ msgid "Print some useful one liners" msgstr "" #: GuiBulkImport.py:358 -msgid "Do the required conversion for Stars Archive format (ie. as provided by support" +msgid "" +"Do the required conversion for Stars Archive format (ie. as provided by " +"support" msgstr "" #: GuiBulkImport.py:360 -msgid "Output the pprinted version of the HandsPlayer hash for regresion testing" +msgid "" +"Output the pprinted version of the HandsPlayer hash for regresion testing" msgstr "" #: GuiBulkImport.py:365 @@ -779,7 +783,8 @@ msgid "PokerStars converter: ./GuiBulkImport.py -c PokerStars -f filename" msgstr "" #: GuiBulkImport.py:367 -msgid "Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" +msgid "" +"Full Tilt converter: ./GuiBulkImport.py -c \"Full Tilt Poker\" -f filename" msgstr "" #: GuiBulkImport.py:368 @@ -799,7 +804,9 @@ msgid "-q is deprecated. Just use \"-f filename\" instead" msgstr "" #: GuiBulkImport.py:409 -msgid "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d in %s seconds - %.0f/sec" +msgid "" +"GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " +"in %s seconds - %.0f/sec" msgstr "" #: GuiDatabase.py:106 GuiLogView.py:96 @@ -854,20 +861,26 @@ msgstr "" msgid " not connected but no exception" msgstr "" -#: GuiDatabase.py:293 fpdb.pyw:905 -msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" +#: GuiDatabase.py:293 fpdb.pyw:904 +msgid "" +"MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" #: GuiDatabase.py:297 -msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" +msgid "" +"MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " +"that the MySQL service has been started" msgstr "" -#: GuiDatabase.py:301 fpdb.pyw:910 -msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" +#: GuiDatabase.py:301 fpdb.pyw:909 +msgid "" +"Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" #: GuiDatabase.py:304 -msgid "Postgres client reports: Unable to connect - Please check that the Postgres service has been started" +msgid "" +"Postgres client reports: Unable to connect - Please check that the Postgres " +"service has been started" msgstr "" #: GuiDatabase.py:321 @@ -992,11 +1005,14 @@ msgid "Finished import without error." msgstr "" #: GuiImapFetcher.py:106 -msgid "Login to mailserver failed: please check mailserver, username and password" +msgid "" +"Login to mailserver failed: please check mailserver, username and password" msgstr "" #: GuiImapFetcher.py:109 -msgid "Could not connect to mailserver: check mailserver and use SSL settings and internet connectivity" +msgid "" +"Could not connect to mailserver: check mailserver and use SSL settings and " +"internet connectivity" msgstr "" #: GuiImapFetcher.py:119 @@ -1051,7 +1067,7 @@ msgstr "" msgid "Test Preferences Dialog" msgstr "" -#: GuiPrefs.py:192 fpdb.pyw:296 +#: GuiPrefs.py:192 fpdb.pyw:297 msgid "Preferences" msgstr "" @@ -1121,11 +1137,15 @@ msgid "Display _Player" msgstr "" #: GuiTourneyViewer.py:77 -msgid "Tournament not found - please ensure you imported it and selected the correct site" +msgid "" +"Tournament not found - please ensure you imported it and selected the " +"correct site" msgstr "" #: GuiTourneyViewer.py:105 -msgid "Player or tourney not found - please ensure you imported it and selected the correct site" +msgid "" +"Player or tourney not found - please ensure you imported it and selected the " +"correct site" msgstr "" #: GuiTourneyViewer.py:119 @@ -1151,11 +1171,10 @@ msgid "HUD_main starting: using db name = %s" msgstr "" #: HUD_main.pyw:95 -msgid "" -"Note: error output is being diverted to:\n" +msgid "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:96 fpdb.pyw:1139 +#: HUD_main.pyw:96 fpdb.pyw:1138 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1170,8 +1189,7 @@ msgid "Any major error will be reported there _only_." msgstr "" #: HUD_main.pyw:101 -msgid "" -"HUD_main: starting ...\n" +msgid "HUD_main: starting ...\n" msgstr "" #: HUD_main.pyw:114 HUD_run_me.py:62 @@ -1195,13 +1213,11 @@ msgid "HUD_main.read_stdin: hand processing starting ..." msgstr "" #: HUD_main.pyw:275 -msgid "" -"hud_dict[%s] was not found\n" +msgid "hud_dict[%s] was not found\n" msgstr "" #: HUD_main.pyw:276 -msgid "" -"will not send hand\n" +msgid "will not send hand\n" msgstr "" #: HUD_main.pyw:310 @@ -1209,22 +1225,21 @@ msgid "HUD create: table name %s not found, skipping." msgstr "" #: HUD_main.pyw:318 -msgid "" -"Table \"%s\" no longer exists\n" +msgid "Table \"%s\" no longer exists\n" msgstr "" #: HUD_main.pyw:321 -msgid "HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%4.3f,%4.3f)" +msgid "" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f)" msgstr "" #: HUD_run_me.py:45 -msgid "" -"HUD_main starting\n" +msgid "HUD_main starting\n" msgstr "" #: HUD_run_me.py:51 TournamentTracker.py:317 -msgid "" -"Using db name = %s\n" +msgid "Using db name = %s\n" msgstr "" #: Hand.py:150 @@ -1480,11 +1495,14 @@ msgid "addShownCards %s hole=%s all=%s" msgstr "" #: Hand.py:645 -msgid "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, expecting datetime.date object, received:" +msgid "" +"*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, " +"expecting datetime.date object, received:" msgstr "" #: Hand.py:646 -msgid "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" +msgid "" +"*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" #: Hand.py:647 @@ -1492,7 +1510,9 @@ msgid "*** Game String:" msgstr "" #: Hand.py:701 -msgid "*** Parse error reading blinds (check compilePlayerRegexs as a likely culprit)" +msgid "" +"*** Parse error reading blinds (check compilePlayerRegexs as a likely " +"culprit)" msgstr "" #: Hand.py:728 @@ -1560,7 +1580,9 @@ msgid "*** RIVER ***" msgstr "" #: Hand.py:1449 -msgid "join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should be impossible for anyone who is not a hero" +msgid "" +"join_holecards: # of holecards should be either < 4, 4 or 7 - 5 and 6 should " +"be impossible for anyone who is not a hero" msgstr "" #: Hand.py:1450 @@ -1783,8 +1805,7 @@ msgid "Updating config file" msgstr "" #: Hud.py:552 -msgid "" -"No layout found for %d-max games for site %s\n" +msgid "No layout found for %d-max games for site %s\n" msgstr "" #: Hud.py:566 @@ -1798,8 +1819,7 @@ msgid "error is %s" msgstr "" #: Hud.py:574 -msgid "" -"Error finding actual seat.\n" +msgid "Error finding actual seat.\n" msgstr "" #: Hud.py:590 @@ -1809,7 +1829,10 @@ msgid "" msgstr "" #: Hud.py:639 -msgid "KeyError at the start of the for loop in update in hud_main. How this can possibly happen is totally beyond my comprehension. Your HUD may be about to get really weird. -Eric" +msgid "" +"KeyError at the start of the for loop in update in hud_main. How this can " +"possibly happen is totally beyond my comprehension. Your HUD may be about to " +"get really weird. -Eric" msgstr "" #: Hud.py:640 @@ -1838,15 +1861,16 @@ msgstr "" msgid "No Name" msgstr "" -#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +#: OnGameToFpdb.py:154 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "" -#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "" @@ -1883,7 +1907,8 @@ msgid "Specifies a configuration file." msgstr "" #: Options.py:49 -msgid "Indicates program was restarted with a different path (only allowed once)." +msgid "" +"Indicates program was restarted with a different path (only allowed once)." msgstr "" #: Options.py:52 @@ -1938,6 +1963,10 @@ msgstr "" msgid "Unimplemented readAction: '%s' '%s'" msgstr "" +#: PkrToFpdb.py:174 PokerStarsToFpdb.py:221 +msgid "Lim_Blinds has no lookup for '%s'" +msgstr "" + #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" msgstr "" @@ -1946,10 +1975,6 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:221 -msgid "Lim_Blinds has no lookup for '%s'" -msgstr "" - #: PokerStarsToFpdb.py:273 msgid "failed to detect currency" msgstr "" @@ -2119,7 +2144,8 @@ msgstr "" #: Stats.py:867 msgid "" -"(add _0 to name to display with 0 decimal places, _1 to display with 1, etc)\n" +"(add _0 to name to display with 0 decimal places, _1 to display with 1, " +"etc)\n" msgstr "" #: Tables.py:234 @@ -2143,7 +2169,9 @@ msgid "calling main" msgstr "" #: TournamentTracker.py:50 -msgid "Note: error output is being diverted to fpdb-error-log.txt and HUD-error.txt. Any major error will be reported there _only_." +msgid "" +"Note: error output is being diverted to fpdb-error-log.txt and HUD-error." +"txt. Any major error will be reported there _only_." msgstr "" #: TournamentTracker.py:111 @@ -2179,8 +2207,7 @@ msgid "db error: skipping " msgstr "" #: TournamentTracker.py:276 -msgid "" -"Database error %s in hand %d. Skipping.\n" +msgid "Database error %s in hand %d. Skipping.\n" msgstr "" #: TournamentTracker.py:285 @@ -2188,18 +2215,15 @@ msgid "could not find tournament: skipping" msgstr "" #: TournamentTracker.py:286 -msgid "" -"Could not find tournament %d in hand %d. Skipping.\n" +msgid "Could not find tournament %d in hand %d. Skipping.\n" msgstr "" #: TournamentTracker.py:309 -msgid "" -"table name %s not found, skipping.\n" +msgid "table name %s not found, skipping.\n" msgstr "" #: TournamentTracker.py:316 -msgid "" -"tournament tracker starting\n" +msgid "tournament tracker starting\n" msgstr "" #: TourneyFilters.py:61 @@ -2387,8 +2411,7 @@ msgid "self.window doesn't exist? why?" msgstr "" #: fpdb.pyw:48 -msgid "" -" - press return to continue\n" +msgid " - press return to continue\n" msgstr "" #: fpdb.pyw:55 @@ -2402,19 +2425,28 @@ msgid "Press ENTER to continue." msgstr "" #: fpdb.pyw:67 -msgid "We appear to be running in Windows, but the Windows Python Extensions are not loading. Please install the PYWIN32 package from http://sourceforge.net/projects/pywin32/" +msgid "" +"We appear to be running in Windows, but the Windows Python Extensions are " +"not loading. Please install the PYWIN32 package from http://sourceforge.net/" +"projects/pywin32/" msgstr "" #: fpdb.pyw:89 -msgid "Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org." +msgid "" +"Unable to load PYGTK modules required for GUI. Please install PyCairo, " +"PyGObject, and PyGTK from www.pygtk.org." msgstr "" #: fpdb.pyw:247 -msgid "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, sqlcoder, Bostik, and others" +msgid "" +"Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " +"sqlcoder, Bostik, and others" msgstr "" #: fpdb.pyw:248 -msgid "You are free to change, and distribute original or changed versions of fpdb within the rules set out by the license" +msgid "" +"You are free to change, and distribute original or changed versions of fpdb " +"within the rules set out by the license" msgstr "" #: fpdb.pyw:249 @@ -2429,169 +2461,183 @@ msgstr "" msgid "Operating System" msgstr "" -#: fpdb.pyw:279 +#: fpdb.pyw:280 msgid "Your config file is: " msgstr "" -#: fpdb.pyw:284 +#: fpdb.pyw:285 msgid "Version Information:" msgstr "" -#: fpdb.pyw:291 +#: fpdb.pyw:292 msgid "Threads: " msgstr "" -#: fpdb.pyw:314 -msgid "Updated preferences have not been loaded because windows are open. Re-start fpdb to load them." +#: fpdb.pyw:315 +msgid "" +"Updated preferences have not been loaded because windows are open. Re-start " +"fpdb to load them." msgstr "" -#: fpdb.pyw:324 +#: fpdb.pyw:325 msgid "Maintain Databases" msgstr "" -#: fpdb.pyw:334 +#: fpdb.pyw:335 msgid "saving updated db data" msgstr "" -#: fpdb.pyw:341 +#: fpdb.pyw:342 msgid "guidb response was " msgstr "" -#: fpdb.pyw:347 -msgid "Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option." -msgstr "" - -#: fpdb.pyw:350 -msgid "Number of Hands: " +#: fpdb.pyw:348 +msgid "" +"Cannot open Database Maintenance window because other windows have been " +"opened. Re-start fpdb to use this option." msgstr "" #: fpdb.pyw:351 -msgid "" -"\n" -"Number of Tourneys: " +msgid "Number of Hands: " msgstr "" #: fpdb.pyw:352 msgid "" "\n" -"Number of TourneyTypes: " +"Number of Tourneys: " msgstr "" #: fpdb.pyw:353 +msgid "" +"\n" +"Number of TourneyTypes: " +msgstr "" + +#: fpdb.pyw:354 msgid "Database Statistics" msgstr "Datenbankstatistiken" -#: fpdb.pyw:362 +#: fpdb.pyw:363 msgid "HUD Configurator - choose category" msgstr "" -#: fpdb.pyw:368 -msgid "Please select the game category for which you want to configure HUD stats:" +#: fpdb.pyw:369 +msgid "" +"Please select the game category for which you want to configure HUD stats:" msgstr "" -#: fpdb.pyw:420 +#: fpdb.pyw:421 msgid "HUD Configurator - please choose your stats" msgstr "" -#: fpdb.pyw:426 +#: fpdb.pyw:427 msgid "Please choose the stats you wish to use in the below table." msgstr "" -#: fpdb.pyw:430 +#: fpdb.pyw:431 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" -#: fpdb.pyw:434 -msgid "It is not currently possible to select \"empty\" or anything else to that end." +#: fpdb.pyw:435 +msgid "" +"It is not currently possible to select \"empty\" or anything else to that " +"end." msgstr "" -#: fpdb.pyw:438 -msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." -msgstr "" - -#: fpdb.pyw:545 -msgid "Confirm deleting and recreating tables" +#: fpdb.pyw:439 +msgid "" +"To configure things like colouring you will still have to manually edit your " +"HUD_config.xml." msgstr "" #: fpdb.pyw:546 -msgid "Please confirm that you want to (re-)create the tables. If there already are tables in the database " +msgid "Confirm deleting and recreating tables" msgstr "" #: fpdb.pyw:547 msgid "" +"Please confirm that you want to (re-)create the tables. If there already are " +"tables in the database " +msgstr "" + +#: fpdb.pyw:548 +msgid "" " they will be deleted.\n" "This may take a while." msgstr "" -#: fpdb.pyw:572 +#: fpdb.pyw:573 msgid "User cancelled recreating tables" msgstr "" -#: fpdb.pyw:579 +#: fpdb.pyw:580 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" -#: fpdb.pyw:587 +#: fpdb.pyw:588 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:601 +#: fpdb.pyw:602 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:614 +#: fpdb.pyw:615 msgid " Rebuilding HUD Cache ... " msgstr "" -#: fpdb.pyw:622 +#: fpdb.pyw:623 msgid "User cancelled rebuilding hud cache" msgstr "" -#: fpdb.pyw:634 +#: fpdb.pyw:635 msgid "Confirm rebuilding database indexes" msgstr "" -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" -#: fpdb.pyw:643 +#: fpdb.pyw:644 msgid " Rebuilding Indexes ... " msgstr "" -#: fpdb.pyw:650 +#: fpdb.pyw:651 msgid " Cleaning Database ... " msgstr "" -#: fpdb.pyw:655 +#: fpdb.pyw:656 msgid " Analyzing Database ... " msgstr "" -#: fpdb.pyw:660 +#: fpdb.pyw:661 msgid "User cancelled rebuilding db indexes" msgstr "" -#: fpdb.pyw:755 -msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" +#: fpdb.pyw:756 +msgid "" +"Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:758 +#: fpdb.pyw:759 msgid "Fatal Error - Config File Missing" msgstr "" -#: fpdb.pyw:760 +#: fpdb.pyw:761 msgid "Please copy the config file from the docs folder to:" msgstr "" -#: fpdb.pyw:768 -msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" +#: fpdb.pyw:769 +msgid "" +"and edit it according to the install documentation at http://fpdb." +"sourceforge.net" msgstr "" #: fpdb.pyw:825 msgid "_Main" msgstr "_Hauptmenü" -#: fpdb.pyw:826 fpdb.pyw:854 +#: fpdb.pyw:826 fpdb.pyw:853 msgid "_Quit" msgstr "_Beenden" @@ -2625,305 +2671,311 @@ msgid "_Import" msgstr "_Importieren" #: fpdb.pyw:831 -msgid "_Set HandHistory Archive Directory" -msgstr "" - -#: fpdb.pyw:832 msgid "B" msgstr "B" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "I" msgstr "I" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "_Import through eMail/IMAP" msgstr "_Import per eMail/IMAP" -#: fpdb.pyw:834 +#: fpdb.pyw:833 msgid "_Viewers" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "A" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "_Auto Import and HUD" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "H" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "_HUD Configurator" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "G" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "_Graphs" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "P" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "T" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:840 +#: fpdb.pyw:839 msgid "Tourney _Viewer" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "O" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:842 fpdb.pyw:1058 +#: fpdb.pyw:841 fpdb.pyw:1057 msgid "Session Stats" msgstr "" -#: fpdb.pyw:843 +#: fpdb.pyw:842 msgid "_Database" msgstr "" -#: fpdb.pyw:844 +#: fpdb.pyw:843 msgid "_Maintain Databases" msgstr "" -#: fpdb.pyw:845 +#: fpdb.pyw:844 msgid "Create or Recreate _Tables" msgstr "" -#: fpdb.pyw:846 +#: fpdb.pyw:845 msgid "Rebuild HUD Cache" msgstr "" -#: fpdb.pyw:847 +#: fpdb.pyw:846 msgid "Rebuild DB Indexes" msgstr "" -#: fpdb.pyw:848 +#: fpdb.pyw:847 msgid "_Statistics" msgstr "_Statistiken" -#: fpdb.pyw:849 +#: fpdb.pyw:848 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "" -#: fpdb.pyw:850 +#: fpdb.pyw:849 msgid "_Help" msgstr "" -#: fpdb.pyw:851 +#: fpdb.pyw:850 msgid "_Log Messages" msgstr "" -#: fpdb.pyw:852 +#: fpdb.pyw:851 msgid "A_bout, License, Copying" msgstr "" -#: fpdb.pyw:870 -msgid "" -"There is an error in your config file\n" +#: fpdb.pyw:869 +msgid "There is an error in your config file\n" msgstr "" -#: fpdb.pyw:871 +#: fpdb.pyw:870 msgid "" "\n" "\n" "Error is: " msgstr "" -#: fpdb.pyw:872 +#: fpdb.pyw:871 msgid "CONFIG FILE ERROR" msgstr "" -#: fpdb.pyw:876 -msgid "" -"Logfile is %s\n" +#: fpdb.pyw:875 +msgid "Logfile is %s\n" msgstr "" -#: fpdb.pyw:878 +#: fpdb.pyw:877 msgid "Config file" msgstr "" -#: fpdb.pyw:879 +#: fpdb.pyw:878 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:880 +#: fpdb.pyw:879 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" -#: fpdb.pyw:881 -msgid "section of the Preferences window (Main menu) before trying to import hands." +#: fpdb.pyw:880 +msgid "" +"section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:903 +#: fpdb.pyw:902 msgid "Connected to SQLite: %s" msgstr "" -#: fpdb.pyw:907 +#: fpdb.pyw:906 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" -#: fpdb.pyw:908 +#: fpdb.pyw:907 msgid "Please check that the MySQL service has been started" msgstr "" -#: fpdb.pyw:912 +#: fpdb.pyw:911 msgid "Postgres client reports: Unable to connect - " msgstr "" -#: fpdb.pyw:913 +#: fpdb.pyw:912 msgid "Please check that the Postgres service has been started" msgstr "" -#: fpdb.pyw:937 +#: fpdb.pyw:936 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:939 +#: fpdb.pyw:938 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:943 -msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." +#: fpdb.pyw:942 +msgid "" +"This error is not necessarily fatal but it is strongly recommended that you " +"recreate the tables by using the Database menu." msgstr "" -#: fpdb.pyw:947 -msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." +#: fpdb.pyw:946 +msgid "" +"Not doing this will likely lead to misbehaviour including fpdb crashes, " +"corrupt data etc." msgstr "" -#: fpdb.pyw:960 +#: fpdb.pyw:959 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:970 +#: fpdb.pyw:969 msgid "" "\n" "Global lock taken by" msgstr "" -#: fpdb.pyw:973 +#: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "" -#: fpdb.pyw:983 +#: fpdb.pyw:982 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1007 -msgid "" -"Global lock released.\n" +#: fpdb.pyw:1006 +msgid "Global lock released.\n" msgstr "" -#: fpdb.pyw:1014 +#: fpdb.pyw:1013 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1021 +#: fpdb.pyw:1020 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1027 +#: fpdb.pyw:1026 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1034 +#: fpdb.pyw:1033 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1040 +#: fpdb.pyw:1039 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1046 +#: fpdb.pyw:1045 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1052 +#: fpdb.pyw:1051 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1062 +#: fpdb.pyw:1061 msgid "" "Fpdb needs translators!\n" -"If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" +"If you speak another language and have a few minutes or more to spare get in " +"touch by emailing steffen@schaumburger.info\n" "\n" "Welcome to Fpdb!\n" -"To be notified of new snapshots and releases go to https://lists.sourceforge.net/lists/listinfo/fpdb-announce and subscribe.\n" -"If you want to follow development more closely go to https://lists.sourceforge.net/lists/listinfo/fpdb-main and subscribe.\n" +"To be notified of new snapshots and releases go to https://lists.sourceforge." +"net/lists/listinfo/fpdb-announce and subscribe.\n" +"If you want to follow development more closely go to https://lists." +"sourceforge.net/lists/listinfo/fpdb-main and subscribe.\n" "\n" -"This program is currently in an alpha-state, so our database format is still sometimes changed.\n" -"You should therefore always keep your hand history files so that you can re-import after an update, if necessary.\n" +"This program is currently in an alpha-state, so our database format is still " +"sometimes changed.\n" +"You should therefore always keep your hand history files so that you can re-" +"import after an update, if necessary.\n" "\n" -"For documentation please visit our website/wiki at http://fpdb.sourceforge.net/.\n" +"For documentation please visit our website/wiki at http://fpdb.sourceforge." +"net/.\n" "If you need help click on Contact - Get Help on our website.\n" -"Please note that default.conf is no longer needed nor used, all configuration now happens in HUD_config.xml.\n" +"Please note that default.conf is no longer needed nor used, all " +"configuration now happens in HUD_config.xml.\n" "\n" -"This program is free/libre open source software licensed partially under the AGPL3, and partially under GPL2 or later.\n" +"This program is free/libre open source software licensed partially under the " +"AGPL3, and partially under GPL2 or later.\n" "The Windows installer package includes code licensed under the MIT license.\n" -"You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." +"You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0." +"txt and mit.txt in the fpdb installation directory." msgstr "" -#: fpdb.pyw:1079 +#: fpdb.pyw:1078 msgid "Help" msgstr "" -#: fpdb.pyw:1086 +#: fpdb.pyw:1085 msgid "Graphs" msgstr "" -#: fpdb.pyw:1138 +#: fpdb.pyw:1137 msgid "" "\n" -"Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" +"Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " +"in:\n" msgstr "" -#: fpdb.pyw:1167 +#: fpdb.pyw:1166 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1224 +#: fpdb.pyw:1223 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1243 +#: fpdb.pyw:1242 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1251 -msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." -msgstr "" - -#: fpdb.pyw:1256 -msgid "Select HH Output Directory" +#: fpdb.pyw:1250 +msgid "" +"WARNING: Unable to create hand output directory. Importing is not likely to " +"work until this is fixed." msgstr "" #: fpdb_import.py:60 @@ -2939,7 +2991,9 @@ msgid "Database ID for %s not found" msgstr "" #: fpdb_import.py:191 -msgid "[ERROR] More than 1 Database ID found for %s - Multiple currencies not implemented yet" +msgid "" +"[ERROR] More than 1 Database ID found for %s - Multiple currencies not " +"implemented yet" msgstr "" #: fpdb_import.py:227 @@ -2999,7 +3053,9 @@ msgid "Unknown filter filter_name:'%s' in filter:'%s'" msgstr "" #: fpdb_import.py:519 -msgid "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge.net so we can fix the problem." +msgid "" +"Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge." +"net so we can fix the problem." msgstr "" #: fpdb_import.py:520 @@ -3007,7 +3063,9 @@ msgid "Filename:" msgstr "" #: fpdb_import.py:521 -msgid "Here is the first line of the hand so you can identify it. Please mention that the error was a ValueError:" +msgid "" +"Here is the first line of the hand so you can identify it. Please mention " +"that the error was a ValueError:" msgstr "" #: fpdb_import.py:523 @@ -3039,5 +3097,6 @@ msgstr "" #: windows_make_bats.py:66 msgid "" "\n" -"no gtk directories found in your path - install gtk or edit the path manually\n" +"no gtk directories found in your path - install gtk or edit the path " +"manually\n" msgstr "" diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index d6859904..350b9f5a 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -4,14 +4,14 @@ # msgid "" msgstr "" -"Project-Id-Version: 0.20.905 plus git\n" -"POT-Creation-Date: 2010-08-25 13:31+CEST\n" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2010-08-26 18:52+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" @@ -581,11 +581,11 @@ msgstr "" msgid " Clear Dates " msgstr "" -#: Filters.py:940 fpdb.pyw:721 +#: Filters.py:940 fpdb.pyw:722 msgid "Pick a date" msgstr "" -#: Filters.py:946 fpdb.pyw:727 +#: Filters.py:946 fpdb.pyw:728 msgid "Done" msgstr "" @@ -729,7 +729,7 @@ msgstr "" msgid "Drop HudCache:" msgstr "" -#: GuiBulkImport.py:297 fpdb.pyw:832 +#: GuiBulkImport.py:297 fpdb.pyw:831 msgid "_Bulk Import" msgstr "" @@ -853,7 +853,7 @@ msgstr "" msgid " not connected but no exception" msgstr "" -#: GuiDatabase.py:293 fpdb.pyw:905 +#: GuiDatabase.py:293 fpdb.pyw:904 msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -861,7 +861,7 @@ msgstr "" msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started" msgstr "" -#: GuiDatabase.py:301 fpdb.pyw:910 +#: GuiDatabase.py:301 fpdb.pyw:909 msgid "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -1050,7 +1050,7 @@ msgstr "" msgid "Test Preferences Dialog" msgstr "" -#: GuiPrefs.py:192 fpdb.pyw:296 +#: GuiPrefs.py:192 fpdb.pyw:297 msgid "Preferences" msgstr "" @@ -1154,7 +1154,7 @@ msgid "" "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:96 fpdb.pyw:1139 +#: HUD_main.pyw:96 fpdb.pyw:1138 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1837,15 +1837,16 @@ msgstr "" msgid "No Name" msgstr "" -#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +#: OnGameToFpdb.py:154 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "" -#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "" @@ -1937,6 +1938,10 @@ msgstr "" msgid "Unimplemented readAction: '%s' '%s'" msgstr "" +#: PkrToFpdb.py:174 PokerStarsToFpdb.py:221 +msgid "Lim_Blinds has no lookup for '%s'" +msgstr "" + #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" msgstr "" @@ -1945,10 +1950,6 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:221 -msgid "Lim_Blinds has no lookup for '%s'" -msgstr "" - #: PokerStarsToFpdb.py:273 msgid "failed to detect currency" msgstr "" @@ -2428,161 +2429,161 @@ msgstr "" msgid "Operating System" msgstr "" -#: fpdb.pyw:279 +#: fpdb.pyw:280 msgid "Your config file is: " msgstr "" -#: fpdb.pyw:284 +#: fpdb.pyw:285 msgid "Version Information:" msgstr "" -#: fpdb.pyw:291 +#: fpdb.pyw:292 msgid "Threads: " msgstr "" -#: fpdb.pyw:314 +#: fpdb.pyw:315 msgid "Updated preferences have not been loaded because windows are open. Re-start fpdb to load them." msgstr "" -#: fpdb.pyw:324 +#: fpdb.pyw:325 msgid "Maintain Databases" msgstr "" -#: fpdb.pyw:334 +#: fpdb.pyw:335 msgid "saving updated db data" msgstr "" -#: fpdb.pyw:341 +#: fpdb.pyw:342 msgid "guidb response was " msgstr "" -#: fpdb.pyw:347 +#: fpdb.pyw:348 msgid "Cannot open Database Maintenance window because other windows have been opened. Re-start fpdb to use this option." msgstr "" -#: fpdb.pyw:350 -msgid "Number of Hands: " -msgstr "" - #: fpdb.pyw:351 -msgid "" -"\n" -"Number of Tourneys: " +msgid "Number of Hands: " msgstr "" #: fpdb.pyw:352 msgid "" "\n" -"Number of TourneyTypes: " +"Number of Tourneys: " msgstr "" #: fpdb.pyw:353 +msgid "" +"\n" +"Number of TourneyTypes: " +msgstr "" + +#: fpdb.pyw:354 msgid "Database Statistics" msgstr "" -#: fpdb.pyw:362 +#: fpdb.pyw:363 msgid "HUD Configurator - choose category" msgstr "" -#: fpdb.pyw:368 +#: fpdb.pyw:369 msgid "Please select the game category for which you want to configure HUD stats:" msgstr "" -#: fpdb.pyw:420 +#: fpdb.pyw:421 msgid "HUD Configurator - please choose your stats" msgstr "" -#: fpdb.pyw:426 +#: fpdb.pyw:427 msgid "Please choose the stats you wish to use in the below table." msgstr "" -#: fpdb.pyw:430 +#: fpdb.pyw:431 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" -#: fpdb.pyw:434 +#: fpdb.pyw:435 msgid "It is not currently possible to select \"empty\" or anything else to that end." msgstr "" -#: fpdb.pyw:438 +#: fpdb.pyw:439 msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." msgstr "" -#: fpdb.pyw:545 +#: fpdb.pyw:546 msgid "Confirm deleting and recreating tables" msgstr "" -#: fpdb.pyw:546 +#: fpdb.pyw:547 msgid "Please confirm that you want to (re-)create the tables. If there already are tables in the database " msgstr "" -#: fpdb.pyw:547 +#: fpdb.pyw:548 msgid "" " they will be deleted.\n" "This may take a while." msgstr "" -#: fpdb.pyw:572 +#: fpdb.pyw:573 msgid "User cancelled recreating tables" msgstr "" -#: fpdb.pyw:579 +#: fpdb.pyw:580 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" -#: fpdb.pyw:587 +#: fpdb.pyw:588 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:601 +#: fpdb.pyw:602 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:614 +#: fpdb.pyw:615 msgid " Rebuilding HUD Cache ... " msgstr "" -#: fpdb.pyw:622 +#: fpdb.pyw:623 msgid "User cancelled rebuilding hud cache" msgstr "" -#: fpdb.pyw:634 +#: fpdb.pyw:635 msgid "Confirm rebuilding database indexes" msgstr "" -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" -#: fpdb.pyw:643 +#: fpdb.pyw:644 msgid " Rebuilding Indexes ... " msgstr "" -#: fpdb.pyw:650 +#: fpdb.pyw:651 msgid " Cleaning Database ... " msgstr "" -#: fpdb.pyw:655 +#: fpdb.pyw:656 msgid " Analyzing Database ... " msgstr "" -#: fpdb.pyw:660 +#: fpdb.pyw:661 msgid "User cancelled rebuilding db indexes" msgstr "" -#: fpdb.pyw:755 +#: fpdb.pyw:756 msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:758 +#: fpdb.pyw:759 msgid "Fatal Error - Config File Missing" msgstr "" -#: fpdb.pyw:760 +#: fpdb.pyw:761 msgid "Please copy the config file from the docs folder to:" msgstr "" -#: fpdb.pyw:768 +#: fpdb.pyw:769 msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" msgstr "" @@ -2590,7 +2591,7 @@ msgstr "" msgid "_Main" msgstr "" -#: fpdb.pyw:826 fpdb.pyw:854 +#: fpdb.pyw:826 fpdb.pyw:853 msgid "_Quit" msgstr "" @@ -2623,250 +2624,246 @@ msgid "_Import" msgstr "" #: fpdb.pyw:831 -msgid "_Set HandHistory Archive Directory" -msgstr "" - -#: fpdb.pyw:832 msgid "B" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "I" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "_Import through eMail/IMAP" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:833 msgid "_Viewers" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "A" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "_Auto Import and HUD" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "H" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "_HUD Configurator" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "G" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "_Graphs" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "P" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "T" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:840 +#: fpdb.pyw:839 msgid "Tourney _Viewer" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "O" msgstr "" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:842 fpdb.pyw:1058 +#: fpdb.pyw:841 fpdb.pyw:1057 msgid "Session Stats" msgstr "" -#: fpdb.pyw:843 +#: fpdb.pyw:842 msgid "_Database" msgstr "" -#: fpdb.pyw:844 +#: fpdb.pyw:843 msgid "_Maintain Databases" msgstr "" -#: fpdb.pyw:845 +#: fpdb.pyw:844 msgid "Create or Recreate _Tables" msgstr "" -#: fpdb.pyw:846 +#: fpdb.pyw:845 msgid "Rebuild HUD Cache" msgstr "" -#: fpdb.pyw:847 +#: fpdb.pyw:846 msgid "Rebuild DB Indexes" msgstr "" -#: fpdb.pyw:848 +#: fpdb.pyw:847 msgid "_Statistics" msgstr "" -#: fpdb.pyw:849 +#: fpdb.pyw:848 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "" -#: fpdb.pyw:850 +#: fpdb.pyw:849 msgid "_Help" msgstr "" -#: fpdb.pyw:851 +#: fpdb.pyw:850 msgid "_Log Messages" msgstr "" -#: fpdb.pyw:852 +#: fpdb.pyw:851 msgid "A_bout, License, Copying" msgstr "" -#: fpdb.pyw:870 +#: fpdb.pyw:869 msgid "" "There is an error in your config file\n" msgstr "" -#: fpdb.pyw:871 +#: fpdb.pyw:870 msgid "" "\n" "\n" "Error is: " msgstr "" -#: fpdb.pyw:872 +#: fpdb.pyw:871 msgid "CONFIG FILE ERROR" msgstr "" -#: fpdb.pyw:876 +#: fpdb.pyw:875 msgid "" "Logfile is %s\n" msgstr "" -#: fpdb.pyw:878 +#: fpdb.pyw:877 msgid "Config file" msgstr "" -#: fpdb.pyw:879 +#: fpdb.pyw:878 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:880 +#: fpdb.pyw:879 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" -#: fpdb.pyw:881 +#: fpdb.pyw:880 msgid "section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:903 +#: fpdb.pyw:902 msgid "Connected to SQLite: %s" msgstr "" -#: fpdb.pyw:907 +#: fpdb.pyw:906 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" -#: fpdb.pyw:908 +#: fpdb.pyw:907 msgid "Please check that the MySQL service has been started" msgstr "" -#: fpdb.pyw:912 +#: fpdb.pyw:911 msgid "Postgres client reports: Unable to connect - " msgstr "" -#: fpdb.pyw:913 +#: fpdb.pyw:912 msgid "Please check that the Postgres service has been started" msgstr "" -#: fpdb.pyw:937 +#: fpdb.pyw:936 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:939 +#: fpdb.pyw:938 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:943 +#: fpdb.pyw:942 msgid "This error is not necessarily fatal but it is strongly recommended that you recreate the tables by using the Database menu." msgstr "" -#: fpdb.pyw:947 +#: fpdb.pyw:946 msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." msgstr "" -#: fpdb.pyw:960 +#: fpdb.pyw:959 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:970 +#: fpdb.pyw:969 msgid "" "\n" "Global lock taken by" msgstr "" -#: fpdb.pyw:973 +#: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" msgstr "" -#: fpdb.pyw:983 +#: fpdb.pyw:982 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1007 +#: fpdb.pyw:1006 msgid "" "Global lock released.\n" msgstr "" -#: fpdb.pyw:1014 +#: fpdb.pyw:1013 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1021 +#: fpdb.pyw:1020 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1027 +#: fpdb.pyw:1026 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1034 +#: fpdb.pyw:1033 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1040 +#: fpdb.pyw:1039 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1046 +#: fpdb.pyw:1045 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1052 +#: fpdb.pyw:1051 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1062 +#: fpdb.pyw:1061 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in touch by emailing steffen@schaumburger.info\n" @@ -2887,43 +2884,39 @@ msgid "" "You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt and mit.txt in the fpdb installation directory." msgstr "" -#: fpdb.pyw:1079 +#: fpdb.pyw:1078 msgid "Help" msgstr "" -#: fpdb.pyw:1086 +#: fpdb.pyw:1085 msgid "Graphs" msgstr "" -#: fpdb.pyw:1138 +#: fpdb.pyw:1137 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n" msgstr "" -#: fpdb.pyw:1167 +#: fpdb.pyw:1166 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1224 +#: fpdb.pyw:1223 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1243 +#: fpdb.pyw:1242 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1251 +#: fpdb.pyw:1250 msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." msgstr "" -#: fpdb.pyw:1256 -msgid "Select HH Output Directory" -msgstr "" - #: fpdb_import.py:60 msgid "Import database module: MySQLdb not found" msgstr "" diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 1d454451..11a0a35d 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" -"POT-Creation-Date: 2010-08-25 13:31+CEST\n" +"POT-Creation-Date: 2010-08-26 18:52+CEST\n" "PO-Revision-Date: 2010-08-26 01:40+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -606,11 +606,11 @@ msgstr "Nem található játék az adatbázisban" msgid " Clear Dates " msgstr "Törlés" -#: Filters.py:940 fpdb.pyw:721 +#: Filters.py:940 fpdb.pyw:722 msgid "Pick a date" msgstr "Válassz napot" -#: Filters.py:946 fpdb.pyw:727 +#: Filters.py:946 fpdb.pyw:728 msgid "Done" msgstr "Kész" @@ -772,7 +772,7 @@ msgstr "Terem:" msgid "Drop HudCache:" msgstr "HUD gyorstár eldobása:" -#: GuiBulkImport.py:297 fpdb.pyw:832 +#: GuiBulkImport.py:297 fpdb.pyw:831 msgid "_Bulk Import" msgstr "_Importálás" @@ -854,8 +854,8 @@ msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" -"s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " +"%s másodperc alatt - %.0f/mp" #: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" @@ -909,7 +909,7 @@ msgstr " kapcsolódás OK" msgid " not connected but no exception" msgstr " nem kapcsolódott, de nem volt hibaüzenet" -#: GuiDatabase.py:293 fpdb.pyw:905 +#: GuiDatabase.py:293 fpdb.pyw:904 msgid "" "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -924,7 +924,7 @@ msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: GuiDatabase.py:301 fpdb.pyw:910 +#: GuiDatabase.py:301 fpdb.pyw:909 msgid "" "Postgres Server reports: Access denied. Are your permissions set correctly?" msgstr "" @@ -1135,7 +1135,7 @@ msgstr "Érték (kattints duplán a módosításhoz)" msgid "Test Preferences Dialog" msgstr "Beállítási párbeszéd (teszt)" -#: GuiPrefs.py:192 fpdb.pyw:296 +#: GuiPrefs.py:192 fpdb.pyw:297 msgid "Preferences" msgstr "Beállítások" @@ -1248,7 +1248,7 @@ msgstr "HUD_main indítás: " msgid "Note: error output is being diverted to:\n" msgstr "Megjegyzés: a hibakimenet ide van átirányítva:\n" -#: HUD_main.pyw:96 fpdb.pyw:1139 +#: HUD_main.pyw:96 fpdb.pyw:1138 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1306,11 +1306,11 @@ msgstr "\"%s\" nevű asztal már nem létezik\n" #: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" -"4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," +"%4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" @@ -1965,15 +1965,16 @@ msgstr "IMAP import befejezve, kapcsolat lezárása" msgid "No Name" msgstr "Nincs név" -#: OnGameToFpdb.py:153 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" -#: OnGameToFpdb.py:154 PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 +#: OnGameToFpdb.py:154 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "determineGameType: FpdbParseError" -#: OnGameToFpdb.py:155 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" @@ -2067,6 +2068,10 @@ msgstr "GameType nem olvasható az aktuális leosztásból" msgid "Unimplemented readAction: '%s' '%s'" msgstr "Nem ismert readAction: '%s' '%s'" +#: PkrToFpdb.py:174 PokerStarsToFpdb.py:221 +msgid "Lim_Blinds has no lookup for '%s'" +msgstr "Lim_Blinds nem tartalmazza ezt: '%s'" + #: PokerStarsSummary.py:72 msgid "didn't recognise buyin currency in:" msgstr "nem sikerült felismerni a beülő pénznemét ebben:" @@ -2075,10 +2080,6 @@ msgstr "nem sikerült felismerni a beülő pénznemét ebben:" msgid "in not result starttime" msgstr "a starttime nem található részében" -#: PokerStarsToFpdb.py:221 -msgid "Lim_Blinds has no lookup for '%s'" -msgstr "Lim_Blinds nem tartalmazza ezt: '%s'" - #: PokerStarsToFpdb.py:273 msgid "failed to detect currency" msgstr "nem sikerült a pénznem meghatározása" @@ -2584,19 +2585,19 @@ msgstr "és mások" msgid "Operating System" msgstr "Operációs rendszer" -#: fpdb.pyw:279 +#: fpdb.pyw:280 msgid "Your config file is: " msgstr "Konfigurációs fájl:" -#: fpdb.pyw:284 +#: fpdb.pyw:285 msgid "Version Information:" msgstr "Verzióinformáció:" -#: fpdb.pyw:291 +#: fpdb.pyw:292 msgid "Threads: " msgstr "Szálak:" -#: fpdb.pyw:314 +#: fpdb.pyw:315 msgid "" "Updated preferences have not been loaded because windows are open. Re-start " "fpdb to load them." @@ -2604,19 +2605,19 @@ msgstr "" "A megváltoztatott beállítások még nem léptek érvénybe, mert vannak nyitott " "ablakok. Indítsd újra az fpdb-t az érvénybe léptetésükhöz." -#: fpdb.pyw:324 +#: fpdb.pyw:325 msgid "Maintain Databases" msgstr "Adatbázisok karbantartása" -#: fpdb.pyw:334 +#: fpdb.pyw:335 msgid "saving updated db data" msgstr "frissített adatbázis adatok mentése" -#: fpdb.pyw:341 +#: fpdb.pyw:342 msgid "guidb response was " msgstr "a guidb válasza ez volt: " -#: fpdb.pyw:347 +#: fpdb.pyw:348 msgid "" "Cannot open Database Maintenance window because other windows have been " "opened. Re-start fpdb to use this option." @@ -2624,11 +2625,11 @@ msgstr "" "Nem tudom megnyitni az adatbázis karbantartó ablakot, mert más ablakok is " "nyitva vannak. Indítsd újra az fpdb-t ezen funkció használatához." -#: fpdb.pyw:350 +#: fpdb.pyw:351 msgid "Number of Hands: " msgstr "Leosztások száma:" -#: fpdb.pyw:351 +#: fpdb.pyw:352 msgid "" "\n" "Number of Tourneys: " @@ -2636,7 +2637,7 @@ msgstr "" "\n" "Versenyek száma: " -#: fpdb.pyw:352 +#: fpdb.pyw:353 msgid "" "\n" "Number of TourneyTypes: " @@ -2644,39 +2645,39 @@ msgstr "" "\n" "Versenytípusok száma: " -#: fpdb.pyw:353 +#: fpdb.pyw:354 msgid "Database Statistics" msgstr "Adatbázis statisztikák" -#: fpdb.pyw:362 +#: fpdb.pyw:363 msgid "HUD Configurator - choose category" msgstr "HUD beállító - válassz típust és méretet" -#: fpdb.pyw:368 +#: fpdb.pyw:369 msgid "" "Please select the game category for which you want to configure HUD stats:" msgstr "Válassz játéktípust, amelyre vonatkozóan be akarod állítani a HUD-ot:" -#: fpdb.pyw:420 +#: fpdb.pyw:421 msgid "HUD Configurator - please choose your stats" msgstr "HUD beállító - válassz statisztikákat" -#: fpdb.pyw:426 +#: fpdb.pyw:427 msgid "Please choose the stats you wish to use in the below table." msgstr "Válaszd ki a lenti táblázatból a megjelenítendő statisztikákat." -#: fpdb.pyw:430 +#: fpdb.pyw:431 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" "Egy statisztikát ne válassz ki többször, mert nem fog működni (ki fog lépni)." -#: fpdb.pyw:434 +#: fpdb.pyw:435 msgid "" "It is not currently possible to select \"empty\" or anything else to that " "end." msgstr "Jelenleg nem lehetséges olyat választani, hogy \"üres\" vagy hasonló." -#: fpdb.pyw:438 +#: fpdb.pyw:439 msgid "" "To configure things like colouring you will still have to manually edit your " "HUD_config.xml." @@ -2684,11 +2685,11 @@ msgstr "" "Bizonyos dolgok (pl. színezés) beállításához egyelőre még kézzel kell " "szerkesztened a HUD_config.xml fájlt." -#: fpdb.pyw:545 +#: fpdb.pyw:546 msgid "Confirm deleting and recreating tables" msgstr "Erősítsd meg a táblák törlését és újra létrehozását" -#: fpdb.pyw:546 +#: fpdb.pyw:547 msgid "" "Please confirm that you want to (re-)create the tables. If there already are " "tables in the database " @@ -2696,7 +2697,7 @@ msgstr "" "Kérlek erősítsd meg, hogy valóban (újra) létre akarod hozni a táblákat. Ha " "már vannak táblák az adatbázisban (" -#: fpdb.pyw:547 +#: fpdb.pyw:548 msgid "" " they will be deleted.\n" "This may take a while." @@ -2704,72 +2705,72 @@ msgstr "" "), akkor azok törölve lesznek.\n" "Ja, és ez eltarthat egy darabig:)" -#: fpdb.pyw:572 +#: fpdb.pyw:573 msgid "User cancelled recreating tables" msgstr "A felhasználó megszakította a táblák újra létrehozását" -#: fpdb.pyw:579 +#: fpdb.pyw:580 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod generálni a HUD gyorstárat." -#: fpdb.pyw:587 +#: fpdb.pyw:588 msgid " Hero's cache starts: " msgstr " Saját gyorstár innentől: " -#: fpdb.pyw:601 +#: fpdb.pyw:602 msgid " Villains' cache starts: " msgstr " Ellenfelek gyorstára innentől: " -#: fpdb.pyw:614 +#: fpdb.pyw:615 msgid " Rebuilding HUD Cache ... " msgstr " HUD gyorstár újraépítése ... " -#: fpdb.pyw:622 +#: fpdb.pyw:623 msgid "User cancelled rebuilding hud cache" msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." -#: fpdb.pyw:634 +#: fpdb.pyw:635 msgid "Confirm rebuilding database indexes" msgstr "Erősítsd meg az adatbázis indexeinek újraépítését" -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" "Kérlek erősítsd meg, hogy valóban újra akarod építeni az adatbázis indexeit." -#: fpdb.pyw:643 +#: fpdb.pyw:644 msgid " Rebuilding Indexes ... " msgstr " Indexek újraépítése ... " -#: fpdb.pyw:650 +#: fpdb.pyw:651 msgid " Cleaning Database ... " msgstr " Adatbázis tisztítása ... " -#: fpdb.pyw:655 +#: fpdb.pyw:656 msgid " Analyzing Database ... " msgstr " Adatbázis elemzése ... " -#: fpdb.pyw:660 +#: fpdb.pyw:661 msgid "User cancelled rebuilding db indexes" msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." -#: fpdb.pyw:755 +#: fpdb.pyw:756 msgid "" "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" "Még nincs kész: Profil mentése (addig használd a HUD elrendezésének " "mentését, az jó)" -#: fpdb.pyw:758 +#: fpdb.pyw:759 msgid "Fatal Error - Config File Missing" msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" -#: fpdb.pyw:760 +#: fpdb.pyw:761 msgid "Please copy the config file from the docs folder to:" msgstr "Kérlek másold át a konfigurációs fájlt a docs könyvtárból ide:" -#: fpdb.pyw:768 +#: fpdb.pyw:769 msgid "" "and edit it according to the install documentation at http://fpdb." "sourceforge.net" @@ -2781,7 +2782,7 @@ msgstr "" msgid "_Main" msgstr "Fő_menü" -#: fpdb.pyw:826 fpdb.pyw:854 +#: fpdb.pyw:826 fpdb.pyw:853 msgid "_Quit" msgstr "_Kilépés" @@ -2814,126 +2815,122 @@ msgid "_Import" msgstr "_Importálás" #: fpdb.pyw:831 -msgid "_Set HandHistory Archive Directory" -msgstr "Leo_sztásarchívum könyvtára" - -#: fpdb.pyw:832 msgid "B" msgstr "I" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "I" msgstr "E" -#: fpdb.pyw:833 +#: fpdb.pyw:832 msgid "_Import through eMail/IMAP" msgstr "_Email import (IMAP)" -#: fpdb.pyw:834 +#: fpdb.pyw:833 msgid "_Viewers" msgstr "_Nézetek" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "A" msgstr "A" -#: fpdb.pyw:835 +#: fpdb.pyw:834 msgid "_Auto Import and HUD" msgstr "_AutoImport és HUD" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "H" msgstr "H" -#: fpdb.pyw:836 +#: fpdb.pyw:835 msgid "_HUD Configurator" msgstr "_HUD beállítása" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "G" msgstr "G" -#: fpdb.pyw:837 +#: fpdb.pyw:836 msgid "_Graphs" msgstr "_Grafikonok" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "P" msgstr "P" -#: fpdb.pyw:838 +#: fpdb.pyw:837 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "Kész_pénzes statisztikák (táblázat; Postgre-vel nem)" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "T" msgstr "T" -#: fpdb.pyw:839 +#: fpdb.pyw:838 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "Versenyjá_tékos statisztikák (táblázat; Postgre-vel nem)" -#: fpdb.pyw:840 +#: fpdb.pyw:839 msgid "Tourney _Viewer" msgstr "_Verseny nézet" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "O" msgstr "O" -#: fpdb.pyw:841 +#: fpdb.pyw:840 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "P_ozíciós statisztikák (táblázat; SQLite-tal nem)" -#: fpdb.pyw:842 fpdb.pyw:1058 +#: fpdb.pyw:841 fpdb.pyw:1057 msgid "Session Stats" msgstr "Session statisztikák" -#: fpdb.pyw:843 +#: fpdb.pyw:842 msgid "_Database" msgstr "A_datbázis" -#: fpdb.pyw:844 +#: fpdb.pyw:843 msgid "_Maintain Databases" msgstr "_Karbantartás" -#: fpdb.pyw:845 +#: fpdb.pyw:844 msgid "Create or Recreate _Tables" msgstr "_Táblák (újra) létrehozása" -#: fpdb.pyw:846 +#: fpdb.pyw:845 msgid "Rebuild HUD Cache" msgstr "HUD gyorstár újraépítése" -#: fpdb.pyw:847 +#: fpdb.pyw:846 msgid "Rebuild DB Indexes" msgstr "Adatbázis indexek újraépítése" -#: fpdb.pyw:848 +#: fpdb.pyw:847 msgid "_Statistics" msgstr "_Statisztikák" -#: fpdb.pyw:849 +#: fpdb.pyw:848 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "Adatbázis kiírása textfájlba (SOKÁIG tart)" -#: fpdb.pyw:850 +#: fpdb.pyw:849 msgid "_Help" msgstr "_Súgó" -#: fpdb.pyw:851 +#: fpdb.pyw:850 msgid "_Log Messages" msgstr "Nap_lóbejegyzések" -#: fpdb.pyw:852 +#: fpdb.pyw:851 msgid "A_bout, License, Copying" msgstr "_Névjegy, licensz, másolás" -#: fpdb.pyw:870 +#: fpdb.pyw:869 msgid "There is an error in your config file\n" msgstr "Hiba van a konfigurációs fájlodban\n" -#: fpdb.pyw:871 +#: fpdb.pyw:870 msgid "" "\n" "\n" @@ -2943,19 +2940,19 @@ msgstr "" "\n" "A hiba a következő: " -#: fpdb.pyw:872 +#: fpdb.pyw:871 msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" -#: fpdb.pyw:876 +#: fpdb.pyw:875 msgid "Logfile is %s\n" msgstr "A naplófájl: %s\n" -#: fpdb.pyw:878 +#: fpdb.pyw:877 msgid "Config file" msgstr "Konfigurációs fájl" -#: fpdb.pyw:879 +#: fpdb.pyw:878 msgid "" "has been created at:\n" "%s.\n" @@ -2963,50 +2960,50 @@ msgstr "" "létrehozva itt:\n" "%s.\n" -#: fpdb.pyw:880 +#: fpdb.pyw:879 msgid "Edit your screen_name and hand history path in the supported_sites " msgstr "" "Állítsd be az asztalnál látható nevedet és a leosztástörténetek helyét a " "támogatott termek" -#: fpdb.pyw:881 +#: fpdb.pyw:880 msgid "" "section of the Preferences window (Main menu) before trying to import hands." msgstr "" "résznél a Beállítások ablakban (Főmenü) mielőtt megpróbálnál leosztásokat " "importálni." -#: fpdb.pyw:903 +#: fpdb.pyw:902 msgid "Connected to SQLite: %s" msgstr "Kapcsolódva az SQLite adatbázishoz: %s" -#: fpdb.pyw:907 +#: fpdb.pyw:906 msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " msgstr "" "MySQL kliens jelenti: 2002-es vagy 2003-as hiba. Nem sikerült a kapcsolódás " "- " -#: fpdb.pyw:908 +#: fpdb.pyw:907 msgid "Please check that the MySQL service has been started" msgstr "Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" -#: fpdb.pyw:912 +#: fpdb.pyw:911 msgid "Postgres client reports: Unable to connect - " msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " -#: fpdb.pyw:913 +#: fpdb.pyw:912 msgid "Please check that the Postgres service has been started" msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" -#: fpdb.pyw:937 +#: fpdb.pyw:936 msgid "Strong Warning - Invalid database version" msgstr "Nyomatékos figyelmeztetés - Érvénytelen adatbázis verzió" -#: fpdb.pyw:939 +#: fpdb.pyw:938 msgid "An invalid DB version or missing tables have been detected." msgstr "Érvénytelen adatbázis verziót vagy hiányzó táblá(ka)t találtam." -#: fpdb.pyw:943 +#: fpdb.pyw:942 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." @@ -3014,7 +3011,7 @@ msgstr "" "Ez a hiba nem feltétlenül végzetes, de erősen javasolt a táblák " "újragenerálása az Adatbázis menü használatával." -#: fpdb.pyw:947 +#: fpdb.pyw:946 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." @@ -3023,13 +3020,13 @@ msgstr "" "kiléphet, tönkretehet adatokat, stb." # FIXME: would need a different word ordering in Hungarian -#: fpdb.pyw:960 +#: fpdb.pyw:959 msgid "Status: Connected to %s database named %s on host %s" msgstr "" "Állapot: Kapcsolódva a(z) %s adatbázis-kezelő %s nevű adatbázisához a(z) %s " "kiszolgálón" -#: fpdb.pyw:970 +#: fpdb.pyw:969 msgid "" "\n" "Global lock taken by" @@ -3037,7 +3034,7 @@ msgstr "" "\n" "Globális zárolást végzett:" -#: fpdb.pyw:973 +#: fpdb.pyw:972 msgid "" "\n" "Failed to get global lock, it is currently held by" @@ -3045,43 +3042,43 @@ msgstr "" "\n" "Globális zárolás meghiúsult, jelenleg már zárolta:" -#: fpdb.pyw:983 +#: fpdb.pyw:982 msgid "Quitting normally" msgstr "Normál kilépés" -#: fpdb.pyw:1007 +#: fpdb.pyw:1006 msgid "Global lock released.\n" msgstr "Globális zárolás feloldva.\n" -#: fpdb.pyw:1014 +#: fpdb.pyw:1013 msgid "Auto Import" msgstr "AutoImport" -#: fpdb.pyw:1021 +#: fpdb.pyw:1020 msgid "Bulk Import" msgstr "Importálás" -#: fpdb.pyw:1027 +#: fpdb.pyw:1026 msgid "eMail Import" msgstr "Email import" -#: fpdb.pyw:1034 +#: fpdb.pyw:1033 msgid "Ring Player Stats" msgstr "Készpénzes statisztikák" -#: fpdb.pyw:1040 +#: fpdb.pyw:1039 msgid "Tourney Player Stats" msgstr "Versenystatisztikák" -#: fpdb.pyw:1046 +#: fpdb.pyw:1045 msgid "Tourney Viewer" msgstr "Verseny nézet" -#: fpdb.pyw:1052 +#: fpdb.pyw:1051 msgid "Positional Stats" msgstr "Pozíciós statisztikák" -#: fpdb.pyw:1062 +#: fpdb.pyw:1061 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -3139,18 +3136,18 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" -"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " +"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." -#: fpdb.pyw:1079 +#: fpdb.pyw:1078 msgid "Help" msgstr "Súgó" -#: fpdb.pyw:1086 +#: fpdb.pyw:1085 msgid "Graphs" msgstr "Grafikonok" -#: fpdb.pyw:1138 +#: fpdb.pyw:1137 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " @@ -3160,15 +3157,15 @@ msgstr "" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " "fájlokba itt:\n" -#: fpdb.pyw:1167 +#: fpdb.pyw:1166 msgid "fpdb starting ..." msgstr "fpdb indítása ..." -#: fpdb.pyw:1224 +#: fpdb.pyw:1223 msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" -#: fpdb.pyw:1243 +#: fpdb.pyw:1242 msgid "" "WARNING: Unable to find output hh directory %s\n" "\n" @@ -3179,7 +3176,7 @@ msgstr "" " Kattints az IGEN gombra a könyvtár létrehozásához, vagy a NEM gombra egy " "másik könyvtár választásához." -#: fpdb.pyw:1251 +#: fpdb.pyw:1250 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -3187,10 +3184,6 @@ msgstr "" "FIGYELEM: Nem sikerült a leosztásarchívum könyvtárának létrehozása. Az " "importálás valószínűleg nem fog működni." -#: fpdb.pyw:1256 -msgid "Select HH Output Directory" -msgstr "Válaszd ki a leosztásarchívum könyvtárát" - #: fpdb_import.py:60 msgid "Import database module: MySQLdb not found" msgstr "Nem található a következő adatbázis-modul: MySQLdb" @@ -3326,6 +3319,12 @@ msgstr "" "Nem találhatóak a GTK könyvtárak az útvonaladban - telepítsd a GTK-t, vagy " "állítsd be kézzel az útvonalat\n" +#~ msgid "_Set HandHistory Archive Directory" +#~ msgstr "Leo_sztásarchívum könyvtára" + +#~ msgid "Select HH Output Directory" +#~ msgstr "Válaszd ki a leosztásarchívum könyvtárát" + #~ msgid "commit finished ok, i = " #~ msgstr "a véglegesítés sikeresen befejeződött, i = " diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index ced7701f08ab78ef87e8c9878ed33e1c38362f9f..2d28524ba3177967c7dbfdfd77bc669dd8231db4 100644 GIT binary patch delta 13721 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 TeOTn>IrQkFx5xANkk|hK8|ouB diff --git a/pyfpdb/locale/update-po-files.sh b/pyfpdb/locale/update-po-files.sh index cf0d0e81..f39b143d 100755 --- a/pyfpdb/locale/update-po-files.sh +++ b/pyfpdb/locale/update-po-files.sh @@ -1,2 +1,3 @@ msgmerge --update fpdb-hu_HU.po fpdb-en_GB.po +msgmerge --update fpdb-de_DE.po fpdb-en_GB.po From 1e998f478093d12340a800111936ace7dc404494 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 18:54:43 +0200 Subject: [PATCH 52/58] l10n: cola skipped this mo file --- pyfpdb/locale/de/LC_MESSAGES/fpdb.mo | Bin 423 -> 1048 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo index 646ce3997b7c3460bbe747c345026a010c787326..291c02d07d070c90c03e5dbad86cca418d8d7d00 100644 GIT binary patch literal 1048 zcma))F>ezw6vq!yM0G_B6fq!#%+{*9^b(OOT$>775=hmE(4-aH;pAQ}CKvnU^HpSL z0tOZ&#EzKR5euJz6^WJ401|&I*QPLW(!1Y#_Ot!`{QrJs;jM%3GVBKIwGGaEzu>#D z-vt-X&En;PH^F7ht%8@pI(QM>1FwSz;5BdpUI1Sdd4bGJ2j zyUu-Xc%Ns)x`rE(88OJ5j;3%(n&f~oCu~hprOgSM8EKWrBSvj5lJ!>mUdIXd6^~d) ztD#7Ut@O1TlU#K|WJo7`oC~b(@?)B(7!@fb{B@>!Mg!xuBJYTFCX@`AU#j?}JARd= zNuIG-7`OAN=k01jrAm4zodQ@{;G#rv--NA_GlYXvaww2As?q;WBq)S2$)i&14IOj2WJ>rvq zHPfhnIu@{q+;*$onBS;e^4(oL4oRFkO;Ns~=Vm=k(5X#^?R7?`e%NbzwRxVc4$t8= z5rK&sE%KwRpWS`4%R)`5YaKeU==wOoMGPdDNPr~Z! zBw#7&vx1sQiG}+-!c(k_d72voy*%W3Y9=JVes;ngB8gdu)yj^A-IT;&L>l=Lj$vq- L5%C$7*<$_x{u~}^ delta 312 zcmbQiv79;lo)F7a1|VPtVi_Pd0dbIk50K3Q#J)hx3dBJ`?8wN#5CP@S0;*uY z!6P-NfFT}4PTs&MS|8x(?Ct38su1QH6zu8m#}(ioqU&6gnpl#VpQr1RSdwa`U}Ruu zple{EYiO)sU}9xxpzZ7$90F9R8S&UE@>FOAy>+7%U;;7)^Z{_Q$9p&%m%H@+- zT%sFNl$ckXlUR~pWToI1>f@u}=jiLIVB_j*;OOb&;OOEKu6re1zgy4~asCR66plC;SOnB+KI{ha+>JpJ4!YcebHdSvFL Jr2>5hrU0S8N>Ts- From 62bd04661a63ecd9feb13dacfc4db1c82b9646a9 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Thu, 26 Aug 2010 20:08:34 +0200 Subject: [PATCH 53/58] fix typo in config example and .py --- pyfpdb/Configuration.py | 4 ++-- pyfpdb/HUD_config.xml.example | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index 980fc8e5..f89c318a 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -525,12 +525,12 @@ class General(dict): except KeyError: self["version"]=0 self["ui_language"]="system" - self["config_difficuly"]="expert" + self["config_difficulty"]="expert" def get_defaults(self): self["version"]=0 self["ui_language"]="system" - self["config_difficuly"]="expert" + self["config_difficulty"]="expert" self["config_wrap_len"]="-1" self["day_start"]="5" diff --git a/pyfpdb/HUD_config.xml.example b/pyfpdb/HUD_config.xml.example index fca23a39..068a5c61 100644 --- a/pyfpdb/HUD_config.xml.example +++ b/pyfpdb/HUD_config.xml.example @@ -9,7 +9,7 @@ config_wrap_len="-1" day_start="5" ui_language="system" - config_difficuly="expert" + config_difficulty="expert" /> From a28b0d8dbb0a4aecfff42fd9466830d07f5aaba0 Mon Sep 17 00:00:00 2001 From: gimick Date: Thu, 26 Aug 2010 22:11:42 +0100 Subject: [PATCH 54/58] py2exe: restructure - .906 locale changes, now builds in packaging/windows --- .../windows/py2exeWalkthroughPython26.txt | 477 +++++++++--------- {pyfpdb => packaging/windows}/py2exe_setup.py | 198 ++++---- 2 files changed, 324 insertions(+), 351 deletions(-) rename {pyfpdb => packaging/windows}/py2exe_setup.py (55%) diff --git a/packaging/windows/py2exeWalkthroughPython26.txt b/packaging/windows/py2exeWalkthroughPython26.txt index b023d80d..c4f0b66b 100644 --- a/packaging/windows/py2exeWalkthroughPython26.txt +++ b/packaging/windows/py2exeWalkthroughPython26.txt @@ -1,239 +1,238 @@ -PY2EXE walkthrough for Python 2.6 & FPDB 0.20 -created on 22nd June 2010 by Gimick - -This walkthrough is derived from comments in the py2exe script made by Ray and SqlCoder -Additional information, formatting, updating to Python 2.6 and sequencing added by Gimick -Content is available under the the GNU Affero General Public License version 3 - - - -Step 0 Get a fresh XP installation ----------------------------------- - -0.1/ Using XPhome or Pro 32bit - -0.2/ Ensure the CPU supports SSE2 instruction set or better. - - -Step 1, dependency install --------------------------- - -1.1/ install the following in sequence (accept all default options) there should be no errors ! - -Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi -pywin 214 ... http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download -matplotlib 0.99.3 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.win32-py2.6.exe/download -pygtk 2.16.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0.win32-py2.6.exe -pycairo 1.8.6 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe -pyGobject 2.20.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe -py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download -psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe -(Note: stickpeople is the offical repository, not a community build) - - -1.2/ MySQL - -MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe - -This is an intaller built from source by gimick. There are no official mysql-python2.6 builds for windows. - -Community builds are also available from some developers. see www.codegood.com for example. - - -1.3/ pytz fixup to work in an executable package - -pytz needs runtime access to timezone definition files. pytz is hard-coded to search in the directory from which the pytz .py modules are being run. -In a py2exe package, this directory is actually a library.zip container file, so windows cannot find the timezone definitions, and will crash the app. - -We need to make a one-line change to pytz to search in the current working directory (which is not a container), and not the application directory. -The py2exe script copies the timezone datafiles into the package folder pyfpdb/zoneinfo. - -Thanks to Jeff Peck gmail.com> on the py2exe mailing list for documenting this problem and solution. - -1.3.1/ Navigate to C:\Python26\Lib\site-packages\pytz -1.3.2/ Edit __init__.py -1.3.3/ At line 55 replace the following line(s): - - filename = os.path.join(os.path.dirname(__file__), - 'zoneinfo', *name_parts) - -with this line: - - filename = os.path.join(os.getcwd(), 'zoneinfo', *name_parts) - -1.3.4/ Save and exit - - - -Step 2 Setup GTK ------------------ - -There are quite a few GTK packages needed, and rather than install them individually, I used the official AllinOne from the GTK project. - -2,1/ Create a new folder c:\GTK - -2.2/ Extract the following zip file into c:\GTK - -GTK+ all in one 2.20.0 ... http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.20/gtk+-bundle_2.20.0-20100406_win32.zip - -2.3/ If everything has worked, you should have c:\GTK\bin \etc \lib \src and so on created. - - -Step 3 Set GTK into the PATH variable -------------------------------------- - -The path for GTK isn't set by default, so need to let the o/s know where the GTK stuff is. - -3.1/ Rightclick on mycomputer to show system properties -3.2/ select advanced/environment Variables -3.3/ in "system variables" NOT "user variables" do the following -3.3.1/ create a new item as name: GTK_BASEPATH value: c:\GTK -3.3.2/ edit the item "path", press home to get to the first character and insert the following text, (no quotes, including semicolon) %GTK_BASEPATH%\bin; - -3.4/ to check, open command prompt and do: - -dos>path ... system should respond with ... PATH=c:\GTK\bin;C:\WIN........ - -3.5/ Give it a spin to test (hopefully an application will start, if not, something has gone wrong) - -dos> gtk-demo - - -Step 4 Get the fpdb GIT tree ----------------------------- - -4.1/ Best to take a copy to work with; following steps will assume that the fpdb folder is on the Desktop - - -5.3/ Install correct Numpy for this build ------------------------------------------ - -Numpy needs special handling, as by default it will install an optimised version for the SSE level of your CPU (SSE3, SSE2 or noSSE). This means that the completed package will not run on an older CPU. - -For this reason, do not just run the installer downloaded. - -5.3.1/ download the package to the Desktop - -numpy 1.4.1 ... http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1-win32-superpack-python2.6.exe/download - -5.3.2/ remove any existing numpy installation - -Go to the control panel and uninstall "Python2.6 numpy-1.4.1" - -5.3.3/ If you are wanting to build a package which works on all CPU's, install noSSE as follows: - -dos> cd Desktop -dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch nosse - -5.3.4/ If you are wanting to build a package which works on SSE2 and better CPU's, install SSE2 as follows: - -dos> cd Desktop -dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch sse2 - -5.3.4/ At the end of the installation, click on "show details" to confirm the installation. - -For no SSE: - -"Target CPU handles SSE2" -"Target CPU handles SSE3" -"nosse install (arch value: nosse)" -"Install NO SSE" -Extract: numpy-1.4.1-nosse.exe... 100% -Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-nosse.exe" -Completed - -For SSE2: - -"Target CPU handles SSE2" -"Target CPU handles SSE3" -"sse2 install (arch value: sse2)" -"Install SSE 2" -Extract: numpy-1.4.1-sse2.exe... 100% -Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-sse2.exe" -Completed - - -Step 6 Run py2exe to generate fpdb.exe --------------------------------------- - -6.1/ Run the script to create the fpdb.exe bundle - -dos> cd Desktop\fpdb\pyfpdb -dos> c:\python26\python.exe py2exe_setup.py py2exe - -wait a while, watch lots of copying and whatever. - -6.2/ You should next get prompted for the GTK folder. -c:\GTK - -6.3/ If there are no errors reported, it has probably worked, we will test soon. - -Build notes: - -There is a warning about dll's not included "umath.pyd - c:\Python26\lib\site-packages\numpy\core\umath.pyd" - reason for this is not understood at present. (Umath is apparently included in the built package). - - -Step 7 not currently used -------------------------- - -Has been deleted - - -Step 8 Drag out the completed bundle ------------------------------------- - -py2exe creates a new folder for the created software bundle, drag this out to the desktop for ease of working. -As far as I know you cannot rerun the build if the fpdb-yyyymmdd-exe exists in the tree, so dragging this out -also allows the build to re-run at step 6. - -8.1/ Drag Desktop\fpdb\pyfpdb\fpdb-yyyymmdd-exe to Desktop\ - - -Step 9 Initial run ------------------- - -9.1/ Open the Desktop\fpdb-yyyymmdd-exe folder -9.2/ In explorer...tools...folder options...View uncheck "Hide extensions for known file types" -9.3/ Double click run_fpdb.bat -9.4/ check the contents of pyfpdb\fpdb.exe.log, deal with any errors thrown - -9.5/ hopefully, fpdb will run -9.6/ Try out a few options, deal with any errors reported - -Observe that the msvcp90.dll was provided by the python runtime package, so we don't have to install the separate package from Microsoft. End-users will, however need the dependency. - - -Step 11 pruning ---------------- - -11.1/ The generated folder is 100+MB and can be pruned by removing the following directories: - -pyfpdb/lib/glib-2.0 -pyfpdb/lib/pkgconfig -pyfpdb/share/aclocal -pyfpdb/share/doc -pyfpdb/share/glib-2.0 -pyfpdb/share/gtk-2.0 -pyfpdb/share/gtk-doc -pyfpdb/share/locale -pyfpdb/share/man - - -Step 12 rename folder ---------------------- - -Rename the folder to something meaningful to the community. If you have built for NoSSE, append anyCPU to the directory name. - - -Step 13 Compress to executable archive --------------------------------------- - -13.1/ Download and install 7zip 914 ... http://sourceforge.net/projects/sevenzip/files/7-Zip/9.14/7z914.exe/download -13.2/ Rightclick on fpdb executable folder, select 7zip Add to archive... select SFX archive option switch -13.3/ Test the created exe file - -Step 14 If you need to build again for a different SSE level ------------------------------------------------------------- - -Go back to step 5 and run again. - +PY2EXE walkthrough for Python 2.6 & FPDB 0.20 +created on 22nd June 2010 by Gimick + +This walkthrough is derived from comments in the py2exe script made by Ray and SqlCoder +Additional information, formatting, updating to Python 2.6 and sequencing added by Gimick +Content is available under the the GNU Affero General Public License version 3 + + + +Step 0 Get a fresh XP installation +---------------------------------- + +0.1/ Using XPhome or Pro 32bit + +0.2/ Ensure the CPU supports SSE2 instruction set or better. + + +Step 1, dependency install +-------------------------- + +1.1/ install the following in sequence (accept all default options) there should be no errors ! + +Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi +pywin 214 ... http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download +matplotlib 0.99.3 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.win32-py2.6.exe/download +pygtk 2.16.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0.win32-py2.6.exe +pycairo 1.8.6 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe +pyGobject 2.20.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe +py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download +psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe +(Note: stickpeople is the offical repository, not a community build) + + +1.2/ MySQL + +MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe + +This is an intaller built from source by gimick. There are no official mysql-python2.6 builds for windows. + +Community builds are also available from some developers. see www.codegood.com for example. + + +1.3/ pytz fixup to work in an executable package + +pytz needs runtime access to timezone definition files. pytz is hard-coded to search in the directory from which the pytz .py modules are being run. +In a py2exe package, this directory is actually a library.zip container file, so windows cannot find the timezone definitions, and will crash the app. + +We need to make a one-line change to pytz to search in the current working directory (which is not a container), and not the application directory. +The py2exe script copies the timezone datafiles into the package folder pyfpdb/zoneinfo. + +Thanks to Jeff Peck gmail.com> on the py2exe mailing list for documenting this problem and solution. + +1.3.1/ Navigate to C:\Python26\Lib\site-packages\pytz +1.3.2/ Edit __init__.py +1.3.3/ At line 55 replace the following line(s): + + filename = os.path.join(os.path.dirname(__file__), + 'zoneinfo', *name_parts) + +with this line: + + filename = os.path.join(os.getcwd(), 'zoneinfo', *name_parts) + +1.3.4/ Save and exit + + + +Step 2 Setup GTK +----------------- + +There are quite a few GTK packages needed, and rather than install them individually, I used the official AllinOne from the GTK project. + +2,1/ Create a new folder c:\GTK + +2.2/ Extract the following zip file into c:\GTK + +GTK+ all in one 2.20.0 ... http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.20/gtk+-bundle_2.20.0-20100406_win32.zip + +2.3/ If everything has worked, you should have c:\GTK\bin \etc \lib \src and so on created. + + +Step 3 Set GTK into the PATH variable +------------------------------------- + +The path for GTK isn't set by default, so need to let the o/s know where the GTK stuff is. + +3.1/ Rightclick on mycomputer to show system properties +3.2/ select advanced/environment Variables +3.3/ in "system variables" NOT "user variables" do the following +3.3.1/ create a new item as name: GTK_BASEPATH value: c:\GTK +3.3.2/ edit the item "path", press home to get to the first character and insert the following text, (no quotes, including semicolon) %GTK_BASEPATH%\bin; + +3.4/ to check, open command prompt and do: + +dos>path ... system should respond with ... PATH=c:\GTK\bin;C:\WIN........ + +3.5/ Give it a spin to test (hopefully an application will start, if not, something has gone wrong) + +dos> gtk-demo + + +Step 4 Get the fpdb GIT tree +---------------------------- + +4.1/ Best to take a copy to work with; following steps will assume that the fpdb folder is on the Desktop +4.2/ Edit the script in packaging/windows/py2exe_setup.py to set the fpdbver variable for this release + + +5.3/ Install correct Numpy for this build +----------------------------------------- + +Numpy needs special handling, as by default it will install an optimised version for the SSE level of your CPU (SSE3, SSE2 or noSSE). This means that the completed package will not run on an older CPU. + +For this reason, do not just run the installer downloaded. + +5.3.1/ download the package to the Desktop + +numpy 1.4.1 ... http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1-win32-superpack-python2.6.exe/download + +5.3.2/ remove any existing numpy installation + +Go to the control panel and uninstall "Python2.6 numpy-1.4.1" + +5.3.3/ If you are wanting to build a package which works on all CPU's, install noSSE as follows: + +dos> cd Desktop +dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch nosse + +5.3.4/ If you are wanting to build a package which works on SSE2 and better CPU's, install SSE2 as follows: + +dos> cd Desktop +dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch sse2 + +5.3.4/ At the end of the installation, click on "show details" to confirm the installation. + +For no SSE: + +"Target CPU handles SSE2" +"Target CPU handles SSE3" +"nosse install (arch value: nosse)" +"Install NO SSE" +Extract: numpy-1.4.1-nosse.exe... 100% +Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-nosse.exe" +Completed + +For SSE2: + +"Target CPU handles SSE2" +"Target CPU handles SSE3" +"sse2 install (arch value: sse2)" +"Install SSE 2" +Extract: numpy-1.4.1-sse2.exe... 100% +Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-sse2.exe" +Completed + + +Step 6 Run py2exe to generate fpdb.exe +-------------------------------------- + +6.1/ Run the script to create the fpdb.exe bundle + +dos> cd Desktop\fpdb\packaging\windows +dos> c:\python26\python.exe py2exe_setup.py py2exe + +wait a while, watch lots of copying and whatever. + +6.2/ You should next get prompted for the GTK folder. +c:\GTK + +6.3/ If there are no errors reported, it has probably worked, we will test soon. + +Build notes: + +There is a warning about dll's not included "umath.pyd - c:\Python26\lib\site-packages\numpy\core\umath.pyd" - reason for this is not understood at present. (Umath is apparently included in the built package). + + +Step 7 not currently used +------------------------- + +Has been deleted + + +Step 8 Drag out the completed bundle +------------------------------------ + +py2exe creates a new folder for the created software bundle, drag this out to the desktop for ease of working. + +8.1/ Drag Desktop\fpdb\packaging\windows\fpdb-n.nn.nnn to Desktop\ + + +Step 9 Initial run +------------------ + +9.1/ Open the Desktop\fpdb-n.nn.nnn folder +9.2/ In explorer...tools...folder options...View uncheck "Hide extensions for known file types" +9.3/ Double click run_fpdb.bat +9.4/ check the contents of pyfpdb\fpdb.exe.log, deal with any errors thrown + +9.5/ hopefully, fpdb will run +9.6/ Try out a few options, deal with any errors reported + +Observe that the msvcp90.dll was provided by the python runtime package, so we don't have to install the separate package from Microsoft. End-users will, however need the dependency. + + +Step 11 pruning +--------------- + +11.1/ The generated folder is 100+MB and can be pruned by removing the following directories: + +pyfpdb/lib/glib-2.0 +pyfpdb/lib/pkgconfig +pyfpdb/share/aclocal +pyfpdb/share/doc +pyfpdb/share/glib-2.0 +pyfpdb/share/gtk-2.0 +pyfpdb/share/gtk-doc +pyfpdb/share/locale +pyfpdb/share/man + + +Step 12 rename folder +--------------------- + +If needed, rename the folder to something meaningful to the community. If you have built for NoSSE, append anyCPU to the directory name. + + +Step 13 Compress to executable archive +-------------------------------------- + +13.1/ Download and install 7zip 914 ... http://sourceforge.net/projects/sevenzip/files/7-Zip/9.14/7z914.exe/download +13.2/ Rightclick on fpdb executable folder, select 7zip Add to archive... select SFX archive option switch +13.3/ Test the created exe file + +Step 14 If you need to build again for a different SSE level +------------------------------------------------------------ + +Go back to step 5 and run again. + diff --git a/pyfpdb/py2exe_setup.py b/packaging/windows/py2exe_setup.py similarity index 55% rename from pyfpdb/py2exe_setup.py rename to packaging/windows/py2exe_setup.py index 9dbda8dd..8bf723a4 100644 --- a/pyfpdb/py2exe_setup.py +++ b/packaging/windows/py2exe_setup.py @@ -32,14 +32,10 @@ Py2exe script for fpdb. #HOW TO USE this script: # -#- cd to the folder where this script is stored, usually .../pyfpdb. -# [If there are build and dist subfolders present , delete them to get -# rid of earlier builds. Update: script now does this for you] -#- Run the script with "py2exe_setup.py py2exe" -#- You will frequently get messages about missing .dll files. E. g., -# MSVCP90.dll. These are somewhere in your windows install, so you -# can just copy them to your working folder. (or just assume other -# person will have them? any copyright issues with including them?) +#- cd to the folder where this script is stored, usually ...packaging/windows +#- Run the script with python "py2exe_setup.py py2exe" +#- You will frequently get messages about missing .dll files.just assume other +# person will have them? we have copyright issues including some dll's #- If it works, you'll have a new dir fpdb-YYYYMMDD-exe which should # contain 2 dirs; gfx and pyfpdb and run_fpdb.bat #- [ This bit is now automated: @@ -49,27 +45,11 @@ Py2exe script for fpdb. #- You can (should) then prune the etc/, lib/ and share/ folders to # remove components we don't need. (see output at end of program run) -# sqlcoder notes: this worked for me with the following notes: -#- I used the following versions: -# python 2.5.4 -# gtk+ 2.14.7 (gtk_2.14.7-20090119) -# pycairo 1.4.12-2 -# pygobject 2.14.2-2 -# pygtk 2.12.1-3 -# matplotlib 0.98.3 -# numpy 1.4.0 -# py2exe-0.6.9 for python 2.5 -# -#- I also copied these dlls manually from /bin to /dist : -# -# libgobject-2.0-0.dll -# libgdk-win32-2.0-0.dll -# -# Now updated to work with python 2.6 + related dependencies # See walkthrough in packaging directory for versions used -# Updates to this script have broken python 2.5 compatibility (gio module, msvcr71 references now msvcp90) # steffeN: Doesnt seem necessary to gettext-ify this, but feel free to if you disagree +# Gimick: restructure to allow script to run from packaging/windows directory, and not to write to source pyfpdb + import os import sys @@ -86,33 +66,14 @@ import py2exe import glob import matplotlib import shutil -from datetime import date +#from datetime import date -origIsSystemDLL = py2exe.build_exe.isSystemDLL def isSystemDLL(pathname): #dwmapi appears to be vista-specific file, not XP if os.path.basename(pathname).lower() in ("dwmapi.dll"): return 0 return origIsSystemDLL(pathname) -py2exe.build_exe.isSystemDLL = isSystemDLL - - -def remove_tree(top): - # Delete everything reachable from the directory named in 'top', - # assuming there are no symbolic links. - # CAUTION: This is dangerous! For example, if top == '/', it - # could delete all your disk files. - # sc: Nicked this from somewhere, added the if statement to try - # make it a bit safer - if top in ('build','dist','pyfpdb',dist_dirname) and os.path.basename(os.getcwd()) == 'pyfpdb': - #print "removing directory '"+top+"' ..." - for root, dirs, files in os.walk(top, topdown=False): - for name in files: - os.remove(os.path.join(root, name)) - for name in dirs: - os.rmdir(os.path.join(root, name)) - os.rmdir(top) def test_and_remove(top): if os.path.exists(top): @@ -121,31 +82,64 @@ def test_and_remove(top): else: print "Unexpected file '"+top+"' found. Exiting." exit() + +def remove_tree(top): + # Delete everything reachable from the directory named in 'top', + # assuming there are no symbolic links. + # CAUTION: This is dangerous! For example, if top == '/', it + # could delete all your disk files. + # sc: Nicked this from somewhere, added the if statement to try + # make it a bit safer + if top in ('build','dist',distdir) and os.path.basename(os.getcwd()) == 'windows': + #print "removing directory '"+top+"' ..." + for root, dirs, files in os.walk(top, topdown=False): + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + os.rmdir(os.path.join(root, name)) + os.rmdir(top) -today = date.today().strftime('%Y%m%d') -print "\n" + r"Output will be created in \pyfpdb\ and \fpdb_"+today+'\\' -#print "Enter value for XXX (any length): ", # the comma means no newline -#xxx = sys.stdin.readline().rstrip() -dist_dirname = r'fpdb-' + today + '-exe' -dist_dir = r'..\fpdb-' + today + '-exe' -print +def copy_tree(source,destination): + source = source.replace('\\', '\\\\') + destination = destination.replace('\\', '\\\\') + print "*** Copying " + source + " to " + destination + " ***" + shutil.copytree( source, destination ) -# remove build and dist dirs if they exist +def copy_file(source,destination): + source = source.replace('\\', '\\\\') + destination = destination.replace('\\', '\\\\') + print "*** Copying " + source + " to " + destination + " ***" + shutil.copy( source, destination ) + + +fpdbver = '0.20.906' + +distdir = r'fpdb-' + fpdbver +rootdir = r'../../' #cwd is normally /packaging/windows +pydir = rootdir+'pyfpdb/' +gfxdir = rootdir+'gfx/' +sys.path.append( pydir ) # allows fpdb modules to be found by options/includes below + +print "\n" + r"Output will be created in "+distdir + +print "*** Cleaning working folders ***" test_and_remove('dist') test_and_remove('build') -test_and_remove('pyfpdb') +test_and_remove(distdir) -test_and_remove(dist_dirname) +print "*** Building now in dist folder ***" +origIsSystemDLL = py2exe.build_exe.isSystemDLL +py2exe.build_exe.isSystemDLL = isSystemDLL setup( name = 'fpdb', description = 'Free Poker DataBase', - version = '0.20.903', + version = fpdbver, - windows = [ {'script': 'fpdb.pyw', "icon_resources": [(1, "../gfx/fpdb_large_icon.ico")]}, - {'script': 'HUD_main.pyw', }, - {'script': 'Configuration.py', } + windows = [ {'script': pydir+'fpdb.pyw', "icon_resources": [(1, gfxdir+"fpdb_large_icon.ico")]}, + {'script': pydir+'HUD_main.pyw', }, + {'script': pydir+'Configuration.py', } ], options = {'py2exe': { @@ -158,74 +152,56 @@ setup( ,'PartyPokerToFpdb', 'PokerStarsToFpdb' ,'UltimateBetToFpdb', 'Win2dayToFpdb' ], - 'excludes' : ['_tkagg', '_agg2', 'cocoaagg', 'fltkagg'], # surely we need this? '_gtkagg' + 'excludes' : ['_tkagg', '_agg2', 'cocoaagg', 'fltkagg'], 'dll_excludes': ['libglade-2.0-0.dll', 'libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll' , 'msvcr90.dll', 'MSVCP90.dll', 'MSVCR90.dll','msvcr90.dll'], # these are vis c / c++ runtimes, and must not be redistributed } }, # files in 2nd value in tuple are moved to dir named in 1st value - #data_files updated for new locations of licences + readme nolonger exists - data_files = [('', ['HUD_config.xml.example', 'Cards01.png', 'logging.conf', '../agpl-3.0.txt', '../fdl-1.2.txt', '../gpl-3.0.txt', '../gpl-2.0.txt', '../mit.txt', '../readme.txt']) - ,(dist_dir, [r'..\run_fpdb.bat']) - ,( dist_dir + r'\gfx', glob.glob(r'..\gfx\*.*') ) - # line below has problem with fonts subdir ('not a regular file') - #,(r'matplotlibdata', glob.glob(r'c:\python25\Lib\site-packages\matplotlib\mpl-data\*')) + # this code will not walk a tree + # Note: cwd for 1st value is packaging/windows/dist (this is confusing BTW) + # Note: only include files here which are to be put into the package pyfpdb folder or subfolders + + data_files = [('', glob.glob(rootdir+'*.txt')) + ,('', [pydir+'HUD_config.xml.example',pydir+'Cards01.png', pydir+'logging.conf']) ] + matplotlib.get_py2exe_datafiles() ) -# rename completed output package as pyfpdb -os.rename('dist', 'pyfpdb') +# ,(distdir, [rootdir+'run_fpdb.bat']) +# ,(distdir+r'\gfx', glob.glob(gfxdir+'*.*')) +# ] + +print "*** py2exe build phase complete ***" -# pull pytz zoneinfo into pyfpdb package folder -src_dir = r'c:\python26\Lib\site-packages\pytz\zoneinfo' -src_dir = src_dir.replace('\\', '\\\\') -dest_dir = os.path.join(r'pyfpdb', 'zoneinfo') -shutil.copytree( src_dir, dest_dir ) +# copy zone info and fpdb translation folders +copy_tree (r'c:\python26\Lib\site-packages\pytz\zoneinfo', os.path.join(r'dist', 'zoneinfo')) +copy_tree (pydir+r'locale', os.path.join(r'dist', 'locale')) -# shunt pyfpdb package over to the distribution folder -dest = os.path.join(dist_dirname, 'pyfpdb') -# print "try renaming pyfpdb to", dest -dest = dest.replace('\\', '\\\\') -# print "dest is now", dest -os.rename( 'pyfpdb', dest ) +# create distribution folder and populate with gfx + bat +copy_tree (gfxdir, os.path.join(distdir, 'gfx')) +copy_file (rootdir+'run_fpdb.bat', distdir) -# prompt for gtk location +print "*** Renaming dist folder as distribution pyfpdb folder ***" +dest = os.path.join(distdir, 'pyfpdb') +os.rename( 'dist', dest ) +print "*** copying GTK runtime ***" gtk_dir = "" while not os.path.exists(gtk_dir): - print "Enter directory name for GTK (e.g. c:\code\gtk_2.14.7-20090119)\n: ", # the comma means no newline + print "Enter directory name for GTK (e.g. c:/gtk) : ", # the comma means no newline gtk_dir = sys.stdin.readline().rstrip() -print "\ncopying files and dirs from ", gtk_dir, "to", dest.replace('\\\\', '\\'), "..." -src = os.path.join(gtk_dir, 'bin', 'libgdk-win32-2.0-0.dll') -src = src.replace('\\', '\\\\') -shutil.copy( src, dest ) +print "*** copying GTK runtime ***" +dest = os.path.join(distdir, 'pyfpdb') +copy_file(os.path.join(gtk_dir, 'bin', 'libgdk-win32-2.0-0.dll'), dest ) +copy_file(os.path.join(gtk_dir, 'bin', 'libgobject-2.0-0.dll'), dest) +copy_tree(os.path.join(gtk_dir, 'etc'), os.path.join(dest, 'etc')) +copy_tree(os.path.join(gtk_dir, 'lib'), os.path.join(dest, 'lib')) +copy_tree(os.path.join(gtk_dir, 'share'), os.path.join(dest, 'share')) -src = os.path.join(gtk_dir, 'bin', 'libgobject-2.0-0.dll') -src = src.replace('\\', '\\\\') -shutil.copy( src, dest ) - -src_dir = os.path.join(gtk_dir, 'etc') -src_dir = src_dir.replace('\\', '\\\\') -dest_dir = os.path.join(dest, 'etc') -dest_dir = dest_dir.replace('\\', '\\\\') -shutil.copytree( src_dir, dest_dir ) - -src_dir = os.path.join(gtk_dir, 'lib') -src_dir = src_dir.replace('\\', '\\\\') -dest_dir = os.path.join(dest, 'lib') -dest_dir = dest_dir.replace('\\', '\\\\') -shutil.copytree( src_dir, dest_dir ) - -src_dir = os.path.join(gtk_dir, 'share') -src_dir = src_dir.replace('\\', '\\\\') -dest_dir = os.path.join(dest, 'share') -dest_dir = dest_dir.replace('\\', '\\\\') -shutil.copytree( src_dir, dest_dir ) - -print "\nIf py2exe was successful you should now have a new dir" -print dist_dirname+" in your pyfpdb dir" +print "*** All done! ***" +test_and_remove('build') +print distdir+" is in the pyfpdb dir" print """ The following dirs can probably removed to make the final package smaller: @@ -243,5 +219,3 @@ pyfpdb/share/themes/Default Use 7-zip to zip up the distribution and create a self extracting archive and that's it! """ - - From 709f4a2dfb18f1af4dd5baca8890e0217121b3ea Mon Sep 17 00:00:00 2001 From: gimick Date: Thu, 26 Aug 2010 22:18:45 +0100 Subject: [PATCH 55/58] py2exe: fix Walkthrough file encoding --- .../windows/py2exeWalkthroughPython26.txt | 476 +++++++++--------- 1 file changed, 238 insertions(+), 238 deletions(-) diff --git a/packaging/windows/py2exeWalkthroughPython26.txt b/packaging/windows/py2exeWalkthroughPython26.txt index c4f0b66b..68a74c81 100644 --- a/packaging/windows/py2exeWalkthroughPython26.txt +++ b/packaging/windows/py2exeWalkthroughPython26.txt @@ -1,238 +1,238 @@ -PY2EXE walkthrough for Python 2.6 & FPDB 0.20 -created on 22nd June 2010 by Gimick - -This walkthrough is derived from comments in the py2exe script made by Ray and SqlCoder -Additional information, formatting, updating to Python 2.6 and sequencing added by Gimick -Content is available under the the GNU Affero General Public License version 3 - - - -Step 0 Get a fresh XP installation ----------------------------------- - -0.1/ Using XPhome or Pro 32bit - -0.2/ Ensure the CPU supports SSE2 instruction set or better. - - -Step 1, dependency install --------------------------- - -1.1/ install the following in sequence (accept all default options) there should be no errors ! - -Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi -pywin 214 ... http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download -matplotlib 0.99.3 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.win32-py2.6.exe/download -pygtk 2.16.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0.win32-py2.6.exe -pycairo 1.8.6 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe -pyGobject 2.20.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe -py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download -psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe -(Note: stickpeople is the offical repository, not a community build) - - -1.2/ MySQL - -MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe - -This is an intaller built from source by gimick. There are no official mysql-python2.6 builds for windows. - -Community builds are also available from some developers. see www.codegood.com for example. - - -1.3/ pytz fixup to work in an executable package - -pytz needs runtime access to timezone definition files. pytz is hard-coded to search in the directory from which the pytz .py modules are being run. -In a py2exe package, this directory is actually a library.zip container file, so windows cannot find the timezone definitions, and will crash the app. - -We need to make a one-line change to pytz to search in the current working directory (which is not a container), and not the application directory. -The py2exe script copies the timezone datafiles into the package folder pyfpdb/zoneinfo. - -Thanks to Jeff Peck gmail.com> on the py2exe mailing list for documenting this problem and solution. - -1.3.1/ Navigate to C:\Python26\Lib\site-packages\pytz -1.3.2/ Edit __init__.py -1.3.3/ At line 55 replace the following line(s): - - filename = os.path.join(os.path.dirname(__file__), - 'zoneinfo', *name_parts) - -with this line: - - filename = os.path.join(os.getcwd(), 'zoneinfo', *name_parts) - -1.3.4/ Save and exit - - - -Step 2 Setup GTK ------------------ - -There are quite a few GTK packages needed, and rather than install them individually, I used the official AllinOne from the GTK project. - -2,1/ Create a new folder c:\GTK - -2.2/ Extract the following zip file into c:\GTK - -GTK+ all in one 2.20.0 ... http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.20/gtk+-bundle_2.20.0-20100406_win32.zip - -2.3/ If everything has worked, you should have c:\GTK\bin \etc \lib \src and so on created. - - -Step 3 Set GTK into the PATH variable -------------------------------------- - -The path for GTK isn't set by default, so need to let the o/s know where the GTK stuff is. - -3.1/ Rightclick on mycomputer to show system properties -3.2/ select advanced/environment Variables -3.3/ in "system variables" NOT "user variables" do the following -3.3.1/ create a new item as name: GTK_BASEPATH value: c:\GTK -3.3.2/ edit the item "path", press home to get to the first character and insert the following text, (no quotes, including semicolon) %GTK_BASEPATH%\bin; - -3.4/ to check, open command prompt and do: - -dos>path ... system should respond with ... PATH=c:\GTK\bin;C:\WIN........ - -3.5/ Give it a spin to test (hopefully an application will start, if not, something has gone wrong) - -dos> gtk-demo - - -Step 4 Get the fpdb GIT tree ----------------------------- - -4.1/ Best to take a copy to work with; following steps will assume that the fpdb folder is on the Desktop -4.2/ Edit the script in packaging/windows/py2exe_setup.py to set the fpdbver variable for this release - - -5.3/ Install correct Numpy for this build ------------------------------------------ - -Numpy needs special handling, as by default it will install an optimised version for the SSE level of your CPU (SSE3, SSE2 or noSSE). This means that the completed package will not run on an older CPU. - -For this reason, do not just run the installer downloaded. - -5.3.1/ download the package to the Desktop - -numpy 1.4.1 ... http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1-win32-superpack-python2.6.exe/download - -5.3.2/ remove any existing numpy installation - -Go to the control panel and uninstall "Python2.6 numpy-1.4.1" - -5.3.3/ If you are wanting to build a package which works on all CPU's, install noSSE as follows: - -dos> cd Desktop -dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch nosse - -5.3.4/ If you are wanting to build a package which works on SSE2 and better CPU's, install SSE2 as follows: - -dos> cd Desktop -dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch sse2 - -5.3.4/ At the end of the installation, click on "show details" to confirm the installation. - -For no SSE: - -"Target CPU handles SSE2" -"Target CPU handles SSE3" -"nosse install (arch value: nosse)" -"Install NO SSE" -Extract: numpy-1.4.1-nosse.exe... 100% -Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-nosse.exe" -Completed - -For SSE2: - -"Target CPU handles SSE2" -"Target CPU handles SSE3" -"sse2 install (arch value: sse2)" -"Install SSE 2" -Extract: numpy-1.4.1-sse2.exe... 100% -Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-sse2.exe" -Completed - - -Step 6 Run py2exe to generate fpdb.exe --------------------------------------- - -6.1/ Run the script to create the fpdb.exe bundle - -dos> cd Desktop\fpdb\packaging\windows -dos> c:\python26\python.exe py2exe_setup.py py2exe - -wait a while, watch lots of copying and whatever. - -6.2/ You should next get prompted for the GTK folder. -c:\GTK - -6.3/ If there are no errors reported, it has probably worked, we will test soon. - -Build notes: - -There is a warning about dll's not included "umath.pyd - c:\Python26\lib\site-packages\numpy\core\umath.pyd" - reason for this is not understood at present. (Umath is apparently included in the built package). - - -Step 7 not currently used -------------------------- - -Has been deleted - - -Step 8 Drag out the completed bundle ------------------------------------- - -py2exe creates a new folder for the created software bundle, drag this out to the desktop for ease of working. - -8.1/ Drag Desktop\fpdb\packaging\windows\fpdb-n.nn.nnn to Desktop\ - - -Step 9 Initial run ------------------- - -9.1/ Open the Desktop\fpdb-n.nn.nnn folder -9.2/ In explorer...tools...folder options...View uncheck "Hide extensions for known file types" -9.3/ Double click run_fpdb.bat -9.4/ check the contents of pyfpdb\fpdb.exe.log, deal with any errors thrown - -9.5/ hopefully, fpdb will run -9.6/ Try out a few options, deal with any errors reported - -Observe that the msvcp90.dll was provided by the python runtime package, so we don't have to install the separate package from Microsoft. End-users will, however need the dependency. - - -Step 11 pruning ---------------- - -11.1/ The generated folder is 100+MB and can be pruned by removing the following directories: - -pyfpdb/lib/glib-2.0 -pyfpdb/lib/pkgconfig -pyfpdb/share/aclocal -pyfpdb/share/doc -pyfpdb/share/glib-2.0 -pyfpdb/share/gtk-2.0 -pyfpdb/share/gtk-doc -pyfpdb/share/locale -pyfpdb/share/man - - -Step 12 rename folder ---------------------- - -If needed, rename the folder to something meaningful to the community. If you have built for NoSSE, append anyCPU to the directory name. - - -Step 13 Compress to executable archive --------------------------------------- - -13.1/ Download and install 7zip 914 ... http://sourceforge.net/projects/sevenzip/files/7-Zip/9.14/7z914.exe/download -13.2/ Rightclick on fpdb executable folder, select 7zip Add to archive... select SFX archive option switch -13.3/ Test the created exe file - -Step 14 If you need to build again for a different SSE level ------------------------------------------------------------- - -Go back to step 5 and run again. - +PY2EXE walkthrough for Python 2.6 & FPDB 0.20 +created on 22nd June 2010 by Gimick + +This walkthrough is derived from comments in the py2exe script made by Ray and SqlCoder +Additional information, formatting, updating to Python 2.6 and sequencing added by Gimick +Content is available under the the GNU Affero General Public License version 3 + + + +Step 0 Get a fresh XP installation +---------------------------------- + +0.1/ Using XPhome or Pro 32bit + +0.2/ Ensure the CPU supports SSE2 instruction set or better. + + +Step 1, dependency install +-------------------------- + +1.1/ install the following in sequence (accept all default options) there should be no errors ! + +Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi +pywin 214 ... http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.6.exe/download +matplotlib 0.99.3 ... http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.win32-py2.6.exe/download +pygtk 2.16.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.16/pygtk-2.16.0.win32-py2.6.exe +pycairo 1.8.6 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.6.win32-py2.6.exe +pyGobject 2.20.0 ... http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.20/pygobject-2.20.0.win32-py2.6.exe +py2exe 0.6.9 ... http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.6.exe/download +psycopg2 ... http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.2.1.win32-py2.6-pg8.4.3-release.exe +(Note: stickpeople is the offical repository, not a community build) + + +1.2/ MySQL + +MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe ... http://www.mediafire.com/file/iodnnnznmj1/MySQL-python-1.2.3.win32-py2.6-fpdb0.20.exe + +This is an intaller built from source by gimick. There are no official mysql-python2.6 builds for windows. + +Community builds are also available from some developers. see www.codegood.com for example. + + +1.3/ pytz fixup to work in an executable package + +pytz needs runtime access to timezone definition files. pytz is hard-coded to search in the directory from which the pytz .py modules are being run. +In a py2exe package, this directory is actually a library.zip container file, so windows cannot find the timezone definitions, and will crash the app. + +We need to make a one-line change to pytz to search in the current working directory (which is not a container), and not the application directory. +The py2exe script copies the timezone datafiles into the package folder pyfpdb/zoneinfo. + +Thanks to Jeff Peck gmail.com> on the py2exe mailing list for documenting this problem and solution. + +1.3.1/ Navigate to C:\Python26\Lib\site-packages\pytz +1.3.2/ Edit __init__.py +1.3.3/ At line 55 replace the following line(s): + + filename = os.path.join(os.path.dirname(__file__), + 'zoneinfo', *name_parts) + +with this line: + + filename = os.path.join(os.getcwd(), 'zoneinfo', *name_parts) + +1.3.4/ Save and exit + + + +Step 2 Setup GTK +----------------- + +There are quite a few GTK packages needed, and rather than install them individually, I used the official AllinOne from the GTK project. + +2,1/ Create a new folder c:\GTK + +2.2/ Extract the following zip file into c:\GTK + +GTK+ all in one 2.20.0 ... http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.20/gtk+-bundle_2.20.0-20100406_win32.zip + +2.3/ If everything has worked, you should have c:\GTK\bin \etc \lib \src and so on created. + + +Step 3 Set GTK into the PATH variable +------------------------------------- + +The path for GTK isn't set by default, so need to let the o/s know where the GTK stuff is. + +3.1/ Rightclick on mycomputer to show system properties +3.2/ select advanced/environment Variables +3.3/ in "system variables" NOT "user variables" do the following +3.3.1/ create a new item as name: GTK_BASEPATH value: c:\GTK +3.3.2/ edit the item "path", press home to get to the first character and insert the following text, (no quotes, including semicolon) %GTK_BASEPATH%\bin; + +3.4/ to check, open command prompt and do: + +dos>path ... system should respond with ... PATH=c:\GTK\bin;C:\WIN........ + +3.5/ Give it a spin to test (hopefully an application will start, if not, something has gone wrong) + +dos> gtk-demo + + +Step 4 Get the fpdb GIT tree +---------------------------- + +4.1/ Best to take a copy to work with; following steps will assume that the fpdb folder is on the Desktop +4.2/ Edit the script in packaging/windows/py2exe_setup.py to set the fpdbver variable for this release + + +5.3/ Install correct Numpy for this build +----------------------------------------- + +Numpy needs special handling, as by default it will install an optimised version for the SSE level of your CPU (SSE3, SSE2 or noSSE). This means that the completed package will not run on an older CPU. + +For this reason, do not just run the installer downloaded. + +5.3.1/ download the package to the Desktop + +numpy 1.4.1 ... http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1-win32-superpack-python2.6.exe/download + +5.3.2/ remove any existing numpy installation + +Go to the control panel and uninstall "Python2.6 numpy-1.4.1" + +5.3.3/ If you are wanting to build a package which works on all CPU's, install noSSE as follows: + +dos> cd Desktop +dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch nosse + +5.3.4/ If you are wanting to build a package which works on SSE2 and better CPU's, install SSE2 as follows: + +dos> cd Desktop +dos> numpy-1.4.1-win32-superpack-python2.6.exe /arch sse2 + +5.3.4/ At the end of the installation, click on "show details" to confirm the installation. + +For no SSE: + +"Target CPU handles SSE2" +"Target CPU handles SSE3" +"nosse install (arch value: nosse)" +"Install NO SSE" +Extract: numpy-1.4.1-nosse.exe... 100% +Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-nosse.exe" +Completed + +For SSE2: + +"Target CPU handles SSE2" +"Target CPU handles SSE3" +"sse2 install (arch value: sse2)" +"Install SSE 2" +Extract: numpy-1.4.1-sse2.exe... 100% +Execute: "C:\DOCUME~1\user\LOCALS~1\Temp\numpy-1.4.1-sse2.exe" +Completed + + +Step 6 Run py2exe to generate fpdb.exe +-------------------------------------- + +6.1/ Run the script to create the fpdb.exe bundle + +dos> cd Desktop\fpdb\packaging\windows +dos> c:\python26\python.exe py2exe_setup.py py2exe + +wait a while, watch lots of copying and whatever. + +6.2/ You should next get prompted for the GTK folder. +c:\GTK + +6.3/ If there are no errors reported, it has probably worked, we will test soon. + +Build notes: + +There is a warning about dll's not included "umath.pyd - c:\Python26\lib\site-packages\numpy\core\umath.pyd" - reason for this is not understood at present. (Umath is apparently included in the built package). + + +Step 7 not currently used +------------------------- + +Has been deleted + + +Step 8 Drag out the completed bundle +------------------------------------ + +py2exe creates a new folder for the created software bundle, drag this out to the desktop for ease of working. + +8.1/ Drag Desktop\fpdb\packaging\windows\fpdb-n.nn.nnn to Desktop\ + + +Step 9 Initial run +------------------ + +9.1/ Open the Desktop\fpdb-n.nn.nnn folder +9.2/ In explorer...tools...folder options...View uncheck "Hide extensions for known file types" +9.3/ Double click run_fpdb.bat +9.4/ check the contents of pyfpdb\fpdb.exe.log, deal with any errors thrown + +9.5/ hopefully, fpdb will run +9.6/ Try out a few options, deal with any errors reported + +Observe that the msvcp90.dll was provided by the python runtime package, so we don't have to install the separate package from Microsoft. End-users will, however need the dependency. + + +Step 11 pruning +--------------- + +11.1/ The generated folder is 100+MB and can be pruned by removing the following directories: + +pyfpdb/lib/glib-2.0 +pyfpdb/lib/pkgconfig +pyfpdb/share/aclocal +pyfpdb/share/doc +pyfpdb/share/glib-2.0 +pyfpdb/share/gtk-2.0 +pyfpdb/share/gtk-doc +pyfpdb/share/locale +pyfpdb/share/man + + +Step 12 rename folder +--------------------- + +If needed, rename the folder to something meaningful to the community. If you have built for NoSSE, append anyCPU to the directory name. + + +Step 13 Compress to executable archive +-------------------------------------- + +13.1/ Download and install 7zip 914 ... http://sourceforge.net/projects/sevenzip/files/7-Zip/9.14/7z914.exe/download +13.2/ Rightclick on fpdb executable folder, select 7zip Add to archive... select SFX archive option switch +13.3/ Test the created exe file + +Step 14 If you need to build again for a different SSE level +------------------------------------------------------------ + +Go back to step 5 and run again. + From ef576cf21394913cafed4b63fd5450ab5bbd8f71 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Fri, 27 Aug 2010 00:00:42 +0200 Subject: [PATCH 56/58] update version to 0.20.906 --- pyfpdb/fpdb.pyw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 1c1ba4cb..adeb34c7 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -129,7 +129,7 @@ import Configuration import Exceptions import Stats -VERSION = "0.20.905 plus git" +VERSION = "0.20.906" class fpdb: From fb8b749677495074008ee4ac7b735cc250d71364 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Fri, 27 Aug 2010 01:28:29 +0200 Subject: [PATCH 57/58] ebuild: added LINGUAS_IT support, corrected the header, and reverted space indents to tabs --- packaging/gentoo/current_stable.ebuild | 3 +- packaging/gentoo/current_testing.ebuild | 71 +++++++++++++----------- packaging/gentoo/fpdb-9999.ebuild | 73 +++++++++++++------------ 3 files changed, 79 insertions(+), 68 deletions(-) diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index a62b2fe0..edc70791 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -1,6 +1,7 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com +# $Header: $ + EAPI="2" inherit eutils diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index 73bedd02..9741f2b8 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -1,6 +1,7 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com +# $Header: $ + EAPI="2" inherit eutils @@ -17,49 +18,53 @@ SLOT="0" KEYWORDS="~amd64 ~x86" #note: this should work on other architectures too, please send me your experiences -IUSE="graph mysql postgres sqlite linguas_hu" +IUSE="graph mysql postgres sqlite linguas_hu linguas_it" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb - if use linguas_hu; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo - fi + if use linguas_hu; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo + fi - doins readme.txt + if use linguas_it; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + fi - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + doins readme.txt - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} + + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index b3bfa9dc..683b3f45 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -1,6 +1,7 @@ # Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# created by Steffen Schaumburg, steffen@schaumburger.info and Erki Ferenc, erkiferenc@gmail.com +# $Header: $ + EAPI="2" inherit eutils @@ -18,53 +19,57 @@ SLOT="0" KEYWORDS="" #note: this should work on other architectures too, please send me your experiences -IUSE="graph mysql postgres sqlite linguas_hu" +IUSE="graph mysql postgres sqlite linguas_hu linguas_it" RDEPEND=" - mysql? ( virtual/mysql - dev-python/mysql-python ) - postgres? ( dev-db/postgresql-server - dev-python/psycopg ) - sqlite? ( dev-lang/python[sqlite] - dev-python/numpy ) - >=x11-libs/gtk+-2.10 - dev-python/pygtk - graph? ( dev-python/numpy - dev-python/matplotlib[gtk] ) - dev-python/python-xlib - dev-python/pytz" + mysql? ( virtual/mysql + dev-python/mysql-python ) + postgres? ( dev-db/postgresql-server + dev-python/psycopg ) + sqlite? ( dev-lang/python[sqlite] + dev-python/numpy ) + >=x11-libs/gtk+-2.10 + dev-python/pygtk + graph? ( dev-python/numpy + dev-python/matplotlib[gtk] ) + dev-python/python-xlib + dev-python/pytz" DEPEND="${RDEPEND}" src_unpack() { - git_src_unpack + git_src_unpack } src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb - if use linguas_hu; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo - fi + if use linguas_hu; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo + fi - doins readme.txt + if use linguas_it; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + fi - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + doins readme.txt - dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + dodir "${GAMES_BINDIR}" + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw - prepgamesdirs + newicon gfx/fpdb-icon.png ${PN}.png + make_desktop_entry ${PN} + + chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + prepgamesdirs } pkg_postinst() { - games_pkg_postinst - elog "Note that if you really want to use mysql or postgresql you will have to create" - elog "the database and user yourself and enter it into the fpdb config." - elog "You can find the instructions on the project's website." + games_pkg_postinst + elog "Note that if you really want to use mysql or postgresql you will have to create" + elog "the database and user yourself and enter it into the fpdb config." + elog "You can find the instructions on the project's website." } From 861edf954e9ac90560fd300aedd238f552f9cecf Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Sat, 28 Aug 2010 12:58:17 +0200 Subject: [PATCH 58/58] l10n: updated Hungarian translation This includes 1. a fix for a missing %s in a translated string which makes HUD failing to start when Hungarian locale is active 2. another potential string formatting mistake 3. various minor fixes, mainly typos --- pyfpdb/locale/fpdb-hu_HU.po | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 11a0a35d..651006ea 100644 --- a/pyfpdb/locale/fpdb-hu_HU.po +++ b/pyfpdb/locale/fpdb-hu_HU.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" "POT-Creation-Date: 2010-08-26 18:52+CEST\n" -"PO-Revision-Date: 2010-08-26 01:40+0200\n" +"PO-Revision-Date: 2010-08-28 12:32+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -156,7 +156,7 @@ msgstr "A %s konfigurációs fájl nem található. Alapértelmezések használa #: Configuration.py:690 msgid "Reading configuration file %s" -msgstr "%s konfigurációs fájl használata" +msgstr "%s konfigurációs fájl olvasása" #: Configuration.py:691 msgid "" @@ -164,11 +164,11 @@ msgid "" "Reading configuration file %s\n" msgstr "" "\n" -"%s konfigurációs fájl használata\n" +"%s konfigurációs fájl olvasása\n" #: Configuration.py:696 msgid "Error parsing %s. See error log file." -msgstr "Hiba a(z) %s olvasása közben. Nézz bele a naplófájlba." +msgstr "Hiba a(z) %s értelmezése közben. Nézz bele a hibanaplóba." #: Database.py:74 msgid "Not using sqlalchemy connection pool." @@ -232,11 +232,11 @@ msgstr "ERROR: a(z) %s lekérdezés eredményének nem a player_id az első oszl #: Database.py:907 msgid "getLastInsertId(): problem fetching insert_id? ret=%d" -msgstr "getLastInsertId(): probléma insert_id lekérdezése közben? ret=%d" +msgstr "getLastInsertId(): probléma az insert_id lekérdezése közben? ret=%d" #: Database.py:919 msgid "getLastInsertId(%s): problem fetching lastval? row=%d" -msgstr "getLastInsertId(%s): probléma lastval lekérdezése közben? sor=%d" +msgstr "getLastInsertId(%s): probléma a lastval lekérdezése közben? sor=%d" #: Database.py:926 msgid "getLastInsertId(): unknown backend: %d" @@ -398,7 +398,7 @@ msgstr "Hiba analyze közben:" #: Database.py:1563 msgid "Analyze took %.1f seconds" -msgstr "Analyze %1.f másodpercig tartott" +msgstr "Analyze %.1f másodpercig tartott" #: Database.py:1573 Database.py:1579 msgid "Error during vacuum:" @@ -854,8 +854,8 @@ msgid "" "GuiBulkImport done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: %d " "in %s seconds - %.0f/sec" msgstr "" -"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d " -"%s másodperc alatt - %.0f/mp" +"GuiBulkImport kész: Tárolt: %d \tDuplikáció: %d \tRészleges: %d \tHibák: %d %" +"s másodperc alatt - %.0f/mp" #: GuiDatabase.py:106 GuiLogView.py:96 msgid "Refresh" @@ -1242,7 +1242,7 @@ msgstr "A naplófájl " #: HUD_main.pyw:90 msgid "HUD_main starting: using db name = %s" -msgstr "HUD_main indítás: " +msgstr "HUD_main indítás: %s adatbázis használata" #: HUD_main.pyw:95 msgid "Note: error output is being diverted to:\n" @@ -1306,15 +1306,15 @@ msgstr "\"%s\" nevű asztal már nem létezik\n" #: HUD_main.pyw:321 msgid "" -"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f)" +"HUD_main.read_stdin: hand read in %4.3f seconds (%4.3f,%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f)" msgstr "" -"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f," -"%4.3f,%4.3f,%4.3f)" +"HUD_main.read_stdin: leosztás beolvasva %4.3f mp alatt (%4.3f,%4.3f,%4.3f,%" +"4.3f,%4.3f,%4.3f)" #: HUD_run_me.py:45 msgid "HUD_main starting\n" -msgstr "HUD_main indítása\n" +msgstr "HUD_main indítás\n" #: HUD_run_me.py:51 TournamentTracker.py:317 msgid "Using db name = %s\n" @@ -1772,7 +1772,7 @@ msgstr "utcTime:" #: HandHistoryConverter.py:685 msgid "Unable to create output directory %s for HHC!" -msgstr "A %s kimeneti könyvtár nem hozható létre a feldolgozó számára'" +msgstr "A %s kimeneti könyvtár nem hozható létre a feldolgozó számára!" #: HandHistoryConverter.py:686 msgid "*** ERROR: UNABLE TO CREATE OUTPUT DIRECTORY" @@ -3136,8 +3136,8 @@ msgstr "" "GPL2 vagy újabb licensszel.\n" "A Windows telepítő csomag tartalmaz MIT licensz hatálya alá eső részeket " "is.\n" -"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, " -"gpl-2.0.txt, gpl-3.0.txt és mit.txt fájlokban." +"A licenszek szövegét megtalálod az fpdb főkönyvtárában az agpl-3.0.txt, gpl-" +"2.0.txt, gpl-3.0.txt és mit.txt fájlokban." #: fpdb.pyw:1078 msgid "Help" @@ -3265,7 +3265,7 @@ msgid "" "Error No.%s please send the hand causing this to fpdb-main@lists.sourceforge." "net so we can fix the problem." msgstr "" -"%s számú hiba. Kérlek küldd el az ezt okozo leosztást az fpdb-main@lists." +"%s számú hiba. Kérlek küldd el az ezt okozó leosztást az fpdb-main@lists." "sourceforge.net címre, hogy ki tudjuk javítani a hibát." #: fpdb_import.py:520