From b4a08af2b1ec56be83280ad12d4359c645b3d0b3 Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Sun, 22 Aug 2010 13:09:26 +0300 Subject: [PATCH 01/48] Remove trailing percent symbols from HUD values The values that are displayed in the HUD box included the '%' symbol if these values were percentages. This clutters the HUD for those who don't need such extra characters. This patch removes the trailing '%' from result[1]. The default formatting for HUD values is '%3.1f' and if decimal places need to be changed, the code for those is now simpler. A user who wishes to show a percent symbol after any given stat value, can edit HUD_config.xml and assign such stats the hudsuffix="%" attribute. This patch also changes the way the tooltip strings are constructed. Instead of appending the percent symbol to generated string, the '%' is now generated in place by the format-string stanza '%%'. --- pyfpdb/Stats.py | 457 +++++++++++++++++++++++------------------------- 1 file changed, 221 insertions(+), 236 deletions(-) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index ffb1e47e..22900da8 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -78,7 +78,6 @@ log = logging.getLogger("db") re_Places = re.compile("_[0-9]$") -re_Percent = re.compile("%$") # String manipulation import codecs @@ -88,35 +87,21 @@ def do_tip(widget, tip): _tip = Charset.to_utf8(tip) widget.set_tooltip_text(_tip) + def do_stat(stat_dict, player = 24, stat = 'vpip'): match = re_Places.search(stat) - if match is None: - result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': stat, 'player': player}) - else: + result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': stat, 'player': player}) + + # If decimal places have been defined, override result[1] + if match: base = stat[0:-2] places = int(stat[-1:]) - result = (0.0, '0.0', 'notset=0', 'notset=0', '0', 'not set') - try: - result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': base, 'player': player}) - except: - pass # - log.info(_("exception getting stat %s for player %s %s") % (base, str(player), str(sys.exc_info()))) - log.debug(_("Stats.do_stat result = %s") % str(result) ) - - match = re_Percent.search(result[1]) - try: - if match is None: - result = (result[0], "%.*f" % (places, result[0]), result[2], result[3], result[4], result[5]) - else: - result = (result[0], "%.*f%%" % (places, 100*result[0]), result[2], result[3], result[4], result[5]) - except: - log.info(_("error: %s") % str(sys.exc_info())) - raise + result[1] = '%.*f' % (places, 100.0*result[0]) return result # OK, for reference the tuple returned by the stat is: # 0 - The stat, raw, no formating, eg 0.33333333 -# 1 - formatted stat with appropriate precision and punctuation, eg 33% +# 1 - formatted stat with appropriate precision, eg. 33; shown in HUD # 2 - formatted stat with appropriate precision, punctuation and a hint, eg v=33% # 3 - same as #2 except name of stat instead of hint, eg vpip=33% # 4 - the calculation that got the stat, eg 9/27 @@ -147,17 +132,17 @@ def vpip(stat_dict, player): try: stat = float(stat_dict[player]['vpip'])/float(stat_dict[player]['n']) return (stat, - '%3.1f' % (100*stat) + '%', - 'v=%3.1f' % (100*stat) + '%', - 'vpip=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['vpip'], stat_dict[player]['n']), + '%3.1f' % (100.0*stat), + 'v=%3.1f%%' % (100.0*stat), + 'vpip=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['vpip'], stat_dict[player]['n']), _('Voluntarily Put In Pot Pre-Flop%') ) except: return (stat, - '%3.1f' % (0) + '%', - 'v=%3.1f' % (0) + '%', - 'vpip=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'v=%3.1f%%' % (0), + 'vpip=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Voluntarily Put In Pot Pre-Flop%') ) @@ -167,18 +152,18 @@ def pfr(stat_dict, player): try: stat = float(stat_dict[player]['pfr'])/float(stat_dict[player]['n']) return (stat, - '%3.1f' % (100*stat) + '%', - 'p=%3.1f' % (100*stat) + '%', - 'pfr=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'p=%3.1f%%' % (100.0*stat), + 'pfr=%3.1f%%' % (100.0*stat), '(%d/%d)' % (stat_dict[player]['pfr'], stat_dict[player]['n']), _('Pre-Flop Raise %') ) except: return (stat, - '%3.1f' % (0) + '%', - 'p=%3.1f' % (0) + '%', - 'pfr=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'p=%3.1f%%' % (0), + 'pfr=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Pre-Flop Raise %') ) @@ -188,18 +173,18 @@ def wtsd(stat_dict, player): try: stat = float(stat_dict[player]['sd'])/float(stat_dict[player]['saw_f']) return (stat, - '%3.1f' % (100*stat) + '%', - 'w=%3.1f' % (100*stat) + '%', - 'wtsd=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['sd'], stat_dict[player]['saw_f']), + '%3.1f' % (100.0*stat), + 'w=%3.1f%%' % (100.0*stat), + 'wtsd=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['sd'], stat_dict[player]['saw_f']), _('% went to showdown') ) except: return (stat, - '%3.1f' % (0) + '%', - 'w=%3.1f' % (0) + '%', - 'wtsd=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'w=%3.1f%%' % (0), + 'wtsd=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% went to showdown') ) @@ -209,18 +194,18 @@ def wmsd(stat_dict, player): try: stat = float(stat_dict[player]['wmsd'])/float(stat_dict[player]['sd']) return (stat, - '%3.1f' % (100*stat) + '%', - 'w=%3.1f' % (100*stat) + '%', - 'wmsd=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'w=%3.1f%%' % (100.0*stat), + 'wmsd=%3.1f%%' % (100.0*stat), '(%5.1f/%d)' % (float(stat_dict[player]['wmsd']), stat_dict[player]['sd']), _('% won money at showdown') ) except: return (stat, - '%3.1f' % (0) + '%', - 'w=%3.1f' % (0) + '%', - 'wmsd=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'w=%3.1f%%' % (0), + 'wmsd=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% won money at showdown') ) @@ -230,19 +215,19 @@ def profit100(stat_dict, player): try: stat = float(stat_dict[player]['net'])/float(stat_dict[player]['n']) return (stat, - '%.0f' % (100.0*stat), - 'p=%.0f' % (100.0*stat), - 'p/100=%.0f' % (100.0*stat), + '%.0f' % (100.0*stat), + 'p=%.0f' % (100.0*stat), + 'p/100=%.0f' % (100.0*stat), '%d/%d' % (stat_dict[player]['net'], stat_dict[player]['n']), _('profit/100hands') ) except: print _("exception calcing p/100: 100 * %d / %d") % (stat_dict[player]['net'], stat_dict[player]['n']) return (stat, - '%.0f' % (0.0), - 'p=%.0f' % (0.0), - 'p/100=%.0f' % (0.0), - '(%d/%d)' % (0, 0), + '%.0f' % (0.0), + 'p=%.0f' % (0.0), + 'p/100=%.0f' % (0.0), + '(%d/%d)' % (0, 0), _('profit/100hands') ) @@ -252,19 +237,19 @@ def bbper100(stat_dict, player): try: stat = 100.0 * float(stat_dict[player]['net']) / float(stat_dict[player]['bigblind']) return (stat, - '%5.3f' % (stat), - 'bb100=%5.3f' % (stat), - 'bb100=%5.3f' % (stat), - '(%d,%d)' % (100*stat_dict[player]['net'],stat_dict[player]['bigblind']), + '%5.3f' % (stat), + 'bb100=%5.3f' % (stat), + 'bb100=%5.3f' % (stat), + '(%d,%d)' % (100*stat_dict[player]['net'],stat_dict[player]['bigblind']), _('big blinds/100 hands') ) except: log.info("exception calcing bb/100: "+str(stat_dict[player])) return (stat, - '%.0f' % (0), - 'bb100=%.0f' % (0), - 'bb100=%.0f' % (0), - '(%f)' % (0), + '%.0f' % (0), + 'bb100=%.0f' % (0), + 'bb100=%.0f' % (0), + '(%f)' % (0), _('big blinds/100 hands') ) @@ -274,19 +259,19 @@ def BBper100(stat_dict, player): try: stat = 50 * float(stat_dict[player]['net']) / float(stat_dict[player]['bigblind']) return (stat, - '%5.3f' % (stat), - 'BB100=%5.3f' % (stat), - 'BB100=%5.3f' % (stat), - '(%d,%d)' % (100*stat_dict[player]['net'],2*stat_dict[player]['bigblind']), + '%5.3f' % (stat), + 'BB100=%5.3f' % (stat), + 'BB100=%5.3f' % (stat), + '(%d,%d)' % (100*stat_dict[player]['net'],2*stat_dict[player]['bigblind']), _('Big Bets/100 hands') ) except: log.info(_("exception calcing BB/100: ")+str(stat_dict[player])) return (stat, - '%.0f' % (0.0), - 'BB100=%.0f' % (0.0), - 'BB100=%.0f' % (0.0), - '(%f)' % (0.0), + '%.0f' % (0.0), + 'BB100=%.0f' % (0.0), + 'BB100=%.0f' % (0.0), + '(%f)' % (0.0), _('Big Bets/100 hands') ) @@ -297,10 +282,10 @@ def saw_f(stat_dict, player): den = float(stat_dict[player]['n']) stat = num/den return (stat, - '%3.1f' % (100*stat) + '%', - 'sf=%3.1f' % (100*stat) + '%', - 'saw_f=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['saw_f'], stat_dict[player]['n']), + '%3.1f' % (100.0*stat), + 'sf=%3.1f%%' % (100.0*stat), + 'saw_f=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['saw_f'], stat_dict[player]['n']), _('Flop Seen %') ) except: @@ -308,10 +293,10 @@ def saw_f(stat_dict, player): num = 0 den = 0 return (stat, - '%3.1f' % (stat) + '%', - 'sf=%3.1f' % (stat) + '%', - 'saw_f=%3.1f' % (stat) + '%', - '(%d/%d)' % (num, den), + '%3.1f' % (stat), + 'sf=%3.1f%%' % (stat), + 'saw_f=%3.1f%%' % (stat), + '(%d/%d)' % (num, den), _('Flop Seen %') ) @@ -352,18 +337,18 @@ def fold_f(stat_dict, player): try: stat = float(stat_dict[player]['fold_2'])/float(stat_dict[player]['saw_f']) return (stat, - '%3.1f' % (100*stat) + '%', - 'ff=%3.1f' % (100*stat) + '%', - 'fold_f=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['fold_2'], stat_dict[player]['saw_f']), + '%3.1f' % (100.0*stat), + 'ff=%3.1f%%' % (100.0*stat), + 'fold_f=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['fold_2'], stat_dict[player]['saw_f']), _('folded flop/4th') ) except: return (stat, - '%3.1f' % (0) + '%', - 'ff=%3.1f' % (0) + '%', - 'fold_f=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'ff=%3.1f%%' % (0), + 'fold_f=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('folded flop/4th') ) @@ -373,10 +358,10 @@ def steal(stat_dict, player): try: stat = float(stat_dict[player]['steal'])/float(stat_dict[player]['steal_opp']) return (stat, - '%3.1f' % (100*stat) + '%', - 'st=%3.1f' % (100*stat) + '%', - 'steal=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['steal'], stat_dict[player]['steal_opp']), + '%3.1f' % (100.0*stat), + 'st=%3.1f%%' % (100.0*stat), + 'steal=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['steal'], stat_dict[player]['steal_opp']), _('% steal attempted') ) except: @@ -388,10 +373,10 @@ def f_SB_steal(stat_dict, player): try: stat = float(stat_dict[player]['sbnotdef'])/float(stat_dict[player]['sbstolen']) return (stat, - '%3.1f' % (100*stat) + '%', - 'fSB=%3.1f' % (100*stat) + '%', - 'fSB_s=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['sbnotdef'], stat_dict[player]['sbstolen']), + '%3.1f' % (100.0*stat), + 'fSB=%3.1f%%' % (100.0*stat), + 'fSB_s=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['sbnotdef'], stat_dict[player]['sbstolen']), _('% folded SB to steal')) except: return (stat, @@ -407,10 +392,10 @@ def f_BB_steal(stat_dict, player): try: stat = float(stat_dict[player]['bbnotdef'])/float(stat_dict[player]['bbstolen']) return (stat, - '%3.1f' % (100*stat) + '%', - 'fBB=%3.1f' % (100*stat) + '%', - 'fBB_s=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['bbnotdef'], stat_dict[player]['bbstolen']), + '%3.1f' % (100.0*stat), + 'fBB=%3.1f%%' % (100.0*stat), + 'fBB_s=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['bbnotdef'], stat_dict[player]['bbstolen']), _('% folded BB to steal')) except: return (stat, @@ -429,10 +414,10 @@ def f_steal(stat_dict, player): stat = float(folded_blind)/float(blind_stolen) return (stat, - '%3.1f' % (100*stat) + '%', - 'fB=%3.1f' % (100*stat) + '%', - 'fB_s=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (folded_blind, blind_stolen), + '%3.1f' % (100.0*stat), + 'fB=%3.1f%%' % (100.0*stat), + 'fB_s=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (folded_blind, blind_stolen), _('% folded blind to steal')) except: return (stat, @@ -448,17 +433,17 @@ def three_B(stat_dict, player): try: stat = float(stat_dict[player]['tb_0'])/float(stat_dict[player]['tb_opp_0']) return (stat, - '%3.1f' % (100*stat) + '%', - '3B=%3.1f' % (100*stat) + '%', - '3B_pf=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['tb_0'], stat_dict[player]['tb_opp_0']), + '%3.1f' % (100.0*stat), + '3B=%3.1f%%' % (100.0*stat), + '3B_pf=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['tb_0'], stat_dict[player]['tb_opp_0']), _('% 3/4 Bet preflop/3rd')) except: return (stat, - '%3.1f' % (0) + '%', - '3B=%3.1f' % (0) + '%', - '3B_pf=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + '3B=%3.1f%%' % (0), + '3B_pf=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% 3/4 Bet preflop/3rd')) def WMsF(stat_dict, player): @@ -467,17 +452,17 @@ def WMsF(stat_dict, player): try: stat = float(stat_dict[player]['w_w_s_1'])/float(stat_dict[player]['saw_1']) return (stat, - '%3.1f' % (100*stat) + '%', - 'wf=%3.1f' % (100*stat) + '%', - 'w_w_f=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['w_w_s_1'], stat_dict[player]['saw_f']), + '%3.1f' % (100.0*stat), + 'wf=%3.1f%%' % (100.0*stat), + 'w_w_f=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['w_w_s_1'], stat_dict[player]['saw_f']), _('% won$/saw flop/4th')) except: return (stat, - '%3.1f' % (0) + '%', - 'wf=%3.1f' % (0) + '%', - 'w_w_f=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'wf=%3.1f%%' % (0), + 'w_w_f=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% won$/saw flop/4th')) def a_freq1(stat_dict, player): @@ -486,17 +471,17 @@ def a_freq1(stat_dict, player): try: stat = float(stat_dict[player]['aggr_1'])/float(stat_dict[player]['saw_f']) return (stat, - '%3.1f' % (100*stat) + '%', - 'a1=%3.1f' % (100*stat) + '%', - 'a_fq_1=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'a1=%3.1f%%' % (100.0*stat), + 'a_fq_1=%3.1f%%' % (100.0*stat), '(%d/%d)' % (stat_dict[player]['aggr_1'], stat_dict[player]['saw_f']), _('Aggression Freq flop/4th')) except: return (stat, - '%3.1f' % (0) + '%', - 'a1=%3.1f' % (0) + '%', - 'a_fq_1=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'a1=%3.1f%%' % (0), + 'a_fq_1=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Aggression Freq flop/4th')) def a_freq2(stat_dict, player): @@ -505,17 +490,17 @@ def a_freq2(stat_dict, player): try: stat = float(stat_dict[player]['aggr_2'])/float(stat_dict[player]['saw_2']) return (stat, - '%3.1f' % (100*stat) + '%', - 'a2=%3.1f' % (100*stat) + '%', - 'a_fq_2=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['aggr_2'], stat_dict[player]['saw_2']), + '%3.1f' % (100.0*stat), + 'a2=%3.1f%%' % (100.0*stat), + 'a_fq_2=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['aggr_2'], stat_dict[player]['saw_2']), _('Aggression Freq turn/5th')) except: return (stat, - '%3.1f' % (0) + '%', - 'a2=%3.1f' % (0) + '%', - 'a_fq_2=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'a2=%3.1f%%' % (0), + 'a_fq_2=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Aggression Freq turn/5th')) def a_freq3(stat_dict, player): @@ -524,17 +509,17 @@ def a_freq3(stat_dict, player): try: stat = float(stat_dict[player]['aggr_3'])/float(stat_dict[player]['saw_3']) return (stat, - '%3.1f' % (100*stat) + '%', - 'a3=%3.1f' % (100*stat) + '%', - 'a_fq_3=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'a3=%3.1f%%' % (100.0*stat), + 'a_fq_3=%3.1f%%' % (100.0*stat), '(%d/%d)' % (stat_dict[player]['aggr_3'], stat_dict[player]['saw_3']), _('Aggression Freq river/6th')) except: return (stat, - '%3.1f' % (0) + '%', - 'a3=%3.1f' % (0) + '%', - 'a_fq_3=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'a3=%3.1f%%' % (0), + 'a_fq_3=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Aggression Freq river/6th')) def a_freq4(stat_dict, player): @@ -543,17 +528,17 @@ def a_freq4(stat_dict, player): try: stat = float(stat_dict[player]['aggr_4'])/float(stat_dict[player]['saw_4']) return (stat, - '%3.1f' % (100*stat) + '%', - 'a4=%3.1f' % (100*stat) + '%', - 'a_fq_4=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['aggr_4'], stat_dict[player]['saw_4']), + '%3.1f' % (100.0*stat), + 'a4=%3.1f%%' % (100.0*stat), + 'a_fq_4=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['aggr_4'], stat_dict[player]['saw_4']), _('Aggression Freq 7th')) except: return (stat, - '%3.1f' % (0) + '%', - 'a4=%3.1f' % (0) + '%', - 'a_fq_4=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'a4=%3.1f%%' % (0), + 'a_fq_4=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Aggression Freq 7th')) def a_freq_123(stat_dict, player): @@ -563,9 +548,9 @@ def a_freq_123(stat_dict, player): stat = float( stat_dict[player]['aggr_1'] + stat_dict[player]['aggr_2'] + stat_dict[player]['aggr_3'] ) / float( stat_dict[player]['saw_1'] + stat_dict[player]['saw_2'] + stat_dict[player]['saw_3']); return (stat, - '%3.1f' % (100*stat) + '%', - 'afq=%3.1f' % (100*stat) + '%', - 'postf_aggfq=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'afq=%3.1f%%' % (100.0*stat), + 'postf_aggfq=%3.1f%%' % (100.0*stat), '(%d/%d)' % ( stat_dict[player]['aggr_1'] + stat_dict[player]['aggr_2'] + stat_dict[player]['aggr_3'] @@ -576,10 +561,10 @@ def a_freq_123(stat_dict, player): _('Post-Flop Aggression Freq')) except: return (stat, - '%2.0f' % (0) + '%', - 'a3=%2.0f' % (0) + '%', - 'a_fq_3=%2.0f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%2.0f' % (0), + 'a3=%2.0f%%' % (0), + 'a_fq_3=%2.0f%%' % (0), + '(%d/%d)' % (0, 0), _('Post-Flop Aggression Freq')) def agg_freq(stat_dict, player): @@ -597,17 +582,17 @@ def agg_freq(stat_dict, player): stat = float (bet_raise) / float(post_call + post_fold + bet_raise) return (stat, - '%3.1f' % (100*stat) + '%', - 'afr=%3.1f' % (100*stat) + '%', - 'agg_fr=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (bet_raise, (post_call + post_fold + bet_raise)), + '%3.1f' % (100.0*stat), + 'afr=%3.1f%%' % (100.0*stat), + 'agg_fr=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (bet_raise, (post_call + post_fold + bet_raise)), _('Aggression Freq')) except: return (stat, - '%2.1f' % (0) + '%', - 'af=%3.1f' % (0) + '%', - 'agg_f=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%2.1f' % (0), + 'af=%3.1f%%' % (0), + 'agg_f=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('Aggression Freq')) def agg_fact(stat_dict, player): @@ -647,17 +632,17 @@ def cbet(stat_dict, player): oppt = stat_dict[player]['cb_opp_1']+stat_dict[player]['cb_opp_2']+stat_dict[player]['cb_opp_3']+stat_dict[player]['cb_opp_4'] stat = float(cbets)/float(oppt) return (stat, - '%3.1f' % (100*stat) + '%', - 'cbet=%3.1f' % (100*stat) + '%', - 'cbet=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (cbets, oppt), + '%3.1f' % (100.0*stat), + 'cbet=%3.1f%%' % (100.0*stat), + 'cbet=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (cbets, oppt), _('% continuation bet ')) except: return (stat, - '%3.1f' % (0) + '%', - 'cbet=%3.1f' % (0) + '%', - 'cbet=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'cbet=%3.1f%%' % (0), + 'cbet=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% continuation bet ')) def cb1(stat_dict, player): @@ -666,17 +651,17 @@ def cb1(stat_dict, player): try: stat = float(stat_dict[player]['cb_1'])/float(stat_dict[player]['cb_opp_1']) return (stat, - '%3.1f' % (100*stat) + '%', - 'cb1=%3.1f' % (100*stat) + '%', - 'cb_1=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['cb_1'], stat_dict[player]['cb_opp_1']), + '%3.1f' % (100.0*stat), + 'cb1=%3.1f%%' % (100.0*stat), + 'cb_1=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['cb_1'], stat_dict[player]['cb_opp_1']), _('% continuation bet flop/4th')) except: return (stat, - '%3.1f' % (0) + '%', - 'cb1=%3.1f' % (0) + '%', - 'cb_1=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'cb1=%3.1f%%' % (0), + 'cb_1=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% continuation bet flop/4th')) def cb2(stat_dict, player): @@ -685,17 +670,17 @@ def cb2(stat_dict, player): try: stat = float(stat_dict[player]['cb_2'])/float(stat_dict[player]['cb_opp_2']) return (stat, - '%3.1f' % (100*stat) + '%', - 'cb2=%3.1f' % (100*stat) + '%', - 'cb_2=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['cb_2'], stat_dict[player]['cb_opp_2']), + '%3.1f' % (100.0*stat), + 'cb2=%3.1f%%' % (100.0*stat), + 'cb_2=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['cb_2'], stat_dict[player]['cb_opp_2']), _('% continuation bet turn/5th')) except: return (stat, - '%3.1f' % (0) + '%', - 'cb2=%3.1f' % (0) + '%', - 'cb_2=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'cb2=%3.1f%%' % (0), + 'cb_2=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% continuation bet turn/5th')) def cb3(stat_dict, player): @@ -704,17 +689,17 @@ def cb3(stat_dict, player): try: stat = float(stat_dict[player]['cb_3'])/float(stat_dict[player]['cb_opp_3']) return (stat, - '%3.1f' % (100*stat) + '%', - 'cb3=%3.1f' % (100*stat) + '%', - 'cb_3=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['cb_3'], stat_dict[player]['cb_opp_3']), + '%3.1f' % (100.0*stat), + 'cb3=%3.1f%%' % (100.0*stat), + 'cb_3=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['cb_3'], stat_dict[player]['cb_opp_3']), _('% continuation bet river/6th')) except: return (stat, - '%3.1f' % (0) + '%', - 'cb3=%3.1f' % (0) + '%', - 'cb_3=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'cb3=%3.1f%%' % (0), + 'cb_3=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% continuation bet river/6th')) def cb4(stat_dict, player): @@ -723,17 +708,17 @@ def cb4(stat_dict, player): try: stat = float(stat_dict[player]['cb_4'])/float(stat_dict[player]['cb_opp_4']) return (stat, - '%3.1f' % (100*stat) + '%', - 'cb4=%3.1f' % (100*stat) + '%', - 'cb_4=%3.1f' % (100*stat) + '%', + '%3.1f' % (100.0*stat), + 'cb4=%3.1f%%' % (100.0*stat), + 'cb_4=%3.1f%%' % (100.0*stat), '(%d/%d)' % (stat_dict[player]['cb_4'], stat_dict[player]['cb_opp_4']), _('% continuation bet 7th')) except: return (stat, - '%3.1f' % (0) + '%', - 'cb4=%3.1f' % (0) + '%', - 'cb_4=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'cb4=%3.1f%%' % (0), + 'cb_4=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% continuation bet 7th')) def ffreq1(stat_dict, player): @@ -742,10 +727,10 @@ def ffreq1(stat_dict, player): try: stat = float(stat_dict[player]['f_freq_1'])/float(stat_dict[player]['was_raised_1']) return (stat, - '%3.1f' % (100*stat) + '%', - 'ff1=%3.1f' % (100*stat) + '%', - 'ff_1=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['f_freq_1'], stat_dict[player]['was_raised_1']), + '%3.1f' % (100.0*stat), + 'ff1=%3.1f%%' % (100.0*stat), + 'ff_1=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['f_freq_1'], stat_dict[player]['was_raised_1']), _('% fold frequency flop/4th')) except: return (stat, @@ -761,17 +746,17 @@ def ffreq2(stat_dict, player): try: stat = float(stat_dict[player]['f_freq_2'])/float(stat_dict[player]['was_raised_2']) return (stat, - '%3.1f' % (100*stat) + '%', - 'ff2=%3.1f' % (100*stat) + '%', - 'ff_2=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['f_freq_2'], stat_dict[player]['was_raised_2']), + '%3.1f' % (100.0*stat), + 'ff2=%3.1f%%' % (100.0*stat), + 'ff_2=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['f_freq_2'], stat_dict[player]['was_raised_2']), _('% fold frequency turn/5th')) except: return (stat, - '%3.1f' % (0) + '%', - 'ff2=%3.1f' % (0) + '%', - 'ff_2=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'ff2=%3.1f%%' % (0), + 'ff_2=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% fold frequency turn/5th')) def ffreq3(stat_dict, player): @@ -780,17 +765,17 @@ def ffreq3(stat_dict, player): try: stat = float(stat_dict[player]['f_freq_3'])/float(stat_dict[player]['was_raised_3']) return (stat, - '%3.1f' % (100*stat) + '%', - 'ff3=%3.1f' % (100*stat) + '%', - 'ff_3=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['f_freq_3'], stat_dict[player]['was_raised_3']), + '%3.1f' % (100.0*stat), + 'ff3=%3.1f%%' % (100.0*stat), + 'ff_3=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['f_freq_3'], stat_dict[player]['was_raised_3']), _('% fold frequency river/6th')) except: return (stat, - '%3.1f' % (0) + '%', - 'ff3=%3.1f' % (0) + '%', - 'ff_3=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'ff3=%3.1f%%' % (0), + 'ff_3=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% fold frequency river/6th')) def ffreq4(stat_dict, player): @@ -799,24 +784,24 @@ def ffreq4(stat_dict, player): try: stat = float(stat_dict[player]['f_freq_4'])/float(stat_dict[player]['was_raised_4']) return (stat, - '%3.1f' % (100*stat) + '%', - 'ff4=%3.1f' % (100*stat) + '%', - 'ff_4=%3.1f' % (100*stat) + '%', - '(%d/%d)' % (stat_dict[player]['f_freq_4'], stat_dict[player]['was_raised_4']), + '%3.1f' % (100.0*stat), + 'ff4=%3.1f%%' % (100.0*stat), + 'ff_4=%3.1f%%' % (100.0*stat), + '(%d/%d)' % (stat_dict[player]['f_freq_4'], stat_dict[player]['was_raised_4']), _('% fold frequency 7th')) except: return (stat, - '%3.1f' % (0) + '%', - 'ff4=%3.1f' % (0) + '%', - 'ff_4=%3.1f' % (0) + '%', - '(%d/%d)' % (0, 0), + '%3.1f' % (0), + 'ff4=%3.1f%%' % (0), + 'ff_4=%3.1f%%' % (0), + '(%d/%d)' % (0, 0), _('% fold frequency 7th')) if __name__== "__main__": statlist = dir() misslist = [ "Configuration", "Database", "Charset", "codecs", "encoder" , "do_stat", "do_tip", "GInitiallyUnowned", "gtk", "pygtk" - , "re", "re_Percent", "re_Places" + , "re", "re_Places" ] statlist = [ x for x in statlist if x not in dir(sys) ] statlist = [ x for x in statlist if x not in dir(codecs) ] From 4a92638941eb105ab80ca3c1a1ecc41f5d18bf14 Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Sun, 22 Aug 2010 13:57:01 +0300 Subject: [PATCH 02/48] Return "hard" NA for missing/incalculable stats It makes very little sense to do a format string for nothing but zeroes in case of unknown values. Simply return a set of 'NA' strings in place of usual stats. This makes the error cases consistent throughout Stats.py --- pyfpdb/Stats.py | 211 ++++++++++++++++++++++++------------------------ 1 file changed, 105 insertions(+), 106 deletions(-) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index 22900da8..cfe82f0a 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -139,10 +139,10 @@ def vpip(stat_dict, player): _('Voluntarily Put In Pot Pre-Flop%') ) except: return (stat, - '%3.1f' % (0), - 'v=%3.1f%%' % (0), - 'vpip=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'v=NA', + 'vpip=NA', + '(0/0)', _('Voluntarily Put In Pot Pre-Flop%') ) @@ -160,10 +160,10 @@ def pfr(stat_dict, player): ) except: return (stat, - '%3.1f' % (0), - 'p=%3.1f%%' % (0), - 'pfr=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'p=NA', + 'pfr=NA', + '(0/0)', _('Pre-Flop Raise %') ) @@ -181,10 +181,10 @@ def wtsd(stat_dict, player): ) except: return (stat, - '%3.1f' % (0), - 'w=%3.1f%%' % (0), - 'wtsd=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'w=NA', + 'wtsd=NA', + '(0/0)', _('% went to showdown') ) @@ -202,10 +202,10 @@ def wmsd(stat_dict, player): ) except: return (stat, - '%3.1f' % (0), - 'w=%3.1f%%' % (0), - 'wmsd=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'w=NA', + 'wmsd=NA', + '(0/0)', _('% won money at showdown') ) @@ -224,10 +224,10 @@ def profit100(stat_dict, player): except: print _("exception calcing p/100: 100 * %d / %d") % (stat_dict[player]['net'], stat_dict[player]['n']) return (stat, - '%.0f' % (0.0), - 'p=%.0f' % (0.0), - 'p/100=%.0f' % (0.0), - '(%d/%d)' % (0, 0), + 'NA', + 'p=NA', + 'p/100=NA', + '(0/0)', _('profit/100hands') ) @@ -246,10 +246,10 @@ def bbper100(stat_dict, player): except: log.info("exception calcing bb/100: "+str(stat_dict[player])) return (stat, - '%.0f' % (0), - 'bb100=%.0f' % (0), - 'bb100=%.0f' % (0), - '(%f)' % (0), + 'NA', + 'bb100=NA', + 'bb100=NA', + '(--)', _('big blinds/100 hands') ) @@ -268,10 +268,10 @@ def BBper100(stat_dict, player): except: log.info(_("exception calcing BB/100: ")+str(stat_dict[player])) return (stat, - '%.0f' % (0.0), - 'BB100=%.0f' % (0.0), - 'BB100=%.0f' % (0.0), - '(%f)' % (0.0), + 'NA', + 'BB100=NA', + 'BB100=NA', + '(--)', _('Big Bets/100 hands') ) @@ -290,13 +290,11 @@ def saw_f(stat_dict, player): ) except: stat = 0.0 - num = 0 - den = 0 return (stat, - '%3.1f' % (stat), - 'sf=%3.1f%%' % (stat), - 'saw_f=%3.1f%%' % (stat), - '(%d/%d)' % (num, den), + 'NA', + 'sf=NA', + 'saw_f=NA', + '(0/0)', _('Flop Seen %') ) @@ -323,6 +321,7 @@ def n(stat_dict, player): _('number hands seen') ) except: + # Number of hands shouldn't ever be "NA"; zeroes are better here return (0, '%d' % (0), 'n=%d' % (0), @@ -345,10 +344,10 @@ def fold_f(stat_dict, player): ) except: return (stat, - '%3.1f' % (0), - 'ff=%3.1f%%' % (0), - 'fold_f=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'ff=NA', + 'fold_f=NA', + '(0/0)', _('folded flop/4th') ) @@ -440,10 +439,10 @@ def three_B(stat_dict, player): _('% 3/4 Bet preflop/3rd')) except: return (stat, - '%3.1f' % (0), - '3B=%3.1f%%' % (0), - '3B_pf=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + '3B=NA', + '3B_pf=NA', + '(0/0)', _('% 3/4 Bet preflop/3rd')) def WMsF(stat_dict, player): @@ -459,10 +458,10 @@ def WMsF(stat_dict, player): _('% won$/saw flop/4th')) except: return (stat, - '%3.1f' % (0), - 'wf=%3.1f%%' % (0), - 'w_w_f=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'wf=NA', + 'w_w_f=NA', + '(0/0)', _('% won$/saw flop/4th')) def a_freq1(stat_dict, player): @@ -478,10 +477,10 @@ def a_freq1(stat_dict, player): _('Aggression Freq flop/4th')) except: return (stat, - '%3.1f' % (0), - 'a1=%3.1f%%' % (0), - 'a_fq_1=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'a1=NA', + 'a_fq_1=NA', + '(0/0)', _('Aggression Freq flop/4th')) def a_freq2(stat_dict, player): @@ -497,10 +496,10 @@ def a_freq2(stat_dict, player): _('Aggression Freq turn/5th')) except: return (stat, - '%3.1f' % (0), - 'a2=%3.1f%%' % (0), - 'a_fq_2=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'a2=NA', + 'a_fq_2=NA', + '(0/0)', _('Aggression Freq turn/5th')) def a_freq3(stat_dict, player): @@ -516,10 +515,10 @@ def a_freq3(stat_dict, player): _('Aggression Freq river/6th')) except: return (stat, - '%3.1f' % (0), - 'a3=%3.1f%%' % (0), - 'a_fq_3=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'a3=NA', + 'a_fq_3=NA', + '(0/0)', _('Aggression Freq river/6th')) def a_freq4(stat_dict, player): @@ -535,10 +534,10 @@ def a_freq4(stat_dict, player): _('Aggression Freq 7th')) except: return (stat, - '%3.1f' % (0), - 'a4=%3.1f%%' % (0), - 'a_fq_4=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'a4=NA', + 'a_fq_4=NA', + '(0/0)', _('Aggression Freq 7th')) def a_freq_123(stat_dict, player): @@ -561,10 +560,10 @@ def a_freq_123(stat_dict, player): _('Post-Flop Aggression Freq')) except: return (stat, - '%2.0f' % (0), - 'a3=%2.0f%%' % (0), - 'a_fq_3=%2.0f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'a3=NA', + 'a_fq_3=NA', + '(0/0)', _('Post-Flop Aggression Freq')) def agg_freq(stat_dict, player): @@ -589,10 +588,10 @@ def agg_freq(stat_dict, player): _('Aggression Freq')) except: return (stat, - '%2.1f' % (0), - 'af=%3.1f%%' % (0), - 'agg_f=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'af=NA', + 'agg_f=NA', + '(0/0)', _('Aggression Freq')) def agg_fact(stat_dict, player): @@ -615,10 +614,10 @@ def agg_fact(stat_dict, player): _('Aggression Factor')) except: return (stat, - '%2.2f' % (0) , - 'afa=%2.2f' % (0) , - 'agg_fa=%2.2f' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'afa=NA', + 'agg_fa=NA', + '(0/0)', _('Aggression Factor')) def cbet(stat_dict, player): @@ -639,10 +638,10 @@ def cbet(stat_dict, player): _('% continuation bet ')) except: return (stat, - '%3.1f' % (0), - 'cbet=%3.1f%%' % (0), - 'cbet=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'cbet=NA', + 'cbet=NA', + '(0/0)', _('% continuation bet ')) def cb1(stat_dict, player): @@ -658,10 +657,10 @@ def cb1(stat_dict, player): _('% continuation bet flop/4th')) except: return (stat, - '%3.1f' % (0), - 'cb1=%3.1f%%' % (0), - 'cb_1=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'cb1=NA', + 'cb_1=NA', + '(0/0)', _('% continuation bet flop/4th')) def cb2(stat_dict, player): @@ -677,10 +676,10 @@ def cb2(stat_dict, player): _('% continuation bet turn/5th')) except: return (stat, - '%3.1f' % (0), - 'cb2=%3.1f%%' % (0), - 'cb_2=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'cb2=NA', + 'cb_2=NA', + '(0/0)', _('% continuation bet turn/5th')) def cb3(stat_dict, player): @@ -696,10 +695,10 @@ def cb3(stat_dict, player): _('% continuation bet river/6th')) except: return (stat, - '%3.1f' % (0), - 'cb3=%3.1f%%' % (0), - 'cb_3=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'cb3=NA', + 'cb_3=NA', + '(0/0)', _('% continuation bet river/6th')) def cb4(stat_dict, player): @@ -715,10 +714,10 @@ def cb4(stat_dict, player): _('% continuation bet 7th')) except: return (stat, - '%3.1f' % (0), - 'cb4=%3.1f%%' % (0), - 'cb_4=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'cb4=NA', + 'cb_4=NA', + '(0/0)', _('% continuation bet 7th')) def ffreq1(stat_dict, player): @@ -753,10 +752,10 @@ def ffreq2(stat_dict, player): _('% fold frequency turn/5th')) except: return (stat, - '%3.1f' % (0), - 'ff2=%3.1f%%' % (0), - 'ff_2=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'ff2=NA', + 'ff_2=NA', + '(0/0)', _('% fold frequency turn/5th')) def ffreq3(stat_dict, player): @@ -772,10 +771,10 @@ def ffreq3(stat_dict, player): _('% fold frequency river/6th')) except: return (stat, - '%3.1f' % (0), - 'ff3=%3.1f%%' % (0), - 'ff_3=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'ff3=NA', + 'ff_3=NA', + '(0/0)', _('% fold frequency river/6th')) def ffreq4(stat_dict, player): @@ -791,10 +790,10 @@ def ffreq4(stat_dict, player): _('% fold frequency 7th')) except: return (stat, - '%3.1f' % (0), - 'ff4=%3.1f%%' % (0), - 'ff_4=%3.1f%%' % (0), - '(%d/%d)' % (0, 0), + 'NA', + 'ff4=NA', + 'ff_4=NA', + '(0/0)', _('% fold frequency 7th')) if __name__== "__main__": From d2483b88665b1ea4ff5fcb49143b5ab31cd5d4eb Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Sun, 22 Aug 2010 14:12:29 +0300 Subject: [PATCH 03/48] Add comment on decimal place override --- pyfpdb/Stats.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index cfe82f0a..285a45ea 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -93,6 +93,11 @@ def do_stat(stat_dict, player = 24, stat = 'vpip'): result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': stat, 'player': player}) # If decimal places have been defined, override result[1] + # NOTE: decimal place override ALWAYS assumes the raw result is a + # fraction (x/100); manual decimal places really only make sense for + # percentage values. Also, profit/100 hands (bb/BB) already default + # to three decimal places anyhow, so they are unlikely override + # candidates. if match: base = stat[0:-2] places = int(stat[-1:]) From c664dfbbe339725113585770171810d2502b925a Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Thu, 26 Aug 2010 22:47:30 -0400 Subject: [PATCH 04/48] Get rid of obsolete import of obsolete Tables.py. --- pyfpdb/Hud.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index c394108c..99b65c00 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -55,7 +55,6 @@ else: def _(string): return string # FreePokerTools modules -import Tables # needed for testing only import Configuration import Stats import Mucked @@ -941,26 +940,3 @@ class Popup_window: # window.present() -if __name__== "__main__": - main_window = gtk.Window() - main_window.connect("destroy", destroy) - label = gtk.Label(_('Fake main window, blah blah, blah\nblah, blah')) - main_window.add(label) - main_window.show_all() - - c = Configuration.Config() - #tables = Tables.discover(c) - t = Tables.discover_table_by_name(c, "Corona") - if t is None: - print _("Table not found.") - db = Database.Database(c, 'fpdb', 'holdem') - - stat_dict = db.get_stats_from_hand(1) - -# for t in tables: - win = Hud(None, t, 10, 'holdem', c, db) # parent, table, max, poker_game, config, db_connection - win.create(1, c, stat_dict, None) # hand, config, stat_dict, cards): -# t.get_details() - win.update(8300, c) # self, hand, config): - - gtk.main() From 96d1ffe4fa47b283bcd40c63ec8cb882b55d42b8 Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Thu, 26 Aug 2010 22:48:06 -0400 Subject: [PATCH 05/48] Remove obsolete and unused Tables.py. --- pyfpdb/Tables.py | 449 ----------------------------------------------- 1 file changed, 449 deletions(-) delete mode 100755 pyfpdb/Tables.py diff --git a/pyfpdb/Tables.py b/pyfpdb/Tables.py deleted file mode 100755 index 3ffc7d1a..00000000 --- a/pyfpdb/Tables.py +++ /dev/null @@ -1,449 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -"""Discover_Tables.py - -Inspects the currently open windows and finds those of interest to us--that is -poker table windows from supported sites. Returns a list -of Table_Window objects representing the windows found. -""" -# Copyright 2008-2010, Ray E. Barker - -# 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 - -######################################################################## - -# Standard Library modules -import os -import sys -import re - -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 - -# Win32 modules -if os.name == 'nt': - import win32gui - import win32process - import win32api - import win32con - import win32security - -# FreePokerTools modules -import Configuration - -# Each TableWindow object must have the following attributes correctly populated: -# tw.name = the table name from the title bar, which must to match the table name -# from the corresponding hand history. -# tw.site = the site name, e.g. PokerStars, FullTilt. This must match the site -# name specified in the config file. -# tw.number = This is the system id number for the client table window in the -# format that the system presents it. This is Xid in Xwindows and -# hwnd in Microsoft Windows. -# tw.title = The full title from the window title bar. -# tw.width, tw.height = The width and height of the window in pixels. This is -# the internal width and height, not including the title bar and -# window borders. -# tw.x, tw.y = The x, y (horizontal, vertical) location of the window relative -# to the top left of the display screen. This also does not include the -# title bar and window borders. To put it another way, this is the -# screen location of (0, 0) in the working window. - -class Table_Window: - def __init__(self, info = {}): - if 'number' in info: self.number = info['number'] - if 'exe' in info: self.exe = info['exe'] - if 'width' in info: self.width = info['width'] - if 'height' in info: self.height = info['height'] - if 'x' in info: self.x = info['x'] - if 'y' in info: self.y = info['y'] - if 'site' in info: self.site = info['site'] - if 'title' in info: self.title = info['title'] - if 'name' in info: self.name = info['name'] - self.gdkhandle = None - - def __str__(self): -# __str__ method for testing - temp = 'TableWindow object\n' - temp = temp + " name = %s\n site = %s\n number = %s\n title = %s\n" % (self.name, self.site, self.number, self.title) -# temp = temp + " game = %s\n structure = %s\n max = %s\n" % (self.game, self.structure, self.max) - temp = temp + " width = %d\n height = %d\n x = %d\n y = %d\n" % (self.width, self.height, self.x, self.y) - if getattr(self, 'tournament', 0): - temp = temp + " tournament = %d\n table = %d" % (self.tournament, self.table) - return temp - -############################################################################ -# Top-level discovery routines--these are the modules interface -def discover(c): - """Dispatch routine for finding all potential poker client windows.""" - if os.name == 'posix': - tables = discover_posix(c) - elif os.name == 'nt': - tables = discover_nt(c) - elif os.name == 'mac': - tables = discover_mac(c) - else: - tables = {} - return tables - -def discover_table_by_name(c, tablename): - """Dispatch routine for finding poker client windows with the given name.""" - if os.name == 'posix': - info = discover_posix_by_name(c, tablename) - elif os.name == 'nt': - info = discover_nt_by_name(c, tablename) - elif os.name == 'mac': - info = discover_mac_by_name(c, tablename) - else: - return None - if info is None: - return None - return Table_Window(info) - -def discover_tournament_table(c, tour_number, tab_number): - """Dispatch routine for finding poker clients with tour and table number.""" - if os.name == 'posix': - info = discover_posix_tournament(c, tour_number, tab_number) - elif os.name == 'nt': - info = discover_nt_tournament(c, tour_number, tab_number) - elif os.name == 'mac': - info = discover_mac_tournament(c, tour_number, tab_number) - else: - return None - if info: - return Table_Window(info) - return None - -############################################################################# -# Posix (= XWindows) specific routines -def discover_posix(c): - """Poker client table window finder for posix/Linux = XWindows.""" - tables = {} - for listing in os.popen('xwininfo -root -tree').readlines(): -# xwininfo -root -tree -id 0xnnnnn gets the info on a single window - for s in c.get_supported_sites(): - params = c.get_site_parameters(s) - -# TODO: We need to make a list of phrases, shared between the WIndows and Unix code!!!!!! - if re.search(params['table_finder'], listing): - if 'Lobby' in listing: continue - if 'Instant Hand History' in listing: continue -# if '\"Full Tilt Poker\"' in listing: continue - if 'History for table:' in listing: continue - if 'has no name' in listing: continue - info = decode_xwininfo(c, listing) - if info['site'] is None: continue - if info['title'] == info['exe']: continue -# this appears to be a poker client, so make a table object for it - tw = Table_Window(info) - eval("%s(tw)" % params['decoder']) - tables[tw.name] = tw - return tables - -def discover_posix_by_name(c, tablename): - """Find an XWindows poker client of the given name.""" - for listing in os.popen('xwininfo -root -tree').readlines(): - if tablename in listing: - if 'History for table:' in listing: continue - info = decode_xwininfo(c, listing) - if not info['name'] == tablename: continue - return info - return None - -def discover_posix_tournament(c, t_number, s_number): - """Finds the X window for a client, given tournament and table nos.""" - search_string = "%s.+Table.+%s" % (t_number, s_number) - for listing in os.popen('xwininfo -root -tree').readlines(): - if re.search(search_string, listing): - return decode_xwininfo(c, listing) - return None - -def decode_xwininfo(c, info_string): - """Gets window parameters from xwinifo string--XWindows.""" - info = {} - mo = re.match('\s+([\dxabcdef]+) (.+):\s\(\"([a-zA-Z.]+)\".+ (\d+)x(\d+)\+\d+\+\d+ \+(\d+)\+(\d+)', info_string) - if not mo: - return None - else: - info['number'] = int( mo.group(1), 0) - info['exe'] = mo.group(3) - info['width'] = int( mo.group(4) ) - info['height'] = int( mo.group(5) ) - info['x'] = int( mo.group(6) ) - info['y'] = int( mo.group(7) ) - info['site'] = get_site_from_exe(c, info['exe']) - info['title'] = re.sub('\"', '', mo.group(2)) - title_bits = re.split(' - ', info['title']) - info['name'] = clean_title(title_bits[0]) - return info - -############################################################################## -# NT (= Windows) specific routines -def discover_nt(c): - """ Poker client table window finder for Windows.""" -# -# I cannot figure out how to get the inside dimensions of the poker table -# windows. So I just assume all borders are 3 thick and all title bars -# are 29 high. No doubt this will be off when used with certain themes. -# - b_width = 3 - tb_height = 29 - titles = {} - tables = {} - win32gui.EnumWindows(win_enum_handler, titles) - for hwnd in titles: - if 'Logged In as' in titles[hwnd] and not 'Lobby' in titles[hwnd]: - if 'Full Tilt Poker' in titles[hwnd]: - continue - tw = Table_Window() - tw.number = hwnd - (x, y, width, height) = win32gui.GetWindowRect(hwnd) - tw.title = titles[hwnd] - tw.width = int( width ) - 2*b_width - tw.height = int( height ) - b_width - tb_height - tw.x = int( x ) + b_width - tw.y = int( y ) + tb_height - -# TODO: Isn't the site being determined by the EXE name it belongs to? is this section of code even useful? cleaning it anyway - if 'Logged In as' in titles[hwnd]: - tw.site = "PokerStars" - elif 'Logged In As' in titles[hwnd]: - tw.site = "Full Tilt" - else: - tw.site = "Unknown" - sys.stderr.write(_("Found unknown table = %s") % tw.title) - if tw.site != "Unknown": - eval("%s(tw)" % c.supported_sites[tw.site].decoder) - else: - tw.name = "Unknown" - tables[len(tables)] = tw - return tables - -def discover_nt_by_name(c, tablename): - """Finds poker client window with the given table name.""" - titles = {} - win32gui.EnumWindows(win_enum_handler, titles) - - for hwnd in titles: - #print "Tables.py: tablename =", tablename, "title =", titles[hwnd] - try: - # maybe it's better to make global titles[hwnd] decoding? - # this can blow up in XP on some windows, eg firefox displaying http://docs.python.org/tutorial/classes.html - if not tablename.lower() in titles[hwnd].decode(Configuration.LOCALE_ENCODING).lower(): - continue - except: - continue - if 'History for table:' in titles[hwnd]: continue # Everleaf Network HH viewer window - if 'HUD:' in titles[hwnd]: continue # FPDB HUD window - if 'Chat:' in titles[hwnd]: continue # Some sites (FTP? PS? Others?) have seperable or seperately constructed chat windows - if ' - Table ' in titles[hwnd]: continue # Absolute table Chat window.. sigh. TODO: Can we tell what site we're trying to discover for somehow in here, so i can limit this check just to AP searches? - temp = decode_windows(c, titles[hwnd], hwnd) - print _("attach to window"), temp - return temp - return None - -def discover_nt_tournament(c, tour_number, tab_number): - """Finds the Windows window handle for the given tournament/table.""" - search_string = "%s.+%s" % (tour_number, tab_number) - - titles ={} - win32gui.EnumWindows(win_enum_handler, titles) - for hwnd in titles: - # Some sites (FTP? PS? Others?) have seperable or seperately constructed chat windows - if 'Chat:' in titles[hwnd]: continue - # Everleaf Network HH viewer window - if 'History for table:' in titles[hwnd]: continue - # FPDB HUD window - if 'HUD:' in titles[hwnd]: continue - - if re.search(search_string, titles[hwnd]): - return decode_windows(c, titles[hwnd], hwnd) - return None - -def get_nt_exe(hwnd): - """Finds the name of the executable that the given window handle belongs to.""" - - # Request privileges to enable "debug process", so we can later use - # PROCESS_VM_READ, retardedly required to GetModuleFileNameEx() - priv_flags = win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY - hToken = win32security.OpenProcessToken (win32api.GetCurrentProcess(), - priv_flags) - # enable "debug process" - privilege_id = win32security.LookupPrivilegeValue(None, - win32security.SE_DEBUG_NAME) - old_privs = win32security.AdjustTokenPrivileges(hToken, 0, - [(privilege_id, - win32security.SE_PRIVILEGE_ENABLED)]) - - # Open the process, and query it's filename - processid = win32process.GetWindowThreadProcessId(hwnd) - pshandle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | - win32con.PROCESS_VM_READ, False, - processid[1]) - try: - exename = win32process.GetModuleFileNameEx(pshandle, 0) - except pywintypes.error: - # insert code to call GetProcessImageName if we can find it.. - # returning None from here will hopefully break all following code - exename = None - finally: - # clean up - win32api.CloseHandle(pshandle) - win32api.CloseHandle(hToken) - - return exename - -def decode_windows(c, title, hwnd): - """Gets window parameters from the window title and handle--Windows.""" - -# I cannot figure out how to get the inside dimensions of the poker table -# windows. So I just assume all borders are 3 thick and all title bars -# are 29 high. No doubt this will be off when used with certain themes. - b_width = 3 - tb_height = 29 - - info = {} - info['number'] = hwnd - info['title'] = re.sub('\"', '', title) - (x, y, width, height) = win32gui.GetWindowRect(hwnd) - - info['x'] = int(x) + b_width - info['y'] = int( y ) + tb_height - info['width'] = int( width ) - 2*b_width - info['height'] = int( height ) - b_width - tb_height - info['exe'] = get_nt_exe(hwnd) - print "get_nt_exe returned ", info['exe'] - # TODO: 'width' here is all sorts of screwed up. - - title_bits = re.split(' - ', info['title']) - info['name'] = title_bits[0] - info['site'] = get_site_from_exe(c, info['exe']) - - return info - -def win_enum_handler(hwnd, titles): - str = win32gui.GetWindowText(hwnd) - if str != "": - titles[hwnd] = win32gui.GetWindowText(hwnd) - -################################################################### -# Utility routines used by all the discoverers. -def get_site_from_exe(c, exe): - """Look up the site from config, given the exe.""" - for s in c.get_supported_sites(): - params = c.get_site_parameters(s) - if re.search(params['table_finder'], exe): - return params['site_name'] - return None - -def everleaf_decode_table(tw): -# 2 - Tournament ID: 573256 - NL Hold'em - 150/300 blinds - Good luck ! - [Connection is ...] - pass - -def pokerstars_decode_table(tw): -# Extract poker information from the window title. This is not needed for -# fpdb, since all that information is available in the db via new_hand_number. -# This is needed only when using the HUD with a backend less integrated. - title_bits = re.split(' - ', tw.title) - name = title_bits[0] - mo = re.search('Tournament (\d+) Table (\d+)', name) - if mo: - tw.tournament = int( mo.group(1) ) - tw.table = int( mo.group(2) ) - tw.name = name - else: - tw.tournament = None - tw.name = clean_title(name) - mo = re.search('(Razz|Stud H/L|Stud|Omaha H/L|Omaha|Hold\'em|5-Card Draw|Triple Draw 2-7 Lowball|Badugi)', tw.title) - - tw.game = mo.group(1).lower() - tw.game = re.sub('\'', '', tw.game) - tw.game = re.sub('h/l', 'hi/lo', tw.game) - - mo = re.search('(No Limit|Pot Limit)', tw.title) - if mo: - tw.structure = mo.group(1).lower() - else: - tw.structure = 'limit' - - tw.max = None - if tw.game in ('razz', 'stud', 'stud hi/lo'): - tw.max = 8 - elif tw.game in ('5-card draw', 'triple draw 2-7 lowball'): - tw.max = 6 - elif tw.game == 'holdem': - pass - elif tw.game in ('omaha', 'omaha hi/lo'): - pass - -def fulltilt_decode_table(tw): -# Extract poker information from the window title. This is not needed for -# fpdb, since all that information is available in the db via new_hand_number. -# This is needed only when using the HUD with a backend less integrated. - title_bits = re.split(' - ', tw.title) - name = title_bits[0] - tw.tournament = None - tw.name = clean_title(name) - -def clean_title(name): - """Clean the little info strings from the table name.""" -# these strings could go in a config file - for pattern in [' \(6 max\)', ' \(heads up\)', ' \(deep\)', - ' \(deep hu\)', ' \(deep 6\)', '\(6 max, deep\)', ' \(2\)', - ' \(edu\)', ' \(edu, 6 max\)', ' \(6\)', - ' \(speed\)', 'special', 'newVPP', - ' no all-in', ' fast', ',', ' 50BB min', '50bb min', '\s+$']: - name = re.sub(pattern, '', name) - name = name.rstrip() - return name - -########################################################################### -# Mac specific routines....all stubs for now -def discover_mac_tournament(c, tour_number, tab_number): - """Mac users need help.""" - return None - -def discover_mac(c): - """Poker client table window finder for Macintosh.""" - tables = {} - return tables - -def discover_mac_by_name(c, tablename): - """Oh, the humanity.""" - # again, i have no mac to test this on, sorry -eric - return None - -########################################################################### -# Main function used for testing -if __name__=="__main__": - c = Configuration.Config() - - print discover_table_by_name(c, "Torino") -# print discover_tournament_table(c, "118942908", "3") - - tables = discover(c) - for t in tables.keys(): - print tables[t] - - print _("press enter to continue") - sys.stdin.readline() From eef5fd28e81ec83c94fb878db41c36e221ca35c3 Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Thu, 26 Aug 2010 22:52:16 -0400 Subject: [PATCH 06/48] FulltiltToFpdb: Throw exception when HandInfo reg ex doesn't match. --- pyfpdb/FulltiltToFpdb.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index 4b5fbcfd..b235ed4d 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -208,8 +208,7 @@ class Fulltilt(HandHistoryConverter): if m is None: logging.info("Didn't match re_HandInfo") logging.info(hand.handText) - # Should this throw an exception? - CG - return None + raise FpdbParseError("No match in readHandInfo.") hand.handid = m.group('HID') hand.tablename = m.group('TABLE') From 004dd80fc2a9b1f4ff908c2b511ae9af3219a990 Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Fri, 27 Aug 2010 10:53:33 -0400 Subject: [PATCH 07/48] PartyPokerToFpdb: Allow HUD to find STTs. --- pyfpdb/PartyPokerToFpdb.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyfpdb/PartyPokerToFpdb.py b/pyfpdb/PartyPokerToFpdb.py index 2dab4569..4b941d54 100755 --- a/pyfpdb/PartyPokerToFpdb.py +++ b/pyfpdb/PartyPokerToFpdb.py @@ -502,7 +502,10 @@ class PartyPoker(HandHistoryConverter): if type=="tour": TableName = table_name.split(" ") print 'party', 'getTableTitleRe', "%s.+Table\s#%s" % (TableName[0], table_number) - return "%s.+Table\s#%s" % (TableName[0], table_number) + if table_number is None: + return "#%s" % (TableName[0]) + else: + return "%s.+Table\s#%s" % (TableName[0], table_number) else: print 'party', 'getTableTitleRe', table_number return table_name From ad3c6516cd435c08ffa6aa8f57520c49148891be Mon Sep 17 00:00:00 2001 From: Eratosthenes Date: Sat, 28 Aug 2010 09:25:41 -0400 Subject: [PATCH 08/48] PartyPokerToFpdb: Try again to fix STT HUD. --- pyfpdb/PartyPokerToFpdb.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/PartyPokerToFpdb.py b/pyfpdb/PartyPokerToFpdb.py index 4b941d54..f61b5b7b 100755 --- a/pyfpdb/PartyPokerToFpdb.py +++ b/pyfpdb/PartyPokerToFpdb.py @@ -502,8 +502,8 @@ class PartyPoker(HandHistoryConverter): if type=="tour": TableName = table_name.split(" ") print 'party', 'getTableTitleRe', "%s.+Table\s#%s" % (TableName[0], table_number) - if table_number is None: - return "#%s" % (TableName[0]) + if len(TableName[1]) > 6: + return "#%s" % (table_number) else: return "%s.+Table\s#%s" % (TableName[0], table_number) else: From ff2a9fcc5a5c1cefab10b75457da4d427919af92 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sat, 28 Aug 2010 22:49:59 +0200 Subject: [PATCH 09/48] move gettext import to the right place in GuiGraphViewer --- pyfpdb/GuiGraphViewer.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pyfpdb/GuiGraphViewer.py b/pyfpdb/GuiGraphViewer.py index fe82aa44..09acb483 100644 --- a/pyfpdb/GuiGraphViewer.py +++ b/pyfpdb/GuiGraphViewer.py @@ -26,22 +26,6 @@ from time import * from datetime import datetime #import pokereval -try: - import matplotlib - matplotlib.use('GTKCairo') - from matplotlib.figure import Figure - from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas - from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar - from matplotlib.font_manager import FontProperties - from numpy import arange, cumsum - from pylab import * -except ImportError, inst: - print _("""Failed to load libs for graphing, graphing will not function. Please - install numpy and matplotlib if you want to use graphs.""") - print _("""This is of no consequence for other parts of the program, e.g. import - and HUD are NOT affected by this problem.""") - print "ImportError: %s" % inst.args - import locale lang=locale.getdefaultlocale()[0][0:2] if lang=="en": @@ -59,6 +43,22 @@ import Database import Filters import Charset +try: + import matplotlib + matplotlib.use('GTKCairo') + from matplotlib.figure import Figure + from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas + from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar + from matplotlib.font_manager import FontProperties + from numpy import arange, cumsum + from pylab import * +except ImportError, inst: + print _("""Failed to load libs for graphing, graphing will not function. Please + install numpy and matplotlib if you want to use graphs.""") + print _("""This is of no consequence for other parts of the program, e.g. import + and HUD are NOT affected by this problem.""") + print "ImportError: %s" % inst.args + class GuiGraphViewer (threading.Thread): def __init__(self, querylist, config, parent, debug=True): From 8f91adc513af425ff61f1af009da3d7358b900af Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sun, 29 Aug 2010 12:39:54 +0100 Subject: [PATCH 10/48] add log definition --- pyfpdb/DerivedStats.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyfpdb/DerivedStats.py b/pyfpdb/DerivedStats.py index dde8ecca..d79d49bf 100644 --- a/pyfpdb/DerivedStats.py +++ b/pyfpdb/DerivedStats.py @@ -19,6 +19,10 @@ import Card from decimal import Decimal +import logging +# logging has been set up in fpdb.py or HUD_main.py, use their settings: +log = logging.getLogger("parser") + DEBUG = False if DEBUG: From bf8b826bbcfbb3c9835b4d6933f442fe8c7e235b Mon Sep 17 00:00:00 2001 From: sqlcoder Date: Sun, 29 Aug 2010 12:46:22 +0100 Subject: [PATCH 11/48] copy any missing parts of config from .example --- pyfpdb/Configuration.py | 137 ++++++++++++++++++++++++++-------------- 1 file changed, 91 insertions(+), 46 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index a578bcc9..e9f1521c 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -82,6 +82,11 @@ def get_exec_path(): def get_config(file_name, fallback = True): """Looks in cwd and in self.default_config_path for a config file.""" + + # look for example file even if not used here, path is returned to caller + config_found,example_found,example_copy = False,False,False + config_path, example_path = None,None + exec_dir = get_exec_path() if file_name == 'logging.conf' and not hasattr(sys, "frozen"): config_path = os.path.join(exec_dir, 'pyfpdb', file_name) @@ -89,17 +94,13 @@ def get_config(file_name, fallback = True): config_path = os.path.join(exec_dir, file_name) # print "config_path=", config_path if os.path.exists(config_path): # there is a file in the cwd - return (config_path,False) # so we use it + config_found = True # so we use it else: # no file in the cwd, look where it should be in the first place default_dir = get_default_config_path() config_path = os.path.join(default_dir, file_name) # print "config path 2=", config_path if os.path.exists(config_path): - return (config_path,False) - -# No file found - if not fallback: - return (False,False) + config_found = True # Example configuration for debian package if os.name == 'posix': @@ -108,38 +109,43 @@ def get_config(file_name, fallback = True): # the config directory for us so there's no need to check it # again example_path = '/usr/share/python-fpdb/' + file_name + '.example' - try: - shutil.copyfile(example_path, config_path) - msg = _("Config file has been created at %s.\n") % config_path - logging.info(msg) - return (config_path,False) - except IOError: - pass + if not config_found and fallback: + try: + shutil.copyfile(example_path, config_path) + example_copy = True + msg = _("Config file has been created at %s.\n") % config_path + logging.info(msg) + except IOError: + pass # OK, fall back to the .example file, should be in the start dir - if os.path.exists(file_name + ".example"): + elif os.path.exists(file_name + ".example"): try: print "" + example_path = file_name + ".example" check_dir(default_dir) - shutil.copyfile(file_name + ".example", config_path) - msg = _("No %s found\n in %s\n or %s\n") % (file_name, exec_dir, default_dir) \ - + _("Config file has been created at %s.\n") % config_path - print msg - logging.info(msg) - file_name = config_path + if not config_found and fallback: + shutil.copyfile(example_path, config_path) + example_copy = True + msg = _("No %s found\n in %s\n or %s\n") % (file_name, exec_dir, default_dir) \ + + _("Config file has been created at %s.\n") % config_path + print msg + logging.info(msg) except: print _("Error copying .example file, cannot fall back. Exiting.\n") sys.stderr.write(_("Error copying .example file, cannot fall back. Exiting.\n")) sys.stderr.write( str(sys.exc_info()) ) sys.exit() - else: + elif fallback: print _("No %s found, cannot fall back. Exiting.\n") % file_name sys.stderr.write(_("No %s found, cannot fall back. Exiting.\n") % file_name) sys.exit() - return (file_name,True) + + #print "get_config: returning "+str( (config_path,example_copy,example_path) ) + return (config_path,example_copy,example_path) def get_logger(file_name, config = "config", fallback = False, log_dir=None, log_file=None): - (conf_file,copied) = get_config(file_name, fallback = fallback) + (conf_file,copied,example_file) = get_config(file_name, fallback = fallback) if log_dir is None: log_dir = os.path.join(get_exec_path(), u'log') @@ -674,7 +680,7 @@ class Config: sys.stderr.write(_("Configuration file %s not found. Using defaults.") % (file)) file = None - if file is None: (file,self.example_copy) = get_config("HUD_config.xml", True) + if file is None: (file,self.example_copy,example_file) = get_config("HUD_config.xml", True) self.file = file self.dir_self = get_exec_path() @@ -685,27 +691,6 @@ class Config: self.log_file = os.path.join(self.dir_log, u'fpdb-log.txt') log = get_logger("logging.conf", "config", log_dir=self.dir_log) -# Parse even if there was no real config file found and we are using the example -# If using the example, we'll edit it later - log.info(_("Reading configuration file %s") % file) - print _("\nReading configuration file %s\n") % file - try: - doc = xml.dom.minidom.parse(file) - self.file_error = None - except: - log.error(_("Error parsing %s. See error log file.") % (file)) - traceback.print_exc(file=sys.stderr) - self.file_error = sys.exc_info()[1] - # we could add a parameter to decide whether to return or read a line and exit? - return - #print "press enter to continue" - #sys.stdin.readline() - #sys.exit() -#ExpatError: not well-formed (invalid token): line 511, column 4 -#sys.exc_info = (, ExpatError('not well-formed (invalid token): line 511, -# column 4',), ) - - self.doc = doc self.supported_sites = {} self.supported_games = {} self.supported_databases = {} # databaseName --> Database instance @@ -717,6 +702,32 @@ class Config: self.emails = {} self.gui_cash_stats = GUICashStats() + added,n = 1,0 # use n to prevent infinite loop if add_missing_elements() fails somehow + while added > 0 and n < 2: + n = n + 1 + log.info(_("Reading configuration file %s") % file) + print _("\nReading configuration file %s\n") % file + try: + doc = xml.dom.minidom.parse(file) + self.doc = doc + self.file_error = None + except: + log.error(_("Error parsing %s. See error log file.") % (file)) + traceback.print_exc(file=sys.stderr) + self.file_error = sys.exc_info()[1] + # we could add a parameter to decide whether to return or read a line and exit? + return + #print "press enter to continue" + #sys.stdin.readline() + #sys.exit() +#ExpatError: not well-formed (invalid token): line 511, column 4 +#sys.exc_info = (, ExpatError('not well-formed (invalid token): line 511, +# column 4',), ) + + if not self.example_copy and example_file is not None: + # reads example file and adds missing elements into current config + added = self.add_missing_elements(doc, example_file) + if doc.getElementsByTagName("general") == []: self.general.get_defaults() for gen_node in doc.getElementsByTagName("general"): @@ -792,7 +803,7 @@ class Config: self.set_db_parameters(db_name = 'fpdb', db_ip = df_parms['db-host'], 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")) + self.save(file=os.path.join(self.dir_config, "HUD_config.xml")) if doc.getElementsByTagName("raw_hands") == []: self.raw_hands = RawHands() @@ -807,6 +818,40 @@ class Config: print "" #end def __init__ + def add_missing_elements(self, doc, example_file): + """ Look through example config file and add any elements that are not in the config + May need to add some 'enabled' attributes to turn things off - can't just delete a + config section now because this will add it back in""" + + nodes_added = 0 + + try: + example_doc = xml.dom.minidom.parse(example_file) + except: + log.error(_("Error parsing example file %s. See error log file.") % (example_file)) + return nodes_added + + for cnode in doc.getElementsByTagName("FreePokerToolsConfig"): + for example_cnode in example_doc.childNodes: + if example_cnode.localName == "FreePokerToolsConfig": + for e in example_cnode.childNodes: + #print "nodetype", e.nodeType, "name", e.localName, "found", len(doc.getElementsByTagName(e.localName)) + if e.nodeType == e.ELEMENT_NODE and doc.getElementsByTagName(e.localName) == []: + new = doc.importNode(e, True) # True means do deep copy + t_node = self.doc.createTextNode(" ") + cnode.appendChild(t_node) + cnode.appendChild(new) + t_node = self.doc.createTextNode("\r\n\r\n") + cnode.appendChild(t_node) + print "... adding missing config section: " + e.localName + nodes_added = nodes_added + 1 + + if nodes_added > 0: + print "Added %d missing config sections\n" % nodes_added + self.save() + + return nodes_added + def set_hhArchiveBase(self, path): self.imp.node.setAttribute("hhArchiveBase", path) From ee20cbbcc161e506c0122a235af79bc6b002b8a6 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 14:21:49 +0200 Subject: [PATCH 12/48] some small GUI string improvements --- pyfpdb/fpdb.pyw | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index adeb34c7..024d56ef 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -52,7 +52,7 @@ if os.name == 'nt' and sys.version[0:3] not in ('2.5', '2.6', '2.7') and '-r' no else: os.execvpe('python', ('python', 'fpdb.pyw', '-r'), os.environ) # first arg is ignored (name of program being run) else: - print _("\npython 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n") + print _("\npython 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n") raw_input(_("Press ENTER to continue.")) exit() else: @@ -86,7 +86,7 @@ try: import gtk import pango except: - print _("Unable to load PYGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org.") + print _("Unable to load PyGTK modules required for GUI. Please install PyCairo, PyGObject, and PyGTK from www.pygtk.org.") raw_input(_("Press ENTER to continue.")) exit() @@ -436,7 +436,7 @@ class fpdb: diaHudTable.vbox.add(label) label.show() - label=gtk.Label(_("To configure things like colouring you will still have to manually edit your HUD_config.xml.")) + label=gtk.Label(_("To configure things like colouring you will still have to use the Preferences dialogue or manually edit your HUD_config.xml.")) diaHudTable.vbox.add(label) label.show() @@ -545,7 +545,7 @@ class fpdb: dia_confirm = gtk.MessageDialog(parent=self.window, flags=gtk.DIALOG_DESTROY_WITH_PARENT, type=gtk.MESSAGE_WARNING, buttons=(gtk.BUTTONS_YES_NO), message_format=_("Confirm deleting and recreating tables")) diastring = _("Please confirm that you want to (re-)create the tables. If there already are tables in the database ") \ - +self.db.database+" on "+self.db.host+_(" they will be deleted.\nThis may take a while.") + +self.db.database+" on "+self.db.host+_(" they will be deleted and you will have to re-import your histories.\nThis may take a while.") dia_confirm.format_secondary_text(diastring)#todo: make above string with bold for db, host and deleted # disable windowclose, do not want the the underlying processing interrupted mid-process dia_confirm.set_deletable(False) From 219180822f0cd3e6c3cbc552e6e30166b4d6271b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 14:24:04 +0200 Subject: [PATCH 13/48] l10n: improve create script, update PO files, some german translation --- pyfpdb/locale/create-po-file.sh | 1 + pyfpdb/locale/fpdb-de_DE.po | 149 +++++++++++++++++++------------- pyfpdb/locale/fpdb-en_GB.po | 14 +-- pyfpdb/locale/fpdb-hu_HU.po | 36 ++++---- 4 files changed, 117 insertions(+), 83 deletions(-) diff --git a/pyfpdb/locale/create-po-file.sh b/pyfpdb/locale/create-po-file.sh index d26c853a..49adc81f 100755 --- a/pyfpdb/locale/create-po-file.sh +++ b/pyfpdb/locale/create-po-file.sh @@ -1,3 +1,4 @@ cd .. +rm *.pyc python /usr/share/doc/python-2.7/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.po *.py* diff --git a/pyfpdb/locale/fpdb-de_DE.po b/pyfpdb/locale/fpdb-de_DE.po index 9d7032b7..86577671 100644 --- a/pyfpdb/locale/fpdb-de_DE.po +++ b/pyfpdb/locale/fpdb-de_DE.po @@ -4,8 +4,8 @@ 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-25 18:41+0200\n" +"POT-Creation-Date: 2010-08-29 14:22+CEST\n" +"PO-Revision-Date: 2010-08-29 14:20+0200\n" "Last-Translator: Steffen Schaumburg \n" "Language-Team: Fpdb\n" "Language: de\n" @@ -18,7 +18,7 @@ msgstr "" #: Anonymise.py:55 msgid "Could not find file %s" -msgstr "" +msgstr "Konnte Datei %s nicht finden" #: Anonymise.py:61 msgid "Output being written to" @@ -907,13 +907,13 @@ msgstr "" msgid "Log Viewer" msgstr "" -#: GuiGraphViewer.py:39 +#: GuiGraphViewer.py:56 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 +#: GuiGraphViewer.py:58 msgid "" "This is of no consequence for other parts of the program, e.g. import \n" " and HUD are NOT affected by this problem." @@ -2412,17 +2412,20 @@ msgstr "" #: fpdb.pyw:48 msgid " - press return to continue\n" -msgstr "" +msgstr " - drücken Sie Enter um fortzufahren" #: fpdb.pyw:55 msgid "" "\n" -"python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" +"python 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" msgstr "" +"\n" +"Python 2.5-2.7 nicht gefunden, bitte installieren Sie Python 2.5, 2.6 oder " +"2.7 für fpdb\n" #: fpdb.pyw:56 fpdb.pyw:68 fpdb.pyw:90 msgid "Press ENTER to continue." -msgstr "" +msgstr "Drücken Sie ENTER um fortzufahren" #: fpdb.pyw:67 msgid "" @@ -2430,88 +2433,105 @@ msgid "" "not loading. Please install the PYWIN32 package from http://sourceforge.net/" "projects/pywin32/" msgstr "" +"Ihr Betriebssystem scheint Windows zu sein, aber die Windows Python " +"Extensions konnten nicht geladen werden. Bitte installieren Sie das PYWIN32-" +"Paket von http://sourceforge.net/projects/pywin32/" #: fpdb.pyw:89 msgid "" -"Unable to load PYGTK modules required for GUI. Please install PyCairo, " +"Unable to load PyGTK modules required for GUI. Please install PyCairo, " "PyGObject, and PyGTK from www.pygtk.org." msgstr "" +"Die für die GUI benötigten PyGTK module konnten nicht geladen werden. Bitte " +"installieren Sie PyCairo, PyGObject und PyGTK von www.pygtk.org." #: fpdb.pyw:247 msgid "" "Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " "sqlcoder, Bostik, and others" msgstr "" +"Copyright 2008-2010, Steffen, Eratosthenes, Carl Gherardi, Eric Blade, _mt, " +"sqlcoder, Bostik und andere" #: 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 "" +"Sie dürfen fpdb innerhalb der Regeln der Lizenz verändern, verbreiten und " +"verändert verbreiten." #: fpdb.pyw:249 msgid "Please see fpdb's start screen for license information" -msgstr "" +msgstr "Lizenzinformationen finden Sie auf fpdb's Startbildschirm" #: fpdb.pyw:253 msgid "and others" -msgstr "" +msgstr "und andere" #: fpdb.pyw:259 msgid "Operating System" -msgstr "" +msgstr "Betriebssystem" #: fpdb.pyw:280 msgid "Your config file is: " -msgstr "" +msgstr "Ihre Konfigurationsdatei ist:" #: fpdb.pyw:285 msgid "Version Information:" -msgstr "" +msgstr "Versionsinformationen:" #: fpdb.pyw:292 msgid "Threads: " -msgstr "" +msgstr "Threads:" #: fpdb.pyw:315 msgid "" "Updated preferences have not been loaded because windows are open. Re-start " "fpdb to load them." msgstr "" +"Die neuen Einstellungen konnten nicht geladen werden da fpdb-Fenster offen " +"sind. Bitte starten Sie fpdb neu um sie zu verwenden." #: fpdb.pyw:325 msgid "Maintain Databases" -msgstr "" +msgstr "Datenbanken verwalten" #: fpdb.pyw:335 msgid "saving updated db data" -msgstr "" +msgstr "speichere aktualisierte DB-Daten" #: fpdb.pyw:342 msgid "guidb response was " -msgstr "" +msgstr "GuiDBs Antwort war " #: fpdb.pyw:348 msgid "" "Cannot open Database Maintenance window because other windows have been " "opened. Re-start fpdb to use this option." msgstr "" +"Konnte Datenbank-Verwaltungsfenster nicht öffnen da andere Fenster geöffnet " +"waren/sind. Starten Sie fpdb neu um diese Funktion zu nutzen." #: fpdb.pyw:351 msgid "Number of Hands: " -msgstr "" +msgstr "Hände: " #: fpdb.pyw:352 msgid "" "\n" "Number of Tourneys: " msgstr "" +"\n" +"Tournamente: " #: fpdb.pyw:353 msgid "" "\n" "Number of TourneyTypes: " msgstr "" +"\n" +"Tournamentarten (TourneyTypes): " #: fpdb.pyw:354 msgid "Database Statistics" @@ -2519,40 +2539,46 @@ msgstr "Datenbankstatistiken" #: fpdb.pyw:363 msgid "HUD Configurator - choose category" -msgstr "" +msgstr "HUD-Konfigurator - Kategorieauswahl" #: fpdb.pyw:369 msgid "" "Please select the game category for which you want to configure HUD stats:" msgstr "" +"Bitte wählen Sie die Spielkategorie, für die Sie HUD-Statistiken " +"konfigurieren möchten:" #: fpdb.pyw:421 msgid "HUD Configurator - please choose your stats" -msgstr "" +msgstr "HUD-Konfigurator - Statistikauswahl" #: fpdb.pyw:427 msgid "Please choose the stats you wish to use in the below table." -msgstr "" +msgstr "Bitte wählen Sie die Statistiken, die Sie nutzen möchten." #: fpdb.pyw:431 msgid "Note that you may not select any stat more than once or it will crash." msgstr "" +"Bitte beachten Sie, dass das HUD abstürzt wenn Sie Statistiken mehr als " +"einmal auswählen." #: fpdb.pyw:435 msgid "" "It is not currently possible to select \"empty\" or anything else to that " "end." -msgstr "" +msgstr "Es ist momentan nicht möglich \"leer\" o.ä. auszuwählen." #: fpdb.pyw:439 msgid "" -"To configure things like colouring you will still have to manually edit your " -"HUD_config.xml." +"To configure things like colouring you will still have to use the " +"Preferences dialogue or manually edit your HUD_config.xml." msgstr "" +"Um Farben usw. zu konfigurieren müssen Sie weiterhin den Einstellungs-Dialog " +"verwenden oder Ihre HUD_config.xml manuell bearbeiten." #: fpdb.pyw:546 msgid "Confirm deleting and recreating tables" -msgstr "" +msgstr "Tabellen löschen und reinitialisieren" #: fpdb.pyw:547 msgid "" @@ -2562,17 +2588,17 @@ msgstr "" #: fpdb.pyw:548 msgid "" -" they will be deleted.\n" +" they will be deleted and you will have to re-import your histories.\n" "This may take a while." msgstr "" #: fpdb.pyw:573 msgid "User cancelled recreating tables" -msgstr "" +msgstr "Benutzer hat Reinitialisierung der Tabellen abgebrochen" #: fpdb.pyw:580 msgid "Please confirm that you want to re-create the HUD cache." -msgstr "" +msgstr "Bitte bestätigen Sie, dass Sie den HUD-Cache neu erstellen möchten." #: fpdb.pyw:588 msgid " Hero's cache starts: " @@ -2584,35 +2610,36 @@ msgstr "" #: fpdb.pyw:615 msgid " Rebuilding HUD Cache ... " -msgstr "" +msgstr " Der HUD-Cache wird neu erstellt ... " #: fpdb.pyw:623 msgid "User cancelled rebuilding hud cache" -msgstr "" +msgstr "Benutzer hat Neuerstellung des HUD-Cache abgebrochen" #: fpdb.pyw:635 msgid "Confirm rebuilding database indexes" -msgstr "" +msgstr "Bestätigung der Neuerstellung der Datenbankindexe" #: fpdb.pyw:636 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" +"Bitte bestätigen Sie, dass Sie die Datenbankindexe neu erstellen möchten." #: fpdb.pyw:644 msgid " Rebuilding Indexes ... " -msgstr "" +msgstr " Datenbankindexe werden neu erstellt ... " #: fpdb.pyw:651 msgid " Cleaning Database ... " -msgstr "" +msgstr " Reinige Datenbank ... " #: fpdb.pyw:656 msgid " Analyzing Database ... " -msgstr "" +msgstr " Analysiere Datenbank ... " #: fpdb.pyw:661 msgid "User cancelled rebuilding db indexes" -msgstr "" +msgstr "Benutzer hat Neuerstellung der Datenbankindexe abgebrochen" #: fpdb.pyw:756 msgid "" @@ -2621,7 +2648,7 @@ msgstr "" #: fpdb.pyw:759 msgid "Fatal Error - Config File Missing" -msgstr "" +msgstr "Schwerer Fehler - Konfigurationsdatei nicht gefunden" #: fpdb.pyw:761 msgid "Please copy the config file from the docs folder to:" @@ -2642,7 +2669,6 @@ msgid "_Quit" msgstr "_Beenden" #: fpdb.pyw:827 -#, fuzzy msgid "L" msgstr "L" @@ -2688,31 +2714,31 @@ msgstr "" #: fpdb.pyw:834 msgid "A" -msgstr "" +msgstr "A" #: fpdb.pyw:834 msgid "_Auto Import and HUD" -msgstr "" +msgstr "_Autoimport und HUD" #: fpdb.pyw:835 msgid "H" -msgstr "" +msgstr "H" #: fpdb.pyw:835 msgid "_HUD Configurator" -msgstr "" +msgstr "_HUD-Konfigurator" #: fpdb.pyw:836 msgid "G" -msgstr "" +msgstr "G" #: fpdb.pyw:836 msgid "_Graphs" -msgstr "" +msgstr "_Graphen" #: fpdb.pyw:837 msgid "P" -msgstr "" +msgstr "P" #: fpdb.pyw:837 msgid "Ring _Player Stats (tabulated view, not on pgsql)" @@ -2720,7 +2746,7 @@ msgstr "" #: fpdb.pyw:838 msgid "T" -msgstr "" +msgstr "T" #: fpdb.pyw:838 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" @@ -2728,39 +2754,39 @@ msgstr "" #: fpdb.pyw:839 msgid "Tourney _Viewer" -msgstr "" +msgstr "Tourney-_Betrachter" #: fpdb.pyw:840 msgid "O" -msgstr "" +msgstr "O" #: fpdb.pyw:840 msgid "P_ositional Stats (tabulated view, not on sqlite)" -msgstr "" +msgstr "Statistiken nach Position (Tabelle, nicht auf sqlite)" #: fpdb.pyw:841 fpdb.pyw:1057 msgid "Session Stats" -msgstr "" +msgstr "Statistiken nach Sitzung" #: fpdb.pyw:842 msgid "_Database" -msgstr "" +msgstr "_Datenbank" #: fpdb.pyw:843 msgid "_Maintain Databases" -msgstr "" +msgstr "Datenbanken _Verwalten" #: fpdb.pyw:844 msgid "Create or Recreate _Tables" -msgstr "" +msgstr "_Tabellen erstellen oder neu erstellen" #: fpdb.pyw:845 msgid "Rebuild HUD Cache" -msgstr "" +msgstr "HUD-Cache neu erstellen" #: fpdb.pyw:846 msgid "Rebuild DB Indexes" -msgstr "" +msgstr "Datenbankindexe neu erstellen" #: fpdb.pyw:847 msgid "_Statistics" @@ -2768,23 +2794,23 @@ msgstr "_Statistiken" #: fpdb.pyw:848 msgid "Dump Database to Textfile (takes ALOT of time)" -msgstr "" +msgstr "Datenbank in eine Textdatei schreiben (dauert SEHR lange)" #: fpdb.pyw:849 msgid "_Help" -msgstr "" +msgstr "_Hilfe" #: fpdb.pyw:850 msgid "_Log Messages" -msgstr "" +msgstr "_Log-Dateien" #: fpdb.pyw:851 msgid "A_bout, License, Copying" -msgstr "" +msgstr "_Über, Lizenz, Kopieren" #: fpdb.pyw:869 msgid "There is an error in your config file\n" -msgstr "" +msgstr "Fehler in Ihrer Konfigurationsdatei\n" #: fpdb.pyw:870 msgid "" @@ -2792,6 +2818,9 @@ msgid "" "\n" "Error is: " msgstr "" +"\n" +"\n" +"Der Fehler ist:" #: fpdb.pyw:871 msgid "CONFIG FILE ERROR" diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.po index 350b9f5a..6776e979 100644 --- a/pyfpdb/locale/fpdb-en_GB.po +++ b/pyfpdb/locale/fpdb-en_GB.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-26 18:52+CEST\n" +"POT-Creation-Date: 2010-08-29 14:22+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -893,13 +893,13 @@ msgstr "" msgid "Log Viewer" msgstr "" -#: GuiGraphViewer.py:39 +#: GuiGraphViewer.py:56 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 +#: GuiGraphViewer.py:58 msgid "" "This is of no consequence for other parts of the program, e.g. import \n" " and HUD are NOT affected by this problem." @@ -2394,7 +2394,7 @@ msgstr "" #: fpdb.pyw:55 msgid "" "\n" -"python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" +"python 2.5-2.7 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 @@ -2406,7 +2406,7 @@ msgid "We appear to be running in Windows, but the Windows Python Extensions are 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 @@ -2506,7 +2506,7 @@ msgid "It is not currently possible to select \"empty\" or anything else to that msgstr "" #: fpdb.pyw:439 -msgid "To configure things like colouring you will still have to manually edit your HUD_config.xml." +msgid "To configure things like colouring you will still have to use the Preferences dialogue or manually edit your HUD_config.xml." msgstr "" #: fpdb.pyw:546 @@ -2519,7 +2519,7 @@ msgstr "" #: fpdb.pyw:548 msgid "" -" they will be deleted.\n" +" they will be deleted and you will have to re-import your histories.\n" "This may take a while." msgstr "" diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 651006ea..bbf68785 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-26 18:52+CEST\n" +"POT-Creation-Date: 2010-08-29 14:22+CEST\n" "PO-Revision-Date: 2010-08-28 12:32+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -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" @@ -963,7 +963,7 @@ msgstr "Napló böngésző (teszt)" msgid "Log Viewer" msgstr "Napló böngésző" -#: GuiGraphViewer.py:39 +#: GuiGraphViewer.py:56 msgid "" "Failed to load libs for graphing, graphing will not function. Please\n" " install numpy and matplotlib if you want to use graphs." @@ -971,7 +971,7 @@ msgstr "" "Nem sikerült a grafikonokhoz szükséges libraryl betöltése.\n" "A grafikonokhoz telepítsd a numpy-t és a matplotlib-et." -#: GuiGraphViewer.py:41 +#: GuiGraphViewer.py:58 msgid "" "This is of no consequence for other parts of the program, e.g. import \n" " and HUD are NOT affected by this problem." @@ -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" @@ -2527,9 +2527,10 @@ msgid " - press return to continue\n" msgstr " - nyomj ENTER-t a folytatáshoz\n" #: fpdb.pyw:55 +#, fuzzy msgid "" "\n" -"python 2.5 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" +"python 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" msgstr "" "\n" "Python 2.5 nincs meg, kérlek telepítsd a Python 2.5-öt, 2.6-ot, vagy 2.7-et " @@ -2550,8 +2551,9 @@ msgstr "" "http://sourceforge.net/projects/pywin32/" #: fpdb.pyw:89 +#, fuzzy msgid "" -"Unable to load PYGTK modules required for GUI. Please install PyCairo, " +"Unable to load PyGTK modules required for GUI. Please install PyCairo, " "PyGObject, and PyGTK from www.pygtk.org." msgstr "" "Nem sikerült a GUI által igényelt PyGTK modulok betöltése. Kérlek telepítsd " @@ -2678,9 +2680,10 @@ msgid "" msgstr "Jelenleg nem lehetséges olyat választani, hogy \"üres\" vagy hasonló." #: fpdb.pyw:439 +#, fuzzy msgid "" -"To configure things like colouring you will still have to manually edit your " -"HUD_config.xml." +"To configure things like colouring you will still have to use the " +"Preferences dialogue or manually edit your HUD_config.xml." 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." @@ -2698,8 +2701,9 @@ msgstr "" "már vannak táblák az adatbázisban (" #: fpdb.pyw:548 +#, fuzzy msgid "" -" they will be deleted.\n" +" they will be deleted and you will have to re-import your histories.\n" "This may take a while." msgstr "" "), akkor azok törölve lesznek.\n" @@ -3136,8 +3140,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" From 693dfb4e19a9faf53b20ea498e35b94c69a865e8 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 14:25:44 +0200 Subject: [PATCH 14/48] update GUI version string to 0.20.906 plus git --- pyfpdb/fpdb.pyw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 024d56ef..cefc87ac 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -129,7 +129,7 @@ import Configuration import Exceptions import Stats -VERSION = "0.20.906" +VERSION = "0.20.906 plus git" class fpdb: From a81dd66f227cd52f2669ca175c78977abd8dd1f8 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Sun, 29 Aug 2010 14:26:38 +0200 Subject: [PATCH 15/48] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index bbf68785..5d4b6e45 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-29 14:22+CEST\n" -"PO-Revision-Date: 2010-08-28 12:32+0200\n" +"PO-Revision-Date: 2010-08-29 14:25+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -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" @@ -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" @@ -2527,14 +2527,13 @@ msgid " - press return to continue\n" msgstr " - nyomj ENTER-t a folytatáshoz\n" #: fpdb.pyw:55 -#, fuzzy msgid "" "\n" "python 2.5-2.7 not found, please install python 2.5, 2.6 or 2.7 for fpdb\n" msgstr "" "\n" -"Python 2.5 nincs meg, kérlek telepítsd a Python 2.5-öt, 2.6-ot, vagy 2.7-et " -"az fpdb számára\n" +"Python 2.5-2.7 nem található, kérlek telepítsd a Python 2.5-öt, 2.6-ot, vagy " +"2.7-et az fpdb számára\n" #: fpdb.pyw:56 fpdb.pyw:68 fpdb.pyw:90 msgid "Press ENTER to continue." @@ -2551,7 +2550,6 @@ msgstr "" "http://sourceforge.net/projects/pywin32/" #: fpdb.pyw:89 -#, fuzzy msgid "" "Unable to load PyGTK modules required for GUI. Please install PyCairo, " "PyGObject, and PyGTK from www.pygtk.org." @@ -2680,13 +2678,13 @@ msgid "" msgstr "Jelenleg nem lehetséges olyat választani, hogy \"üres\" vagy hasonló." #: fpdb.pyw:439 -#, fuzzy msgid "" "To configure things like colouring you will still have to use the " "Preferences dialogue or manually edit your HUD_config.xml." 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." +"Bizonyos dolgok (pl. színezés) beállításához egyelőre még a Beállítások " +"menüpontot kell használnod, vagy kézzel kell szerkesztened a HUD_config.xml " +"fájlt." #: fpdb.pyw:546 msgid "Confirm deleting and recreating tables" @@ -2701,12 +2699,12 @@ msgstr "" "már vannak táblák az adatbázisban (" #: fpdb.pyw:548 -#, fuzzy msgid "" " they will be deleted and you will have to re-import your histories.\n" "This may take a while." msgstr "" -"), akkor azok törölve lesznek.\n" +"), akkor azok törölve lesznek, és újra kell importálnod a " +"leosztástörténeteket.\n" "Ja, és ez eltarthat egy darabig:)" #: fpdb.pyw:573 @@ -3140,8 +3138,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" From 641b863cbf80e588a36df05c98ee95124c87fb0b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 14:37:29 +0200 Subject: [PATCH 16/48] l10n: update mo files --- pyfpdb/locale/de/LC_MESSAGES/fpdb.mo | Bin 1048 -> 7463 bytes pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 64382 -> 64610 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo index 291c02d07d070c90c03e5dbad86cca418d8d7d00..eed07f34f8ceb70e4deaedb2e68839d2b3a7dc43 100644 GIT binary patch literal 7463 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 delta 390 zcmZ2(HG`x6o)F7a1|Z-AVi_Rr0dbJPA0V3xi2p)q4n_!H7)r|lX02*e-@y_g|%D3nfs z(%C>7sF9%zNP`^R4WvO9&jQjQikM zay*_4Hp%&UB}Mr;cEOVwIYfB^ic;g#Qj1dal2eN(@8Ppy@lDLkn=Hq#F}a4{iOo#G z(89`e@)3R|c2f}3#BlRlehtRS=|b|TM%9am@x{Al<`tKu=H!&-rKjdic9F5=@<=Q# PD9KIDJG^J|dKn7Ore-*Vr??#SO4r4F^ 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 U_^^drZe@CB6_-4`^=i=n00z60=Kufz delta 11801 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 Date: Sun, 29 Aug 2010 15:19:04 +0200 Subject: [PATCH 17/48] gentoo: add combined ebuild --- packaging/gentoo/fpdb-all.ebuild | 90 ++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 packaging/gentoo/fpdb-all.ebuild diff --git a/packaging/gentoo/fpdb-all.ebuild b/packaging/gentoo/fpdb-all.ebuild new file mode 100644 index 00000000..49e20d50 --- /dev/null +++ b/packaging/gentoo/fpdb-all.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" + +inherit eutils +inherit games +if [[ ${PV} = 9999* ]]; then + inherit git +fi + +NEED_PYTHON=2.6 + +DESCRIPTION="A free/open source tracker/HUD for use with online poker" +HOMEPAGE="http://fpdb.wiki.sourceforge.net/" +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="git://git.assembla.com/fpdb.git" + KEYWORDS="" + IUSE="graph mysql postgres sqlite linguas_hu linguas_it" +elif [[ ${PV} = 0.20.90* ]]; then + SRC_URI="mirror://sourceforge/${PN}/Snapshots/${P}.tar.bz2" + KEYWORDS="~amd64 ~x86" + IUSE="graph mysql postgres sqlite linguas_hu linguas_it" +else; then + SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2" + KEYWORDS="~amd64 ~x86" + IUSE="graph mysql postgres sqlite" +fi + +LICENSE="AGPL-3" +SLOT="0" + +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" +DEPEND="${RDEPEND}" + +if [[ ${PV} = 9999* ]]; then + src_unpack() { + git_src_unpack + } +fi + +src_install() { + insinto "${GAMES_DATADIR}"/${PN} + doins -r gfx + doins -r pyfpdb + + if [[ ${PV} >= 0.20.901 ]]; then + 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_it; then + dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + fi + fi + + doins readme.txt + + exeinto "${GAMES_DATADIR}"/${PN} + doexe run_fpdb.py + + 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." +} From c6a9baa31f1fecbfac3404ac039124984c160d43 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 15:37:26 +0200 Subject: [PATCH 18/48] gentoo: fix bash errors and repoman complaints --- packaging/gentoo/fpdb-all.ebuild | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packaging/gentoo/fpdb-all.ebuild b/packaging/gentoo/fpdb-all.ebuild index 49e20d50..36a0823e 100644 --- a/packaging/gentoo/fpdb-all.ebuild +++ b/packaging/gentoo/fpdb-all.ebuild @@ -7,25 +7,25 @@ EAPI="2" inherit eutils inherit games if [[ ${PV} = 9999* ]]; then - inherit git + inherit git fi NEED_PYTHON=2.6 DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" +IUSE="graph mysql postgres sqlite" if [[ ${PV} = 9999* ]]; then EGIT_REPO_URI="git://git.assembla.com/fpdb.git" KEYWORDS="" - IUSE="graph mysql postgres sqlite linguas_hu linguas_it" + IUSE="${IUSE} linguas_hu linguas_it" elif [[ ${PV} = 0.20.90* ]]; then SRC_URI="mirror://sourceforge/${PN}/Snapshots/${P}.tar.bz2" KEYWORDS="~amd64 ~x86" - IUSE="graph mysql postgres sqlite linguas_hu linguas_it" -else; then + IUSE="${IUSE} linguas_hu linguas_it" +else SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2" KEYWORDS="~amd64 ~x86" - IUSE="graph mysql postgres sqlite" fi LICENSE="AGPL-3" @@ -57,7 +57,7 @@ src_install() { doins -r gfx doins -r pyfpdb - if [[ ${PV} >= 0.20.901 ]]; then + if [[ ${PV} > 0.20.900 ]]; then 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 From 909b47cdbb5588ecb7a3c497c1d60eb38d7911dd Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Sun, 29 Aug 2010 17:03:49 +0200 Subject: [PATCH 19/48] ebuild: added LINGUAS_DE, removed LINGUAS_IT, cleaned up checks --- packaging/gentoo/fpdb-all.ebuild | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packaging/gentoo/fpdb-all.ebuild b/packaging/gentoo/fpdb-all.ebuild index 36a0823e..65b5e9ec 100644 --- a/packaging/gentoo/fpdb-all.ebuild +++ b/packaging/gentoo/fpdb-all.ebuild @@ -18,11 +18,15 @@ IUSE="graph mysql postgres sqlite" if [[ ${PV} = 9999* ]]; then EGIT_REPO_URI="git://git.assembla.com/fpdb.git" KEYWORDS="" - IUSE="${IUSE} linguas_hu linguas_it" + IUSE="${IUSE} linguas_de linguas_hu" elif [[ ${PV} = 0.20.90* ]]; then SRC_URI="mirror://sourceforge/${PN}/Snapshots/${P}.tar.bz2" KEYWORDS="~amd64 ~x86" - IUSE="${IUSE} linguas_hu linguas_it" + if [[ ${PV} > 0.20.906 ]]; then + IUSE="${IUSE} linguas_de linguas_hu" + elif [[ ${PV} > 0.20.904 ]]; then + IUSE="${IUSE} linguas_hu" + fi else SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2" KEYWORDS="~amd64 ~x86" @@ -57,14 +61,17 @@ src_install() { doins -r gfx doins -r pyfpdb - if [[ ${PV} > 0.20.900 ]]; then + if [[ ${PV} > 0.20.904 ]]; then if use linguas_hu; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/hu/LC_MESSAGES/${PN}.mo /usr/share/locale/hu/LC_MESSAGES/${PN}.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo fi + domo pyfpdb/locale/*.mo - if use linguas_it; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + elif [[ ${PV} > 0.20.906 ]]; then + if use linguas_de; then + msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo fi + domo pyfpdb/locale/*.mo fi doins readme.txt From 8a4e33c14c7839a22be0295a575ae41f5bf69821 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 17:37:21 +0200 Subject: [PATCH 20/48] gentoo: back to split ebuilds as recommended by sunrise on IRC --- packaging/gentoo/current_stable.ebuild | 2 +- packaging/gentoo/current_testing.ebuild | 12 ++- packaging/gentoo/dev-readme.txt | 5 -- packaging/gentoo/fpdb-9999.ebuild | 17 +++-- packaging/gentoo/fpdb-all.ebuild | 97 ------------------------- 5 files changed, 15 insertions(+), 118 deletions(-) delete mode 100644 packaging/gentoo/fpdb-all.ebuild diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index edc70791..23e9d147 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -7,7 +7,7 @@ EAPI="2" inherit eutils inherit games -NEED_PYTHON=2.5 +NEED_PYTHON=2.6 DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index 9741f2b8..db7d9bb6 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -7,7 +7,7 @@ EAPI="2" inherit eutils inherit games -NEED_PYTHON=2.5 +NEED_PYTHON=2.6 DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" @@ -18,7 +18,7 @@ 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 linguas_it" +IUSE="graph mysql postgres sqlite linguas_hu" RDEPEND=" mysql? ( virtual/mysql dev-python/mysql-python ) @@ -40,12 +40,10 @@ src_install() { 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_it; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo fi + + domo pyfpdb/locale/*.mo doins readme.txt diff --git a/packaging/gentoo/dev-readme.txt b/packaging/gentoo/dev-readme.txt index b81776fc..0effdf1b 100644 --- a/packaging/gentoo/dev-readme.txt +++ b/packaging/gentoo/dev-readme.txt @@ -1,10 +1,5 @@ Repoman currently gives the following errors for our ebuilds: ebuild.allmasked: This error can be ignored, as all our packages are supposed to be masked - ebuild.badheader 3 - games-util/fpdb/fpdb-0.20.1.ebuild: Malformed CVS Header on line: 3 - games-util/fpdb/fpdb-0.20.904.ebuild: Malformed CVS Header on line: 3 - games-util/fpdb/fpdb-9999.ebuild: Malformed CVS Header on line: 3 - not sure what the correct header is for a sunrise ebuild so leaving as-is for now Useful Links: http://overlays.gentoo.org/proj/sunrise/wiki/SunriseFaq diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 683b3f45..2ed31832 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -8,7 +8,7 @@ inherit eutils inherit games inherit git -NEED_PYTHON=2.5 +NEED_PYTHON=2.6 DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" @@ -17,9 +17,8 @@ EGIT_REPO_URI="git://git.assembla.com/fpdb.git" LICENSE="AGPL-3" SLOT="0" KEYWORDS="" -#note: this should work on other architectures too, please send me your experiences -IUSE="graph mysql postgres sqlite linguas_hu linguas_it" +IUSE="graph mysql postgres sqlite linguas_de linguas_hu" RDEPEND=" mysql? ( virtual/mysql dev-python/mysql-python ) @@ -44,13 +43,15 @@ src_install() { doins -r gfx doins -r pyfpdb + if use linguas_de; then + msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.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 - - if use linguas_it; then - dosym "${GAMES_DATADIR}"/${PN}/pyfpdb/locale/it/LC_MESSAGES/${PN}.mo /usr/share/locale/it/LC_MESSAGES/${PN}.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo fi + + domo pyfpdb/locale/*.mo doins readme.txt diff --git a/packaging/gentoo/fpdb-all.ebuild b/packaging/gentoo/fpdb-all.ebuild deleted file mode 100644 index 65b5e9ec..00000000 --- a/packaging/gentoo/fpdb-all.ebuild +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI="2" - -inherit eutils -inherit games -if [[ ${PV} = 9999* ]]; then - inherit git -fi - -NEED_PYTHON=2.6 - -DESCRIPTION="A free/open source tracker/HUD for use with online poker" -HOMEPAGE="http://fpdb.wiki.sourceforge.net/" -IUSE="graph mysql postgres sqlite" -if [[ ${PV} = 9999* ]]; then - EGIT_REPO_URI="git://git.assembla.com/fpdb.git" - KEYWORDS="" - IUSE="${IUSE} linguas_de linguas_hu" -elif [[ ${PV} = 0.20.90* ]]; then - SRC_URI="mirror://sourceforge/${PN}/Snapshots/${P}.tar.bz2" - KEYWORDS="~amd64 ~x86" - if [[ ${PV} > 0.20.906 ]]; then - IUSE="${IUSE} linguas_de linguas_hu" - elif [[ ${PV} > 0.20.904 ]]; then - IUSE="${IUSE} linguas_hu" - fi -else - SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}.tar.bz2" - KEYWORDS="~amd64 ~x86" -fi - -LICENSE="AGPL-3" -SLOT="0" - -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" -DEPEND="${RDEPEND}" - -if [[ ${PV} = 9999* ]]; then - src_unpack() { - git_src_unpack - } -fi - -src_install() { - insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb - - if [[ ${PV} > 0.20.904 ]]; then - if use linguas_hu; then - msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo - fi - domo pyfpdb/locale/*.mo - - elif [[ ${PV} > 0.20.906 ]]; then - if use linguas_de; then - msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo - fi - domo pyfpdb/locale/*.mo - fi - - doins readme.txt - - exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py - - 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." -} From a9e06b9cf40fd134f11611c27a9e4131a645312b Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 17:43:52 +0200 Subject: [PATCH 21/48] gentoo: update changelog --- packaging/gentoo/ChangeLog | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packaging/gentoo/ChangeLog b/packaging/gentoo/ChangeLog index f72a9a13..57aaabe6 100644 --- a/packaging/gentoo/ChangeLog +++ b/packaging/gentoo/ChangeLog @@ -2,6 +2,19 @@ # Distributed under the terms of the GNU General Public License v2 # created by Steffen Schaumburg, steffen@schaumburger.info + 29 Aug 2010; Erki Ferenc + fpdb-0.20.906.ebuild, fpdb-9999.ebuild: + improve l10n handling + + 29 Aug 2010; Steffen Schaumburg + fpdb-0.20.1.ebuild, fpdb-0.20.906.ebuild, fpdb-9999.ebuild: + change required python version to 2.6 + +*fpdb-0.20.906 (29 Aug 2010) + 29 Aug 2010; Steffen Schaumburg + +fpdb-0.20.906.ebuild -fpdb-0.20.904.ebuild: + Bump version + *fpdb-0.20.1 fpdb-0.20.904 fpdb-9999 (17 Aug 2010) 17 Aug 2010; Steffen Schaumburg From 71bda38c5e6106361acd03fdefcfef7626a191b7 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 17:51:05 +0200 Subject: [PATCH 22/48] gentoo: update manifest, removing trailing whitespaces --- packaging/gentoo/Manifest | 10 +++++----- packaging/gentoo/current_testing.ebuild | 6 +++--- packaging/gentoo/fpdb-9999.ebuild | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packaging/gentoo/Manifest b/packaging/gentoo/Manifest index 2b12bcf1..1096a2e6 100644 --- a/packaging/gentoo/Manifest +++ b/packaging/gentoo/Manifest @@ -1,7 +1,7 @@ DIST fpdb-0.20.1.tar.bz2 662807 RMD160 b5f22a684c605ddbba7d2154005a822b02a19490 SHA1 e4cc40de5849d3ae33a680d917b340ab37c6448b SHA256 46eff0625f300c070ce88c519ae6019f6e1c98a7725733c5e16b50a058247fe3 -DIST fpdb-0.20.904.tar.bz2 632871 RMD160 6af83a9b30e8b3f394b011a4dc92937f130b9e15 SHA1 083c51f1627f901e24801bf6abebf1d07646bd89 SHA256 5e72055fe7ebb0c6048282f8edc972ee01be21063d6f8071abef22111f3e82f9 -EBUILD fpdb-0.20.1.ebuild 1591 RMD160 56ccbca72353e56718a927178e58d148177f5846 SHA1 770df692b29b7314d70703010e1f6afac623c3f3 SHA256 e3f434df58d98760a118458166f9fdfcf3612712c78c704f089f6e8ec72bd224 -EBUILD fpdb-0.20.904.ebuild 1595 RMD160 b5cbcdb8d2984b149c833db8b6aee362168e9c7d SHA1 7151fd3cef087c38060b44adb622843a84209f33 SHA256 41c6ed71aa0ff727d670c94cc72cf595bcd038f601121e51222532df727a6d01 -EBUILD fpdb-9999.ebuild 1618 RMD160 843d309bbc2ccdd95dbb4b0eb08571d8e16d06ad SHA1 b1ebdbe0e40bd6c0d4ec417dd2b8a135884547a6 SHA256 72205c1f94bcf2c3f310d396928e357fabaee4861773044c1dac71f98f6596bf -MISC ChangeLog 395 RMD160 b195ccf198011356ca79b16071093c4d92e5927a SHA1 9aa56e5dc9c5d03b62fb60bc81069f3440b1f606 SHA256 b7ba8c180da0e6a405d939c4485f9c8e52fdcafb04207ef6de217a807015bd03 +DIST fpdb-0.20.906.tar.bz2 702558 RMD160 bc5d01ef4899502aea33f286ac4274ef7ef498ef SHA1 9791680d53de1b276dc0297ac43a0e11758d3e19 SHA256 9ae706d5e9c2a2ee031d2b222ba46e088993cc892fc08b5276bbfd5e44a0436b +EBUILD fpdb-0.20.1.ebuild 1508 RMD160 7585cd1de73172649e182782d427a476afed4036 SHA1 3c92d6dbb868b8b4c26b75539771641087742761 SHA256 9a7d302016e4c4d6cc18af14514bd5112d18aeb7dc6390a3413e3e4cc71da6bd +EBUILD fpdb-0.20.906.ebuild 1643 RMD160 ed44ee49d715458b54edbbe054eb5c9775c6ac7a SHA1 ebd8ea291ace0671d4eb264754dfb0616373a51a SHA256 a9bdad768a0ab5ef065f3e6e2e1bd89dded6e0d3b64c4771944c4aae7d163efd +EBUILD fpdb-9999.ebuild 1685 RMD160 f06457ead33dca99c0acf830f26bbf2f8ca12cd1 SHA1 70444fa4a88439955472407ec0b072970993631a SHA256 2df59120b376bb4e5966f8a719bc881c756b3210b7a30d394ee1753efbfd706e +MISC ChangeLog 831 RMD160 efd32886d09b0750e680716030c0034c3a280a25 SHA1 82f3eda3cd83cbba3e45d4b75593e74f3dd4f568 SHA256 d74efef05cf51ef3840ef043218c8a30c1bcccfa9d9d2e4ca1b7198ed1c91f29 MISC metadata.xml 550 RMD160 a6fa8799f644c0882f832a12cc9e6a0f4f09ae7f SHA1 3a40c442cadb1f532e0299040c2da79e9721dd4f SHA256 b5a1c538de3786446a87479b1023cdb4f084085feb7290959619739969ce7d3b diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index db7d9bb6..4d95b85b 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -40,10 +40,10 @@ src_install() { doins -r pyfpdb if use linguas_hu; then - msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo fi - - domo pyfpdb/locale/*.mo + + domo pyfpdb/locale/*.mo doins readme.txt diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 2ed31832..480d8158 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -44,14 +44,14 @@ src_install() { doins -r pyfpdb if use linguas_de; then - msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo + msgfmt pyfpdb/locale/fpdb-de_DE.po -o pyfpdb/locale/de.mo fi - + if use linguas_hu; then - msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo fi - - domo pyfpdb/locale/*.mo + + domo pyfpdb/locale/*.mo doins readme.txt From 2ff55401ca5ba41c98905162e3b2e318bc476778 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 18:25:41 +0200 Subject: [PATCH 23/48] gentoo: update ebuilds with sunrise suggestions (only testing done fully) --- packaging/gentoo/current_stable.ebuild | 7 ++----- packaging/gentoo/current_testing.ebuild | 25 +++++++++++-------------- packaging/gentoo/fpdb-9999.ebuild | 8 ++------ 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/packaging/gentoo/current_stable.ebuild b/packaging/gentoo/current_stable.ebuild index 23e9d147..666c7fee 100644 --- a/packaging/gentoo/current_stable.ebuild +++ b/packaging/gentoo/current_stable.ebuild @@ -4,10 +4,7 @@ EAPI="2" -inherit eutils -inherit games - -NEED_PYTHON=2.6 +inherit eutils games DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" @@ -49,7 +46,7 @@ src_install() { newicon gfx/fpdb-icon.png ${PN}.png make_desktop_entry ${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + fperms +x "${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw prepgamesdirs } diff --git a/packaging/gentoo/current_testing.ebuild b/packaging/gentoo/current_testing.ebuild index 4d95b85b..525200fb 100644 --- a/packaging/gentoo/current_testing.ebuild +++ b/packaging/gentoo/current_testing.ebuild @@ -4,10 +4,7 @@ EAPI="2" -inherit eutils -inherit games - -NEED_PYTHON=2.6 +inherit eutils games DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" @@ -36,27 +33,27 @@ DEPEND="${RDEPEND}" src_install() { insinto "${GAMES_DATADIR}"/${PN} - doins -r gfx - doins -r pyfpdb + doins -r gfx || die "failed to install gfx directory" + doins -r pyfpdb || die "failed to install pyfpdb directory" if use linguas_hu; then - msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo + msgfmt pyfpdb/locale/fpdb-hu_HU.po -o pyfpdb/locale/hu.mo || die "failed to create hungarian mo file" fi - domo pyfpdb/locale/*.mo + domo pyfpdb/locale/*.mo || die "failed to install mo files" - doins readme.txt + doins readme.txt || die "failed to install readme.txt file" exeinto "${GAMES_DATADIR}"/${PN} - doexe run_fpdb.py + doexe run_fpdb.py || die "failed to install executable run_fpdb.py" dodir "${GAMES_BINDIR}" - dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} + dosym "${GAMES_DATADIR}"/${PN}/run_fpdb.py "${GAMES_BINDIR}"/${PN} || die "failed to create symlink for starting fpdb" - newicon gfx/fpdb-icon.png ${PN}.png - make_desktop_entry ${PN} + newicon gfx/fpdb-icon.png ${PN}.png || die "failed to install fpdb icon" + make_desktop_entry ${PN} || die "failed to create desktop entry" - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + fperms +x "${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw prepgamesdirs } diff --git a/packaging/gentoo/fpdb-9999.ebuild b/packaging/gentoo/fpdb-9999.ebuild index 480d8158..a2469183 100644 --- a/packaging/gentoo/fpdb-9999.ebuild +++ b/packaging/gentoo/fpdb-9999.ebuild @@ -4,11 +4,7 @@ EAPI="2" -inherit eutils -inherit games -inherit git - -NEED_PYTHON=2.6 +inherit eutils games git DESCRIPTION="A free/open source tracker/HUD for use with online poker" HOMEPAGE="http://fpdb.wiki.sourceforge.net/" @@ -64,7 +60,7 @@ src_install() { newicon gfx/fpdb-icon.png ${PN}.png make_desktop_entry ${PN} - chmod +x "${D}/${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw + fperms +x "${GAMES_DATADIR}"/${PN}/pyfpdb/*.pyw prepgamesdirs } From 168b1146463978d8afb2fe9f264bc4e51dd775b1 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 19:12:48 +0200 Subject: [PATCH 24/48] l10n: some minor string changes --- pyfpdb/GuiAutoImport.py | 20 ++++++++++---------- pyfpdb/fpdb.pyw | 19 +++++++++---------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/pyfpdb/GuiAutoImport.py b/pyfpdb/GuiAutoImport.py index c386f475..8170fd9f 100755 --- a/pyfpdb/GuiAutoImport.py +++ b/pyfpdb/GuiAutoImport.py @@ -113,7 +113,7 @@ class GuiAutoImport (threading.Thread): hbox.pack_start(lbl1, expand=True, fill=False) self.doAutoImportBool = False - self.startButton = gtk.ToggleButton(_(" Start _Autoimport ")) + self.startButton = gtk.ToggleButton(_(" Start _Auto Import ")) self.startButton.connect("clicked", self.startClicked, "start clicked") hbox.pack_start(self.startButton, expand=False, fill=False) @@ -132,7 +132,7 @@ class GuiAutoImport (threading.Thread): scrolledwindow.add(self.textview) self.mainVBox.show_all() - self.addText(_("AutoImport Ready.")) + self.addText(_("Auto Import Ready.")) def addText(self, text): end_iter = self.textbuffer.get_end_iter() @@ -145,7 +145,7 @@ class GuiAutoImport (threading.Thread): """runs when user clicks one of the browse buttons in the auto import tab""" current_path=data[1].get_text() - dia_chooser = gtk.FileChooserDialog(title=_("Please choose the path that you want to auto import"), + dia_chooser = gtk.FileChooserDialog(title=_("Please choose the path that you want to Auto Import"), action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) #dia_chooser.set_current_folder(pathname) @@ -179,9 +179,9 @@ class GuiAutoImport (threading.Thread): def reset_startbutton(self): if self.pipe_to_hud is not None: - self.startButton.set_label(_(u' Stop _Autoimport ')) + self.startButton.set_label(_(u' Stop _Auto Import ')) else: - self.startButton.set_label(_(u' Start _Autoimport ')) + self.startButton.set_label(_(u' Start _Auto Import ')) return False @@ -206,7 +206,7 @@ class GuiAutoImport (threading.Thread): if self.settings['global_lock'].acquire(False): # returns false immediately if lock not acquired self.addText(_("\nGlobal lock taken ... Auto Import Started.\n")) self.doAutoImportBool = True - widget.set_label(_(u' _Stop Autoimport ')) + widget.set_label(_(u' _Stop Auto Import ')) if self.pipe_to_hud is None: if Configuration.FROZEN: path = Configuration.EXEC_PATH @@ -246,19 +246,19 @@ class GuiAutoImport (threading.Thread): self.importtimer = gobject.timeout_add(interval * 1000, self.do_import) else: - self.addText(_("\nauto-import aborted - global lock not available")) + self.addText(_("\nAuto Import aborted - global lock not available")) else: # toggled off gobject.source_remove(self.importtimer) self.settings['global_lock'].release() self.doAutoImportBool = False # do_import will return this and stop the gobject callback timer - self.addText(_("\nStopping autoimport - global lock released.")) + self.addText(_("\nStopping Auto Import - global lock released.")) if self.pipe_to_hud.poll() is not None: - self.addText(_("\n * Stop Autoimport: HUD already terminated")) + self.addText(_("\n * Stop Auto Import: HUD already terminated")) else: #print >>self.pipe_to_hud.stdin, "\n" self.pipe_to_hud.communicate('\n') # waits for process to terminate self.pipe_to_hud = None - self.startButton.set_label(_(u' Start _Autoimport ')) + self.startButton.set_label(_(u' Start _Auto Import ')) #end def GuiAutoImport.startClicked diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index cefc87ac..d6cf4015 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -876,8 +876,7 @@ class fpdb: if self.config.example_copy: self.info_box(_("Config file") , _("has been created at:\n%s.\n") % self.config.file - + _("Edit your screen_name and hand history path in the supported_sites ") - + _("section of the Preferences window (Main menu) before trying to import hands.")) + + _("Edit your screen_name and hand history path in the supported_sites section of the Preferences window (Main menu) before trying to import hands.")) self.settings = {} self.settings['global_lock'] = self.lock if (os.sep=="/"): @@ -906,10 +905,10 @@ class fpdb: err_msg = _("MySQL client reports: 2002 or 2003 error. Unable to connect - ") \ + _("Please check that the MySQL service has been started") except Exceptions.FpdbPostgresqlAccessDenied: - err_msg = _("Postgres Server reports: Access denied. Are your permissions set correctly?") + err_msg = _("PostgreSQL Server reports: Access denied. Are your permissions set correctly?") except Exceptions.FpdbPostgresqlNoDatabase: - err_msg = _("Postgres client reports: Unable to connect - ") \ - + _("Please check that the Postgres service has been started") + err_msg = _("PostgreSQL client reports: Unable to connect - ") \ + + _("Please check that the PostgreSQL service has been started") if err_msg is not None: self.db = None self.warning_box(err_msg) @@ -966,10 +965,10 @@ class fpdb: def obtain_global_lock(self, source): ret = self.lock.acquire(source=source) # will return false if lock is already held if ret: - print _("\nGlobal lock taken by"), source + print (_("\nGlobal lock taken by %s") % source) self.lockTakenBy=source else: - print _("\nFailed to get global lock, it is currently held by"), source + print (_("\nFailed to get global lock, it is currently held by %s") % source) return ret # need to release it later: # self.lock.release() @@ -1134,8 +1133,8 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an if not options.errorsToConsole: fileName = os.path.join(self.config.dir_log, 'fpdb-errors.txt') - print _("\nNote: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in:\n") \ - + self.config.dir_log + _("\nAny major error will be reported there _only_.\n") + print (_("\nNote: error output is being diverted to fpdb-errors.txt and HUD-errors.txt in: %s") % self.config.dir_log) \ + + _("\nAny major error will be reported there _only_.\n") errorFile = open(fileName, 'w', 0) sys.stderr = errorFile @@ -1239,7 +1238,7 @@ You can find the full license texts in agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt an hhdir = hhbase if not os.path.isdir(hhdir): diapath = gtk.MessageDialog(parent=None, flags=0, type=gtk.MESSAGE_WARNING, buttons=(gtk.BUTTONS_YES_NO), message_format="Setup hh dir") - diastring = _("WARNING: Unable to find output hh directory %s\n\n Press YES to create this directory, or NO to select a new one.") % hhdir + diastring = _("WARNING: Unable to find output hand history directory %s\n\n Press YES to create this directory, or NO to select a new one.") % hhdir diapath.format_secondary_text(diastring) response = diapath.run() diapath.destroy() From 14ea4714b9c81b1d7b0c78ad2fc4645e26e07293 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 19:17:13 +0200 Subject: [PATCH 25/48] l10n: rename template po file to .pot, merge scripts --- pyfpdb/locale/create-mo-files.sh | 4 ---- pyfpdb/locale/create-po-file.sh | 4 ---- pyfpdb/locale/{fpdb-en_GB.po => fpdb-en_GB.pot} | 0 pyfpdb/locale/localise.sh | 14 ++++++++++++++ pyfpdb/locale/update-po-files.sh | 3 --- 5 files changed, 14 insertions(+), 11 deletions(-) delete mode 100755 pyfpdb/locale/create-mo-files.sh delete mode 100755 pyfpdb/locale/create-po-file.sh rename pyfpdb/locale/{fpdb-en_GB.po => fpdb-en_GB.pot} (100%) create mode 100755 pyfpdb/locale/localise.sh delete mode 100755 pyfpdb/locale/update-po-files.sh diff --git a/pyfpdb/locale/create-mo-files.sh b/pyfpdb/locale/create-mo-files.sh deleted file mode 100755 index 5df25bcb..00000000 --- a/pyfpdb/locale/create-mo-files.sh +++ /dev/null @@ -1,4 +0,0 @@ -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/create-po-file.sh b/pyfpdb/locale/create-po-file.sh deleted file mode 100755 index 49adc81f..00000000 --- a/pyfpdb/locale/create-po-file.sh +++ /dev/null @@ -1,4 +0,0 @@ -cd .. -rm *.pyc -python /usr/share/doc/python-2.7/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.po *.py* - diff --git a/pyfpdb/locale/fpdb-en_GB.po b/pyfpdb/locale/fpdb-en_GB.pot similarity index 100% rename from pyfpdb/locale/fpdb-en_GB.po rename to pyfpdb/locale/fpdb-en_GB.pot diff --git a/pyfpdb/locale/localise.sh b/pyfpdb/locale/localise.sh new file mode 100755 index 00000000..89fba06f --- /dev/null +++ b/pyfpdb/locale/localise.sh @@ -0,0 +1,14 @@ +cd .. +rm *.pyc + +echo "creating template po file" +python /usr/share/doc/python-2.7/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.pot *.py* + +echo "merging template with existing translations" +msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot +msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot + +echo "compiling mo files" +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/update-po-files.sh b/pyfpdb/locale/update-po-files.sh deleted file mode 100755 index f39b143d..00000000 --- a/pyfpdb/locale/update-po-files.sh +++ /dev/null @@ -1,3 +0,0 @@ -msgmerge --update fpdb-hu_HU.po fpdb-en_GB.po -msgmerge --update fpdb-de_DE.po fpdb-en_GB.po - From f27396ea12def4620870539f745ad131ad84db2c Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Sun, 29 Aug 2010 20:18:01 +0300 Subject: [PATCH 26/48] Generalise .po file updates This should catch all future translations too --- pyfpdb/locale/update-po-files.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pyfpdb/locale/update-po-files.sh b/pyfpdb/locale/update-po-files.sh index f39b143d..0b6956e6 100755 --- a/pyfpdb/locale/update-po-files.sh +++ b/pyfpdb/locale/update-po-files.sh @@ -1,3 +1,12 @@ -msgmerge --update fpdb-hu_HU.po fpdb-en_GB.po -msgmerge --update fpdb-de_DE.po fpdb-en_GB.po +#!/bin/sh + +# Our master file +REFERENCE_PO=fpdb-en_GB.po + +# Update all .po files +for po in *.po; do + if [ ${po} != ${REFERENCE_PO} ]; then + msgmerge --update ${po} ${REFERENCE_PO} + fi +done From 3990b40e3db7023a6c1f027ae19fd527165de343 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 20:35:16 +0200 Subject: [PATCH 27/48] Some string changes, mostly consistency to make translation easier --- pyfpdb/Filters.py | 6 +++--- pyfpdb/GuiBulkImport.py | 2 +- pyfpdb/GuiDatabase.py | 12 +++++++----- pyfpdb/fpdb.pyw | 5 +++-- pyfpdb/fpdb_import.py | 8 ++++---- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/pyfpdb/Filters.py b/pyfpdb/Filters.py index 4bbc6057..136c0ab6 100644 --- a/pyfpdb/Filters.py +++ b/pyfpdb/Filters.py @@ -63,7 +63,7 @@ class Filters(threading.Thread): ,'seatsbetween':_('Between:'), 'seatsand':_('And:'), 'seatsshow':_('Show Number of _Players') ,'playerstitle':_('Hero:'), 'sitestitle':_('Sites:'), 'gamestitle':_('Games:') ,'limitstitle':_('Limits:'), 'seatstitle':_('Number of Players:') - ,'groupstitle':_('Grouping:'), 'posnshow':_('Show Position Stats:') + ,'groupstitle':_('Grouping:'), 'posnshow':_('Show Position Stats') ,'datestitle':_('Date:') ,'groupsall':_('All Players') ,'limitsFL':'FL', 'limitsNL':'NL', 'limitsPL':'PL', 'ring':_('Ring'), 'tour':_('Tourney') @@ -891,7 +891,7 @@ class Filters(threading.Thread): hbox = gtk.HBox() vbox1.pack_start(hbox, False, True, 0) - lbl_start = gtk.Label('From:') + lbl_start = gtk.Label(_('From:')) btn_start = gtk.Button() btn_start.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON)) @@ -905,7 +905,7 @@ class Filters(threading.Thread): hbox = gtk.HBox() vbox1.pack_start(hbox, False, True, 0) - lbl_end = gtk.Label(' To:') + lbl_end = gtk.Label(_('To:')) btn_end = gtk.Button() btn_end.set_image(gtk.image_new_from_stock(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON)) btn_end.connect('clicked', self.__calendar_dialog, self.end_date) diff --git a/pyfpdb/GuiBulkImport.py b/pyfpdb/GuiBulkImport.py index 943a81fd..a90f566c 100755 --- a/pyfpdb/GuiBulkImport.py +++ b/pyfpdb/GuiBulkImport.py @@ -136,7 +136,7 @@ class GuiBulkImport(): #self.settings['global_lock'].release() self.settings['global_lock'].release() else: - print _("bulk-import aborted - global lock not available") + print _("bulk import aborted - global lock not available") def get_vbox(self): """returns the vbox of this thread""" diff --git a/pyfpdb/GuiDatabase.py b/pyfpdb/GuiDatabase.py index 599f0a7e..e85e3057 100755 --- a/pyfpdb/GuiDatabase.py +++ b/pyfpdb/GuiDatabase.py @@ -300,7 +300,7 @@ class GuiDatabase: self.dia.show() except: err = traceback.extract_tb(sys.exc_info()[2])[-1] - print _('loaddbs error: ')+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' \ + print _('loadDbs error: ')+str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' \ + err[2] + "(" + str(err[1]) + "): " + str(sys.exc_info()[1]) def sortCols(self, col, n): @@ -368,7 +368,7 @@ class GuiDatabase: try: # is creating empty db for sqlite ... mod db.py further? # add noDbTables flag to db.py? - log.debug(_("loaddbs: trying to connect to: %s/%s, %s, %s/%s") % (str(dbms_num),dbms,name,user,passwd)) + log.debug(_("testDB: trying to connect to: %s/%s, %s, %s/%s") % (str(dbms_num),dbms,name,user,passwd)) db.connect(backend=dbms_num, host=host, database=name, user=user, password=passwd, create=False) if db.connected: log.debug(_(" connected ok")) @@ -384,14 +384,16 @@ class GuiDatabase: status = "failed" icon = gtk.STOCK_CANCEL except Exceptions.FpdbMySQLNoDatabase: - err_msg = _("MySQL client reports: 2002 or 2003 error. Unable to connect - Please check that the MySQL service has been started") + err_msg = _("MySQL client reports: 2002 or 2003 error. Unable to connect - ") \ + + _("Please check that the MySQL service has been started") status = "failed" icon = gtk.STOCK_CANCEL except Exceptions.FpdbPostgresqlAccessDenied: - err_msg = _("Postgres Server reports: Access denied. Are your permissions set correctly?") + err_msg = _("PostgreSQL Server reports: Access denied. Are your permissions set correctly?") status = "failed" except Exceptions.FpdbPostgresqlNoDatabase: - err_msg = _("Postgres client reports: Unable to connect - Please check that the Postgres service has been started") + err_msg = _("PostgreSQL client reports: Unable to connect - ") \ + + _("Please check that the PostgreSQL service has been started") status = "failed" icon = gtk.STOCK_CANCEL except: diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index d6cf4015..0cfe49ed 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -544,8 +544,9 @@ class fpdb: #lock_released = False dia_confirm = gtk.MessageDialog(parent=self.window, flags=gtk.DIALOG_DESTROY_WITH_PARENT, type=gtk.MESSAGE_WARNING, buttons=(gtk.BUTTONS_YES_NO), message_format=_("Confirm deleting and recreating tables")) - diastring = _("Please confirm that you want to (re-)create the tables. If there already are tables in the database ") \ - +self.db.database+" on "+self.db.host+_(" they will be deleted and you will have to re-import your histories.\nThis may take a while.") + diastring = _("Please confirm that you want to (re-)create the tables.") \ + + (_(" If there already are tables in the database %s on %s they will be deleted and you will have to re-import your histories.\n") % (self.db.database, self.db.host)) \ + + _("This may take a while.") dia_confirm.format_secondary_text(diastring)#todo: make above string with bold for db, host and deleted # disable windowclose, do not want the the underlying processing interrupted mid-process dia_confirm.set_deletable(False) diff --git a/pyfpdb/fpdb_import.py b/pyfpdb/fpdb_import.py index 8ff2ba86..39550a17 100755 --- a/pyfpdb/fpdb_import.py +++ b/pyfpdb/fpdb_import.py @@ -224,7 +224,7 @@ class Importer: #print " adding file ", file self.addImportFile(os.path.join(dir, file), site, filter) else: - log.warning(_("Attempted to add non-directory: '%s' as an import directory") % str(dir)) + log.warning(_("Attempted to add non-directory '%s' as an import directory") % str(dir)) def runImport(self): """"Run full import on self.filelist. This is called from GuiBulkImport.py""" @@ -310,7 +310,7 @@ class Importer: toterrors += errors for i in xrange( self.settings['threads'] ): - print _("sending finish msg qlen ="), q.qsize() + print _("sending finish message queue length ="), q.qsize() db.send_finish_msg(q) return (totstored, totdups, totpartial, toterrors) @@ -436,9 +436,9 @@ class Importer: # Load filter, process file, pass returned filename to import_fpdb_file if self.settings['threads'] > 0 and self.writeq is not None: - log.info(_("Converting ") + file + " (" + str(q.qsize()) + ")") + log.info((_("Converting %s") % file) + " (" + str(q.qsize()) + ")") else: - log.info(_("Converting ") + file) + log.info(_("Converting %s") % file) hhbase = self.config.get_import_parameters().get("hhArchiveBase") hhbase = os.path.expanduser(hhbase) hhdir = os.path.join(hhbase,site) From f6d5d2f9fcd8fc9894299e903bd5f13a3b9926a4 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 20:35:33 +0200 Subject: [PATCH 28/48] fpdb.pyw: remove unneeded unused method --- pyfpdb/fpdb.pyw | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/pyfpdb/fpdb.pyw b/pyfpdb/fpdb.pyw index 0cfe49ed..94beac23 100755 --- a/pyfpdb/fpdb.pyw +++ b/pyfpdb/fpdb.pyw @@ -756,24 +756,6 @@ class fpdb: def dia_save_profile(self, widget, data=None): self.warning_box(_("Unimplemented: Save Profile (try saving a HUD layout, that should do it)")) - def diaSetupWizard(self, path): - diaSetupWizard = gtk.Dialog(title=_("Fatal Error - Config File Missing"), parent=None, flags=0, buttons=(gtk.STOCK_QUIT,gtk.RESPONSE_OK)) - - label = gtk.Label(_("Please copy the config file from the docs folder to:")) - diaSetupWizard.vbox.add(label) - label.show() - - label = gtk.Label(path) - diaSetupWizard.vbox.add(label) - label.show() - - label = gtk.Label(_("and edit it according to the install documentation at http://fpdb.sourceforge.net")) - diaSetupWizard.vbox.add(label) - label.show() - - response = diaSetupWizard.run() - sys.exit(1) - def get_menu(self, window): """returns the menu for this program""" fpdbmenu = """ From 8efa4d5a9cd6b7ff45ce57c255953ba9810d8587 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 20:46:01 +0200 Subject: [PATCH 29/48] slightly improve error message --- pyfpdb/Configuration.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyfpdb/Configuration.py b/pyfpdb/Configuration.py index e9f1521c..31151358 100755 --- a/pyfpdb/Configuration.py +++ b/pyfpdb/Configuration.py @@ -132,8 +132,8 @@ def get_config(file_name, fallback = True): print msg logging.info(msg) except: - print _("Error copying .example file, cannot fall back. Exiting.\n") - sys.stderr.write(_("Error copying .example file, cannot fall back. Exiting.\n")) + print _("Error copying .example config file, cannot fall back. Exiting.\n") + sys.stderr.write(_("Error copying .example config file, cannot fall back. Exiting.\n")) sys.stderr.write( str(sys.exc_info()) ) sys.exit() elif fallback: From d53b0f7f2af3baebe0994832601943fc4caef20e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 20:46:21 +0200 Subject: [PATCH 30/48] l10n: german now 1/3 complete, update pot/po/mo files --- pyfpdb/locale/de/LC_MESSAGES/fpdb.mo | Bin 7463 -> 20424 bytes pyfpdb/locale/fpdb-de_DE.po | 1158 ++++++++++++++------------ pyfpdb/locale/fpdb-en_GB.pot | 851 ++++++++++--------- pyfpdb/locale/fpdb-hu_HU.po | 1003 ++++++++++++---------- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 64610 -> 59291 bytes pyfpdb/locale/localise.sh | 1 + 6 files changed, 1629 insertions(+), 1384 deletions(-) diff --git a/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo index eed07f34f8ceb70e4deaedb2e68839d2b3a7dc43..ae007611f0d5cdb7fd5668fce4dc3508fb32db9a 100644 GIT binary patch literal 20424 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 LZ0ng;(H>LP*e delta 1906 zcmYM!TWl0n9LMpqSc;aG!fsm%lyFKZl$J}ov>?kR7P<>{X;F&=i%6#Jba%AO!t5*! zD7H}nBcg!=MibPiA*4PT7tlTsFVRR8A`fZ;UgCq1Hxdbn`l5dS+aWgH`J6dBb1uLC zX)nJWIu{%HC0uk`@w1gr4WCn!6+##uQfJ zHI#+j#E2SEYSO(*Eu*6fYcY=VF@;U|5^lkZ7{+_ z1$Y%Df!nCDioq&y6`sQ_IFhAthlbQNJ#FHFXHh0HNJ{EWl%1YM%BVgH`Y)kG`6WuU zzam4aKT)2W%<3XI73F>&$^z<i7UBCX%-=4t4{32 z9axWfl!aVJIed45{!-#x%zYGPp2q`IfnJ#W<%>f>$BTg`@U6hH!1IBh1b&TDy6^EA z-a;wWLAD*mcQA$Dq5PGsW&85|V<<_Cj&NN~<21J7wt8j-WwUCA*cOgoQppqzv^!;va=an5cQA^t;JQi4_Sj6!_V|=iQ{G5r2e@7Xxh@7M( z)hH9zA>~v{uo%}P2U^8Z27DyY3HnD-4%hLZ{|%IJK0uA*DDU6E64}~K8ZzD}hN87s`R=mC=p&oav+!{(dFX7g%muQ^;X(_F1+ zh;&%K)n{dG-Q!!nll7hcthrd(T$`YONKcHqRBz0khN7cBi>kd&AV!)tjSr^<_OauV&oBTv_wQg2pMHZ4Izy zGgd!Zmh)WufZn~`v4?FhzkOjWRI%Om3NLiJgBfoR3(UB&e6*o06wdh>-MMFP#`Cr1 z4(QE~c9>&}Pnm|sCi7WiMOD_?&l+`Z?||jo1A3rO)3D6-rg%|HYbtp>3Xda%FRCPk);A*`7|= z=^6t^Dk4Cm- z3h6D~y}|Z99`s3YP3L&XgpxD!j^+)iT7L|`nb5Li>!yXL2^)sam(r(;7_x4ZtZ N, 2010. msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" -"POT-Creation-Date: 2010-08-29 14:22+CEST\n" -"PO-Revision-Date: 2010-08-29 14:20+0200\n" +"POT-Creation-Date: 2010-08-29 20:42+CEST\n" +"PO-Revision-Date: 2010-08-29 20:45+0200\n" "Last-Translator: Steffen Schaumburg \n" "Language-Team: Fpdb\n" "Language: de\n" @@ -36,19 +35,19 @@ msgstr "" msgid "No bringin found" msgstr "" -#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:206 OnGameToFpdb.py:339 PokerStarsToFpdb.py:441 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 msgid "parse input hand history" msgstr "" -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 msgid "output translation to" msgstr "" -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 msgid "follow (tail -f) the input" msgstr "" @@ -58,104 +57,111 @@ msgstr "" #: Charset.py:45 Charset.py:60 Charset.py:75 Charset.py:86 Charset.py:94 msgid "Could not convert: \"%s\"\n" -msgstr "" +msgstr "Konnte \"%s\" nicht konvertieren.\n" #: Charset.py:48 Charset.py:63 Charset.py:78 msgid "Could not encode: \"%s\"\n" -msgstr "" +msgstr "Konnte \"%s% nicht kodieren.\n" -#: Configuration.py:113 Configuration.py:126 +#: Configuration.py:116 Configuration.py:131 msgid "Config file has been created at %s.\n" -msgstr "" +msgstr "Konfigurationsdatei %s wurde erstellt.\n" -#: Configuration.py:125 +#: Configuration.py:130 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:135 Configuration.py:136 +msgid "Error copying .example config file, cannot fall back. Exiting.\n" +msgstr "Fehler beim Kopieren der .example Konfigurationsdatei, Fallback " +"fehlgeschlagen. Beende fpdb.\n" -#: Configuration.py:136 Configuration.py:137 +#: Configuration.py:140 Configuration.py:141 msgid "No %s found, cannot fall back. Exiting.\n" -msgstr "" +msgstr "Keine %s gefunden, Fallback nicht möglich. Beende fpdb.\n" -#: Configuration.py:167 +#: Configuration.py:173 msgid "Default logger initialised for " msgstr "" -#: Configuration.py:168 +#: Configuration.py:174 msgid "Default logger intialised for " msgstr "" -#: Configuration.py:179 Database.py:438 Database.py:439 +#: Configuration.py:185 Database.py:438 Database.py:439 msgid "Creating directory: '%s'" -msgstr "" +msgstr "Erstelle Verzeichnis \"%s\"" -#: Configuration.py:205 +#: Configuration.py:211 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 +#: Configuration.py:309 msgid "Loading site" msgstr "" -#: Configuration.py:520 +#: Configuration.py:526 msgid "config.general: adding %s = %s" msgstr "" -#: Configuration.py:567 Configuration.py:568 +#: Configuration.py:573 Configuration.py:574 msgid "bad number in xalignment was ignored" msgstr "" -#: Configuration.py:616 +#: Configuration.py:622 msgid "missing config section raw_hands" msgstr "" -#: Configuration.py:622 +#: Configuration.py:628 msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" msgstr "" -#: Configuration.py:629 +#: Configuration.py:635 msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" msgstr "" -#: Configuration.py:642 +#: Configuration.py:648 msgid "missing config section raw_tourneys" msgstr "" -#: Configuration.py:648 +#: Configuration.py:654 msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" msgstr "" -#: Configuration.py:655 +#: Configuration.py:661 msgid "" "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" msgstr "" -#: Configuration.py:673 Configuration.py:674 +#: Configuration.py:679 Configuration.py:680 msgid "Configuration file %s not found. Using defaults." msgstr "" -#: Configuration.py:690 +#: Configuration.py:708 msgid "Reading configuration file %s" -msgstr "" +msgstr "Lese Konfigurationsdatei %s" -#: Configuration.py:691 +#: Configuration.py:709 msgid "" "\n" "Reading configuration file %s\n" msgstr "" +"\n" +"Lese Konfigurationsdatei %s\n" -#: Configuration.py:696 +#: Configuration.py:715 msgid "Error parsing %s. See error log file." msgstr "" +#: Configuration.py:831 +msgid "Error parsing example file %s. See error log file." +msgstr "" + #: Database.py:74 msgid "Not using sqlalchemy connection pool." msgstr "" @@ -449,211 +455,229 @@ msgstr "" msgid "get_stats took: %4.3f seconds" msgstr "" -#: Database.py:2373 Tables.py:448 +#: Database.py:2373 msgid "press enter to continue" msgstr "" #: Filters.py:62 msgid "All" -msgstr "" +msgstr "Alle" #: Filters.py:62 msgid "None" -msgstr "" +msgstr "Keine" #: Filters.py:62 msgid "Show _Limits" -msgstr "" +msgstr "_Limits anzeigen" #: Filters.py:63 msgid "Show Number of _Players" -msgstr "" +msgstr "_Spielerzahl anzeigen" #: Filters.py:63 TourneyFilters.py:60 msgid "And:" -msgstr "" +msgstr "Und:" #: Filters.py:63 TourneyFilters.py:60 msgid "Between:" -msgstr "" +msgstr "Zwischen:" #: Filters.py:64 msgid "Games:" -msgstr "" +msgstr "Spiele:" #: Filters.py:64 TourneyFilters.py:59 msgid "Hero:" -msgstr "" +msgstr "Held:" #: Filters.py:64 TourneyFilters.py:59 msgid "Sites:" -msgstr "" +msgstr "Seien:" #: Filters.py:65 msgid "Limits:" -msgstr "" +msgstr "Limits:" #: Filters.py:65 TourneyFilters.py:59 msgid "Number of Players:" -msgstr "" +msgstr "Spielerzahl:" #: Filters.py:66 msgid "Grouping:" -msgstr "" +msgstr "Gruppieren:" #: Filters.py:66 -msgid "Show Position Stats:" -msgstr "" +msgid "Show Position Stats" +msgstr "Positionen Anzeigen" #: Filters.py:67 TourneyFilters.py:60 msgid "Date:" -msgstr "" +msgstr "Datum:" #: Filters.py:68 msgid "All Players" -msgstr "" +msgstr "Alle Spieler" #: Filters.py:69 msgid "Ring" -msgstr "" +msgstr "Ring" #: Filters.py:69 msgid "Tourney" -msgstr "" +msgstr "Tourney" #: Filters.py:103 TourneyFilters.py:116 msgid "Either 0 or more than one site matched (%s) - EEK" -msgstr "" +msgstr "Entweder 0 oder mehr als eine Seite wurden (%s) erkannt" #: Filters.py:313 msgid "%s was toggled %s" -msgstr "" +msgstr "%s wurde auf %s gestellt" #: Filters.py:313 msgid "OFF" -msgstr "" +msgstr "AUS" #: Filters.py:313 msgid "ON" -msgstr "" +msgstr "AN" #: Filters.py:394 msgid "self.sites[%s] set to %s" -msgstr "" +msgstr "self.sites[%s] auf %s gesetzt" #: Filters.py:400 msgid "self.games[%s] set to %s" -msgstr "" +msgstr "self.games[%s] auf %s gesetzt" #: Filters.py:406 msgid "self.limit[%s] set to %s" -msgstr "" +msgstr "self.limit[%s] auf %s gesetzt" #: Filters.py:543 msgid "self.seats[%s] set to %s" -msgstr "" +msgstr "self.seats[%s] auf %s gesetzt" #: Filters.py:549 msgid "self.groups[%s] set to %s" -msgstr "" +msgstr "self.groups[%s] auf %s gesetzt" #: Filters.py:582 msgid "Min # Hands:" -msgstr "" +msgstr "Min. Hände:" #: Filters.py:648 msgid "INFO: No tourney types returned from database" -msgstr "" +msgstr "INFO: Keine Tourney-Arten (TourneyTypes) von der Datenbank erhalten" #: Filters.py:649 msgid "No tourney types returned from database" -msgstr "" +msgstr "Keine Tourney-Arten (TourneyTypes) von der Datenbank erhalten" #: Filters.py:675 Filters.py:764 msgid "INFO: No games returned from database" -msgstr "" +msgstr "INFO: Keine Spielarten (games) von der Datenbank erhalten" #: Filters.py:676 Filters.py:765 msgid "No games returned from database" -msgstr "" +msgstr "Keine Spielarten (games) von der Datenbank erhalten" + +#: Filters.py:894 +msgid "From:" +msgstr "Von:" + +#: Filters.py:908 +msgid "To:" +msgstr "Bis:" #: Filters.py:913 msgid " Clear Dates " -msgstr "" +msgstr " Datum zurücksetzen" -#: Filters.py:940 fpdb.pyw:722 +#: Filters.py:940 fpdb.pyw:723 msgid "Pick a date" -msgstr "" +msgstr "Wählen Sie ein Datum" -#: Filters.py:946 fpdb.pyw:728 +#: Filters.py:946 fpdb.pyw:729 msgid "Done" -msgstr "" +msgstr "Fertig" #: GuiAutoImport.py:85 msgid "Time between imports in seconds:" -msgstr "" +msgstr "Zeit zwischen Imports in Sekunden:" #: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 -msgid " Start _Autoimport " -msgstr "" +msgid " Start _Auto Import " +msgstr " Starte _Autoimport " #: GuiAutoImport.py:135 -msgid "AutoImport Ready." -msgstr "" +msgid "Auto Import Ready." +msgstr "Autoimport bereit." #: GuiAutoImport.py:148 -msgid "Please choose the path that you want to auto import" -msgstr "" +msgid "Please choose the path that you want to Auto Import" +msgstr "Bitte wählen Sie den Pfad den Sie automatisch importieren möchten" #: GuiAutoImport.py:171 msgid " _Auto Import Running " -msgstr "" +msgstr " _Auto Import läuft " #: GuiAutoImport.py:182 -msgid " Stop _Autoimport " -msgstr "" +msgid " Stop _Auto Import " +msgstr " _Autoimport Anhalten " #: GuiAutoImport.py:207 msgid "" "\n" "Global lock taken ... Auto Import Started.\n" msgstr "" +"\n" +"Globaler Lock genommen ... Autoimport gestartet\n" #: GuiAutoImport.py:209 -msgid " _Stop Autoimport " -msgstr "" +msgid " _Stop Auto Import " +msgstr " Autoimport An_halten" #: GuiAutoImport.py:225 msgid "opening pipe to HUD" -msgstr "" +msgstr "öffne Pipe zum HUD" #: GuiAutoImport.py:237 msgid "" "\n" "*** GuiAutoImport Error opening pipe: " msgstr "" +"\n" +"*** GuiAutoImport Fehler beim Öffnen der Pipe: " #: GuiAutoImport.py:249 msgid "" "\n" -"auto-import aborted - global lock not available" +"Auto Import aborted - global lock not available" msgstr "" +"\n" +"Autoimport abgebrochen - globaler Lock nicht verfügbar" #: GuiAutoImport.py:254 msgid "" "\n" -"Stopping autoimport - global lock released." +"Stopping Auto Import - global lock released." msgstr "" +"\n" +"Autoimport wird angehalten - globaler Lock freigegeben" #: GuiAutoImport.py:256 msgid "" "\n" -" * Stop Autoimport: HUD already terminated" +" * Stop Auto Import: HUD already terminated" msgstr "" +"\n" +" * Autoimport anhalten: HUD ist bereits beendet" #: GuiAutoImport.py:283 msgid "Browse..." -msgstr "" +msgstr "Durchsuchen..." #: GuiAutoImport.py:326 GuiBulkImport.py:354 msgid "How often to print a one-line status report (0 (default) means never)" @@ -664,84 +688,88 @@ msgid "" "\n" "Global lock taken ..." msgstr "" +"\n" +"Globaler Lock genommen ..." #: GuiBulkImport.py:68 msgid "Importing..." -msgstr "" +msgstr "Importiere..." #: GuiBulkImport.py:117 msgid "" "GuiBulkImport.load done: Stored: %d \tDuplicates: %d \tPartial: %d \tErrors: " "%d in %s seconds - %.0f/sec" msgstr "" +"GuiBulkImport.load ist fertig: Gespeichert: %d \tDupletten: %d \tTeilweise: " +"%d \tFehler: %d in %s Sekunden - %.0f/sek" #: GuiBulkImport.py:131 msgid "Import Complete" -msgstr "" +msgstr "Import fertig" #: GuiBulkImport.py:139 -msgid "bulk-import aborted - global lock not available" -msgstr "" +msgid "bulk import aborted - global lock not available" +msgstr "Massenimport abgebrochen - globaler Lock nicht verfügbar" #: GuiBulkImport.py:165 msgid "Print Start/Stop Info" -msgstr "" +msgstr "Start-/Stop-Infos ausgeben" #: GuiBulkImport.py:172 msgid "Hands/status print:" -msgstr "" +msgstr "Hände/Statusausgabe:" #: GuiBulkImport.py:189 msgid "Number of threads:" -msgstr "" +msgstr "Anzahl Threads:" #: GuiBulkImport.py:209 msgid "Fail on error" -msgstr "" +msgstr "Bei Fehler abbrechen" #: GuiBulkImport.py:214 msgid "Hands/file:" -msgstr "" +msgstr "Hände/Datei:" #: GuiBulkImport.py:229 msgid "Drop indexes:" -msgstr "" +msgstr "Indexe löschen:" #: GuiBulkImport.py:238 GuiBulkImport.py:288 msgid "auto" -msgstr "" +msgstr "auto" #: GuiBulkImport.py:239 GuiBulkImport.py:289 GuiBulkImport.py:398 msgid "don't drop" -msgstr "" +msgstr "Nein" #: GuiBulkImport.py:240 GuiBulkImport.py:290 msgid "drop" -msgstr "" +msgstr "Ja" #: GuiBulkImport.py:246 msgid "HUD Test mode" -msgstr "" +msgstr "HUD-Testmodus" #: GuiBulkImport.py:251 msgid "Site filter:" -msgstr "" +msgstr "Site-Filter:" #: GuiBulkImport.py:279 msgid "Drop HudCache:" -msgstr "" +msgstr "HudCache löschen:" -#: GuiBulkImport.py:297 fpdb.pyw:831 +#: GuiBulkImport.py:297 fpdb.pyw:814 msgid "_Bulk Import" -msgstr "" +msgstr "_Massenimport" #: GuiBulkImport.py:299 msgid "Import clicked" -msgstr "" +msgstr "Import geklickt" #: GuiBulkImport.py:317 msgid "Waiting..." -msgstr "" +msgstr "Warte..." #: GuiBulkImport.py:346 msgid "Input file in quiet mode" @@ -809,101 +837,164 @@ msgid "" "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 "" +msgid "_Add" +msgstr "_Hinzufügen" -#: GuiDatabase.py:118 +#: GuiDatabase.py:121 +msgid "_Refresh" +msgstr "_Aktualisieren" + +#: GuiDatabase.py:125 +msgid "Type" +msgstr "Typ" + +#: GuiDatabase.py:126 +msgid "Name" +msgstr "Name" + +#: GuiDatabase.py:127 +msgid "Description" +msgstr "Beschreibung" + +#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 +msgid "Username" +msgstr "Benutzername" + +#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 +msgid "Password" +msgstr "Passwort" + +#: GuiDatabase.py:130 +msgid "Host" +msgstr "Host" + +#: GuiDatabase.py:131 +msgid "Open" +msgstr "Geöffnet" + +#: GuiDatabase.py:132 msgid "Status" -msgstr "" +msgstr "Status" -#: GuiDatabase.py:251 +#: GuiDatabase.py:266 msgid "Testing database connections ... " +msgstr "Teste Datenbankverbindungen..." + +#: GuiDatabase.py:293 +msgid "finished." +msgstr "Fertig." + +#: GuiDatabase.py:303 +msgid "loadDbs error: " +msgstr "loadDbs Fehler:" + +#: GuiDatabase.py:324 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 +msgid "***sortCols error: " +msgstr "***sortCols Fehler: " + +#: GuiDatabase.py:326 +msgid "sortCols error: " +msgstr "sortCols Fehler: " + +#: GuiDatabase.py:371 +msgid "testDB: trying to connect to: %s/%s, %s, %s/%s" msgstr "" -#: GuiDatabase.py:281 -msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" -msgstr "" - -#: GuiDatabase.py:284 +#: GuiDatabase.py:374 msgid " connected ok" -msgstr "" +msgstr " Verbindung OK" -#: GuiDatabase.py:291 +#: GuiDatabase.py:381 msgid " not connected but no exception" -msgstr "" +msgstr " Nicht verbunden aber keine Exception" -#: GuiDatabase.py:293 fpdb.pyw:904 +#: GuiDatabase.py:383 fpdb.pyw:886 msgid "" "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" +"MySQL Server meldet: Zugriff verweigert. Sind Ihre Zugriffsrechte korrekt " +"gesetzt?" -#: GuiDatabase.py:297 +#: GuiDatabase.py:387 fpdb.pyw:888 +msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " +msgstr "" +"MySQL Client meldet Fehler Nr. 2002 oder 2003. Konnte nicht verbinden - " + +#: GuiDatabase.py:388 fpdb.pyw:889 +msgid "Please check that the MySQL service has been started" +msgstr "Bitte überprüfen Sie, dass der MySQL-Dienst gestartet ist" + +#: GuiDatabase.py:392 fpdb.pyw:891 msgid "" -"MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " -"that the MySQL service has been started" +"PostgreSQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" -#: GuiDatabase.py:301 fpdb.pyw:909 -msgid "" -"Postgres Server reports: Access denied. Are your permissions set correctly?" +#: GuiDatabase.py:395 fpdb.pyw:893 +msgid "PostgreSQL client reports: Unable to connect - " +msgstr "PostgreSQL Client meldet Fehler: Konnte nicht verbinden - " + +#: GuiDatabase.py:396 fpdb.pyw:894 +msgid "Please check that the PostgreSQL service has been started" +msgstr "Bitte überprüfen Sie, dass der PostgreSQL-Dienst gestartet ist" + +#: GuiDatabase.py:406 +msgid "db connection to " msgstr "" -#: GuiDatabase.py:304 -msgid "" -"Postgres client reports: Unable to connect - Please check that the Postgres " -"service has been started" +#: GuiDatabase.py:434 +msgid "DB Type" msgstr "" -#: GuiDatabase.py:321 -msgid "finished." +#: GuiDatabase.py:444 +msgid "DB Name" msgstr "" -#: GuiDatabase.py:331 -msgid "loaddbs error: " +#: GuiDatabase.py:452 +msgid "DB Description" msgstr "" -#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 -msgid "***sortCols error: " +#: GuiDatabase.py:473 +msgid "Host Computer" msgstr "" -#: GuiDatabase.py:354 -msgid "sortCols error: " -msgstr "" +#: GuiDatabase.py:528 +msgid "Database created" +msgstr "Datenbank erstellt" -#: GuiDatabase.py:424 GuiLogView.py:213 +#: GuiDatabase.py:531 +msgid "Database creation failed" +msgstr "Datenbankerstellung fehlgeschlagen" + +#: GuiDatabase.py:550 +msgid "No Database Name given" +msgstr "Kein Datenbankname eingegeben" + +#: GuiDatabase.py:553 +msgid "No Database Description given" +msgstr "Keine Datenbankbeschreibung eingegeben" + +#: GuiDatabase.py:556 +msgid "No Username given" +msgstr "Kein Benutzername eingegeben" + +#: GuiDatabase.py:559 +msgid "No Password given" +msgstr "Kein Passwort eingegeben" + +#: GuiDatabase.py:562 +msgid "No Host given" +msgstr "Kein Host eingegeben" + +#: GuiDatabase.py:589 +msgid "Do you want to try again?" +msgstr "Wollen Sie es nochmal versuchen?" + +#: GuiDatabase.py:702 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "" -#: GuiDatabase.py:429 GuiLogView.py:218 +#: GuiDatabase.py:707 GuiLogView.py:218 msgid "Log Viewer" msgstr "" @@ -1047,13 +1138,17 @@ msgstr "" msgid "Log Messages" msgstr "" +#: GuiLogView.py:96 +msgid "Refresh" +msgstr "" + #: GuiPositionalStats.py:146 msgid "DEBUG: activesite set to %s" msgstr "" #: GuiPositionalStats.py:332 msgid "Positional Stats page displayed in %4.2f seconds" -msgstr "" +msgstr "Statistiken nach Position wurde in %4.2f Sekunden angezeigt" #: GuiPrefs.py:81 msgid "Setting" @@ -1174,7 +1269,7 @@ msgstr "" msgid "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:96 fpdb.pyw:1138 +#: HUD_main.pyw:96 fpdb.pyw:1120 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1242,358 +1337,358 @@ msgstr "" msgid "Using db name = %s\n" msgstr "" -#: Hand.py:150 +#: Hand.py:151 msgid "BB" msgstr "" -#: Hand.py:151 +#: Hand.py:152 msgid "SB" msgstr "" -#: Hand.py:152 +#: Hand.py:153 msgid "BUTTONPOS" msgstr "" -#: Hand.py:153 +#: Hand.py:154 msgid "HAND NO." msgstr "" -#: Hand.py:154 TourneySummary.py:134 +#: Hand.py:155 TourneySummary.py:134 msgid "SITE" msgstr "" -#: Hand.py:155 +#: Hand.py:156 msgid "TABLE NAME" msgstr "" -#: Hand.py:156 TourneySummary.py:144 +#: Hand.py:157 TourneySummary.py:144 msgid "HERO" msgstr "" -#: Hand.py:157 TourneySummary.py:145 +#: Hand.py:158 TourneySummary.py:145 msgid "MAXSEATS" msgstr "" -#: Hand.py:158 +#: Hand.py:159 msgid "LEVEL" msgstr "" -#: Hand.py:159 TourneySummary.py:150 +#: Hand.py:160 TourneySummary.py:150 msgid "MIXED" msgstr "" -#: Hand.py:160 +#: Hand.py:161 msgid "LASTBET" msgstr "" -#: Hand.py:161 +#: Hand.py:162 msgid "ACTION STREETS" msgstr "" -#: Hand.py:162 +#: Hand.py:163 msgid "STREETS" msgstr "" -#: Hand.py:163 +#: Hand.py:164 msgid "ALL STREETS" msgstr "" -#: Hand.py:164 +#: Hand.py:165 msgid "COMMUNITY STREETS" msgstr "" -#: Hand.py:165 +#: Hand.py:166 msgid "HOLE STREETS" msgstr "" -#: Hand.py:166 +#: Hand.py:167 msgid "COUNTED SEATS" msgstr "" -#: Hand.py:167 +#: Hand.py:168 msgid "DEALT" msgstr "" -#: Hand.py:168 +#: Hand.py:169 msgid "SHOWN" msgstr "" -#: Hand.py:169 +#: Hand.py:170 msgid "MUCKED" msgstr "" -#: Hand.py:170 +#: Hand.py:171 msgid "TOTAL POT" msgstr "" -#: Hand.py:171 +#: Hand.py:172 msgid "TOTAL COLLECTED" msgstr "" -#: Hand.py:172 +#: Hand.py:173 msgid "RAKE" msgstr "" -#: Hand.py:173 TourneySummary.py:135 +#: Hand.py:174 TourneySummary.py:135 msgid "START TIME" msgstr "" -#: Hand.py:174 +#: Hand.py:175 msgid "TOURNAMENT NO" msgstr "" -#: Hand.py:175 TourneySummary.py:140 +#: Hand.py:176 TourneySummary.py:140 msgid "TOURNEY ID" msgstr "" -#: Hand.py:176 TourneySummary.py:139 +#: Hand.py:177 TourneySummary.py:139 msgid "TOURNEY TYPE ID" msgstr "" -#: Hand.py:177 TourneySummary.py:141 +#: Hand.py:178 TourneySummary.py:141 msgid "BUYIN" msgstr "" -#: Hand.py:178 +#: Hand.py:179 msgid "BUYIN CURRENCY" msgstr "" -#: Hand.py:179 +#: Hand.py:180 msgid "BUYIN CHIPS" msgstr "" -#: Hand.py:180 TourneySummary.py:142 +#: Hand.py:181 TourneySummary.py:142 msgid "FEE" msgstr "" -#: Hand.py:181 +#: Hand.py:182 msgid "IS REBUY" msgstr "" -#: Hand.py:182 +#: Hand.py:183 msgid "IS ADDON" msgstr "" -#: Hand.py:183 +#: Hand.py:184 msgid "IS KO" msgstr "" -#: Hand.py:184 TourneySummary.py:166 +#: Hand.py:185 TourneySummary.py:166 msgid "KO BOUNTY" msgstr "" -#: Hand.py:185 +#: Hand.py:186 msgid "IS MATRIX" msgstr "" -#: Hand.py:186 +#: Hand.py:187 msgid "IS SHOOTOUT" msgstr "" -#: Hand.py:187 TourneySummary.py:167 +#: Hand.py:188 TourneySummary.py:167 msgid "TOURNEY COMMENT" msgstr "" -#: Hand.py:190 TourneySummary.py:179 +#: Hand.py:191 TourneySummary.py:179 msgid "PLAYERS" msgstr "" -#: Hand.py:191 +#: Hand.py:192 msgid "STACKS" msgstr "" -#: Hand.py:192 +#: Hand.py:193 msgid "POSTED" msgstr "" -#: Hand.py:193 +#: Hand.py:194 msgid "POT" msgstr "" -#: Hand.py:194 +#: Hand.py:195 msgid "SEATING" msgstr "" -#: Hand.py:195 +#: Hand.py:196 msgid "GAMETYPE" msgstr "" -#: Hand.py:196 +#: Hand.py:197 msgid "ACTION" msgstr "" -#: Hand.py:197 +#: Hand.py:198 msgid "COLLECTEES" msgstr "" -#: Hand.py:198 +#: Hand.py:199 msgid "BETS" msgstr "" -#: Hand.py:199 +#: Hand.py:200 msgid "BOARD" msgstr "" -#: Hand.py:200 +#: Hand.py:201 msgid "DISCARDS" msgstr "" -#: Hand.py:201 +#: Hand.py:202 msgid "HOLECARDS" msgstr "" -#: Hand.py:202 +#: Hand.py:203 msgid "TOURNEYS PLAYER IDS" msgstr "" -#: Hand.py:225 Hand.py:1242 +#: Hand.py:226 Hand.py:1243 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "" -#: Hand.py:278 +#: Hand.py:279 msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "" -#: Hand.py:317 -msgid "markstreets didn't match - Assuming hand cancelled" +#: Hand.py:318 +msgid "markstreets didn't match - Assuming hand %s was cancelled" msgstr "" -#: Hand.py:319 +#: Hand.py:320 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" -#: Hand.py:323 +#: Hand.py:324 msgid "DEBUG: checkPlayerExists %s fail on hand number %s" msgstr "" -#: Hand.py:324 +#: Hand.py:325 msgid "checkPlayerExists: '%s fail on hand number %s" msgstr "" -#: Hand.py:405 +#: Hand.py:406 msgid "%s %s calls %s" msgstr "" -#: Hand.py:475 +#: Hand.py:476 msgid "%s %s raise %s" msgstr "" -#: Hand.py:486 +#: Hand.py:487 msgid "%s %s bets %s" msgstr "" -#: Hand.py:505 +#: Hand.py:506 msgid "%s %s folds" msgstr "" -#: Hand.py:514 +#: Hand.py:515 msgid "%s %s checks" msgstr "" -#: Hand.py:534 +#: Hand.py:535 msgid "addShownCards %s hole=%s all=%s" msgstr "" -#: Hand.py:645 +#: Hand.py:646 msgid "" "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, " "expecting datetime.date object, received:" msgstr "" -#: Hand.py:646 +#: Hand.py:647 msgid "" "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" -#: Hand.py:647 +#: Hand.py:648 msgid "*** Game String:" msgstr "" -#: Hand.py:701 +#: Hand.py:702 msgid "" "*** Parse error reading blinds (check compilePlayerRegexs as a likely " "culprit)" msgstr "" -#: Hand.py:728 +#: Hand.py:729 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" -#: Hand.py:730 +#: Hand.py:731 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" -#: Hand.py:1111 +#: Hand.py:1112 msgid "*** DEALING HANDS ***" msgstr "" -#: Hand.py:1116 +#: Hand.py:1117 msgid "Dealt to %s: [%s]" msgstr "" -#: Hand.py:1121 +#: Hand.py:1122 msgid "*** FIRST DRAW ***" msgstr "" -#: Hand.py:1131 +#: Hand.py:1132 msgid "*** SECOND DRAW ***" msgstr "" -#: Hand.py:1141 +#: Hand.py:1142 msgid "*** THIRD DRAW ***" msgstr "" -#: Hand.py:1151 Hand.py:1369 +#: Hand.py:1152 Hand.py:1370 msgid "*** SHOW DOWN ***" msgstr "" -#: Hand.py:1166 Hand.py:1384 +#: Hand.py:1167 Hand.py:1385 msgid "*** SUMMARY ***" msgstr "" -#: Hand.py:1251 +#: Hand.py:1252 msgid "%s %s completes %s" msgstr "" -#: Hand.py:1269 +#: Hand.py:1270 msgid "Bringin: %s, %s" msgstr "" -#: Hand.py:1309 +#: Hand.py:1310 msgid "*** 3RD STREET ***" msgstr "" -#: Hand.py:1323 +#: Hand.py:1324 msgid "*** 4TH STREET ***" msgstr "" -#: Hand.py:1335 +#: Hand.py:1336 msgid "*** 5TH STREET ***" msgstr "" -#: Hand.py:1347 +#: Hand.py:1348 msgid "*** 6TH STREET ***" msgstr "" -#: Hand.py:1357 +#: Hand.py:1358 msgid "*** RIVER ***" msgstr "" -#: Hand.py:1449 +#: Hand.py:1450 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 +#: Hand.py:1451 msgid "join_holcards: holecards(%s): %s" msgstr "" -#: Hand.py:1533 +#: Hand.py:1534 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "" -#: Hand.py:1535 +#: Hand.py:1536 msgid "FpdbError in printing Hand object" msgstr "" @@ -1716,139 +1811,129 @@ msgid "" " on %s." msgstr "" -#: Hud.py:149 +#: Hud.py:148 msgid "Kill This HUD" msgstr "" -#: Hud.py:154 +#: Hud.py:153 msgid "Save HUD Layout" msgstr "" -#: Hud.py:158 +#: Hud.py:157 msgid "Reposition StatWindows" msgstr "" -#: Hud.py:162 +#: Hud.py:161 msgid "Show Player Stats" msgstr "" -#: Hud.py:167 Hud.py:236 +#: Hud.py:166 Hud.py:235 msgid "For This Blind Level Only" msgstr "" -#: Hud.py:172 Hud.py:241 +#: Hud.py:171 Hud.py:240 msgid "For Multiple Blind Levels:" msgstr "" -#: Hud.py:175 Hud.py:244 +#: Hud.py:174 Hud.py:243 msgid " 0.5 to 2.0 x Current Blinds" msgstr "" -#: Hud.py:180 Hud.py:249 +#: Hud.py:179 Hud.py:248 msgid " 0.33 to 3.0 x Current Blinds" msgstr "" -#: Hud.py:185 Hud.py:254 +#: Hud.py:184 Hud.py:253 msgid " 0.1 to 10 x Current Blinds" msgstr "" -#: Hud.py:190 Hud.py:259 +#: Hud.py:189 Hud.py:258 msgid " All Levels" msgstr "" -#: Hud.py:195 Hud.py:264 +#: Hud.py:194 Hud.py:263 msgid "For #Seats:" msgstr "" -#: Hud.py:198 Hud.py:267 +#: Hud.py:197 Hud.py:266 msgid " Any Number" msgstr "" -#: Hud.py:203 Hud.py:272 +#: Hud.py:202 Hud.py:271 msgid " Custom" msgstr "" -#: Hud.py:208 Hud.py:277 +#: Hud.py:207 Hud.py:276 msgid " Exact" msgstr "" -#: Hud.py:213 Hud.py:282 +#: Hud.py:212 Hud.py:281 msgid "Since:" msgstr "" -#: Hud.py:216 Hud.py:285 +#: Hud.py:215 Hud.py:284 msgid " All Time" msgstr "" -#: Hud.py:221 Hud.py:290 +#: Hud.py:220 Hud.py:289 msgid " Session" msgstr "" -#: Hud.py:226 Hud.py:295 +#: Hud.py:225 Hud.py:294 msgid " %s Days" msgstr "" -#: Hud.py:231 +#: Hud.py:230 msgid "Show Opponent Stats" msgstr "" -#: Hud.py:353 +#: Hud.py:352 msgid "Debug StatWindows" msgstr "" -#: Hud.py:357 +#: Hud.py:356 msgid "Set max seats" msgstr "" -#: Hud.py:543 +#: Hud.py:542 msgid "Updating config file" msgstr "" -#: Hud.py:552 +#: Hud.py:551 msgid "No layout found for %d-max games for site %s\n" msgstr "" -#: Hud.py:566 +#: Hud.py:565 msgid "" "exception in Hud.adj_seats\n" "\n" msgstr "" -#: Hud.py:567 +#: Hud.py:566 msgid "error is %s" msgstr "" -#: Hud.py:574 +#: Hud.py:573 msgid "Error finding actual seat.\n" msgstr "" -#: Hud.py:590 +#: Hud.py:589 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" msgstr "" -#: Hud.py:639 +#: Hud.py:638 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 +#: Hud.py:639 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 "" @@ -1861,36 +1946,36 @@ msgstr "" msgid "No Name" msgstr "" -#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:178 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:154 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: OnGameToFpdb.py:179 OnGameToFpdb.py:193 PkrToFpdb.py:145 PkrToFpdb.py:173 #: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "" -#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:180 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +#: OnGameToFpdb.py:192 +msgid "determineGameType: limit not found in self.limits(%s). hand: '%s'" +msgstr "" + +#: OnGameToFpdb.py:194 +msgid "limit not found in self.limits(%s). hand: '%s'" +msgstr "" + +#: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 msgid "readButton: not found" msgstr "" -#: OnGameToFpdb.py:250 -msgid "readBlinds starting" +#: OnGameToFpdb.py:288 +msgid "readBlinds in noSB exception - no SB created" 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 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 msgid "reading antes" msgstr "" @@ -1975,187 +2060,167 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:273 +#: PokerStarsToFpdb.py:274 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 +#: Stats.py:122 Stats.py:123 msgid "Total Profit" msgstr "" -#: Stats.py:154 Stats.py:161 +#: Stats.py:144 Stats.py:151 msgid "Voluntarily Put In Pot Pre-Flop%" msgstr "" -#: Stats.py:174 Stats.py:182 +#: Stats.py:164 Stats.py:172 msgid "Pre-Flop Raise %" msgstr "" -#: Stats.py:195 Stats.py:203 +#: Stats.py:185 Stats.py:193 msgid "% went to showdown" msgstr "" -#: Stats.py:216 Stats.py:224 +#: Stats.py:206 Stats.py:214 msgid "% won money at showdown" msgstr "" -#: Stats.py:237 Stats.py:246 +#: Stats.py:227 Stats.py:236 msgid "profit/100hands" msgstr "" -#: Stats.py:240 +#: Stats.py:230 msgid "exception calcing p/100: 100 * %d / %d" msgstr "" -#: Stats.py:259 Stats.py:268 +#: Stats.py:249 Stats.py:258 msgid "big blinds/100 hands" msgstr "" -#: Stats.py:281 Stats.py:290 +#: Stats.py:271 Stats.py:280 msgid "Big Bets/100 hands" msgstr "" -#: Stats.py:284 +#: Stats.py:274 msgid "exception calcing BB/100: " msgstr "" -#: Stats.py:304 Stats.py:315 +#: Stats.py:294 Stats.py:303 msgid "Flop Seen %" msgstr "" -#: Stats.py:338 Stats.py:346 +#: Stats.py:326 Stats.py:335 msgid "number hands seen" msgstr "" -#: Stats.py:359 Stats.py:367 +#: Stats.py:348 Stats.py:356 msgid "folded flop/4th" msgstr "" -#: Stats.py:380 +#: Stats.py:369 msgid "% steal attempted" msgstr "" -#: Stats.py:395 Stats.py:402 +#: Stats.py:384 Stats.py:391 msgid "% folded SB to steal" msgstr "" -#: Stats.py:414 Stats.py:421 +#: Stats.py:403 Stats.py:410 msgid "% folded BB to steal" msgstr "" -#: Stats.py:436 Stats.py:443 +#: Stats.py:425 Stats.py:432 msgid "% folded blind to steal" msgstr "" -#: Stats.py:455 Stats.py:462 +#: Stats.py:444 Stats.py:451 msgid "% 3/4 Bet preflop/3rd" msgstr "" -#: Stats.py:474 Stats.py:481 +#: Stats.py:463 Stats.py:470 msgid "% won$/saw flop/4th" msgstr "" -#: Stats.py:493 Stats.py:500 +#: Stats.py:482 Stats.py:489 msgid "Aggression Freq flop/4th" msgstr "" -#: Stats.py:512 Stats.py:519 +#: Stats.py:501 Stats.py:508 msgid "Aggression Freq turn/5th" msgstr "" -#: Stats.py:531 Stats.py:538 +#: Stats.py:520 Stats.py:527 msgid "Aggression Freq river/6th" msgstr "" -#: Stats.py:550 Stats.py:557 +#: Stats.py:539 Stats.py:546 msgid "Aggression Freq 7th" msgstr "" -#: Stats.py:576 Stats.py:583 +#: Stats.py:565 Stats.py:572 msgid "Post-Flop Aggression Freq" msgstr "" -#: Stats.py:604 Stats.py:611 +#: Stats.py:593 Stats.py:600 msgid "Aggression Freq" msgstr "" -#: Stats.py:630 Stats.py:637 +#: Stats.py:619 Stats.py:626 msgid "Aggression Factor" msgstr "" -#: Stats.py:654 Stats.py:661 +#: Stats.py:643 Stats.py:650 msgid "% continuation bet " msgstr "" -#: Stats.py:673 Stats.py:680 +#: Stats.py:662 Stats.py:669 msgid "% continuation bet flop/4th" msgstr "" -#: Stats.py:692 Stats.py:699 +#: Stats.py:681 Stats.py:688 msgid "% continuation bet turn/5th" msgstr "" -#: Stats.py:711 Stats.py:718 +#: Stats.py:700 Stats.py:707 msgid "% continuation bet river/6th" msgstr "" -#: Stats.py:730 Stats.py:737 +#: Stats.py:719 Stats.py:726 msgid "% continuation bet 7th" msgstr "" -#: Stats.py:749 Stats.py:756 +#: Stats.py:738 Stats.py:745 msgid "% fold frequency flop/4th" msgstr "" -#: Stats.py:768 Stats.py:775 +#: Stats.py:757 Stats.py:764 msgid "% fold frequency turn/5th" msgstr "" -#: Stats.py:787 Stats.py:794 +#: Stats.py:776 Stats.py:783 msgid "% fold frequency river/6th" msgstr "" -#: Stats.py:806 Stats.py:813 +#: Stats.py:795 Stats.py:802 msgid "% fold frequency 7th" msgstr "" -#: Stats.py:833 +#: Stats.py:822 msgid "Example stats, player = %s hand = %s:" msgstr "" -#: Stats.py:866 +#: Stats.py:855 msgid "" "\n" "\n" "Legal stats:" msgstr "" -#: Stats.py:867 +#: Stats.py:856 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 "" @@ -2581,238 +2646,228 @@ msgid "Confirm deleting and recreating tables" msgstr "Tabellen löschen und reinitialisieren" #: fpdb.pyw:547 -msgid "" -"Please confirm that you want to (re-)create the tables. If there already are " -"tables in the database " -msgstr "" +msgid "Please confirm that you want to (re-)create the tables." +msgstr "Bitte bestätigen Sie, dass Sie die Tabellen neu erstellen möchten." #: fpdb.pyw:548 msgid "" -" they will be deleted and you will have to re-import your histories.\n" -"This may take a while." +" If there already are tables in the database %s on %s they will be deleted " +"and you will have to re-import your histories.\n" msgstr "" +" Falls bereits Tabellen in der Datenbank %s auf %s existieren werden Sie " +"gelöscht werden und Sie werden Ihre Histories neu importieren müssen.\n" -#: fpdb.pyw:573 +#: fpdb.pyw:549 +msgid "This may take a while." +msgstr "Dies kann eine Weile dauern." + +#: fpdb.pyw:574 msgid "User cancelled recreating tables" msgstr "Benutzer hat Reinitialisierung der Tabellen abgebrochen" -#: fpdb.pyw:580 +#: fpdb.pyw:581 msgid "Please confirm that you want to re-create the HUD cache." msgstr "Bitte bestätigen Sie, dass Sie den HUD-Cache neu erstellen möchten." -#: fpdb.pyw:588 +#: fpdb.pyw:589 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:602 +#: fpdb.pyw:603 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:615 +#: fpdb.pyw:616 msgid " Rebuilding HUD Cache ... " msgstr " Der HUD-Cache wird neu erstellt ... " -#: fpdb.pyw:623 +#: fpdb.pyw:624 msgid "User cancelled rebuilding hud cache" msgstr "Benutzer hat Neuerstellung des HUD-Cache abgebrochen" -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Confirm rebuilding database indexes" msgstr "Bestätigung der Neuerstellung der Datenbankindexe" -#: fpdb.pyw:636 +#: fpdb.pyw:637 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" "Bitte bestätigen Sie, dass Sie die Datenbankindexe neu erstellen möchten." -#: fpdb.pyw:644 +#: fpdb.pyw:645 msgid " Rebuilding Indexes ... " msgstr " Datenbankindexe werden neu erstellt ... " -#: fpdb.pyw:651 +#: fpdb.pyw:652 msgid " Cleaning Database ... " msgstr " Reinige Datenbank ... " -#: fpdb.pyw:656 +#: fpdb.pyw:657 msgid " Analyzing Database ... " msgstr " Analysiere Datenbank ... " -#: fpdb.pyw:661 +#: fpdb.pyw:662 msgid "User cancelled rebuilding db indexes" msgstr "Benutzer hat Neuerstellung der Datenbankindexe abgebrochen" -#: fpdb.pyw:756 +#: fpdb.pyw:757 msgid "" "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:759 -msgid "Fatal Error - Config File Missing" -msgstr "Schwerer Fehler - Konfigurationsdatei nicht gefunden" - -#: fpdb.pyw:761 -msgid "Please copy the config file from the docs folder to:" -msgstr "" - -#: fpdb.pyw:769 -msgid "" -"and edit it according to the install documentation at http://fpdb." -"sourceforge.net" -msgstr "" - -#: fpdb.pyw:825 +#: fpdb.pyw:808 msgid "_Main" msgstr "_Hauptmenü" -#: fpdb.pyw:826 fpdb.pyw:853 +#: fpdb.pyw:809 fpdb.pyw:836 msgid "_Quit" msgstr "_Beenden" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "L" msgstr "L" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "_Load Profile (broken)" msgstr "Profil _Laden (kaputt)" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "S" msgstr "S" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "_Save Profile (todo)" msgstr "Profil _Speichern (nicht fertig)" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "F" msgstr "F" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "Pre_ferences" msgstr "_Einstellungen" -#: fpdb.pyw:830 +#: fpdb.pyw:813 msgid "_Import" msgstr "_Importieren" -#: fpdb.pyw:831 +#: fpdb.pyw:814 msgid "B" msgstr "B" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "I" msgstr "I" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "_Import through eMail/IMAP" msgstr "_Import per eMail/IMAP" -#: fpdb.pyw:833 +#: fpdb.pyw:816 msgid "_Viewers" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "A" msgstr "A" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "_Auto Import and HUD" msgstr "_Autoimport und HUD" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "H" msgstr "H" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "_HUD Configurator" msgstr "_HUD-Konfigurator" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "G" msgstr "G" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "_Graphs" msgstr "_Graphen" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "P" msgstr "P" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "T" msgstr "T" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:822 msgid "Tourney _Viewer" msgstr "Tourney-_Betrachter" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "O" msgstr "O" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "Statistiken nach Position (Tabelle, nicht auf sqlite)" -#: fpdb.pyw:841 fpdb.pyw:1057 +#: fpdb.pyw:824 fpdb.pyw:1039 msgid "Session Stats" msgstr "Statistiken nach Sitzung" -#: fpdb.pyw:842 +#: fpdb.pyw:825 msgid "_Database" msgstr "_Datenbank" -#: fpdb.pyw:843 +#: fpdb.pyw:826 msgid "_Maintain Databases" msgstr "Datenbanken _Verwalten" -#: fpdb.pyw:844 +#: fpdb.pyw:827 msgid "Create or Recreate _Tables" msgstr "_Tabellen erstellen oder neu erstellen" -#: fpdb.pyw:845 +#: fpdb.pyw:828 msgid "Rebuild HUD Cache" msgstr "HUD-Cache neu erstellen" -#: fpdb.pyw:846 +#: fpdb.pyw:829 msgid "Rebuild DB Indexes" msgstr "Datenbankindexe neu erstellen" -#: fpdb.pyw:847 +#: fpdb.pyw:830 msgid "_Statistics" msgstr "_Statistiken" -#: fpdb.pyw:848 +#: fpdb.pyw:831 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "Datenbank in eine Textdatei schreiben (dauert SEHR lange)" -#: fpdb.pyw:849 +#: fpdb.pyw:832 msgid "_Help" msgstr "_Hilfe" -#: fpdb.pyw:850 +#: fpdb.pyw:833 msgid "_Log Messages" msgstr "_Log-Dateien" -#: fpdb.pyw:851 +#: fpdb.pyw:834 msgid "A_bout, License, Copying" msgstr "_Über, Lizenz, Kopieren" -#: fpdb.pyw:869 +#: fpdb.pyw:852 msgid "There is an error in your config file\n" msgstr "Fehler in Ihrer Konfigurationsdatei\n" -#: fpdb.pyw:870 +#: fpdb.pyw:853 msgid "" "\n" "\n" @@ -2822,126 +2877,120 @@ msgstr "" "\n" "Der Fehler ist:" -#: fpdb.pyw:871 +#: fpdb.pyw:854 msgid "CONFIG FILE ERROR" -msgstr "" +msgstr "FEHLER IN DER KONFIGURATIONSDATEI" -#: fpdb.pyw:875 +#: fpdb.pyw:858 msgid "Logfile is %s\n" -msgstr "" +msgstr "Die Logdatei ist %s\n" -#: fpdb.pyw:877 +#: fpdb.pyw:860 msgid "Config file" msgstr "" -#: fpdb.pyw:878 +#: fpdb.pyw:861 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:879 -msgid "Edit your screen_name and hand history path in the supported_sites " -msgstr "" - -#: fpdb.pyw:880 +#: fpdb.pyw:862 +#, fuzzy msgid "" -"section of the Preferences window (Main menu) before trying to import hands." +"Edit your screen_name and hand history path in the supported_sites section " +"of the Preferences window (Main menu) before trying to import hands." msgstr "" +"Tragen Sie Ihren Benutzernamen (screen_name) und den Pfad zu den Hand " +"History Dateien in supported_sites ein " -#: fpdb.pyw:902 +#: fpdb.pyw:884 msgid "Connected to SQLite: %s" -msgstr "" +msgstr "Mit SQLite verbunden: %s" -#: fpdb.pyw:906 -msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " -msgstr "" - -#: fpdb.pyw:907 -msgid "Please check that the MySQL service has been started" -msgstr "" - -#: fpdb.pyw:911 -msgid "Postgres client reports: Unable to connect - " -msgstr "" - -#: fpdb.pyw:912 -msgid "Please check that the Postgres service has been started" -msgstr "" - -#: fpdb.pyw:936 +#: fpdb.pyw:918 msgid "Strong Warning - Invalid database version" -msgstr "" +msgstr "Achtung - Falsche Datenbankversion" -#: fpdb.pyw:938 +#: fpdb.pyw:920 msgid "An invalid DB version or missing tables have been detected." msgstr "" +"Falsche Version der Datenbankstrukturen oder fehlende Tabellen gefunden." -#: fpdb.pyw:942 +#: fpdb.pyw:924 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." msgstr "" +"Dieser Fehler führt nicht zwangsläufig zu einem Absturz aber es wird " +"dringendst empfohlen, dass Sie die Tabellen über das Datenbank-Menü neu " +"erstellen." -#: fpdb.pyw:946 +#: fpdb.pyw:928 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." msgstr "" +"Falls Sie dies nicht tun wird fpdb höchstwahrscheinlich abstürzen oder " +"falsche Daten speichern/anzeigen." -#: fpdb.pyw:959 +#: fpdb.pyw:941 msgid "Status: Connected to %s database named %s on host %s" -msgstr "" +msgstr "Status: Verbunden mit %s-Datenbank namens %s auf Host: %s" -#: fpdb.pyw:969 +#: fpdb.pyw:951 msgid "" "\n" -"Global lock taken by" +"Global lock taken by %s" msgstr "" +"\n" +"Globaler Lock durch %s genommen" -#: fpdb.pyw:972 +#: fpdb.pyw:954 msgid "" "\n" -"Failed to get global lock, it is currently held by" +"Failed to get global lock, it is currently held by %s" msgstr "" +"\n" +"Konnte globalen Lock nicht ergreifen, wird momentan von %s gehalten" -#: fpdb.pyw:982 +#: fpdb.pyw:964 msgid "Quitting normally" -msgstr "" +msgstr "Beende normal" -#: fpdb.pyw:1006 +#: fpdb.pyw:988 msgid "Global lock released.\n" -msgstr "" +msgstr "Globaler Lock freigegeben.\n" -#: fpdb.pyw:1013 +#: fpdb.pyw:995 msgid "Auto Import" -msgstr "" +msgstr "Autoimport" -#: fpdb.pyw:1020 +#: fpdb.pyw:1002 msgid "Bulk Import" -msgstr "" +msgstr "Massenimport" -#: fpdb.pyw:1026 +#: fpdb.pyw:1008 msgid "eMail Import" -msgstr "" +msgstr "Import per eMail" -#: fpdb.pyw:1033 +#: fpdb.pyw:1015 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1039 +#: fpdb.pyw:1021 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1045 +#: fpdb.pyw:1027 msgid "Tourney Viewer" -msgstr "" +msgstr "Tourney-Betrachter" -#: fpdb.pyw:1051 +#: fpdb.pyw:1033 msgid "Positional Stats" -msgstr "" +msgstr "Statistiken nach Position" -#: fpdb.pyw:1061 +#: fpdb.pyw:1043 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -2970,38 +3019,67 @@ 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 braucht Übersetzer!\n" +"Falls Sie eine andere Sprache können und ein paar Minuten oder mehr übrig " +"haben eMailen Sie bitte steffen@schaumburger.info\n" +"\n" +"Willkommen zu fpdb!\n" +"Wenn Sie über neue Versionen informiert werden wollen besuchen Sie bitte " +"https://lists.sourceforge.net/lists/listinfo/fpdb-announce\n" +"Wenn Sie die Entwicklung näher verfolgen möchten besuchen Sie bitte https://" +"lists.sourceforge.net/lists/listinfo/fpdb-main\n" +"\n" +"Dieses Programm ist noch eine Alpha-Version, das Datenbankformat ändert sich " +"also noch manchmal.\n" +"Sie sollten daher Ihre Hand History Dateien immer aufbewahren damit Sie nach " +"einem Update ggf. re-importieren können.\n" +"\n" +"Für Dokumentation besuchen Sie bitte unsere Webseite/Wiki unter http://fpdb." +"sourceforge.net/ .\n" +"Wenn Sie Hilfe brauchen klicken Sie auf \"Contact - Get Help\" auf unserer " +"Webseite oder eMailen Sie mir auf Deutsch an steffen@schaumburger.info.\n" +"\n" +"Dieses Programm ist freie Software (frei wie in Freiheit) teilweise unter " +"der AGPL3-Lizenz und teilweise unter GPL2 und später.\n" +"Das Windows-Installer-Paket enthält Code unter MIT-Lizenz.\n" +"Sie können die vollständigen Lizenztexte im fpdb-Installationsverzeichnis " +"unter agpl-3.0.txt, gpl-2.0.txt, gpl-3.0.txt und mit.txt finden." -#: fpdb.pyw:1078 +#: fpdb.pyw:1060 msgid "Help" -msgstr "" +msgstr "Hilfe" -#: fpdb.pyw:1085 +#: fpdb.pyw:1067 msgid "Graphs" -msgstr "" +msgstr "Graphen" -#: fpdb.pyw:1137 +#: fpdb.pyw:1119 msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " -"in:\n" +"in: %s" msgstr "" -#: fpdb.pyw:1166 +#: fpdb.pyw:1148 msgid "fpdb starting ..." -msgstr "" +msgstr "fpdb startet ..." -#: fpdb.pyw:1223 +#: fpdb.pyw:1205 msgid "FPDB WARNING" -msgstr "" +msgstr "FPDB WARNUNG" -#: fpdb.pyw:1242 +#: fpdb.pyw:1224 msgid "" -"WARNING: Unable to find output hh directory %s\n" +"WARNING: Unable to find output hand history directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" +"WARNUNG: Konnte Hand History Ausgabeverzeichnis %s nicht finden\n" +"\n" +"Klicken Sie JA um das Verzeichnis zu erstellen, oder NEIN um ein anderes " +"auszuwählen." -#: fpdb.pyw:1250 +#: fpdb.pyw:1232 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -3009,15 +3087,15 @@ msgstr "" #: fpdb_import.py:60 msgid "Import database module: MySQLdb not found" -msgstr "" +msgstr "Import von Datenbankmodul: MySQLdb nicht gefunden" #: fpdb_import.py:67 msgid "Import database module: psycopg2 not found" -msgstr "" +msgstr "Import von Datenbankmodul: psycopg2 nicht gefunden" #: fpdb_import.py:189 msgid "Database ID for %s not found" -msgstr "" +msgstr "Datenbank-ID für %s nicht gefunden" #: fpdb_import.py:191 msgid "" @@ -3026,44 +3104,45 @@ msgid "" msgstr "" #: fpdb_import.py:227 -msgid "Attempted to add non-directory: '%s' as an import directory" +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 "" +msgstr "Beginn %s -- %d Dateien zu importieren. Indexe: %s" #: fpdb_import.py:246 msgid "No need to drop indexes." -msgstr "" +msgstr "Es ist nicht nötig die Indexe zu löschen." #: fpdb_import.py:265 msgid "writers finished already" -msgstr "" +msgstr "Writer sind bereits fertig" #: fpdb_import.py:268 msgid "waiting for writers to finish ..." -msgstr "" +msgstr "Warte, dass Writer fertig werden ..." #: fpdb_import.py:278 msgid " ... writers finished" -msgstr "" +msgstr " ... Writer sind fertig" #: fpdb_import.py:284 msgid "No need to rebuild indexes." -msgstr "" +msgstr "Es ist nicht nötig die Indexe neu zu erstellen" #: fpdb_import.py:288 msgid "No need to rebuild hudcache." -msgstr "" +msgstr "Es ist nicht nötig HudCache neu zu erstellen" #: fpdb_import.py:313 -msgid "sending finish msg qlen =" +msgid "sending finish message queue length =" msgstr "" #: fpdb_import.py:439 fpdb_import.py:441 -msgid "Converting " -msgstr "" +#, fuzzy +msgid "Converting %s" +msgstr "Konvertiere " #: fpdb_import.py:477 msgid "Hand processed but empty" @@ -3129,3 +3208,14 @@ msgid "" "no gtk directories found in your path - install gtk or edit the path " "manually\n" msgstr "" + +#~ msgid "Fatal Error - Config File Missing" +#~ msgstr "Schwerer Fehler - Konfigurationsdatei nicht gefunden" + +#, fuzzy +#~ msgid "Postgres client reports: Unable to connect - " +#~ msgstr "PostgreSQL Client meldet Fehler: Konnte nicht verbinden - " + +#, fuzzy +#~ msgid "Please check that the Postgres service has been started" +#~ msgstr "Bitte überprüfen Sie, dass der PostgreSQL-Dienst gestartet ist" diff --git a/pyfpdb/locale/fpdb-en_GB.pot b/pyfpdb/locale/fpdb-en_GB.pot index 6776e979..ba73641a 100644 --- a/pyfpdb/locale/fpdb-en_GB.pot +++ b/pyfpdb/locale/fpdb-en_GB.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-29 14:22+CEST\n" +"POT-Creation-Date: 2010-08-29 20:45+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,19 +35,19 @@ msgstr "" msgid "No bringin found" msgstr "" -#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:206 OnGameToFpdb.py:339 PokerStarsToFpdb.py:441 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 msgid "parse input hand history" msgstr "" -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 msgid "output translation to" msgstr "" -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 msgid "follow (tail -f) the input" msgstr "" @@ -65,98 +65,102 @@ msgid "" "Could not encode: \"%s\"\n" msgstr "" -#: Configuration.py:113 Configuration.py:126 +#: Configuration.py:116 Configuration.py:131 msgid "" "Config file has been created at %s.\n" msgstr "" -#: Configuration.py:125 +#: Configuration.py:130 msgid "" "No %s found\n" " in %s\n" " or %s\n" msgstr "" -#: Configuration.py:131 Configuration.py:132 +#: Configuration.py:135 Configuration.py:136 msgid "" -"Error copying .example file, cannot fall back. Exiting.\n" +"Error copying .example config file, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:136 Configuration.py:137 +#: Configuration.py:140 Configuration.py:141 msgid "" "No %s found, cannot fall back. Exiting.\n" msgstr "" -#: Configuration.py:167 +#: Configuration.py:173 msgid "Default logger initialised for " msgstr "" -#: Configuration.py:168 +#: Configuration.py:174 msgid "Default logger intialised for " msgstr "" -#: Configuration.py:179 Database.py:438 Database.py:439 +#: Configuration.py:185 Database.py:438 Database.py:439 msgid "Creating directory: '%s'" msgstr "" -#: Configuration.py:205 +#: Configuration.py:211 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 +#: Configuration.py:309 msgid "Loading site" msgstr "" -#: Configuration.py:520 +#: Configuration.py:526 msgid "config.general: adding %s = %s" msgstr "" -#: Configuration.py:567 Configuration.py:568 +#: Configuration.py:573 Configuration.py:574 msgid "bad number in xalignment was ignored" msgstr "" -#: Configuration.py:616 +#: Configuration.py:622 msgid "missing config section raw_hands" msgstr "" -#: Configuration.py:622 +#: Configuration.py:628 msgid "Invalid config value for raw_hands.save, defaulting to \"error\"" msgstr "" -#: Configuration.py:629 +#: Configuration.py:635 msgid "Invalid config value for raw_hands.compression, defaulting to \"none\"" msgstr "" -#: Configuration.py:642 +#: Configuration.py:648 msgid "missing config section raw_tourneys" msgstr "" -#: Configuration.py:648 +#: Configuration.py:654 msgid "Invalid config value for raw_tourneys.save, defaulting to \"error\"" msgstr "" -#: Configuration.py:655 +#: Configuration.py:661 msgid "Invalid config value for raw_tourneys.compression, defaulting to \"none\"" msgstr "" -#: Configuration.py:673 Configuration.py:674 +#: Configuration.py:679 Configuration.py:680 msgid "Configuration file %s not found. Using defaults." msgstr "" -#: Configuration.py:690 +#: Configuration.py:708 msgid "Reading configuration file %s" msgstr "" -#: Configuration.py:691 +#: Configuration.py:709 msgid "" "\n" "Reading configuration file %s\n" msgstr "" -#: Configuration.py:696 +#: Configuration.py:715 msgid "Error parsing %s. See error log file." msgstr "" +#: Configuration.py:831 +msgid "Error parsing example file %s. See error log file." +msgstr "" + #: Database.py:74 msgid "Not using sqlalchemy connection pool." msgstr "" @@ -449,7 +453,7 @@ msgstr "" msgid "get_stats took: %4.3f seconds" msgstr "" -#: Database.py:2373 Tables.py:448 +#: Database.py:2373 msgid "press enter to continue" msgstr "" @@ -502,7 +506,7 @@ msgid "Grouping:" msgstr "" #: Filters.py:66 -msgid "Show Position Stats:" +msgid "Show Position Stats" msgstr "" #: Filters.py:67 TourneyFilters.py:60 @@ -577,15 +581,23 @@ msgstr "" msgid "No games returned from database" msgstr "" +#: Filters.py:894 +msgid "From:" +msgstr "" + +#: Filters.py:908 +msgid "To:" +msgstr "" + #: Filters.py:913 msgid " Clear Dates " msgstr "" -#: Filters.py:940 fpdb.pyw:722 +#: Filters.py:940 fpdb.pyw:723 msgid "Pick a date" msgstr "" -#: Filters.py:946 fpdb.pyw:728 +#: Filters.py:946 fpdb.pyw:729 msgid "Done" msgstr "" @@ -594,15 +606,15 @@ msgid "Time between imports in seconds:" msgstr "" #: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 -msgid " Start _Autoimport " +msgid " Start _Auto Import " msgstr "" #: GuiAutoImport.py:135 -msgid "AutoImport Ready." +msgid "Auto Import Ready." msgstr "" #: GuiAutoImport.py:148 -msgid "Please choose the path that you want to auto import" +msgid "Please choose the path that you want to Auto Import" msgstr "" #: GuiAutoImport.py:171 @@ -610,7 +622,7 @@ msgid " _Auto Import Running " msgstr "" #: GuiAutoImport.py:182 -msgid " Stop _Autoimport " +msgid " Stop _Auto Import " msgstr "" #: GuiAutoImport.py:207 @@ -620,7 +632,7 @@ msgid "" msgstr "" #: GuiAutoImport.py:209 -msgid " _Stop Autoimport " +msgid " _Stop Auto Import " msgstr "" #: GuiAutoImport.py:225 @@ -636,19 +648,19 @@ msgstr "" #: GuiAutoImport.py:249 msgid "" "\n" -"auto-import aborted - global lock not available" +"Auto Import aborted - global lock not available" msgstr "" #: GuiAutoImport.py:254 msgid "" "\n" -"Stopping autoimport - global lock released." +"Stopping Auto Import - global lock released." msgstr "" #: GuiAutoImport.py:256 msgid "" "\n" -" * Stop Autoimport: HUD already terminated" +" * Stop Auto Import: HUD already terminated" msgstr "" #: GuiAutoImport.py:283 @@ -678,7 +690,7 @@ msgid "Import Complete" msgstr "" #: GuiBulkImport.py:139 -msgid "bulk-import aborted - global lock not available" +msgid "bulk import aborted - global lock not available" msgstr "" #: GuiBulkImport.py:165 @@ -729,7 +741,7 @@ msgstr "" msgid "Drop HudCache:" msgstr "" -#: GuiBulkImport.py:297 fpdb.pyw:831 +#: GuiBulkImport.py:297 fpdb.pyw:814 msgid "_Bulk Import" msgstr "" @@ -801,95 +813,159 @@ msgstr "" 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" +#: GuiDatabase.py:117 +msgid "_Add" msgstr "" -#: GuiDatabase.py:111 +#: GuiDatabase.py:121 +msgid "_Refresh" +msgstr "" + +#: GuiDatabase.py:125 msgid "Type" msgstr "" -#: GuiDatabase.py:112 +#: GuiDatabase.py:126 msgid "Name" msgstr "" -#: GuiDatabase.py:113 +#: GuiDatabase.py:127 msgid "Description" msgstr "" -#: GuiDatabase.py:114 GuiImapFetcher.py:119 +#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 msgid "Username" msgstr "" -#: GuiDatabase.py:115 GuiImapFetcher.py:119 +#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 msgid "Password" msgstr "" -#: GuiDatabase.py:116 +#: GuiDatabase.py:130 msgid "Host" msgstr "" -#: GuiDatabase.py:117 -msgid "Default" +#: GuiDatabase.py:131 +msgid "Open" msgstr "" -#: GuiDatabase.py:118 +#: GuiDatabase.py:132 msgid "Status" msgstr "" -#: GuiDatabase.py:251 +#: GuiDatabase.py:266 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: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" -msgstr "" - -#: 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" -msgstr "" - -#: GuiDatabase.py:321 +#: GuiDatabase.py:293 msgid "finished." msgstr "" -#: GuiDatabase.py:331 -msgid "loaddbs error: " +#: GuiDatabase.py:303 +msgid "loadDbs error: " msgstr "" -#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 +#: GuiDatabase.py:324 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 msgid "***sortCols error: " msgstr "" -#: GuiDatabase.py:354 +#: GuiDatabase.py:326 msgid "sortCols error: " msgstr "" -#: GuiDatabase.py:424 GuiLogView.py:213 +#: GuiDatabase.py:371 +msgid "testDB: trying to connect to: %s/%s, %s, %s/%s" +msgstr "" + +#: GuiDatabase.py:374 +msgid " connected ok" +msgstr "" + +#: GuiDatabase.py:381 +msgid " not connected but no exception" +msgstr "" + +#: GuiDatabase.py:383 fpdb.pyw:886 +msgid "MySQL Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:387 fpdb.pyw:888 +msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " +msgstr "" + +#: GuiDatabase.py:388 fpdb.pyw:889 +msgid "Please check that the MySQL service has been started" +msgstr "" + +#: GuiDatabase.py:392 fpdb.pyw:891 +msgid "PostgreSQL Server reports: Access denied. Are your permissions set correctly?" +msgstr "" + +#: GuiDatabase.py:395 fpdb.pyw:893 +msgid "PostgreSQL client reports: Unable to connect - " +msgstr "" + +#: GuiDatabase.py:396 fpdb.pyw:894 +msgid "Please check that the PostgreSQL service has been started" +msgstr "" + +#: GuiDatabase.py:406 +msgid "db connection to " +msgstr "" + +#: GuiDatabase.py:434 +msgid "DB Type" +msgstr "" + +#: GuiDatabase.py:444 +msgid "DB Name" +msgstr "" + +#: GuiDatabase.py:452 +msgid "DB Description" +msgstr "" + +#: GuiDatabase.py:473 +msgid "Host Computer" +msgstr "" + +#: GuiDatabase.py:528 +msgid "Database created" +msgstr "" + +#: GuiDatabase.py:531 +msgid "Database creation failed" +msgstr "" + +#: GuiDatabase.py:550 +msgid "No Database Name given" +msgstr "" + +#: GuiDatabase.py:553 +msgid "No Database Description given" +msgstr "" + +#: GuiDatabase.py:556 +msgid "No Username given" +msgstr "" + +#: GuiDatabase.py:559 +msgid "No Password given" +msgstr "" + +#: GuiDatabase.py:562 +msgid "No Host given" +msgstr "" + +#: GuiDatabase.py:589 +msgid "Do you want to try again?" +msgstr "" + +#: GuiDatabase.py:702 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "" -#: GuiDatabase.py:429 GuiLogView.py:218 +#: GuiDatabase.py:707 GuiLogView.py:218 msgid "Log Viewer" msgstr "" @@ -1030,6 +1106,10 @@ msgstr "" msgid "Log Messages" msgstr "" +#: GuiLogView.py:96 +msgid "Refresh" +msgstr "" + #: GuiPositionalStats.py:146 msgid "DEBUG: activesite set to %s" msgstr "" @@ -1154,7 +1234,7 @@ msgid "" "Note: error output is being diverted to:\n" msgstr "" -#: HUD_main.pyw:96 fpdb.pyw:1138 +#: HUD_main.pyw:96 fpdb.pyw:1120 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1226,351 +1306,351 @@ msgid "" "Using db name = %s\n" msgstr "" -#: Hand.py:150 +#: Hand.py:151 msgid "BB" msgstr "" -#: Hand.py:151 +#: Hand.py:152 msgid "SB" msgstr "" -#: Hand.py:152 +#: Hand.py:153 msgid "BUTTONPOS" msgstr "" -#: Hand.py:153 +#: Hand.py:154 msgid "HAND NO." msgstr "" -#: Hand.py:154 TourneySummary.py:134 +#: Hand.py:155 TourneySummary.py:134 msgid "SITE" msgstr "" -#: Hand.py:155 +#: Hand.py:156 msgid "TABLE NAME" msgstr "" -#: Hand.py:156 TourneySummary.py:144 +#: Hand.py:157 TourneySummary.py:144 msgid "HERO" msgstr "" -#: Hand.py:157 TourneySummary.py:145 +#: Hand.py:158 TourneySummary.py:145 msgid "MAXSEATS" msgstr "" -#: Hand.py:158 +#: Hand.py:159 msgid "LEVEL" msgstr "" -#: Hand.py:159 TourneySummary.py:150 +#: Hand.py:160 TourneySummary.py:150 msgid "MIXED" msgstr "" -#: Hand.py:160 +#: Hand.py:161 msgid "LASTBET" msgstr "" -#: Hand.py:161 +#: Hand.py:162 msgid "ACTION STREETS" msgstr "" -#: Hand.py:162 +#: Hand.py:163 msgid "STREETS" msgstr "" -#: Hand.py:163 +#: Hand.py:164 msgid "ALL STREETS" msgstr "" -#: Hand.py:164 +#: Hand.py:165 msgid "COMMUNITY STREETS" msgstr "" -#: Hand.py:165 +#: Hand.py:166 msgid "HOLE STREETS" msgstr "" -#: Hand.py:166 +#: Hand.py:167 msgid "COUNTED SEATS" msgstr "" -#: Hand.py:167 +#: Hand.py:168 msgid "DEALT" msgstr "" -#: Hand.py:168 +#: Hand.py:169 msgid "SHOWN" msgstr "" -#: Hand.py:169 +#: Hand.py:170 msgid "MUCKED" msgstr "" -#: Hand.py:170 +#: Hand.py:171 msgid "TOTAL POT" msgstr "" -#: Hand.py:171 +#: Hand.py:172 msgid "TOTAL COLLECTED" msgstr "" -#: Hand.py:172 +#: Hand.py:173 msgid "RAKE" msgstr "" -#: Hand.py:173 TourneySummary.py:135 +#: Hand.py:174 TourneySummary.py:135 msgid "START TIME" msgstr "" -#: Hand.py:174 +#: Hand.py:175 msgid "TOURNAMENT NO" msgstr "" -#: Hand.py:175 TourneySummary.py:140 +#: Hand.py:176 TourneySummary.py:140 msgid "TOURNEY ID" msgstr "" -#: Hand.py:176 TourneySummary.py:139 +#: Hand.py:177 TourneySummary.py:139 msgid "TOURNEY TYPE ID" msgstr "" -#: Hand.py:177 TourneySummary.py:141 +#: Hand.py:178 TourneySummary.py:141 msgid "BUYIN" msgstr "" -#: Hand.py:178 +#: Hand.py:179 msgid "BUYIN CURRENCY" msgstr "" -#: Hand.py:179 +#: Hand.py:180 msgid "BUYIN CHIPS" msgstr "" -#: Hand.py:180 TourneySummary.py:142 +#: Hand.py:181 TourneySummary.py:142 msgid "FEE" msgstr "" -#: Hand.py:181 +#: Hand.py:182 msgid "IS REBUY" msgstr "" -#: Hand.py:182 +#: Hand.py:183 msgid "IS ADDON" msgstr "" -#: Hand.py:183 +#: Hand.py:184 msgid "IS KO" msgstr "" -#: Hand.py:184 TourneySummary.py:166 +#: Hand.py:185 TourneySummary.py:166 msgid "KO BOUNTY" msgstr "" -#: Hand.py:185 +#: Hand.py:186 msgid "IS MATRIX" msgstr "" -#: Hand.py:186 +#: Hand.py:187 msgid "IS SHOOTOUT" msgstr "" -#: Hand.py:187 TourneySummary.py:167 +#: Hand.py:188 TourneySummary.py:167 msgid "TOURNEY COMMENT" msgstr "" -#: Hand.py:190 TourneySummary.py:179 +#: Hand.py:191 TourneySummary.py:179 msgid "PLAYERS" msgstr "" -#: Hand.py:191 +#: Hand.py:192 msgid "STACKS" msgstr "" -#: Hand.py:192 +#: Hand.py:193 msgid "POSTED" msgstr "" -#: Hand.py:193 +#: Hand.py:194 msgid "POT" msgstr "" -#: Hand.py:194 +#: Hand.py:195 msgid "SEATING" msgstr "" -#: Hand.py:195 +#: Hand.py:196 msgid "GAMETYPE" msgstr "" -#: Hand.py:196 +#: Hand.py:197 msgid "ACTION" msgstr "" -#: Hand.py:197 +#: Hand.py:198 msgid "COLLECTEES" msgstr "" -#: Hand.py:198 +#: Hand.py:199 msgid "BETS" msgstr "" -#: Hand.py:199 +#: Hand.py:200 msgid "BOARD" msgstr "" -#: Hand.py:200 +#: Hand.py:201 msgid "DISCARDS" msgstr "" -#: Hand.py:201 +#: Hand.py:202 msgid "HOLECARDS" msgstr "" -#: Hand.py:202 +#: Hand.py:203 msgid "TOURNEYS PLAYER IDS" msgstr "" -#: Hand.py:225 Hand.py:1242 +#: Hand.py:226 Hand.py:1243 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "" -#: Hand.py:278 +#: Hand.py:279 msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "" -#: Hand.py:317 -msgid "markstreets didn't match - Assuming hand cancelled" +#: Hand.py:318 +msgid "markstreets didn't match - Assuming hand %s was cancelled" msgstr "" -#: Hand.py:319 +#: Hand.py:320 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" -#: Hand.py:323 +#: Hand.py:324 msgid "DEBUG: checkPlayerExists %s fail on hand number %s" msgstr "" -#: Hand.py:324 +#: Hand.py:325 msgid "checkPlayerExists: '%s fail on hand number %s" msgstr "" -#: Hand.py:405 +#: Hand.py:406 msgid "%s %s calls %s" msgstr "" -#: Hand.py:475 +#: Hand.py:476 msgid "%s %s raise %s" msgstr "" -#: Hand.py:486 +#: Hand.py:487 msgid "%s %s bets %s" msgstr "" -#: Hand.py:505 +#: Hand.py:506 msgid "%s %s folds" msgstr "" -#: Hand.py:514 +#: Hand.py:515 msgid "%s %s checks" msgstr "" -#: Hand.py:534 +#: Hand.py:535 msgid "addShownCards %s hole=%s all=%s" msgstr "" -#: Hand.py:645 +#: Hand.py:646 msgid "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, expecting datetime.date object, received:" msgstr "" -#: Hand.py:646 +#: Hand.py:647 msgid "*** Make sure your HandHistoryConverter is setting hand.startTime properly!" msgstr "" -#: Hand.py:647 +#: Hand.py:648 msgid "*** Game String:" msgstr "" -#: Hand.py:701 +#: Hand.py:702 msgid "*** Parse error reading blinds (check compilePlayerRegexs as a likely culprit)" msgstr "" -#: Hand.py:728 +#: Hand.py:729 msgid "HoldemOmahaHand.__init__:Can't assemble hand from db without a handid" msgstr "" -#: Hand.py:730 +#: Hand.py:731 msgid "HoldemOmahaHand.__init__:Neither HHC nor DB+handid provided" msgstr "" -#: Hand.py:1111 +#: Hand.py:1112 msgid "*** DEALING HANDS ***" msgstr "" -#: Hand.py:1116 +#: Hand.py:1117 msgid "Dealt to %s: [%s]" msgstr "" -#: Hand.py:1121 +#: Hand.py:1122 msgid "*** FIRST DRAW ***" msgstr "" -#: Hand.py:1131 +#: Hand.py:1132 msgid "*** SECOND DRAW ***" msgstr "" -#: Hand.py:1141 +#: Hand.py:1142 msgid "*** THIRD DRAW ***" msgstr "" -#: Hand.py:1151 Hand.py:1369 +#: Hand.py:1152 Hand.py:1370 msgid "*** SHOW DOWN ***" msgstr "" -#: Hand.py:1166 Hand.py:1384 +#: Hand.py:1167 Hand.py:1385 msgid "*** SUMMARY ***" msgstr "" -#: Hand.py:1251 +#: Hand.py:1252 msgid "%s %s completes %s" msgstr "" -#: Hand.py:1269 +#: Hand.py:1270 msgid "Bringin: %s, %s" msgstr "" -#: Hand.py:1309 +#: Hand.py:1310 msgid "*** 3RD STREET ***" msgstr "" -#: Hand.py:1323 +#: Hand.py:1324 msgid "*** 4TH STREET ***" msgstr "" -#: Hand.py:1335 +#: Hand.py:1336 msgid "*** 5TH STREET ***" msgstr "" -#: Hand.py:1347 +#: Hand.py:1348 msgid "*** 6TH STREET ***" msgstr "" -#: Hand.py:1357 +#: Hand.py:1358 msgid "*** RIVER ***" msgstr "" -#: Hand.py:1449 +#: Hand.py:1450 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 +#: Hand.py:1451 msgid "join_holcards: holecards(%s): %s" msgstr "" -#: Hand.py:1533 +#: Hand.py:1534 msgid "DEBUG: call Pot.end() before printing pot total" msgstr "" -#: Hand.py:1535 +#: Hand.py:1536 msgid "FpdbError in printing Hand object" msgstr "" @@ -1693,138 +1773,128 @@ msgid "" " on %s." msgstr "" -#: Hud.py:149 +#: Hud.py:148 msgid "Kill This HUD" msgstr "" -#: Hud.py:154 +#: Hud.py:153 msgid "Save HUD Layout" msgstr "" -#: Hud.py:158 +#: Hud.py:157 msgid "Reposition StatWindows" msgstr "" -#: Hud.py:162 +#: Hud.py:161 msgid "Show Player Stats" msgstr "" -#: Hud.py:167 Hud.py:236 +#: Hud.py:166 Hud.py:235 msgid "For This Blind Level Only" msgstr "" -#: Hud.py:172 Hud.py:241 +#: Hud.py:171 Hud.py:240 msgid "For Multiple Blind Levels:" msgstr "" -#: Hud.py:175 Hud.py:244 +#: Hud.py:174 Hud.py:243 msgid " 0.5 to 2.0 x Current Blinds" msgstr "" -#: Hud.py:180 Hud.py:249 +#: Hud.py:179 Hud.py:248 msgid " 0.33 to 3.0 x Current Blinds" msgstr "" -#: Hud.py:185 Hud.py:254 +#: Hud.py:184 Hud.py:253 msgid " 0.1 to 10 x Current Blinds" msgstr "" -#: Hud.py:190 Hud.py:259 +#: Hud.py:189 Hud.py:258 msgid " All Levels" msgstr "" -#: Hud.py:195 Hud.py:264 +#: Hud.py:194 Hud.py:263 msgid "For #Seats:" msgstr "" -#: Hud.py:198 Hud.py:267 +#: Hud.py:197 Hud.py:266 msgid " Any Number" msgstr "" -#: Hud.py:203 Hud.py:272 +#: Hud.py:202 Hud.py:271 msgid " Custom" msgstr "" -#: Hud.py:208 Hud.py:277 +#: Hud.py:207 Hud.py:276 msgid " Exact" msgstr "" -#: Hud.py:213 Hud.py:282 +#: Hud.py:212 Hud.py:281 msgid "Since:" msgstr "" -#: Hud.py:216 Hud.py:285 +#: Hud.py:215 Hud.py:284 msgid " All Time" msgstr "" -#: Hud.py:221 Hud.py:290 +#: Hud.py:220 Hud.py:289 msgid " Session" msgstr "" -#: Hud.py:226 Hud.py:295 +#: Hud.py:225 Hud.py:294 msgid " %s Days" msgstr "" -#: Hud.py:231 +#: Hud.py:230 msgid "Show Opponent Stats" msgstr "" -#: Hud.py:353 +#: Hud.py:352 msgid "Debug StatWindows" msgstr "" -#: Hud.py:357 +#: Hud.py:356 msgid "Set max seats" msgstr "" -#: Hud.py:543 +#: Hud.py:542 msgid "Updating config file" msgstr "" -#: Hud.py:552 +#: Hud.py:551 msgid "" "No layout found for %d-max games for site %s\n" msgstr "" -#: Hud.py:566 +#: Hud.py:565 msgid "" "exception in Hud.adj_seats\n" "\n" msgstr "" -#: Hud.py:567 +#: Hud.py:566 msgid "error is %s" msgstr "" -#: Hud.py:574 +#: Hud.py:573 msgid "" "Error finding actual seat.\n" msgstr "" -#: Hud.py:590 +#: Hud.py:589 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" msgstr "" -#: Hud.py:639 +#: Hud.py:638 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 +#: Hud.py:639 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 "" @@ -1837,36 +1907,36 @@ msgstr "" msgid "No Name" msgstr "" -#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:178 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 msgid "determineGameType: Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:154 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: OnGameToFpdb.py:179 OnGameToFpdb.py:193 PkrToFpdb.py:145 PkrToFpdb.py:173 #: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "" -#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:180 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 msgid "Unable to recognise gametype from: '%s'" msgstr "" -#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +#: OnGameToFpdb.py:192 +msgid "determineGameType: limit not found in self.limits(%s). hand: '%s'" +msgstr "" + +#: OnGameToFpdb.py:194 +msgid "limit not found in self.limits(%s). hand: '%s'" +msgstr "" + +#: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 msgid "readButton: not found" msgstr "" -#: OnGameToFpdb.py:250 -msgid "readBlinds starting" +#: OnGameToFpdb.py:288 +msgid "readBlinds in noSB exception - no SB created" 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 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 msgid "reading antes" msgstr "" @@ -1950,186 +2020,166 @@ msgstr "" msgid "in not result starttime" msgstr "" -#: PokerStarsToFpdb.py:273 +#: PokerStarsToFpdb.py:274 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 +#: Stats.py:122 Stats.py:123 msgid "Total Profit" msgstr "" -#: Stats.py:154 Stats.py:161 +#: Stats.py:144 Stats.py:151 msgid "Voluntarily Put In Pot Pre-Flop%" msgstr "" -#: Stats.py:174 Stats.py:182 +#: Stats.py:164 Stats.py:172 msgid "Pre-Flop Raise %" msgstr "" -#: Stats.py:195 Stats.py:203 +#: Stats.py:185 Stats.py:193 msgid "% went to showdown" msgstr "" -#: Stats.py:216 Stats.py:224 +#: Stats.py:206 Stats.py:214 msgid "% won money at showdown" msgstr "" -#: Stats.py:237 Stats.py:246 +#: Stats.py:227 Stats.py:236 msgid "profit/100hands" msgstr "" -#: Stats.py:240 +#: Stats.py:230 msgid "exception calcing p/100: 100 * %d / %d" msgstr "" -#: Stats.py:259 Stats.py:268 +#: Stats.py:249 Stats.py:258 msgid "big blinds/100 hands" msgstr "" -#: Stats.py:281 Stats.py:290 +#: Stats.py:271 Stats.py:280 msgid "Big Bets/100 hands" msgstr "" -#: Stats.py:284 +#: Stats.py:274 msgid "exception calcing BB/100: " msgstr "" -#: Stats.py:304 Stats.py:315 +#: Stats.py:294 Stats.py:303 msgid "Flop Seen %" msgstr "" -#: Stats.py:338 Stats.py:346 +#: Stats.py:326 Stats.py:335 msgid "number hands seen" msgstr "" -#: Stats.py:359 Stats.py:367 +#: Stats.py:348 Stats.py:356 msgid "folded flop/4th" msgstr "" -#: Stats.py:380 +#: Stats.py:369 msgid "% steal attempted" msgstr "" -#: Stats.py:395 Stats.py:402 +#: Stats.py:384 Stats.py:391 msgid "% folded SB to steal" msgstr "" -#: Stats.py:414 Stats.py:421 +#: Stats.py:403 Stats.py:410 msgid "% folded BB to steal" msgstr "" -#: Stats.py:436 Stats.py:443 +#: Stats.py:425 Stats.py:432 msgid "% folded blind to steal" msgstr "" -#: Stats.py:455 Stats.py:462 +#: Stats.py:444 Stats.py:451 msgid "% 3/4 Bet preflop/3rd" msgstr "" -#: Stats.py:474 Stats.py:481 +#: Stats.py:463 Stats.py:470 msgid "% won$/saw flop/4th" msgstr "" -#: Stats.py:493 Stats.py:500 +#: Stats.py:482 Stats.py:489 msgid "Aggression Freq flop/4th" msgstr "" -#: Stats.py:512 Stats.py:519 +#: Stats.py:501 Stats.py:508 msgid "Aggression Freq turn/5th" msgstr "" -#: Stats.py:531 Stats.py:538 +#: Stats.py:520 Stats.py:527 msgid "Aggression Freq river/6th" msgstr "" -#: Stats.py:550 Stats.py:557 +#: Stats.py:539 Stats.py:546 msgid "Aggression Freq 7th" msgstr "" -#: Stats.py:576 Stats.py:583 +#: Stats.py:565 Stats.py:572 msgid "Post-Flop Aggression Freq" msgstr "" -#: Stats.py:604 Stats.py:611 +#: Stats.py:593 Stats.py:600 msgid "Aggression Freq" msgstr "" -#: Stats.py:630 Stats.py:637 +#: Stats.py:619 Stats.py:626 msgid "Aggression Factor" msgstr "" -#: Stats.py:654 Stats.py:661 +#: Stats.py:643 Stats.py:650 msgid "% continuation bet " msgstr "" -#: Stats.py:673 Stats.py:680 +#: Stats.py:662 Stats.py:669 msgid "% continuation bet flop/4th" msgstr "" -#: Stats.py:692 Stats.py:699 +#: Stats.py:681 Stats.py:688 msgid "% continuation bet turn/5th" msgstr "" -#: Stats.py:711 Stats.py:718 +#: Stats.py:700 Stats.py:707 msgid "% continuation bet river/6th" msgstr "" -#: Stats.py:730 Stats.py:737 +#: Stats.py:719 Stats.py:726 msgid "% continuation bet 7th" msgstr "" -#: Stats.py:749 Stats.py:756 +#: Stats.py:738 Stats.py:745 msgid "% fold frequency flop/4th" msgstr "" -#: Stats.py:768 Stats.py:775 +#: Stats.py:757 Stats.py:764 msgid "% fold frequency turn/5th" msgstr "" -#: Stats.py:787 Stats.py:794 +#: Stats.py:776 Stats.py:783 msgid "% fold frequency river/6th" msgstr "" -#: Stats.py:806 Stats.py:813 +#: Stats.py:795 Stats.py:802 msgid "% fold frequency 7th" msgstr "" -#: Stats.py:833 +#: Stats.py:822 msgid "Example stats, player = %s hand = %s:" msgstr "" -#: Stats.py:866 +#: Stats.py:855 msgid "" "\n" "\n" "Legal stats:" msgstr "" -#: Stats.py:867 +#: Stats.py:856 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 "" @@ -2514,356 +2564,327 @@ 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 " +msgid "Please confirm that you want to (re-)create the tables." msgstr "" #: fpdb.pyw:548 msgid "" -" they will be deleted and you will have to re-import your histories.\n" -"This may take a while." +" If there already are tables in the database %s on %s they will be deleted and you will have to re-import your histories.\n" msgstr "" -#: fpdb.pyw:573 +#: fpdb.pyw:549 +msgid "This may take a while." +msgstr "" + +#: fpdb.pyw:574 msgid "User cancelled recreating tables" msgstr "" -#: fpdb.pyw:580 +#: fpdb.pyw:581 msgid "Please confirm that you want to re-create the HUD cache." msgstr "" -#: fpdb.pyw:588 +#: fpdb.pyw:589 msgid " Hero's cache starts: " msgstr "" -#: fpdb.pyw:602 +#: fpdb.pyw:603 msgid " Villains' cache starts: " msgstr "" -#: fpdb.pyw:615 +#: fpdb.pyw:616 msgid " Rebuilding HUD Cache ... " msgstr "" -#: fpdb.pyw:623 +#: fpdb.pyw:624 msgid "User cancelled rebuilding hud cache" msgstr "" -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Confirm rebuilding database indexes" msgstr "" -#: fpdb.pyw:636 +#: fpdb.pyw:637 msgid "Please confirm that you want to rebuild the database indexes." msgstr "" -#: fpdb.pyw:644 +#: fpdb.pyw:645 msgid " Rebuilding Indexes ... " msgstr "" -#: fpdb.pyw:651 +#: fpdb.pyw:652 msgid " Cleaning Database ... " msgstr "" -#: fpdb.pyw:656 +#: fpdb.pyw:657 msgid " Analyzing Database ... " msgstr "" -#: fpdb.pyw:661 +#: fpdb.pyw:662 msgid "User cancelled rebuilding db indexes" msgstr "" -#: fpdb.pyw:756 +#: fpdb.pyw:757 msgid "Unimplemented: Save Profile (try saving a HUD layout, that should do it)" msgstr "" -#: fpdb.pyw:759 -msgid "Fatal Error - Config File Missing" -msgstr "" - -#: fpdb.pyw:761 -msgid "Please copy the config file from the docs folder to:" -msgstr "" - -#: fpdb.pyw:769 -msgid "and edit it according to the install documentation at http://fpdb.sourceforge.net" -msgstr "" - -#: fpdb.pyw:825 +#: fpdb.pyw:808 msgid "_Main" msgstr "" -#: fpdb.pyw:826 fpdb.pyw:853 +#: fpdb.pyw:809 fpdb.pyw:836 msgid "_Quit" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "L" msgstr "" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "_Load Profile (broken)" msgstr "" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "S" msgstr "" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "_Save Profile (todo)" msgstr "" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "F" msgstr "" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "Pre_ferences" msgstr "" -#: fpdb.pyw:830 +#: fpdb.pyw:813 msgid "_Import" msgstr "" -#: fpdb.pyw:831 +#: fpdb.pyw:814 msgid "B" msgstr "" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "I" msgstr "" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "_Import through eMail/IMAP" msgstr "" -#: fpdb.pyw:833 +#: fpdb.pyw:816 msgid "_Viewers" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "A" msgstr "" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "_Auto Import and HUD" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "H" msgstr "" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "_HUD Configurator" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "G" msgstr "" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "_Graphs" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "P" msgstr "" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "T" msgstr "" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "" -#: fpdb.pyw:839 +#: fpdb.pyw:822 msgid "Tourney _Viewer" msgstr "" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "O" msgstr "" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "" -#: fpdb.pyw:841 fpdb.pyw:1057 +#: fpdb.pyw:824 fpdb.pyw:1039 msgid "Session Stats" msgstr "" -#: fpdb.pyw:842 +#: fpdb.pyw:825 msgid "_Database" msgstr "" -#: fpdb.pyw:843 +#: fpdb.pyw:826 msgid "_Maintain Databases" msgstr "" -#: fpdb.pyw:844 +#: fpdb.pyw:827 msgid "Create or Recreate _Tables" msgstr "" -#: fpdb.pyw:845 +#: fpdb.pyw:828 msgid "Rebuild HUD Cache" msgstr "" -#: fpdb.pyw:846 +#: fpdb.pyw:829 msgid "Rebuild DB Indexes" msgstr "" -#: fpdb.pyw:847 +#: fpdb.pyw:830 msgid "_Statistics" msgstr "" -#: fpdb.pyw:848 +#: fpdb.pyw:831 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "" -#: fpdb.pyw:849 +#: fpdb.pyw:832 msgid "_Help" msgstr "" -#: fpdb.pyw:850 +#: fpdb.pyw:833 msgid "_Log Messages" msgstr "" -#: fpdb.pyw:851 +#: fpdb.pyw:834 msgid "A_bout, License, Copying" msgstr "" -#: fpdb.pyw:869 +#: fpdb.pyw:852 msgid "" "There is an error in your config file\n" msgstr "" -#: fpdb.pyw:870 +#: fpdb.pyw:853 msgid "" "\n" "\n" "Error is: " msgstr "" -#: fpdb.pyw:871 +#: fpdb.pyw:854 msgid "CONFIG FILE ERROR" msgstr "" -#: fpdb.pyw:875 +#: fpdb.pyw:858 msgid "" "Logfile is %s\n" msgstr "" -#: fpdb.pyw:877 +#: fpdb.pyw:860 msgid "Config file" msgstr "" -#: fpdb.pyw:878 +#: fpdb.pyw:861 msgid "" "has been created at:\n" "%s.\n" msgstr "" -#: fpdb.pyw:879 -msgid "Edit your screen_name and hand history path in the supported_sites " +#: fpdb.pyw:862 +msgid "Edit your screen_name and hand history path in the supported_sites section of the Preferences window (Main menu) before trying to import hands." msgstr "" -#: fpdb.pyw:880 -msgid "section of the Preferences window (Main menu) before trying to import hands." -msgstr "" - -#: fpdb.pyw:902 +#: fpdb.pyw:884 msgid "Connected to SQLite: %s" msgstr "" -#: fpdb.pyw:906 -msgid "MySQL client reports: 2002 or 2003 error. Unable to connect - " -msgstr "" - -#: fpdb.pyw:907 -msgid "Please check that the MySQL service has been started" -msgstr "" - -#: fpdb.pyw:911 -msgid "Postgres client reports: Unable to connect - " -msgstr "" - -#: fpdb.pyw:912 -msgid "Please check that the Postgres service has been started" -msgstr "" - -#: fpdb.pyw:936 +#: fpdb.pyw:918 msgid "Strong Warning - Invalid database version" msgstr "" -#: fpdb.pyw:938 +#: fpdb.pyw:920 msgid "An invalid DB version or missing tables have been detected." msgstr "" -#: fpdb.pyw:942 +#: fpdb.pyw:924 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:946 +#: fpdb.pyw:928 msgid "Not doing this will likely lead to misbehaviour including fpdb crashes, corrupt data etc." msgstr "" -#: fpdb.pyw:959 +#: fpdb.pyw:941 msgid "Status: Connected to %s database named %s on host %s" msgstr "" -#: fpdb.pyw:969 +#: fpdb.pyw:951 msgid "" "\n" -"Global lock taken by" +"Global lock taken by %s" msgstr "" -#: fpdb.pyw:972 +#: fpdb.pyw:954 msgid "" "\n" -"Failed to get global lock, it is currently held by" +"Failed to get global lock, it is currently held by %s" msgstr "" -#: fpdb.pyw:982 +#: fpdb.pyw:964 msgid "Quitting normally" msgstr "" -#: fpdb.pyw:1006 +#: fpdb.pyw:988 msgid "" "Global lock released.\n" msgstr "" -#: fpdb.pyw:1013 +#: fpdb.pyw:995 msgid "Auto Import" msgstr "" -#: fpdb.pyw:1020 +#: fpdb.pyw:1002 msgid "Bulk Import" msgstr "" -#: fpdb.pyw:1026 +#: fpdb.pyw:1008 msgid "eMail Import" msgstr "" -#: fpdb.pyw:1033 +#: fpdb.pyw:1015 msgid "Ring Player Stats" msgstr "" -#: fpdb.pyw:1039 +#: fpdb.pyw:1021 msgid "Tourney Player Stats" msgstr "" -#: fpdb.pyw:1045 +#: fpdb.pyw:1027 msgid "Tourney Viewer" msgstr "" -#: fpdb.pyw:1051 +#: fpdb.pyw:1033 msgid "Positional Stats" msgstr "" -#: fpdb.pyw:1061 +#: fpdb.pyw:1043 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" @@ -2884,36 +2905,36 @@ 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:1078 +#: fpdb.pyw:1060 msgid "Help" msgstr "" -#: fpdb.pyw:1085 +#: fpdb.pyw:1067 msgid "Graphs" msgstr "" -#: fpdb.pyw:1137 +#: fpdb.pyw:1119 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: %s" msgstr "" -#: fpdb.pyw:1166 +#: fpdb.pyw:1148 msgid "fpdb starting ..." msgstr "" -#: fpdb.pyw:1223 +#: fpdb.pyw:1205 msgid "FPDB WARNING" msgstr "" -#: fpdb.pyw:1242 +#: fpdb.pyw:1224 msgid "" -"WARNING: Unable to find output hh directory %s\n" +"WARNING: Unable to find output hand history directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" -#: fpdb.pyw:1250 +#: fpdb.pyw:1232 msgid "WARNING: Unable to create hand output directory. Importing is not likely to work until this is fixed." msgstr "" @@ -2934,7 +2955,7 @@ msgid "[ERROR] More than 1 Database ID found for %s - Multiple currencies not im msgstr "" #: fpdb_import.py:227 -msgid "Attempted to add non-directory: '%s' as an import directory" +msgid "Attempted to add non-directory '%s' as an import directory" msgstr "" #: fpdb_import.py:237 @@ -2966,11 +2987,11 @@ msgid "No need to rebuild hudcache." msgstr "" #: fpdb_import.py:313 -msgid "sending finish msg qlen =" +msgid "sending finish message queue length =" msgstr "" #: fpdb_import.py:439 fpdb_import.py:441 -msgid "Converting " +msgid "Converting %s" msgstr "" #: fpdb_import.py:477 diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 5d4b6e45..2c2ea758 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-29 14:22+CEST\n" +"POT-Creation-Date: 2010-08-29 20:42+CEST\n" "PO-Revision-Date: 2010-08-29 14:25+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -36,19 +36,19 @@ msgstr "re_HandInfo nem illeszkedik" msgid "No bringin found" msgstr "Beülő nem található" -#: BetfairToFpdb.py:206 OnGameToFpdb.py:308 PokerStarsToFpdb.py:440 +#: BetfairToFpdb.py:206 OnGameToFpdb.py:339 PokerStarsToFpdb.py:441 msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "DEBUG: nem ismert readAction: '%s' '%s'" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:522 PokerStarsToFpdb.py:467 +#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 msgid "parse input hand history" msgstr "leosztástörténet feldolgozása" -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:523 PokerStarsToFpdb.py:468 +#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 msgid "output translation to" msgstr "feldolgozás eredményének helye" -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:524 PokerStarsToFpdb.py:469 +#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 msgid "follow (tail -f) the input" msgstr "kövesse a kimenetet (tail -f)" @@ -64,11 +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:113 Configuration.py:126 +#: Configuration.py:116 Configuration.py:131 msgid "Config file has been created at %s.\n" msgstr "Konfigurációs fájl létrehozva itt: %s.\n" -#: Configuration.py:125 +#: Configuration.py:130 msgid "" "No %s found\n" " in %s\n" @@ -78,27 +78,28 @@ msgstr "" " itt: %s\n" " vagy itt: %s\n" -#: Configuration.py:131 Configuration.py:132 -msgid "Error copying .example file, cannot fall back. Exiting.\n" +#: Configuration.py:135 Configuration.py:136 +#, fuzzy +msgid "Error copying .example config 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:136 Configuration.py:137 +#: Configuration.py:140 Configuration.py:141 msgid "No %s found, cannot fall back. Exiting.\n" msgstr "%s nem található, nem tudom folytatni. Kilépés.\n" -#: Configuration.py:167 +#: Configuration.py:173 msgid "Default logger initialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:168 +#: Configuration.py:174 msgid "Default logger intialised for " msgstr "Alapértelmezett naplózó előkészítve ehhez: " -#: Configuration.py:179 Database.py:438 Database.py:439 +#: Configuration.py:185 Database.py:438 Database.py:439 msgid "Creating directory: '%s'" msgstr "Könyvtár létrehozása: '%s'" -#: Configuration.py:205 +#: Configuration.py:211 msgid "" "Default encoding set to US-ASCII, defaulting to CP1252 instead -- If you're " "not on a Mac, please report this problem." @@ -106,59 +107,59 @@ 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:303 +#: Configuration.py:309 msgid "Loading site" msgstr "Terem betöltése" -#: Configuration.py:520 +#: Configuration.py:526 msgid "config.general: adding %s = %s" msgstr "config.general: %s = %s hozzáadása" -#: Configuration.py:567 Configuration.py:568 +#: Configuration.py:573 Configuration.py:574 msgid "bad number in xalignment was ignored" msgstr "hibás érték az xalignment-ben - figyelmen kívül hagyás" -#: Configuration.py:616 +#: Configuration.py:622 msgid "missing config section raw_hands" msgstr "hiányzó konfigurációs bekezdés: raw_hands" -#: Configuration.py:622 +#: Configuration.py:628 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 +#: Configuration.py:635 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 +#: Configuration.py:648 msgid "missing config section raw_tourneys" msgstr "hiányzó konfigurációs bekezdés: raw_tourneys" -#: Configuration.py:648 +#: Configuration.py:654 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 +#: Configuration.py:661 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 +#: Configuration.py:679 Configuration.py:680 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:690 +#: Configuration.py:708 msgid "Reading configuration file %s" msgstr "%s konfigurációs fájl olvasása" -#: Configuration.py:691 +#: Configuration.py:709 msgid "" "\n" "Reading configuration file %s\n" @@ -166,10 +167,15 @@ msgstr "" "\n" "%s konfigurációs fájl olvasása\n" -#: Configuration.py:696 +#: Configuration.py:715 msgid "Error parsing %s. See error log file." msgstr "Hiba a(z) %s értelmezése közben. Nézz bele a hibanaplóba." +#: Configuration.py:831 +#, fuzzy +msgid "Error parsing example file %s. See error log file." +msgstr "Hiba a(z) %s értelmezése közben. Nézz bele a hibanaplóba." + #: Database.py:74 msgid "Not using sqlalchemy connection pool." msgstr "SQLAlchemy connection pool használatának kihagyása." @@ -474,7 +480,7 @@ msgstr "kezdőkéz =" msgid "get_stats took: %4.3f seconds" msgstr "get_stats időigény: %4.3f mp" -#: Database.py:2373 Tables.py:448 +#: Database.py:2373 msgid "press enter to continue" msgstr "nyomj ENTER-t a folytatáshoz" @@ -527,7 +533,8 @@ msgid "Grouping:" msgstr "Csoportosítás:" #: Filters.py:66 -msgid "Show Position Stats:" +#, fuzzy +msgid "Show Position Stats" msgstr "Pozíció" #: Filters.py:67 TourneyFilters.py:60 @@ -602,15 +609,23 @@ msgstr "INFO: nem található játék az adatbázisban" msgid "No games returned from database" msgstr "Nem található játék az adatbázisban" +#: Filters.py:894 +msgid "From:" +msgstr "" + +#: Filters.py:908 +msgid "To:" +msgstr "" + #: Filters.py:913 msgid " Clear Dates " msgstr "Törlés" -#: Filters.py:940 fpdb.pyw:722 +#: Filters.py:940 fpdb.pyw:723 msgid "Pick a date" msgstr "Válassz napot" -#: Filters.py:946 fpdb.pyw:728 +#: Filters.py:946 fpdb.pyw:729 msgid "Done" msgstr "Kész" @@ -619,15 +634,18 @@ msgid "Time between imports in seconds:" msgstr "Importálások közti idő (mp):" #: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 -msgid " Start _Autoimport " +#, fuzzy +msgid " Start _Auto Import " msgstr " _AutoImport indítása " #: GuiAutoImport.py:135 -msgid "AutoImport Ready." +#, fuzzy +msgid "Auto Import Ready." msgstr "AutoImport kész." #: GuiAutoImport.py:148 -msgid "Please choose the path that you want to auto import" +#, fuzzy +msgid "Please choose the path that you want to Auto Import" msgstr "Válaszd ki a könyvtárat az AutoImporthoz" #: GuiAutoImport.py:171 @@ -635,7 +653,8 @@ msgid " _Auto Import Running " msgstr " _AutoImport fut " #: GuiAutoImport.py:182 -msgid " Stop _Autoimport " +#, fuzzy +msgid " Stop _Auto Import " msgstr " _AutoImport leállítása " #: GuiAutoImport.py:207 @@ -647,7 +666,8 @@ msgstr "" "Globális zárolás OK ... AutoImport elindítva.\n" #: GuiAutoImport.py:209 -msgid " _Stop Autoimport " +#, fuzzy +msgid " _Stop Auto Import " msgstr " _AutoImport leállítása " #: GuiAutoImport.py:225 @@ -663,25 +683,28 @@ msgstr "" "*** GuiAutoImport Hiba a cső nyitásakor: " #: GuiAutoImport.py:249 +#, fuzzy msgid "" "\n" -"auto-import aborted - global lock not available" +"Auto Import aborted - global lock not available" msgstr "" "\n" "AutoImport megszakítva - nem elérhető a globális zárolás" #: GuiAutoImport.py:254 +#, fuzzy msgid "" "\n" -"Stopping autoimport - global lock released." +"Stopping Auto Import - global lock released." msgstr "" "\n" "AutoImport leállítása - globális zárolás feloldva." #: GuiAutoImport.py:256 +#, fuzzy msgid "" "\n" -" * Stop Autoimport: HUD already terminated" +" * Stop Auto Import: HUD already terminated" msgstr "" "\n" " * AutoImport megállítása: A HUD már nem fut" @@ -721,7 +744,8 @@ msgid "Import Complete" msgstr "Importálás kész" #: GuiBulkImport.py:139 -msgid "bulk-import aborted - global lock not available" +#, fuzzy +msgid "bulk import aborted - global lock not available" msgstr "importálás megszakítva - nem elérhető a globális zárolás" #: GuiBulkImport.py:165 @@ -772,7 +796,7 @@ msgstr "Terem:" msgid "Drop HudCache:" msgstr "HUD gyorstár eldobása:" -#: GuiBulkImport.py:297 fpdb.pyw:831 +#: GuiBulkImport.py:297 fpdb.pyw:814 msgid "_Bulk Import" msgstr "_Importálás" @@ -854,112 +878,185 @@ 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" +#: GuiDatabase.py:117 +msgid "_Add" +msgstr "" + +#: GuiDatabase.py:121 +#, fuzzy +msgid "_Refresh" msgstr "Frissítés" -#: GuiDatabase.py:111 +#: GuiDatabase.py:125 msgid "Type" msgstr "Típus" -#: GuiDatabase.py:112 +#: GuiDatabase.py:126 msgid "Name" msgstr "Név" -#: GuiDatabase.py:113 +#: GuiDatabase.py:127 msgid "Description" msgstr "Leírás" -#: GuiDatabase.py:114 GuiImapFetcher.py:119 +#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 msgid "Username" msgstr "Felhasználónév" -#: GuiDatabase.py:115 GuiImapFetcher.py:119 +#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 msgid "Password" msgstr "Jelszó" -#: GuiDatabase.py:116 +#: GuiDatabase.py:130 msgid "Host" msgstr "Kiszolgáló" -#: GuiDatabase.py:117 -msgid "Default" -msgstr "Alapértelmezett" +#: GuiDatabase.py:131 +msgid "Open" +msgstr "" -#: GuiDatabase.py:118 +#: GuiDatabase.py:132 msgid "Status" msgstr "Állapot" -#: GuiDatabase.py:251 +#: GuiDatabase.py:266 msgid "Testing database connections ... " msgstr "Adatbázis-kapcsolatok ellenőrzése ..." -#: GuiDatabase.py:281 -msgid "loaddbs: trying to connect to: %s/%s, %s, %s/%s" +#: GuiDatabase.py:293 +msgid "finished." +msgstr "befejezve." + +#: GuiDatabase.py:303 +#, fuzzy +msgid "loadDbs error: " +msgstr "loaddbs hiba: " + +#: GuiDatabase.py:324 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 +msgid "***sortCols error: " +msgstr "***sortCols hiba: " + +#: GuiDatabase.py:326 +msgid "sortCols error: " +msgstr "sortCols hiba: " + +#: GuiDatabase.py:371 +#, fuzzy +msgid "testDB: trying to connect to: %s/%s, %s, %s/%s" msgstr "loaddbs: kapcolódási próbálkozás: %s/%s, %s, %s/%s" -#: GuiDatabase.py:284 +#: GuiDatabase.py:374 msgid " connected ok" msgstr " kapcsolódás OK" -#: GuiDatabase.py:291 +#: GuiDatabase.py:381 msgid " not connected but no exception" msgstr " nem kapcsolódott, de nem volt hibaüzenet" -#: GuiDatabase.py:293 fpdb.pyw:904 +#: GuiDatabase.py:383 fpdb.pyw:886 msgid "" "MySQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" "MySQL szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " "jogosultságaid?" -#: GuiDatabase.py:297 -msgid "" -"MySQL client reports: 2002 or 2003 error. Unable to connect - Please check " -"that the MySQL service has been started" +#: GuiDatabase.py:387 fpdb.pyw:888 +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 " -"- Kérlek ellenőrizd, hogy a MySQL szolgáltatás el van-e indítva" +"- " -#: GuiDatabase.py:301 fpdb.pyw:909 +#: GuiDatabase.py:388 fpdb.pyw:889 +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" + +#: GuiDatabase.py:392 fpdb.pyw:891 +#, fuzzy msgid "" -"Postgres Server reports: Access denied. Are your permissions set correctly?" +"PostgreSQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" "Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " "jogosultságaid?" -#: GuiDatabase.py:304 -msgid "" -"Postgres client reports: Unable to connect - Please check that the Postgres " -"service has been started" +#: GuiDatabase.py:395 fpdb.pyw:893 +#, fuzzy +msgid "PostgreSQL client reports: Unable to connect - " +msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " + +#: GuiDatabase.py:396 fpdb.pyw:894 +#, fuzzy +msgid "Please check that the PostgreSQL service has been started" +msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" + +#: GuiDatabase.py:406 +#, fuzzy +msgid "db connection to " +msgstr "folytató nyitás %" + +#: GuiDatabase.py:434 +#, fuzzy +msgid "DB Type" +msgstr "Típus" + +#: GuiDatabase.py:444 +#, fuzzy +msgid "DB Name" +msgstr "Név" + +#: GuiDatabase.py:452 +#, fuzzy +msgid "DB Description" +msgstr "Leírás" + +#: GuiDatabase.py:473 +#, fuzzy +msgid "Host Computer" +msgstr "Importálás kész" + +#: GuiDatabase.py:528 +#, fuzzy +msgid "Database created" +msgstr "A_datbázis" + +#: GuiDatabase.py:531 +#, fuzzy +msgid "Database creation failed" +msgstr " index létrehozása nem sikerült: " + +#: GuiDatabase.py:550 +msgid "No Database Name given" msgstr "" -"Postgres kliens jelenti: Nem sikerült a kapcsolódás. .Kérlek ellenőrizd, " -"hogy a Postgres szolgáltatás el van-e indítva" -#: GuiDatabase.py:321 -msgid "finished." -msgstr "befejezve." +#: GuiDatabase.py:553 +msgid "No Database Description given" +msgstr "" -#: GuiDatabase.py:331 -msgid "loaddbs error: " -msgstr "loaddbs hiba: " +#: GuiDatabase.py:556 +#, fuzzy +msgid "No Username given" +msgstr "Felhasználónév" -#: GuiDatabase.py:352 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 -msgid "***sortCols error: " -msgstr "***sortCols hiba: " +#: GuiDatabase.py:559 +#, fuzzy +msgid "No Password given" +msgstr "Jelszó" -#: GuiDatabase.py:354 -msgid "sortCols error: " -msgstr "sortCols hiba: " +#: GuiDatabase.py:562 +msgid "No Host given" +msgstr "" -#: GuiDatabase.py:424 GuiLogView.py:213 +#: GuiDatabase.py:589 +msgid "Do you want to try again?" +msgstr "" + +#: GuiDatabase.py:702 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "Napló böngésző (teszt)" -#: GuiDatabase.py:429 GuiLogView.py:218 +#: GuiDatabase.py:707 GuiLogView.py:218 msgid "Log Viewer" msgstr "Napló böngésző" @@ -1115,6 +1212,10 @@ msgstr "Nem" msgid "Log Messages" msgstr "Naplóbejegyzések" +#: GuiLogView.py:96 +msgid "Refresh" +msgstr "Frissítés" + #: GuiPositionalStats.py:146 msgid "DEBUG: activesite set to %s" msgstr "DEBUG: aktív terem: %s" @@ -1248,7 +1349,7 @@ msgstr "HUD_main indítás: %s adatbázis használata" 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:1120 msgid "" "\n" "Any major error will be reported there _only_.\n" @@ -1306,11 +1407,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" @@ -1320,260 +1421,261 @@ msgstr "HUD_main indítás\n" msgid "Using db name = %s\n" msgstr "%s adatbázis használata\n" -#: Hand.py:150 +#: Hand.py:151 msgid "BB" msgstr "BB" -#: Hand.py:151 +#: Hand.py:152 msgid "SB" msgstr "SB" -#: Hand.py:152 +#: Hand.py:153 msgid "BUTTONPOS" msgstr "GOMB" -#: Hand.py:153 +#: Hand.py:154 msgid "HAND NO." msgstr "LEOSZTÁS" -#: Hand.py:154 TourneySummary.py:134 +#: Hand.py:155 TourneySummary.py:134 msgid "SITE" msgstr "TEREM" -#: Hand.py:155 +#: Hand.py:156 msgid "TABLE NAME" msgstr "ASZTAL NEVE" -#: Hand.py:156 TourneySummary.py:144 +#: Hand.py:157 TourneySummary.py:144 msgid "HERO" msgstr "JÁTÉKOS" -#: Hand.py:157 TourneySummary.py:145 +#: Hand.py:158 TourneySummary.py:145 msgid "MAXSEATS" msgstr "MAX. SZÉKEK" -#: Hand.py:158 +#: Hand.py:159 msgid "LEVEL" msgstr "SZINT" -#: Hand.py:159 TourneySummary.py:150 +#: Hand.py:160 TourneySummary.py:150 msgid "MIXED" msgstr "KEVERT" -#: Hand.py:160 +#: Hand.py:161 msgid "LASTBET" msgstr "UTOLSÓ TÉT" -#: Hand.py:161 +#: Hand.py:162 msgid "ACTION STREETS" msgstr "AKCIÓ UTCÁK" -#: Hand.py:162 +#: Hand.py:163 msgid "STREETS" msgstr "UTCÁK" -#: Hand.py:163 +#: Hand.py:164 msgid "ALL STREETS" msgstr "MINDEN UTCA" -#: Hand.py:164 +#: Hand.py:165 msgid "COMMUNITY STREETS" msgstr "KÖZÖS UTCÁK" -#: Hand.py:165 +#: Hand.py:166 msgid "HOLE STREETS" msgstr "HOLE UTCÁK" -#: Hand.py:166 +#: Hand.py:167 msgid "COUNTED SEATS" msgstr "SZÁMOLT SZÉKEK" -#: Hand.py:167 +#: Hand.py:168 msgid "DEALT" msgstr "OSZTOTT" -#: Hand.py:168 +#: Hand.py:169 msgid "SHOWN" msgstr "MUTATOTT" -#: Hand.py:169 +#: Hand.py:170 msgid "MUCKED" msgstr "NEM MUTATOTT" -#: Hand.py:170 +#: Hand.py:171 msgid "TOTAL POT" msgstr "TELJES KASSZA" -#: Hand.py:171 +#: Hand.py:172 msgid "TOTAL COLLECTED" msgstr "TELJES BEGYŰJTÖTT" -#: Hand.py:172 +#: Hand.py:173 msgid "RAKE" msgstr "JUTALÉK" -#: Hand.py:173 TourneySummary.py:135 +#: Hand.py:174 TourneySummary.py:135 msgid "START TIME" msgstr "KEZDÉSI IDŐ" -#: Hand.py:174 +#: Hand.py:175 msgid "TOURNAMENT NO" msgstr "VERSENY SZÁM" -#: Hand.py:175 TourneySummary.py:140 +#: Hand.py:176 TourneySummary.py:140 msgid "TOURNEY ID" msgstr "VERSENYAZONOSÍTÓ" -#: Hand.py:176 TourneySummary.py:139 +#: Hand.py:177 TourneySummary.py:139 msgid "TOURNEY TYPE ID" msgstr "VERSENYTÍPUS AZONOSÍTÓ" -#: Hand.py:177 TourneySummary.py:141 +#: Hand.py:178 TourneySummary.py:141 msgid "BUYIN" msgstr "NEVEZÉSI DÍJ" -#: Hand.py:178 +#: Hand.py:179 msgid "BUYIN CURRENCY" msgstr "NEVEZÉSI DÍJ PÉNZNEME" -#: Hand.py:179 +#: Hand.py:180 msgid "BUYIN CHIPS" msgstr "KEZDŐ ZSETONOK" -#: Hand.py:180 TourneySummary.py:142 +#: Hand.py:181 TourneySummary.py:142 msgid "FEE" msgstr "DÍJ" -#: Hand.py:181 +#: Hand.py:182 msgid "IS REBUY" msgstr "REBUY" -#: Hand.py:182 +#: Hand.py:183 msgid "IS ADDON" msgstr "ADDON" -#: Hand.py:183 +#: Hand.py:184 msgid "IS KO" msgstr "KIÜTÉSES" -#: Hand.py:184 TourneySummary.py:166 +#: Hand.py:185 TourneySummary.py:166 msgid "KO BOUNTY" msgstr "FEJVADÁSZ" -#: Hand.py:185 +#: Hand.py:186 msgid "IS MATRIX" msgstr "MÁTRIX" -#: Hand.py:186 +#: Hand.py:187 msgid "IS SHOOTOUT" msgstr "SHOOTOUT" -#: Hand.py:187 TourneySummary.py:167 +#: Hand.py:188 TourneySummary.py:167 msgid "TOURNEY COMMENT" msgstr "VERSENY MEGJEGYZÉS" -#: Hand.py:190 TourneySummary.py:179 +#: Hand.py:191 TourneySummary.py:179 msgid "PLAYERS" msgstr "JÁTÉKOSOK" -#: Hand.py:191 +#: Hand.py:192 msgid "STACKS" msgstr "LETÉTEK" -#: Hand.py:192 +#: Hand.py:193 msgid "POSTED" msgstr "BETETT" -#: Hand.py:193 +#: Hand.py:194 msgid "POT" msgstr "KASSZA" -#: Hand.py:194 +#: Hand.py:195 msgid "SEATING" msgstr "ÜLTETÉS" -#: Hand.py:195 +#: Hand.py:196 msgid "GAMETYPE" msgstr "JÁTÉKTÍPUS" -#: Hand.py:196 +#: Hand.py:197 msgid "ACTION" msgstr "AKCIÓ" -#: Hand.py:197 +#: Hand.py:198 msgid "COLLECTEES" msgstr "BEGYŰJTŐK" -#: Hand.py:198 +#: Hand.py:199 msgid "BETS" msgstr "TÉTEK" -#: Hand.py:199 +#: Hand.py:200 msgid "BOARD" msgstr "ASZTAL" -#: Hand.py:200 +#: Hand.py:201 msgid "DISCARDS" msgstr "DOBÁSOK" -#: Hand.py:201 +#: Hand.py:202 msgid "HOLECARDS" msgstr "KEZDŐKÉZ" -#: Hand.py:202 +#: Hand.py:203 msgid "TOURNEYS PLAYER IDS" msgstr "VERSENYJÁTÉKOS AZONOSÍTÓK" -#: Hand.py:225 Hand.py:1242 +#: Hand.py:226 Hand.py:1243 msgid "[ERROR] Tried to add holecards for unknown player: %s" msgstr "[ERROR] Kezdőkéz hozzáadása ismeretlen játékoshoz: %s" -#: Hand.py:278 +#: Hand.py:279 msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "Hand.insert(): %s leosztásazonosító duplikáció" -#: Hand.py:317 -msgid "markstreets didn't match - Assuming hand cancelled" +#: Hand.py:318 +#, fuzzy +msgid "markstreets didn't match - Assuming hand %s was cancelled" msgstr "markStreets nem egyezik - Leosztás érvénytelenítését feltételezem" -#: Hand.py:319 +#: Hand.py:320 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" msgstr "" "FpdbParseError: markStreets hívása meghiúsult: az első 100 karakter: '%s'" -#: Hand.py:323 +#: Hand.py:324 msgid "DEBUG: checkPlayerExists %s fail on hand number %s" msgstr "DEBUG: checkPlayerExists %s hiba a következő leosztásban: %s" -#: Hand.py:324 +#: Hand.py:325 msgid "checkPlayerExists: '%s fail on hand number %s" msgstr "checkPlayerExists: '%s hiba a következő leosztásban: %s" -#: Hand.py:405 +#: Hand.py:406 msgid "%s %s calls %s" msgstr "%s utcán %s játékos ennyit megad: %s" -#: Hand.py:475 +#: Hand.py:476 msgid "%s %s raise %s" msgstr "%s utcán %s játékos eddig emel: %s" -#: Hand.py:486 +#: Hand.py:487 msgid "%s %s bets %s" msgstr "%s utcán %s játékos ennyit hív: %s" -#: Hand.py:505 +#: Hand.py:506 msgid "%s %s folds" msgstr "%s utcán %s játékos dob" -#: Hand.py:514 +#: Hand.py:515 msgid "%s %s checks" msgstr "%s utcán %s játékos passzol" -#: Hand.py:534 +#: Hand.py:535 msgid "addShownCards %s hole=%s all=%s" msgstr "addShownCards %s játékos kézben=%s mind=%s" -#: Hand.py:645 +#: Hand.py:646 msgid "" "*** ERROR - HAND: calling writeGameLine with unexpected STARTTIME value, " "expecting datetime.date object, received:" @@ -1581,18 +1683,18 @@ msgstr "" "*** ERROR - HAND: writeGameLine hívása nem várt STARTTIME értékkel, datetime." "date objektumot vár, ezt kapta:" -#: Hand.py:646 +#: Hand.py:647 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:647 +#: Hand.py:648 msgid "*** Game String:" msgstr "*** Játék sztring:" -#: Hand.py:701 +#: Hand.py:702 msgid "" "*** Parse error reading blinds (check compilePlayerRegexs as a likely " "culprit)" @@ -1600,75 +1702,75 @@ msgstr "" "*** Feldolgozási hiba a vakok beolvasása közben (valószínűleg a " "compilePlayerRegex-eket kell ellenőrizni)" -#: Hand.py:728 +#: Hand.py:729 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:730 +#: Hand.py:731 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:1111 +#: Hand.py:1112 msgid "*** DEALING HANDS ***" msgstr "*** OSZTÁS ***" -#: Hand.py:1116 +#: Hand.py:1117 msgid "Dealt to %s: [%s]" msgstr "%s kapja: [%s]" -#: Hand.py:1121 +#: Hand.py:1122 msgid "*** FIRST DRAW ***" msgstr "*** ELSŐ CSERE ***" -#: Hand.py:1131 +#: Hand.py:1132 msgid "*** SECOND DRAW ***" msgstr "*** MÁSODIK CSERE ***" -#: Hand.py:1141 +#: Hand.py:1142 msgid "*** THIRD DRAW ***" msgstr "*** HARMADIK CSERE ***" -#: Hand.py:1151 Hand.py:1369 +#: Hand.py:1152 Hand.py:1370 msgid "*** SHOW DOWN ***" msgstr "*** MUTATÁS ***" -#: Hand.py:1166 Hand.py:1384 +#: Hand.py:1167 Hand.py:1385 msgid "*** SUMMARY ***" msgstr "*** ÖSSZEGZÉS ***" -#: Hand.py:1251 +#: Hand.py:1252 msgid "%s %s completes %s" msgstr "%s utcán %s játékos kiegészít erre: %s" -#: Hand.py:1269 +#: Hand.py:1270 msgid "Bringin: %s, %s" msgstr "Beülő: %s, %s" -#: Hand.py:1309 +#: Hand.py:1310 msgid "*** 3RD STREET ***" msgstr "*** HARMADIK UTCA ***" -#: Hand.py:1323 +#: Hand.py:1324 msgid "*** 4TH STREET ***" msgstr "*** NEGYEDIK UTCA ***" -#: Hand.py:1335 +#: Hand.py:1336 msgid "*** 5TH STREET ***" msgstr "*** ÖTÖDIK UTCA ***" -#: Hand.py:1347 +#: Hand.py:1348 msgid "*** 6TH STREET ***" msgstr "*** HATODIK UTCA ***" -#: Hand.py:1357 +#: Hand.py:1358 msgid "*** RIVER ***" msgstr "*** RIVER ***" -#: Hand.py:1449 +#: Hand.py:1450 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" @@ -1676,15 +1778,15 @@ 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:1450 +#: Hand.py:1451 msgid "join_holcards: holecards(%s): %s" msgstr "join_holcards: holecards(%s): %s" -#: Hand.py:1533 +#: Hand.py:1534 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:1535 +#: Hand.py:1536 msgid "FpdbError in printing Hand object" msgstr "FpdbError egy Hand objektum kiírása közben" @@ -1812,99 +1914,99 @@ msgstr "" "Eddig %d leosztást játszottál\n" "a %s teremben." -#: Hud.py:149 +#: Hud.py:148 msgid "Kill This HUD" msgstr "Ezen HUD kilövése" -#: Hud.py:154 +#: Hud.py:153 msgid "Save HUD Layout" msgstr "HUD elrendezés mentése" -#: Hud.py:158 +#: Hud.py:157 msgid "Reposition StatWindows" msgstr "Újrapozícionálás" -#: Hud.py:162 +#: Hud.py:161 msgid "Show Player Stats" msgstr "Játékos statisztikák megjelenítése" -#: Hud.py:167 Hud.py:236 +#: Hud.py:166 Hud.py:235 msgid "For This Blind Level Only" msgstr "Csak erre a vakszintre" -#: Hud.py:172 Hud.py:241 +#: Hud.py:171 Hud.py:240 msgid "For Multiple Blind Levels:" msgstr "Több vakszintre:" -#: Hud.py:175 Hud.py:244 +#: Hud.py:174 Hud.py:243 msgid " 0.5 to 2.0 x Current Blinds" msgstr " A jelenlegi 0.5-2-szerese" -#: Hud.py:180 Hud.py:249 +#: Hud.py:179 Hud.py:248 msgid " 0.33 to 3.0 x Current Blinds" msgstr " A jelenlegi 0.33-3-szorosa" -#: Hud.py:185 Hud.py:254 +#: Hud.py:184 Hud.py:253 msgid " 0.1 to 10 x Current Blinds" msgstr " A jelenlegi 0.1-10-szerese" -#: Hud.py:190 Hud.py:259 +#: Hud.py:189 Hud.py:258 msgid " All Levels" msgstr " Minden limit" -#: Hud.py:195 Hud.py:264 +#: Hud.py:194 Hud.py:263 msgid "For #Seats:" msgstr "Ennyi szék számára:" -#: Hud.py:198 Hud.py:267 +#: Hud.py:197 Hud.py:266 msgid " Any Number" msgstr " Bármennyi" -#: Hud.py:203 Hud.py:272 +#: Hud.py:202 Hud.py:271 msgid " Custom" msgstr " Egyedi" -#: Hud.py:208 Hud.py:277 +#: Hud.py:207 Hud.py:276 msgid " Exact" msgstr " Csak ez" -#: Hud.py:213 Hud.py:282 +#: Hud.py:212 Hud.py:281 msgid "Since:" msgstr "Szűkítés:" -#: Hud.py:216 Hud.py:285 +#: Hud.py:215 Hud.py:284 msgid " All Time" msgstr " Mind" -#: Hud.py:221 Hud.py:290 +#: Hud.py:220 Hud.py:289 msgid " Session" msgstr " Session" -#: Hud.py:226 Hud.py:295 +#: Hud.py:225 Hud.py:294 msgid " %s Days" msgstr " Az elmúlt %s nap" -#: Hud.py:231 +#: Hud.py:230 msgid "Show Opponent Stats" msgstr "Ellenfél statisztikáinak mutatása" -#: Hud.py:353 +#: Hud.py:352 msgid "Debug StatWindows" msgstr "StatWindows debugolása" -#: Hud.py:357 +#: Hud.py:356 msgid "Set max seats" msgstr "Max székek beállítása" -#: Hud.py:543 +#: Hud.py:542 msgid "Updating config file" msgstr "Konfigurációs fájl frissítése" -#: Hud.py:552 +#: Hud.py:551 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:566 +#: Hud.py:565 msgid "" "exception in Hud.adj_seats\n" "\n" @@ -1912,15 +2014,15 @@ msgstr "" "hiba a Hud.adj_seats helyen\n" "\n" -#: Hud.py:567 +#: Hud.py:566 msgid "error is %s" msgstr "A hiba a következő: %s" -#: Hud.py:574 +#: Hud.py:573 msgid "Error finding actual seat.\n" msgstr "Hiba az aktuális szék keresése közben.\n" -#: Hud.py:590 +#: Hud.py:589 msgid "" "------------------------------------------------------------\n" "Creating hud from hand %s\n" @@ -1928,7 +2030,7 @@ msgstr "" "------------------------------------------------------------\n" "HUD készítése ebből a leosztásból: %s\n" -#: Hud.py:639 +#: Hud.py:638 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 " @@ -1937,22 +2039,10 @@ 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:640 +#: Hud.py:639 msgid "(btw, the key was %s and statd is %s" msgstr "(ja, a kulcs %s volt a statd pedig %s)" -#: Hud.py:947 -msgid "" -"Fake main window, blah blah, blah\n" -"blah, blah" -msgstr "" -"Kamu főablak, bla bla, bla\n" -"bla, bla" - -#: Hud.py:955 -msgid "Table not found." -msgstr "Az asztal nem található." - #: ImapFetcher.py:54 msgid "response to logging in:" msgstr "válasz a bejelentkezésre:" @@ -1965,36 +2055,38 @@ msgstr "IMAP import befejezve, kapcsolat lezárása" msgid "No Name" msgstr "Nincs név" -#: OnGameToFpdb.py:153 PkrToFpdb.py:144 PokerStarsToFpdb.py:189 +#: OnGameToFpdb.py:178 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 PkrToFpdb.py:145 PkrToFpdb.py:173 +#: OnGameToFpdb.py:179 OnGameToFpdb.py:193 PkrToFpdb.py:145 PkrToFpdb.py:173 #: PokerStarsToFpdb.py:190 PokerStarsToFpdb.py:220 msgid "determineGameType: Raising FpdbParseError" msgstr "determineGameType: FpdbParseError" -#: OnGameToFpdb.py:155 PkrToFpdb.py:146 PokerStarsToFpdb.py:191 +#: OnGameToFpdb.py:180 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'" -#: OnGameToFpdb.py:235 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:320 +#: OnGameToFpdb.py:192 +#, fuzzy +msgid "determineGameType: limit not found in self.limits(%s). hand: '%s'" +msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" + +#: OnGameToFpdb.py:194 +msgid "limit not found in self.limits(%s). hand: '%s'" +msgstr "" + +#: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 msgid "readButton: not found" msgstr "readButton: nem található" -#: OnGameToFpdb.py:250 -msgid "readBlinds starting" -msgstr "readBlinds indítása" - -#: OnGameToFpdb.py:254 -msgid "re_postSB failed, hand=" -msgstr "re_postSB nem sikerült, leosztás=" - -#: OnGameToFpdb.py:257 -msgid "readBlinds in noSB exception" +#: OnGameToFpdb.py:288 +#, fuzzy +msgid "readBlinds in noSB exception - no SB created" msgstr "readBlinds noSB-n belül hiba" -#: OnGameToFpdb.py:265 PokerStarsToFpdb.py:358 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 msgid "reading antes" msgstr "antek olvasása" @@ -2080,167 +2172,155 @@ 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:273 +#: PokerStarsToFpdb.py:274 msgid "failed to detect currency" msgstr "nem sikerült a pénznem meghatározá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" - -#: Stats.py:104 -msgid "Stats.do_stat result = %s" -msgstr "Stats.do_stat eredménye = %s" - -#: Stats.py:113 -msgid "error: %s" -msgstr "hiba: %s" - -#: Stats.py:132 Stats.py:133 +#: Stats.py:122 Stats.py:123 msgid "Total Profit" msgstr "teljes profit" -#: Stats.py:154 Stats.py:161 +#: Stats.py:144 Stats.py:151 msgid "Voluntarily Put In Pot Pre-Flop%" msgstr "önként befizet preflop %" -#: Stats.py:174 Stats.py:182 +#: Stats.py:164 Stats.py:172 msgid "Pre-Flop Raise %" msgstr "preflop emelés" -#: Stats.py:195 Stats.py:203 +#: Stats.py:185 Stats.py:193 msgid "% went to showdown" msgstr "terítésig megy %" -#: Stats.py:216 Stats.py:224 +#: Stats.py:206 Stats.py:214 msgid "% won money at showdown" msgstr "pénzt nyer terítéskor %" -#: Stats.py:237 Stats.py:246 +#: Stats.py:227 Stats.py:236 msgid "profit/100hands" msgstr "profit/100 leosztás" -#: Stats.py:240 +#: Stats.py:230 msgid "exception calcing p/100: 100 * %d / %d" msgstr "hiba a p/100 számítása közben: 100 * %d / %d" -#: Stats.py:259 Stats.py:268 +#: Stats.py:249 Stats.py:258 msgid "big blinds/100 hands" msgstr "nagyvak/100 leosztás" -#: Stats.py:281 Stats.py:290 +#: Stats.py:271 Stats.py:280 msgid "Big Bets/100 hands" msgstr "nagytét/100 leosztás" -#: Stats.py:284 +#: Stats.py:274 msgid "exception calcing BB/100: " msgstr "hiba a BB/100 számítása közben: " -#: Stats.py:304 Stats.py:315 +#: Stats.py:294 Stats.py:303 msgid "Flop Seen %" msgstr "flopot néz %" -#: Stats.py:338 Stats.py:346 +#: Stats.py:326 Stats.py:335 msgid "number hands seen" msgstr "látott leosztások száma" -#: Stats.py:359 Stats.py:367 +#: Stats.py:348 Stats.py:356 msgid "folded flop/4th" msgstr "dobott flopon/4. utcán" -#: Stats.py:380 +#: Stats.py:369 msgid "% steal attempted" msgstr "lopási kísérlet %" -#: Stats.py:395 Stats.py:402 +#: Stats.py:384 Stats.py:391 msgid "% folded SB to steal" msgstr "kisvakból dob lopásra %" -#: Stats.py:414 Stats.py:421 +#: Stats.py:403 Stats.py:410 msgid "% folded BB to steal" msgstr "nagyvakból dob lopásra %" -#: Stats.py:436 Stats.py:443 +#: Stats.py:425 Stats.py:432 msgid "% folded blind to steal" msgstr "dob lopásra %" -#: Stats.py:455 Stats.py:462 +#: Stats.py:444 Stats.py:451 msgid "% 3/4 Bet preflop/3rd" msgstr "3/4-bet preflop/3. utcán %" -#: Stats.py:474 Stats.py:481 +#: Stats.py:463 Stats.py:470 msgid "% won$/saw flop/4th" msgstr "$nyer/flopot/4. utcát néz %" -#: Stats.py:493 Stats.py:500 +#: Stats.py:482 Stats.py:489 msgid "Aggression Freq flop/4th" msgstr "agresszió gyakoriság flopon/4. utcán" -#: Stats.py:512 Stats.py:519 +#: Stats.py:501 Stats.py:508 msgid "Aggression Freq turn/5th" msgstr "agresszió gyakoriság turnön/5. utcán" -#: Stats.py:531 Stats.py:538 +#: Stats.py:520 Stats.py:527 msgid "Aggression Freq river/6th" msgstr "agresszió gyakoriság riveren/6. utcán" -#: Stats.py:550 Stats.py:557 +#: Stats.py:539 Stats.py:546 msgid "Aggression Freq 7th" msgstr "agresszió gyakoriság 7. utcán" -#: Stats.py:576 Stats.py:583 +#: Stats.py:565 Stats.py:572 msgid "Post-Flop Aggression Freq" msgstr "postflop agresszió gyakoriság" -#: Stats.py:604 Stats.py:611 +#: Stats.py:593 Stats.py:600 msgid "Aggression Freq" msgstr "agresszió gyakoriság" -#: Stats.py:630 Stats.py:637 +#: Stats.py:619 Stats.py:626 msgid "Aggression Factor" msgstr "agresszió faktor" -#: Stats.py:654 Stats.py:661 +#: Stats.py:643 Stats.py:650 msgid "% continuation bet " msgstr "folytató nyitás %" -#: Stats.py:673 Stats.py:680 +#: Stats.py:662 Stats.py:669 msgid "% continuation bet flop/4th" msgstr "folytató nyitás flopon/4. utcán %" -#: Stats.py:692 Stats.py:699 +#: Stats.py:681 Stats.py:688 msgid "% continuation bet turn/5th" msgstr "folytató nyitás turnön/5. utcán %" -#: Stats.py:711 Stats.py:718 +#: Stats.py:700 Stats.py:707 msgid "% continuation bet river/6th" msgstr "folytató nyitás riveren/6. utcán %" -#: Stats.py:730 Stats.py:737 +#: Stats.py:719 Stats.py:726 msgid "% continuation bet 7th" msgstr "folytató nyitás 7. utcán %" -#: Stats.py:749 Stats.py:756 +#: Stats.py:738 Stats.py:745 msgid "% fold frequency flop/4th" msgstr "dobási gyakoriság flopon/4. utcán %" -#: Stats.py:768 Stats.py:775 +#: Stats.py:757 Stats.py:764 msgid "% fold frequency turn/5th" msgstr "dobási gyakoriság turnön/5. utcán %" -#: Stats.py:787 Stats.py:794 +#: Stats.py:776 Stats.py:783 msgid "% fold frequency river/6th" msgstr "dobási gyakoriság riveren/6. utcán %" -#: Stats.py:806 Stats.py:813 +#: Stats.py:795 Stats.py:802 msgid "% fold frequency 7th" msgstr "dobási gyakoriság 7. utcán %" -#: Stats.py:833 +#: Stats.py:822 msgid "Example stats, player = %s hand = %s:" msgstr "Példa statisztikák, játékos = %s leosztás = %s:" -#: Stats.py:866 +#: Stats.py:855 msgid "" "\n" "\n" @@ -2250,7 +2330,7 @@ msgstr "" "\n" "Érvényes statisztikák:" -#: Stats.py:867 +#: Stats.py:856 msgid "" "(add _0 to name to display with 0 decimal places, _1 to display with 1, " "etc)\n" @@ -2258,14 +2338,6 @@ msgstr "" "(írj a név után _0-t tizedesjegy nélküli megjelenítéshez, _1-et az egy " "tizedesjegyhez, stb.)\n" -#: Tables.py:234 -msgid "Found unknown table = %s" -msgstr "Ismeretlen asztal = %s" - -#: Tables.py:261 -msgid "attach to window" -msgstr "csatolás ezen ablakhoz: " - #: Tables_Demo.py:72 msgid "Fake HUD Main Window" msgstr "Kamu HUD Főablak" @@ -2691,248 +2763,235 @@ 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:547 -msgid "" -"Please confirm that you want to (re-)create the tables. If there already are " -"tables in the database " +#, fuzzy +msgid "Please confirm that you want to (re-)create the tables." 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 (" +"Kérlek erősítsd meg, hogy valóban újra akarod generálni a HUD gyorstárat." #: fpdb.pyw:548 +#, fuzzy msgid "" -" they will be deleted and you will have to re-import your histories.\n" -"This may take a while." +" If there already are tables in the database %s on %s they will be deleted " +"and you will have to re-import your histories.\n" msgstr "" "), akkor azok törölve lesznek, és újra kell importálnod a " "leosztástörténeteket.\n" "Ja, és ez eltarthat egy darabig:)" -#: fpdb.pyw:573 +#: fpdb.pyw:549 +msgid "This may take a while." +msgstr "" + +#: fpdb.pyw:574 msgid "User cancelled recreating tables" msgstr "A felhasználó megszakította a táblák újra létrehozását" -#: fpdb.pyw:580 +#: fpdb.pyw:581 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:588 +#: fpdb.pyw:589 msgid " Hero's cache starts: " msgstr " Saját gyorstár innentől: " -#: fpdb.pyw:602 +#: fpdb.pyw:603 msgid " Villains' cache starts: " msgstr " Ellenfelek gyorstára innentől: " -#: fpdb.pyw:615 +#: fpdb.pyw:616 msgid " Rebuilding HUD Cache ... " msgstr " HUD gyorstár újraépítése ... " -#: fpdb.pyw:623 +#: fpdb.pyw:624 msgid "User cancelled rebuilding hud cache" msgstr "A felhasználó megszakította a HUD gyorstár újraépítését." -#: fpdb.pyw:635 +#: fpdb.pyw:636 msgid "Confirm rebuilding database indexes" msgstr "Erősítsd meg az adatbázis indexeinek újraépítését" -#: fpdb.pyw:636 +#: fpdb.pyw:637 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:644 +#: fpdb.pyw:645 msgid " Rebuilding Indexes ... " msgstr " Indexek újraépítése ... " -#: fpdb.pyw:651 +#: fpdb.pyw:652 msgid " Cleaning Database ... " msgstr " Adatbázis tisztítása ... " -#: fpdb.pyw:656 +#: fpdb.pyw:657 msgid " Analyzing Database ... " msgstr " Adatbázis elemzése ... " -#: fpdb.pyw:661 +#: fpdb.pyw:662 msgid "User cancelled rebuilding db indexes" msgstr "A felhasználó megszakította az adatbázis indexeinek újraépítését." -#: fpdb.pyw:756 +#: fpdb.pyw:757 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:759 -msgid "Fatal Error - Config File Missing" -msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" - -#: 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:769 -msgid "" -"and edit it according to the install documentation at http://fpdb." -"sourceforge.net" -msgstr "" -"majd szerkeszd a http://fpdb.sourceforge.net címen található telepítési " -"útmutató szerint" - -#: fpdb.pyw:825 +#: fpdb.pyw:808 msgid "_Main" msgstr "Fő_menü" -#: fpdb.pyw:826 fpdb.pyw:853 +#: fpdb.pyw:809 fpdb.pyw:836 msgid "_Quit" msgstr "_Kilépés" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "L" msgstr "L" -#: fpdb.pyw:827 +#: fpdb.pyw:810 msgid "_Load Profile (broken)" msgstr "Profil betö_ltése (hibás)" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "S" msgstr "S" -#: fpdb.pyw:828 +#: fpdb.pyw:811 msgid "_Save Profile (todo)" msgstr "Profil menté_se (todo)" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "F" msgstr "B" -#: fpdb.pyw:829 +#: fpdb.pyw:812 msgid "Pre_ferences" msgstr "_Beállítások" -#: fpdb.pyw:830 +#: fpdb.pyw:813 msgid "_Import" msgstr "_Importálás" -#: fpdb.pyw:831 +#: fpdb.pyw:814 msgid "B" msgstr "I" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "I" msgstr "E" -#: fpdb.pyw:832 +#: fpdb.pyw:815 msgid "_Import through eMail/IMAP" msgstr "_Email import (IMAP)" -#: fpdb.pyw:833 +#: fpdb.pyw:816 msgid "_Viewers" msgstr "_Nézetek" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "A" msgstr "A" -#: fpdb.pyw:834 +#: fpdb.pyw:817 msgid "_Auto Import and HUD" msgstr "_AutoImport és HUD" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "H" msgstr "H" -#: fpdb.pyw:835 +#: fpdb.pyw:818 msgid "_HUD Configurator" msgstr "_HUD beállítása" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "G" msgstr "G" -#: fpdb.pyw:836 +#: fpdb.pyw:819 msgid "_Graphs" msgstr "_Grafikonok" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "P" msgstr "P" -#: fpdb.pyw:837 +#: fpdb.pyw:820 msgid "Ring _Player Stats (tabulated view, not on pgsql)" msgstr "Kész_pénzes statisztikák (táblázat; Postgre-vel nem)" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "T" msgstr "T" -#: fpdb.pyw:838 +#: fpdb.pyw:821 msgid "_Tourney Player Stats (tabulated view, not on pgsql)" msgstr "Versenyjá_tékos statisztikák (táblázat; Postgre-vel nem)" -#: fpdb.pyw:839 +#: fpdb.pyw:822 msgid "Tourney _Viewer" msgstr "_Verseny nézet" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "O" msgstr "O" -#: fpdb.pyw:840 +#: fpdb.pyw:823 msgid "P_ositional Stats (tabulated view, not on sqlite)" msgstr "P_ozíciós statisztikák (táblázat; SQLite-tal nem)" -#: fpdb.pyw:841 fpdb.pyw:1057 +#: fpdb.pyw:824 fpdb.pyw:1039 msgid "Session Stats" msgstr "Session statisztikák" -#: fpdb.pyw:842 +#: fpdb.pyw:825 msgid "_Database" msgstr "A_datbázis" -#: fpdb.pyw:843 +#: fpdb.pyw:826 msgid "_Maintain Databases" msgstr "_Karbantartás" -#: fpdb.pyw:844 +#: fpdb.pyw:827 msgid "Create or Recreate _Tables" msgstr "_Táblák (újra) létrehozása" -#: fpdb.pyw:845 +#: fpdb.pyw:828 msgid "Rebuild HUD Cache" msgstr "HUD gyorstár újraépítése" -#: fpdb.pyw:846 +#: fpdb.pyw:829 msgid "Rebuild DB Indexes" msgstr "Adatbázis indexek újraépítése" -#: fpdb.pyw:847 +#: fpdb.pyw:830 msgid "_Statistics" msgstr "_Statisztikák" -#: fpdb.pyw:848 +#: fpdb.pyw:831 msgid "Dump Database to Textfile (takes ALOT of time)" msgstr "Adatbázis kiírása textfájlba (SOKÁIG tart)" -#: fpdb.pyw:849 +#: fpdb.pyw:832 msgid "_Help" msgstr "_Súgó" -#: fpdb.pyw:850 +#: fpdb.pyw:833 msgid "_Log Messages" msgstr "Nap_lóbejegyzések" -#: fpdb.pyw:851 +#: fpdb.pyw:834 msgid "A_bout, License, Copying" msgstr "_Névjegy, licensz, másolás" -#: fpdb.pyw:869 +#: fpdb.pyw:852 msgid "There is an error in your config file\n" msgstr "Hiba van a konfigurációs fájlodban\n" -#: fpdb.pyw:870 +#: fpdb.pyw:853 msgid "" "\n" "\n" @@ -2942,19 +3001,19 @@ msgstr "" "\n" "A hiba a következő: " -#: fpdb.pyw:871 +#: fpdb.pyw:854 msgid "CONFIG FILE ERROR" msgstr "KONFIGURÁCIÓS FÁJL HIBA" -#: fpdb.pyw:875 +#: fpdb.pyw:858 msgid "Logfile is %s\n" msgstr "A naplófájl: %s\n" -#: fpdb.pyw:877 +#: fpdb.pyw:860 msgid "Config file" msgstr "Konfigurációs fájl" -#: fpdb.pyw:878 +#: fpdb.pyw:861 msgid "" "has been created at:\n" "%s.\n" @@ -2962,50 +3021,28 @@ msgstr "" "létrehozva itt:\n" "%s.\n" -#: 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:880 +#: fpdb.pyw:862 +#, fuzzy msgid "" -"section of the Preferences window (Main menu) before trying to import hands." +"Edit your screen_name and hand history path in the supported_sites 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:902 +#: fpdb.pyw:884 msgid "Connected to SQLite: %s" msgstr "Kapcsolódva az SQLite adatbázishoz: %s" -#: 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: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:911 -msgid "Postgres client reports: Unable to connect - " -msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " - -#: 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:936 +#: fpdb.pyw:918 msgid "Strong Warning - Invalid database version" msgstr "Nyomatékos figyelmeztetés - Érvénytelen adatbázis verzió" -#: fpdb.pyw:938 +#: fpdb.pyw:920 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:942 +#: fpdb.pyw:924 msgid "" "This error is not necessarily fatal but it is strongly recommended that you " "recreate the tables by using the Database menu." @@ -3013,7 +3050,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:946 +#: fpdb.pyw:928 msgid "" "Not doing this will likely lead to misbehaviour including fpdb crashes, " "corrupt data etc." @@ -3022,65 +3059,67 @@ msgstr "" "kiléphet, tönkretehet adatokat, stb." # FIXME: would need a different word ordering in Hungarian -#: fpdb.pyw:959 +#: fpdb.pyw:941 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:969 +#: fpdb.pyw:951 +#, fuzzy msgid "" "\n" -"Global lock taken by" +"Global lock taken by %s" msgstr "" "\n" "Globális zárolást végzett:" -#: fpdb.pyw:972 +#: fpdb.pyw:954 +#, fuzzy msgid "" "\n" -"Failed to get global lock, it is currently held by" +"Failed to get global lock, it is currently held by %s" msgstr "" "\n" "Globális zárolás meghiúsult, jelenleg már zárolta:" -#: fpdb.pyw:982 +#: fpdb.pyw:964 msgid "Quitting normally" msgstr "Normál kilépés" -#: fpdb.pyw:1006 +#: fpdb.pyw:988 msgid "Global lock released.\n" msgstr "Globális zárolás feloldva.\n" -#: fpdb.pyw:1013 +#: fpdb.pyw:995 msgid "Auto Import" msgstr "AutoImport" -#: fpdb.pyw:1020 +#: fpdb.pyw:1002 msgid "Bulk Import" msgstr "Importálás" -#: fpdb.pyw:1026 +#: fpdb.pyw:1008 msgid "eMail Import" msgstr "Email import" -#: fpdb.pyw:1033 +#: fpdb.pyw:1015 msgid "Ring Player Stats" msgstr "Készpénzes statisztikák" -#: fpdb.pyw:1039 +#: fpdb.pyw:1021 msgid "Tourney Player Stats" msgstr "Versenystatisztikák" -#: fpdb.pyw:1045 +#: fpdb.pyw:1027 msgid "Tourney Viewer" msgstr "Verseny nézet" -#: fpdb.pyw:1051 +#: fpdb.pyw:1033 msgid "Positional Stats" msgstr "Pozíciós statisztikák" -#: fpdb.pyw:1061 +#: fpdb.pyw:1043 msgid "" "Fpdb needs translators!\n" "If you speak another language and have a few minutes or more to spare get in " @@ -3138,38 +3177,40 @@ 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 +#: fpdb.pyw:1060 msgid "Help" msgstr "Súgó" -#: fpdb.pyw:1085 +#: fpdb.pyw:1067 msgid "Graphs" msgstr "Grafikonok" -#: fpdb.pyw:1137 +#: fpdb.pyw:1119 +#, fuzzy msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " -"in:\n" +"in: %s" msgstr "" "\n" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " "fájlokba itt:\n" -#: fpdb.pyw:1166 +#: fpdb.pyw:1148 msgid "fpdb starting ..." msgstr "fpdb indítása ..." -#: fpdb.pyw:1223 +#: fpdb.pyw:1205 msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" -#: fpdb.pyw:1242 +#: fpdb.pyw:1224 +#, fuzzy msgid "" -"WARNING: Unable to find output hh directory %s\n" +"WARNING: Unable to find output hand history directory %s\n" "\n" " Press YES to create this directory, or NO to select a new one." msgstr "" @@ -3178,7 +3219,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:1250 +#: fpdb.pyw:1232 msgid "" "WARNING: Unable to create hand output directory. Importing is not likely to " "work until this is fixed." @@ -3207,7 +3248,8 @@ msgstr "" "pénznem még nem támogatott" #: fpdb_import.py:227 -msgid "Attempted to add non-directory: '%s' as an import directory" +#, fuzzy +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:237 @@ -3239,11 +3281,13 @@ msgid "No need to rebuild hudcache." msgstr "Nem szükséges a HUD gyorstár újraépítése." #: fpdb_import.py:313 -msgid "sending finish msg qlen =" +#, fuzzy +msgid "sending finish message queue length =" msgstr "befejező üzenet küldése; qlen =" #: fpdb_import.py:439 fpdb_import.py:441 -msgid "Converting " +#, fuzzy +msgid "Converting %s" msgstr "Konvertálás" #: fpdb_import.py:477 @@ -3321,6 +3365,95 @@ 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 "Fatal Error - Config File Missing" +#~ msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" + +#~ 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:" + +#~ msgid "" +#~ "and edit it according to the install documentation at http://fpdb." +#~ "sourceforge.net" +#~ msgstr "" +#~ "majd szerkeszd a http://fpdb.sourceforge.net címen található telepítési " +#~ "útmutató szerint" + +#~ msgid "" +#~ "Please confirm that you want to (re-)create the tables. If there already " +#~ "are tables in the database " +#~ 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 (" + +#~ msgid "" +#~ "Postgres Server reports: Access denied. Are your permissions set " +#~ "correctly?" +#~ msgstr "" +#~ "Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " +#~ "jogosultságaid?" + +#, fuzzy +#~ msgid "Postgres client reports: Unable to connect - " +#~ msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " + +#, fuzzy +#~ 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" + +#~ msgid "" +#~ "MySQL client reports: 2002 or 2003 error. Unable to connect - Please " +#~ "check that the MySQL service has been started" +#~ 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" + +#~ msgid "" +#~ "Postgres client reports: Unable to connect - Please check that the " +#~ "Postgres service has been started" +#~ msgstr "" +#~ "Postgres kliens jelenti: Nem sikerült a kapcsolódás. .Kérlek ellenőrizd, " +#~ "hogy a Postgres szolgáltatás el van-e indítva" + +#~ msgid "Default" +#~ msgstr "Alapértelmezett" + +#~ msgid "" +#~ "Fake main window, blah blah, blah\n" +#~ "blah, blah" +#~ msgstr "" +#~ "Kamu főablak, bla bla, bla\n" +#~ "bla, bla" + +#~ msgid "Table not found." +#~ msgstr "Az asztal nem található." + +#~ msgid "readBlinds starting" +#~ msgstr "readBlinds indítása" + +#~ msgid "re_postSB failed, hand=" +#~ msgstr "re_postSB nem sikerült, leosztás=" + +#~ msgid "exception getting stat %s for player %s %s" +#~ msgstr "hiba a %s statisztika számításakor %s játékosnál: %s" + +#~ msgid "Stats.do_stat result = %s" +#~ msgstr "Stats.do_stat eredménye = %s" + +#~ msgid "error: %s" +#~ msgstr "hiba: %s" + +#~ msgid "Found unknown table = %s" +#~ msgstr "Ismeretlen asztal = %s" + +#~ msgid "attach to window" +#~ msgstr "csatolás ezen ablakhoz: " + +#~ 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" + #~ msgid "_Set HandHistory Archive Directory" #~ msgstr "Leo_sztásarchívum könyvtára" diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 225a4b034c9de3a5e235109041b0d19043fef288..a73df824a2626bf6477eb908db93d0522a0fa3dc 100644 GIT binary patch delta 11462 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 Vled(?71Fsg`1G%cy~jVO{@<-8{VM Date: Sun, 29 Aug 2010 21:10:57 +0200 Subject: [PATCH 31/48] Revert "Revert "gettextify FulltiltToFpdb.py"" This reverts commit a1f079e4479ed7865720c0adc7e4033625943635. --- pyfpdb/FulltiltToFpdb.py | 44 +++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/pyfpdb/FulltiltToFpdb.py b/pyfpdb/FulltiltToFpdb.py index b235ed4d..f94903c5 100755 --- a/pyfpdb/FulltiltToFpdb.py +++ b/pyfpdb/FulltiltToFpdb.py @@ -18,6 +18,18 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################## +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 + import logging from HandHistoryConverter import * #import TourneySummary @@ -206,7 +218,7 @@ class Fulltilt(HandHistoryConverter): def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if m is None: - logging.info("Didn't match re_HandInfo") + logging.info(_("Didn't match re_HandInfo")) logging.info(hand.handText) raise FpdbParseError("No match in readHandInfo.") hand.handid = m.group('HID') @@ -336,7 +348,7 @@ class Fulltilt(HandHistoryConverter): hand.addBlind(a.group('PNAME'), 'small & big blinds', a.group('SBBB')) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -346,10 +358,10 @@ class Fulltilt(HandHistoryConverter): def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug(_("Player bringing in: %s for %s") %(m.group('PNAME'), m.group('BRINGIN'))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: - logging.warning("No bringin found, handid =%s" % hand.handid) + logging.warning(_("No bringin found, handid =%s") % hand.handid) def readButton(self, hand): hand.buttonpos = int(self.re_Button.search(hand.handText).group('BUTTON')) @@ -406,7 +418,7 @@ class Fulltilt(HandHistoryConverter): elif action.group('ATYPE') == ' checks': hand.addCheck( street, action.group('PNAME')) else: - print "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),) + print _("FullTilt: DEBUG: unimplemented readAction: '%s' '%s'") %(action.group('PNAME'),action.group('ATYPE'),) def readShowdownActions(self, hand): @@ -482,7 +494,7 @@ class Fulltilt(HandHistoryConverter): m = self.re_TourneyInfo.search(tourneyText) if not m: - log.info( "determineTourneyType : Parsing NOK" ) + log.info(_("determineTourneyType : Parsing NOK")) return False mg = m.groupdict() #print mg @@ -540,7 +552,7 @@ class Fulltilt(HandHistoryConverter): if mg['TOURNO'] is not None: tourney.tourNo = mg['TOURNO'] else: - log.info( "Unable to get a valid Tournament ID -- File rejected" ) + log.info(_("Unable to get a valid Tournament ID -- File rejected")) return False if tourney.isMatrix: if mg['MATCHNO'] is not None: @@ -571,18 +583,18 @@ class Fulltilt(HandHistoryConverter): tourney.buyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) != tourney.buyin: - log.error( "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) + log.error(_("Conflict between buyins read in topline (%s) and in BuyIn field (%s)") % (tourney.buyin, 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN']))) ) tourney.subTourneyBuyin = 100*Decimal(re.sub(u',', u'', "%s" % mg['BUYIN'])) if mg['FEE'] is not None: if tourney.fee is None: tourney.fee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) else : if 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) != tourney.fee: - log.error( "Conflict between fees read in topline (%s) and in BuyIn field (%s)" % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) + log.error(_("Conflict between fees read in topline (%s) and in BuyIn field (%s)") % (tourney.fee, 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE']))) ) tourney.subTourneyFee = 100*Decimal(re.sub(u',', u'', "%s" % mg['FEE'])) if tourney.buyin is None: - log.info( "Unable to affect a buyin to this tournament : assume it's a freeroll" ) + log.info(_("Unable to affect a buyin to this tournament : assume it's a freeroll")) tourney.buyin = 0 tourney.fee = 0 else: @@ -683,7 +695,7 @@ class Fulltilt(HandHistoryConverter): tourney.addPlayer(rank, a.group('PNAME'), winnings, "USD", 0, 0, 0) #TODO: make it store actual winnings currency else: - print "FullTilt: Player finishing stats unreadable : %s" % a + print (_("FullTilt: Player finishing stats unreadable : %s") % a) # Find Hero n = self.re_TourneyHeroFinishingP.search(playersText) @@ -692,17 +704,17 @@ class Fulltilt(HandHistoryConverter): tourney.hero = heroName # Is this really useful ? if heroName not in tourney.ranks: - print "FullTilt:", heroName, "not found in tourney.ranks ..." + print (_("FullTilt: %s not found in tourney.ranks ...") % heroName) elif (tourney.ranks[heroName] != Decimal(n.group('HERO_FINISHING_POS'))): - print "FullTilt: Bad parsing : finish position incoherent : %s / %s" % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS')) + print (_("FullTilt: Bad parsing : finish position incoherent : %s / %s") % (tourney.ranks[heroName], n.group('HERO_FINISHING_POS'))) return True if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="regression-test-files/fulltilt/razz/FT20090223 Danville - $0.50-$1 Ante $0.10 - Limit Razz.txt") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 21c1e3340520e16bf0e2890fa212f2c050a7b1ec Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:17:58 +0200 Subject: [PATCH 32/48] l10n: missed gettextifying a string in betfairtofpdb --- pyfpdb/BetfairToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 07ee2612..5ee3823f 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -127,7 +127,7 @@ class Betfair(HandHistoryConverter): #Shouldn't really dip into the Hand object, but i've no idea how to tell the length of iter m if len(hand.players) < 2: - logging.info("readPlayerStacks: Less than 2 players found in a hand") + logging.info(_("readPlayerStacks: Less than 2 players found in a hand")) def markStreets(self, hand): m = re.search(r"\*\* Dealing down cards \*\*(?P.+(?=\*\* Dealing Flop \*\*)|.+)" From 772f124a295c34a0d2663a8d0392bbf0e711967f Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:22:34 +0200 Subject: [PATCH 33/48] l10n: gettextify everleaftofpdb --- pyfpdb/EverleafToFpdb.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index 8bff1cdd..fdded3f6 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -22,6 +22,18 @@ import sys import logging 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 for converting Everleaf HH format. class Everleaf(HandHistoryConverter): @@ -133,7 +145,7 @@ or None if we fail to get the info """ def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if(m == None): - logging.info("Didn't match re_HandInfo") + logging.info(_("Didn't match re_HandInfo")) logging.info(hand.handText) return None logging.debug("HID %s, Table %s" % (m.group('HID'), m.group('TABLE'))) @@ -202,7 +214,7 @@ or None if we fail to get the info """ hand.setCommunityCards(street=street, cards=cards) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -214,14 +226,14 @@ or None if we fail to get the info """ logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: - logging.warning("No bringin found.") + logging.warning(_("No bringin found.")) def readBlinds(self, hand): m = self.re_PostSB.search(hand.handText) if m is not None: hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) else: - logging.debug("No small blind") + logging.debug(_("No small blind")) hand.addBlind(None, None, None) for a in self.re_PostBB.finditer(hand.handText): hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) @@ -249,7 +261,7 @@ or None if we fail to get the info """ def readStudPlayerCards(self, hand, street): # lol. see Plymouth.txt - logging.warning("Everleaf readStudPlayerCards is only a stub.") + logging.warning(_("Everleaf readStudPlayerCards is only a stub.")) #~ if street in ('THIRD', 'FOURTH', 'FIFTH', 'SIXTH'): #~ hand.addPlayerCards(player = player.group('PNAME'), street = street, closed = [], open = []) @@ -272,7 +284,7 @@ or None if we fail to get the info """ elif action.group('ATYPE') == ' complete to': hand.addComplete( street, action.group('PNAME'), action.group('BET')) else: - logging.debug("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),)) + logging.debug(_("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),))) def readShowdownActions(self, hand): @@ -310,9 +322,9 @@ or None if we fail to get the info """ if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="-") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="-") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 4cae54a08644055339a7ff5bf1d085cc21fadfcf Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:22:46 +0200 Subject: [PATCH 34/48] l10n: another missed gettextify in betfairtofpdb --- pyfpdb/BetfairToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/BetfairToFpdb.py b/pyfpdb/BetfairToFpdb.py index 5ee3823f..ab870a27 100755 --- a/pyfpdb/BetfairToFpdb.py +++ b/pyfpdb/BetfairToFpdb.py @@ -164,7 +164,7 @@ class Betfair(HandHistoryConverter): def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug(_("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN')))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: logging.warning(_("No bringin found")) From 62fb2f91867edf1b901d11d4b5893ac0cb546e69 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:24:28 +0200 Subject: [PATCH 35/48] l10n: missed a gettextify in everleaftofpdb --- pyfpdb/EverleafToFpdb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/EverleafToFpdb.py b/pyfpdb/EverleafToFpdb.py index fdded3f6..1b27c555 100755 --- a/pyfpdb/EverleafToFpdb.py +++ b/pyfpdb/EverleafToFpdb.py @@ -293,7 +293,7 @@ or None if we fail to get the info """ for shows in self.re_ShowdownAction.finditer(hand.handText): cards = shows.group('CARDS') cards = cards.split(', ') - logging.debug("readShowdownActions %s %s" %(cards, shows.group('PNAME'))) + logging.debug(_("readShowdownActions %s %s" %(cards, shows.group('PNAME')))) hand.addShownCards(cards, shows.group('PNAME')) From 3c645b0e431d2781eb7314856fe3a61a268ec548 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:29:18 +0200 Subject: [PATCH 36/48] l10n: gettextify carbontofpdb --- pyfpdb/CarbonToFpdb.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyfpdb/CarbonToFpdb.py b/pyfpdb/CarbonToFpdb.py index 9239ab12..49523ba6 100644 --- a/pyfpdb/CarbonToFpdb.py +++ b/pyfpdb/CarbonToFpdb.py @@ -148,7 +148,7 @@ or None if we fail to get the info """ def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if m is None: - logging.info("Didn't match re_HandInfo") + logging.info(_("Didn't match re_HandInfo")) logging.info(hand.handText) return None logging.debug("HID %s-%s, Table %s" % (m.group('HID1'), @@ -254,8 +254,8 @@ or None if we fail to get the info """ elif action.group('ATYPE') == 'ALL_IN': hand.addAllIn(street, player, action.group('BET')) else: - logging.debug("Unimplemented readAction: %s %s" - % (action.group('PSEAT'),action.group('ATYPE'),)) + logging.debug(_("Unimplemented readAction: %s %s" + % (action.group('PSEAT'),action.group('ATYPE'),))) def readShowdownActions(self, hand): for shows in self.re_ShowdownAction.finditer(hand.handText): @@ -285,9 +285,9 @@ or None if we fail to get the info """ if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="-") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="-") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", action="store_const", const=logging.INFO, dest="verbosity") parser.add_option("--vv", action="store_const", const=logging.DEBUG, dest="verbosity") From 2eb3d18b86409677512b62c612800b79149c7da9 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:31:34 +0200 Subject: [PATCH 37/48] l10n: gettextify AbsoluteToFpdb --- pyfpdb/AbsoluteToFpdb.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pyfpdb/AbsoluteToFpdb.py b/pyfpdb/AbsoluteToFpdb.py index 31e21764..7cef8c68 100755 --- a/pyfpdb/AbsoluteToFpdb.py +++ b/pyfpdb/AbsoluteToFpdb.py @@ -164,7 +164,7 @@ class Absolute(HandHistoryConverter): def readHandInfo(self, hand): m = self.re_HandInfo.search(hand.handText) if(m == None): - logging.info("Didn't match re_HandInfo") + logging.info(_("Didn't match re_HandInfo")) logging.info(hand.handText) return None logging.debug("HID %s, Table %s" % (m.group('HID'), m.group('TABLE'))) @@ -221,7 +221,7 @@ class Absolute(HandHistoryConverter): hand.setCommunityCards(street=street, cards=cards) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -230,17 +230,17 @@ class Absolute(HandHistoryConverter): def readBringIn(self, hand): m = self.re_BringIn.search(hand.handText,re.DOTALL) if m: - logging.debug("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN'))) + logging.debug(_("Player bringing in: %s for %s" %(m.group('PNAME'), m.group('BRINGIN')))) hand.addBringIn(m.group('PNAME'), m.group('BRINGIN')) else: - logging.warning("No bringin found.") + logging.warning(_("No bringin found.")) def readBlinds(self, hand): m = self.re_PostSB.search(hand.handText) if m is not None: hand.addBlind(m.group('PNAME'), 'small blind', m.group('SB')) else: - logging.debug("No small blind") + logging.debug(_("No small blind")) hand.addBlind(None, None, None) for a in self.re_PostBB.finditer(hand.handText): hand.addBlind(a.group('PNAME'), 'big blind', a.group('BB')) @@ -267,7 +267,7 @@ class Absolute(HandHistoryConverter): def readStudPlayerCards(self, hand, street): # lol. see Plymouth.txt - logging.warning("Absolute readStudPlayerCards is only a stub.") + logging.warning(_("Absolute readStudPlayerCards is only a stub.")) #~ if street in ('THIRD', 'FOURTH', 'FIFTH', 'SIXTH'): #~ hand.addPlayerCards(player = player.group('PNAME'), street = street, closed = [], open = []) @@ -290,7 +290,7 @@ class Absolute(HandHistoryConverter): elif action.group('ATYPE') == ' complete to': # TODO: not supported yet ? hand.addComplete( street, action.group('PNAME'), action.group('BET')) else: - logging.debug("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),)) + logging.debug(_("Unimplemented readAction: %s %s" %(action.group('PNAME'),action.group('ATYPE'),))) def readShowdownActions(self, hand): @@ -334,9 +334,9 @@ if __name__ == "__main__": config = Configuration.Config(None) parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="-") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="-") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 7a4eeba3c7396c473db4b6e98c39e5381c4eb5be Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 21:33:03 +0200 Subject: [PATCH 38/48] l10n: gettexify Win2dayToFpdb --- pyfpdb/Win2dayToFpdb.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyfpdb/Win2dayToFpdb.py b/pyfpdb/Win2dayToFpdb.py index dd3d922e..47891f0f 100755 --- a/pyfpdb/Win2dayToFpdb.py +++ b/pyfpdb/Win2dayToFpdb.py @@ -153,7 +153,7 @@ class Win2day(HandHistoryConverter): hand.buttonpos = player[0] break else: - logging.info('readButton: not found') + logging.info(_('readButton: not found')) def readPlayerStacks(self, hand): logging.debug("readPlayerStacks") @@ -194,7 +194,7 @@ class Win2day(HandHistoryConverter): hand.setCommunityCards(street, boardCards) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: #~ logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -332,7 +332,7 @@ class Win2day(HandHistoryConverter): elif action.group('ATYPE') == 'ACTION_STAND': hand.addStandsPat( street, action.group('PNAME')) else: - print "DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),) + print _("DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),)) def readShowdownActions(self, hand): @@ -359,9 +359,9 @@ class Win2day(HandHistoryConverter): if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="-") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="-") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From 717968e8bfeb8d079450a88de168db26fbf57714 Mon Sep 17 00:00:00 2001 From: gimick Date: Sun, 29 Aug 2010 20:55:40 +0100 Subject: [PATCH 39/48] Logging: Relocate info message from hud-errors to hud-log --- pyfpdb/Hud.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfpdb/Hud.py b/pyfpdb/Hud.py index 99b65c00..8454f433 100644 --- a/pyfpdb/Hud.py +++ b/pyfpdb/Hud.py @@ -586,7 +586,7 @@ class Hud: self.stat_dict = stat_dict self.cards = cards - sys.stderr.write(_("------------------------------------------------------------\nCreating hud from hand %s\n") % hand) + log.info(_('Creating hud from hand ')+str(hand)) adj = self.adj_seats(hand, config) loc = self.config.get_locations(self.table.site, self.max) if loc is None and self.max != 10: From 9a3782c64d9dfc52ad24eea8d81de67ff9104375 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 22:07:58 +0200 Subject: [PATCH 40/48] l10n: last file gettextified: UltimateBetToFpdb --- pyfpdb/UltimateBetToFpdb.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pyfpdb/UltimateBetToFpdb.py b/pyfpdb/UltimateBetToFpdb.py index acf29b06..580244bb 100755 --- a/pyfpdb/UltimateBetToFpdb.py +++ b/pyfpdb/UltimateBetToFpdb.py @@ -39,7 +39,7 @@ in_path (default '-' = sys.stdin) out_path (default '-' = sys.stdout) follow : whether to tail -f the input""" HandHistoryConverter.__init__(self, in_path, out_path, sitename="UltimateBet", follow=follow, index=index) - logging.info("Initialising UltimateBetconverter class") + logging.info(_("Initialising UltimateBetconverter class")) self.filetype = "text" self.codepage = "cp1252" self.siteId = 6 # Needs to match id entry in Sites database @@ -141,7 +141,7 @@ follow : whether to tail -f the input""" if m: hand.buttonpos = int(m.group('BUTTON')) else: - logging.info('readButton: not found') + logging.info(_('readButton: not found')) def readPlayerStacks(self, hand): logging.debug("readPlayerStacks") @@ -180,7 +180,7 @@ follow : whether to tail -f the input""" hand.setCommunityCards(street, m.group('CARDS').split(' ')) def readAntes(self, hand): - logging.debug("reading antes") + logging.debug(_("reading antes")) m = self.re_Antes.finditer(hand.handText) for player in m: #~ logging.debug("hand.addAnte(%s,%s)" %(player.group('PNAME'), player.group('ANTE'))) @@ -290,7 +290,7 @@ follow : whether to tail -f the input""" #elif action.group('ATYPE') == ' stands pat': # hand.addStandsPat( street, action.group('PNAME')) else: - print "DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),) + print _("DEBUG: unimplemented readAction: '%s' '%s'" %(action.group('PNAME'),action.group('ATYPE'),)) def readShowdownActions(self, hand): @@ -312,9 +312,9 @@ follow : whether to tail -f the input""" if __name__ == "__main__": parser = OptionParser() - parser.add_option("-i", "--input", dest="ipath", help="parse input hand history", default="regression-test-files/pokerstars/HH20090226 Natalie V - $0.10-$0.20 - HORSE.txt") - parser.add_option("-o", "--output", dest="opath", help="output translation to", default="-") - parser.add_option("-f", "--follow", dest="follow", help="follow (tail -f) the input", action="store_true", default=False) + parser.add_option("-i", "--input", dest="ipath", help=_("parse input hand history"), default="regression-test-files/pokerstars/HH20090226 Natalie V - $0.10-$0.20 - HORSE.txt") + parser.add_option("-o", "--output", dest="opath", help=_("output translation to"), default="-") + parser.add_option("-f", "--follow", dest="follow", help=_("follow (tail -f) the input"), action="store_true", default=False) parser.add_option("-q", "--quiet", action="store_const", const=logging.CRITICAL, dest="verbosity", default=logging.INFO) parser.add_option("-v", "--verbose", From af0aff530d66adb51ce322f10839b4102fd8074e Mon Sep 17 00:00:00 2001 From: steffen123 Date: Sun, 29 Aug 2010 22:09:22 +0200 Subject: [PATCH 41/48] l10n: update pot/po/mo files --- pyfpdb/locale/de/LC_MESSAGES/fpdb.mo | Bin 20424 -> 20424 bytes pyfpdb/locale/fpdb-de_DE.po | 119 +++++++++++++++++++++----- pyfpdb/locale/fpdb-en_GB.pot | 116 ++++++++++++++++++++----- pyfpdb/locale/fpdb-hu_HU.po | 121 ++++++++++++++++++++++----- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 59291 -> 59291 bytes 5 files changed, 297 insertions(+), 59 deletions(-) diff --git a/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo index ae007611f0d5cdb7fd5668fce4dc3508fb32db9a..5b67149b32a449e4d703768bf8d5603198bc4a95 100644 GIT binary patch delta 19 bcmX>xpYgxpYg\n" "Language-Team: Fpdb\n" @@ -15,6 +15,47 @@ msgstr "" "X-Generator: Virtaal 0.6.1\n" "Generated-By: pygettext.py 1.5\n" +#: AbsoluteToFpdb.py:167 BetfairToFpdb.py:114 CarbonToFpdb.py:151 +#: EverleafToFpdb.py:148 FulltiltToFpdb.py:221 +msgid "Didn't match re_HandInfo" +msgstr "" + +#: AbsoluteToFpdb.py:224 EverleafToFpdb.py:217 FulltiltToFpdb.py:351 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 UltimateBetToFpdb.py:183 +#: Win2dayToFpdb.py:197 +msgid "reading antes" +msgstr "" + +#: AbsoluteToFpdb.py:236 EverleafToFpdb.py:229 +msgid "No bringin found." +msgstr "" + +#: AbsoluteToFpdb.py:243 EverleafToFpdb.py:236 +msgid "No small blind" +msgstr "" + +#: AbsoluteToFpdb.py:270 +msgid "Absolute readStudPlayerCards is only a stub." +msgstr "" + +#: AbsoluteToFpdb.py:337 BetfairToFpdb.py:229 CarbonToFpdb.py:288 +#: EverleafToFpdb.py:325 FulltiltToFpdb.py:715 PartyPokerToFpdb.py:525 +#: PokerStarsToFpdb.py:468 UltimateBetToFpdb.py:315 Win2dayToFpdb.py:362 +msgid "parse input hand history" +msgstr "" + +#: AbsoluteToFpdb.py:338 BetfairToFpdb.py:230 CarbonToFpdb.py:289 +#: EverleafToFpdb.py:326 FulltiltToFpdb.py:716 PartyPokerToFpdb.py:526 +#: PokerStarsToFpdb.py:469 UltimateBetToFpdb.py:316 Win2dayToFpdb.py:363 +msgid "output translation to" +msgstr "" + +#: AbsoluteToFpdb.py:339 BetfairToFpdb.py:231 CarbonToFpdb.py:290 +#: EverleafToFpdb.py:327 FulltiltToFpdb.py:717 PartyPokerToFpdb.py:527 +#: PokerStarsToFpdb.py:470 UltimateBetToFpdb.py:317 Win2dayToFpdb.py:364 +msgid "follow (tail -f) the input" +msgstr "" + #: Anonymise.py:55 msgid "Could not find file %s" msgstr "Konnte Datei %s nicht finden" @@ -27,8 +68,8 @@ msgstr "" msgid "GameInfo regex did not match" msgstr "" -#: BetfairToFpdb.py:114 -msgid "Didn't match re_HandInfo" +#: BetfairToFpdb.py:130 +msgid "readPlayerStacks: Less than 2 players found in a hand" msgstr "" #: BetfairToFpdb.py:170 @@ -39,18 +80,6 @@ msgstr "" msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 -msgid "parse input hand history" -msgstr "" - -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 -msgid "output translation to" -msgstr "" - -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 -msgid "follow (tail -f) the input" -msgstr "" - #: Card.py:167 msgid "fpdb card encoding(same as pokersource)" msgstr "" @@ -76,7 +105,8 @@ msgstr "" #: Configuration.py:135 Configuration.py:136 msgid "Error copying .example config file, cannot fall back. Exiting.\n" -msgstr "Fehler beim Kopieren der .example Konfigurationsdatei, Fallback " +msgstr "" +"Fehler beim Kopieren der .example Konfigurationsdatei, Fallback " "fehlgeschlagen. Beende fpdb.\n" #: Configuration.py:140 Configuration.py:141 @@ -459,6 +489,10 @@ msgstr "" msgid "press enter to continue" msgstr "" +#: EverleafToFpdb.py:264 +msgid "Everleaf readStudPlayerCards is only a stub." +msgstr "" + #: Filters.py:62 msgid "All" msgstr "Alle" @@ -603,6 +637,50 @@ msgstr "Wählen Sie ein Datum" msgid "Done" msgstr "Fertig" +#: FulltiltToFpdb.py:361 +msgid "Player bringing in: %s for %s" +msgstr "" + +#: FulltiltToFpdb.py:364 +msgid "No bringin found, handid =%s" +msgstr "" + +#: FulltiltToFpdb.py:421 +msgid "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" +msgstr "" + +#: FulltiltToFpdb.py:497 +msgid "determineTourneyType : Parsing NOK" +msgstr "" + +#: FulltiltToFpdb.py:555 +msgid "Unable to get a valid Tournament ID -- File rejected" +msgstr "" + +#: FulltiltToFpdb.py:586 +msgid "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:593 +msgid "Conflict between fees read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:597 +msgid "Unable to affect a buyin to this tournament : assume it's a freeroll" +msgstr "" + +#: FulltiltToFpdb.py:698 +msgid "FullTilt: Player finishing stats unreadable : %s" +msgstr "" + +#: FulltiltToFpdb.py:707 +msgid "FullTilt: %s not found in tourney.ranks ..." +msgstr "" + +#: FulltiltToFpdb.py:709 +msgid "FullTilt: Bad parsing : finish position incoherent : %s / %s" +msgstr "" + #: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "Zeit zwischen Imports in Sekunden:" @@ -1968,6 +2046,7 @@ msgid "limit not found in self.limits(%s). hand: '%s'" msgstr "" #: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 +#: UltimateBetToFpdb.py:144 Win2dayToFpdb.py:156 msgid "readButton: not found" msgstr "" @@ -1975,10 +2054,6 @@ msgstr "" msgid "readBlinds in noSB exception - no SB created" msgstr "" -#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 -msgid "reading antes" -msgstr "" - #: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "" @@ -2467,6 +2542,10 @@ msgstr "" msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" msgstr "" +#: UltimateBetToFpdb.py:42 +msgid "Initialising UltimateBetconverter class" +msgstr "" + #: WinTables.py:82 msgid "Window %s not found. Skipping." msgstr "" diff --git a/pyfpdb/locale/fpdb-en_GB.pot b/pyfpdb/locale/fpdb-en_GB.pot index ba73641a..71ec500e 100644 --- a/pyfpdb/locale/fpdb-en_GB.pot +++ b/pyfpdb/locale/fpdb-en_GB.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-29 20:45+CEST\n" +"POT-Creation-Date: 2010-08-29 22:08+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,6 +15,47 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" +#: AbsoluteToFpdb.py:167 BetfairToFpdb.py:114 CarbonToFpdb.py:151 +#: EverleafToFpdb.py:148 FulltiltToFpdb.py:221 +msgid "Didn't match re_HandInfo" +msgstr "" + +#: AbsoluteToFpdb.py:224 EverleafToFpdb.py:217 FulltiltToFpdb.py:351 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 UltimateBetToFpdb.py:183 +#: Win2dayToFpdb.py:197 +msgid "reading antes" +msgstr "" + +#: AbsoluteToFpdb.py:236 EverleafToFpdb.py:229 +msgid "No bringin found." +msgstr "" + +#: AbsoluteToFpdb.py:243 EverleafToFpdb.py:236 +msgid "No small blind" +msgstr "" + +#: AbsoluteToFpdb.py:270 +msgid "Absolute readStudPlayerCards is only a stub." +msgstr "" + +#: AbsoluteToFpdb.py:337 BetfairToFpdb.py:229 CarbonToFpdb.py:288 +#: EverleafToFpdb.py:325 FulltiltToFpdb.py:715 PartyPokerToFpdb.py:525 +#: PokerStarsToFpdb.py:468 UltimateBetToFpdb.py:315 Win2dayToFpdb.py:362 +msgid "parse input hand history" +msgstr "" + +#: AbsoluteToFpdb.py:338 BetfairToFpdb.py:230 CarbonToFpdb.py:289 +#: EverleafToFpdb.py:326 FulltiltToFpdb.py:716 PartyPokerToFpdb.py:526 +#: PokerStarsToFpdb.py:469 UltimateBetToFpdb.py:316 Win2dayToFpdb.py:363 +msgid "output translation to" +msgstr "" + +#: AbsoluteToFpdb.py:339 BetfairToFpdb.py:231 CarbonToFpdb.py:290 +#: EverleafToFpdb.py:327 FulltiltToFpdb.py:717 PartyPokerToFpdb.py:527 +#: PokerStarsToFpdb.py:470 UltimateBetToFpdb.py:317 Win2dayToFpdb.py:364 +msgid "follow (tail -f) the input" +msgstr "" + #: Anonymise.py:55 msgid "Could not find file %s" msgstr "" @@ -27,8 +68,8 @@ msgstr "" msgid "GameInfo regex did not match" msgstr "" -#: BetfairToFpdb.py:114 -msgid "Didn't match re_HandInfo" +#: BetfairToFpdb.py:130 +msgid "readPlayerStacks: Less than 2 players found in a hand" msgstr "" #: BetfairToFpdb.py:170 @@ -39,18 +80,6 @@ msgstr "" msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 -msgid "parse input hand history" -msgstr "" - -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 -msgid "output translation to" -msgstr "" - -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 -msgid "follow (tail -f) the input" -msgstr "" - #: Card.py:167 msgid "fpdb card encoding(same as pokersource)" msgstr "" @@ -457,6 +486,10 @@ msgstr "" msgid "press enter to continue" msgstr "" +#: EverleafToFpdb.py:264 +msgid "Everleaf readStudPlayerCards is only a stub." +msgstr "" + #: Filters.py:62 msgid "All" msgstr "" @@ -601,6 +634,50 @@ msgstr "" msgid "Done" msgstr "" +#: FulltiltToFpdb.py:361 +msgid "Player bringing in: %s for %s" +msgstr "" + +#: FulltiltToFpdb.py:364 +msgid "No bringin found, handid =%s" +msgstr "" + +#: FulltiltToFpdb.py:421 +msgid "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" +msgstr "" + +#: FulltiltToFpdb.py:497 +msgid "determineTourneyType : Parsing NOK" +msgstr "" + +#: FulltiltToFpdb.py:555 +msgid "Unable to get a valid Tournament ID -- File rejected" +msgstr "" + +#: FulltiltToFpdb.py:586 +msgid "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:593 +msgid "Conflict between fees read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:597 +msgid "Unable to affect a buyin to this tournament : assume it's a freeroll" +msgstr "" + +#: FulltiltToFpdb.py:698 +msgid "FullTilt: Player finishing stats unreadable : %s" +msgstr "" + +#: FulltiltToFpdb.py:707 +msgid "FullTilt: %s not found in tourney.ranks ..." +msgstr "" + +#: FulltiltToFpdb.py:709 +msgid "FullTilt: Bad parsing : finish position incoherent : %s / %s" +msgstr "" + #: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "" @@ -1929,6 +2006,7 @@ msgid "limit not found in self.limits(%s). hand: '%s'" msgstr "" #: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 +#: UltimateBetToFpdb.py:144 Win2dayToFpdb.py:156 msgid "readButton: not found" msgstr "" @@ -1936,10 +2014,6 @@ msgstr "" msgid "readBlinds in noSB exception - no SB created" msgstr "" -#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 -msgid "reading antes" -msgstr "" - #: Options.py:40 msgid "If passed error output will go to the console rather than ." msgstr "" @@ -2428,6 +2502,10 @@ msgstr "" msgid "incrementPlayerWinnings: name : '%s' - Add Winnings (%s)" msgstr "" +#: UltimateBetToFpdb.py:42 +msgid "Initialising UltimateBetconverter class" +msgstr "" + #: WinTables.py:82 msgid "Window %s not found. Skipping." msgstr "" diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index 2c2ea758..bc8be173 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-29 20:42+CEST\n" +"POT-Creation-Date: 2010-08-29 22:08+CEST\n" "PO-Revision-Date: 2010-08-29 14:25+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -16,6 +16,48 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=n !=1;\n" +#: AbsoluteToFpdb.py:167 BetfairToFpdb.py:114 CarbonToFpdb.py:151 +#: EverleafToFpdb.py:148 FulltiltToFpdb.py:221 +msgid "Didn't match re_HandInfo" +msgstr "re_HandInfo nem illeszkedik" + +#: AbsoluteToFpdb.py:224 EverleafToFpdb.py:217 FulltiltToFpdb.py:351 +#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 UltimateBetToFpdb.py:183 +#: Win2dayToFpdb.py:197 +msgid "reading antes" +msgstr "antek olvasása" + +#: AbsoluteToFpdb.py:236 EverleafToFpdb.py:229 +#, fuzzy +msgid "No bringin found." +msgstr "Beülő nem található" + +#: AbsoluteToFpdb.py:243 EverleafToFpdb.py:236 +msgid "No small blind" +msgstr "" + +#: AbsoluteToFpdb.py:270 +msgid "Absolute readStudPlayerCards is only a stub." +msgstr "" + +#: AbsoluteToFpdb.py:337 BetfairToFpdb.py:229 CarbonToFpdb.py:288 +#: EverleafToFpdb.py:325 FulltiltToFpdb.py:715 PartyPokerToFpdb.py:525 +#: PokerStarsToFpdb.py:468 UltimateBetToFpdb.py:315 Win2dayToFpdb.py:362 +msgid "parse input hand history" +msgstr "leosztástörténet feldolgozása" + +#: AbsoluteToFpdb.py:338 BetfairToFpdb.py:230 CarbonToFpdb.py:289 +#: EverleafToFpdb.py:326 FulltiltToFpdb.py:716 PartyPokerToFpdb.py:526 +#: PokerStarsToFpdb.py:469 UltimateBetToFpdb.py:316 Win2dayToFpdb.py:363 +msgid "output translation to" +msgstr "feldolgozás eredményének helye" + +#: AbsoluteToFpdb.py:339 BetfairToFpdb.py:231 CarbonToFpdb.py:290 +#: EverleafToFpdb.py:327 FulltiltToFpdb.py:717 PartyPokerToFpdb.py:527 +#: PokerStarsToFpdb.py:470 UltimateBetToFpdb.py:317 Win2dayToFpdb.py:364 +msgid "follow (tail -f) the input" +msgstr "kövesse a kimenetet (tail -f)" + #: Anonymise.py:55 msgid "Could not find file %s" msgstr "%s fájl nem található" @@ -28,9 +70,9 @@ msgstr "Az eredmény ide került kiírásra" msgid "GameInfo regex did not match" msgstr "GameInfo regex nem illeszkedik" -#: BetfairToFpdb.py:114 -msgid "Didn't match re_HandInfo" -msgstr "re_HandInfo nem illeszkedik" +#: BetfairToFpdb.py:130 +msgid "readPlayerStacks: Less than 2 players found in a hand" +msgstr "" #: BetfairToFpdb.py:170 msgid "No bringin found" @@ -40,18 +82,6 @@ msgstr "Beülő nem található" msgid "DEBUG: unimplemented readAction: '%s' '%s'" msgstr "DEBUG: nem ismert readAction: '%s' '%s'" -#: BetfairToFpdb.py:229 PartyPokerToFpdb.py:525 PokerStarsToFpdb.py:468 -msgid "parse input hand history" -msgstr "leosztástörténet feldolgozása" - -#: BetfairToFpdb.py:230 PartyPokerToFpdb.py:526 PokerStarsToFpdb.py:469 -msgid "output translation to" -msgstr "feldolgozás eredményének helye" - -#: BetfairToFpdb.py:231 PartyPokerToFpdb.py:527 PokerStarsToFpdb.py:470 -msgid "follow (tail -f) the input" -msgstr "kövesse a kimenetet (tail -f)" - #: Card.py:167 msgid "fpdb card encoding(same as pokersource)" msgstr "fpdb kártyakódolás (ugyanaz, mint amit a pokersource használ)" @@ -484,6 +514,10 @@ msgstr "get_stats időigény: %4.3f mp" msgid "press enter to continue" msgstr "nyomj ENTER-t a folytatáshoz" +#: EverleafToFpdb.py:264 +msgid "Everleaf readStudPlayerCards is only a stub." +msgstr "" + #: Filters.py:62 msgid "All" msgstr "Mind" @@ -629,6 +663,52 @@ msgstr "Válassz napot" msgid "Done" msgstr "Kész" +#: FulltiltToFpdb.py:361 +msgid "Player bringing in: %s for %s" +msgstr "" + +#: FulltiltToFpdb.py:364 +#, fuzzy +msgid "No bringin found, handid =%s" +msgstr "Beülő nem található" + +#: FulltiltToFpdb.py:421 +#, fuzzy +msgid "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" +msgstr "DEBUG: nem ismert readAction: '%s' '%s'" + +#: FulltiltToFpdb.py:497 +msgid "determineTourneyType : Parsing NOK" +msgstr "" + +#: FulltiltToFpdb.py:555 +msgid "Unable to get a valid Tournament ID -- File rejected" +msgstr "" + +#: FulltiltToFpdb.py:586 +msgid "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:593 +msgid "Conflict between fees read in topline (%s) and in BuyIn field (%s)" +msgstr "" + +#: FulltiltToFpdb.py:597 +msgid "Unable to affect a buyin to this tournament : assume it's a freeroll" +msgstr "" + +#: FulltiltToFpdb.py:698 +msgid "FullTilt: Player finishing stats unreadable : %s" +msgstr "" + +#: FulltiltToFpdb.py:707 +msgid "FullTilt: %s not found in tourney.ranks ..." +msgstr "" + +#: FulltiltToFpdb.py:709 +msgid "FullTilt: Bad parsing : finish position incoherent : %s / %s" +msgstr "" + #: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "Importálások közti idő (mp):" @@ -2078,6 +2158,7 @@ msgid "limit not found in self.limits(%s). hand: '%s'" msgstr "" #: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 +#: UltimateBetToFpdb.py:144 Win2dayToFpdb.py:156 msgid "readButton: not found" msgstr "readButton: nem található" @@ -2086,10 +2167,6 @@ msgstr "readButton: nem található" msgid "readBlinds in noSB exception - no SB created" msgstr "readBlinds noSB-n belül hiba" -#: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 -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." @@ -2586,6 +2663,10 @@ 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)" +#: UltimateBetToFpdb.py:42 +msgid "Initialising UltimateBetconverter class" +msgstr "" + #: WinTables.py:82 msgid "Window %s not found. Skipping." msgstr "A(z) %s nevű ablak nincs meg. Kihagyás." diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index a73df824a2626bf6477eb908db93d0522a0fa3dc..2c4ea94ad6821a6a58ae76a1be9d08ba23e49357 100644 GIT binary patch delta 19 bcmbPzo_Y3p<_+g+S&Xa Date: Mon, 30 Aug 2010 01:19:23 +0200 Subject: [PATCH 42/48] l10n: add missing gettextifications in GuiDatabase --- pyfpdb/GuiDatabase.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pyfpdb/GuiDatabase.py b/pyfpdb/GuiDatabase.py index e85e3057..d6eaf14f 100755 --- a/pyfpdb/GuiDatabase.py +++ b/pyfpdb/GuiDatabase.py @@ -403,8 +403,7 @@ class GuiDatabase: status = "failed" icon = gtk.STOCK_CANCEL if err_msg: - log.info( _('db connection to ') + str(dbms_num)+','+host+','+name+','+user+','+passwd+' failed: ' - + err_msg ) + log.info( _('db connection to %s, %s, %s, %s, %s failed: %s') % (str(dbms_num), host, name, user, passwd, err_msg)) return( status, err_msg, icon ) @@ -412,7 +411,7 @@ class GuiDatabase: class AddDB(gtk.Dialog): def __init__(self, config, parent): - log.debug("AddDB starting") + log.debug(_("AddDB starting")) self.dbnames = { 'Sqlite' : Configuration.DATABASE_TYPE_SQLITE , 'MySQL' : Configuration.DATABASE_TYPE_MYSQL , 'PostgreSQL' : Configuration.DATABASE_TYPE_POSTGRESQL @@ -421,7 +420,7 @@ class AddDB(gtk.Dialog): # create dialog and add icon and label super(AddDB,self).__init__( parent=parent , flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT - , title="Add New Database" + , title=_("Add New Database") , buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT ,gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT) ) # , buttons=btns @@ -489,7 +488,7 @@ class AddDB(gtk.Dialog): def run(self): response = super(AddDB,self).run() - log.debug("adddb.run: response is "+str(response)+" accept is "+str(int(gtk.RESPONSE_ACCEPT))) + log.debug(_("addDB.run: response is %s accept is %s" % (str(response), str(int(gtk.RESPONSE_ACCEPT))))) ok,retry = False,True while response == gtk.RESPONSE_ACCEPT: @@ -503,7 +502,7 @@ class AddDB(gtk.Dialog): ,name, db_desc, user, passwd, host) = ("error", "error", None, None, None ,None, None, None, None, None) if ok: - log.debug("start creating new db") + log.debug(_("start creating new db")) # add a new db master_password = None dbms = self.dbnames[ self.cb_dbms.get_active_text() ] @@ -522,7 +521,7 @@ class AddDB(gtk.Dialog): # test db after creating? status, err_msg, icon = GuiDatabase.testDB(self.config, dbms, dbms_num, name, user, passwd, host) - log.debug('tested new db, result='+str((status,err_msg))) + log.debug(_('tested new db, result=%s') % str((status,err_msg))) if status == 'ok': #dia = InfoBox( parent=self, str1=_('Database created') ) str1 = _('Database created') @@ -541,7 +540,7 @@ class AddDB(gtk.Dialog): """check fields and return true/false according to whether user wants to try again return False if fields are ok """ - log.debug("check_fields: starting") + log.debug(_("check_fields: starting")) try_again = False ok = True @@ -573,11 +572,11 @@ class AddDB(gtk.Dialog): # checks for postgres pass else: - msg = "Unknown Database Type selected" + msg = _("Unknown Database Type selected") ok = False if not ok: - log.debug("check_fields: open dialog") + log.debug(_("check_fields: open dialog")) dia = gtk.MessageDialog( parent=self , flags=gtk.DIALOG_DESTROY_WITH_PARENT , type=gtk.MESSAGE_ERROR @@ -590,14 +589,14 @@ class AddDB(gtk.Dialog): dia.vbox.add(l) dia.show_all() ret = dia.run() - log.debug("check_fields: ret is "+str(ret)+" cancel is "+str(int(gtk.RESPONSE_CANCEL))) + log.debug(_("check_fields: ret is %s cancel is %s" % (str(ret), str(int(gtk.RESPONSE_CANCEL))))) if ret == gtk.RESPONSE_YES: try_again = True - log.debug("check_fields: destroy dialog") + log.debug(_("check_fields: destroy dialog")) dia.hide() dia.destroy() - log.debug("check_fields: returning ok as "+str(ok)+", try_again as "+str(try_again)) + log.debug(_("check_fields: returning ok as %s, try_again as %s") % (str(ok), str(try_again))) return(ok,try_again) def db_type_changed(self, widget, data): From 05220f1c6f651ed7920eb02d560bca737969ac25 Mon Sep 17 00:00:00 2001 From: Erki Ferenc Date: Mon, 30 Aug 2010 01:21:55 +0200 Subject: [PATCH 43/48] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 209 +++++++++++++++--------------------- 1 file changed, 87 insertions(+), 122 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index bc8be173..b33e9e57 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-29 22:08+CEST\n" -"PO-Revision-Date: 2010-08-29 14:25+0200\n" +"PO-Revision-Date: 2010-08-30 01:20+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -28,17 +28,16 @@ msgid "reading antes" msgstr "antek olvasása" #: AbsoluteToFpdb.py:236 EverleafToFpdb.py:229 -#, fuzzy msgid "No bringin found." -msgstr "Beülő nem található" +msgstr "Nyitó hívás nem található." #: AbsoluteToFpdb.py:243 EverleafToFpdb.py:236 msgid "No small blind" -msgstr "" +msgstr "Nincs kisvak" #: AbsoluteToFpdb.py:270 msgid "Absolute readStudPlayerCards is only a stub." -msgstr "" +msgstr "Az Absolute terem readStudPlayerCards funkciója csak egy csonk." #: AbsoluteToFpdb.py:337 BetfairToFpdb.py:229 CarbonToFpdb.py:288 #: EverleafToFpdb.py:325 FulltiltToFpdb.py:715 PartyPokerToFpdb.py:525 @@ -72,11 +71,11 @@ msgstr "GameInfo regex nem illeszkedik" #: BetfairToFpdb.py:130 msgid "readPlayerStacks: Less than 2 players found in a hand" -msgstr "" +msgstr "readPlayerStacks: Kettőnél kevesebb játékost találtam egy leosztásban" #: BetfairToFpdb.py:170 msgid "No bringin found" -msgstr "Beülő nem található" +msgstr "Nyitó hívás nem található" #: BetfairToFpdb.py:206 OnGameToFpdb.py:339 PokerStarsToFpdb.py:441 msgid "DEBUG: unimplemented readAction: '%s' '%s'" @@ -109,9 +108,10 @@ msgstr "" " vagy itt: %s\n" #: Configuration.py:135 Configuration.py:136 -#, fuzzy msgid "Error copying .example config file, cannot fall back. Exiting.\n" -msgstr "Hiba a .example fájl másolása közben, nem tudom folytatni. Kilépés.\n" +msgstr "" +"Hiba a .example konfigurációs fájl másolása közben, nem tudom folytatni. " +"Kilépés.\n" #: Configuration.py:140 Configuration.py:141 msgid "No %s found, cannot fall back. Exiting.\n" @@ -202,9 +202,8 @@ msgid "Error parsing %s. See error log file." msgstr "Hiba a(z) %s értelmezése közben. Nézz bele a hibanaplóba." #: Configuration.py:831 -#, fuzzy msgid "Error parsing example file %s. See error log file." -msgstr "Hiba a(z) %s értelmezése közben. Nézz bele a hibanaplóba." +msgstr "Hiba a(z) %s mintafájl értelmezése közben. Nézz bele a hibanaplóba." #: Database.py:74 msgid "Not using sqlalchemy connection pool." @@ -516,7 +515,7 @@ msgstr "nyomj ENTER-t a folytatáshoz" #: EverleafToFpdb.py:264 msgid "Everleaf readStudPlayerCards is only a stub." -msgstr "" +msgstr "Az Everleaf terem readStudPlayerCards funkciója csak egy csonk." #: Filters.py:62 msgid "All" @@ -567,9 +566,8 @@ msgid "Grouping:" msgstr "Csoportosítás:" #: Filters.py:66 -#, fuzzy msgid "Show Position Stats" -msgstr "Pozíció" +msgstr "Pozíciók" #: Filters.py:67 TourneyFilters.py:60 msgid "Date:" @@ -645,11 +643,11 @@ msgstr "Nem található játék az adatbázisban" #: Filters.py:894 msgid "From:" -msgstr "" +msgstr "Ettől:" #: Filters.py:908 msgid "To:" -msgstr "" +msgstr "Eddig:" #: Filters.py:913 msgid " Clear Dates " @@ -665,77 +663,75 @@ msgstr "Kész" #: FulltiltToFpdb.py:361 msgid "Player bringing in: %s for %s" -msgstr "" +msgstr "Nyitó hívás: %s hív %s-t" #: FulltiltToFpdb.py:364 -#, fuzzy msgid "No bringin found, handid =%s" -msgstr "Beülő nem található" +msgstr "Nyitó hívás nem található, leosztásazonosító = %s" #: FulltiltToFpdb.py:421 -#, fuzzy msgid "FullTilt: DEBUG: unimplemented readAction: '%s' '%s'" -msgstr "DEBUG: nem ismert readAction: '%s' '%s'" +msgstr "FullTilt: DEBUG: nem ismert readAction: '%s' '%s'" #: FulltiltToFpdb.py:497 msgid "determineTourneyType : Parsing NOK" -msgstr "" +msgstr "determineTourneyType : értelmezés nem OK" #: FulltiltToFpdb.py:555 msgid "Unable to get a valid Tournament ID -- File rejected" -msgstr "" +msgstr "Nem sikerült érvényes versenyazonosítót találni --- A fájl elutasítva" #: FulltiltToFpdb.py:586 msgid "Conflict between buyins read in topline (%s) and in BuyIn field (%s)" msgstr "" +"Eltérés a beülők mértéke között a fejlécben (%s) és a Beülő mezőben (%s)" #: FulltiltToFpdb.py:593 msgid "Conflict between fees read in topline (%s) and in BuyIn field (%s)" msgstr "" +"Eltérés a díjak mértéke között a fejlécben (%s) és a Beülő mezőben (%s)" #: FulltiltToFpdb.py:597 msgid "Unable to affect a buyin to this tournament : assume it's a freeroll" msgstr "" +"Nem sikerült beülőt meghatározni ehhez a versenyhez : feltételezem, hogy ez " +"egy freeroll" #: FulltiltToFpdb.py:698 msgid "FullTilt: Player finishing stats unreadable : %s" -msgstr "" +msgstr "FullTilt: A következő játékos helyezési adata nem olvashatóak : %s" #: FulltiltToFpdb.py:707 msgid "FullTilt: %s not found in tourney.ranks ..." -msgstr "" +msgstr "FullTilt: %s nem található a verseny helyezései között ..." #: FulltiltToFpdb.py:709 msgid "FullTilt: Bad parsing : finish position incoherent : %s / %s" -msgstr "" +msgstr "FullTilt: Hibás értelmezés : a helyezések nem egyeznek : %s / %s" #: GuiAutoImport.py:85 msgid "Time between imports in seconds:" msgstr "Importálások közti idő (mp):" #: GuiAutoImport.py:116 GuiAutoImport.py:184 GuiAutoImport.py:261 -#, fuzzy msgid " Start _Auto Import " -msgstr " _AutoImport indítása " +msgstr " _Auto Import indítása " #: GuiAutoImport.py:135 -#, fuzzy msgid "Auto Import Ready." -msgstr "AutoImport kész." +msgstr "Auto Import kész." #: GuiAutoImport.py:148 -#, fuzzy msgid "Please choose the path that you want to Auto Import" -msgstr "Válaszd ki a könyvtárat az AutoImporthoz" +msgstr "Válaszd ki a könyvtárat az Auto Importhoz" #: GuiAutoImport.py:171 msgid " _Auto Import Running " -msgstr " _AutoImport fut " +msgstr " _Auto Import fut " #: GuiAutoImport.py:182 -#, fuzzy msgid " Stop _Auto Import " -msgstr " _AutoImport leállítása " +msgstr " _Auto Import leállítása " #: GuiAutoImport.py:207 msgid "" @@ -743,12 +739,11 @@ msgid "" "Global lock taken ... Auto Import Started.\n" msgstr "" "\n" -"Globális zárolás OK ... AutoImport elindítva.\n" +"Globális zárolás OK ... Auto Import elindítva.\n" #: GuiAutoImport.py:209 -#, fuzzy msgid " _Stop Auto Import " -msgstr " _AutoImport leállítása " +msgstr " _Auto Import leállítása " #: GuiAutoImport.py:225 msgid "opening pipe to HUD" @@ -763,31 +758,28 @@ msgstr "" "*** GuiAutoImport Hiba a cső nyitásakor: " #: GuiAutoImport.py:249 -#, fuzzy msgid "" "\n" "Auto Import aborted - global lock not available" msgstr "" "\n" -"AutoImport megszakítva - nem elérhető a globális zárolás" +"Auto Import megszakítva - nem elérhető a globális zárolás" #: GuiAutoImport.py:254 -#, fuzzy msgid "" "\n" "Stopping Auto Import - global lock released." msgstr "" "\n" -"AutoImport leállítása - globális zárolás feloldva." +"Auto Import leállítása - globális zárolás feloldva." #: GuiAutoImport.py:256 -#, fuzzy msgid "" "\n" " * Stop Auto Import: HUD already terminated" msgstr "" "\n" -" * AutoImport megállítása: A HUD már nem fut" +" * Auto Import megállítása: A HUD már nem fut" #: GuiAutoImport.py:283 msgid "Browse..." @@ -824,7 +816,6 @@ msgid "Import Complete" msgstr "Importálás kész" #: GuiBulkImport.py:139 -#, fuzzy msgid "bulk import aborted - global lock not available" msgstr "importálás megszakítva - nem elérhető a globális zárolás" @@ -958,17 +949,16 @@ 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:117 msgid "_Add" -msgstr "" +msgstr "Hozzá_adás" #: GuiDatabase.py:121 -#, fuzzy msgid "_Refresh" -msgstr "Frissítés" +msgstr "F_rissítés" #: GuiDatabase.py:125 msgid "Type" @@ -996,7 +986,7 @@ msgstr "Kiszolgáló" #: GuiDatabase.py:131 msgid "Open" -msgstr "" +msgstr "Megnyitva" #: GuiDatabase.py:132 msgid "Status" @@ -1011,9 +1001,8 @@ msgid "finished." msgstr "befejezve." #: GuiDatabase.py:303 -#, fuzzy msgid "loadDbs error: " -msgstr "loaddbs hiba: " +msgstr "loadDbs hiba: " #: GuiDatabase.py:324 GuiLogView.py:200 GuiTourneyPlayerStats.py:466 msgid "***sortCols error: " @@ -1024,9 +1013,8 @@ msgid "sortCols error: " msgstr "sortCols hiba: " #: GuiDatabase.py:371 -#, fuzzy msgid "testDB: trying to connect to: %s/%s, %s, %s/%s" -msgstr "loaddbs: kapcolódási próbálkozás: %s/%s, %s, %s/%s" +msgstr "testDB: kapcsolódási kísérlet: %s/%s, %s, %s/%s" #: GuiDatabase.py:374 msgid " connected ok" @@ -1054,83 +1042,71 @@ 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" #: GuiDatabase.py:392 fpdb.pyw:891 -#, fuzzy msgid "" "PostgreSQL Server reports: Access denied. Are your permissions set correctly?" msgstr "" -"Postgres szerver jelenti: A hozzáférés megtagadva. Biztosan megfelelőek a " +"PostgreSQL szerver jelenti: A hozzáférés megtagadva. Megfelelőek a " "jogosultságaid?" #: GuiDatabase.py:395 fpdb.pyw:893 -#, fuzzy msgid "PostgreSQL client reports: Unable to connect - " -msgstr "Postgres kliens jelenti: Nem sikerült a kapcsolódás - " +msgstr "PostgreSQL kliens jelenti: Nem sikerült a kapcsolódás - " #: GuiDatabase.py:396 fpdb.pyw:894 -#, fuzzy msgid "Please check that the PostgreSQL service has been started" -msgstr "Kérlek ellenőrizd, hogy a Postgres szolgáltatás el van-e indítva" +msgstr "Kérlek ellenőrizd, hogy a PostgreSQL szolgáltatás el van-e indítva" #: GuiDatabase.py:406 -#, fuzzy msgid "db connection to " -msgstr "folytató nyitás %" +msgstr "kapcsolódás az adatbázishoz " #: GuiDatabase.py:434 -#, fuzzy msgid "DB Type" -msgstr "Típus" +msgstr "Adatbázis típus" #: GuiDatabase.py:444 -#, fuzzy msgid "DB Name" -msgstr "Név" +msgstr "Adatbázis név" #: GuiDatabase.py:452 -#, fuzzy msgid "DB Description" -msgstr "Leírás" +msgstr "Adatbázis leírás" #: GuiDatabase.py:473 -#, fuzzy msgid "Host Computer" -msgstr "Importálás kész" +msgstr "Kiszolgáló" #: GuiDatabase.py:528 -#, fuzzy msgid "Database created" -msgstr "A_datbázis" +msgstr "Adatbázis létrehozva" #: GuiDatabase.py:531 -#, fuzzy msgid "Database creation failed" -msgstr " index létrehozása nem sikerült: " +msgstr "Adatbázis létrehozása nem sikerült" #: GuiDatabase.py:550 msgid "No Database Name given" -msgstr "" +msgstr "Nem lett adatbázis név megadva" #: GuiDatabase.py:553 msgid "No Database Description given" -msgstr "" +msgstr "Nem lett adatbázis leírás megadva" #: GuiDatabase.py:556 -#, fuzzy msgid "No Username given" -msgstr "Felhasználónév" +msgstr "Nem lett felhasználónév megadva" #: GuiDatabase.py:559 -#, fuzzy msgid "No Password given" -msgstr "Jelszó" +msgstr "Nem lett jelszó megadva" #: GuiDatabase.py:562 msgid "No Host given" -msgstr "" +msgstr "Nem lett kiszolgáló megadva" #: GuiDatabase.py:589 msgid "Do you want to try again?" -msgstr "" +msgstr "Meg akarod próbálni újból?" #: GuiDatabase.py:702 GuiLogView.py:213 msgid "Test Log Viewer" @@ -1487,11 +1463,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" @@ -1714,9 +1690,9 @@ msgid "Hand.insert(): hid #: %s is a duplicate" msgstr "Hand.insert(): %s leosztásazonosító duplikáció" #: Hand.py:318 -#, fuzzy msgid "markstreets didn't match - Assuming hand %s was cancelled" -msgstr "markStreets nem egyezik - Leosztás érvénytelenítését feltételezem" +msgstr "" +"markstreets nem egyezik - A(z) %s leosztás érvénytelenítését feltételezem" #: Hand.py:320 msgid "FpdbParseError: markStreets appeared to fail: First 100 chars: '%s'" @@ -1828,7 +1804,7 @@ msgstr "%s utcán %s játékos kiegészít erre: %s" #: Hand.py:1270 msgid "Bringin: %s, %s" -msgstr "Beülő: %s, %s" +msgstr "Nyitó hívás: %s, %s" #: Hand.py:1310 msgid "*** 3RD STREET ***" @@ -2149,13 +2125,13 @@ msgid "Unable to recognise gametype from: '%s'" msgstr "Nem sikerült felismerni a játéktípust innen: '%s'" #: OnGameToFpdb.py:192 -#, fuzzy msgid "determineGameType: limit not found in self.limits(%s). hand: '%s'" -msgstr "determineGameType: Nem sikerült felismerni a játéktípust innen: '%s'" +msgstr "" +"determineGameType: limit nem található ebben: self.limits(%s). leosztás: '%s'" #: OnGameToFpdb.py:194 msgid "limit not found in self.limits(%s). hand: '%s'" -msgstr "" +msgstr "limit nem található ebben: self.limits(%s). leosztás: '%s'" #: OnGameToFpdb.py:268 PartyPokerToFpdb.py:351 PokerStarsToFpdb.py:321 #: UltimateBetToFpdb.py:144 Win2dayToFpdb.py:156 @@ -2163,9 +2139,8 @@ msgid "readButton: not found" msgstr "readButton: nem található" #: OnGameToFpdb.py:288 -#, fuzzy msgid "readBlinds in noSB exception - no SB created" -msgstr "readBlinds noSB-n belül hiba" +msgstr "noSB-n belüli readBlinds hiba - kisvak nem lett létrehozva" #: Options.py:40 msgid "If passed error output will go to the console rather than ." @@ -2665,7 +2640,7 @@ msgstr "incrementPlayerWinnings: név : '%s' - plusz nyeremény (%s)" #: UltimateBetToFpdb.py:42 msgid "Initialising UltimateBetconverter class" -msgstr "" +msgstr "UltimateBetconverter osztály inicializálása" #: WinTables.py:82 msgid "Window %s not found. Skipping." @@ -2844,24 +2819,21 @@ 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:547 -#, fuzzy msgid "Please confirm that you want to (re-)create the tables." msgstr "" -"Kérlek erősítsd meg, hogy valóban újra akarod generálni a HUD gyorstárat." +"Kérlek erősítsd meg, hogy valóban (újra) létre akarod hozni a táblákat." #: fpdb.pyw:548 -#, fuzzy msgid "" " If there already are tables in the database %s on %s they will be deleted " "and you will have to re-import your histories.\n" msgstr "" -"), akkor azok törölve lesznek, és újra kell importálnod a " -"leosztástörténeteket.\n" -"Ja, és ez eltarthat egy darabig:)" +" Ha már vannak táblák a(z) %s adatbázisban a(z) %s kiszolgálón, akkor azok " +"törölve lesznek, és újra kell majd importálnod a leosztástörténeteket.\n" #: fpdb.pyw:549 msgid "This may take a while." -msgstr "" +msgstr "Ez eltarthat egy darabig." #: fpdb.pyw:574 msgid "User cancelled recreating tables" @@ -2978,7 +2950,7 @@ msgstr "A" #: fpdb.pyw:817 msgid "_Auto Import and HUD" -msgstr "_AutoImport és HUD" +msgstr "_Auto Import és HUD" #: fpdb.pyw:818 msgid "H" @@ -3103,13 +3075,13 @@ msgstr "" "%s.\n" #: fpdb.pyw:862 -#, fuzzy msgid "" "Edit your screen_name and hand history path in the supported_sites 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." +"Állítsd be a screen_name-et és a leosztástörténetek útvonalát a " +"supported_sites résznél a Beállítások ablakban (Főmenü) mielőtt megpróbálnál " +"leosztásokat importálni." #: fpdb.pyw:884 msgid "Connected to SQLite: %s" @@ -3147,22 +3119,20 @@ msgstr "" "kiszolgálón" #: fpdb.pyw:951 -#, fuzzy msgid "" "\n" "Global lock taken by %s" msgstr "" "\n" -"Globális zárolást végzett:" +"Globális zárolást végzett %s" #: fpdb.pyw:954 -#, fuzzy msgid "" "\n" "Failed to get global lock, it is currently held by %s" msgstr "" "\n" -"Globális zárolás meghiúsult, jelenleg már zárolta:" +"Globális zárolás meghiúsult, %s már zárolta" #: fpdb.pyw:964 msgid "Quitting normally" @@ -3174,7 +3144,7 @@ msgstr "Globális zárolás feloldva.\n" #: fpdb.pyw:995 msgid "Auto Import" -msgstr "AutoImport" +msgstr "Auto Import" #: fpdb.pyw:1002 msgid "Bulk Import" @@ -3258,8 +3228,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:1060 msgid "Help" @@ -3270,7 +3240,6 @@ msgid "Graphs" msgstr "Grafikonok" #: fpdb.pyw:1119 -#, fuzzy msgid "" "\n" "Note: error output is being diverted to fpdb-errors.txt and HUD-errors.txt " @@ -3278,7 +3247,7 @@ msgid "" msgstr "" "\n" "Megjegyzés: a hibakimenet átirányítva az fpdb-errors.txt és HUD-errors.txt " -"fájlokba itt:\n" +"fájlokba itt: %s" #: fpdb.pyw:1148 msgid "fpdb starting ..." @@ -3289,7 +3258,6 @@ msgid "FPDB WARNING" msgstr "FPDB FIGYELMEZTETÉS" #: fpdb.pyw:1224 -#, fuzzy msgid "" "WARNING: Unable to find output hand history directory %s\n" "\n" @@ -3329,7 +3297,6 @@ msgstr "" "pénznem még nem támogatott" #: fpdb_import.py:227 -#, fuzzy 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" @@ -3362,14 +3329,12 @@ msgid "No need to rebuild hudcache." msgstr "Nem szükséges a HUD gyorstár újraépítése." #: fpdb_import.py:313 -#, fuzzy msgid "sending finish message queue length =" -msgstr "befejező üzenet küldése; qlen =" +msgstr "befejező üzenet küldése; sor hossza =" #: fpdb_import.py:439 fpdb_import.py:441 -#, fuzzy msgid "Converting %s" -msgstr "Konvertálás" +msgstr "%s konvertálása" #: fpdb_import.py:477 msgid "Hand processed but empty" From 54f7410e49c05862c8c72a5928cdf523bf87e104 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 30 Aug 2010 01:31:14 +0200 Subject: [PATCH 44/48] l10n: update pot/po/mo files --- pyfpdb/locale/de/LC_MESSAGES/fpdb.mo | Bin 20424 -> 20643 bytes pyfpdb/locale/fpdb-de_DE.po | 88 +++++++++++++++------ pyfpdb/locale/fpdb-en_GB.pot | 76 +++++++++++++----- pyfpdb/locale/fpdb-hu_HU.po | 114 +++++++++++++++++++-------- pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo | Bin 59291 -> 66341 bytes 5 files changed, 196 insertions(+), 82 deletions(-) diff --git a/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/de/LC_MESSAGES/fpdb.mo index 5b67149b32a449e4d703768bf8d5603198bc4a95..b41b0c9387d86f4f4a4f9ecd804430784738d416 100644 GIT binary patch delta 3933 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 diff --git a/pyfpdb/locale/fpdb-de_DE.po b/pyfpdb/locale/fpdb-de_DE.po index 622557bc..47bacde7 100644 --- a/pyfpdb/locale/fpdb-de_DE.po +++ b/pyfpdb/locale/fpdb-de_DE.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: 0.20.905 plus git\n" -"POT-Creation-Date: 2010-08-29 22:08+CEST\n" -"PO-Revision-Date: 2010-08-29 20:45+0200\n" +"POT-Creation-Date: 2010-08-30 01:19+CEST\n" +"PO-Revision-Date: 2010-08-30 00:57+0200\n" "Last-Translator: Steffen Schaumburg \n" "Language-Team: Fpdb\n" "Language: de\n" @@ -18,21 +18,21 @@ msgstr "" #: AbsoluteToFpdb.py:167 BetfairToFpdb.py:114 CarbonToFpdb.py:151 #: EverleafToFpdb.py:148 FulltiltToFpdb.py:221 msgid "Didn't match re_HandInfo" -msgstr "" +msgstr "Keine Treffer für re_HandInfo" #: AbsoluteToFpdb.py:224 EverleafToFpdb.py:217 FulltiltToFpdb.py:351 #: OnGameToFpdb.py:296 PokerStarsToFpdb.py:359 UltimateBetToFpdb.py:183 #: Win2dayToFpdb.py:197 msgid "reading antes" -msgstr "" +msgstr "Lese Antes" #: AbsoluteToFpdb.py:236 EverleafToFpdb.py:229 msgid "No bringin found." -msgstr "" +msgstr "Kein Bringin gefunden." #: AbsoluteToFpdb.py:243 EverleafToFpdb.py:236 msgid "No small blind" -msgstr "" +msgstr "Keine Small Blind" #: AbsoluteToFpdb.py:270 msgid "Absolute readStudPlayerCards is only a stub." @@ -935,11 +935,11 @@ msgstr "Name" msgid "Description" msgstr "Beschreibung" -#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 +#: GuiDatabase.py:128 GuiDatabase.py:458 GuiImapFetcher.py:119 msgid "Username" msgstr "Benutzername" -#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 +#: GuiDatabase.py:129 GuiDatabase.py:465 GuiImapFetcher.py:119 msgid "Password" msgstr "Passwort" @@ -1017,62 +1017,100 @@ msgid "Please check that the PostgreSQL service has been started" msgstr "Bitte überprüfen Sie, dass der PostgreSQL-Dienst gestartet ist" #: GuiDatabase.py:406 -msgid "db connection to " +msgid "db connection to %s, %s, %s, %s, %s failed: %s" msgstr "" -#: GuiDatabase.py:434 +#: GuiDatabase.py:414 +#, fuzzy +msgid "AddDB starting" +msgstr "fpdb startet ..." + +#: GuiDatabase.py:423 +#, fuzzy +msgid "Add New Database" +msgstr "_Datenbank" + +#: GuiDatabase.py:433 msgid "DB Type" msgstr "" -#: GuiDatabase.py:444 +#: GuiDatabase.py:443 msgid "DB Name" msgstr "" -#: GuiDatabase.py:452 +#: GuiDatabase.py:451 msgid "DB Description" msgstr "" -#: GuiDatabase.py:473 +#: GuiDatabase.py:472 msgid "Host Computer" msgstr "" -#: GuiDatabase.py:528 +#: GuiDatabase.py:505 +msgid "start creating new db" +msgstr "" + +#: GuiDatabase.py:524 +msgid "tested new db, result=%s" +msgstr "" + +#: GuiDatabase.py:527 msgid "Database created" msgstr "Datenbank erstellt" -#: GuiDatabase.py:531 +#: GuiDatabase.py:530 msgid "Database creation failed" msgstr "Datenbankerstellung fehlgeschlagen" -#: GuiDatabase.py:550 +#: GuiDatabase.py:543 +msgid "check_fields: starting" +msgstr "" + +#: GuiDatabase.py:549 msgid "No Database Name given" msgstr "Kein Datenbankname eingegeben" -#: GuiDatabase.py:553 +#: GuiDatabase.py:552 msgid "No Database Description given" msgstr "Keine Datenbankbeschreibung eingegeben" -#: GuiDatabase.py:556 +#: GuiDatabase.py:555 msgid "No Username given" msgstr "Kein Benutzername eingegeben" -#: GuiDatabase.py:559 +#: GuiDatabase.py:558 msgid "No Password given" msgstr "Kein Passwort eingegeben" -#: GuiDatabase.py:562 +#: GuiDatabase.py:561 msgid "No Host given" msgstr "Kein Host eingegeben" -#: GuiDatabase.py:589 +#: GuiDatabase.py:575 +msgid "Unknown Database Type selected" +msgstr "" + +#: GuiDatabase.py:579 +msgid "check_fields: open dialog" +msgstr "" + +#: GuiDatabase.py:588 msgid "Do you want to try again?" msgstr "Wollen Sie es nochmal versuchen?" -#: GuiDatabase.py:702 GuiLogView.py:213 +#: GuiDatabase.py:595 +msgid "check_fields: destroy dialog" +msgstr "" + +#: GuiDatabase.py:599 +msgid "check_fields: returning ok as %s, try_again as %s" +msgstr "" + +#: GuiDatabase.py:701 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "" -#: GuiDatabase.py:707 GuiLogView.py:218 +#: GuiDatabase.py:706 GuiLogView.py:218 msgid "Log Viewer" msgstr "" @@ -1996,9 +2034,7 @@ msgid "Error finding actual seat.\n" msgstr "" #: Hud.py:589 -msgid "" -"------------------------------------------------------------\n" -"Creating hud from hand %s\n" +msgid "Creating hud from hand " msgstr "" #: Hud.py:638 diff --git a/pyfpdb/locale/fpdb-en_GB.pot b/pyfpdb/locale/fpdb-en_GB.pot index 71ec500e..89cd55e6 100644 --- a/pyfpdb/locale/fpdb-en_GB.pot +++ b/pyfpdb/locale/fpdb-en_GB.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2010-08-29 22:08+CEST\n" +"POT-Creation-Date: 2010-08-30 01:30+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -910,11 +910,11 @@ msgstr "" msgid "Description" msgstr "" -#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 +#: GuiDatabase.py:128 GuiDatabase.py:458 GuiImapFetcher.py:119 msgid "Username" msgstr "" -#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 +#: GuiDatabase.py:129 GuiDatabase.py:465 GuiImapFetcher.py:119 msgid "Password" msgstr "" @@ -987,62 +987,98 @@ msgid "Please check that the PostgreSQL service has been started" msgstr "" #: GuiDatabase.py:406 -msgid "db connection to " +msgid "db connection to %s, %s, %s, %s, %s failed: %s" msgstr "" -#: GuiDatabase.py:434 +#: GuiDatabase.py:414 +msgid "AddDB starting" +msgstr "" + +#: GuiDatabase.py:423 +msgid "Add New Database" +msgstr "" + +#: GuiDatabase.py:433 msgid "DB Type" msgstr "" -#: GuiDatabase.py:444 +#: GuiDatabase.py:443 msgid "DB Name" msgstr "" -#: GuiDatabase.py:452 +#: GuiDatabase.py:451 msgid "DB Description" msgstr "" -#: GuiDatabase.py:473 +#: GuiDatabase.py:472 msgid "Host Computer" msgstr "" -#: GuiDatabase.py:528 +#: GuiDatabase.py:505 +msgid "start creating new db" +msgstr "" + +#: GuiDatabase.py:524 +msgid "tested new db, result=%s" +msgstr "" + +#: GuiDatabase.py:527 msgid "Database created" msgstr "" -#: GuiDatabase.py:531 +#: GuiDatabase.py:530 msgid "Database creation failed" msgstr "" -#: GuiDatabase.py:550 +#: GuiDatabase.py:543 +msgid "check_fields: starting" +msgstr "" + +#: GuiDatabase.py:549 msgid "No Database Name given" msgstr "" -#: GuiDatabase.py:553 +#: GuiDatabase.py:552 msgid "No Database Description given" msgstr "" -#: GuiDatabase.py:556 +#: GuiDatabase.py:555 msgid "No Username given" msgstr "" -#: GuiDatabase.py:559 +#: GuiDatabase.py:558 msgid "No Password given" msgstr "" -#: GuiDatabase.py:562 +#: GuiDatabase.py:561 msgid "No Host given" msgstr "" -#: GuiDatabase.py:589 +#: GuiDatabase.py:575 +msgid "Unknown Database Type selected" +msgstr "" + +#: GuiDatabase.py:579 +msgid "check_fields: open dialog" +msgstr "" + +#: GuiDatabase.py:588 msgid "Do you want to try again?" msgstr "" -#: GuiDatabase.py:702 GuiLogView.py:213 +#: GuiDatabase.py:595 +msgid "check_fields: destroy dialog" +msgstr "" + +#: GuiDatabase.py:599 +msgid "check_fields: returning ok as %s, try_again as %s" +msgstr "" + +#: GuiDatabase.py:701 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "" -#: GuiDatabase.py:707 GuiLogView.py:218 +#: GuiDatabase.py:706 GuiLogView.py:218 msgid "Log Viewer" msgstr "" @@ -1959,9 +1995,7 @@ msgid "" msgstr "" #: Hud.py:589 -msgid "" -"------------------------------------------------------------\n" -"Creating hud from hand %s\n" +msgid "Creating hud from hand " msgstr "" #: Hud.py:638 diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index b33e9e57..f7532086 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-29 22:08+CEST\n" +"POT-Creation-Date: 2010-08-30 01:30+CEST\n" "PO-Revision-Date: 2010-08-30 01:20+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" @@ -949,8 +949,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:117 msgid "_Add" @@ -972,11 +972,11 @@ msgstr "Név" msgid "Description" msgstr "Leírás" -#: GuiDatabase.py:128 GuiDatabase.py:459 GuiImapFetcher.py:119 +#: GuiDatabase.py:128 GuiDatabase.py:458 GuiImapFetcher.py:119 msgid "Username" msgstr "Felhasználónév" -#: GuiDatabase.py:129 GuiDatabase.py:466 GuiImapFetcher.py:119 +#: GuiDatabase.py:129 GuiDatabase.py:465 GuiImapFetcher.py:119 msgid "Password" msgstr "Jelszó" @@ -1057,62 +1057,103 @@ msgid "Please check that the PostgreSQL service has been started" msgstr "Kérlek ellenőrizd, hogy a PostgreSQL szolgáltatás el van-e indítva" #: GuiDatabase.py:406 -msgid "db connection to " -msgstr "kapcsolódás az adatbázishoz " +msgid "db connection to %s, %s, %s, %s, %s failed: %s" +msgstr "" -#: GuiDatabase.py:434 +#: GuiDatabase.py:414 +#, fuzzy +msgid "AddDB starting" +msgstr "readBlinds indítása" + +#: GuiDatabase.py:423 +#, fuzzy +msgid "Add New Database" +msgstr "A_datbázis" + +#: GuiDatabase.py:433 msgid "DB Type" msgstr "Adatbázis típus" -#: GuiDatabase.py:444 +#: GuiDatabase.py:443 msgid "DB Name" msgstr "Adatbázis név" -#: GuiDatabase.py:452 +#: GuiDatabase.py:451 msgid "DB Description" msgstr "Adatbázis leírás" -#: GuiDatabase.py:473 +#: GuiDatabase.py:472 msgid "Host Computer" msgstr "Kiszolgáló" -#: GuiDatabase.py:528 +#: GuiDatabase.py:505 +#, fuzzy +msgid "start creating new db" +msgstr "Hiba az indexek létrehozása közben: " + +#: GuiDatabase.py:524 +msgid "tested new db, result=%s" +msgstr "" + +#: GuiDatabase.py:527 msgid "Database created" msgstr "Adatbázis létrehozva" -#: GuiDatabase.py:531 +#: GuiDatabase.py:530 msgid "Database creation failed" msgstr "Adatbázis létrehozása nem sikerült" -#: GuiDatabase.py:550 +#: GuiDatabase.py:543 +#, fuzzy +msgid "check_fields: starting" +msgstr "readBlinds indítása" + +#: GuiDatabase.py:549 msgid "No Database Name given" msgstr "Nem lett adatbázis név megadva" -#: GuiDatabase.py:553 +#: GuiDatabase.py:552 msgid "No Database Description given" msgstr "Nem lett adatbázis leírás megadva" -#: GuiDatabase.py:556 +#: GuiDatabase.py:555 msgid "No Username given" msgstr "Nem lett felhasználónév megadva" -#: GuiDatabase.py:559 +#: GuiDatabase.py:558 msgid "No Password given" msgstr "Nem lett jelszó megadva" -#: GuiDatabase.py:562 +#: GuiDatabase.py:561 msgid "No Host given" msgstr "Nem lett kiszolgáló megadva" -#: GuiDatabase.py:589 +#: GuiDatabase.py:575 +#, fuzzy +msgid "Unknown Database Type selected" +msgstr "Ismeretlen játéktípus: '%s'" + +#: GuiDatabase.py:579 +msgid "check_fields: open dialog" +msgstr "" + +#: GuiDatabase.py:588 msgid "Do you want to try again?" msgstr "Meg akarod próbálni újból?" -#: GuiDatabase.py:702 GuiLogView.py:213 +#: GuiDatabase.py:595 +msgid "check_fields: destroy dialog" +msgstr "" + +#: GuiDatabase.py:599 +msgid "check_fields: returning ok as %s, try_again as %s" +msgstr "" + +#: GuiDatabase.py:701 GuiLogView.py:213 msgid "Test Log Viewer" msgstr "Napló böngésző (teszt)" -#: GuiDatabase.py:707 GuiLogView.py:218 +#: GuiDatabase.py:706 GuiLogView.py:218 msgid "Log Viewer" msgstr "Napló böngésző" @@ -1463,11 +1504,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" @@ -2079,12 +2120,8 @@ msgid "Error finding actual seat.\n" msgstr "Hiba az aktuális szék keresése közben.\n" #: Hud.py:589 -msgid "" -"------------------------------------------------------------\n" -"Creating hud from hand %s\n" +msgid "Creating hud from hand " msgstr "" -"------------------------------------------------------------\n" -"HUD készítése ebből a leosztásból: %s\n" #: Hud.py:638 msgid "" @@ -3228,8 +3265,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:1060 msgid "Help" @@ -3411,6 +3448,16 @@ 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 "db connection to " +#~ msgstr "kapcsolódás az adatbázishoz " + +#~ msgid "" +#~ "------------------------------------------------------------\n" +#~ "Creating hud from hand %s\n" +#~ msgstr "" +#~ "------------------------------------------------------------\n" +#~ "HUD készítése ebből a leosztásból: %s\n" + #~ msgid "Fatal Error - Config File Missing" #~ msgstr "Végzetes hiba - Hiányzó konfigurációs fájl" @@ -3474,9 +3521,6 @@ msgstr "" #~ msgid "Table not found." #~ msgstr "Az asztal nem található." -#~ msgid "readBlinds starting" -#~ msgstr "readBlinds indítása" - #~ msgid "re_postSB failed, hand=" #~ msgstr "re_postSB nem sikerült, leosztás=" diff --git a/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo b/pyfpdb/locale/hu/LC_MESSAGES/fpdb.mo index 2c4ea94ad6821a6a58ae76a1be9d08ba23e49357..37b38b530f781da5a262306de61cd16951374215 100644 GIT binary patch delta 18081 zcmb8#2Y6If-pBEqPy(U%4mb1w387<$-y7)kW<1DvGY|Yg=6P{r=|M6m*~W-FKfyKj++X?m7SSKj+@bdeciy z?z*ID^xck4w^{t}i)72{jTd!Ot>J&iGcBtP)i1Cu{)i(mb);nt!3mg!t6jI^c==dR@5q|(1Qc}u?rr?e)tt;VEa*)m4;JrKCZ#j@F5(HKceo- zq@oVxq3-vi+Pw-p;N7SP{{d}$8T;~l>uUNF2)+X8GB;4 zapwBbs1X*RI^oJ7eQAyb86wB(5(@@VVI)(VF;VU@M9&f<{d;sU+ z3DihtXPc2NMRl+Y+u?br`!}JD+p#A;<9Y;pQ2!pgVTVa(s?t%B8XI*Bvs_mqiEmY) z=5&Ya{jR@v{iEw4*SB0ha{bcvpRP?$HSM*-=Cs=r75Qiyg=Q48+ymp?dOm873Q!$c z>edUfJM{og!%I=2{WB^u-=ZRuGTDr<8|wPus7U0w^;OtJ>wg^uJ?I>yv(}}k3v00{ zzJrIGPa)u<`@7}=ez=#Lc0KWlV>>1hac!Ih{8>_Ba)PoqNqx?BGW2UBl0 z$Ao?aYARRbG_1i9_$2DOPq7KMn`_$dgyc}vN~h486FJxh=b`3iC2qnBoQOZ8dOTsC z8DRhw^6i-DAf{4(9b4ji?)hV=jopvXeU|W5gR^lgUV_@fpF~aBaa4!CMJ3-a*c^MG!4&g+YXF5dn5_di z3w6P2)Q!cs1}o6PS5OU4SZd~e8nRNYd{hT6!)$yC710DaTgB4eW;{5ige!Uy4KN%)5~{MU6-P^d>{7K`mb?MT!;NQu@f`!dDKY1M@>Ve%#%t(8qR#gVh#(W%rTQI6Qic?6zeb^lT zglhN@>ijFH^?w9&v2CfDqSH}xy#h4_#i$WpgxZMS#Z$18&%7h%;uz{1P^;=uAMw|6 z`icV+ap+pYiXI$~x8Z5{SJZ>k%FKwos4cb#Taaf4r=a$sQW_L0&7t1UWgjN z<)|s$>>j@cHPzAUDQE<@p*nCMs-bg)bU}c`zNB3 zZW^lHWvBu8-TL|1TI>HB3hg*?8>&YSqI$dsxxjkTJ^p7@(!7LPrmZSW4h%JO}T^Y8)6gxo|70gO8z& zPh($vAGL4%f|}!VBj$k{a3S?gs400Ld*Y|q8JkoRfAy?8g|;{d)w8jvDab>GayI7S z0?fc|I2LP>*|2`VAy`^vR?$|RMg376k3V51j$LO4QiL6;*Q_J{yx^=&98iyrqk5XO z-uz%_iCUJKXyZauc89SOo{QaaD=H^;qS|>LZG0EmOs!u~k#zW%?tc$E;HTBZUvqkb z1NUIF8WYmpsE8ayh4gJCy4HKBWLm`hbiwoR42j2B9LHjhecds1BTt z8t95B1@)v5wO%9ci5k=fa{>0m&Da%pqLOky>iQQ^k$By$e~Nm*m#6`J?;dY{p6O6) zRJ&=YDU4=N&<%x{g=MHv-i#XgUQ~qkqek`u4#byHBls3I(w}f7c0AvVI2Uz(K6b;U zsN4yncD`GXfkdtS6ee=uMeK_yOo`@vFlq#+p+ddfHHb={i%}!L9;e{_sE&P(nxgg_ z%vW$W=1{LhJ^1&i_77vK*8k5GCUKzUMl-^E97X*!ROrt|b>KSGNOq$-Z~!&8Z=tUH z7!_LU0#k2|TFyhTH_pQzScb}li?JQgx3*AF1GnK2d;*mdAEJ%lppvW0g~kF*>=USn z-HVFEbEw>S8}*=L*bAFnWIEmt73m3h3RYlLbAF$D;%&64cfOeKI~<2vx4TjM!Vy#? zj-wh#zQkOADh{B27OLYLQ4fxxI`$x{qqUfeAEMeBbSd%gPGQoeriY7Bq4lF47)6D6 z3l77ZQK5SdN8l@{hJHpxsPkne0;i#-Y8h(PRG^-7DJnAC-TD)k5r3U{%{_1&`%!Op zxp|okLS=UWHpeyC9!pRoUXO~<&8QB(fO_zEs5x(Yh54y999vLdifOn8r{D!q3YwE= zP$4~m6L9R6CUkxrOnn2YqxawyNi0XyND4NYP&+u9`bJb_9!0hD0Zzjno6Y$Zs9f8G ziS>Uk1@-71)B}FOLhQc9Jm4JE9B#vbxD&JSMI4STx0=6%j6*;5U8vR6{c3anVjM#~ zfEjo@4#Ss`2=V<-K@E4m#)Nz_>VhKI&8QAMjtc1^*UwN%mJ&1j!~oP3jYj3nDX5Uo zz?L}Qbvf$3B24`KKT1J!d~4zWU&E+~yow6dH`oW;U27W5K-I_Nc3h0gg>T*CJ+_&R zW&(EL_zG0V{n!aFM;mX!fm;9jC=A7qTwDLnG%yY|_sdWbiMrm0YVZxzNdAHCuf=!Zn2qYN7t`?qRD1VhRO|9h3YyFBP#5;U-gIahYR-Jv8LvYx-jC{7ha1fD zo9H^v)r-2m2Gy}G?(y4D1APob`0fqN|5ysA-)NHL5>yYLK!xfks-YinHMY5lwT$K1 z2H(Z5cpTeflbg+bol(b!;vk%g8i<2KFov44CvPVH>d|`~P?EH`#e}Y->mb*On8W!3 zOvO#E*Sp@~`he@>uFtx@tVC_GF`R~fMI~Xk+e}2#Q6ry*ibT{)L34kV>mRTw^`oee9>ZC90<|ipZ#U;1 z97laEPR8x1j=YQN_-B}mKcNO@?J%aG+HZ>tBx-e{pd{&!-Ep*gL4jLefSOAmYR)&H z*7s(di#MSje9ZM*>_$E5b`z-{s0a>q>(gBqVtbx%c__5tf)Mt?bC4x(U5BG__#NhZ zU=@z1z7-Y1=TMRR9F@e~?lh}m4(fOz7T{)_iihzO?0J{@E81dQ#q+KEC@2YA-fbQ< z8fQ@VqULTFX5mw)4tour`A44t2H&IjdIjUnnVhXmo&n&YpsL)TsY+QsI`DR>WG8t`8B9H--UzmkEjS7bM1M*d2j)0H7r6sxDdBs4UWRp-NsX~1@!=G zAnQ;OxN?b!a9ktJk>oFpi{t6?VbBsCHh(0z8T>G3!A# zGt5SNt>Wff0wF+r3YHgsBx0Bm-+!z5_WpZ{Drg^D(Olw5AVfM_yx|we*4VxO0k{Re-(wkoVWzl!@J!2 zL)e-6OK9U!_k6Rb&Cb{!{TxrjvvD(O&aM5%R9sHAGv;Cd)q#hx6`sJH$AYxHAVti}m=8Fs?`sHu1zM`Q9IP3Xs=k~M}y@qX0xZ=jO(7-}{3s5Qwq4Wn8% z5enKOuR`_g9&C?s_xQ8ehx&Us5r0BW+4yJ8o}Pyx>IJ9>?!zj49yMjt4wwPm?79mCo{2?&xsE$5@Gw>KHC$j!(a%Lj-raludKriOvC#Xmcdz1JN zqY$E?IlKkc&|h#qc6f_#0`%Zwd<5rW%HK?fm!Ph{9Tn1JI1ZB!o2i?KOQ|ozN%#;d zLdRYIb(r|K>e2D*2iHRE|`K{a1JU53Q?iY8Cv9ov_t=CIZoZ6ozmh4|Rhd)zfv@5jUW2jG=nG9o3P$QOUL&XX9g- zhQFX9nD)MDcPT2zqNsN7!!;PkDO&%XKQMdrB2TBPQPecT-RUdr))vJf`7M9E#09GOx{%crNuba2dXa zdccUIW@Izaram9ju>yDEji`v_eQX9+fM-)*jxD1UUZ5}#-#{hT3Dh!a_g`it{ZREx zR6|oxk;=!j@N~?_2XQWbi@(F^pO~pQj5hW5pPK7OVIK7@sQ;wTdYwXFY<0|J^)TE< zJqP>ao2U+)z|%1GGxHI-1gBEJ4z(=bL`Coz+Sv4Sv#$(74QwImdcah~?0y6H<55hQk3{}4ol@oWPvixz>4bPxP`Vy+453o0Whf3B?Uzznj1T}zBn2OV| zH5OnmT!t+$5~a|M!g;70w&7&F6I)g;iae!7viZHaL?~TZBP&4 zG<*&;!-sG< zfLex=urn?}g?cS2dDo#jb|b1|aU6?Bun*6-I(%=Df>4%@#chyHTHs`ae0W)f6;$m*8Bi#cb?w!o08N zpiO-XhVdbsh68^zIpd%r5|1#%iqgF`?ssoo}R3X_x;SBtXdqLVy z=ECWyh8@=nQ6b*px(BnVzko`@=0BT(bi`iN=VJkuVLSZ2d;B>ZO#P#uiT@x9slS*5 zS*ZF_*Yj`y^*c~Ke-0JmW7rcrSxJfInTdM9cvQnPa155?MBITr@Gz=l-{3TCpENru zkzA)IB_)>E3OtPym!W$88Y(jVl9Lku4OkWSq5cGFIlhH`v3ZlE*xSSG;r1|lQ6yMl z=Tt_5_U!VCU?`Gp&svgad;B5C`$@I)MM?4QHVj5fN?_7rlp>m^R4@r5I7U&Qu>?V`$1$O%OJ)pn`l_u7Tk z_MotpIH6!C;2_UguC zw=LTQ?&PDfO_{wq+N*yZ(%7Au>!P!Z?MSH;a_U3tp&U_^!nQA=uPn$TWNwnDS zD~d3_$U294F08Ef1;UBGCBhP{@cROeJ#xWc5x!(;~!6bI;oqPCQl%u$VG^ir^Mq6OpWcxc{=JP{}WTilNk8w z0MAH_uvGJF=C9hW@I*@M(j#11p#|!ASBHHO1{h`n^u%Byv+M;SruFW?QX zvxm;*adx>As7xoo#X)6Ui1?P+k#@nl+0ygEnekP*qmz0CD-vfjo%Npb3cq6)5m{de zvGzML|MI@E%ct+}Uf~Ia)kNJjI!Uf(#xnCl!>gPSYp3`>%B@@TK1pdB3YKTbE}T;k zol)ucFZTJ_f5?07BE`W<0->crLI<4c%#bHg7EWvg4cF!}$8{abrk?>{xYVu)5+Fs! z7bps9%`pLqW=GPt)o^oOe(sW)*>+`syp5eRwO>}lDYGWr1~uAn#1jc~sj^CoHql`G z(451~T7@I_^k8`fODYtnMc4^v)&9B_UJC7F*8{oQ9W&Nzu7m~7L?R{@&dy0#7 ztH*3ni51N%HQCAZByx-?sAQ&mks<7db}9LkYk7d7^L0MVOC>R?fU}OR-^sL=&Ys7U;}?`qPEPiEV|#a67;{FDfOqa+CzxGZH)bpm1B#n-3ii zJF}mUq1Zd?d&l2eA59vf^^AFt0!QOwkr~^?{LF@>EXdKr{?_uEMiS3|=xi3GKbM-B>)0R2NT9y@13a@LqEJ8M+-n5^N`^A{~nT`)gmp;N_< z$AkqZQ7Jsiby?-(R~sQoAGU$+mM6pPuEl zJ3@BADYuI&BeB`hlAK@N60Y%-aZ8m)apE$^U%N9@>O>A)&HB=(C~cDLH8d0S(=gwM zAMEVhkB61|YM%&K`Xd^Nop_A7DB>~K#GZ`~?&^L9(=4--cn+UXYNAt{h+S2?v!up} zL}(!PQ?ys?>!*6fW<52f1uH)B;)-?Mu%u7p{`#FpBc#J6v4^9bS{6J0px;~N$&C9p z6gKhKJ<>c-v9R@ldD6G#$qoJHG_m>*?jc~Y^J{y@ez?#Z^_U1$c>)1XnavCo5-bvZ zXid7p!&@#wBx`)(Lb9yxXqhiu6ZC7=YU6=3q;_Y3+jd%%0O9>uQtBcV;6-Pms3(rAs8sjjNiHW zilmkExUZ~sPoTPrhlcE-`gl!OB6_@uxYzfOny=B7Wppjl_!G8qnd^3jYcgXKx0bh^ zSM7_`#_iJD-BmOZzklmHO``dJMix>yczHOrd;JHlE+hIoHDF#f^rxnF4@t!v!&yr< z7Zvg$ocQ83_vD&;=w{7K3g>9B&Jmysfc;DWyV)-JC-~)r#?xT$lBc@ zuCN*%3)JqcYFv-h?yjhePrrV9(&R>0F<|!5(qK)Mr}4%0hxORRLJ#}OoDk8A#6P?t zJGt*%r-TIbgvg_cP;FexKHyWr71qZ6Q)9huJ`t_mnAlyy{I1j+z0sF;25(~%+<%*a zG!v-`20V;e)AH*tZ_Q;5qw{l)$*JGNSO1sX;YWI>~{8l+|HPb+% z)%TU#8qz;l#+Oii@&$aE@y@qwNNQ=moa{P7)XqG+f?v^&2Utgp( z@!Ja;@2d@G`T4?6AuXc%mexA{a1HxQ^f%Aool@#iRwnl5lb*ts#N_h1cyMEtN85!W z9r5@nbC1qhCvRJI7tmHBWFs09mCZg74A-Xf&W_uYiR1rqYi8VjqCBZpVknHV%2O7< z^2yXDEm^$*`c>tLU%T(hq+TaKKk?&1TPW>k#QN<2bL{s0z3YEI?BBntZ^ItWy7BO8 zX!rvbJ4vkFGl2m^6YrjM+iWCtTLov?B|PSZ7hmwq&q?*|-t~u3NpoZG|Dj*~k)+2v z$Fd$zi_fdw&@^>Hu%>pm-YsSEL(lDL+C9I9Zv_2mNIzoqp7DA@oXYaQRA6kDSs{r-pv9TEkADS`~iJ@&I;6KGAEOa(a*EQqLmL`k8L1;VE9+|-}jvPC&OE84W zh$o!*&WRs<@#&^#&6quNdH$UIx!Jb*ZSF}V0iCPgD?OniO;2Uxm#HW5%HsD&fhQ7S z8{(~0W6z$MKhG`+mKX9Bz;{6G>Fc^qt=+*SjNqpb!|>Si^5@oFpmAx7^OZGv^YYEL zgWt=EkA%dX@ylPkGr7~OU=0g$b>g*cnJ=Z-=)Zo@a>nYAFRbyz+r1f1np(f5YWHEy z{69Y);~U=EmmIDC4f2~`F~5qCQ^=N_t>089|DLIj+yDNf=A_+GYm^^15YKu0gJ$#H z-%aL;4J+6F-=C@F?mo2ccTK6UkZH2x8z=OuPuqEC9b@00qTYwJ!Vm$ETH zeA&TC&686!KJ|mFHO`B-`09d)b6cu z_{Jo^_WHegV@ROYGR%aIRVeHrS-wwnR-*R8~d{;z%$ Kb^Z9_SmlridsisECSRBzHkjanBt?QQY?hQ9vMsWU(;nTWao^%-1C|b4$$@ zwQlOvh*qd=lWA$1S!QX?RHIq>%W2epuQ%uX9>4#mf1c-a?!D)p^Esb$znVLj1aA5` z!24B$z;zD)z3lHe&9Jsy zX{?1mpceL>~UQTC2Wp*pgq>cd+qh1*qV3} z)<-XnzzVzvFQJ|bWIttNYkTXxs4X7Vnfzq^HAI2iwfo#9is0#&#gHSKb#s>H# z*2ArsimzfC-a##7cvq9rDX0k+U>H7zdVURha7S12uM{4mLta9q_77C*B9hErb;NMu z?$%UmI!>g&7)he@A!=`LTWfYRaRX~}Yg=mxX<=oK)2HG}Oe$BB#phOtu}fQ4i#zR#=KUhKsR!&ry506?Gi< zqwaqbDHrDiYQ_IX9oxX3W`&{FXlnwhxCd6t{*R=gqM3$zVIDTdVw{I7u@&Ay561Q~ z@nCF1oQEB7F;X_pe$>RSqE5pN|$YEaU(Y<*S|td=qBpZC-DO9TakOoeaGX^!G<*5GcsFnT|Bk(g+hJUni zO)nd+qG*QNf-mn!lp`)mjU$A~>`+q@If1Ud%+(2H4!-zjkHNWrC!%c1U z$D#BuM%Bhi)O*e$wc&Lx)2KnmUDVzLjW8=}hKk#xt`9&xn1VBL3}&H=8n{WC*|L_% zt~hN_$1x9k;T8iW^p04b={q@nsJp(d1p8gMS^ zbnLONEhx%~kqOPw+rT%$Tjl7B>czYcAS88gKM+({Tpk9!L)RXf( za#Wq4kn(WiCzv0Thfx!K6!+pXRLZ+gG{-m@wV)9ggJW%fDQY5*SXWFW|C-4LI<(U5 zSQq!AW?G3VzTin_OTthqibZ9p3+hFEQ1=Z)jWZNA?s#l~Gf^)t#@6^4rr>Tb4XyZR z)H&}o*$#}_yFTcT15lsR!PpivP#=;NSQB?)J=}{e@F;4JFQFz}XNoDp=BRPHp`Q1S zr4de}5If=`RF&?x{pV2=`3V`zxq%uub*d?*G8{s@1k}VDW#T>S z7s!IW&NUiZ;V-BMZ=zNbJ>67)Cmc$AAI4$@DzyhtD}M`>`u9*7{McUq6cdTRLVXYF z%`llAi`t@TI9caEhelUA-oeiJJNCx*>E;ufjrS67!EX2^sx~5Knt{_%6W)#q=wcJR zg6hAE+WW8!^WtV0N!%8z|NK9IMl(7lqE=XfP4Q_|>Rv}}!3k8ceP}(6TFE(7M!rQI zziX%>j+|wFeA-|`;$+koOht`bfZmog9;2awcc5xv4=S~l*a(lKCU6n;;AK>5e?=X` zRm#ji+bT@+y4XV`CHf+olG-sBx(U2QCreC(`yD!r9%^$ih(%G-Z01Zm!N9mVQhhi zP)lZg z-e<3mv2nV+o`=fZ0*t`bsG8b=8t*Ms4Sa+e?^{%6yuZ?jp;3E|`7*`f!^GpT3{Ro< zcvudfXZ2$=mSQ=sMZKVYENsCKieJ5PL9I=RcW- zhmKqf#ucbk`cUU|H)_w{LJjmadhjN)drqUd=DBiIaXo<{xB++Lc2vfO6_}OhVgT_& zSj_vKavJUMXVe}=vFr($fJwL%_2Nnl#ZRynUP4XypQx1of||e|7=)n@nEnP>n>Y%! zC9P4J8i3w9G$zr|1KFsR=iB%(tV_Ja#_LcM*@PN!KX%2#sEORb1pEV)u@3XhN>fo8 z8Hw8JDX1+-pGW>R^Tl*%;8my-lE8SqT^60&PLV96R3&r zL1px>)|1$P_zG&FzZa4JzBFnVn;8v5ZABsW!i}f_&!ARt3-uicC^0MPhl#|4QK_Ae zdSL}>;=55VJc`v@hq~_)DuaJ`ZAXn#bNpgZ=QaiPWy?bCwHL#1Ick87*alz6`gjpN zcny;ns0^i`o*#o+Sq|#?`Pc|oqsHBdP4Gx{%>JLZ7j9TX`24AQV=)2;p*~EL zupXwPR`vjD0&7t(I*Qu5bJziYL!Al_pUD_(hpM$y?13w=C+~NvXmrOrsMI7qV)kq( zYQ_)X3P1K9HS-7_YKrmL5r?6ke-NW^A9leHP|x2*J=gd#GkzlK_$8xPGtHw>it8~S zLmxL)UWR(`0BXRGQO7V~p;>t%HY1*f8n6so;dA!-G3#~I!lD+L`{S*ti`ajyB!>>2 z*Ttw*`%uT_8B_{)qxN{e^-a`($1n!ZqgMV0HphmG&2wE)aUYDuDK>r-TM|FJnAE5` zkJ6!)oJI|N4L#`pgjrcEwk1xn&O;6G4C;7QqH5uaHEf9)uNP{86H&!mjH;DIsG{EF zrJ<|;^bf+Wco0h$EGGF)c*z0Q*~TG8=5Y9$|F8@z?uGtVkBp}|;-crGe+4_a4PH)AgS`*8q9J!wAK z)2wr>Mb<~EW&fAi4xjZo>mKXt)}z)Bum&$Ui*@iKYC=Dtw(<@JVdQF4)X^A19EY{B z2Wkrk<3Qf;%%Y(p+==>99YU@ABq|fXU^6L zJ*w)vp~g=`Womi_=U*KU*$Ydt9`Sk%#@(pnvmbr4sbtipa6wwC<&q%m@>DYE65NcPpnPf7=o&Z{Yhp6$l#IZ}Sd6`J zC2A!na2(dyXliCEDuatq8C`{X;bx4)4^Rv9erp>M&)65CwqykAMbnV_aY|5`3EX7t zhI&B`hT}YJicesD+=j}Oi#iR>o;5FSi4BN*o7n55(db0S9BhaiPy@Vz+N-0eb61{{2tbZdR0sI(Fr# z^STOSa06<!^F|pms}^|RQgL^FwdPr9m~5o9Ea~Q<7`B)Ubve^ zG#)~|_%j<{My1Mm(fk@VL|yNODyjjPk7IBi9>rRi_>!?VP9{#qfw%=z@Efd+9bP8? zAvC(bY-(U2wkIyaP~40v#uu?WzJV&X8>ox~y<(1K7gS2KQPq76+v1m~`)lkq<40j@ z;$f)TnYY(#s(dFMQFK(IW_BL6!Yj7_CaQSq?K6LNi^n>|b5LKJdbOK>#(-o-TP()bMZrMimgSnGB3_xW6$MSK{iVT%Lif6bO-DDg4W zgim7yUc_)LIB2dfL@n$oya(5z7V;+6=lxC<4bA+l^&hAS{l~^3hs?LXIVvNsq6gnV zt@HwFBEO=x!uhL-YofL=0vlp0Y>K^6MLiL_>HO!@(4Oo-rQ}Zxz|n7*DjttI_vxtq zOzem`*cI1d7yJN~iM!YsYrScTGzRY@9*LUB25g0|U;^)VKBdtU1OH}=EE}zb!z6IwxHO$0JYbTV>euZL-1|XRtCRC{dr&(v9-dj-R zHDA6*=~bT9L5|opW2bA6=k4SoQJCJ`KSTQQ8lmgwG72^00t~|EQ4hR`deKK1fuCa|yoOO2bi&k*2Q{%N=#R5ewUTZ7AF!5T z5d8~n>|JI%Ds0CF)R%25s#^DA4LpWQ?T4t9Ua|47sQW_SHP>6BGSC~f@*$|>ITKZU zb5R+19NXyp@1miZpG18J&Y>Ro0X5U#u?F73ni%+=`S*ZOj3J(Y%G^WP2KSvyI>UuxaM8~2gnvKdxF>1vNQCs?~ z^-a`@&tn+gK|NpRL$;9jJ02QZNpEb6)3G%!!E$^BCt>@)n-wiW5AiB&r|Y-}&!HCb z_($gF_$jPK?03>kpf;+85>OLKMsHmj<84PKD%B-e8z07GT#D=QBUGw0KQ>cCG3YWpP1v8fvWOi^x$gj zi2G10xoEH7z(sfpqMr<1csswG}C6&CK(# zkoa-zjW;kH<32N~9)QZ!NL1#g+ISW=ATB@^?c=DeS&sE_18RbMyfm88ID#7Z3)G%n zN6q}-7=pp)%&%8Cs;WDoeq?%}?i+>oVmj*i&Db4xV;o*WEws*gGhPGK#J$aF=s2`P z-H?rq@P5>c7h))`!ARVUdeK2l!r!n3w*OpzoaT>Kcn{9EZbB{WE!0BKpiajPWIV4E zcEMDATb#&+(WpJzgW8HuF$Hg;UfA~wvw{-5kJyXK$h+7XPoZ8AaM5Ha2AdG~M5TNz zYC$p@;ZMEXKXq z99v#CKVto{8*w43e;3B!G4$$1-_g*@@8Se(^NqRTQR`OJgYQ_sMy2wuHT+vMp|+@^ znvGgeA%@{f8*f4_=n%HTufApf)e(5bbab$e##s6vM9p*)MqwrDIGslg{59(NpRorv zzH0V*6lwx_*dLc*b&a4-!zt8v=kC=+^LMkM-C?Bu~ z)tbSj`T3r4x%nl&HGN`ze~ycGe;WUJko)P>iT>`G87~DkO3Rp=<)jsQW)-o*+yYN_ zVQE38<7+<6<9mPh8TaMP0)Mx~oHRe*%A5+{gxo&96S>3Ol)N%Ow_pC?0Cz)Stw7(Q z;&*)uOV0bYl*YUM^D_h7ugeDd``VO$?EYCE?&l7Cw5z}S#bciaMikDz-;^tReAAXRb0;qG`uPHuHT0z|``kBT`6&1A%aiu{47PgZ_zL1xt}CG#`lLwt8vH}#c2HP#JTGczE> z-jH2d;``XQ)OY=2GdFx)k6`bAziDxCA=HQG{;EC23wR}Dd9r5BI$n|Q$?)W76&5cj zsoGXNtIEyqrHyn3c;e=H=2mShVwP2V=2sogFNycKGdIuoa~p42?iVtE{WY`n-QGI4 z=D;lOI9}mCxb4dTU#(r+-O6220dAcapYwD7`BG1R-+;aUc5m(@Wgox#o3D;L$35sy zujOl6Il|33GN7h=@c3nX{|uiBQMlTlLTx{0Ue z`uVz?s_z~?{ky+gd1i&5FY~h#zM^wIedo`m`_7-Q!x0<;pf};-8gsj_xl6g13zu|4@%b>e0kR|yOVw{^mBuMIqdKDzj-C7d4^{J3oqoA s#U=ljgZWi^=434>$?D~P^PdEN-^jbo+(UOe`>hN2n|ffo-y;A21* Date: Mon, 30 Aug 2010 01:33:44 +0200 Subject: [PATCH 45/48] l10n: updated Hungarian translation --- pyfpdb/locale/fpdb-hu_HU.po | 45 +++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/pyfpdb/locale/fpdb-hu_HU.po b/pyfpdb/locale/fpdb-hu_HU.po index f7532086..edd2a8f5 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-30 01:30+CEST\n" -"PO-Revision-Date: 2010-08-30 01:20+0200\n" +"PO-Revision-Date: 2010-08-30 01:33+0200\n" "Last-Translator: Ferenc Erki \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -949,8 +949,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:117 msgid "_Add" @@ -1058,17 +1058,15 @@ msgstr "Kérlek ellenőrizd, hogy a PostgreSQL szolgáltatás el van-e indítva" #: GuiDatabase.py:406 msgid "db connection to %s, %s, %s, %s, %s failed: %s" -msgstr "" +msgstr "adatbázis kapcsolódás sikertelen: %s, %s, %s, %s, %s hibaüzenet: %s" #: GuiDatabase.py:414 -#, fuzzy msgid "AddDB starting" -msgstr "readBlinds indítása" +msgstr "AddDB indítása" #: GuiDatabase.py:423 -#, fuzzy msgid "Add New Database" -msgstr "A_datbázis" +msgstr "Új adatbázis hozzáadása" #: GuiDatabase.py:433 msgid "DB Type" @@ -1087,13 +1085,12 @@ msgid "Host Computer" msgstr "Kiszolgáló" #: GuiDatabase.py:505 -#, fuzzy msgid "start creating new db" -msgstr "Hiba az indexek létrehozása közben: " +msgstr "új adatbázis létrehozásának indítása" #: GuiDatabase.py:524 msgid "tested new db, result=%s" -msgstr "" +msgstr "új adatbázis tesztelve, eredmény=%s" #: GuiDatabase.py:527 msgid "Database created" @@ -1104,9 +1101,8 @@ msgid "Database creation failed" msgstr "Adatbázis létrehozása nem sikerült" #: GuiDatabase.py:543 -#, fuzzy msgid "check_fields: starting" -msgstr "readBlinds indítása" +msgstr "check_fields: indítás" #: GuiDatabase.py:549 msgid "No Database Name given" @@ -1129,13 +1125,12 @@ msgid "No Host given" msgstr "Nem lett kiszolgáló megadva" #: GuiDatabase.py:575 -#, fuzzy msgid "Unknown Database Type selected" -msgstr "Ismeretlen játéktípus: '%s'" +msgstr "Ismeretlen adatbázis típus lett kiválasztva" #: GuiDatabase.py:579 msgid "check_fields: open dialog" -msgstr "" +msgstr "check_fields: párbeszéd nyitása" #: GuiDatabase.py:588 msgid "Do you want to try again?" @@ -1143,11 +1138,11 @@ msgstr "Meg akarod próbálni újból?" #: GuiDatabase.py:595 msgid "check_fields: destroy dialog" -msgstr "" +msgstr "check_fields: párbeszéd lezárása" #: GuiDatabase.py:599 msgid "check_fields: returning ok as %s, try_again as %s" -msgstr "" +msgstr "check_fields: OK visszaadása, mint %s, újrapróbálás, mint %s" #: GuiDatabase.py:701 GuiLogView.py:213 msgid "Test Log Viewer" @@ -1504,11 +1499,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" @@ -2121,7 +2116,7 @@ msgstr "Hiba az aktuális szék keresése közben.\n" #: Hud.py:589 msgid "Creating hud from hand " -msgstr "" +msgstr "HUD készítése ebből a leosztásból: " #: Hud.py:638 msgid "" @@ -3265,8 +3260,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:1060 msgid "Help" From 2b97d938f1f549bfb7eb69ca7b364766892b7f0e Mon Sep 17 00:00:00 2001 From: Mika Bostrom Date: Mon, 30 Aug 2010 12:35:49 +0300 Subject: [PATCH 46/48] Fix HUD bug with specified decimals If any stat in HUD had manually specified number of decimal places, the entire hand processing stopped when the first such stat was encountered. Now really do the decimal place formatting as it was supposed to work. Also, for future reference: tuples are immutable - you can't overwrite any tuple member. Hence the need for new routine, __stat_override() --- pyfpdb/Stats.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pyfpdb/Stats.py b/pyfpdb/Stats.py index 285a45ea..3616fa87 100755 --- a/pyfpdb/Stats.py +++ b/pyfpdb/Stats.py @@ -83,14 +83,29 @@ re_Places = re.compile("_[0-9]$") import codecs encoder = codecs.lookup(Configuration.LOCALE_ENCODING) + +# Since tuples are immutable, we have to create a new one when +# overriding any decimal placements. Copy old ones and recreate the +# second value in tuple to specified format- +def __stat_override(decimals, stat_vals): + s = '%.*f' % (decimals, 100.0*stat_vals[0]) + res = (stat_vals[0], s, stat_vals[2], + stat_vals[3], stat_vals[4], stat_vals[5]) + return res + + def do_tip(widget, tip): _tip = Charset.to_utf8(tip) widget.set_tooltip_text(_tip) def do_stat(stat_dict, player = 24, stat = 'vpip'): + statname = stat match = re_Places.search(stat) - result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': stat, 'player': player}) + if match: # override if necessary + statname = stat[0:-2] + + result = eval("%(stat)s(stat_dict, %(player)d)" % {'stat': statname, 'player': player}) # If decimal places have been defined, override result[1] # NOTE: decimal place override ALWAYS assumes the raw result is a @@ -99,9 +114,8 @@ def do_stat(stat_dict, player = 24, stat = 'vpip'): # to three decimal places anyhow, so they are unlikely override # candidates. if match: - base = stat[0:-2] places = int(stat[-1:]) - result[1] = '%.*f' % (places, 100.0*result[0]) + result = __stat_override(places, result) return result # OK, for reference the tuple returned by the stat is: From 099db5e7d0a64175aff1ad3a69eb20da083884e9 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 30 Aug 2010 17:24:28 +0200 Subject: [PATCH 47/48] THP: add header --- pyfpdb/TestHandsPlayers.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) mode change 100644 => 100755 pyfpdb/TestHandsPlayers.py diff --git a/pyfpdb/TestHandsPlayers.py b/pyfpdb/TestHandsPlayers.py old mode 100644 new mode 100755 index ae521f71..f1039115 --- a/pyfpdb/TestHandsPlayers.py +++ b/pyfpdb/TestHandsPlayers.py @@ -1,4 +1,23 @@ +#!/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 import os import codecs From dadeb82b4b7376c01b65d9d95f8eca4aa7ed0380 Mon Sep 17 00:00:00 2001 From: steffen123 Date: Mon, 30 Aug 2010 17:25:08 +0200 Subject: [PATCH 48/48] l10n: add french to localise script --- pyfpdb/locale/localise.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyfpdb/locale/localise.sh b/pyfpdb/locale/localise.sh index 7f214c38..b9d57292 100755 --- a/pyfpdb/locale/localise.sh +++ b/pyfpdb/locale/localise.sh @@ -5,11 +5,12 @@ echo "creating template po file" python /usr/share/doc/python-2.7/examples/Tools/i18n/pygettext.py --output-dir=locale --default-domain=fpdb --output=fpdb-en_GB.pot *.py* echo "merging template with existing translations" -msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot msgmerge --update locale/fpdb-de_DE.po locale/fpdb-en_GB.pot +msgmerge --update locale/fpdb-fr_FR.po locale/fpdb-en_GB.pot +msgmerge --update locale/fpdb-hu_HU.po locale/fpdb-en_GB.pot echo "compiling mo files" -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 +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 pocount locale/*.po