You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
|
Feb
(1) |
Mar
(15) |
Apr
(20) |
May
(2) |
Jun
(9) |
Jul
(3) |
Aug
(2) |
Sep
(17) |
Oct
(16) |
Nov
(38) |
Dec
(40) |
2010 |
Jan
(51) |
Feb
(11) |
Mar
(24) |
Apr
(31) |
May
(24) |
Jun
(3) |
Jul
(9) |
Aug
(1) |
Sep
(29) |
Oct
(33) |
Nov
(81) |
Dec
(6) |
2011 |
Jan
(2) |
Feb
(4) |
Mar
(13) |
Apr
(4) |
May
(24) |
Jun
(4) |
Jul
(19) |
Aug
(46) |
Sep
(10) |
Oct
(28) |
Nov
(31) |
Dec
|
From: <sig...@us...> - 2011-03-12 00:11:07
|
Revision: 768 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=768&view=rev Author: siggipals Date: 2011-03-12 00:11:01 +0000 (Sat, 12 Mar 2011) Log Message: ----------- #109 - Added laps data to record view Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/gui/windowmain.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2011-03-11 09:18:39 UTC (rev 767) +++ pytrainer/trunk/glade/pytrainer.glade 2011-03-12 00:11:01 UTC (rev 768) @@ -952,6 +952,48 @@ <property name="position">1</property> </packing> </child> + <child> + <widget class="GtkFrame" id="frame_laps"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <child> + <widget class="GtkAlignment" id="alignment12l"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow2l"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="height_request">300</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <widget class="GtkTreeView" id="lapsTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkLabel" id="label14"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Laps</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">5</property> + <property name="position">2</property> + </packing> + </child> <child> <widget class="GtkHBox" id="recordbuttons_hbox"> <property name="visible">True</property> @@ -996,9 +1038,9 @@ </child> </widget> <packing> - <property name="expand">False</property> + <property name="expand">True</property> <property name="fill">False</property> - <property name="position">2</property> + <property name="position">3</property> </packing> </child> </widget> Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2011-03-11 09:18:39 UTC (rev 767) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2011-03-12 00:11:01 UTC (rev 768) @@ -143,6 +143,17 @@ {'name':_("Max distance"), 'xalign':1.0, 'format_float':'%.1f', 'quantity':'distance'}, ] self.create_treeview(self.statsTreeView,columns) + + #create the columns for the laps treeview + columns=[ + {'name':_("Lap")}, + {'name':_("Distance"), 'xalign':1.0, 'format_float':'%.1f', 'quantity':'distance'}, + {'name':_("Time"), 'xalign':1.0, 'format_duration':True}, + {'name':_("Avg speed"), 'format_float':'%.2f', 'quantity':'speed'}, + {'name':_("Avg pace"), 'format_float':'%.2f', 'quantity':'pace'}, + {'name':_("Calories"), 'xalign':1.0}, + ] + self.create_treeview(self.lapsTreeView,columns) self.fileconf = self.pytrainer_main.profile.confdir+"/listviewmenu.xml" if not os.path.isfile(self.fileconf): @@ -317,6 +328,7 @@ self.record_calories.set_text("") self.record_title.set_text("") self.label_record_equipment.set_text("") + self.frame_laps.hide() com_buffer = self.record_comments.get_buffer() start,end = com_buffer.get_bounds() com_buffer.set_text("") @@ -367,12 +379,26 @@ else: self.label_record_equipment.set_markup("<i>None</i>") - for lap in activity.laps: -# print lap - t = float(lap['elapsed_time']) - m = lap['distance'] - s = m / t * 3.6 -# print t,m,s, lap['calories'] + if len(activity.laps)>1: + store = gtk.ListStore( + gobject.TYPE_INT, + gobject.TYPE_FLOAT, + gobject.TYPE_STRING, + gobject.TYPE_FLOAT, + gobject.TYPE_FLOAT, + gobject.TYPE_INT, + ) + for lap in activity.laps: + t = lap['elapsed_time'] + m = lap['distance'] + s = m / float(t) * 3.6 + iter = store.append() + store.set(iter, 0, lap['lap_number']+1, 1, m/1000, 2, str(int(float(t))), 3, s, 4, 60/s, 5, lap['calories']) + self.lapsTreeView.set_model(store) + self.lapsTreeView.set_rules_hint(True) + self.frame_laps.show() + else: + self.frame_laps.hide() else: self.recordview.set_current_page(0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2011-03-11 09:18:45
|
Revision: 767 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=767&view=rev Author: dgranda Date: 2011-03-11 09:18:39 +0000 (Fri, 11 Mar 2011) Log Message: ----------- Preventing pytrainer to fail when dealing with wrong (corrupted?) data Modified Paths: -------------- pytrainer/trunk/pytrainer/stats.py Modified: pytrainer/trunk/pytrainer/stats.py =================================================================== --- pytrainer/trunk/pytrainer/stats.py 2011-03-11 00:40:53 UTC (rev 766) +++ pytrainer/trunk/pytrainer/stats.py 2011-03-11 09:18:39 UTC (rev 767) @@ -65,9 +65,13 @@ data['sports'][r['sport']]['total_'+f] = 0 for f in fields: data['sports'][r['sport']][f] = max(data['sports'][r['sport']][f], r[f]) - data['sports'][r['sport']]['total_'+f] += r[f] - data[f] = max(data[f], r[f]) + if r[f] is not None: + data['sports'][r['sport']]['total_'+f] += r[f] + data[f] = max(data[f], r[f]) + else: + logging.info('Skipping null values') + data['total_duration'] += r['duration'] data['total_distance'] += r['distance'] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sig...@us...> - 2011-03-11 00:41:01
|
Revision: 766 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=766&view=rev Author: siggipals Date: 2011-03-11 00:40:53 +0000 (Fri, 11 Mar 2011) Log Message: ----------- Totals tab, stacked graphs and refactoring, colored map selection - a new "Totals" tab, along the lines of that suggested in ticket #60, with a table of aggregate info for each sport, ordered by descending duration. It also includes a graph with a bar for each year. - extension of the stacked/colored graph of the Week view to Day, Month, Year and Totals. - refactoring of day/week/month/year(/totals) graph code, introducing a base class "TimeGraph", eliminating some pretty severe code duplication - I had also done speed coloring on the Google maps, but Jonathan's implementation is better than mine, so I scrapped the latter. I am contributing an extension of the coloring to HR and cadence*, and a combobox to select None/Speed/HR/Cadence. * (The cadence coloring is untested, as I don't have a cadence sensor or footpod. Can someone try it out?) Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/daygraph.py pytrainer/trunk/pytrainer/extensions/googlemaps.py pytrainer/trunk/pytrainer/extensions/osm.py pytrainer/trunk/pytrainer/gui/drawArea.py pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/monthgraph.py pytrainer/trunk/pytrainer/weekgraph.py pytrainer/trunk/pytrainer/yeargraph.py Added Paths: ----------- pytrainer/trunk/pytrainer/stats.py pytrainer/trunk/pytrainer/timegraph.py pytrainer/trunk/pytrainer/totalgraph.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/glade/pytrainer.glade 2011-03-11 00:40:53 UTC (rev 766) @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0"?> <glade-interface> <!-- interface-requires gtk+ 2.6 --> <!-- interface-naming-policy toplevel-contextual --> @@ -1316,7 +1316,7 @@ <widget class="GtkSpinButton" id="spinbuttonY1Min"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">0 -500 1000 1 10 0</property> <signal name="value_changed" handler="on_spinbuttonY1_value_changed"/> @@ -1334,7 +1334,7 @@ <widget class="GtkSpinButton" id="spinbuttonY1Max"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">0 -500 1000 1 10 0</property> <signal name="value_changed" handler="on_spinbuttonY1_value_changed"/> @@ -1397,7 +1397,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="max_length">2</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="adjustment">1 1 10 1 1 0</property> <signal name="value_changed" handler="on_spinbuttonY1LineWeight_value_changed"/> </widget> @@ -1439,7 +1439,7 @@ <property name="sensitive">False</property> <property name="can_focus">True</property> <property name="max_length">2</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="adjustment">1 0 10 1 1 0</property> </widget> <packing> @@ -1531,7 +1531,7 @@ <widget class="GtkSpinButton" id="spinbuttonY2Min"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">0 -500 1000 1 10 0</property> </widget> @@ -1548,7 +1548,7 @@ <widget class="GtkSpinButton" id="spinbuttonY2Max"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">1 -500 1000 1 10 0</property> </widget> @@ -1618,7 +1618,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="max_length">2</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="adjustment">1 0 10 1 1 0</property> </widget> <packing> @@ -1650,7 +1650,7 @@ <property name="sensitive">False</property> <property name="can_focus">True</property> <property name="max_length">2</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="adjustment">1 0 10 1 1 0</property> </widget> <packing> @@ -1727,7 +1727,7 @@ <widget class="GtkSpinButton" id="spinbuttonXMin"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">0 -500 1000 1 10 0</property> </widget> @@ -1744,7 +1744,7 @@ <widget class="GtkSpinButton" id="spinbuttonXMax"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> <property name="width_chars">4</property> <property name="adjustment">0 -500 1000 1 10 0</property> </widget> @@ -1985,6 +1985,32 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="labelMapLineType"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="label" translatable="yes"><small>Show:</small></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="padding">5</property> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkComboBoxEntry" id="comboMapLineType"> + <property name="visible">True</property> + <property name="items" translatable="yes">None +Speed +Heart rate +Cadence</property> + <signal name="changed" handler="on_comboMapLineType_changed"/> + </widget> + <packing> + <property name="expand">False</property> <property name="position">3</property> </packing> </child> @@ -1997,8 +2023,7 @@ </widget> <packing> <property name="padding">5</property> - <property name="pack_type">end</property> - <property name="position">2</property> + <property name="position">4</property> </packing> </child> <child> @@ -2015,7 +2040,7 @@ <property name="expand">False</property> <property name="fill">False</property> <property name="pack_type">end</property> - <property name="position">1</property> + <property name="position">5</property> </packing> </child> <child> @@ -5356,6 +5381,297 @@ <property name="type">tab</property> </packing> </child> + <child> + <widget class="GtkHBox" id="statsarea"> + <property name="visible">True</property> + <child> + <widget class="GtkVBox" id="vbox3"> + <property name="visible">True</property> + <child> + <widget class="GtkFrame" id="frame9"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <child> + <widget class="GtkAlignment" id="alignment10"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <widget class="GtkTreeView" id="statsTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <signal name="button_press_event" handler="on_sportstatsTreeView_button_press"/> + </widget> + <packing> + </packing> + </child> + </widget> + </child> + <child> + <widget class="GtkLabel" id="label27"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Sports</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkFrame" id="frame1123"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <child> + <widget class="GtkAlignment" id="alignment101"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <widget class="GtkHBox" id="total_vbox"> + <property name="height_request">650</property> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="spacing">8</property> + <child> + <widget class="GtkVBox" id="vbox123"> + <property name="visible">True</property> + <child> + <widget class="GtkComboBoxEntry" id="total_combovalue"> + <property name="visible">True</property> + <property name="items" translatable="yes">Distance +Time +Average Heart Rate +Average Speed +Calories</property> + <signal name="changed" handler="on_total_combovalue_changed"/> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label-37"> + <property name="visible">True</property> + <property name="label" translatable="yes">Versus</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkComboBoxEntry" id="total_combovalue2"> + <property name="visible">True</property> + <property name="items" translatable="yes">None +Distance +Time +Average Heart Rate +Average Speed +Calories</property> + <signal name="changed" handler="on_total_combovalue_changed"/> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkTable" id="table3"> + <property name="visible">True</property> + <property name="n_rows">4</property> + <property name="n_columns">2</property> + <child> + <widget class="GtkLabel" id="label15"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="yalign">0</property> + <property name="label" translatable="yes">Total distance:</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label19"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="yalign">0</property> + <property name="label" translatable="yes">Total duration:</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="labelTotalDistance"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">5</property> + </widget> + <packing> + <property name="top_attach">0</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="labelTotalDuration"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">5</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label21a"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="yalign">0</property> + <property name="label" translatable="yes">Start date:</property> + </widget> + <packing> + <property name="top_attach">3</property> + <property name="left_attach">0</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label22a"> + <property name="visible">True</property> + <property name="xalign">1</property> + <property name="yalign">0</property> + <property name="label" translatable="yes">End date:</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="labelStartDate"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">5</property> + </widget> + <packing> + <property name="top_attach">3</property> + <property name="left_attach">1</property> + <property name="right_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="labelEndDate"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">5</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">4</property> + <property name="top_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="x_padding">10</property> + <property name="y_padding">10</property> + <property name="y_options">GTK_SHRINK</property> + </packing> + </child> + </widget> + </child> + + + </widget> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + </widget> + <packing> + </packing> + </child> + </widget> + </child> + <child> + <widget class="GtkLabel" id="label271"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>All</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="padding">6</property> + <property name="position">3</property> + </packing> + </child> + </widget> + <packing> + <property name="position">0</property> + </packing> + </child> + </widget> + <packing> + <property name="position">6</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label28"> + <property name="visible">True</property> + <property name="label" translatable="yes">Totals</property> + </widget> + <packing> + <property name="position">7</property> + <property name="tab_fill">False</property> + <property name="type">tab</property> + </packing> + </child> </widget> <packing> <property name="position">1</property> @@ -5399,7 +5715,7 @@ <widget class="GtkEntry" id="lsa_searchvalue"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> </widget> <packing> <property name="expand">False</property> @@ -5545,13 +5861,13 @@ <widget class="GtkVBox" id="waypointarea"> <property name="visible">True</property> <child> - <widget class="GtkFrame" id="frame10"> + <widget class="GtkFrame" id="frame12"> <property name="visible">True</property> <property name="border_width">9</property> <property name="label_xalign">0</property> <property name="shadow_type">in</property> <child> - <widget class="GtkAlignment" id="alignment10"> + <widget class="GtkAlignment" id="alignment15"> <property name="visible">True</property> <property name="left_padding">12</property> <child> @@ -5701,7 +6017,7 @@ <widget class="GtkEntry" id="waypoint_longitude"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> </widget> <packing> <property name="left_attach">3</property> @@ -5716,7 +6032,7 @@ <widget class="GtkEntry" id="waypoint_description"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> </widget> <packing> <property name="left_attach">1</property> @@ -5731,7 +6047,7 @@ <widget class="GtkEntry" id="waypoint_latitude"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> </widget> <packing> <property name="left_attach">3</property> @@ -5744,7 +6060,7 @@ <widget class="GtkEntry" id="waypoint_name"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="invisible_char">●</property> + <property name="invisible_char">●</property> </widget> <packing> <property name="left_attach">1</property> @@ -5846,7 +6162,7 @@ </widget> </child> <child> - <widget class="GtkLabel" id="label15"> + <widget class="GtkLabel" id="label29"> <property name="visible">True</property> <property name="label">label162</property> </widget> Modified: pytrainer/trunk/pytrainer/daygraph.py =================================================================== --- pytrainer/trunk/pytrainer/daygraph.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/daygraph.py 2011-03-11 00:40:53 UTC (rev 766) @@ -16,11 +16,11 @@ #along with this program; if not, write to the Free Software #Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -from gui.drawArea import DrawArea +from timegraph import TimeGraph -class DayGraph: +class DayGraph(TimeGraph): def __init__(self, vbox = None, combovalue = None): - self.drawarea = DrawArea(vbox) + TimeGraph.__init__(self, vbox=vbox, window=window) self.combovalue = combovalue def drawgraph(self,values): @@ -67,10 +67,4 @@ if value_selected==2: yvalue.append(value[5]) return xvalue,yvalue - - def getFloatValue(self, value): - try: - return float(value) - except: - return float(0) Modified: pytrainer/trunk/pytrainer/extensions/googlemaps.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/googlemaps.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/extensions/googlemaps.py 2011-03-11 00:40:53 UTC (rev 766) @@ -62,7 +62,7 @@ i[2] = '#%02x%02x%02x' % rgb_tuple - def drawMap(self,activity): + def drawMap(self,activity, linetype): '''Draw google map create html file using Google API version3 render using embedded Mozilla @@ -85,15 +85,21 @@ av_sum = 0 variance_sum = 0 n = 0 - for i in list_values: - if pre: - speed = (i[0]-pre[0])/((i[2]-pre[2])/3600) + if linetype==1: + if pre: + val = (i[0]-pre[0])/((i[2]-pre[2])/3600) + else: + val = (list_values[1][0]-list_values[0][0])/((list_values[1][2]-list_values[0][2])/3600) + elif linetype==2: + val = i[6] if i[6] else 0 + elif linetype==3: + val =i[7] if i[7]!=None else 1 else: - speed = (list_values[1][0]-list_values[0][0])/((list_values[1][2]-list_values[0][2])/3600) + val = 1 - variance_sum += (speed)**2 - av_sum += speed + variance_sum += (val)**2 + av_sum += val n += 1 lat, lon = float(i[4]), float(i[5]) @@ -102,7 +108,7 @@ minlon = min(minlon, lon) maxlon = max(maxlon, lon) pointlist.append((lat,lon)) - polyline.append(["new google.maps.LatLng(%s, %s)" % (lat, lon), speed, ""]) + polyline.append(["new google.maps.LatLng(%s, %s)" % (lat, lon), val, ""]) pre = i av_speed = av_sum / float(n) @@ -125,13 +131,13 @@ finishinfo = "<div class='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), activity.distance, activity.distance_unit) startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - self.createHtml_api3(polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps) + self.createHtml_api3(polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps, linetype) else: self.createErrorHtml() return self.htmlfile logging.debug("<<") - def createHtml_api3(self,polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps): + def createHtml_api3(self,polyline, minlat, minlon, maxlat, maxlon, startinfo, finishinfo, laps, linetype): ''' Generate a Google maps html file using the v3 api documentation at http://code.google.com/apis/maps/documentation/v3 @@ -270,15 +276,22 @@ });\n polyline.setMap(map);\n''' % point[2] + contenttemplate = [ + "%s", + "Speed: %0.1f km/h", + "HR: %d bpm", + "Cadence: %d", + ] + content += ''' google.maps.event.addListener(polyline, 'click', function(event) { var marker = new google.maps.InfoWindow({ position: event.latLng, - content: "Speed: %0.1f km/h" + content: "%s" }); marker.setMap(map); }); - ''' % point[1] + ''' % contenttemplate[linetype] % point[1] pre = point content += ''' Modified: pytrainer/trunk/pytrainer/extensions/osm.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/osm.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/extensions/osm.py 2011-03-11 00:40:53 UTC (rev 766) @@ -21,7 +21,7 @@ self.htmlfile = "%s/osm.html" % (self.pytrainer_main.profile.tmpdir) logging.debug("<<") - def drawMap(self,activity): + def drawMap(self, activity, linetype): '''Draw osm map create html file using Open Layers and Open Street Map render using embedded Mozilla @@ -33,6 +33,7 @@ levels = [] pointlist = [] polyline = [] + attrlist = [] list_values = activity.tracks if list_values is not None and list_values != [] and len(list_values) > 0: @@ -40,6 +41,7 @@ lat, lon = float(i[4]), float(i[5]) pointlist.append((lat,lon)) polyline.append("[%s, %s]" % (lon, lat)) + attrlist.append((i[3],i[6])) # (Speed, HR) points,levels = Points.encodePoints(pointlist) points = points.replace("\\","\\\\") laps = activity.laps @@ -51,13 +53,13 @@ startinfo = startinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html finishinfo = finishinfo.encode('ascii', 'xmlcharrefreplace') #Encode for html - self.createHtml_osm(polyline, startinfo, finishinfo, laps) + self.createHtml_osm(polyline, startinfo, finishinfo, laps, attrlist, linetype) else: self.createErrorHtml() return self.htmlfile logging.debug("<<") - def createHtml_osm(self, polyline, startinfo, finishinfo, laps): + def createHtml_osm(self, polyline, startinfo, finishinfo, laps, attrlist, linetype): ''' Generate OSM map html file using MapLayers ''' Modified: pytrainer/trunk/pytrainer/gui/drawArea.py =================================================================== --- pytrainer/trunk/pytrainer/gui/drawArea.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/gui/drawArea.py 2011-03-11 00:40:53 UTC (rev 766) @@ -212,6 +212,7 @@ self.showGraph=False #Display first axis + xticks = [] for key in keys: logging.debug("Day of the week: %s", str(key)) for ind in inds: @@ -237,6 +238,8 @@ if len(xvalues) == 1: plt.title(title[0]) axis.legend(loc=0) + + axis.set_xlim(0,numCols) logging.debug("X values first axis: %s", str(xvals)) logging.debug("Y values first axis: %s", str(yheights)) @@ -276,6 +279,7 @@ ax2.bar(xvals, [0]*numCols, bottom=[0]*numCols, width=barWidth, color=color, align='edge', label=key) pass ax2.set_xticklabels('' * len(xvalues[1])) + ax2.set_xlim(0,numCols) ax2.set_ylabel(ylabel[1]) ax2.legend(loc=0) plt.title("%s vs %s" %(title[0],title[1])) Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2011-03-11 00:40:53 UTC (rev 766) @@ -41,6 +41,7 @@ from pytrainer.weekgraph import WeekGraph from pytrainer.monthgraph import MonthGraph from pytrainer.yeargraph import YearGraph +from pytrainer.totalgraph import TotalGraph from pytrainer.heartrategraph import HeartRateGraph from pytrainer.extensions.mapviewer import MapViewer from pytrainer.extensions.waypointeditor import WaypointEditor @@ -130,6 +131,19 @@ {'name':_("Max HR"), 'xalign':1.0} ] self.create_treeview(self.athleteTreeView,columns) + #create the columns for the stats treeview + columns=[ {'name':_("id"), 'visible':False}, + {'name':_("Sport")}, + {'name':_("Total duration"), 'xalign':1.0, 'format_duration':True}, + {'name':_("Total distance"), 'xalign':1.0, 'format_float':'%.1f', 'quantity':'distance'}, + {'name':_("Avg speed"), 'format_float':'%.2f', 'quantity':'maxspeed'}, + {'name':_("Max speed"), 'format_float':'%.2f', 'quantity':'maxspeed'}, + {'name':_("Max HR"), 'xalign':1.0}, + {'name':_("Max duration"), 'xalign':1.0, 'format_duration':True}, + {'name':_("Max distance"), 'xalign':1.0, 'format_float':'%.1f', 'quantity':'distance'}, + ] + self.create_treeview(self.statsTreeView,columns) + self.fileconf = self.pytrainer_main.profile.confdir+"/listviewmenu.xml" if not os.path.isfile(self.fileconf): self._createXmlListView(self.fileconf) @@ -142,9 +156,8 @@ self.radiobuttonOSM.set_active(1) else: self.radiobuttonGMap.set_active(1) + self.comboMapLineType.set_active(0) - - def _float_or(self, value, default): '''Function to parse and return a float, or the default if the parsing fails''' try: @@ -156,7 +169,7 @@ return result def setup(self): - self.createGraphs(RecordGraph,DayGraph,WeekGraph, MonthGraph,YearGraph,HeartRateGraph) + self.createGraphs() self.createMap(MapViewer,self.pytrainer_main.waypoint) self.createWaypointEditor(WaypointEditor,self.pytrainer_main.waypoint, parent=self.pytrainer_main) page = self.notebook.get_current_page() @@ -211,7 +224,7 @@ id = selected.get_value(iter,0) self.parent.runExtension(extension,id) - def createGraphs(self,RecordGraph,DayGraph,WeekGraph, MonthGraph,YearGraph,HeartRateGraph): + def createGraphs(self): self.drawarearecord = RecordGraph(self.record_graph_vbox, self.window1, self.record_combovalue, self.record_combovalue2, self.btnShowLaps, self.tableConfigY1, pytrainer_main=self.pytrainer_main) self.drawareaheartrate = HeartRateGraph(self.heartrate_vbox, self.window1, self.heartrate_vbox2, pytrainer_main=self.pytrainer_main) #self.drawareaday = DayGraph(self.day_vbox, self.day_combovalue) @@ -219,11 +232,13 @@ self.drawareaweek = WeekGraph(self.weekview, self.window1, self.week_combovalue, self.week_combovalue2) self.drawareamonth = MonthGraph(self.month_vbox, self.window1, self.month_combovalue,self.month_combovalue2) self.drawareayear = YearGraph(self.year_vbox, self.window1, self.year_combovalue,self.year_combovalue2) + self.drawareatotal = TotalGraph(self.total_vbox, self.window1, self.total_combovalue,self.total_combovalue2) def createMap(self,MapViewer,waypoint): self.waypoint = waypoint - self.mapviewer = MapViewer(self.data_path, pytrainer_main=self.parent, box=self.map_vbox) - self.mapviewer_fs = MapViewer(self.data_path, pytrainer_main=self.parent, box=self.map_vbox_old) + if not getattr(self, 'mapviewer', None): + self.mapviewer = MapViewer(self.data_path, pytrainer_main=self.parent, box=self.map_vbox) + self.mapviewer_fs = MapViewer(self.data_path, pytrainer_main=self.parent, box=self.map_vbox_old) #self.googlemaps = Googlemaps(self.data_path, self.map_vbox,waypoint, pytrainer_main=self.parent) #self.osm = Osm(self.data_path, self.map_vbox,waypoint, pytrainer_main=self.parent) #self.googlemaps_old = Googlemaps(self.data_path, self.map_vbox_old,waypoint, pytrainer_main=self.parent) @@ -245,7 +260,11 @@ def render_duration(self, column, cell, model, iter): orig = cell.get_property('text') - new = orig + if not ':' in orig: + h,m,s = self.parent.date.second2time(int(orig)) + new = '%d:%02d:%02d' % (h,m,s) + else: + new = orig if orig[:4] == ' 0:0': new = orig[4:] elif orig[:3] == ' 0:': @@ -347,6 +366,13 @@ self.label_record_equipment.set_text(equipment_text) else: self.label_record_equipment.set_markup("<i>None</i>") + + for lap in activity.laps: +# print lap + t = float(lap['elapsed_time']) + m = lap['distance'] + s = m / t * 3.6 +# print t,m,s, lap['calories'] else: self.recordview.set_current_page(0) @@ -712,11 +738,11 @@ if self.radiobuttonOSM.get_active(): #Use OSM to draw map logging.debug("Using OSM to draw map....") - htmlfile = Osm(data_path=self.data_path, waypoint=self.waypoint, pytrainer_main=self.parent).drawMap(activity) + htmlfile = Osm(data_path=self.data_path, waypoint=self.waypoint, pytrainer_main=self.parent).drawMap(activity, self.comboMapLineType.get_active()) elif self.radiobuttonGMap.get_active(): #Use Google to draw map logging.debug("Using Google to draw map") - htmlfile = Googlemaps(data_path=self.data_path, waypoint=self.waypoint, pytrainer_main=self.parent).drawMap(activity) + htmlfile = Googlemaps(data_path=self.data_path, waypoint=self.waypoint, pytrainer_main=self.parent).drawMap(activity, self.comboMapLineType.get_active()) else: #Unknown map type... logging.error("Unknown map viewer requested") @@ -809,7 +835,7 @@ self.weekview.set_sensitive(1) else: self.weekview.set_sensitive(0) - self.drawareaweek.drawgraph(record_list, date_ini, date_end) + self.drawareaweek.drawgraph(record_list, date_ini) logging.debug("<<") def actualize_monthview(self,record_list, nameMonth): @@ -991,6 +1017,51 @@ self.grapher.drawAthleteGraph(athlete=athlete, box=self.boxAthleteGraph) logging.debug("<<") + def actualize_statsview(self, stats, record_list): + logging.debug(">>") + self.labelTotalDistance.set_text(str(stats.data['total_distance']) + " km") + self.labelTotalDuration.set_text(str(stats.data['total_duration'] / 3600) + " hours") + self.labelStartDate.set_text(stats.data['start_date'].strftime('%Y-%m-%d')) + self.labelEndDate.set_text(stats.data['end_date'].strftime('%Y-%m-%d')) + + data = self.parent.stats.data + + store = gtk.ListStore( + gobject.TYPE_INT, + gobject.TYPE_STRING, + gobject.TYPE_INT, + gobject.TYPE_FLOAT, + gobject.TYPE_FLOAT, + gobject.TYPE_FLOAT, + gobject.TYPE_INT, + gobject.TYPE_INT, + gobject.TYPE_FLOAT + ) + for s in data['sports'].values(): + iter = store.append() + + c = 0 + store.set (iter, c, c) + c += 1 + store.set (iter, c, s['name']) + for f in data['fields'][2:]: + c += 1 + store.set (iter, c, s['total_'+f]) + c += 1 + store.set (iter, c, s['total_distance'] / s['total_duration'] * 3600.) + for f in data['fields']: + c += 1 + store.set (iter, c, s[f]) + + self.statsTreeView.set_model(store) + self.statsTreeView.set_rules_hint(True) + + store.set_sort_column_id(2, gtk.SORT_DESCENDING) + + self.drawareatotal.drawgraph(record_list) + + logging.debug("<<") + def actualize_listview(self,record_list): logging.debug(">>") #recod list tiene: @@ -1403,6 +1474,10 @@ logging.debug( 'on_radiobuttonMap_toggled '+ widget.get_name()+ ' activated') self.parent.refreshMapView() + def on_comboMapLineType_changed(self, widget): + logging.debug( 'on_comboMapLineType_changed '+ widget.get_name()+ ' = ' + str(+ widget.get_active())) + self.parent.refreshMapView() + def on_hpaned1_move_handle(self, widget): print "Handler" print widget @@ -1486,6 +1561,8 @@ self.selected_view="year" elif page == 5: self.selected_view="athlete" + elif page == 6: + self.selected_view="stats" else: self.selected_view="record" self.parent.refreshGraphView(self.selected_view) @@ -1530,6 +1607,10 @@ logging.debug("--") self.parent.refreshGraphView(self.selected_view) + def on_total_combovalue_changed(self,widget): + logging.debug("--") + self.parent.refreshGraphView(self.selected_view) + def on_calendar_selected(self,widget): logging.debug("--") if self.block: @@ -1580,6 +1661,9 @@ self.parent.refreshAthleteView() #self.athletearea.show() + def on_statsview_activate(self,widget=None): + self.parent.refreshStatsView() + def on_waypointsview_activate(self,widget): self.listarea.hide() self.classicarea.hide() Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/main.py 2011-03-11 00:40:53 UTC (rev 766) @@ -41,6 +41,7 @@ from plugins import Plugins from profile import Profile from athlete import Athlete +from stats import Stats from gui.windowimportdata import WindowImportdata from gui.windowmain import Main @@ -92,6 +93,7 @@ logging.info('No sanity check requested') self.record = Record(data_path,self) self.athlete = Athlete(data_path,self) + self.stats = Stats(data_path,self) pool_size = self.profile.getIntValue("pytraining","activitypool_size", default=1) self.activitypool = ActivityPool(self, size=pool_size) #preparamos la ventana principal @@ -255,7 +257,8 @@ date_ini, date_end = self.date.getMonthInterval(date_selected) sport = self.windowmain.activeSport sport_id = self.record.getSportId(sport) - record_list = self.record.getrecordPeriodSport(date_ini, date_end,sport_id) +# record_list = self.record.getrecordPeriodSport(date_ini, date_end,sport_id) + record_list = self.record.getrecordPeriod(date_ini, date_end, sport_id) nameMonth, daysInMonth = self.date.getNameMonth(date_selected) self.windowmain.actualize_monthview(record_list, nameMonth) self.windowmain.actualize_monthgraph(record_list, daysInMonth) @@ -265,7 +268,8 @@ sport = self.windowmain.activeSport sport_id = self.record.getSportId(sport) year = self.date.getYear(date_selected) - record_list = self.record.getrecordPeriodSport(date_ini, date_end,sport_id) +# record_list = self.record.getrecordPeriodSport(date_ini, date_end,sport_id) + record_list = self.record.getrecordPeriod(date_ini, date_end, sport_id) self.windowmain.actualize_yearview(record_list, year) self.windowmain.actualize_yeargraph(record_list) elif view=="listview": @@ -274,6 +278,9 @@ elif view=="athlete": logging.debug('athlete view') self.windowmain.on_athleteview_activate() + elif view=="stats": + logging.debug('stats view') + self.windowmain.on_statsview_activate() else: print "Unknown view %s" % view logging.debug('<<') @@ -343,6 +350,12 @@ self.windowmain.actualize_athleteview(self.athlete) logging.debug('<<') + def refreshStatsView(self): + logging.debug('>>') + self.stats.refresh() + self.windowmain.actualize_statsview(self.stats, self.record.getAllRecordList()) + logging.debug('<<') + def refreshListView(self,condition=None): logging.debug('>>') record_list = self.record.getRecordListByCondition(condition) Modified: pytrainer/trunk/pytrainer/monthgraph.py =================================================================== --- pytrainer/trunk/pytrainer/monthgraph.py 2011-03-05 19:01:19 UTC (rev 765) +++ pytrainer/trunk/pytrainer/monthgraph.py 2011-03-11 00:40:53 UTC (rev 766) @@ -16,68 +16,30 @@ #along with this program; if not, write to the Free Software #Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -from gui.drawArea import DrawArea import dateutil +import datetime +from timegraph import TimeGraph -class MonthGraph: +class MonthGraph(TimeGraph): + + value_params = [ + (_("day"),_("Distance (km)"),_("Daily Distance"),"y"), + (_("day"),_("Time (hours)"), _("Daily Time"),"b"), + (_("day"),_("Average Heart Rate (bpm)"), _("Daily Average Heart Rate"),"r"), + (_("day"),_("Average Speed (km/h)"), _("Daily Average Speed"),"g"), + (_("day"),_("Calories"), _("Daily Calories"),"b"), + ] + def __init__(self, vbox = None, window = None, combovalue = None, combovalue2 = None): - ... [truncated message content] |
From: <dg...@us...> - 2011-03-05 19:01:25
|
Revision: 765 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=765&view=rev Author: dgranda Date: 2011-03-05 19:01:19 +0000 (Sat, 05 Mar 2011) Log Message: ----------- Coloring GMaps path by speed/pace - ticket #107 - on behalf of Jonathan Modified Paths: -------------- pytrainer/trunk/pytrainer/extensions/googlemaps.py Modified: pytrainer/trunk/pytrainer/extensions/googlemaps.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/googlemaps.py 2011-02-17 00:25:44 UTC (rev 764) +++ pytrainer/trunk/pytrainer/extensions/googlemaps.py 2011-03-05 19:01:19 UTC (rev 765) @@ -19,6 +19,8 @@ import os import re import logging +import colorsys +import math import pytrainer.lib.points as Points from pytrainer.lib.fileUtils import fileUtils @@ -31,6 +33,34 @@ self.pytrainer_main = pytrainer_main self.htmlfile = "%s/googlemaps.html" % (self.pytrainer_main.profile.tmpdir) logging.debug("<<") + + def colorLine(self, polyline, average, variance): + stdev = math.sqrt(variance) + for i in polyline: + speed = i[1] + speed = (speed - (average - 2*stdev))/(4*stdev) + speed = min(max(speed,0), 1) + rgb_tuple = colorsys.hsv_to_rgb(0.66-(speed*0.66), 1, 0.8) + rgb_tuple = (rgb_tuple[0] * 255,rgb_tuple[1] * 255,rgb_tuple[2] * 255) + i[2] = '#%02x%02x%02x' % rgb_tuple + + def colorLineAbs(self, polyline): + for i in polyline: + speed = i[1] + if 0 <= speed < 7.5: #walk + rgb_tuple = colorsys.hsv_to_rgb(0.66, 1, (speed/7.5)*0.6) + elif 7.5 <= speed < 15: #jog-run + speed = ((speed-7.5)/7.5) + rgb_tuple = colorsys.hsv_to_rgb(0.66-speed*0.66, 1, 0.6+speed*0.2) + elif 15 <= speed < 40: #cycle + speed = ((speed-15)/25.0) + rgb_tuple = colorsys.hsv_to_rgb(1-speed, 1, 0.8+speed*0.2) + else: # fast cycle + rgb_tuple = colorsys.hsv_to_rgb(0, 1, 1) + + rgb_tuple = (rgb_tuple[0] * 255,rgb_tuple[1] * 255,rgb_tuple[2] * 255) + i[2] = '#%02x%02x%02x' % rgb_tuple + def drawMap(self,activity): '''Draw google map @@ -50,14 +80,38 @@ minlat, minlon = float(list_values[0][4]),float(list_values[0][5]) maxlat=minlat maxlon=minlon + + pre = 0 + av_sum = 0 + variance_sum = 0 + n = 0 + for i in list_values: + if pre: + speed = (i[0]-pre[0])/((i[2]-pre[2])/3600) + else: + speed = (list_values[1][0]-list_values[0][0])/((list_values[1][2]-list_values[0][2])/3600) + + variance_sum += (speed)**2 + av_sum += speed + n += 1 + lat, lon = float(i[4]), float(i[5]) minlat = min(minlat, lat) maxlat = max(maxlat, lat) minlon = min(minlon, lon) maxlon = max(maxlon, lon) pointlist.append((lat,lon)) - polyline.append("new google.maps.LatLng(%s, %s)" % (lat, lon)) + polyline.append(["new google.maps.LatLng(%s, %s)" % (lat, lon), speed, ""]) + pre = i + + av_speed = av_sum / float(n) + variance = (variance_sum / float(n)) - av_speed**2 + variance = max(variance, 16) + + self.colorLine(polyline, av_speed, variance) + #self.colorLineAbs(polyline) + logging.debug("minlat: %s, maxlat: %s" % (minlat, maxlat)) logging.debug("minlon: %s, maxlon: %s" % (minlon, maxlon)) points,levels = Points.encodePoints(pointlist) @@ -98,9 +152,9 @@ <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> function initialize() {\n''' - content += " var startlatlng = %s ;\n" % (polyline[0]) + content += " var startlatlng = %s ;\n" % (polyline[0][0]) content += " var centerlatlng = new google.maps.LatLng(%f, %f);\n" % ((minlat+maxlat)/2., (minlon+maxlon)/2.) - content += " var endlatlng = %s;\n" % (polyline[-1]) + content += " var endlatlng = %s;\n" % (polyline[-1][0]) content += " var swlatlng = new google.maps.LatLng(%f, %f);\n" % (minlat,minlon) content += " var nelatlng = new google.maps.LatLng(%f, %f);\n" % (maxlat,maxlon) content += " var startcontent = \"%s\";\n" % (startinfo) @@ -198,19 +252,36 @@ content += ''' var boundsBox = new google.maps.LatLngBounds(swlatlng, nelatlng );\n - map.fitBounds(boundsBox);\n - var polylineCoordinates = [\n''' + map.fitBounds(boundsBox);\n''' + + pre = 0 for point in polyline: - content += " %s,\n" % (point) - content += ''' ];\n - // Add a polyline.\n - var polyline = new google.maps.Polyline({\n - path: polylineCoordinates,\n - strokeColor: \"#3333cc\",\n - strokeOpacity: 0.6,\n - strokeWeight: 5,\n - });\n - polyline.setMap(map);\n + if pre: + content += '''var polylineCoordinates = [\n''' + content += " %s,\n" % (pre[0]) + content += " %s,\n" % (point[0]) + content += ''' ];\n + // Add a polyline.\n + var polyline = new google.maps.Polyline({\n + path: polylineCoordinates,\n + strokeColor: \"%s\",\n + strokeOpacity: 0.9,\n + strokeWeight: 5,\n + });\n + polyline.setMap(map);\n''' % point[2] + + content += ''' + google.maps.event.addListener(polyline, 'click', function(event) { + var marker = new google.maps.InfoWindow({ + position: event.latLng, + content: "Speed: %0.1f km/h" + }); + marker.setMap(map); + }); + ''' % point[1] + pre = point + + content += ''' } </script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sig...@us...> - 2011-02-17 00:25:50
|
Revision: 764 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=764&view=rev Author: siggipals Date: 2011-02-17 00:25:44 +0000 (Thu, 17 Feb 2011) Log Message: ----------- #102: Return false if urlfile not found Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/srtmdownload.py Modified: pytrainer/trunk/pytrainer/lib/srtmdownload.py =================================================================== --- pytrainer/trunk/pytrainer/lib/srtmdownload.py 2011-02-15 02:16:09 UTC (rev 763) +++ pytrainer/trunk/pytrainer/lib/srtmdownload.py 2011-02-17 00:25:44 UTC (rev 764) @@ -46,6 +46,7 @@ self.progressbar = progressbar self.label = label self.tile_name = tile_name + print tile_name def run(self): logging.debug(">>") @@ -58,7 +59,13 @@ os.mkdir(self.srtm_dir) urlfile = self.get_urlfile() - size_total = int(urlfile.info().getheader('Content-Length').strip()) + if not urlfile: + return False + + try: + size_total = int(urlfile.info().getheader('Content-Length').strip()) + except: + size_total = 0 if size_total == 0: loopActive = False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sig...@us...> - 2011-02-15 02:16:16
|
Revision: 763 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=763&view=rev Author: siggipals Date: 2011-02-15 02:16:09 +0000 (Tue, 15 Feb 2011) Log Message: ----------- #95 - Sort equipment by active state and usage Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/equipment.py Modified: pytrainer/trunk/pytrainer/gui/equipment.py =================================================================== --- pytrainer/trunk/pytrainer/gui/equipment.py 2011-02-15 00:26:11 UTC (rev 762) +++ pytrainer/trunk/pytrainer/gui/equipment.py 2011-02-15 02:16:09 UTC (rev 763) @@ -26,7 +26,17 @@ self._equipment_service = equipment_service for equipment in equipment_service.get_all_equipment(): self._append_row(equipment) + self.set_default_sort_func(self._sort) + self.set_sort_column_id(-1, gtk.SORT_ASCENDING) + def _sort(self, store, x, y): + if self.get_value(x, 4) != self.get_value(y, 4): + return self.get_value(y, 4)-self.get_value(x, 4) + elif self.get_value(x, 2) == self.get_value(y, 2): + return 0 + else: + return self.get_value(y, 2)*100-self.get_value(x, 2)*100 + def _append_row(self, equipment): self.append(self._create_tuple(equipment)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sig...@us...> - 2011-02-15 00:26:17
|
Revision: 762 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=762&view=rev Author: siggipals Date: 2011-02-15 00:26:11 +0000 (Tue, 15 Feb 2011) Log Message: ----------- Fixed #96. Equipment no longer displayed when no record selected. Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/windowmain.py Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2011-02-04 17:57:01 UTC (rev 761) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2011-02-15 00:26:11 UTC (rev 762) @@ -297,6 +297,7 @@ #self.record_second.set_text("") self.record_calories.set_text("") self.record_title.set_text("") + self.label_record_equipment.set_text("") com_buffer = self.record_comments.get_buffer() start,end = com_buffer.get_bounds() com_buffer.set_text("") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2011-02-04 17:57:07
|
Revision: 761 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=761&view=rev Author: dgranda Date: 2011-02-04 17:57:01 +0000 (Fri, 04 Feb 2011) Log Message: ----------- Distance data is retrieved from laps if present, calculated from trackpoints otherwise. Ticket #101 Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/gpx.py Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2011-01-19 19:10:41 UTC (rev 760) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2011-02-04 17:57:01 UTC (rev 761) @@ -192,13 +192,18 @@ logging.debug(">>") tree = self.tree # Calories data comes within laps. Maybe more than one, adding them together - dgranda 20100114 + # Distance data comes within laps where present as well - dgranda 20110204 laps = tree.findall(lapTag) if laps is not None and laps != "": + totalDistance = 0 for lap in laps: - lapCalories = lap.findtext(calorieTag) - logging.debug("Lap calories: "+str(lapCalories)) + lapCalories = lap.findtext(calorieTag) self.calories += int(lapCalories) - logging.debug("Calories: "+str(self.calories)) + lapDistance = int(float(lap.findtext(distanceTag))) + totalDistance += lapDistance + logging.debug("Lap distance: " + str(lapDistance) + " | calories (kcal): "+str(lapCalories)) + self.total_dist = float(totalDistance/1000.0) # Returning km + logging.debug("Distance: " + str(self.total_dist) + " | calories (kcal): "+str(self.calories)) else: laps = [] @@ -360,7 +365,9 @@ self.hr_average = 0 if len_validhrpoints > 0: self.hr_average = total_hr/len_validhrpoints - self.total_dist = total_dist + # In case there is no other way to calculate distance, we rely on trackpoints (number of trackpoints is configurable!) + if self.total_dist is None or self.total_dist == 0: + self.total_dist = total_dist logging.debug("<<") return retorno This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2011-01-19 19:10:51
|
Revision: 760 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=760&view=rev Author: dgranda Date: 2011-01-19 19:10:41 +0000 (Wed, 19 Jan 2011) Log Message: ----------- Adding localization files for swedish (thnx to Per). Related to ticket #98 Modified Paths: -------------- pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po Added Paths: ----------- pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer.mo Added: pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Property changes on: pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer.mo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po =================================================================== --- pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po 2011-01-06 22:30:46 UTC (rev 759) +++ pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po 2011-01-19 19:10:41 UTC (rev 760) @@ -2,323 +2,368 @@ # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the pytrainer package. # David García Granda <dg...@gm...>, 2010. +# Per Medin <per...@gm...>, 2011. # msgid "" msgstr "" "Project-Id-Version: pytrainer 1.8.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-12-31 16:41+0100\n" -"PO-Revision-Date: 2010-12-31 16:37+0100\n" -"Last-Translator: David García Granda <dg...@gm...>\n" +"PO-Revision-Date: 2011-01-09 20:27+0100\n" +"Last-Translator: Per Medin <per...@gm...>\n" "Language-Team: Swedish\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: Sweden\n" #: glade/calendar.glade:7 msgid "Calendar" -msgstr "" +msgstr "Kalender" #: glade/equipment.glade:109 msgid "<b>Equipment List</b>" -msgstr "" +msgstr "<b>Utrustningslista</b>" -#: glade/equipment.glade:149 glade/equipment.glade:406 +#: glade/equipment.glade:149 +#: glade/equipment.glade:406 msgid "Description" -msgstr "" +msgstr "Beskrivning" -#: glade/equipment.glade:174 glade/equipment.glade:431 +#: glade/equipment.glade:174 +#: glade/equipment.glade:431 msgid "Life Expectancy" msgstr "" -#: glade/equipment.glade:211 glade/equipment.glade:467 +#: glade/equipment.glade:211 +#: glade/equipment.glade:467 msgid "Prior Usage" msgstr "" -#: glade/equipment.glade:243 glade/equipment.glade:499 +#: glade/equipment.glade:243 +#: glade/equipment.glade:499 msgid "Active" -msgstr "" +msgstr "Aktiv" -#: glade/equipment.glade:277 glade/equipment.glade:533 +#: glade/equipment.glade:277 +#: glade/equipment.glade:533 #: pytrainer/gui/windowimportdata.py:352 msgid "Notes" -msgstr "" +msgstr "Anteckningar" #: glade/equipment.glade:366 msgid "<b>Add New Equipment</b>" -msgstr "" +msgstr "<b>Lägg till utrustning</b>" #: glade/equipment.glade:622 msgid "<b>Edit Equipment</b>" -msgstr "" +msgstr "<b>Redigera utrustning</b>" #: glade/equipment.glade:651 msgid "Really delete the equipment item?" -msgstr "" +msgstr "Radera utrustningen?" #: glade/equipment.glade:704 msgid "<b>Delete Equipment</b>" -msgstr "" +msgstr "<b>Radera utrustning</b>" -#: glade/extensions.glade:9 glade/pytrainer.glade:163 +#: glade/extensions.glade:9 +#: glade/pytrainer.glade:163 msgid "Extensions" -msgstr "" +msgstr "Tillägg" #: glade/extensions.glade:54 msgid "<b>Extension Details</b>" -msgstr "" +msgstr "<b>Tilläggs Detaljer</b>" #: glade/extensions.glade:67 msgid "name-entry" -msgstr "" +msgstr "namn-inmatning" -#: glade/extensions.glade:82 glade/plugins.glade:144 glade/profile.glade:727 +#: glade/extensions.glade:82 +#: glade/plugins.glade:144 +#: glade/profile.glade:727 #: glade/pytrainer.glade:5161 msgid "Name:" -msgstr "" +msgstr "Namn:" -#: glade/extensions.glade:96 glade/plugins.glade:115 +#: glade/extensions.glade:96 +#: glade/plugins.glade:115 msgid "Status:" -msgstr "" +msgstr "Status:" -#: glade/extensions.glade:110 glade/plugins.glade:86 +#: glade/extensions.glade:110 +#: glade/plugins.glade:86 #: glade/pytrainer.glade:5690 msgid "Description:" -msgstr "" +msgstr "Beskrivning" -#: glade/extensions.glade:124 glade/plugins.glade:100 +#: glade/extensions.glade:124 +#: glade/plugins.glade:100 msgid "status-entry" -msgstr "" +msgstr "status-inmatning" #: glade/extensions.glade:139 msgid "description-entry" -msgstr "" +msgstr "detalj-imatning" -#: glade/importdata.glade:7 glade/importdata.glade:325 +#: glade/importdata.glade:7 +#: glade/importdata.glade:325 msgid "Import" -msgstr "" +msgstr "Importera" #: glade/importdata.glade:36 msgid "" "Test 1\n" "Test 2" msgstr "" +"Test 1\n" +"Test 2" #: glade/importdata.glade:46 msgid "<b>Select your GPS device</b>" -msgstr "" +msgstr "<b>Välj GPS utrustning</b>" #: glade/importdata.glade:64 msgid "Import from GPS Device is not yet implemented" -msgstr "" +msgstr "Import från GPS är ännu inte implementerad" #: glade/importdata.glade:92 msgid "<b>Tools</b>" -msgstr "" +msgstr "<b>Verktyg</b>" #: glade/importdata.glade:111 msgid "Rescan" -msgstr "" +msgstr "Sök igen" #: glade/importdata.glade:115 msgid "Rescan system for available tools" -msgstr "" +msgstr "Sök igenom systemet efter tillgängliga verktyg" #: glade/importdata.glade:168 msgid "<b>Import from GPS Device</b>" -msgstr "" +msgstr "<b>Importera från GPS</b>" #: glade/importdata.glade:221 msgid "Remove selected files and the associated activities" -msgstr "" +msgstr "Radera markerade filer och tillhörande aktiviteter" #: glade/importdata.glade:239 msgid "Add files to import activities from" -msgstr "" +msgstr "Lägg till filer att importera aktiviter från" #: glade/importdata.glade:264 msgid "<b>Add file(s) to import activities from</b>" -msgstr "" +msgstr "<b>Lägg till fil(er) att importera aktiviteter från</b>" #: glade/importdata.glade:307 msgid "<b>Select activities to import</b>" -msgstr "" +msgstr "<b>Välj aktiviteter att importera</b>" #: glade/importdata.glade:330 msgid "Import selected activities" -msgstr "" +msgstr "Importera valda aktiviteter" #: glade/importdata.glade:347 msgid "Close Import dialog" -msgstr "" +msgstr "Stäng import dialog" #: glade/importdata.glade:387 msgid "<b>Import from File</b>" -msgstr "" +msgstr "<b>Importera från Fil</b>" #: glade/importdata.glade:464 msgid "<b>Plugins</b>" -msgstr "" +msgstr "<b>Tillägg</b>" #: glade/importdata.glade:491 msgid "Import from GPS Device" -msgstr "" +msgstr "Importera från GPS" #: glade/importdata.glade:510 msgid "Import from File" -msgstr "" +msgstr "Importera från Fil" #: glade/importdata.glade:525 msgid "Launch 'File Select' on start" -msgstr "" +msgstr "Aktivera 'Välj Fil' vid start" #: glade/importdata.glade:530 msgid "Automatically start the file selection dialog" -msgstr "" +msgstr "Starta automatiskt väl fil dialogen" -#: glade/importdata.glade:546 glade/plugins.glade:9 +#: glade/importdata.glade:546 +#: glade/plugins.glade:9 msgid "Plugins" -msgstr "" +msgstr "Tillägg" #: glade/importdata.glade:572 msgid "<b>Default to Tab</b>" -msgstr "" +msgstr "<b>Standardinställning</b>" #: glade/importdata.glade:595 msgid "Reset" -msgstr "" +msgstr "Återställ" #: glade/importdata.glade:611 msgid "Save" -msgstr "" +msgstr "Spara" #: glade/importdata.glade:670 msgid "<b>Options</b>" -msgstr "" +msgstr "<b>Alternativ</b>" #: glade/importdata.glade:702 msgid "<b>Select file to import from</b>" -msgstr "" +msgstr "<b>Välj fil att importera från</b>" #: glade/importdata.glade:731 msgid "Tab" -msgstr "" +msgstr "Tabb" #: glade/importdata.glade:746 msgid "Comma" -msgstr "" +msgstr "Komma" #: glade/importdata.glade:763 msgid "Other" -msgstr "" +msgstr "Annat" #: glade/importdata.glade:799 msgid "Read File" -msgstr "" +msgstr "Läs Fil" #: glade/importdata.glade:820 msgid "<b>File delimiter</b>" -msgstr "" +msgstr "<b>Filavgränsare</b>" -#: glade/importdata.glade:864 pytrainer/gui/windowmain.py:111 -#: pytrainer/gui/windowmain.py:126 pytrainer/gui/windowmain.py:1143 +#: glade/importdata.glade:864 +#: pytrainer/gui/windowmain.py:111 +#: pytrainer/gui/windowmain.py:126 +#: pytrainer/gui/windowmain.py:1143 #: pytrainer/gui/dialogselecttrack.py:40 msgid "Date" -msgstr "" +msgstr "Datum" -#: glade/importdata.glade:877 glade/importdata.glade:918 -#: glade/importdata.glade:933 glade/importdata.glade:1128 -#: glade/importdata.glade:1143 glade/importdata.glade:1158 -#: glade/importdata.glade:1173 glade/importdata.glade:1188 -#: glade/importdata.glade:1203 glade/importdata.glade:1218 -#: glade/importdata.glade:1233 glade/importdata.glade:1248 -#: glade/importdata.glade:1263 glade/importdata.glade:1278 +#: glade/importdata.glade:877 +#: glade/importdata.glade:918 +#: glade/importdata.glade:933 +#: glade/importdata.glade:1128 +#: glade/importdata.glade:1143 +#: glade/importdata.glade:1158 +#: glade/importdata.glade:1173 +#: glade/importdata.glade:1188 +#: glade/importdata.glade:1203 +#: glade/importdata.glade:1218 +#: glade/importdata.glade:1233 +#: glade/importdata.glade:1248 +#: glade/importdata.glade:1263 +#: glade/importdata.glade:1278 #: glade/importdata.glade:1293 msgid "Exclude" -msgstr "" +msgstr "Undanta" -#: glade/importdata.glade:892 pytrainer/recordgraph.py:134 -#: pytrainer/recordgraph.py:136 pytrainer/recordgraph.py:138 -#: pytrainer/recordgraph.py:140 pytrainer/recordgraph.py:142 -#: pytrainer/recordgraph.py:144 pytrainer/recordgraph.py:146 -#: pytrainer/monthgraph.py:70 pytrainer/heartrategraph.py:36 -#: pytrainer/yeargraph.py:70 pytrainer/daygraph.py:52 pytrainer/daygraph.py:54 -#: pytrainer/daygraph.py:56 pytrainer/weekgraph.py:115 +#: glade/importdata.glade:892 +#: pytrainer/recordgraph.py:134 +#: pytrainer/recordgraph.py:136 +#: pytrainer/recordgraph.py:138 +#: pytrainer/recordgraph.py:140 +#: pytrainer/recordgraph.py:142 +#: pytrainer/recordgraph.py:144 +#: pytrainer/recordgraph.py:146 +#: pytrainer/monthgraph.py:70 +#: pytrainer/heartrategraph.py:36 +#: pytrainer/yeargraph.py:70 +#: pytrainer/daygraph.py:52 +#: pytrainer/daygraph.py:54 +#: pytrainer/daygraph.py:56 +#: pytrainer/weekgraph.py:115 msgid "Distance (km)" -msgstr "" +msgstr "Distans (km)" #: glade/importdata.glade:905 msgid "Duration (sec)" -msgstr "" +msgstr "Varaktighet (s)" #: glade/importdata.glade:947 msgid "<b>PyTrainer Field</b>" -msgstr "" +msgstr "<b>PyTrainer Fält</b>" #: glade/importdata.glade:958 msgid "<b>File Column</b>" -msgstr "" +msgstr "<b>Filkolumn</b>" -#: glade/importdata.glade:972 pytrainer/gui/windowmain.py:110 +#: glade/importdata.glade:972 +#: pytrainer/gui/windowmain.py:110 #: pytrainer/gui/windowmain.py:1142 msgid "Title" -msgstr "" +msgstr "Titel" #: glade/importdata.glade:985 msgid "Descent (m)" -msgstr "" +msgstr "Sluttning (m)" #: glade/importdata.glade:998 msgid "Accent (m)" -msgstr "" +msgstr "Stigning (m)" #: glade/importdata.glade:1011 msgid "Calories (kcal)" -msgstr "" +msgstr "Kalorier (kcal)" #: glade/importdata.glade:1024 msgid "Max Speed (km/h)" -msgstr "" +msgstr "Maxhastighet (km/h)" -#: glade/importdata.glade:1037 pytrainer/monthgraph.py:76 -#: pytrainer/yeargraph.py:76 pytrainer/weekgraph.py:121 +#: glade/importdata.glade:1037 +#: pytrainer/monthgraph.py:76 +#: pytrainer/yeargraph.py:76 +#: pytrainer/weekgraph.py:121 msgid "Average Speed (km/h)" -msgstr "" +msgstr "Medelhastighet (km/h)" -#: glade/importdata.glade:1050 glade/pytrainer.glade:277 -#: pytrainer/gui/windowmain.py:105 pytrainer/gui/windowmain.py:113 -#: pytrainer/gui/windowmain.py:1145 pytrainer/gui/windowimportdata.py:352 -#: pytrainer/gui/windowrecord.py:210 pytrainer/gui/windowprofile.py:59 +#: glade/importdata.glade:1050 +#: glade/pytrainer.glade:277 +#: pytrainer/gui/windowmain.py:105 +#: pytrainer/gui/windowmain.py:113 +#: pytrainer/gui/windowmain.py:1145 +#: pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 +#: pytrainer/gui/windowprofile.py:59 msgid "Sport" -msgstr "" +msgstr "Träningsform" #: glade/importdata.glade:1063 msgid "Average Heartrate (bpm)" -msgstr "" +msgstr "Snittpuls (slag/min)" #: glade/importdata.glade:1076 msgid "Max Heartrate (bpm)" -msgstr "" +msgstr "Maxpuls (slag/min)" -#: glade/importdata.glade:1089 pytrainer/recordgraph.py:138 +#: glade/importdata.glade:1089 +#: pytrainer/recordgraph.py:138 msgid "Pace (min/km)" -msgstr "" +msgstr "Tempo (min/km)" #: glade/importdata.glade:1102 msgid "Max Pace (min/km)" -msgstr "" +msgstr "Maxtempo (min/km)" -#: glade/importdata.glade:1115 glade/newrecord.glade:1094 +#: glade/importdata.glade:1115 +#: glade/newrecord.glade:1094 msgid "Comments" -msgstr "" +msgstr "Kommentarer" #: glade/importdata.glade:1309 msgid "Force sport to:" -msgstr "" +msgstr "Tvinga aktivitet till:" -#: glade/importdata.glade:1323 glade/newrecord.glade:404 +#: glade/importdata.glade:1323 +#: glade/newrecord.glade:404 msgid " " msgstr "" @@ -337,217 +382,227 @@ #: glade/importdata.glade:1427 msgid "Import Data" -msgstr "" +msgstr "Importera Data" #: glade/importdata.glade:1467 msgid "<b>Import from CSV</b>" -msgstr "" +msgstr "<b>Importera från CSV fil</b>" -#: glade/newrecord.glade:7 pytrainer/gui/windowmain.py:1793 +#: glade/newrecord.glade:7 +#: pytrainer/gui/windowmain.py:1793 msgid "New Entry" -msgstr "" +msgstr "Ny Inmatning" #: glade/newrecord.glade:61 msgid "Title:" -msgstr "" +msgstr "Titel:" #: glade/newrecord.glade:85 msgid "GPX File:" -msgstr "" +msgstr "GPX fil:" #: glade/newrecord.glade:129 msgid "Calculate Values" -msgstr "" +msgstr "Beräkna värden" #: glade/newrecord.glade:149 msgid "Sport:" -msgstr "" +msgstr "Träningsform:" #: glade/newrecord.glade:184 msgid "<b>Main</b>" -msgstr "" +msgstr "<b>Huvud</b>" #: glade/newrecord.glade:221 msgid "Distance (Km):" -msgstr "" +msgstr "Sträcka (km):" -#: glade/newrecord.glade:230 glade/newrecord.glade:355 -#: glade/newrecord.glade:558 glade/newrecord.glade:697 -#: glade/newrecord.glade:958 glade/profile.glade:1462 +#: glade/newrecord.glade:230 +#: glade/newrecord.glade:355 +#: glade/newrecord.glade:558 +#: glade/newrecord.glade:697 +#: glade/newrecord.glade:958 +#: glade/profile.glade:1462 msgid "Calculate" -msgstr "" +msgstr "Beräkna" #: glade/newrecord.glade:248 msgid "Duration:" -msgstr "" +msgstr "Tid:" -#: glade/newrecord.glade:279 glade/newrecord.glade:306 +#: glade/newrecord.glade:279 +#: glade/newrecord.glade:306 msgid ":" -msgstr "" +msgstr ":" #: glade/newrecord.glade:376 msgid "Date:" -msgstr "" +msgstr "Datum:" #: glade/newrecord.glade:445 msgid "Start Time:" -msgstr "" +msgstr "Starttid:" #: glade/newrecord.glade:461 msgid "12:00:00" -msgstr "" +msgstr "12:00:00" -#: glade/newrecord.glade:486 glade/profile.glade:1500 +#: glade/newrecord.glade:486 +#: glade/profile.glade:1500 msgid "<b>General</b>" -msgstr "" +msgstr "<b>Allmän</b>" #: glade/newrecord.glade:522 msgid "Max (km/h):" -msgstr "" +msgstr "Max (km/h):" #: glade/newrecord.glade:547 msgid "Average (km/h)" -msgstr "" +msgstr "Medel (km/h)" #: glade/newrecord.glade:593 msgid "<b>Speed</b>" -msgstr "" +msgstr "<b>Hastighet</b>" #: glade/newrecord.glade:612 msgid "Quick Entry" -msgstr "" +msgstr "Snabbinmatning" #: glade/newrecord.glade:644 msgid "Max (min/km):" -msgstr "" +msgstr "Max (min/km):" #: glade/newrecord.glade:671 msgid "Pace (min/km):" -msgstr "" +msgstr "Tempo (min/km):" #: glade/newrecord.glade:718 msgid "<b>Pace</b>" -msgstr "" +msgstr "<b>Tempo</b>" #: glade/newrecord.glade:754 msgid "Ascent:" -msgstr "" +msgstr "Stigning:" #: glade/newrecord.glade:780 msgid "Descent:" -msgstr "" +msgstr "Sluttning:" #: glade/newrecord.glade:813 msgid "<b>Accumulated Altitude Change</b>" -msgstr "" +msgstr "<b>Ackumulerad höjdskillnad</b>" #: glade/newrecord.glade:850 msgid "Max (bpm):" -msgstr "" +msgstr "Max (slag/min):" #: glade/newrecord.glade:862 msgid "Heart rate:" -msgstr "" +msgstr "Puls:" -#: glade/newrecord.glade:902 pytrainer/gui/windowmain.py:117 -#: pytrainer/gui/windowmain.py:1149 pytrainer/monthgraph.py:78 -#: pytrainer/yeargraph.py:78 pytrainer/weekgraph.py:123 +#: glade/newrecord.glade:902 +#: pytrainer/gui/windowmain.py:117 +#: pytrainer/gui/windowmain.py:1149 +#: pytrainer/monthgraph.py:78 +#: pytrainer/yeargraph.py:78 +#: pytrainer/weekgraph.py:123 msgid "Calories" -msgstr "" +msgstr "Kalorier" #: glade/newrecord.glade:931 -msgid "" -"<small><b>Note:</b> In order to calculate the calories you must set the " -"sport MET (in Preferences->Sport) </small>" -msgstr "" +msgid "<small><b>Note:</b> In order to calculate the calories you must set the sport MET (in Preferences->Sport) </small>" +msgstr "<small><b>Notera:</b> För att beräkna kalorier så måste träningsform väljas (i Inställningar->Träningsform) </small>" #: glade/newrecord.glade:1005 msgid "<b>Heart Rate</b>" -msgstr "" +msgstr "<b>Hjärtfrekvens</b>" #: glade/newrecord.glade:1027 msgid "Advanced" -msgstr "" +msgstr "Avancerad" #: glade/newrecord.glade:1079 msgid "<b>Comments</b>" -msgstr "" +msgstr "<b>Kommentarer</b>" #: glade/newrecord.glade:1134 msgid "<i>There are no active equipment items.</i>" -msgstr "" +msgstr "<i>Det finns ingen aktiv utrustning.</i>" #: glade/newrecord.glade:1188 msgid "<b>Associated Equipment</b>" -msgstr "" +msgstr "<b>Associerad utrustning</b>" -#: glade/newrecord.glade:1203 glade/profile.glade:1360 +#: glade/newrecord.glade:1203 +#: glade/profile.glade:1360 msgid "Equipment" -msgstr "" +msgstr "Utrustning" #: glade/plugins.glade:53 msgid "<b>Plugin Details</b>" -msgstr "" +msgstr "<b>Tilläggsdetaljer</b>" #: glade/plugins.glade:68 msgid "description-entry " -msgstr "" +msgstr "beskrivningsinmatning" #: glade/plugins.glade:129 msgid "nameEntry" -msgstr "" +msgstr "namnInmatning" #: glade/profile.glade:7 msgid "Preferences" -msgstr "" +msgstr "Inställningar" #: glade/profile.glade:37 msgid "Metric system" -msgstr "" +msgstr "Metriska" #: glade/profile.glade:53 msgid "U.S. customary units" -msgstr "" +msgstr "Amerikanska" #: glade/profile.glade:74 msgid "<b>System of Measurement</b>" -msgstr "" +msgstr "<b>Måttenheter</b>" -#: glade/profile.glade:103 glade/pytrainer.glade:2023 +#: glade/profile.glade:103 +#: glade/pytrainer.glade:2023 msgid "Google" -msgstr "" +msgstr "Google" -#: glade/profile.glade:118 glade/pytrainer.glade:2006 +#: glade/profile.glade:118 +#: glade/pytrainer.glade:2006 msgid "Open Street Map" -msgstr "" +msgstr "Open Street Map" #: glade/profile.glade:140 msgid "<b>Default Map Viewer</b>" -msgstr "" +msgstr "<b>Förvald kartvisare</b>" #: glade/profile.glade:176 msgid "Database type:" -msgstr "" +msgstr "Databas typ:" #: glade/profile.glade:187 msgid "Database host:" -msgstr "" +msgstr "Databas värd:" #: glade/profile.glade:213 msgid "Database name:" -msgstr "" +msgstr "Databas namn:" #: glade/profile.glade:252 msgid "Database user:" -msgstr "" +msgstr "Databas användare:" #: glade/profile.glade:267 msgid "Database pass:" -msgstr "" +msgstr "Databas lösenord:" #: glade/profile.glade:318 msgid "<b>Database</b>" -msgstr "" +msgstr "<b>Databas</b>" #: glade/profile.glade:340 msgid "General" @@ -555,35 +610,39 @@ #: glade/profile.glade:369 msgid "User name:" -msgstr "" +msgstr "Användare:" #: glade/profile.glade:380 msgid "Gender:" -msgstr "" +msgstr "Kön:" -#: glade/profile.glade:407 glade/pytrainer.glade:5186 +#: glade/profile.glade:407 +#: glade/pytrainer.glade:5186 msgid "Height:" -msgstr "" +msgstr "Längd:" -#: glade/profile.glade:447 glade/pytrainer.glade:5173 +#: glade/profile.glade:447 +#: glade/pytrainer.glade:5173 msgid "Date of birth:" -msgstr "" +msgstr "Födelsedatum:" #: glade/profile.glade:520 msgid "Weight:" -msgstr "" +msgstr "Vikt:" -#: glade/profile.glade:542 glade/pytrainer.glade:5248 +#: glade/profile.glade:542 +#: glade/pytrainer.glade:5248 msgid "<b>Athlete Details</b>" -msgstr "" +msgstr "<b>Användardata</b>" -#: glade/profile.glade:557 glade/pytrainer.glade:5351 +#: glade/profile.glade:557 +#: glade/pytrainer.glade:5351 msgid "Athlete" -msgstr "" +msgstr "Användare" #: glade/profile.glade:671 msgid "<b>Sport List</b>" -msgstr "" +msgstr "<b>Aktivitetstyper</b>" #: glade/profile.glade:683 msgid "llist" @@ -595,58 +654,61 @@ #: glade/profile.glade:765 msgid "Extra Weight:" -msgstr "" +msgstr "Extra vikt:" -#: glade/profile.glade:801 glade/profile.glade:1181 -msgid "" -"More information on determining yor M.E.T sport coefficient on Wikipedia" +#: glade/profile.glade:801 +#: glade/profile.glade:1181 +msgid "More information on determining yor M.E.T sport coefficient on Wikipedia" msgstr "" #: glade/profile.glade:821 msgid "Maximum Pace:" -msgstr "" +msgstr "Maxtempo:" #: glade/profile.glade:913 msgid "<b>Add New Sport</b>" -msgstr "" +msgstr "<b>Lägg till ny aktivitet</b>" #: glade/profile.glade:928 msgid "new" -msgstr "" +msgstr "ny" #: glade/profile.glade:959 msgid "" "Deleting a sport removes associated records.\n" "Continue?" msgstr "" +"Att radera en aktivitet raderar alla poster med denna aktivitet.\n" +"Fortsätt?" #: glade/profile.glade:1041 msgid "<b>Delete Sport</b>" -msgstr "" +msgstr "<b>Radera Aktivitet</b>" #: glade/profile.glade:1073 msgid "delete" -msgstr "" +msgstr "radera" #: glade/profile.glade:1106 msgid "Name" -msgstr "" +msgstr "Namn" #: glade/profile.glade:1129 msgid "M.E.T." msgstr "" -#: glade/profile.glade:1156 pytrainer/gui/windowprofile.py:59 +#: glade/profile.glade:1156 +#: pytrainer/gui/windowprofile.py:59 msgid "Extra Weight" -msgstr "" +msgstr "Extra vikt" #: glade/profile.glade:1201 msgid "Maxiumum Pace" -msgstr "" +msgstr "Maxtempo" #: glade/profile.glade:1289 msgid "<b>Edit Sport</b>" -msgstr "" +msgstr "<b>Redigera Aktivitet</b>" #: glade/profile.glade:1300 msgid "<b>lalaal</b>" @@ -654,58 +716,59 @@ #: glade/profile.glade:1322 msgid "edit" -msgstr "" +msgstr "redigera" #: glade/profile.glade:1338 msgid "Sports" -msgstr "" +msgstr "Aktiviteter" #: glade/profile.glade:1393 msgid "Maximum heart rate:" -msgstr "" +msgstr "Maxpuls:" #: glade/profile.glade:1404 msgid "Resting heart rate:" -msgstr "" +msgstr "Vilopuls:" #: glade/profile.glade:1449 -msgid "" -"<small><b>Note:</b> Maximum heart rate is calculated by subtracting the " -"number 220 minus your age. </small>" -msgstr "" +msgid "<small><b>Note:</b> Maximum heart rate is calculated by subtracting the number 220 minus your age. </small>" +msgstr "<small><b>Notera:</b> Maxpuls är beräknad genom att subtraera din ålder från 220. </small>" #: glade/profile.glade:1536 -msgid "" -"<small><b>NOTE:</b> in order to use the Karvonen method you must cover the " -"Resting hr field.</small>" -msgstr "" +msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>" +msgstr "<small><b>NOTERA:</b> för att använda Karvonen metoden måste vilopulsen anges.</small>" #: glade/profile.glade:1549 msgid "Percentages based method" -msgstr "" +msgstr "Procentbaserad metod" -#: glade/profile.glade:1565 pytrainer/gui/windowmain.py:616 +#: glade/profile.glade:1565 +#: pytrainer/gui/windowmain.py:616 msgid "Karvonen method" -msgstr "" +msgstr "Karvonens metod" #: glade/profile.glade:1586 msgid "Select how to calculate your heart rate zones." -msgstr "" +msgstr "Välj metod för att beräkna pulszoner." #: glade/profile.glade:1625 msgid "<b>Heart Rate Zones</b>" -msgstr "" +msgstr "<b>Pulszoner</b>" -#: glade/profile.glade:1647 pytrainer/recordgraph.py:140 -#: pytrainer/lib/activity.py:433 pytrainer/lib/activity.py:435 -#: pytrainer/lib/activity.py:445 pytrainer/lib/activity.py:515 -#: pytrainer/heartrategraph.py:36 pytrainer/daygraph.py:56 +#: glade/profile.glade:1647 +#: pytrainer/recordgraph.py:140 +#: pytrainer/lib/activity.py:433 +#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:445 +#: pytrainer/lib/activity.py:515 +#: pytrainer/heartrategraph.py:36 +#: pytrainer/daygraph.py:56 msgid "Heart Rate" -msgstr "" +msgstr "Puls" #: glade/profile.glade:1673 msgid "Log Level" -msgstr "" +msgstr "Loggnivå" #: glade/profile.glade:1681 msgid "" @@ -717,185 +780,205 @@ #: glade/profile.glade:1699 msgid "<small>What level of detail is written to the log?</small>" -msgstr "" +msgstr "<small>Vilken nivå av detaljer skrivs till loggen?</small>" #: glade/profile.glade:1713 msgid "Validate" -msgstr "" +msgstr "Validera" #: glade/profile.glade:1743 -msgid "" -"<small>Do the plugins attempt to validate the input file before processing?</" -"small>" -msgstr "" +msgid "<small>Do the plugins attempt to validate the input file before processing?</small>" +msgstr "<small>Försöker tillägget validera filen före bearbetning?</small>" #: glade/profile.glade:1759 msgid "Check" -msgstr "" +msgstr "Kontrollera" #: glade/profile.glade:1788 msgid "<small>Was a configuration and database check requested?</small>" -msgstr "" +msgstr "<small>Önskades en konfigurations och databaskontroll?</small>" #: glade/profile.glade:1804 msgid "New Graph" -msgstr "" +msgstr "Ny Graf" #: glade/profile.glade:1833 msgid "<small>Want to use experimental new approach to graphing?</small>" msgstr "" #: glade/profile.glade:1876 -msgid "" -"<small>This screen shows the state of command line configurable options for " -"pytrainer. These options can be changed here which will affect the current " -"instance of pytrainer, they will not be remembered next time though</small>" +msgid "<small>This screen shows the state of command line configurable options for pytrainer. These options can be changed here which will affect the current instance of pytrainer, they will not be remembered next time though</small>" msgstr "" #: glade/profile.glade:1897 msgid "Startup Parameters" -msgstr "" +msgstr "Startparametrar" #: glade/pytrainer.glade:24 msgid "_File" -msgstr "" +msgstr "_Arkiv" #: glade/pytrainer.glade:39 msgid "_Import" -msgstr "" +msgstr "_Importera" #: glade/pytrainer.glade:60 msgid "_Export as Text Separated by Commas" -msgstr "" +msgstr "_Exportera som kommaseparerad textfil" #: glade/pytrainer.glade:94 msgid "_Edit" -msgstr "" +msgstr "_Redigera" #: glade/pytrainer.glade:114 msgid "_View" -msgstr "" +msgstr "_Visa" #: glade/pytrainer.glade:121 msgid " _Classic View" -msgstr "" +msgstr "_Klassisk vy" #: glade/pytrainer.glade:131 msgid " _List View" -msgstr "" +msgstr "_List vy" #: glade/pytrainer.glade:141 msgid " _Waypoints Editor" -msgstr "" +msgstr "_Koordinat vy" #: glade/pytrainer.glade:155 msgid "Tools" -msgstr "" +msgstr "Verktyg" #: glade/pytrainer.glade:172 msgid "GPS Device Plugins" -msgstr "" +msgstr "GPS Tillägg" #: glade/pytrainer.glade:185 msgid "_Help" -msgstr "" +msgstr "_Hjälp" -#: glade/pytrainer.glade:290 glade/pytrainer.glade:5467 +#: glade/pytrainer.glade:290 +#: glade/pytrainer.glade:5467 msgid "All Sports" -msgstr "" +msgstr "Alla Aktiviteter" #: glade/pytrainer.glade:396 msgid "<b>Sport:</b>" -msgstr "" +msgstr "<b>Aktivitet:</b>" -#: glade/pytrainer.glade:408 glade/pytrainer.glade:2726 -#: glade/pytrainer.glade:3337 glade/pytrainer.glade:3960 +#: glade/pytrainer.glade:408 +#: glade/pytrainer.glade:2726 +#: glade/pytrainer.glade:3337 +#: glade/pytrainer.glade:3960 #: glade/pytrainer.glade:4659 msgid "<b>Duration:</b>" -msgstr "" +msgstr "<b>Tid:</b>" -#: glade/pytrainer.glade:423 glade/pytrainer.glade:2816 -#: glade/pytrainer.glade:3416 glade/pytrainer.glade:4039 +#: glade/pytrainer.glade:423 +#: glade/pytrainer.glade:2816 +#: glade/pytrainer.glade:3416 +#: glade/pytrainer.glade:4039 #: glade/pytrainer.glade:4761 msgid "<b>Speed:</b>" -msgstr "" +msgstr "<b>Hastighet:</b>" -#: glade/pytrainer.glade:437 glade/pytrainer.glade:2984 -#: glade/pytrainer.glade:3611 glade/pytrainer.glade:4234 +#: glade/pytrainer.glade:437 +#: glade/pytrainer.glade:2984 +#: glade/pytrainer.glade:3611 +#: glade/pytrainer.glade:4234 #: glade/pytrainer.glade:4856 msgid "<b>Pace:</b>" -msgstr "" +msgstr "<b>Tempo:</b>" #: glade/pytrainer.glade:451 msgid "<b>Ascent:</b>" -msgstr "" +msgstr "<b>Stigning:</b>" #: glade/pytrainer.glade:465 msgid "<b>Calories:</b>" -msgstr "" +msgstr "<b>Kalorier:</b>" #: glade/pytrainer.glade:479 msgid "<b>Comments:</b>" -msgstr "" +msgstr "<b>Kommentarer:</b>" #: glade/pytrainer.glade:614 msgid "<b>Date:</b>" -msgstr "" +msgstr "<b>Datum:</b>" -#: glade/pytrainer.glade:628 glade/pytrainer.glade:2712 -#: glade/pytrainer.glade:3323 glade/pytrainer.glade:3946 +#: glade/pytrainer.glade:628 +#: glade/pytrainer.glade:2712 +#: glade/pytrainer.glade:3323 +#: glade/pytrainer.glade:3946 #: glade/pytrainer.glade:4645 msgid "<b>Distance:</b>" -msgstr "" +msgstr "<b>Distans:</b>" #: glade/pytrainer.glade:645 msgid "<b>Max Speed</b>" -msgstr "" +msgstr "<b>Maxhastighet</b>" -#: glade/pytrainer.glade:661 glade/pytrainer.glade:3014 -#: glade/pytrainer.glade:3625 glade/pytrainer.glade:4248 +#: glade/pytrainer.glade:661 +#: glade/pytrainer.glade:3014 +#: glade/pytrainer.glade:3625 +#: glade/pytrainer.glade:4248 #: glade/pytrainer.glade:4871 msgid "<b>Max Pace:</b>" -msgstr "" +msgstr "<b>Maxtempo:</b>" #: glade/pytrainer.glade:677 msgid "<b>Descent:</b>" -msgstr "" +msgstr "<b>Sluttning:</b>" -#: glade/pytrainer.glade:769 glade/pytrainer.glade:2924 -#: glade/pytrainer.glade:3491 glade/pytrainer.glade:4114 +#: glade/pytrainer.glade:769 +#: glade/pytrainer.glade:2924 +#: glade/pytrainer.glade:3491 +#: glade/pytrainer.glade:4114 #: glade/pytrainer.glade:4571 msgid "Cal" -msgstr "" +msgstr "cal" -#: glade/pytrainer.glade:808 glade/pytrainer.glade:2686 -#: glade/pytrainer.glade:3297 glade/pytrainer.glade:3920 -#: glade/pytrainer.glade:4748 pytrainer/gui/windowmain.py:104 +#: glade/pytrainer.glade:808 +#: glade/pytrainer.glade:2686 +#: glade/pytrainer.glade:3297 +#: glade/pytrainer.glade:3920 +#: glade/pytrainer.glade:4748 +#: pytrainer/gui/windowmain.py:104 msgid "Km" -msgstr "" +msgstr "Km" -#: glade/pytrainer.glade:823 glade/pytrainer.glade:2846 -#: glade/pytrainer.glade:2879 glade/pytrainer.glade:3446 -#: glade/pytrainer.glade:3539 glade/pytrainer.glade:4069 -#: glade/pytrainer.glade:4162 glade/pytrainer.glade:4791 -#: glade/pytrainer.glade:4807 pytrainer/gui/windowmain.py:633 -#: pytrainer/gui/windowmain.py:634 pytrainer/gui/windowmain.py:756 -#: pytrainer/gui/windowmain.py:757 pytrainer/gui/windowmain.py:834 -#: pytrainer/gui/windowmain.py:835 pytrainer/lib/activity.py:202 +#: glade/pytrainer.glade:823 +#: glade/pytrainer.glade:2846 +#: glade/pytrainer.glade:2879 +#: glade/pytrainer.glade:3446 +#: glade/pytrainer.glade:3539 +#: glade/pytrainer.glade:4069 +#: glade/pytrainer.glade:4162 +#: glade/pytrainer.glade:4791 +#: glade/pytrainer.glade:4807 +#: pytrainer/gui/windowmain.py:633 +#: pytrainer/gui/windowmain.py:634 +#: pytrainer/gui/windowmain.py:756 +#: pytrainer/gui/windowmain.py:757 +#: pytrainer/gui/windowmain.py:834 +#: pytrainer/gui/windowmain.py:835 +#: pytrainer/lib/activity.py:202 msgid "km/h" -msgstr "" +msgstr "km/h" #: glade/pytrainer.glade:838 msgid "<b>Equipment:</b>" -msgstr "" +msgstr "<b>Utrustning:</b>" #: glade/pytrainer.glade:1014 msgid " <b>Title:</b>" -msgstr "" +msgstr " <b>Runda:</b>" -#: glade/pytrainer.glade:1064 pytrainer/gui/windowmain.py:1371 +#: glade/pytrainer.glade:1064 +#: pytrainer/gui/windowmain.py:1371 msgid "Show graph display options" -msgstr "" +msgstr "Visa grafinställningar" #: glade/pytrainer.glade:1082 msgid "" @@ -907,11 +990,20 @@ "Percentage\n" "Zone" msgstr "" +"Profil\n" +"Hastighet\n" +"Tempo\n" +"Puls\n" +"Kadens\n" +"Procent\n" +"Pulszone" -#: glade/pytrainer.glade:1099 glade/pytrainer.glade:3831 -#: glade/pytrainer.glade:4454 glade/pytrainer.glade:5076 +#: glade/pytrainer.glade:1099 +#: glade/pytrainer.glade:3831 +#: glade/pytrainer.glade:4454 +#: glade/pytrainer.glade:5076 msgid "Versus" -msgstr "" +msgstr "Mot" #: glade/pytrainer.glade:1110 msgid "" @@ -922,41 +1014,53 @@ "Heart Rate\n" "Cadence\n" msgstr "" +"Ingen\n" +"Profil\n" +"Hastighet\n" +"Tempo\n" +"Puls\n" +"Kadens\n" #: glade/pytrainer.glade:1257 msgid "<small>Graph Display Options</small>" -msgstr "" +msgstr "<small>Grafinställningar</small>" -#: glade/pytrainer.glade:1282 glade/pytrainer.glade:1497 +#: glade/pytrainer.glade:1282 +#: glade/pytrainer.glade:1497 #: glade/pytrainer.glade:1717 msgid "<small>Limits</small>" -msgstr "" +msgstr "<small>Gränser</small>" -#: glade/pytrainer.glade:1294 glade/pytrainer.glade:1509 +#: glade/pytrainer.glade:1294 +#: glade/pytrainer.glade:1509 #: glade/pytrainer.glade:1763 msgid "<small>Min</small>" -msgstr "" +msgstr "<small>Min</small>" -#: glade/pytrainer.glade:1306 glade/pytrainer.glade:1521 +#: glade/pytrainer.glade:1306 +#: glade/pytrainer.glade:1521 #: glade/pytrainer.glade:1775 msgid "<small>Max</small>" -msgstr "" +msgstr "<small>Max</small>" -#: glade/pytrainer.glade:1355 glade/pytrainer.glade:1577 +#: glade/pytrainer.glade:1355 +#: glade/pytrainer.glade:1577 msgid "<small>Color</small>" -msgstr "" +msgstr "<small>Färg</small>" -#: glade/pytrainer.glade:1386 glade/pytrainer.glade:1590 +#: glade/pytrainer.glade:1386 +#: glade/pytrainer.glade:1590 msgid "<small>Weight</small>" -msgstr "" +msgstr "<small>Vikt</small>" #: glade/pytrainer.glade:1416 msgid "Y1" msgstr "" -#: glade/pytrainer.glade:1427 glade/pytrainer.glade:1638 +#: glade/pytrainer.glade:1427 +#: glade/pytrainer.glade:1638 msgid "<small>Smoothing</small>" -msgstr "" +msgstr "<small>Utjämna</small>" #: glade/pytrainer.glade:1567 msgid "Y2" @@ -968,123 +1072,146 @@ #: glade/pytrainer.glade:1788 msgid "<small>Distance</small>" -msgstr "" +msgstr "<small>Distans</small>" #: glade/pytrainer.glade:1817 msgid "<small>Time</small>" -msgstr "" +msgstr "<small>Tid</small>" #: glade/pytrainer.glade:1878 msgid "Show Laps" -msgstr "" +msgstr "Visa Varv" #: glade/pytrainer.glade:1917 msgid "Reset Graph" -msgstr "" +msgstr "Återställ Graf" #: glade/pytrainer.glade:1979 msgid "Redraw Map" -msgstr "" +msgstr "Ritaom karta" #: glade/pytrainer.glade:1995 msgid "<small>Display map using:</small>" -msgstr "" +msgstr "<small>Visa kart m.h.a.:</small>" #: glade/pytrainer.glade:2097 msgid "<b>Beats:</b>" -msgstr "" +msgstr "<b>Puls:</b>" -#: glade/pytrainer.glade:2109 glade/pytrainer.glade:2894 -#: glade/pytrainer.glade:3461 glade/pytrainer.glade:4084 +#: glade/pytrainer.glade:2109 +#: glade/pytrainer.glade:2894 +#: glade/pytrainer.glade:3461 +#: glade/pytrainer.glade:4084 #: glade/pytrainer.glade:4541 msgid "<b>Calories: </b>" -msgstr "" +msgstr "<b>Kalorier: </b>" -#: glade/pytrainer.glade:2123 glade/pytrainer.glade:3046 -#: glade/pytrainer.glade:3689 glade/pytrainer.glade:4312 +#: glade/pytrainer.glade:2123 +#: glade/pytrainer.glade:3046 +#: glade/pytrainer.glade:3689 +#: glade/pytrainer.glade:4312 #: glade/pytrainer.glade:4919 msgid "<b>Max Beats:</b>" -msgstr "" +msgstr "<b>Maxpuls:</b>" #: glade/pytrainer.glade:2137 msgid "<b>HR Zones Method:</b>" -msgstr "" +msgstr "<b>Pulszonsmetod:</b>" #: glade/pytrainer.glade:2152 msgid "<b>HR Zone5:</b>" -msgstr "" +msgstr "<b>Pulszon 5:</b>" -#: glade/pytrainer.glade:2167 glade/pytrainer.glade:2366 +#: glade/pytrainer.glade:2167 +#: glade/pytrainer.glade:2366 msgid " bpm" -msgstr "" +msgstr "slag/min" #: glade/pytrainer.glade:2183 msgid " Cal" -msgstr "" +msgstr "cal" #: glade/pytrainer.glade:2241 msgid "<b>HR Zone4:</b>" -msgstr "" +msgstr "<b>Pulszon 4:</b>" #: glade/pytrainer.glade:2257 msgid "<b>HR Zone3:</b>" -msgstr "" +msgstr "<b>Pulszon 3:</b>" #: glade/pytrainer.glade:2273 msgid "<b>HR Zone2:</b>" -msgstr "" +msgstr "<b>Pulszon 2:</b>" #: glade/pytrainer.glade:2289 msgid "<b>HR Zone1:</b>" -msgstr "" +msgstr "<b>Pulszon 1:</b>" -#: glade/pytrainer.glade:2391 glade/pytrainer.glade:2403 -#: glade/pytrainer.glade:2418 glade/pytrainer.glade:2433 -#: glade/pytrainer.glade:2448 glade/pytrainer.glade:2969 -#: glade/pytrainer.glade:3063 glade/pytrainer.glade:3596 -#: glade/pytrainer.glade:3674 glade/pytrainer.glade:4219 -#: glade/pytrainer.glade:4297 glade/pytrainer.glade:4616 -#: glade/pytrainer.glade:4823 pytrainer/lib/activity.py:435 +#: glade/pytrainer.glade:2391 +#: glade/pytrainer.glade:2403 +#: glade/pytrainer.glade:2418 +#: glade/pytrainer.glade:2433 +#: glade/pytrainer.glade:2448 +#: glade/pytrainer.glade:2969 +#: glade/pytrainer.glade:3063 +#: glade/pytrainer.glade:3596 +#: glade/pytrainer.glade:3674 +#: glade/pytrainer.glade:4219 +#: glade/pytrainer.glade:4297 +#: glade/pytrainer.glade:4616 +#: glade/pytrainer.glade:4823 +#: pytrainer/lib/activity.py:435 #: pytrainer/lib/activity.py:515 msgid "bpm" -msgstr "" +msgstr "slag/min" #: glade/pytrainer.glade:2493 msgid " <b>Heart Rate:</b>" -msgstr "" +msgstr " <b>Puls:</b>" #: glade/pytrainer.glade:2653 msgid "Record" -msgstr "" +msgstr "Pass" -#: glade/pytrainer.glade:2862 glade/pytrainer.glade:3507 -#: glade/pytrainer.glade:4130 glade/pytrainer.glade:4839 +#: glade/pytrainer.glade:2862 +#: glade/pytrainer.glade:3507 +#: glade/pytrainer.glade:4130 +#: glade/pytrainer.glade:4839 msgid "<b>Max Speed:</b>" -msgstr "" +msgstr "<b>Maxtempo:</b>" -#: glade/pytrainer.glade:2939 glade/pytrainer.glade:3566 -#: glade/pytrainer.glade:4189 glade/pytrainer.glade:4586 +#: glade/pytrainer.glade:2939 +#: glade/pytrainer.glade:3566 +#: glade/pytrainer.glade:4189 +#: glade/pytrainer.glade:4586 msgid "<b>Beats avg:</b>" -msgstr "" +msgstr "<b>Medelpuls:</b>" -#: glade/pytrainer.glade:2999 glade/pytrainer.glade:3031 -#: glade/pytrainer.glade:3642 glade/pytrainer.glade:3658 -#: glade/pytrainer.glade:4265 glade/pytrainer.glade:4281 -#: glade/pytrainer.glade:4888 glade/pytrainer.glade:4904 -#: pytrainer/gui/windowmain.py:635 pytrainer/gui/windowmain.py:636 -#: pytrainer/gui/windowmain.py:758 pytrainer/gui/windowmain.py:759 -#: pytrainer/gui/windowmain.py:836 pytrainer/gui/windowmain.py:837 +#: glade/pytrainer.glade:2999 +#: glade/pytrainer.glade:3031 +#: glade/pytrainer.glade:3642 +#: glade/pytrainer.glade:3658 +#: glade/pytrainer.glade:4265 +#: glade/pytrainer.glade:4281 +#: glade/pytrainer.glade:4888 +#: glade/pytrainer.glade:4904 +#: pytrainer/gui/windowmain.py:635 +#: pytrainer/gui/windowmain.py:636 +#: pytrainer/gui/windowmain.py:758 +#: pytrainer/gui/windowmain.py:759 +#: pytrainer/gui/windowmain.py:836 +#: pytrainer/gui/windowmain.py:837 #: pytrainer/lib/activity.py:203 msgid "min/km" -msgstr "" +msgstr "min/km" #: glade/pytrainer.glade:3153 msgid " <b>Date:</b>" -msgstr "" +msgstr " <b>Datum:</b>" #: glade/pytrainer.glade:3196 msgid "Value" -msgstr "" +msgstr "Värde" #: glade/pytrainer.glade:3207 msgid "" @@ -1092,16 +1219,20 @@ "Stage Velocity\n" "Stage Profile/velocity" msgstr "" +"Etappprofil\n" +" EtappEtapphastighet\n" +"Etappprofil/hastighet" #: glade/pytrainer.glade:3263 msgid "Day" -msgstr "" +msgstr "Dag" #: glade/pytrainer.glade:3765 msgid " <b>Week:</b>" -msgstr "" +msgstr "<b>Vecka:</b>" -#: glade/pytrainer.glade:3816 glade/pytrainer.glade:4439 +#: glade/pytrainer.glade:3816 +#: glade/pytrainer.glade:4439 #: glade/pytrainer.glade:5061 msgid "" "Distance\n" @@ -1110,8 +1241,14 @@ "Average Speed\n" "Calories" msgstr "" +"Distans\n" +"Tid\n" +"Medelpuls\n" +"Medelhastighet\n" +"Kalorier" -#: glade/pytrainer.glade:3842 glade/pytrainer.glade:4465 +#: glade/pytrainer.glade:3842 +#: glade/pytrainer.glade:4465 #: glade/pytrainer.glade:5087 msgid "" "None\n" @@ -1121,50 +1258,56 @@ "Average Speed\n" "Calories" msgstr "" +"Ingen\n" +"Distans\n" +"Tid\n" +"Medelpuls\n" +"Medelhastighet\n" +"Kalorier" #: glade/pytrainer.glade:3886 msgid "Week" -msgstr "" +msgstr "Vecka" #: glade/pytrainer.glade:4388 msgid " <b>Month:</b>" -msgstr "" +msgstr " <b>Månad:</b>" #: glade/pytrainer.glade:4508 msgid "Month" -msgstr "" +msgstr "Månad" #: glade/pytrainer.glade:5010 msgid " <b>Year:</b>" -msgstr "" +msgstr " <b>År:</b>" #: glade/pytrainer.glade:5130 msgid "Year" -msgstr "" +msgstr "År" #: glade/pytrainer.glade:5284 msgid "<b>Graph</b>" -msgstr "" +msgstr "<b>Graf</b>" #: glade/pytrainer.glade:5325 msgid "<b>History</b>" -msgstr "" +msgstr "<b>Historia</b>" #: glade/pytrainer.glade:5389 msgid "<b>Title:</b>" -msgstr "" +msgstr "<b>Titel:</b>" #: glade/pytrainer.glade:5412 msgid "Search" -msgstr "" +msgstr "Sök" #: glade/pytrainer.glade:5436 msgid "All Distances" -msgstr "" +msgstr "Alla distanser" #: glade/pytrainer.glade:5445 msgid "All Durations" -msgstr "" +msgstr "All varaktighet" #: glade/pytrainer.glade:5455 msgid "" @@ -1173,14 +1316,18 @@ "Last 6 months\n" "Last 12 months" msgstr "" +"All tid\n" +"Senaste 4 veckorna\n" +"Senaste 6 månaderna\n" +"Senaste 12 månaderna" #: glade/pytrainer.glade:5492 msgid "Columns" -msgstr "" +msgstr "Kolumner" #: glade/pytrainer.glade:5619 msgid "Type:" -msgstr "" +msgstr "Typ:" #: glade/pytrainer.glade:5632 msgid "" @@ -1192,27 +1339,27 @@ #: glade/pytrainer.glade:5648 msgid "Latitude: " -msgstr "" +msgstr "Latitud:" #: glade/pytrainer.glade:5662 msgid " Name:" -msgstr "" +msgstr "Namn:" #: glade/pytrainer.glade:5674 msgid "Longitude:" -msgstr "" +msgstr "Longitud:" #: glade/pytrainer.glade:5766 msgid "<b> Waypoint: </b>" -msgstr "" +msgstr "<b> Koordinat: </b>" #: glade/pytrainer.glade:5950 msgid "Edit Record" -msgstr "" +msgstr "Ändra post" #: glade/pytrainer.glade:5964 msgid "Show graph in classic view" -msgstr "" +msgstr "Visa graf i klassisk vy" #: glade/pytrainer.glade:5978 msgid "Merge tracks" @@ -1222,324 +1369,365 @@ msgid "Select track record" msgstr "" -#: glade/warning.glade:7 glade/warning.glade:38 +#: glade/warning.glade:7 +#: glade/warning.glade:38 msgid "Warning" -msgstr "" +msgstr "Varning" #: pytrainer/gui/windowmain.py:102 msgid "Miles" -msgstr "" +msgstr "Miles" -#: pytrainer/gui/windowmain.py:105 pytrainer/gui/windowmain.py:109 -#: pytrainer/gui/windowmain.py:122 pytrainer/gui/windowmain.py:125 +#: pytrainer/gui/windowmain.py:105 +#: pytrainer/gui/windowmain.py:109 +#: pytrainer/gui/windowmain.py:122 +#: pytrainer/gui/windowmain.py:125 msgid "id" -msgstr "" +msgstr "id" #: pytrainer/gui/windowmain.py:105 msgid "Start" -msgstr "" +msgstr "Start" -#: pytrainer/gui/windowmain.py:112 pytrainer/gui/windowmain.py:395 -#: pytrainer/gui/windowmain.py:1144 pytrainer/gui/windowimportdata.py:352 -#: pytrainer/gui/windowrecord.py:210 pytrainer/lib/activity.py:313 -#: pytrainer/lib/activity.py:324 pytrainer/lib/activity.py:396 -#: pytrainer/lib/activity.py:407 pytrainer/lib/activity.py:416 -#: pytrainer/lib/activity.py:425 pytrainer/lib/activity.py:434 -#: pytrainer/lib/activity.py:444 pytrainer/lib/activity.py:453 -#: pytrainer/lib/activity.py:514 pytrainer/extensions/googlemaps.py:71 +#: pytrainer/gui/windowmain.py:112 +#: pytrainer/gui/windowmain.py:395 +#: pytrainer/gui/windowmain.py:1144 +#: pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 +#: pytrainer/lib/activity.py:313 +#: pytrainer/lib/activity.py:324 +#: pytrainer/lib/activity.py:396 +#: pytrainer/lib/activity.py:407 +#: pytrainer/lib/activity.py:416 +#: pytrainer/lib/activity.py:425 +#: pytrainer/lib/activity.py:434 +#: pytrainer/lib/activity.py:444 +#: pytrainer/lib/activity.py:453 +#: pytrainer/lib/activity.py:514 +#: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 msgid "Distance" -msgstr "" +msgstr "Distans" -#: pytrainer/gui/windowmain.py:114 pytrainer/gui/windowmain.py:396 -#: pytrainer/gui/windowmain.py:1146 pytrainer/extensions/googlemaps.py:71 +#: pytrainer/gui/windowmain.py:114 +#: pytrainer/gui/windowmain.py:396 +#: pytrainer/gui/windowmain.py:1146 +#: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 msgid "Time" -msgstr "" +msgstr "Tid" #: pytrainer/gui/windowmain.py:115 msgid "⌀ HR" -msgstr "" +msgstr "⌀ Puls" #: pytrainer/gui/windowmain.py:116 msgid "⌀ Speed" -msgstr "" +msgstr "⌀ Hastighet" #: pytrainer/gui/windowmain.py:122 msgid "Waypoint" -msgstr "" +msgstr "Koordinat" #: pytrainer/gui/windowmain.py:127 msgid "Weight" -msgstr "" +msgstr "Vikt" #: pytrainer/gui/windowmain.py:128 msgid "Body Fat %" -msgstr "" +msgstr "% Kroppsfett" #: pytrainer/gui/windowmain.py:129 msgid "Resting HR" -msgstr "" +msgstr "Vilopuls" #: pytrainer/gui/windowmain.py:130 msgid "Max HR" -msgstr "" +msgstr "Maxpuls" #: pytrainer/gui/windowmain.py:397 msgid "Laps" -msgstr "" +msgstr "Varv" #: pytrainer/gui/windowmain.py:398 msgid "Left Axis Grid" -msgstr "" +msgstr "Vänster axel skala" #: pytrainer/gui/windowmain.py:399 msgid "Right Axis Grid" -msgstr "" +msgstr "Höger axel skala" #: pytrainer/gui/windowmain.py:400 msgid "X Axis Grid" -msgstr "" +msgstr "X-axel skala" #: pytrainer/gui/windowmain.py:461 msgid "Reset Limits" -msgstr "" +msgstr "Återställ gränser" #: pytrainer/gui/windowmain.py:463 msgid "Set Limits" -msgstr "" +msgstr "Sätt gränser" #: pytrainer/gui/windowmain.py:618 msgid "Percentages method" -msgstr "" +msgstr "Procent" -#: pytrainer/gui/windowmain.py:626 pytrainer/gui/windowmain.py:749 -#: pytrainer/gui/windowmain.py:827 pytrainer/lib/activity.py:196 +#: pytrainer/gui/windowmain.py:626 +#: pytrainer/gui/windowmain.py:749 +#: pytrainer/gui/windowmain.py:827 +#: pytrainer/lib/activity.py:196 msgid "miles" -msgstr "" +msgstr "miles" -#: pytrainer/gui/windowmain.py:627 pytrainer/gui/windowmain.py:628 -#: pytrainer/gui/windowmain.py:750 pytrainer/gui/windowmain.py:751 -#: pytrainer/gui/windowmain.py:828 pytrainer/gui/windowmain.py:829 +#: pytrainer/gui/windowmain.py:627 +#: pytrainer/gui/windowmain.py:628 +#: pytrainer/gui/windowmain.py:750 +#: pytrainer/gui/windowmain.py:751 +#: pytrainer/gui/windowmain.py:828 +#: pytrainer/gui/windowmain.py:829 #: pytrainer/lib/activity.py:197 msgid "miles/h" -msgstr "" +msgstr "miles/h" -#: pytrainer/gui/windowmain.py:629 pytrainer/gui/windowmain.py:630 -#: pytrainer/gui/windowmain.py:752 pytrainer/gui/windowmain.py:753 -#: pytrainer/gui/windowmain.py:830 pytrainer/gui/windowmain.py:831 +#: pytrainer/gui/windowmain.py:629 +#: pytrainer/gui/windowmain.py:630 +#: pytrainer/gui/windowmain.py:752 +#: pytrainer/gui/windowmain.py:753 +#: pytrainer/gui/windowmain.py:830 +#: pytrainer/gui/windowmain.py:831 #: pytrainer/lib/activity.py:198 msgid "min/mile" -msgstr "" +msgstr "min/mile" -#: pytrainer/gui/windowmain.py:632 pytrainer/gui/windowmain.py:755 -#: pytrainer/gui/windowmain.py:833 pytrainer/lib/activity.py:201 +#: pytrainer/gui/windowmain.py:632 +#: pytrainer/gui/windowmain.py:755 +#: pytrainer/gui/windowmain.py:833 +#: pytrainer/lib/activity.py:201 msgid "km" -msgstr "" +msgstr "km" -#: pytrainer/gui/windowmain.py:1147 pytrainer/recordgraph.py:144 +#: pytrainer/gui/windowmain.py:1147 +#: pytrainer/recordgraph.py:144 msgid "Beats" -msgstr "" +msgstr "Puls" #: pytrainer/gui/windowmain.py:1148 msgid "Average" -msgstr "" +msgstr "Medel" #: pytrainer/gui/windowmain.py:1367 msgid "Hide graph display options" -msgstr "" +msgstr "Dölj grafinställningar" #: pytrainer/gui/windowmain.py:1690 msgid "lap" -msgstr "" +msgstr "varv" -#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/drawArea.py:165 -#: pytrainer/extensions/googlemaps.py:69 pytrainer/extensions/osm.py:48 +#: pytrainer/gui/windowmain.py:1700 +#: pytrainer/gui/drawArea.py:165 +#: pytrainer/extensions/googlemaps.py:69 +#: pytrainer/extensions/osm.py:48 msgid "h" -msgstr "" +msgstr "h" -#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/windowmain.py:1702 +#: pytrainer/gui/windowmain.py:1700 +#: pytrainer/gui/windowmain.py:1702 #: pytrainer/lib/activity.py:204 msgid "m" -msgstr "" +msgstr "m" -#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/windowmain.py:1702 +#: pytrainer/gui/windowmain.py:1700 +#: pytrainer/gui/windowmain.py:1702 msgid "s" -msgstr "" +msgstr "s" -#: pytrainer/gui/windowmain.py:1789 pytrainer/record.py:63 +#: pytrainer/gui/windowmain.py:1789 +#: pytrainer/record.py:63 msgid "Edit Entry" -msgstr "" +msgstr "Ändra inmatning" #: pytrainer/gui/windowmain.py:1800 msgid "Delete Entry" -msgstr "" +msgstr "Radera inmatning" #: pytrainer/gui/windowmain.py:1824 msgid "Create Athlete Entry" -msgstr "" +msgstr "Skapa användar notering" #: pytrainer/gui/windowmain.py:1828 msgid "Edit Athlete Entry" msgstr "" -#: pytrainer/gui/windowmain.py:1909 pytrainer/main.py:447 +#: pytrainer/gui/windowmain.py:1909 +#: pytrainer/main.py:447 msgid "Delete this database entry?" -msgstr "" +msgstr "Radera denna inmatning" #: pytrainer/gui/windowmain.py:1911 msgid "Are you sure?" -msgstr "" +msgstr "Är du säker?" #: pytrainer/gui/windowimportdata.py:116 msgid "No file selected" -msgstr "" +msgstr "Ingen fil vald" #: pytrainer/gui/windowimportdata.py:161 msgid "Configure" -msgstr "" +msgstr "Konfigurera" #: pytrainer/gui/windowimportdata.py:162 msgid "Run" -msgstr "" +msgstr "Kör" #: pytrainer/gui/windowimportdata.py:170 msgid "Disabled" -msgstr "" +msgstr "Avaktiverad" #: pytrainer/gui/windowimportdata.py:172 msgid "Enabled" -msgstr "" +msgstr "Aktiverad" #: pytrainer/gui/windowimportdata.py:252 msgid "GPS device found" -msgstr "" +msgstr "GPS enhet hittad" #: pytrainer/gui/windowimportdata.py:255 msgid "GPS device <b>not</b> found" -msgstr "" +msgstr "GPS enhet <b>ej</b> hittad" #: pytrainer/gui/windowimportdata.py:262 msgid "This tool was not found on the system" -msgstr "" +msgstr "Detta verktyg hittades inte på systemet" #: pytrainer/gui/windowimportdata.py:264 msgid " Homepage" -msgstr "" +msgstr " Hemsida" #: pytrainer/gui/windowimportdata.py:317 msgid "File" -msgstr "" +msgstr "Fil" #: pytrainer/gui/windowimportdata.py:317 msgid "Type" -msgstr "" +msgstr "Typ" #: pytrainer/gui/windowimportdata.py:317 msgid "Activities" -msgstr "" +msgstr "Aktiviteter" -#: pytrainer/gui/windowimportdata.py:352 pytrainer/gui/windowrecord.py:210 +#: pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 msgid "Start Time" -msgstr "" +msgstr "Starttid" -#: pytrainer/gui/windowimportdata.py:352 pytrainer/gui/windowrecord.py:210 +#: pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 msgid "Duration" -msgstr "" +msgstr "Varaktighet" #: pytrainer/gui/windowimportdata.py:501 msgid "Imported into database" -msgstr "" +msgstr "Importerad till databas" -#: pytrainer/gui/windowimportdata.py:545 pytrainer/gui/windowextensions.py:81 +#: pytrainer/gui/windowimportdata.py:545 +#: pytrainer/gui/windowextensions.py:81 #: pytrainer/gui/windowplugins.py:80 #, python-format msgid "%s settings" -msgstr "" +msgstr "%s inställningar" -#: pytrainer/gui/windowimportdata.py:560 pytrainer/gui/windowextensions.py:70 -#: pytrainer/gui/windowplugins.py:71 pytrainer/gui/windowplugins.py:95 +#: pytrainer/gui/windowimportdata.py:560 +#: pytrainer/gui/windowextensions.py:70 +#: pytrainer/gui/windowplugins.py:71 +#: pytrainer/gui/windowplugins.py:95 msgid "Disable" -msgstr "" +msgstr "Avaktivera" -#: pytrainer/gui/windowimportdata.py:561 pytrainer/gui/windowextensions.py:72 -#: pytrainer/gui/windowplugins.py:69 pytrainer/gui/windowplugins.py:96 +#: pytrainer/gui/windowimportdata.py:561 +#: pytrainer/gui/windowextensions.py:72 +#: pytrainer/gui/windowplugins.py:69 +#: pytrainer/gui/windowplugins.py:96 msgid "Enable" -msgstr "" +msgstr "Aktivera" -#: pytrainer/gui/windowimportdata.py:568 pytrainer/gui/windowplugins.py:103 +#: pytrainer/gui/windowimportdata.py:568 +#: pytrainer/gui/windowplugins.py:103 msgid "Ok" -msgstr "" +msgstr "Ok" #: pytrainer/gui/windowimportdata.py:628 msgid "Saving options" -msgstr "" +msgstr "Sparar inställningar" #: pytrainer/gui/windowimportdata.py:630 msgid "Options saved" -msgstr "" +msgstr "Inställningar sparade" #: pytrainer/gui/windowimportdata.py:655 msgid "Importing one activity" -msgstr "" +msgstr "Importerar en aktivitet" #: pytrainer/gui/windowimportdata.py:656 msgid "Imported one activity" -msgstr "" +msgstr "Importerade en aktivitet" #: pytrainer/gui/windowimportdata.py:658 #, python-format msgid "Importing %d activities" -msgstr "" +msgstr "Importerar %d aktiviteter" #: pytrainer/gui/windowimportdata.py:659 #, python-format msgid "Imported %d activities" -msgstr "" +msgstr "Importerade %d aktiviteter" #: pytrainer/gui/windowimportdata.py:678 msgid "Choose a file (or files) to import activities from" -msgstr "" +msgstr "Välj en eller flera filer att importera aktivitet(er) från" -#: pytrainer/gui/windowimportdata.py:693 pytrainer/gui/windowimportdata.py:694 +#: pytrainer/gui/windowimportdata.py:693 +#: pytrainer/gui/windowimportdata.py:694 #, python-format msgid "Found file of type: %s" -msgstr "" +msgstr "Hittade fil av typen: %s" #: pytrainer/gui/windowimportdata.py:718 msgid "Found in database" -msgstr "" +msgstr "Hittades i databasen" -#: pytrainer/gui/windowimportdata.py:733 pytrainer/gui/windowimportdata.py:734 +#: pytrainer/gui/windowimportdata.py:733 +#: pytrainer/gui/windowimportdata.py:734 #, python-format msgid "File %s is of unknown or unsupported file type" -msgstr "" +msgstr "Filen %s är av en okänd filtyp" #: pytrainer/gui/windowimportdata.py:807 #, python-format msgid "Column %d" -msgstr "" +msgstr "Kolumn %d" -#: pytrainer/gui/drawArea.py:166 pytrainer/extensions/googlemaps.py:69 +#: pytrainer/gui/drawArea.py:166 +#: pytrainer/extensions/googlemaps.py:69 #: pytrainer/extensions/osm.py:48 msgid "min" -msgstr "" +msgstr "min" #: pytrainer/gui/drawArea.py:399 msgid "rest" -msgstr "" +msgstr "vila" #: pytrainer/gui/windowrecord.py:210 msgid "GPX File" -msgstr "" +msgstr "GPX Fil" #: pytrainer/gui/windowprofile.py:41 msgid "Male" -msgstr "" +msgstr "Man" #: pytrainer/gui/windowprofile.py:42 msgid "Female" -msgstr "" +msgstr "Kvinna" #: pytrainer/gui/windowprofile.py:59 msgid "MET" @@ -1547,7 +1735,7 @@ #: pytrainer/gui/windowprofile.py:59 msgid "Maximum Pace" -msgstr "" +msgstr "Maxtempo" #: pytrainer/gui/dialogselecttrack.py:40 msgid "Track Name" @@ -1555,75 +1743,84 @@ #: pytrainer/gui/drawGraph.py:170 msgid "Athlete Data" -msgstr "" +msgstr "Användar data" -#: pytrainer/gui/windowextensions.py:112 pytrainer/gui/windowextensions.py:125 +#: pytrainer/gui/windowextensions.py:112 +#: pytrainer/gui/windowextensions.py:125 msgid "OK" -msgstr "" +msgstr "OK" -#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:134 +#: pytrainer/daygraph.py:52 msgid "Height (m)" -msgstr "" +msgstr "Höjd (m)" -#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:134 +#: pytrainer/daygraph.py:52 msgid "Stage Profile" -msgstr "" +msgstr "Etappprofil" #: pytrainer/recordgraph.py:136 msgid "Speed (Km/h)" -msgstr "" +msgstr "Hastighet (Km/h)" -#: pytrainer/recordgraph.py:136 pytrainer/lib/activity.py:325 -#: pytrainer/lib/activity.py:415 pytrainer/lib/activity.py:417 +#: pytrainer/recordgraph.py:136 +#: pytrainer/lib/activity.py:325 +#: pytrainer/lib/activity.py:415 +#: pytrainer/lib/activity.py:417 msgid "Speed" -msgstr "" +msgstr "Hastighet" -#: pytrainer/recordgraph.py:138 pytrainer/lib/activity.py:314 -#: pytrainer/lib/activity.py:424 pytrainer/lib/activity.py:426 +#: pytrainer/recordgraph.py:138 +#: pytrainer/lib/activity.py:314 +#: pytrainer/lib/activity.py:424 +#: pytrainer/lib/activity.py:426 msgid "Pace" -msgstr "" +msgstr "Tempo" -#: pytrainer/recordgraph.py:140 pytrainer/heartrategraph.py:36 +#: pytrainer/recordgraph.py:140 +#: pytrainer/heartrategraph.py:36 #: pytrainer/daygraph.py:56 msgid "Beats (bpm)" -msgstr "" +msgstr "Puls (slag/min)" #: pytrainer/recordgraph.py:142 msgid "Cadence (rpm)" -msgstr "" +msgstr "Kadens (varv/min)" -#: pytrainer/recordgraph.py:142 pytrainer/lib/activity.py:452 +#: pytrainer/recordgraph.py:142 +#: pytrainer/lib/activity.py:452 #: pytrainer/lib/activity.py:454 msgid "Cadence" -msgstr "" +msgstr "Kadens" #: pytrainer/recordgraph.py:144 msgid "Beats (%)" -msgstr "" +msgstr "Puls (%)" #: pytrainer/recordgraph.py:146 msgid "Zone" -msgstr "" +msgstr "Zon" #: pytrainer/profile.py:110 msgid "Moderate activity" -msgstr "" +msgstr "Mycket lätt träning" #: pytrainer/profile.py:111 msgid "Weight Control" -msgstr "" +msgstr "Lätt träning" #: pytrainer/profile.py:112 msgid "Aerobic" -msgstr "" +msgstr "Medelintensiv träning" #: pytrainer/profile.py:113 msgid "Anaerobic" -msgstr "" +msgstr "Hård träning" #: pytrainer/profile.py:114 msgid "VO2 MAX" -msgstr "" +msgstr "Högintensiv träning" #: pytrainer/lib/gpx.py:122 msgid "No Name" @@ -1635,128 +1832,144 @@ #: pytrainer/lib/activity.py:199 msgid "feet" -msgstr "" +msgstr "fot" #: pytrainer/lib/activity.py:312 msgid "Pace by Lap" -msgstr "" +msgstr "Varvtid" -#: pytrainer/lib/activity.py:318 pytrainer/lib/activity.py:329 -#: pytrainer/lib/activity.py:401 pytrainer/lib/activity.py:411 -#: pytrainer/lib/activity.py:420 pytrainer/lib/activity.py:429 -#: pytrainer/lib/activity.py:438 pytrainer/lib/activity.py:448 -#: pytrainer/lib/activity.py:457 pytrainer/lib/activity.py:519 +#: pytrainer/lib/activity.py:318 +#: pytrainer/lib/activity.py:329 +#: pytrainer/lib/activity.py:401 +#: pytrainer/lib/activity.py:411 +#: pytrainer/lib/activity.py:420 +#: pytrainer/lib/activity.py:429 +#: pytrainer/lib/activity.py:438 +#: pytrainer/lib/activity.py:448 +#: pytrainer/lib/activity.py:457 +#: pytrainer/lib/activity.py:519 msgid "Time (seconds)" -msgstr "" +msgstr "Tid (sekunder)" #: pytrainer/lib/activity.py:323 msgid "Speed by Lap" -msgstr "" +msgstr "Hastighet per varv" -#: pytrainer/lib/activity.py:395 pytrainer/lib/activity.py:397 +#: pytrainer/lib/activity.py:395 +#: pytrainer/lib/activity.py:397 msgid "Elevation" -msgstr "" +msgstr "Höjd över havet" -#: pytrainer/lib/activity.py:406 pytrainer/lib/activity.py:408 +#: pytrainer/lib/activity.py:406 +#: pytrainer/lib/activity.py:408 msgid "Corrected Elevation" -msgstr "" +msgstr "Korrigerad höjd över havet" #: pytrainer/lib/activity.py:443 #, python-format msgid "Heart Rate (% of max)" -msgstr "" +msgstr "Puls (% of max)" #: pytrainer/lib/activity.py:445 msgid "%" -msgstr "" +msgstr "%" #: pytrainer/lib/activity.py:454 msgid "rpm" -msgstr "" +msgstr "varv per minut" #: pytrainer/lib/activity.py:513 msgid "Heart Rate zone" -msgstr "" +msgstr "Pulszon" -#: pytrainer/monthgraph.py:70 pytrainer/monthgraph.py:72 -#: pytrainer/monthgraph.py:74 pytrainer/monthgraph.py:76 +#: pytrainer/monthgraph.py:70 +#: pytrainer/monthgraph.py:72 +#: pytrainer/monthgraph.py:74 +#: pytrainer/monthgraph.py:76 #: pytrainer/monthgraph.py:78 msgid "day" -msgstr "" +msgstr "dag" -#: pytrainer/monthgraph.py:70 pytrainer/weekgraph.py:115 +#: pytrainer/monthgraph.py:70 +#: pytrainer/weekgraph.py:115 msgid "Daily Distance" -msgstr "" +msgstr "Sträcka per dag" -#: pytrainer/monthgraph.py:72 pytrainer/yeargraph.py:72 +#: pytrainer/monthgraph.py:72 +#: pytrainer/yeargraph.py:72 #: pytrainer/weekgraph.py:117 msgid "Time (hours)" -msgstr "" +msgstr "Tid (tim)" -#: pytrainer/monthgraph.py:72 pytrainer/weekgraph.py:117 +#: pytrainer/monthgraph.py:72 +#: pytrainer/weekgraph.py:117 msgid "Daily Time" -msgstr "" +msgstr "Tid per dag" -#: pytrainer/monthgraph.py:74 pytrainer/yeargraph.py:74 +#: pytrainer/monthgraph.py:74 +#: pytrainer/yeargraph.py:74 #: pytrainer/weekgraph.py:119 msgid "Average Heart Rate (bpm)" -msgstr "" +msgstr "Medelpuls (slag/min)" -#: pytrainer/monthgraph.py:74 pytrainer/weekgraph.py:119 +#: pytrainer/monthgraph.py:74 +#: pytrainer/weekgraph.py:119 msgid "Daily Average Heart Rate" -msgstr "" +msgstr "Medelpuls per dag" -#: pytrainer/monthgraph.py:76 pytrainer/weekgraph.py:121 +#: pytrainer/monthgraph.py:76 +#: pytrainer/weekgraph.py:121 msgid "Daily Average Speed" -msgstr "" +msgstr "Medelhastighet per dag" -#: pytrainer/monthgraph.py:78 pytrainer/weekgraph.py:123 +#: pytrainer/monthgraph.py:78 +#: pytrainer/weekgraph.py:123 msgid "Daily Calories" -msgstr "" +msgstr "Kalorier per dag" #: pytrainer/athlete.py:52 msgid "lb" -msgstr "" +msgstr "lb" #: pytrainer/athlete.py:54 msgid "kg" -msgstr "" +msgstr ... [truncated message content] |
From: <dg...@us...> - 2011-01-06 22:30:53
|
Revision: 759 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=759&view=rev Author: dgranda Date: 2011-01-06 22:30:46 +0000 (Thu, 06 Jan 2011) Log Message: ----------- Added support for swedish (sv) locale Modified Paths: -------------- pytrainer/trunk/setup.py Modified: pytrainer/trunk/setup.py =================================================================== --- pytrainer/trunk/setup.py 2010-12-31 15:46:12 UTC (rev 758) +++ pytrainer/trunk/setup.py 2011-01-06 22:30:46 UTC (rev 759) @@ -56,6 +56,7 @@ (install_locale("no")), (install_locale("pl")), (install_locale("ru")), + (install_locale("sv")), ('share/pixmaps/',['pytrainer.png']), ('share/applications/',['pytrainer.desktop']) ], This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2010-12-31 15:46:18
|
Revision: 758 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=758&view=rev Author: dgranda Date: 2010-12-31 15:46:12 +0000 (Fri, 31 Dec 2010) Log Message: ----------- Added support for swedish locale Modified Paths: -------------- pytrainer/trunk/utils/translator.sh Modified: pytrainer/trunk/utils/translator.sh =================================================================== --- pytrainer/trunk/utils/translator.sh 2010-12-31 15:45:34 UTC (rev 757) +++ pytrainer/trunk/utils/translator.sh 2010-12-31 15:46:12 UTC (rev 758) @@ -3,7 +3,7 @@ SOFTWARE=$(zenity --list --text="Select your translation software" --radiolist --column "Pick" --column "Software" TRUE "gtranslator" FALSE "kbabel" FALSE "poedit") if [ $? != 0 ]; then exit ; fi -LANGUAGE=$(zenity --list --text="Select your language" --radiolist --column "Pick" --column "Language" TRUE "es" FALSE "eu" FALSE "ca" FALSE "fr" FALSE "da" FALSE "de" FALSE "pl" FALSE "no" FALSE "cs" FALSE "ru" FALSE "pl") +LANGUAGE=$(zenity --list --text="Select your language" --radiolist --column "Pick" --column "Language" TRUE "es" FALSE "eu" FALSE "ca" FALSE "fr" FALSE "da" FALSE "de" FALSE "pl" FALSE "no" FALSE "cs" FALSE "ru" FALSE "pl" FALSE "sv") if [ $? != 0 ]; then exit ; fi cd ../ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2010-12-31 15:45:41
|
Revision: 757 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=757&view=rev Author: dgranda Date: 2010-12-31 15:45:34 +0000 (Fri, 31 Dec 2010) Log Message: ----------- Added directories, clean po file and specific makefile for swedish localization Added Paths: ----------- pytrainer/trunk/locale/sv/ pytrainer/trunk/locale/sv/LC_MESSAGES/ pytrainer/trunk/locale/sv/LC_MESSAGES/Makefile pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po Added: pytrainer/trunk/locale/sv/LC_MESSAGES/Makefile =================================================================== --- pytrainer/trunk/locale/sv/LC_MESSAGES/Makefile (rev 0) +++ pytrainer/trunk/locale/sv/LC_MESSAGES/Makefile 2010-12-31 15:45:34 UTC (rev 757) @@ -0,0 +1,7 @@ +default: + msgfmt pytrainer_sv.po -o ./pytrainer.mo + +merge: + msgmerge pytrainer_sv.po pytrainer_sv.po_new > pytrainer_sv.po.tmp + mv pytrainer_sv.po.tmp pytrainer_sv.po + rm pytrainer_sv.po_new Property changes on: pytrainer/trunk/locale/sv/LC_MESSAGES/Makefile ___________________________________________________________________ Added: svn:executable + * Added: pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po =================================================================== --- pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po (rev 0) +++ pytrainer/trunk/locale/sv/LC_MESSAGES/pytrainer_sv.po 2010-12-31 15:45:34 UTC (rev 757) @@ -0,0 +1,1850 @@ +# Swedish translations for pytrainer package. +# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the pytrainer package. +# David García Granda <dg...@gm...>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: pytrainer 1.8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-31 16:41+0100\n" +"PO-Revision-Date: 2010-12-31 16:37+0100\n" +"Last-Translator: David García Granda <dg...@gm...>\n" +"Language-Team: Swedish\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: glade/calendar.glade:7 +msgid "Calendar" +msgstr "" + +#: glade/equipment.glade:109 +msgid "<b>Equipment List</b>" +msgstr "" + +#: glade/equipment.glade:149 glade/equipment.glade:406 +msgid "Description" +msgstr "" + +#: glade/equipment.glade:174 glade/equipment.glade:431 +msgid "Life Expectancy" +msgstr "" + +#: glade/equipment.glade:211 glade/equipment.glade:467 +msgid "Prior Usage" +msgstr "" + +#: glade/equipment.glade:243 glade/equipment.glade:499 +msgid "Active" +msgstr "" + +#: glade/equipment.glade:277 glade/equipment.glade:533 +#: pytrainer/gui/windowimportdata.py:352 +msgid "Notes" +msgstr "" + +#: glade/equipment.glade:366 +msgid "<b>Add New Equipment</b>" +msgstr "" + +#: glade/equipment.glade:622 +msgid "<b>Edit Equipment</b>" +msgstr "" + +#: glade/equipment.glade:651 +msgid "Really delete the equipment item?" +msgstr "" + +#: glade/equipment.glade:704 +msgid "<b>Delete Equipment</b>" +msgstr "" + +#: glade/extensions.glade:9 glade/pytrainer.glade:163 +msgid "Extensions" +msgstr "" + +#: glade/extensions.glade:54 +msgid "<b>Extension Details</b>" +msgstr "" + +#: glade/extensions.glade:67 +msgid "name-entry" +msgstr "" + +#: glade/extensions.glade:82 glade/plugins.glade:144 glade/profile.glade:727 +#: glade/pytrainer.glade:5161 +msgid "Name:" +msgstr "" + +#: glade/extensions.glade:96 glade/plugins.glade:115 +msgid "Status:" +msgstr "" + +#: glade/extensions.glade:110 glade/plugins.glade:86 +#: glade/pytrainer.glade:5690 +msgid "Description:" +msgstr "" + +#: glade/extensions.glade:124 glade/plugins.glade:100 +msgid "status-entry" +msgstr "" + +#: glade/extensions.glade:139 +msgid "description-entry" +msgstr "" + +#: glade/importdata.glade:7 glade/importdata.glade:325 +msgid "Import" +msgstr "" + +#: glade/importdata.glade:36 +msgid "" +"Test 1\n" +"Test 2" +msgstr "" + +#: glade/importdata.glade:46 +msgid "<b>Select your GPS device</b>" +msgstr "" + +#: glade/importdata.glade:64 +msgid "Import from GPS Device is not yet implemented" +msgstr "" + +#: glade/importdata.glade:92 +msgid "<b>Tools</b>" +msgstr "" + +#: glade/importdata.glade:111 +msgid "Rescan" +msgstr "" + +#: glade/importdata.glade:115 +msgid "Rescan system for available tools" +msgstr "" + +#: glade/importdata.glade:168 +msgid "<b>Import from GPS Device</b>" +msgstr "" + +#: glade/importdata.glade:221 +msgid "Remove selected files and the associated activities" +msgstr "" + +#: glade/importdata.glade:239 +msgid "Add files to import activities from" +msgstr "" + +#: glade/importdata.glade:264 +msgid "<b>Add file(s) to import activities from</b>" +msgstr "" + +#: glade/importdata.glade:307 +msgid "<b>Select activities to import</b>" +msgstr "" + +#: glade/importdata.glade:330 +msgid "Import selected activities" +msgstr "" + +#: glade/importdata.glade:347 +msgid "Close Import dialog" +msgstr "" + +#: glade/importdata.glade:387 +msgid "<b>Import from File</b>" +msgstr "" + +#: glade/importdata.glade:464 +msgid "<b>Plugins</b>" +msgstr "" + +#: glade/importdata.glade:491 +msgid "Import from GPS Device" +msgstr "" + +#: glade/importdata.glade:510 +msgid "Import from File" +msgstr "" + +#: glade/importdata.glade:525 +msgid "Launch 'File Select' on start" +msgstr "" + +#: glade/importdata.glade:530 +msgid "Automatically start the file selection dialog" +msgstr "" + +#: glade/importdata.glade:546 glade/plugins.glade:9 +msgid "Plugins" +msgstr "" + +#: glade/importdata.glade:572 +msgid "<b>Default to Tab</b>" +msgstr "" + +#: glade/importdata.glade:595 +msgid "Reset" +msgstr "" + +#: glade/importdata.glade:611 +msgid "Save" +msgstr "" + +#: glade/importdata.glade:670 +msgid "<b>Options</b>" +msgstr "" + +#: glade/importdata.glade:702 +msgid "<b>Select file to import from</b>" +msgstr "" + +#: glade/importdata.glade:731 +msgid "Tab" +msgstr "" + +#: glade/importdata.glade:746 +msgid "Comma" +msgstr "" + +#: glade/importdata.glade:763 +msgid "Other" +msgstr "" + +#: glade/importdata.glade:799 +msgid "Read File" +msgstr "" + +#: glade/importdata.glade:820 +msgid "<b>File delimiter</b>" +msgstr "" + +#: glade/importdata.glade:864 pytrainer/gui/windowmain.py:111 +#: pytrainer/gui/windowmain.py:126 pytrainer/gui/windowmain.py:1143 +#: pytrainer/gui/dialogselecttrack.py:40 +msgid "Date" +msgstr "" + +#: glade/importdata.glade:877 glade/importdata.glade:918 +#: glade/importdata.glade:933 glade/importdata.glade:1128 +#: glade/importdata.glade:1143 glade/importdata.glade:1158 +#: glade/importdata.glade:1173 glade/importdata.glade:1188 +#: glade/importdata.glade:1203 glade/importdata.glade:1218 +#: glade/importdata.glade:1233 glade/importdata.glade:1248 +#: glade/importdata.glade:1263 glade/importdata.glade:1278 +#: glade/importdata.glade:1293 +msgid "Exclude" +msgstr "" + +#: glade/importdata.glade:892 pytrainer/recordgraph.py:134 +#: pytrainer/recordgraph.py:136 pytrainer/recordgraph.py:138 +#: pytrainer/recordgraph.py:140 pytrainer/recordgraph.py:142 +#: pytrainer/recordgraph.py:144 pytrainer/recordgraph.py:146 +#: pytrainer/monthgraph.py:70 pytrainer/heartrategraph.py:36 +#: pytrainer/yeargraph.py:70 pytrainer/daygraph.py:52 pytrainer/daygraph.py:54 +#: pytrainer/daygraph.py:56 pytrainer/weekgraph.py:115 +msgid "Distance (km)" +msgstr "" + +#: glade/importdata.glade:905 +msgid "Duration (sec)" +msgstr "" + +#: glade/importdata.glade:947 +msgid "<b>PyTrainer Field</b>" +msgstr "" + +#: glade/importdata.glade:958 +msgid "<b>File Column</b>" +msgstr "" + +#: glade/importdata.glade:972 pytrainer/gui/windowmain.py:110 +#: pytrainer/gui/windowmain.py:1142 +msgid "Title" +msgstr "" + +#: glade/importdata.glade:985 +msgid "Descent (m)" +msgstr "" + +#: glade/importdata.glade:998 +msgid "Accent (m)" +msgstr "" + +#: glade/importdata.glade:1011 +msgid "Calories (kcal)" +msgstr "" + +#: glade/importdata.glade:1024 +msgid "Max Speed (km/h)" +msgstr "" + +#: glade/importdata.glade:1037 pytrainer/monthgraph.py:76 +#: pytrainer/yeargraph.py:76 pytrainer/weekgraph.py:121 +msgid "Average Speed (km/h)" +msgstr "" + +#: glade/importdata.glade:1050 glade/pytrainer.glade:277 +#: pytrainer/gui/windowmain.py:105 pytrainer/gui/windowmain.py:113 +#: pytrainer/gui/windowmain.py:1145 pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 pytrainer/gui/windowprofile.py:59 +msgid "Sport" +msgstr "" + +#: glade/importdata.glade:1063 +msgid "Average Heartrate (bpm)" +msgstr "" + +#: glade/importdata.glade:1076 +msgid "Max Heartrate (bpm)" +msgstr "" + +#: glade/importdata.glade:1089 pytrainer/recordgraph.py:138 +msgid "Pace (min/km)" +msgstr "" + +#: glade/importdata.glade:1102 +msgid "Max Pace (min/km)" +msgstr "" + +#: glade/importdata.glade:1115 glade/newrecord.glade:1094 +msgid "Comments" +msgstr "" + +#: glade/importdata.glade:1309 +msgid "Force sport to:" +msgstr "" + +#: glade/importdata.glade:1323 glade/newrecord.glade:404 +msgid " " +msgstr "" + +#: glade/importdata.glade:1394 +msgid "<b>Map Columns</b>" +msgstr "" + +#: glade/importdata.glade:1414 +msgid "" +"<small>This is an experiemental import for delimited files\n" +"1) Select a file\n" +"2) Click 'Read File' to analyse the file\n" +"3) Map columns in the file to pytrainer data elements (Date is required)\n" +"4) Click 'Import Data'</small>" +msgstr "" + +#: glade/importdata.glade:1427 +msgid "Import Data" +msgstr "" + +#: glade/importdata.glade:1467 +msgid "<b>Import from CSV</b>" +msgstr "" + +#: glade/newrecord.glade:7 pytrainer/gui/windowmain.py:1793 +msgid "New Entry" +msgstr "" + +#: glade/newrecord.glade:61 +msgid "Title:" +msgstr "" + +#: glade/newrecord.glade:85 +msgid "GPX File:" +msgstr "" + +#: glade/newrecord.glade:129 +msgid "Calculate Values" +msgstr "" + +#: glade/newrecord.glade:149 +msgid "Sport:" +msgstr "" + +#: glade/newrecord.glade:184 +msgid "<b>Main</b>" +msgstr "" + +#: glade/newrecord.glade:221 +msgid "Distance (Km):" +msgstr "" + +#: glade/newrecord.glade:230 glade/newrecord.glade:355 +#: glade/newrecord.glade:558 glade/newrecord.glade:697 +#: glade/newrecord.glade:958 glade/profile.glade:1462 +msgid "Calculate" +msgstr "" + +#: glade/newrecord.glade:248 +msgid "Duration:" +msgstr "" + +#: glade/newrecord.glade:279 glade/newrecord.glade:306 +msgid ":" +msgstr "" + +#: glade/newrecord.glade:376 +msgid "Date:" +msgstr "" + +#: glade/newrecord.glade:445 +msgid "Start Time:" +msgstr "" + +#: glade/newrecord.glade:461 +msgid "12:00:00" +msgstr "" + +#: glade/newrecord.glade:486 glade/profile.glade:1500 +msgid "<b>General</b>" +msgstr "" + +#: glade/newrecord.glade:522 +msgid "Max (km/h):" +msgstr "" + +#: glade/newrecord.glade:547 +msgid "Average (km/h)" +msgstr "" + +#: glade/newrecord.glade:593 +msgid "<b>Speed</b>" +msgstr "" + +#: glade/newrecord.glade:612 +msgid "Quick Entry" +msgstr "" + +#: glade/newrecord.glade:644 +msgid "Max (min/km):" +msgstr "" + +#: glade/newrecord.glade:671 +msgid "Pace (min/km):" +msgstr "" + +#: glade/newrecord.glade:718 +msgid "<b>Pace</b>" +msgstr "" + +#: glade/newrecord.glade:754 +msgid "Ascent:" +msgstr "" + +#: glade/newrecord.glade:780 +msgid "Descent:" +msgstr "" + +#: glade/newrecord.glade:813 +msgid "<b>Accumulated Altitude Change</b>" +msgstr "" + +#: glade/newrecord.glade:850 +msgid "Max (bpm):" +msgstr "" + +#: glade/newrecord.glade:862 +msgid "Heart rate:" +msgstr "" + +#: glade/newrecord.glade:902 pytrainer/gui/windowmain.py:117 +#: pytrainer/gui/windowmain.py:1149 pytrainer/monthgraph.py:78 +#: pytrainer/yeargraph.py:78 pytrainer/weekgraph.py:123 +msgid "Calories" +msgstr "" + +#: glade/newrecord.glade:931 +msgid "" +"<small><b>Note:</b> In order to calculate the calories you must set the " +"sport MET (in Preferences->Sport) </small>" +msgstr "" + +#: glade/newrecord.glade:1005 +msgid "<b>Heart Rate</b>" +msgstr "" + +#: glade/newrecord.glade:1027 +msgid "Advanced" +msgstr "" + +#: glade/newrecord.glade:1079 +msgid "<b>Comments</b>" +msgstr "" + +#: glade/newrecord.glade:1134 +msgid "<i>There are no active equipment items.</i>" +msgstr "" + +#: glade/newrecord.glade:1188 +msgid "<b>Associated Equipment</b>" +msgstr "" + +#: glade/newrecord.glade:1203 glade/profile.glade:1360 +msgid "Equipment" +msgstr "" + +#: glade/plugins.glade:53 +msgid "<b>Plugin Details</b>" +msgstr "" + +#: glade/plugins.glade:68 +msgid "description-entry " +msgstr "" + +#: glade/plugins.glade:129 +msgid "nameEntry" +msgstr "" + +#: glade/profile.glade:7 +msgid "Preferences" +msgstr "" + +#: glade/profile.glade:37 +msgid "Metric system" +msgstr "" + +#: glade/profile.glade:53 +msgid "U.S. customary units" +msgstr "" + +#: glade/profile.glade:74 +msgid "<b>System of Measurement</b>" +msgstr "" + +#: glade/profile.glade:103 glade/pytrainer.glade:2023 +msgid "Google" +msgstr "" + +#: glade/profile.glade:118 glade/pytrainer.glade:2006 +msgid "Open Street Map" +msgstr "" + +#: glade/profile.glade:140 +msgid "<b>Default Map Viewer</b>" +msgstr "" + +#: glade/profile.glade:176 +msgid "Database type:" +msgstr "" + +#: glade/profile.glade:187 +msgid "Database host:" +msgstr "" + +#: glade/profile.glade:213 +msgid "Database name:" +msgstr "" + +#: glade/profile.glade:252 +msgid "Database user:" +msgstr "" + +#: glade/profile.glade:267 +msgid "Database pass:" +msgstr "" + +#: glade/profile.glade:318 +msgid "<b>Database</b>" +msgstr "" + +#: glade/profile.glade:340 +msgid "General" +msgstr "" + +#: glade/profile.glade:369 +msgid "User name:" +msgstr "" + +#: glade/profile.glade:380 +msgid "Gender:" +msgstr "" + +#: glade/profile.glade:407 glade/pytrainer.glade:5186 +msgid "Height:" +msgstr "" + +#: glade/profile.glade:447 glade/pytrainer.glade:5173 +msgid "Date of birth:" +msgstr "" + +#: glade/profile.glade:520 +msgid "Weight:" +msgstr "" + +#: glade/profile.glade:542 glade/pytrainer.glade:5248 +msgid "<b>Athlete Details</b>" +msgstr "" + +#: glade/profile.glade:557 glade/pytrainer.glade:5351 +msgid "Athlete" +msgstr "" + +#: glade/profile.glade:671 +msgid "<b>Sport List</b>" +msgstr "" + +#: glade/profile.glade:683 +msgid "llist" +msgstr "" + +#: glade/profile.glade:738 +msgid "M.E.T.:" +msgstr "" + +#: glade/profile.glade:765 +msgid "Extra Weight:" +msgstr "" + +#: glade/profile.glade:801 glade/profile.glade:1181 +msgid "" +"More information on determining yor M.E.T sport coefficient on Wikipedia" +msgstr "" + +#: glade/profile.glade:821 +msgid "Maximum Pace:" +msgstr "" + +#: glade/profile.glade:913 +msgid "<b>Add New Sport</b>" +msgstr "" + +#: glade/profile.glade:928 +msgid "new" +msgstr "" + +#: glade/profile.glade:959 +msgid "" +"Deleting a sport removes associated records.\n" +"Continue?" +msgstr "" + +#: glade/profile.glade:1041 +msgid "<b>Delete Sport</b>" +msgstr "" + +#: glade/profile.glade:1073 +msgid "delete" +msgstr "" + +#: glade/profile.glade:1106 +msgid "Name" +msgstr "" + +#: glade/profile.glade:1129 +msgid "M.E.T." +msgstr "" + +#: glade/profile.glade:1156 pytrainer/gui/windowprofile.py:59 +msgid "Extra Weight" +msgstr "" + +#: glade/profile.glade:1201 +msgid "Maxiumum Pace" +msgstr "" + +#: glade/profile.glade:1289 +msgid "<b>Edit Sport</b>" +msgstr "" + +#: glade/profile.glade:1300 +msgid "<b>lalaal</b>" +msgstr "" + +#: glade/profile.glade:1322 +msgid "edit" +msgstr "" + +#: glade/profile.glade:1338 +msgid "Sports" +msgstr "" + +#: glade/profile.glade:1393 +msgid "Maximum heart rate:" +msgstr "" + +#: glade/profile.glade:1404 +msgid "Resting heart rate:" +msgstr "" + +#: glade/profile.glade:1449 +msgid "" +"<small><b>Note:</b> Maximum heart rate is calculated by subtracting the " +"number 220 minus your age. </small>" +msgstr "" + +#: glade/profile.glade:1536 +msgid "" +"<small><b>NOTE:</b> in order to use the Karvonen method you must cover the " +"Resting hr field.</small>" +msgstr "" + +#: glade/profile.glade:1549 +msgid "Percentages based method" +msgstr "" + +#: glade/profile.glade:1565 pytrainer/gui/windowmain.py:616 +msgid "Karvonen method" +msgstr "" + +#: glade/profile.glade:1586 +msgid "Select how to calculate your heart rate zones." +msgstr "" + +#: glade/profile.glade:1625 +msgid "<b>Heart Rate Zones</b>" +msgstr "" + +#: glade/profile.glade:1647 pytrainer/recordgraph.py:140 +#: pytrainer/lib/activity.py:433 pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:445 pytrainer/lib/activity.py:515 +#: pytrainer/heartrategraph.py:36 pytrainer/daygraph.py:56 +msgid "Heart Rate" +msgstr "" + +#: glade/profile.glade:1673 +msgid "Log Level" +msgstr "" + +#: glade/profile.glade:1681 +msgid "" +"Error\n" +"Warning\n" +"Info\n" +"Debug" +msgstr "" + +#: glade/profile.glade:1699 +msgid "<small>What level of detail is written to the log?</small>" +msgstr "" + +#: glade/profile.glade:1713 +msgid "Validate" +msgstr "" + +#: glade/profile.glade:1743 +msgid "" +"<small>Do the plugins attempt to validate the input file before processing?</" +"small>" +msgstr "" + +#: glade/profile.glade:1759 +msgid "Check" +msgstr "" + +#: glade/profile.glade:1788 +msgid "<small>Was a configuration and database check requested?</small>" +msgstr "" + +#: glade/profile.glade:1804 +msgid "New Graph" +msgstr "" + +#: glade/profile.glade:1833 +msgid "<small>Want to use experimental new approach to graphing?</small>" +msgstr "" + +#: glade/profile.glade:1876 +msgid "" +"<small>This screen shows the state of command line configurable options for " +"pytrainer. These options can be changed here which will affect the current " +"instance of pytrainer, they will not be remembered next time though</small>" +msgstr "" + +#: glade/profile.glade:1897 +msgid "Startup Parameters" +msgstr "" + +#: glade/pytrainer.glade:24 +msgid "_File" +msgstr "" + +#: glade/pytrainer.glade:39 +msgid "_Import" +msgstr "" + +#: glade/pytrainer.glade:60 +msgid "_Export as Text Separated by Commas" +msgstr "" + +#: glade/pytrainer.glade:94 +msgid "_Edit" +msgstr "" + +#: glade/pytrainer.glade:114 +msgid "_View" +msgstr "" + +#: glade/pytrainer.glade:121 +msgid " _Classic View" +msgstr "" + +#: glade/pytrainer.glade:131 +msgid " _List View" +msgstr "" + +#: glade/pytrainer.glade:141 +msgid " _Waypoints Editor" +msgstr "" + +#: glade/pytrainer.glade:155 +msgid "Tools" +msgstr "" + +#: glade/pytrainer.glade:172 +msgid "GPS Device Plugins" +msgstr "" + +#: glade/pytrainer.glade:185 +msgid "_Help" +msgstr "" + +#: glade/pytrainer.glade:290 glade/pytrainer.glade:5467 +msgid "All Sports" +msgstr "" + +#: glade/pytrainer.glade:396 +msgid "<b>Sport:</b>" +msgstr "" + +#: glade/pytrainer.glade:408 glade/pytrainer.glade:2726 +#: glade/pytrainer.glade:3337 glade/pytrainer.glade:3960 +#: glade/pytrainer.glade:4659 +msgid "<b>Duration:</b>" +msgstr "" + +#: glade/pytrainer.glade:423 glade/pytrainer.glade:2816 +#: glade/pytrainer.glade:3416 glade/pytrainer.glade:4039 +#: glade/pytrainer.glade:4761 +msgid "<b>Speed:</b>" +msgstr "" + +#: glade/pytrainer.glade:437 glade/pytrainer.glade:2984 +#: glade/pytrainer.glade:3611 glade/pytrainer.glade:4234 +#: glade/pytrainer.glade:4856 +msgid "<b>Pace:</b>" +msgstr "" + +#: glade/pytrainer.glade:451 +msgid "<b>Ascent:</b>" +msgstr "" + +#: glade/pytrainer.glade:465 +msgid "<b>Calories:</b>" +msgstr "" + +#: glade/pytrainer.glade:479 +msgid "<b>Comments:</b>" +msgstr "" + +#: glade/pytrainer.glade:614 +msgid "<b>Date:</b>" +msgstr "" + +#: glade/pytrainer.glade:628 glade/pytrainer.glade:2712 +#: glade/pytrainer.glade:3323 glade/pytrainer.glade:3946 +#: glade/pytrainer.glade:4645 +msgid "<b>Distance:</b>" +msgstr "" + +#: glade/pytrainer.glade:645 +msgid "<b>Max Speed</b>" +msgstr "" + +#: glade/pytrainer.glade:661 glade/pytrainer.glade:3014 +#: glade/pytrainer.glade:3625 glade/pytrainer.glade:4248 +#: glade/pytrainer.glade:4871 +msgid "<b>Max Pace:</b>" +msgstr "" + +#: glade/pytrainer.glade:677 +msgid "<b>Descent:</b>" +msgstr "" + +#: glade/pytrainer.glade:769 glade/pytrainer.glade:2924 +#: glade/pytrainer.glade:3491 glade/pytrainer.glade:4114 +#: glade/pytrainer.glade:4571 +msgid "Cal" +msgstr "" + +#: glade/pytrainer.glade:808 glade/pytrainer.glade:2686 +#: glade/pytrainer.glade:3297 glade/pytrainer.glade:3920 +#: glade/pytrainer.glade:4748 pytrainer/gui/windowmain.py:104 +msgid "Km" +msgstr "" + +#: glade/pytrainer.glade:823 glade/pytrainer.glade:2846 +#: glade/pytrainer.glade:2879 glade/pytrainer.glade:3446 +#: glade/pytrainer.glade:3539 glade/pytrainer.glade:4069 +#: glade/pytrainer.glade:4162 glade/pytrainer.glade:4791 +#: glade/pytrainer.glade:4807 pytrainer/gui/windowmain.py:633 +#: pytrainer/gui/windowmain.py:634 pytrainer/gui/windowmain.py:756 +#: pytrainer/gui/windowmain.py:757 pytrainer/gui/windowmain.py:834 +#: pytrainer/gui/windowmain.py:835 pytrainer/lib/activity.py:202 +msgid "km/h" +msgstr "" + +#: glade/pytrainer.glade:838 +msgid "<b>Equipment:</b>" +msgstr "" + +#: glade/pytrainer.glade:1014 +msgid " <b>Title:</b>" +msgstr "" + +#: glade/pytrainer.glade:1064 pytrainer/gui/windowmain.py:1371 +msgid "Show graph display options" +msgstr "" + +#: glade/pytrainer.glade:1082 +msgid "" +"Profile\n" +"Speed\n" +"Pace\n" +"Heart Rate\n" +"Cadence\n" +"Percentage\n" +"Zone" +msgstr "" + +#: glade/pytrainer.glade:1099 glade/pytrainer.glade:3831 +#: glade/pytrainer.glade:4454 glade/pytrainer.glade:5076 +msgid "Versus" +msgstr "" + +#: glade/pytrainer.glade:1110 +msgid "" +"None\n" +"Profile\n" +"Speed\n" +"Pace\n" +"Heart Rate\n" +"Cadence\n" +msgstr "" + +#: glade/pytrainer.glade:1257 +msgid "<small>Graph Display Options</small>" +msgstr "" + +#: glade/pytrainer.glade:1282 glade/pytrainer.glade:1497 +#: glade/pytrainer.glade:1717 +msgid "<small>Limits</small>" +msgstr "" + +#: glade/pytrainer.glade:1294 glade/pytrainer.glade:1509 +#: glade/pytrainer.glade:1763 +msgid "<small>Min</small>" +msgstr "" + +#: glade/pytrainer.glade:1306 glade/pytrainer.glade:1521 +#: glade/pytrainer.glade:1775 +msgid "<small>Max</small>" +msgstr "" + +#: glade/pytrainer.glade:1355 glade/pytrainer.glade:1577 +msgid "<small>Color</small>" +msgstr "" + +#: glade/pytrainer.glade:1386 glade/pytrainer.glade:1590 +msgid "<small>Weight</small>" +msgstr "" + +#: glade/pytrainer.glade:1416 +msgid "Y1" +msgstr "" + +#: glade/pytrainer.glade:1427 glade/pytrainer.glade:1638 +msgid "<small>Smoothing</small>" +msgstr "" + +#: glade/pytrainer.glade:1567 +msgid "Y2" +msgstr "" + +#: glade/pytrainer.glade:1707 +msgid "X" +msgstr "" + +#: glade/pytrainer.glade:1788 +msgid "<small>Distance</small>" +msgstr "" + +#: glade/pytrainer.glade:1817 +msgid "<small>Time</small>" +msgstr "" + +#: glade/pytrainer.glade:1878 +msgid "Show Laps" +msgstr "" + +#: glade/pytrainer.glade:1917 +msgid "Reset Graph" +msgstr "" + +#: glade/pytrainer.glade:1979 +msgid "Redraw Map" +msgstr "" + +#: glade/pytrainer.glade:1995 +msgid "<small>Display map using:</small>" +msgstr "" + +#: glade/pytrainer.glade:2097 +msgid "<b>Beats:</b>" +msgstr "" + +#: glade/pytrainer.glade:2109 glade/pytrainer.glade:2894 +#: glade/pytrainer.glade:3461 glade/pytrainer.glade:4084 +#: glade/pytrainer.glade:4541 +msgid "<b>Calories: </b>" +msgstr "" + +#: glade/pytrainer.glade:2123 glade/pytrainer.glade:3046 +#: glade/pytrainer.glade:3689 glade/pytrainer.glade:4312 +#: glade/pytrainer.glade:4919 +msgid "<b>Max Beats:</b>" +msgstr "" + +#: glade/pytrainer.glade:2137 +msgid "<b>HR Zones Method:</b>" +msgstr "" + +#: glade/pytrainer.glade:2152 +msgid "<b>HR Zone5:</b>" +msgstr "" + +#: glade/pytrainer.glade:2167 glade/pytrainer.glade:2366 +msgid " bpm" +msgstr "" + +#: glade/pytrainer.glade:2183 +msgid " Cal" +msgstr "" + +#: glade/pytrainer.glade:2241 +msgid "<b>HR Zone4:</b>" +msgstr "" + +#: glade/pytrainer.glade:2257 +msgid "<b>HR Zone3:</b>" +msgstr "" + +#: glade/pytrainer.glade:2273 +msgid "<b>HR Zone2:</b>" +msgstr "" + +#: glade/pytrainer.glade:2289 +msgid "<b>HR Zone1:</b>" +msgstr "" + +#: glade/pytrainer.glade:2391 glade/pytrainer.glade:2403 +#: glade/pytrainer.glade:2418 glade/pytrainer.glade:2433 +#: glade/pytrainer.glade:2448 glade/pytrainer.glade:2969 +#: glade/pytrainer.glade:3063 glade/pytrainer.glade:3596 +#: glade/pytrainer.glade:3674 glade/pytrainer.glade:4219 +#: glade/pytrainer.glade:4297 glade/pytrainer.glade:4616 +#: glade/pytrainer.glade:4823 pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:515 +msgid "bpm" +msgstr "" + +#: glade/pytrainer.glade:2493 +msgid " <b>Heart Rate:</b>" +msgstr "" + +#: glade/pytrainer.glade:2653 +msgid "Record" +msgstr "" + +#: glade/pytrainer.glade:2862 glade/pytrainer.glade:3507 +#: glade/pytrainer.glade:4130 glade/pytrainer.glade:4839 +msgid "<b>Max Speed:</b>" +msgstr "" + +#: glade/pytrainer.glade:2939 glade/pytrainer.glade:3566 +#: glade/pytrainer.glade:4189 glade/pytrainer.glade:4586 +msgid "<b>Beats avg:</b>" +msgstr "" + +#: glade/pytrainer.glade:2999 glade/pytrainer.glade:3031 +#: glade/pytrainer.glade:3642 glade/pytrainer.glade:3658 +#: glade/pytrainer.glade:4265 glade/pytrainer.glade:4281 +#: glade/pytrainer.glade:4888 glade/pytrainer.glade:4904 +#: pytrainer/gui/windowmain.py:635 pytrainer/gui/windowmain.py:636 +#: pytrainer/gui/windowmain.py:758 pytrainer/gui/windowmain.py:759 +#: pytrainer/gui/windowmain.py:836 pytrainer/gui/windowmain.py:837 +#: pytrainer/lib/activity.py:203 +msgid "min/km" +msgstr "" + +#: glade/pytrainer.glade:3153 +msgid " <b>Date:</b>" +msgstr "" + +#: glade/pytrainer.glade:3196 +msgid "Value" +msgstr "" + +#: glade/pytrainer.glade:3207 +msgid "" +"Stage Profile\n" +"Stage Velocity\n" +"Stage Profile/velocity" +msgstr "" + +#: glade/pytrainer.glade:3263 +msgid "Day" +msgstr "" + +#: glade/pytrainer.glade:3765 +msgid " <b>Week:</b>" +msgstr "" + +#: glade/pytrainer.glade:3816 glade/pytrainer.glade:4439 +#: glade/pytrainer.glade:5061 +msgid "" +"Distance\n" +"Time\n" +"Average Heart Rate\n" +"Average Speed\n" +"Calories" +msgstr "" + +#: glade/pytrainer.glade:3842 glade/pytrainer.glade:4465 +#: glade/pytrainer.glade:5087 +msgid "" +"None\n" +"Distance\n" +"Time\n" +"Average Heart Rate\n" +"Average Speed\n" +"Calories" +msgstr "" + +#: glade/pytrainer.glade:3886 +msgid "Week" +msgstr "" + +#: glade/pytrainer.glade:4388 +msgid " <b>Month:</b>" +msgstr "" + +#: glade/pytrainer.glade:4508 +msgid "Month" +msgstr "" + +#: glade/pytrainer.glade:5010 +msgid " <b>Year:</b>" +msgstr "" + +#: glade/pytrainer.glade:5130 +msgid "Year" +msgstr "" + +#: glade/pytrainer.glade:5284 +msgid "<b>Graph</b>" +msgstr "" + +#: glade/pytrainer.glade:5325 +msgid "<b>History</b>" +msgstr "" + +#: glade/pytrainer.glade:5389 +msgid "<b>Title:</b>" +msgstr "" + +#: glade/pytrainer.glade:5412 +msgid "Search" +msgstr "" + +#: glade/pytrainer.glade:5436 +msgid "All Distances" +msgstr "" + +#: glade/pytrainer.glade:5445 +msgid "All Durations" +msgstr "" + +#: glade/pytrainer.glade:5455 +msgid "" +"All time\n" +"Last 4 weeks\n" +"Last 6 months\n" +"Last 12 months" +msgstr "" + +#: glade/pytrainer.glade:5492 +msgid "Columns" +msgstr "" + +#: glade/pytrainer.glade:5619 +msgid "Type:" +msgstr "" + +#: glade/pytrainer.glade:5632 +msgid "" +"Font\n" +"Restaurant\n" +"Scenic Area\n" +"Summit" +msgstr "" + +#: glade/pytrainer.glade:5648 +msgid "Latitude: " +msgstr "" + +#: glade/pytrainer.glade:5662 +msgid " Name:" +msgstr "" + +#: glade/pytrainer.glade:5674 +msgid "Longitude:" +msgstr "" + +#: glade/pytrainer.glade:5766 +msgid "<b> Waypoint: </b>" +msgstr "" + +#: glade/pytrainer.glade:5950 +msgid "Edit Record" +msgstr "" + +#: glade/pytrainer.glade:5964 +msgid "Show graph in classic view" +msgstr "" + +#: glade/pytrainer.glade:5978 +msgid "Merge tracks" +msgstr "" + +#: glade/selecttrackdialog.glade:7 +msgid "Select track record" +msgstr "" + +#: glade/warning.glade:7 glade/warning.glade:38 +msgid "Warning" +msgstr "" + +#: pytrainer/gui/windowmain.py:102 +msgid "Miles" +msgstr "" + +#: pytrainer/gui/windowmain.py:105 pytrainer/gui/windowmain.py:109 +#: pytrainer/gui/windowmain.py:122 pytrainer/gui/windowmain.py:125 +msgid "id" +msgstr "" + +#: pytrainer/gui/windowmain.py:105 +msgid "Start" +msgstr "" + +#: pytrainer/gui/windowmain.py:112 pytrainer/gui/windowmain.py:395 +#: pytrainer/gui/windowmain.py:1144 pytrainer/gui/windowimportdata.py:352 +#: pytrainer/gui/windowrecord.py:210 pytrainer/lib/activity.py:313 +#: pytrainer/lib/activity.py:324 pytrainer/lib/activity.py:396 +#: pytrainer/lib/activity.py:407 pytrainer/lib/activity.py:416 +#: pytrainer/lib/activity.py:425 pytrainer/lib/activity.py:434 +#: pytrainer/lib/activity.py:444 pytrainer/lib/activity.py:453 +#: pytrainer/lib/activity.py:514 pytrainer/extensions/googlemaps.py:71 +#: pytrainer/extensions/osm.py:50 +msgid "Distance" +msgstr "" + +#: pytrainer/gui/windowmain.py:114 pytrainer/gui/windowmain.py:396 +#: pytrainer/gui/windowmain.py:1146 pytrainer/extensions/googlemaps.py:71 +#: pytrainer/extensions/osm.py:50 +msgid "Time" +msgstr "" + +#: pytrainer/gui/windowmain.py:115 +msgid "⌀ HR" +msgstr "" + +#: pytrainer/gui/windowmain.py:116 +msgid "⌀ Speed" +msgstr "" + +#: pytrainer/gui/windowmain.py:122 +msgid "Waypoint" +msgstr "" + +#: pytrainer/gui/windowmain.py:127 +msgid "Weight" +msgstr "" + +#: pytrainer/gui/windowmain.py:128 +msgid "Body Fat %" +msgstr "" + +#: pytrainer/gui/windowmain.py:129 +msgid "Resting HR" +msgstr "" + +#: pytrainer/gui/windowmain.py:130 +msgid "Max HR" +msgstr "" + +#: pytrainer/gui/windowmain.py:397 +msgid "Laps" +msgstr "" + +#: pytrainer/gui/windowmain.py:398 +msgid "Left Axis Grid" +msgstr "" + +#: pytrainer/gui/windowmain.py:399 +msgid "Right Axis Grid" +msgstr "" + +#: pytrainer/gui/windowmain.py:400 +msgid "X Axis Grid" +msgstr "" + +#: pytrainer/gui/windowmain.py:461 +msgid "Reset Limits" +msgstr "" + +#: pytrainer/gui/windowmain.py:463 +msgid "Set Limits" +msgstr "" + +#: pytrainer/gui/windowmain.py:618 +msgid "Percentages method" +msgstr "" + +#: pytrainer/gui/windowmain.py:626 pytrainer/gui/windowmain.py:749 +#: pytrainer/gui/windowmain.py:827 pytrainer/lib/activity.py:196 +msgid "miles" +msgstr "" + +#: pytrainer/gui/windowmain.py:627 pytrainer/gui/windowmain.py:628 +#: pytrainer/gui/windowmain.py:750 pytrainer/gui/windowmain.py:751 +#: pytrainer/gui/windowmain.py:828 pytrainer/gui/windowmain.py:829 +#: pytrainer/lib/activity.py:197 +msgid "miles/h" +msgstr "" + +#: pytrainer/gui/windowmain.py:629 pytrainer/gui/windowmain.py:630 +#: pytrainer/gui/windowmain.py:752 pytrainer/gui/windowmain.py:753 +#: pytrainer/gui/windowmain.py:830 pytrainer/gui/windowmain.py:831 +#: pytrainer/lib/activity.py:198 +msgid "min/mile" +msgstr "" + +#: pytrainer/gui/windowmain.py:632 pytrainer/gui/windowmain.py:755 +#: pytrainer/gui/windowmain.py:833 pytrainer/lib/activity.py:201 +msgid "km" +msgstr "" + +#: pytrainer/gui/windowmain.py:1147 pytrainer/recordgraph.py:144 +msgid "Beats" +msgstr "" + +#: pytrainer/gui/windowmain.py:1148 +msgid "Average" +msgstr "" + +#: pytrainer/gui/windowmain.py:1367 +msgid "Hide graph display options" +msgstr "" + +#: pytrainer/gui/windowmain.py:1690 +msgid "lap" +msgstr "" + +#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/drawArea.py:165 +#: pytrainer/extensions/googlemaps.py:69 pytrainer/extensions/osm.py:48 +msgid "h" +msgstr "" + +#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/windowmain.py:1702 +#: pytrainer/lib/activity.py:204 +msgid "m" +msgstr "" + +#: pytrainer/gui/windowmain.py:1700 pytrainer/gui/windowmain.py:1702 +msgid "s" +msgstr "" + +#: pytrainer/gui/windowmain.py:1789 pytrainer/record.py:63 +msgid "Edit Entry" +msgstr "" + +#: pytrainer/gui/windowmain.py:1800 +msgid "Delete Entry" +msgstr "" + +#: pytrainer/gui/windowmain.py:1824 +msgid "Create Athlete Entry" +msgstr "" + +#: pytrainer/gui/windowmain.py:1828 +msgid "Edit Athlete Entry" +msgstr "" + +#: pytrainer/gui/windowmain.py:1909 pytrainer/main.py:447 +msgid "Delete this database entry?" +msgstr "" + +#: pytrainer/gui/windowmain.py:1911 +msgid "Are you sure?" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:116 +msgid "No file selected" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:161 +msgid "Configure" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:162 +msgid "Run" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:170 +msgid "Disabled" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:172 +msgid "Enabled" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:252 +msgid "GPS device found" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:255 +msgid "GPS device <b>not</b> found" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:262 +msgid "This tool was not found on the system" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:264 +msgid " Homepage" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:317 +msgid "File" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:317 +msgid "Type" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:317 +msgid "Activities" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:352 pytrainer/gui/windowrecord.py:210 +msgid "Start Time" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:352 pytrainer/gui/windowrecord.py:210 +msgid "Duration" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:501 +msgid "Imported into database" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:545 pytrainer/gui/windowextensions.py:81 +#: pytrainer/gui/windowplugins.py:80 +#, python-format +msgid "%s settings" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:560 pytrainer/gui/windowextensions.py:70 +#: pytrainer/gui/windowplugins.py:71 pytrainer/gui/windowplugins.py:95 +msgid "Disable" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:561 pytrainer/gui/windowextensions.py:72 +#: pytrainer/gui/windowplugins.py:69 pytrainer/gui/windowplugins.py:96 +msgid "Enable" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:568 pytrainer/gui/windowplugins.py:103 +msgid "Ok" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:628 +msgid "Saving options" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:630 +msgid "Options saved" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:655 +msgid "Importing one activity" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:656 +msgid "Imported one activity" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:658 +#, python-format +msgid "Importing %d activities" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:659 +#, python-format +msgid "Imported %d activities" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:678 +msgid "Choose a file (or files) to import activities from" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:693 pytrainer/gui/windowimportdata.py:694 +#, python-format +msgid "Found file of type: %s" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:718 +msgid "Found in database" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:733 pytrainer/gui/windowimportdata.py:734 +#, python-format +msgid "File %s is of unknown or unsupported file type" +msgstr "" + +#: pytrainer/gui/windowimportdata.py:807 +#, python-format +msgid "Column %d" +msgstr "" + +#: pytrainer/gui/drawArea.py:166 pytrainer/extensions/googlemaps.py:69 +#: pytrainer/extensions/osm.py:48 +msgid "min" +msgstr "" + +#: pytrainer/gui/drawArea.py:399 +msgid "rest" +msgstr "" + +#: pytrainer/gui/windowrecord.py:210 +msgid "GPX File" +msgstr "" + +#: pytrainer/gui/windowprofile.py:41 +msgid "Male" +msgstr "" + +#: pytrainer/gui/windowprofile.py:42 +msgid "Female" +msgstr "" + +#: pytrainer/gui/windowprofile.py:59 +msgid "MET" +msgstr "" + +#: pytrainer/gui/windowprofile.py:59 +msgid "Maximum Pace" +msgstr "" + +#: pytrainer/gui/dialogselecttrack.py:40 +msgid "Track Name" +msgstr "" + +#: pytrainer/gui/drawGraph.py:170 +msgid "Athlete Data" +msgstr "" + +#: pytrainer/gui/windowextensions.py:112 pytrainer/gui/windowextensions.py:125 +msgid "OK" +msgstr "" + +#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52 +msgid "Height (m)" +msgstr "" + +#: pytrainer/recordgraph.py:134 pytrainer/daygraph.py:52 +msgid "Stage Profile" +msgstr "" + +#: pytrainer/recordgraph.py:136 +msgid "Speed (Km/h)" +msgstr "" + +#: pytrainer/recordgraph.py:136 pytrainer/lib/activity.py:325 +#: pytrainer/lib/activity.py:415 pytrainer/lib/activity.py:417 +msgid "Speed" +msgstr "" + +#: pytrainer/recordgraph.py:138 pytrainer/lib/activity.py:314 +#: pytrainer/lib/activity.py:424 pytrainer/lib/activity.py:426 +msgid "Pace" +msgstr "" + +#: pytrainer/recordgraph.py:140 pytrainer/heartrategraph.py:36 +#: pytrainer/daygraph.py:56 +msgid "Beats (bpm)" +msgstr "" + +#: pytrainer/recordgraph.py:142 +msgid "Cadence (rpm)" +msgstr "" + +#: pytrainer/recordgraph.py:142 pytrainer/lib/activity.py:452 +#: pytrainer/lib/activity.py:454 +msgid "Cadence" +msgstr "" + +#: pytrainer/recordgraph.py:144 +msgid "Beats (%)" +msgstr "" + +#: pytrainer/recordgraph.py:146 +msgid "Zone" +msgstr "" + +#: pytrainer/profile.py:110 +msgid "Moderate activity" +msgstr "" + +#: pytrainer/profile.py:111 +msgid "Weight Control" +msgstr "" + +#: pytrainer/profile.py:112 +msgid "Aerobic" +msgstr "" + +#: pytrainer/profile.py:113 +msgid "Anaerobic" +msgstr "" + +#: pytrainer/profile.py:114 +msgid "VO2 MAX" +msgstr "" + +#: pytrainer/lib/gpx.py:122 +msgid "No Name" +msgstr "" + +#: pytrainer/lib/gpx.py:129 +msgid "No Data" +msgstr "" + +#: pytrainer/lib/activity.py:199 +msgid "feet" +msgstr "" + +#: pytrainer/lib/activity.py:312 +msgid "Pace by Lap" +msgstr "" + +#: pytrainer/lib/activity.py:318 pytrainer/lib/activity.py:329 +#: pytrainer/lib/activity.py:401 pytrainer/lib/activity.py:411 +#: pytrainer/lib/activity.py:420 pytrainer/lib/activity.py:429 +#: pytrainer/lib/activity.py:438 pytrainer/lib/activity.py:448 +#: pytrainer/lib/activity.py:457 pytrainer/lib/activity.py:519 +msgid "Time (seconds)" +msgstr "" + +#: pytrainer/lib/activity.py:323 +msgid "Speed by Lap" +msgstr "" + +#: pytrainer/lib/activity.py:395 pytrainer/lib/activity.py:397 +msgid "Elevation" +msgstr "" + +#: pytrainer/lib/activity.py:406 pytrainer/lib/activity.py:408 +msgid "Corrected Elevation" +msgstr "" + +#: pytrainer/lib/activity.py:443 +#, python-format +msgid "Heart Rate (% of max)" +msgstr "" + +#: pytrainer/lib/activity.py:445 +msgid "%" +msgstr "" + +#: pytrainer/lib/activity.py:454 +msgid "rpm" +msgstr "" + +#: pytrainer/lib/activity.py:513 +msgid "Heart Rate zone" +msgstr "" + +#: pytrainer/monthgraph.py:70 pytrainer/monthgraph.py:72 +#: pytrainer/monthgraph.py:74 pytrainer/monthgraph.py:76 +#: pytrainer/monthgraph.py:78 +msgid "day" +msgstr "" + +#: pytrainer/monthgraph.py:70 pytrainer/weekgraph.py:115 +msgid "Daily Distance" +msgstr "" + +#: pytrainer/monthgraph.py:72 pytrainer/yeargraph.py:72 +#: pytrainer/weekgraph.py:117 +msgid "Time (hours)" +msgstr "" + +#: pytrainer/monthgraph.py:72 pytrainer/weekgraph.py:117 +msgid "Daily Time" +msgstr "" + +#: pytrainer/monthgraph.py:74 pytrainer/yeargraph.py:74 +#: pytrainer/weekgraph.py:119 +msgid "Average Heart Rate (bpm)" +msgstr "" + +#: pytrainer/monthgraph.py:74 pytrainer/weekgraph.py:119 +msgid "Daily Average Heart Rate" +msgstr "" + +#: pytrainer/monthgraph.py:76 pytrainer/weekgraph.py:121 +msgid "Daily Average Speed" +msgstr "" + +#: pytrainer/monthgraph.py:78 pytrainer/weekgraph.py:123 +msgid "Daily Calories" +msgstr "" + +#: pytrainer/athlete.py:52 +msgid "lb" +msgstr "" + +#: pytrainer/athlete.py:54 +msgid "kg" +msgstr "" + +#: pytrainer/record.py:513 +msgid "pyTrainer can't import data from your gpx file" +msgstr "" + +#: pytrainer/yeargraph.py:70 pytrainer/yeargraph.py:72 +#: pytrainer/yeargraph.py:74 pytrainer/yeargraph.py:76 +#: pytrainer/yeargraph.py:78 +msgid "month" +msgstr "" + +#: pytrainer/yeargraph.py:70 +msgid "Monthly Distance" +msgstr "" + +#: pytrainer/yeargraph.py:72 +msgid "Monthly Time" +msgstr "" + +#: pytrainer/yeargraph.py:74 +msgid "Monthly Average Heart Rate" +msgstr "" + +#: pytrainer/yeargraph.py:76 +msgid "Monthly Average Speed" +msgstr "" + +#: pytrainer/yeargraph.py:78 +msgid "Monthly Calories" +msgstr "" + +#: pytrainer/waypoint.py:87 +msgid "" +"The gpx file seems to be a several days records. Perhaps you will need to " +"edit your gpx file" +msgstr "" + +#: pytrainer/daygraph.py:54 +msgid "Velocity (Km/h)" +msgstr "" + +#: pytrainer/daygraph.py:54 +msgid "Velocity" +msgstr "" + +#: pytrainer/main.py:463 +msgid "Delete this waypoint?" +msgstr "" + +#: import/file_gpxplus.py:41 +msgid "GPS eXchange file" +msgstr "" + +#: import/file_kml20.py:47 +msgid "Geodistance kml version 2.0 file" +msgstr "" + +#: import/file_garmintcxv1.py:45 +msgid "Garmin training center database file version 1" +msgstr "" + +#: import/file_gpxplusNokia.py:41 +msgid "Nokia Export - GPS eXchange file" +msgstr "" + +#: import/tool_gpsbabel.py:37 +msgid "GPSBabel" +msgstr "" + +#: import/tool_garmintools.py:37 +msgid "Garmintools" +msgstr "" + +#: import/tool_gant.py:37 +msgid "Gant" +msgstr "" + +#: import/file_garmintools.py:44 +msgid "Garmin tools dump file" +msgstr "" + +#: import/file_garmintcxv2.py:43 +msgid "Garmin training center database file version 2" +msgstr "" + +#: extensions/fixelevation/fixelevation.py:94 +msgid "Elevation Correction Complete" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:30 +msgid "Must have username and password configured" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:32 +msgid "Openstreetmap Extension Error" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:79 +msgid "" +"Posting GPX trace to Openstreetmap\n" +"\n" +"Please wait this could take several minutes" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:81 +msgid "Openstreetmap Extension Processing" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:99 +msgid "Openstreetmap Extension Upload Complete" +msgstr "" + +#: extensions/openstreetmap/openstreetmap.py:109 +msgid "Please add any additional information for this upload" +msgstr "" + +#: extensions/wordpress/wordpress.py:46 +msgid "Posting to Wordpress blog" +msgstr "" + +#: extensions/wordpress/wordpress.py:48 +msgid "Wordpress Extension Processing" +msgstr "" + +#: extensions/wordpress/wordpress.py:144 +msgid "Wordpress Extension Upload Complete" +msgstr "" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nc...@us...> - 2010-12-09 19:15:54
|
Revision: 756 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=756&view=rev Author: ncjones Date: 2010-12-09 19:15:48 +0000 (Thu, 09 Dec 2010) Log Message: ----------- Remove unnecessary assignment. Modified Paths: -------------- pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-12-09 10:22:16 UTC (rev 755) +++ pytrainer/trunk/pytrainer/main.py 2010-12-09 19:15:48 UTC (rev 756) @@ -142,7 +142,7 @@ handler = logging.handlers.RotatingFileHandler(self.environment.log_file, maxBytes=100000, backupCount=5) formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(module)s|%(funcName)s|%(message)s') handler.setFormatter(formatter) - logger = logging.getLogger('').addHandler(handler) + logging.getLogger('').addHandler(handler) self.set_logging_level(self.startup_options.log_level) def set_logging_level(self, level): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nc...@us...> - 2010-12-09 10:22:22
|
Revision: 755 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=755&view=rev Author: ncjones Date: 2010-12-09 10:22:16 +0000 (Thu, 09 Dec 2010) Log Message: ----------- Add startup option for choosing console or file logging. When "console" is chosen all loging messsages are sent to stdout instead of a log file. Modified Paths: -------------- pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-12-04 08:03:05 UTC (rev 754) +++ pytrainer/trunk/pytrainer/main.py 2010-12-09 10:22:16 UTC (rev 755) @@ -60,7 +60,7 @@ self.environment = Environment(platform.get_platform(), self.startup_options.conf_dir) self.environment.create_directories() #Setup logging - self.set_logging(self.startup_options.log_level) + self.set_logging(self.startup_options.log_level, self.startup_options.log_type) logging.debug('>>') logging.debug("PyTrainer version %s, DB version %s" % (self.version, self.DB_version)) self.data_path = data_path @@ -121,7 +121,7 @@ For more help on valid options try: %prog -h ''' parser = OptionParser(usage=usage) - parser.set_defaults(log_level=logging.ERROR, validate=False, equip=False, newgraph=True, conf_dir=None) + parser.set_defaults(log_level=logging.ERROR, validate=False, equip=False, newgraph=True, conf_dir=None, log_type="file") parser.add_option("-d", "--debug", action="store_const", const=logging.DEBUG, dest="log_level", help="enable logging at debug level") parser.add_option("-i", "--info", action="store_const", const=logging.INFO, dest="log_level", help="enable logging at info level") parser.add_option("-w", "--warn", action="store_const", const=logging.WARNING, dest="log_level", help="enable logging at warning level") @@ -130,15 +130,19 @@ parser.add_option("--oldgraph", action="store_false", dest="newgraph", help="Turn off new graphing approach") parser.add_option("--newgraph", action="store_true", dest="newgraph", help="Deprecated Option: Turn on new graphing approach") parser.add_option("--confdir", dest="conf_dir", help="Specify the directory where application configuration will be stored.") + parser.add_option("--logtype", dest="log_type", metavar="TYPE", type="choice" , choices=["file", "console"], help="Specify where logging should be output to. TYPE is one of 'file' (default), or 'console'.") (options, args) = parser.parse_args() return options - def set_logging(self,level): + def set_logging(self, level, log_type): '''Setup rotating log file with customized format''' - rotHandler = logging.handlers.RotatingFileHandler(self.environment.log_file, maxBytes=100000, backupCount=5) + if("console" == log_type): + handler = logging.StreamHandler(sys.stdout) + else: + handler = logging.handlers.RotatingFileHandler(self.environment.log_file, maxBytes=100000, backupCount=5) formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(module)s|%(funcName)s|%(message)s') - rotHandler.setFormatter(formatter) - logging.getLogger('').addHandler(rotHandler) + handler.setFormatter(formatter) + logger = logging.getLogger('').addHandler(handler) self.set_logging_level(self.startup_options.log_level) def set_logging_level(self, level): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nc...@us...> - 2010-12-04 08:03:11
|
Revision: 754 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=754&view=rev Author: ncjones Date: 2010-12-04 08:03:05 +0000 (Sat, 04 Dec 2010) Log Message: ----------- Remove non iso-8859-1 characters. Modified Paths: -------------- pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-12-01 00:48:36 UTC (rev 753) +++ pytrainer/trunk/pytrainer/main.py 2010-12-04 08:03:05 UTC (rev 754) @@ -152,7 +152,7 @@ #self.webservice.stop() self.windowmain.gtk_main_quit() logging.shutdown() - sys.exit() # Any nonzero value is considered “abnormal termination” by shells and the like + sys.exit() # Any nonzero value is considered "abnormal termination" by shells and the like def loadPlugins(self): logging.debug('>>') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-12-01 00:48:45
|
Revision: 753 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=753&view=rev Author: jblance Date: 2010-12-01 00:48:36 +0000 (Wed, 01 Dec 2010) Log Message: ----------- Fix so only once instance of preferences dialog can be open at a time - ticket #74 Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/aboutdialog.py pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/gui/windowprofile.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/profile.py Modified: pytrainer/trunk/pytrainer/gui/aboutdialog.py =================================================================== --- pytrainer/trunk/pytrainer/gui/aboutdialog.py 2010-11-29 22:55:45 UTC (rev 752) +++ pytrainer/trunk/pytrainer/gui/aboutdialog.py 2010-12-01 00:48:36 UTC (rev 753) @@ -23,42 +23,46 @@ import pytrainer.lib.webUtils class About: - def __init__(self,data_path = None, version = None): - def url_hook(dialog, url): - pytrainer.lib.webUtils.open_url_in_browser(url) - # Available in PyGTK 2.6 and above - gtk.about_dialog_set_url_hook(url_hook) - self.data_path = data_path - self.version = version + def __init__(self,data_path = None, version = None): + def url_hook(dialog, url): + pytrainer.lib.webUtils.open_url_in_browser(url) + # Available in PyGTK 2.6 and above + gtk.about_dialog_set_url_hook(url_hook) + self.data_path = data_path + self.version = version - def run(self): - authors = ["Fiz Vázquez <vu...@si...>\nDavid García Granda <dg...@gm...>\nJohn Blance <joh...@gm...>\nArnd Zapletal <a.z...@gm...>\nNathan Jones <na...@nc...>\n\n-Package maintainers:\n\nRedHat/Fedora: Douglas E. Warner <sil...@si...>\nDebian: Noèl Köthe <no...@de...>\nUbuntu: Kevin Dwyer <ke...@ph...>, Alessio Treglia <qua...@ub...>"] - translator_credits = "Euskara: Jabier Santamaria <men...@gm...>\nCatalà: Eloi Crespillo Itchart <el...@ik...>\nČesky: Lobus Pokorny <sp...@se...>\nFrançais: Dj <dj...@dj...>, Pierre Gaigé <pg...@fr...>\nNorsk: Havard Davidsen <hav...@gm...>\nPolski: Seweryn Kokot <sk...@po...>\nDeutsch: Aleks <al...@sc...>, Noèl Köthe <no...@de...>\nEspañol: Fiz Vázquez <vu...@si...>, David García Granda <dg...@gm...>" - license = "PyTrainer - The free sport tracking center\nCopyright (C) 2005-09 Fiz Vázquez\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA" - about_dialog = gtk.AboutDialog() - about_dialog.set_destroy_with_parent(True) - about_dialog.set_name("pyTrainer") - about_dialog.set_version(self.version) - about_dialog.set_copyright("Copyright \xc2\xa9 2005-09 Fiz Vázquez") - about_dialog.set_website("http://sourceforge.net/projects/pytrainer") - about_dialog.set_website_label("http://sourceforge.net/projects/pytrainer") - about_dialog.set_comments("The free sport tracking center") - about_dialog.set_license(license) - - about_dialog.set_authors(authors) - about_dialog.set_translator_credits(translator_credits) - about_dialog.set_logo(gtk.gdk.pixbuf_new_from_file(self.data_path+"glade/pytrainer_mini.png")) + def run(self): + authors = ["Fiz Vázquez <vu...@si...>\nDavid García Granda <dg...@gm...>\nJohn Blance <joh...@gm...>\nArnd Zapletal <a.z...@gm...>\nNathan Jones <na...@nc...>\n\n-Package maintainers:\n\nRedHat/Fedora: Douglas E. Warner <sil...@si...>\nDebian: Noèl Köthe <no...@de...>\nUbuntu: Kevin Dwyer <ke...@ph...>, Alessio Treglia <qua...@ub...>"] + translator_credits = "Euskara: Jabier Santamaria <men...@gm...>\nCatalà: Eloi Crespillo Itchart <el...@ik...>\nČesky: Lobus Pokorny <sp...@se...>\nFrançais: Dj <dj...@dj...>, Pierre Gaigé <pg...@fr...>\nNorsk: Havard Davidsen <hav...@gm...>\nPolski: Seweryn Kokot <sk...@po...>\nDeutsch: Aleks <al...@sc...>, Noèl Köthe <no...@de...>\nEspañol: Fiz Vázquez <vu...@si...>, David García Granda <dg...@gm...>" + license = "PyTrainer - The free sport tracking center\nCopyright (C) 2005-09 Fiz Vázquez\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA" + about_dialog = gtk.AboutDialog() + about_dialog.set_destroy_with_parent(True) + about_dialog.set_name("pyTrainer") + about_dialog.set_version(self.version) + about_dialog.set_copyright("Copyright \xc2\xa9 2005-09 Fiz Vázquez") + about_dialog.set_website("http://sourceforge.net/projects/pytrainer") + about_dialog.set_website_label("http://sourceforge.net/projects/pytrainer") + about_dialog.set_comments("The free sport tracking center") + about_dialog.set_license(license) + + about_dialog.set_authors(authors) + about_dialog.set_translator_credits(translator_credits) + about_dialog.set_logo(gtk.gdk.pixbuf_new_from_file(self.data_path+"glade/pytrainer_mini.png")) - # callbacks for destroying the dialog - def close(dialog, response, editor): - editor.about_dialog = None - dialog.destroy() - def delete_event(dialog, event, editor): - editor.about_dialog = None - return True - - about_dialog.connect("response", close, self) - about_dialog.connect("delete-event", delete_event, self) - self.about_dialog = about_dialog - about_dialog.show() - + # callbacks for destroying the dialog + def close(dialog, response, editor): + editor.about_dialog = None + dialog.destroy() + def delete_event(dialog, event, editor): + editor.about_dialog = None + return True + + about_dialog.connect("response", close, self) + about_dialog.connect("delete-event", delete_event, self) + self.about_dialog = about_dialog + about_dialog.show() + + def present(self): + if self.about_dialog is None: + self.run() + self.about_dialog.present() Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-29 22:55:45 UTC (rev 752) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2010-12-01 00:48:36 UTC (rev 753) @@ -84,6 +84,8 @@ self.y1_linewidth = 1 # setup Search ListView self.listsearch = ListSearch(self, self.pytrainer_main) + + self.aboutwindow = None def new(self): self.menublocking = 0 @@ -1730,8 +1732,11 @@ logging.debug("<<") def on_about_activate(self,widget): - aboutwindow = About(self.data_path, self.version) - aboutwindow.run() + if self.aboutwindow is None: + self.aboutwindow = About(self.data_path, self.version) + self.aboutwindow.run() + else: + self.aboutwindow.present() def getSportSelected(self): sport = self.sportlist.get_active() Modified: pytrainer/trunk/pytrainer/gui/windowprofile.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowprofile.py 2010-11-29 22:55:45 UTC (rev 752) +++ pytrainer/trunk/pytrainer/gui/windowprofile.py 2010-12-01 00:48:36 UTC (rev 753) @@ -67,6 +67,9 @@ equipment_ui = EquipmentUi(self.data_path + "/glade", equipment_service) self.equipment_container.add(equipment_ui) + def present(self): + self.newprofile.present() + def setValues(self,list_options): for i in self.conf_options.keys(): if not list_options.has_key(i): Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-29 22:55:45 UTC (rev 752) +++ pytrainer/trunk/pytrainer/main.py 2010-12-01 00:48:36 UTC (rev 753) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.8.0" + self.version ="1.8.0-svn#753" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() Modified: pytrainer/trunk/pytrainer/profile.py =================================================================== --- pytrainer/trunk/pytrainer/profile.py 2010-11-29 22:55:45 UTC (rev 752) +++ pytrainer/trunk/pytrainer/profile.py 2010-12-01 00:48:36 UTC (rev 753) @@ -39,6 +39,7 @@ self.extensiondir = environment.extension_dir self.plugindir = environment.plugin_dir self.uc = UC() + self.profilewindow = None environment.clear_temp_dir() @@ -271,10 +272,15 @@ logging.debug("retrieving configuration data") #Refresh configuration self.configuration = self._parse_config_file(self.config_file) - profilewindow = WindowProfile(self.data_path, self, pytrainer_main=self.pytrainer_main) - logging.debug("setting data values") - profilewindow.setValues(self.configuration) - profilewindow.run() + if self.profilewindow is None: + self.profilewindow = WindowProfile(self.data_path, self, pytrainer_main=self.pytrainer_main) + logging.debug("setting data values") + self.profilewindow.setValues(self.configuration) + self.profilewindow.run() + self.profilewindow = None + else: + self.profilewindow.setValues(self.configuration) + self.profilewindow.present() self.configuration = self._parse_config_file(self.config_file) logging.debug("<<") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2010-11-29 23:23:26
|
Revision: 751 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=751&view=rev Author: dgranda Date: 2010-11-29 22:39:36 +0000 (Mon, 29 Nov 2010) Log Message: ----------- Updating info for version 1.8.0 Modified Paths: -------------- pytrainer/trunk/CHANGES pytrainer/trunk/pytrainer/gui/aboutdialog.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/setup.py Modified: pytrainer/trunk/CHANGES =================================================================== --- pytrainer/trunk/CHANGES 2010-11-27 14:21:55 UTC (rev 750) +++ pytrainer/trunk/CHANGES 2010-11-29 22:39:36 UTC (rev 751) @@ -1,5 +1,70 @@ See the pytrainer roadmap for more information http://sourceforge.net/apps/trac/pytrainer/roadmap +- PyTrainer changes for 1.8.0: + +* New functionality + - Equipment management (thx to Nathan) [571] [572] [573] [598] [678] [679] [680] [685] [698] [699] [707] [708] [711] [717] [718] #12 + - OpenStreetMap added as route map viewer (user selectable) - thanks to Druzee [578] [585] [590] + - Anonymous data for OSM, cancel button (thx to Druzee, Arnd) [608] [611] [626] + - Changes to graphing to allow user to change limits, color, line width etc [563] [567] [579] [599] + - Remember size of main screen [581] + - Function to merge tracks (work in progress) [597] + - New Activity and ActivityPool classes to hold all info about an activity [582] [583] [584] [587] [589] [591] [677] [694] + - Management of athlete data [605] [609] [649] [651] [653] [655] [656] [665] [668] [731] #13 + - New graphic approach [616] [617] [622] [624] [628] [638] [639] [640] [642] [644] [646] [648] [674] [675] [721] [726] [727] [730] [733] + - Added support for Nokia exported GPX files [673] + - Added support for new formats (csv, delimited file) in unified import [688] [689] [690] [692] [693] [695] [697] [701] + +* Fixes + - Variables and configuration refactored to be 'global' (reused and not re-instantiated by each class) [561] [562] [564] [565] [566] [568] #28 + - Config file accepting non ascii characters [574] [575] [576] + - Config file handling fixed to not fail with empty or missing file [586] #48 + - Fix list view to update after edit, delete, import. Added filters and improvements (tnx Arnd) [569] [650] [652] [658] [661] [663] [664] [735] [742] [745] [746] + - Localization updates (thanks to Pierre, David) [570] [588] [595] [715] [737] [744] [747] + - Fix wordpress extension to work with newer wordpress codebase and support US measurement [577] [601] [602] #45 #51 + - Update plugins to write UTF8 not ASCII GPX files [580] #47 + - Fix googlemaps lap data display [592] [632] [633] + - Fix calories display in heartrate tab [593] + - Fix html in map generation (thanks to Druzee) [594] + - Change default graph colors [596] + - Improve handling of US units [600] [669] [672] [683] [687] [696] [700] [702] [703] [704] [705] [710] [738] [739] + - Fix bug in plugins where ESC during file open dialog causes error [603] + - Fix to garmintools_full plugin to make progress bar work (thanks to Druzee) [604] + - Avoid exiting when parsing problem is found, entry skipped [607] # + - Activites without GPX data don't break application [610] [615] + - Improvements (show and calculation) to pace and elevation as suggested by Arnd [612] [618] [619] [623] [627] [741] + - Better troubleshooting for graphics issues and minor fixes [625] [629] [636] + - Fixes to csv export (thx Arnd) [630] + - Fixes to startup script to better handling different environments [631] [637] [713] [714] + - Updates to wordpress extension - removed separate googlemaps [634] + - Allowing zero calories entries [641] + - Fixes to edit record [643] [647] + - Fixing confusion with dates (start day of the week, week number) [654] [655] [657] [670] [750] #57 + - Fix for GPX files with no lap info [660] + - Correction to date handling to work for mysql and sqlite [667] + - Improving logging output [671] [748] [749] + - Fix for HR percent graph so does not error in hr is None - thanks to Arnd [676] + - Bug fixes for sports filtering from Patrick [681] + - Updates for heartrate pie chart from Patrick [682] + - Fixes in lap generation (divide by zero, empty laps) - thanks to Arnd [684] [686] + - Fixes for record filtering from Patrick [691] + - Tolerate non-unicode strings returned from DB for better MySQL support [706] + - Add program argument for specifying config directory [709] #67 + - Better handling of floats and division. Thx to Martin [712] + - Retrieving a real list with DB tables, comparison was failing [716] + - Remove redundant Port option in preferences [719] #80 + - Fix to display blank sport properties correctly (not as None) [720] #78 + - Fix mysql code to match changes to sqlite tablelist handling [722] + - Stop preferences sport list edit button disabling dialog buttons if no sport is selected [723] #75 + - Fix to stop crash on editing record with empty distance [724] #73 + - Update record summary after edit [725] #79 + - Fix sport filtering to work with non consecutive sport_ids [728] + - Fix summary screens to update correctly with record add and deletes [729] + - Make pace read only [732] + - Display heartrate as integer in day, week, month and year views [734] + - Update DB check to ensure time == duration [736] + - Updating credits [740] [743] + - PyTrainer changes for 1.7.2: * Lap DB table created and code changed to populate and use the table [507] [508] [509] @@ -26,31 +91,31 @@ * Minor cosmetic changes [552] [553] [554] * Added check for early detection of empty local configuration file [555] * EXPERIMENTAL Unified Import GUI modifications (disabled by default, enabled on startup with --testimport) [526] - o file import supports multiple files at once [510] [511] - o option to have file import window automatically start with a file selection dialog [519] - o activities can be edited before import [514] [517] [521] [522] [534] [537] [538] - o kml file import support [523] [525] - o plugins tab added - provides alternative way of viewing and running import plugins [512] - o device import NOT functional + - file import supports multiple files at once [510] [511] + - option to have file import window automatically start with a file selection dialog [519] + - activities can be edited before import [514] [517] [521] [522] [534] [537] [538] + - kml file import support [523] [525] + - plugins tab added - provides alternative way of viewing and running import plugins [512] + - device import NOT functional - PyTrainer changes for 1.7.1: * New import plugin - Garmintools - svn [430], [431], [436], [452], [453], [459], [460], [461], [463], [464], [486], [487], [488] - o both file (dump file) and device import implemented - o smart import from device to cater for different start times compared to GPSBabel (to reduce duplicated activities) + - both file (dump file) and device import implemented + - smart import from device to cater for different start times compared to GPSBabel (to reduce duplicated activities) * Move to Google maps API version 3 - svn [477] * Add lap functionality - svn [433], [447], [448], [451], [454], [455] - o display individual laps under activity on treeview - o visually display lap duration on record graphs (user selectable) - o display lap markers on route map + - display individual laps under activity on treeview + - visually display lap duration on record graphs (user selectable) + - display lap markers on route map * Improve check functionality - svn [437], [438], [439], [475], [478], [479], [480], [482] - o Can be initiated by command line option --check - o Will be initiated if DB version in code is newer than user's DB version - o DB migration checks refactored and improved + - Can be initiated by command line option --check + - Will be initiated if DB version in code is newer than user's DB version + - DB migration checks refactored and improved * Timezone support - svn [434], [440], [442], [483] - o DB updated with new field date_time_local - o field populated on import (or when DB check is run) - o field used in preference to UTC if present for display + - DB updated with new field date_time_local + - field populated on import (or when DB check is run) + - field used in preference to UTC if present for display * Cadence / RPM support and graph added (tcx v2 file import only) - svn [432] * Improved install process and remove unneeded files - svn [445], [446], [462], [467], [472], [473] * Bug fix to TCX v2 to cater for multiple activities per file - svn [435] @@ -61,10 +126,10 @@ * Updated localizations (es, fr) - svn [494], [495], [497] * Separate some GUI elements into separate files to ease development - svn [443], [457], [465] * EXPERIMENTAL Unified Import GUI begun (for testing/feedback only) - svn [458], [466], [468], [469], [470], [471], [476], [481], [489] - o disabled by default - o enabled on startup with --testimport - o file import functional - o device import NOT functional + - disabled by default + - enabled on startup with --testimport + - file import functional + - device import NOT functional - PyTrainer changes for 1.7.0: Modified: pytrainer/trunk/pytrainer/gui/aboutdialog.py =================================================================== --- pytrainer/trunk/pytrainer/gui/aboutdialog.py 2010-11-27 14:21:55 UTC (rev 750) +++ pytrainer/trunk/pytrainer/gui/aboutdialog.py 2010-11-29 22:39:36 UTC (rev 751) @@ -39,7 +39,7 @@ about_dialog.set_destroy_with_parent(True) about_dialog.set_name("pyTrainer") about_dialog.set_version(self.version) - about_dialog.set_copyright("Copyright \xc2\xa9 2005-10 Fiz Vázquez") + about_dialog.set_copyright("Copyright \xc2\xa9 2005-09 Fiz Vázquez") about_dialog.set_website("http://sourceforge.net/projects/pytrainer") about_dialog.set_website_label("http://sourceforge.net/projects/pytrainer") about_dialog.set_comments("The free sport tracking center") Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-27 14:21:55 UTC (rev 750) +++ pytrainer/trunk/pytrainer/main.py 2010-11-29 22:39:36 UTC (rev 751) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#750" + self.version ="1.8.0" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() Modified: pytrainer/trunk/setup.py =================================================================== --- pytrainer/trunk/setup.py 2010-11-27 14:21:55 UTC (rev 750) +++ pytrainer/trunk/setup.py 2010-11-29 22:39:36 UTC (rev 751) @@ -15,10 +15,10 @@ return "share/pytrainer/extensions/%s"%extension_name, glob("extensions/%s/*"%extension_name) setup( name="pytrainer", - version="1.7.2", + version="1.8.0", description="The free sport tracking center", long_description="Pytrainer is a tool to log all your sport excursion coming from GPS devices (with a focus on ForeRunner 205, 305 and 405) or GPX (http://www.topografix.com) files. Pytrainer supports GPS track files and displays it in graphs, maps... ", - author="Fiz Vazquez, John Blance, David Garcia Granda", + author="Fiz Vazquez, John Blance, David Garcia Granda, Arnd Zapletal, Nathan Jones", maintainer_email="pyt...@li...", url="http://sourceforge.net/projects/pytrainer/", license="GNU General Public License (GPL)", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2010-11-29 22:55:51
|
Revision: 752 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=752&view=rev Author: dgranda Date: 2010-11-29 22:55:45 +0000 (Mon, 29 Nov 2010) Log Message: ----------- Tagging 1.8.0 release Added Paths: ----------- pytrainer/tags/1.8.0/ Property changes on: pytrainer/tags/1.8.0 ___________________________________________________________________ Added: svn:mergeinfo + /pytrainer/branches/plugins-v2:345-382 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aza...@us...> - 2010-11-27 14:22:01
|
Revision: 750 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=750&view=rev Author: azapletal Date: 2010-11-27 14:21:55 +0000 (Sat, 27 Nov 2010) Log Message: ----------- Tidying needless code fragments Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-26 02:20:36 UTC (rev 749) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-27 14:21:55 UTC (rev 750) @@ -1011,13 +1011,7 @@ hour,min,sec = date.second2time(int(i[6])) except (ValueError, TypeError): hour,min,sec = (0,0,0) - _time = "%2d:%02d:%02d" %(hour,min,sec) #original - # experimental only - if hour >0: - _hh = "%2d:%02d:%02d" %(hour, min, sec) - else: - _hh = "___%2d:%02d" %(min, sec) - #_time =_hh + _time = "%2d:%02d:%02d" %(hour,min,sec) try: _id = int(i[5]) except (ValueError, TypeError) as e: Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-26 02:20:36 UTC (rev 749) +++ pytrainer/trunk/pytrainer/main.py 2010-11-27 14:21:55 UTC (rev 750) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#748" + self.version ="1.7.2_svn#750" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-11-26 02:20:43
|
Revision: 749 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=749&view=rev Author: jblance Date: 2010-11-26 02:20:36 +0000 (Fri, 26 Nov 2010) Log Message: ----------- Fix logging error in Weekview Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/date.py Modified: pytrainer/trunk/pytrainer/lib/date.py =================================================================== --- pytrainer/trunk/pytrainer/lib/date.py 2010-11-25 22:45:55 UTC (rev 748) +++ pytrainer/trunk/pytrainer/lib/date.py 2010-11-26 02:20:36 UTC (rev 749) @@ -25,6 +25,7 @@ import dateutil.parser from dateutil.tz import * # for tzutc() from subprocess import Popen, PIPE +import logging class Date: def __init__(self, calendar=None): @@ -91,7 +92,8 @@ day_delta = datetime.timedelta(days=int(results[0]) - 1) base_date = dateutil.parser.parse(results[1]) first_day = base_date + day_delta - logging.debug("First day of week based on locale is:", first_day.strftime("%A")) + msg = "First day of week based on locale is:", first_day.strftime("%A") + logging.debug(msg) return first_day except Exception as e: print type(e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-11-25 22:46:03
|
Revision: 748 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=748&view=rev Author: jblance Date: 2010-11-25 22:45:55 +0000 (Thu, 25 Nov 2010) Log Message: ----------- Remove informational print statements Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/date.py pytrainer/trunk/pytrainer/lib/ddbb.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/lib/date.py =================================================================== --- pytrainer/trunk/pytrainer/lib/date.py 2010-11-25 22:41:20 UTC (rev 747) +++ pytrainer/trunk/pytrainer/lib/date.py 2010-11-25 22:45:55 UTC (rev 748) @@ -91,7 +91,7 @@ day_delta = datetime.timedelta(days=int(results[0]) - 1) base_date = dateutil.parser.parse(results[1]) first_day = base_date + day_delta - print "First day of week based on locale is:", first_day.strftime("%A") + logging.debug("First day of week based on locale is:", first_day.strftime("%A")) return first_day except Exception as e: print type(e) Modified: pytrainer/trunk/pytrainer/lib/ddbb.py =================================================================== --- pytrainer/trunk/pytrainer/lib/ddbb.py 2010-11-25 22:41:20 UTC (rev 747) +++ pytrainer/trunk/pytrainer/lib/ddbb.py 2010-11-25 22:45:55 UTC (rev 748) @@ -160,7 +160,7 @@ if table.find(',') != -1: #multiple tables in select #TODO fix so works.... - print 'TODO fix select_dict to work with multiple tables' + logging.info('TODO fix select_dict to work with multiple tables') cellString = ','.join(cells) #create cell list string results = self.ddbbObject.select(table,cellString,condition,mod) for result in results: Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-25 22:41:20 UTC (rev 747) +++ pytrainer/trunk/pytrainer/main.py 2010-11-25 22:45:55 UTC (rev 748) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#747" + self.version ="1.7.2_svn#748" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-11-25 22:41:26
|
Revision: 747 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=747&view=rev Author: jblance Date: 2010-11-25 22:41:20 +0000 (Thu, 25 Nov 2010) Log Message: ----------- Updated French localization from Pierre Modified Paths: -------------- pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Modified: pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po =================================================================== --- pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po 2010-11-25 22:38:03 UTC (rev 746) +++ pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po 2010-11-25 22:41:20 UTC (rev 747) @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: pytrainer_fr\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-23 21:42+0100\n" -"PO-Revision-Date: 2010-11-23 21:43+0100\n" +"POT-Creation-Date: 2010-11-25 22:45+0100\n" +"PO-Revision-Date: \n" "Last-Translator: Pierre Gaigé <pg...@fr...>\n" "Language-Team: <fr...@li...>\n" "Language: \n" @@ -244,7 +244,7 @@ #: glade/importdata.glade:864 #: pytrainer/gui/windowmain.py:109 #: pytrainer/gui/windowmain.py:124 -#: pytrainer/gui/windowmain.py:1132 +#: pytrainer/gui/windowmain.py:1147 #: pytrainer/gui/dialogselecttrack.py:40 msgid "Date" msgstr "Date" @@ -299,7 +299,7 @@ #: glade/importdata.glade:972 #: pytrainer/gui/windowmain.py:108 -#: pytrainer/gui/windowmain.py:1131 +#: pytrainer/gui/windowmain.py:1146 msgid "Title" msgstr "Titre" @@ -330,7 +330,7 @@ #: glade/pytrainer.glade:277 #: pytrainer/gui/windowmain.py:103 #: pytrainer/gui/windowmain.py:111 -#: pytrainer/gui/windowmain.py:1134 +#: pytrainer/gui/windowmain.py:1149 #: pytrainer/gui/windowimportdata.py:352 #: pytrainer/gui/windowprofile.py:59 #: pytrainer/gui/windowrecord.py:210 @@ -348,14 +348,14 @@ #: glade/importdata.glade:1089 #: pytrainer/recordgraph.py:138 msgid "Pace (min/km)" -msgstr "Cadence (min/km)" +msgstr "Allure (min/km)" #: glade/importdata.glade:1102 msgid "Max Pace (min/km)" -msgstr "Cadence Max (min/km)" +msgstr "Allure Max (min/km)" #: glade/importdata.glade:1115 -#: glade/newrecord.glade:1095 +#: glade/newrecord.glade:1094 msgid "Comments" msgstr "Commentaires" @@ -364,7 +364,7 @@ msgstr "Forcer le sport à:" #: glade/importdata.glade:1323 -#: glade/newrecord.glade:406 +#: glade/newrecord.glade:404 msgid " " msgstr " " @@ -395,151 +395,151 @@ msgstr "<b>Importer à partir d'un fichier CSV</b>" #: glade/newrecord.glade:7 -#: pytrainer/gui/windowmain.py:1744 +#: pytrainer/gui/windowmain.py:1769 msgid "New Entry" msgstr "Nouvelle entrée" -#: glade/newrecord.glade:63 +#: glade/newrecord.glade:61 msgid "Title:" msgstr "Titre:" -#: glade/newrecord.glade:87 +#: glade/newrecord.glade:85 msgid "GPX File:" msgstr "Fichier GPX:" -#: glade/newrecord.glade:131 +#: glade/newrecord.glade:129 msgid "Calculate Values" msgstr "Calculer les Valeurs" -#: glade/newrecord.glade:151 +#: glade/newrecord.glade:149 msgid "Sport:" msgstr "Sport:" -#: glade/newrecord.glade:186 +#: glade/newrecord.glade:184 msgid "<b>Main</b>" msgstr "<b>Principal:</b>" -#: glade/newrecord.glade:223 +#: glade/newrecord.glade:221 msgid "Distance (Km):" msgstr "Distance (km):" -#: glade/newrecord.glade:232 -#: glade/newrecord.glade:357 -#: glade/newrecord.glade:560 -#: glade/newrecord.glade:698 -#: glade/newrecord.glade:959 +#: glade/newrecord.glade:230 +#: glade/newrecord.glade:355 +#: glade/newrecord.glade:558 +#: glade/newrecord.glade:697 +#: glade/newrecord.glade:958 #: glade/profile.glade:1462 msgid "Calculate" msgstr "Calculer" -#: glade/newrecord.glade:250 +#: glade/newrecord.glade:248 msgid "Duration:" msgstr "Durée" -#: glade/newrecord.glade:281 -#: glade/newrecord.glade:308 +#: glade/newrecord.glade:279 +#: glade/newrecord.glade:306 msgid ":" msgstr ":" -#: glade/newrecord.glade:378 +#: glade/newrecord.glade:376 msgid "Date:" msgstr "Date:" -#: glade/newrecord.glade:447 +#: glade/newrecord.glade:445 msgid "Start Time:" msgstr "Début:" -#: glade/newrecord.glade:463 +#: glade/newrecord.glade:461 msgid "12:00:00" msgstr "" -#: glade/newrecord.glade:488 +#: glade/newrecord.glade:486 #: glade/profile.glade:1500 msgid "<b>General</b>" msgstr "<b>Général:</b>" -#: glade/newrecord.glade:524 +#: glade/newrecord.glade:522 msgid "Max (km/h):" msgstr "Max (km/h):" -#: glade/newrecord.glade:549 +#: glade/newrecord.glade:547 msgid "Average (km/h)" msgstr "Vitesse moy. (km/h)" -#: glade/newrecord.glade:595 +#: glade/newrecord.glade:593 msgid "<b>Speed</b>" msgstr "<b>Vitesse:</b>" -#: glade/newrecord.glade:614 +#: glade/newrecord.glade:612 msgid "Quick Entry" msgstr "Entrée Rapide" -#: glade/newrecord.glade:647 +#: glade/newrecord.glade:644 msgid "Max (min/km):" msgstr "Max (min/km)" -#: glade/newrecord.glade:673 +#: glade/newrecord.glade:671 msgid "Pace (min/km):" -msgstr "Cadence (min/km)" +msgstr "Allure (min/km)" -#: glade/newrecord.glade:719 +#: glade/newrecord.glade:718 msgid "<b>Pace</b>" -msgstr "<b>Cadence:</b>" +msgstr "<b>Allure</b>" -#: glade/newrecord.glade:755 +#: glade/newrecord.glade:754 msgid "Ascent:" -msgstr "Dénivelé Pos.:" +msgstr "Dénivelé Positif:" -#: glade/newrecord.glade:781 +#: glade/newrecord.glade:780 msgid "Descent:" -msgstr "Dénivelé Nég.:" +msgstr "Dénivelé Négatif:" -#: glade/newrecord.glade:814 +#: glade/newrecord.glade:813 msgid "<b>Accumulated Altitude Change</b>" msgstr " <b>Dénivelé Cumulé:</b> " -#: glade/newrecord.glade:851 +#: glade/newrecord.glade:850 msgid "Max (bpm):" msgstr "Max (bpm):" -#: glade/newrecord.glade:863 +#: glade/newrecord.glade:862 msgid "Heart rate:" msgstr "Fréquence Cardiaque:" -#: glade/newrecord.glade:903 +#: glade/newrecord.glade:902 #: pytrainer/monthgraph.py:78 #: pytrainer/weekgraph.py:123 #: pytrainer/gui/windowmain.py:115 -#: pytrainer/gui/windowmain.py:1138 +#: pytrainer/gui/windowmain.py:1153 #: pytrainer/yeargraph.py:78 msgid "Calories" msgstr "Calories" -#: glade/newrecord.glade:932 +#: glade/newrecord.glade:931 msgid "<small><b>Note:</b> In order to calculate the calories you must set the sport MET (in Preferences->Sport) </small>" msgstr "<small><b>Note:</b> Afin de calculer les calories vous devez renseigner le coefficient M.E.T. pour votre sport (menu Préférences->Sport) </small>" -#: glade/newrecord.glade:1006 +#: glade/newrecord.glade:1005 msgid "<b>Heart Rate</b>" msgstr "<b>Fréquence Cardiaque:</b>" -#: glade/newrecord.glade:1028 +#: glade/newrecord.glade:1027 msgid "Advanced" msgstr "Avancé" -#: glade/newrecord.glade:1080 +#: glade/newrecord.glade:1079 msgid "<b>Comments</b>" msgstr "<b>Commentaires</b>" -#: glade/newrecord.glade:1135 +#: glade/newrecord.glade:1134 msgid "<i>There are no active equipment items.</i>" msgstr "<i>Il n'y a aucun article d'équipement actif.</i>" -#: glade/newrecord.glade:1189 +#: glade/newrecord.glade:1188 msgid "<b>Associated Equipment</b>" msgstr "<b>Équipement associé</b>" -#: glade/newrecord.glade:1204 +#: glade/newrecord.glade:1203 #: glade/profile.glade:1360 msgid "Equipment" msgstr "Équipement" @@ -670,7 +670,7 @@ #: glade/profile.glade:821 msgid "Maximum Pace:" -msgstr "Cadence Max:" +msgstr "Allure Max:" #: glade/profile.glade:913 msgid "<b>Add New Sport</b>" @@ -711,7 +711,7 @@ #: glade/profile.glade:1201 msgid "Maxiumum Pace" -msgstr "Cadence Max" +msgstr "Allure Max" #: glade/profile.glade:1289 msgid "<b>Edit Sport</b>" @@ -750,7 +750,7 @@ msgstr "Méthode basée sur des pourcentages" #: glade/profile.glade:1565 -#: pytrainer/gui/windowmain.py:599 +#: pytrainer/gui/windowmain.py:614 msgid "Karvonen method" msgstr "Méthode de Karvonen" @@ -766,10 +766,10 @@ #: pytrainer/heartrategraph.py:36 #: pytrainer/recordgraph.py:140 #: pytrainer/daygraph.py:56 -#: pytrainer/lib/activity.py:430 -#: pytrainer/lib/activity.py:432 -#: pytrainer/lib/activity.py:442 -#: pytrainer/lib/activity.py:512 +#: pytrainer/lib/activity.py:433 +#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:445 +#: pytrainer/lib/activity.py:515 msgid "Heart Rate" msgstr "Fréquence Cardiaque" @@ -901,11 +901,11 @@ #: glade/pytrainer.glade:4234 #: glade/pytrainer.glade:4856 msgid "<b>Pace:</b>" -msgstr "<b>Cadence:</b>" +msgstr "<b>Allure:</b>" #: glade/pytrainer.glade:451 msgid "<b>Ascent:</b>" -msgstr "<b>Dénivelé Pos.:</b>" +msgstr "<b>Dénivelé Positif:</b>" #: glade/pytrainer.glade:465 msgid "<b>Calories:</b>" @@ -929,7 +929,7 @@ #: glade/pytrainer.glade:645 msgid "<b>Max Speed</b>" -msgstr "<b>Vit. Max:</b>" +msgstr "<b>Vitesse Max:</b>" #: glade/pytrainer.glade:661 #: glade/pytrainer.glade:3014 @@ -937,11 +937,11 @@ #: glade/pytrainer.glade:4248 #: glade/pytrainer.glade:4871 msgid "<b>Max Pace:</b>" -msgstr "<b>Cad. Max:</b>" +msgstr "<b>Allure Max:</b>" #: glade/pytrainer.glade:677 msgid "<b>Descent:</b>" -msgstr "<b>Dénivelé Nég.:</b>" +msgstr "<b>Dénivelé Négatif:</b>" #: glade/pytrainer.glade:769 #: glade/pytrainer.glade:2924 @@ -969,13 +969,13 @@ #: glade/pytrainer.glade:4162 #: glade/pytrainer.glade:4791 #: glade/pytrainer.glade:4807 -#: pytrainer/gui/windowmain.py:616 -#: pytrainer/gui/windowmain.py:617 -#: pytrainer/gui/windowmain.py:739 -#: pytrainer/gui/windowmain.py:740 -#: pytrainer/gui/windowmain.py:817 -#: pytrainer/gui/windowmain.py:818 -#: pytrainer/lib/activity.py:199 +#: pytrainer/gui/windowmain.py:631 +#: pytrainer/gui/windowmain.py:632 +#: pytrainer/gui/windowmain.py:754 +#: pytrainer/gui/windowmain.py:755 +#: pytrainer/gui/windowmain.py:832 +#: pytrainer/gui/windowmain.py:833 +#: pytrainer/lib/activity.py:202 msgid "km/h" msgstr "km/h" @@ -988,7 +988,7 @@ msgstr " <b>Titre:</b>" #: glade/pytrainer.glade:1064 -#: pytrainer/gui/windowmain.py:1350 +#: pytrainer/gui/windowmain.py:1375 msgid "Show graph display options" msgstr "Montrer les réglages du graphe" @@ -1004,7 +1004,7 @@ msgstr "" "Profil\n" "Vitesse\n" -"Cadence\n" +"Allure\n" "Fréquence Cardiaque\n" "Rythme\n" "Pourcentage\n" @@ -1029,7 +1029,7 @@ "Null\n" "Profil\n" "Vitesse\n" -"Cadence\n" +"Allure\n" "Fréquence Cardiaque\n" "Rythme\n" @@ -1172,8 +1172,8 @@ #: glade/pytrainer.glade:4297 #: glade/pytrainer.glade:4616 #: glade/pytrainer.glade:4823 -#: pytrainer/lib/activity.py:432 -#: pytrainer/lib/activity.py:512 +#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:515 msgid "bpm" msgstr "bpm" @@ -1207,13 +1207,13 @@ #: glade/pytrainer.glade:4281 #: glade/pytrainer.glade:4888 #: glade/pytrainer.glade:4904 -#: pytrainer/gui/windowmain.py:618 -#: pytrainer/gui/windowmain.py:619 -#: pytrainer/gui/windowmain.py:741 -#: pytrainer/gui/windowmain.py:742 -#: pytrainer/gui/windowmain.py:819 -#: pytrainer/gui/windowmain.py:820 -#: pytrainer/lib/activity.py:200 +#: pytrainer/gui/windowmain.py:633 +#: pytrainer/gui/windowmain.py:634 +#: pytrainer/gui/windowmain.py:756 +#: pytrainer/gui/windowmain.py:757 +#: pytrainer/gui/windowmain.py:834 +#: pytrainer/gui/windowmain.py:835 +#: pytrainer/lib/activity.py:203 msgid "min/km" msgstr "min/km" @@ -1473,7 +1473,7 @@ msgstr "Chargement sur Wordpress effectué" #: pytrainer/record.py:63 -#: pytrainer/gui/windowmain.py:1740 +#: pytrainer/gui/windowmain.py:1765 msgid "Edit Entry" msgstr "Entrée Rapide" @@ -1547,26 +1547,26 @@ msgstr "Vitesse (km/h)" #: pytrainer/recordgraph.py:136 -#: pytrainer/lib/activity.py:322 -#: pytrainer/lib/activity.py:412 -#: pytrainer/lib/activity.py:414 +#: pytrainer/lib/activity.py:325 +#: pytrainer/lib/activity.py:415 +#: pytrainer/lib/activity.py:417 msgid "Speed" msgstr "Vitesse" #: pytrainer/recordgraph.py:138 -#: pytrainer/lib/activity.py:311 -#: pytrainer/lib/activity.py:421 -#: pytrainer/lib/activity.py:423 +#: pytrainer/lib/activity.py:314 +#: pytrainer/lib/activity.py:424 +#: pytrainer/lib/activity.py:426 msgid "Pace" -msgstr "Cadence" +msgstr "Allure" #: pytrainer/recordgraph.py:142 msgid "Cadence (rpm)" -msgstr "Rythme (rpm) " +msgstr "Rythme (tpm) " #: pytrainer/recordgraph.py:142 -#: pytrainer/lib/activity.py:449 -#: pytrainer/lib/activity.py:451 +#: pytrainer/lib/activity.py:452 +#: pytrainer/lib/activity.py:454 msgid "Cadence" msgstr "Rythme" @@ -1575,7 +1575,7 @@ msgstr "Pulsations (%)" #: pytrainer/recordgraph.py:144 -#: pytrainer/gui/windowmain.py:1136 +#: pytrainer/gui/windowmain.py:1151 msgid "Beats" msgstr "Pulsations" @@ -1589,7 +1589,7 @@ #: pytrainer/extensions/googlemaps.py:69 #: pytrainer/extensions/osm.py:48 -#: pytrainer/gui/windowmain.py:1654 +#: pytrainer/gui/windowmain.py:1679 #: pytrainer/gui/drawArea.py:165 msgid "h" msgstr "h" @@ -1603,32 +1603,32 @@ #: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 #: pytrainer/gui/windowmain.py:112 -#: pytrainer/gui/windowmain.py:393 -#: pytrainer/gui/windowmain.py:1135 +#: pytrainer/gui/windowmain.py:394 +#: pytrainer/gui/windowmain.py:1150 msgid "Time" msgstr "Temps" #: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 #: pytrainer/gui/windowmain.py:110 -#: pytrainer/gui/windowmain.py:392 -#: pytrainer/gui/windowmain.py:1133 +#: pytrainer/gui/windowmain.py:393 +#: pytrainer/gui/windowmain.py:1148 #: pytrainer/gui/windowimportdata.py:352 #: pytrainer/gui/windowrecord.py:210 -#: pytrainer/lib/activity.py:310 -#: pytrainer/lib/activity.py:321 -#: pytrainer/lib/activity.py:393 -#: pytrainer/lib/activity.py:404 -#: pytrainer/lib/activity.py:413 -#: pytrainer/lib/activity.py:422 -#: pytrainer/lib/activity.py:431 -#: pytrainer/lib/activity.py:441 -#: pytrainer/lib/activity.py:450 -#: pytrainer/lib/activity.py:511 +#: pytrainer/lib/activity.py:313 +#: pytrainer/lib/activity.py:324 +#: pytrainer/lib/activity.py:396 +#: pytrainer/lib/activity.py:407 +#: pytrainer/lib/activity.py:416 +#: pytrainer/lib/activity.py:425 +#: pytrainer/lib/activity.py:434 +#: pytrainer/lib/activity.py:444 +#: pytrainer/lib/activity.py:453 +#: pytrainer/lib/activity.py:514 msgid "Distance" msgstr "Distance" -#: pytrainer/gui/drawGraph.py:164 +#: pytrainer/gui/drawGraph.py:170 msgid "Athlete Data" msgstr "Données de l'athlète" @@ -1675,97 +1675,109 @@ msgid "Max HR" msgstr "FC Max" -#: pytrainer/gui/windowmain.py:394 +#: pytrainer/gui/windowmain.py:395 msgid "Laps" msgstr "Tours" -#: pytrainer/gui/windowmain.py:446 +#: pytrainer/gui/windowmain.py:396 +msgid "Left Axis Grid" +msgstr "Grille d'axe Gauche" + +#: pytrainer/gui/windowmain.py:397 +msgid "Right Axis Grid" +msgstr "Grille d'axe Droite" + +#: pytrainer/gui/windowmain.py:398 +msgid "X Axis Grid" +msgstr "Grille d'axe X" + +#: pytrainer/gui/windowmain.py:459 msgid "Reset Limits" msgstr "Réinitialiser les limites" -#: pytrainer/gui/windowmain.py:448 +#: pytrainer/gui/windowmain.py:461 msgid "Set Limits" msgstr "Fixer les limites" -#: pytrainer/gui/windowmain.py:601 +#: pytrainer/gui/windowmain.py:616 msgid "Percentages method" msgstr "Méthode basée sur des pourcentages" -#: pytrainer/gui/windowmain.py:609 -#: pytrainer/gui/windowmain.py:732 -#: pytrainer/gui/windowmain.py:810 -#: pytrainer/lib/activity.py:193 +#: pytrainer/gui/windowmain.py:624 +#: pytrainer/gui/windowmain.py:747 +#: pytrainer/gui/windowmain.py:825 +#: pytrainer/lib/activity.py:196 msgid "miles" msgstr "miles" -#: pytrainer/gui/windowmain.py:610 -#: pytrainer/gui/windowmain.py:611 -#: pytrainer/gui/windowmain.py:733 -#: pytrainer/gui/windowmain.py:734 -#: pytrainer/gui/windowmain.py:811 -#: pytrainer/gui/windowmain.py:812 -#: pytrainer/lib/activity.py:194 +#: pytrainer/gui/windowmain.py:625 +#: pytrainer/gui/windowmain.py:626 +#: pytrainer/gui/windowmain.py:748 +#: pytrainer/gui/windowmain.py:749 +#: pytrainer/gui/windowmain.py:826 +#: pytrainer/gui/windowmain.py:827 +#: pytrainer/lib/activity.py:197 msgid "miles/h" msgstr "miles/h" -#: pytrainer/gui/windowmain.py:612 -#: pytrainer/gui/windowmain.py:613 -#: pytrainer/gui/windowmain.py:735 -#: pytrainer/gui/windowmain.py:736 -#: pytrainer/gui/windowmain.py:813 -#: pytrainer/gui/windowmain.py:814 -#: pytrainer/lib/activity.py:195 +#: pytrainer/gui/windowmain.py:627 +#: pytrainer/gui/windowmain.py:628 +#: pytrainer/gui/windowmain.py:750 +#: pytrainer/gui/windowmain.py:751 +#: pytrainer/gui/windowmain.py:828 +#: pytrainer/gui/windowmain.py:829 +#: pytrainer/lib/activity.py:198 msgid "min/mile" msgstr "min/mile" -#: pytrainer/gui/windowmain.py:615 -#: pytrainer/gui/windowmain.py:738 -#: pytrainer/gui/windowmain.py:816 -#: pytrainer/lib/activity.py:198 +#: pytrainer/gui/windowmain.py:630 +#: pytrainer/gui/windowmain.py:753 +#: pytrainer/gui/windowmain.py:831 +#: pytrainer/lib/activity.py:201 msgid "km" msgstr "km" -#: pytrainer/gui/windowmain.py:1137 +#: pytrainer/gui/windowmain.py:1152 msgid "Average" msgstr "Moyenne" -#: pytrainer/gui/windowmain.py:1346 +#: pytrainer/gui/windowmain.py:1371 msgid "Hide graph display options" msgstr "Cacher les réglages du graphe " -#: pytrainer/gui/windowmain.py:1644 +#: pytrainer/gui/windowmain.py:1669 msgid "lap" msgstr "tour " -#: pytrainer/gui/windowmain.py:1654 -#: pytrainer/gui/windowmain.py:1656 -#: pytrainer/lib/activity.py:201 +#: pytrainer/gui/windowmain.py:1679 +#: pytrainer/gui/windowmain.py:1681 +#: pytrainer/lib/activity.py:204 msgid "m" msgstr "m" -#: pytrainer/gui/windowmain.py:1654 -#: pytrainer/gui/windowmain.py:1656 +#: pytrainer/gui/windowmain.py:1679 +#: pytrainer/gui/windowmain.py:1681 msgid "s" msgstr "s" -#: pytrainer/gui/windowmain.py:1751 +#: pytrainer/gui/windowmain.py:1776 msgid "Delete Entry" msgstr "Détruire l'entrée" -#: pytrainer/gui/windowmain.py:1775 +#: pytrainer/gui/windowmain.py:1800 msgid "Create Athlete Entry" msgstr "Créer une entrée Athlète" -#: pytrainer/gui/windowmain.py:1779 +#: pytrainer/gui/windowmain.py:1804 msgid "Edit Athlete Entry" msgstr "Éditer les données de l'athlète" -#: pytrainer/gui/windowmain.py:1860 +#: pytrainer/gui/windowmain.py:1885 #: pytrainer/main.py:433 msgid "Delete this database entry?" msgstr "Supprimer cette entrée de la Base de Données?" -#: pytrainer/gui/windowmain.py:1862 +#: pytrainer/gui/windowmain.py:1887 msgid "Are you sure?" msgstr "Êtes vous sûr?" @@ -1927,7 +1939,7 @@ #: pytrainer/gui/windowprofile.py:59 msgid "Maximum Pace" -msgstr "Cadence Maximale" +msgstr "Allure Maximale" #: pytrainer/gui/drawArea.py:399 msgid "rest" @@ -2009,55 +2021,55 @@ msgid "kg" msgstr "kg" -#: pytrainer/lib/activity.py:196 +#: pytrainer/lib/activity.py:199 msgid "feet" msgstr "pieds" -#: pytrainer/lib/activity.py:309 +#: pytrainer/lib/activity.py:312 msgid "Pace by Lap" -msgstr "Cadence au tour" +msgstr "Allure au tour" -#: pytrainer/lib/activity.py:315 -#: pytrainer/lib/activity.py:326 -#: pytrainer/lib/activity.py:398 -#: pytrainer/lib/activity.py:408 -#: pytrainer/lib/activity.py:417 -#: pytrainer/lib/activity.py:426 -#: pytrainer/lib/activity.py:435 -#: pytrainer/lib/activity.py:445 -#: pytrainer/lib/activity.py:454 -#: pytrainer/lib/activity.py:516 +#: pytrainer/lib/activity.py:318 +#: pytrainer/lib/activity.py:329 +#: pytrainer/lib/activity.py:401 +#: pytrainer/lib/activity.py:411 +#: pytrainer/lib/activity.py:420 +#: pytrainer/lib/activity.py:429 +#: pytrainer/lib/activity.py:438 +#: pytrainer/lib/activity.py:448 +#: pytrainer/lib/activity.py:457 +#: pytrainer/lib/activity.py:519 msgid "Time (seconds)" msgstr "Durée (s)" -#: pytrainer/lib/activity.py:320 +#: pytrainer/lib/activity.py:323 msgid "Speed by Lap" msgstr "Vitesse au tour" -#: pytrainer/lib/activity.py:392 -#: pytrainer/lib/activity.py:394 +#: pytrainer/lib/activity.py:395 +#: pytrainer/lib/activity.py:397 msgid "Elevation" msgstr "Altitude" -#: pytrainer/lib/activity.py:403 -#: pytrainer/lib/activity.py:405 +#: pytrainer/lib/activity.py:406 +#: pytrainer/lib/activity.py:408 msgid "Corrected Elevation" msgstr "Altitude corrigée" -#: pytrainer/lib/activity.py:440 +#: pytrainer/lib/activity.py:443 #, python-format msgid "Heart Rate (% of max)" msgstr "Fréquence Cardiaque (% du max)" -#: pytrainer/lib/activity.py:442 +#: pytrainer/lib/activity.py:445 msgid "%" msgstr "%" -#: pytrainer/lib/activity.py:451 +#: pytrainer/lib/activity.py:454 msgid "rpm" msgstr "tpm" -#: pytrainer/lib/activity.py:510 +#: pytrainer/lib/activity.py:513 msgid "Heart Rate zone" msgstr "Zone de Fréquence Cardiaque" Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-25 22:38:03 UTC (rev 746) +++ pytrainer/trunk/pytrainer/main.py 2010-11-25 22:41:20 UTC (rev 747) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#746" + self.version ="1.7.2_svn#747" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-11-25 22:38:10
|
Revision: 746 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=746&view=rev Author: jblance Date: 2010-11-25 22:38:03 +0000 (Thu, 25 Nov 2010) Log Message: ----------- Separate popup menu handler for listview and recordview and fix bug introduced in 745 Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2010-11-25 22:17:14 UTC (rev 745) +++ pytrainer/trunk/glade/pytrainer.glade 2010-11-25 22:38:03 UTC (rev 746) @@ -246,7 +246,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="rubber_banding">True</property> - <signal name="button_press_event" handler="on_allRecordTreeView_button_press"/> + <signal name="button_press_event" handler="on_recordTreeView_button_press_event"/> <signal name="row_activated" handler="on_recordTree_clicked"/> </widget> </child> Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-25 22:17:14 UTC (rev 745) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-25 22:38:03 UTC (rev 746) @@ -1600,10 +1600,35 @@ self.parent.editGpsPlugins() #hasta aqui revisado + def on_recordTreeView_button_press_event(self, treeview, event): + ''' Handler for clicks on recordTreeview list (all records for a day) + event.button = mouse button pressed (i.e. 1 = left, 3 = right) + ''' + logging.debug(">>") + x = int(event.x) + y = int(event.y) + time = event.time + pthinfo = treeview.get_path_at_pos(x, y) + if pthinfo is not None: + path, col, cellx, celly = pthinfo + treeview.grab_focus() + treeview.set_cursor(path, col, 0) + if event.button == 3: + selected,iter = treeview.get_selection().get_selected() + #Por si hay un registro (malo) sin fecha, pa poder borrarlo + try: + date = self.parent.date.getDate() + except: + date = None + self.popup.show(selected.get_value(iter,0), event.button, time, date) + elif event.button == 1: + self.notebook.set_current_page(0) + self.parent.refreshGraphView("record") + logging.debug("<<") + return False + def on_allRecordTreeView_button_press(self, treeview, event): - ''' - Handler for clicks on recordview list (list of activities for the day) - + ''' Handler for clicks on listview list event.button = mouse button pressed (i.e. 1 = left, 3 = right) ''' logging.debug(">>") @@ -1619,7 +1644,7 @@ selected,iter = treeview.get_selection().get_selected() #Por si hay un registro (malo) sin fecha, pa poder borrarlo try: - date = self.parent.date.getDate(selected.get_value(iter,2)) + date = self.parent.date.getDate() except: pass self.popup.show(selected.get_value(iter,0), event.button, time, selected.get_value(iter,2)) Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-25 22:17:14 UTC (rev 745) +++ pytrainer/trunk/pytrainer/main.py 2010-11-25 22:38:03 UTC (rev 746) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#745" + self.version ="1.7.2_svn#746" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2010-11-25 22:17:20
|
Revision: 745 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=745&view=rev Author: jblance Date: 2010-11-25 22:17:14 +0000 (Thu, 25 Nov 2010) Log Message: ----------- Fix 'show in classic view' function in list view Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/popupmenu.py pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/gui/windowrecord.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/gui/popupmenu.py =================================================================== --- pytrainer/trunk/pytrainer/gui/popupmenu.py 2010-11-25 09:41:28 UTC (rev 744) +++ pytrainer/trunk/pytrainer/gui/popupmenu.py 2010-11-25 22:17:14 UTC (rev 745) @@ -19,25 +19,32 @@ from SimpleGladeApp import SimpleGladeApp class PopupMenu(SimpleGladeApp): - def __init__(self, data_path = None, parent = None): - self.parent = parent - glade_path="glade/pytrainer.glade" - root = "popup" - domain = None - SimpleGladeApp.__init__(self, data_path+glade_path, root, domain) - - def show(self,id_record,event_button, time): - self.id_record = id_record - self.popup.popup( None, None, None, event_button, time) + def __init__(self, data_path = None, parent = None): + self.parent = parent + glade_path="glade/pytrainer.glade" + root = "popup" + domain = None + SimpleGladeApp.__init__(self, data_path+glade_path, root, domain) + + def show(self,id_record,event_button, time, date=None): + self.id_record = id_record + self.date = date + self.iter = iter + self.popup.popup( None, None, None, event_button, time) - def on_editrecord_activate(self,widget): - self.parent.parent.editRecord(self.id_record, view=self.parent.selected_view) + def on_editrecord_activate(self,widget): + self.parent.parent.editRecord(self.id_record, view=self.parent.selected_view) - def on_showclassic_activate(self,widget): - self.parent.classicview_item.set_active(True) - #self.parent.on_calendar_selected(None) - self.parent.notebook.set_current_page(0) - self.parent.parent.refreshGraphView("record") + def on_showclassic_activate(self,widget): + #Set date in classic view + if self.date is not None: + self.parent.parent.date.setDate(self.date) + self.parent.classicview_item.set_active(True) + #self.parent.on_calendar_selected(None) + self.parent.notebook.set_current_page(0) + #self.parent.parent.refreshGraphView("record") + self.parent.recordview.set_current_page(0) + self.parent.parent.refreshRecordGraphView("info", id_record=self.id_record) - def on_remove_activate(self,widget): - self.parent.parent.removeRecord(self.id_record, view=self.parent.selected_view) + def on_remove_activate(self,widget): + self.parent.parent.removeRecord(self.id_record, view=self.parent.selected_view) Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-25 09:41:28 UTC (rev 744) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2010-11-25 22:17:14 UTC (rev 745) @@ -1622,7 +1622,7 @@ date = self.parent.date.getDate(selected.get_value(iter,2)) except: pass - self.popup.show(selected.get_value(iter,0), event.button, time) + self.popup.show(selected.get_value(iter,0), event.button, time, selected.get_value(iter,2)) elif event.button == 1: self.notebook.set_current_page(0) self.parent.refreshGraphView("record") Modified: pytrainer/trunk/pytrainer/gui/windowrecord.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowrecord.py 2010-11-25 09:41:28 UTC (rev 744) +++ pytrainer/trunk/pytrainer/gui/windowrecord.py 2010-11-25 22:17:14 UTC (rev 745) @@ -642,15 +642,20 @@ sec = self.rcd_second.get_value_as_int() hour += float(min)/60.0 + float(sec)/(60.0*60.0) weight = self.pytrainer_main.profile.getValue("pytraining","prf_weight") - if weight is None or weight == "" or weight == "None": + try: + weight = float(weight) + except: weight = 0.0 - weight = float(weight) - met = float(self.parent.getSportMet(sport)) - extraweight = self.parent.getSportWeight(sport) - if extraweight is None or extraweight == "" or extraweight == "None": + try: + met = float(self.parent.getSportMet(sport)) + except: + met = None + try: + extraweight = self.parent.getSportWeight(sport) + extraweight = float(extraweight) + except: extraweight = 0.0 - extraweight = float(extraweight) - if met: + if met is not None: calories = met*(weight+extraweight)*hour self.rcd_calories.set_text(str(calories)) Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2010-11-25 09:41:28 UTC (rev 744) +++ pytrainer/trunk/pytrainer/main.py 2010-11-25 22:17:14 UTC (rev 745) @@ -53,7 +53,7 @@ class pyTrainer: def __init__(self,filename = None, data_path = None): #Version constants - self.version ="1.7.2_svn#742" + self.version ="1.7.2_svn#745" self.DB_version = 6 #Process command line options self.startup_options = self.get_options() @@ -274,15 +274,24 @@ print "Unknown view %s" % view logging.debug('<<') - def refreshRecordGraphView(self, view): + def refreshRecordGraphView(self, view, id_record=None): logging.debug('>>') logging.info('Working on '+view+' graph') - selected,iter = self.windowmain.recordTreeView.get_selection().get_selected() - if iter: - id_record = selected.get_value(iter,0) + if id_record is not None: + #Refresh called for a specific record + #Select correct record in treeview + model = self.windowmain.recordTreeView.get_model() + #Loop through all records in treeview looking for the correct one to highlight + for i,row in enumerate(model): + if row[0] == id_record: + self.windowmain.recordTreeView.set_cursor(i) else: - id_record = None - view="info" + selected,iter = self.windowmain.recordTreeView.get_selection().get_selected() + if iter: + id_record = selected.get_value(iter,0) + else: + id_record = None + view="info" activity = self.activitypool.get_activity(id_record) if view=="info": self.windowmain.actualize_recordview(activity) @@ -412,7 +421,7 @@ self.record.newRecord(list_sport, date, title, distance, time, upositive, unegative, bpm, calories, comment) self.refreshListRecords() if view is not None: - self.refreshGraphView(view) + self.refreshGraphView(view) logging.debug('<<') def editRecord(self, id_record, view=None): @@ -422,7 +431,7 @@ self.record.editRecord(id_record,list_sport) self.refreshListRecords() if view is not None: - self.refreshGraphView(view) + self.refreshGraphView(view) logging.debug('<<') def removeRecord(self, id_record, confirm = False, view=None): @@ -437,7 +446,7 @@ warning.run() self.refreshListRecords() if view is not None: - self.refreshGraphView(view) + self.refreshGraphView(view) logging.debug('<<') def removeWaypoint(self,id_waypoint, confirm = False): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2010-11-25 09:41:35
|
Revision: 744 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=744&view=rev Author: dgranda Date: 2010-11-25 09:41:28 +0000 (Thu, 25 Nov 2010) Log Message: ----------- Updating ES localizations Modified Paths: -------------- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po Modified: pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Modified: pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po =================================================================== --- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po 2010-11-25 09:40:54 UTC (rev 743) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po 2010-11-25 09:41:28 UTC (rev 744) @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: pytrainer 1.7.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-11-19 16:58+0100\n" -"PO-Revision-Date: 2010-11-19 17:19+0100\n" +"POT-Creation-Date: 2010-11-24 13:39+0100\n" +"PO-Revision-Date: 2010-11-24 13:43+0100\n" "Last-Translator: David Garcia Granda <dg...@gm...>\n" "Language-Team: Spanish <es...@li...>\n" "Language: es\n" @@ -21,49 +21,49 @@ msgid "Calendar" msgstr "Calendario" -#: glade/equipment.glade:106 +#: glade/equipment.glade:109 msgid "<b>Equipment List</b>" msgstr "<b>Lista de material</b>" -#: glade/equipment.glade:146 -#: glade/equipment.glade:403 +#: glade/equipment.glade:149 +#: glade/equipment.glade:406 msgid "Description" msgstr "Descripción" -#: glade/equipment.glade:171 -#: glade/equipment.glade:428 +#: glade/equipment.glade:174 +#: glade/equipment.glade:431 msgid "Life Expectancy" msgstr "Vida útil esperada" -#: glade/equipment.glade:208 -#: glade/equipment.glade:464 +#: glade/equipment.glade:211 +#: glade/equipment.glade:467 msgid "Prior Usage" msgstr "Uso anterior" -#: glade/equipment.glade:240 -#: glade/equipment.glade:496 +#: glade/equipment.glade:243 +#: glade/equipment.glade:499 msgid "Active" msgstr "Habilitado" -#: glade/equipment.glade:274 -#: glade/equipment.glade:530 +#: glade/equipment.glade:277 +#: glade/equipment.glade:533 #: pytrainer/gui/windowimportdata.py:352 msgid "Notes" msgstr "Notas" -#: glade/equipment.glade:363 +#: glade/equipment.glade:366 msgid "<b>Add New Equipment</b>" msgstr "<b>Añadir nuevo material</b>" -#: glade/equipment.glade:619 +#: glade/equipment.glade:622 msgid "<b>Edit Equipment</b>" msgstr "<b>Editar material</b>" -#: glade/equipment.glade:648 +#: glade/equipment.glade:651 msgid "Really delete the equipment item?" msgstr "¿Confirma que desea borrar el material?" -#: glade/equipment.glade:701 +#: glade/equipment.glade:704 msgid "<b>Delete Equipment</b>" msgstr "<b>Borrar material</b>" @@ -82,8 +82,8 @@ #: glade/extensions.glade:82 #: glade/plugins.glade:144 -#: glade/profile.glade:803 -#: glade/pytrainer.glade:5136 +#: glade/profile.glade:727 +#: glade/pytrainer.glade:5161 msgid "Name:" msgstr "Nombre:" @@ -94,7 +94,7 @@ #: glade/extensions.glade:110 #: glade/plugins.glade:86 -#: glade/pytrainer.glade:5665 +#: glade/pytrainer.glade:5690 msgid "Description:" msgstr "<b>Descripción:</b>" @@ -240,7 +240,7 @@ #: glade/importdata.glade:864 #: pytrainer/gui/windowmain.py:109 #: pytrainer/gui/windowmain.py:124 -#: pytrainer/gui/windowmain.py:1114 +#: pytrainer/gui/windowmain.py:1147 #: pytrainer/gui/dialogselecttrack.py:40 msgid "Date" msgstr "Fecha" @@ -295,7 +295,7 @@ #: glade/importdata.glade:972 #: pytrainer/gui/windowmain.py:108 -#: pytrainer/gui/windowmain.py:1113 +#: pytrainer/gui/windowmain.py:1146 msgid "Title" msgstr "Título" @@ -326,7 +326,7 @@ #: glade/pytrainer.glade:277 #: pytrainer/gui/windowmain.py:103 #: pytrainer/gui/windowmain.py:111 -#: pytrainer/gui/windowmain.py:1116 +#: pytrainer/gui/windowmain.py:1149 #: pytrainer/gui/windowimportdata.py:352 #: pytrainer/gui/windowrecord.py:210 #: pytrainer/gui/windowprofile.py:59 @@ -351,7 +351,7 @@ msgstr "Ritmo máximo(min/km)" #: glade/importdata.glade:1115 -#: glade/newrecord.glade:1095 +#: glade/newrecord.glade:1094 msgid "Comments" msgstr "Comentarios" @@ -360,7 +360,7 @@ msgstr "Forzar deporte a:" #: glade/importdata.glade:1323 -#: glade/newrecord.glade:406 +#: glade/newrecord.glade:404 msgid " " msgstr " " @@ -391,152 +391,152 @@ msgstr "<b>Importar desde fichero CSV</b>" #: glade/newrecord.glade:7 -#: pytrainer/gui/windowmain.py:1724 +#: pytrainer/gui/windowmain.py:1769 msgid "New Entry" msgstr "Nueva entrada" -#: glade/newrecord.glade:63 +#: glade/newrecord.glade:61 msgid "Title:" msgstr "Título:" -#: glade/newrecord.glade:87 +#: glade/newrecord.glade:85 msgid "GPX File:" msgstr "Archivo GPX:" -#: glade/newrecord.glade:131 +#: glade/newrecord.glade:129 msgid "Calculate Values" msgstr "Calcular valores" -#: glade/newrecord.glade:151 +#: glade/newrecord.glade:149 msgid "Sport:" msgstr "Deporte:" -#: glade/newrecord.glade:186 +#: glade/newrecord.glade:184 msgid "<b>Main</b>" msgstr "<b>Principal</b>" -#: glade/newrecord.glade:223 +#: glade/newrecord.glade:221 msgid "Distance (Km):" msgstr "Distancia (km):" -#: glade/newrecord.glade:232 -#: glade/newrecord.glade:357 -#: glade/newrecord.glade:560 -#: glade/newrecord.glade:698 -#: glade/newrecord.glade:959 -#: glade/profile.glade:1538 +#: glade/newrecord.glade:230 +#: glade/newrecord.glade:355 +#: glade/newrecord.glade:558 +#: glade/newrecord.glade:697 +#: glade/newrecord.glade:958 +#: glade/profile.glade:1462 msgid "Calculate" msgstr "Calcular" -#: glade/newrecord.glade:250 +#: glade/newrecord.glade:248 msgid "Duration:" msgstr "Duración:" -#: glade/newrecord.glade:281 -#: glade/newrecord.glade:308 +#: glade/newrecord.glade:279 +#: glade/newrecord.glade:306 msgid ":" msgstr ":" -#: glade/newrecord.glade:378 +#: glade/newrecord.glade:376 msgid "Date:" msgstr "Fecha:" -#: glade/newrecord.glade:447 +#: glade/newrecord.glade:445 msgid "Start Time:" msgstr "Hora de comienzo:" -#: glade/newrecord.glade:463 +#: glade/newrecord.glade:461 msgid "12:00:00" msgstr "12:00:00" -#: glade/newrecord.glade:488 -#: glade/profile.glade:1576 +#: glade/newrecord.glade:486 +#: glade/profile.glade:1500 msgid "<b>General</b>" msgstr "<b>General:</b>" -#: glade/newrecord.glade:524 +#: glade/newrecord.glade:522 msgid "Max (km/h):" msgstr "Punta (km/h)" -#: glade/newrecord.glade:549 +#: glade/newrecord.glade:547 msgid "Average (km/h)" msgstr "Media (km/h)" -#: glade/newrecord.glade:595 +#: glade/newrecord.glade:593 msgid "<b>Speed</b>" msgstr "<b>Velocidad</b>" -#: glade/newrecord.glade:614 +#: glade/newrecord.glade:612 msgid "Quick Entry" msgstr "Entrada" -#: glade/newrecord.glade:647 +#: glade/newrecord.glade:644 msgid "Max (min/km):" msgstr "Max (min/km)" -#: glade/newrecord.glade:673 +#: glade/newrecord.glade:671 msgid "Pace (min/km):" msgstr "Ritmo (min/km)" -#: glade/newrecord.glade:719 +#: glade/newrecord.glade:718 msgid "<b>Pace</b>" msgstr "<b>Ritmo</b>" -#: glade/newrecord.glade:755 +#: glade/newrecord.glade:754 msgid "Ascent:" msgstr "Ascenso:" -#: glade/newrecord.glade:781 +#: glade/newrecord.glade:780 msgid "Descent:" msgstr "Descenso:" -#: glade/newrecord.glade:814 +#: glade/newrecord.glade:813 msgid "<b>Accumulated Altitude Change</b>" msgstr "<b>Desnivel acumulado:</b>" -#: glade/newrecord.glade:851 +#: glade/newrecord.glade:850 msgid "Max (bpm):" msgstr "Pulsaciones máximas" -#: glade/newrecord.glade:863 +#: glade/newrecord.glade:862 msgid "Heart rate:" msgstr "Pulsaciones" -#: glade/newrecord.glade:903 +#: glade/newrecord.glade:902 #: pytrainer/gui/windowmain.py:115 -#: pytrainer/gui/windowmain.py:1120 +#: pytrainer/gui/windowmain.py:1153 #: pytrainer/monthgraph.py:78 #: pytrainer/yeargraph.py:78 #: pytrainer/weekgraph.py:123 msgid "Calories" msgstr "Calorías" -#: glade/newrecord.glade:932 +#: glade/newrecord.glade:931 msgid "<small><b>Note:</b> In order to calculate the calories you must set the sport MET (in Preferences->Sport) </small>" msgstr "<small><b>Nota:</b> para el cálculo de calorías es necesario introducir el valor de MET del deporte (en Preferencias -> Deporte)</small>" -#: glade/newrecord.glade:1006 +#: glade/newrecord.glade:1005 msgid "<b>Heart Rate</b>" msgstr "<b>Pulsaciones</b>" -#: glade/newrecord.glade:1028 +#: glade/newrecord.glade:1027 msgid "Advanced" msgstr "Avanzado" -#: glade/newrecord.glade:1080 +#: glade/newrecord.glade:1079 msgid "<b>Comments</b>" msgstr "<b>Comentarios</b>" -#: glade/newrecord.glade:1135 +#: glade/newrecord.glade:1134 msgid "<i>There are no active equipment items.</i>" msgstr "<i>No hay piezas de material activas</i>" -#: glade/newrecord.glade:1189 +#: glade/newrecord.glade:1188 msgid "<b>Associated Equipment</b>" msgstr "<b>Material asociado</b>" -#: glade/newrecord.glade:1204 -#: glade/profile.glade:1436 +#: glade/newrecord.glade:1203 +#: glade/profile.glade:1360 msgid "Equipment" msgstr "Equipamiento" @@ -569,12 +569,12 @@ msgstr "<b>Sistema de medida</b>" #: glade/profile.glade:103 -#: glade/pytrainer.glade:1998 +#: glade/pytrainer.glade:2023 msgid "Google" msgstr "Google" #: glade/profile.glade:118 -#: glade/pytrainer.glade:1981 +#: glade/pytrainer.glade:2006 msgid "Open Street Map" msgstr "Open Street Map" @@ -606,88 +606,76 @@ msgid "<b>Database</b>" msgstr "<b>Base de datos:</b>" -#: glade/profile.glade:354 -msgid "Use this port for internal connections: " -msgstr "Use este puerto para conexiones internas" - -#: glade/profile.glade:379 -msgid "<small><b>Note:</b> Change this only if you know what you are doing</small>" -msgstr "<small><b>Nota:</b> cambie esto solamente si sabe lo que hace</small>" - -#: glade/profile.glade:397 -msgid "<b>Port Connnection</b>" -msgstr "<b>Puerto de conexión:</b>" - -#: glade/profile.glade:416 +#: glade/profile.glade:340 msgid "General" msgstr "General" -#: glade/profile.glade:445 +#: glade/profile.glade:369 msgid "User name:" msgstr "Nombre de usuario:" -#: glade/profile.glade:456 +#: glade/profile.glade:380 msgid "Gender:" msgstr "Género:" -#: glade/profile.glade:483 -#: glade/pytrainer.glade:5161 +#: glade/profile.glade:407 +#: glade/pytrainer.glade:5186 msgid "Height:" msgstr "Altura:" -#: glade/profile.glade:523 -#: glade/pytrainer.glade:5148 +#: glade/profile.glade:447 +#: glade/pytrainer.glade:5173 msgid "Date of birth:" msgstr "Fecha de nacimiento:" -#: glade/profile.glade:596 +#: glade/profile.glade:520 msgid "Weight:" msgstr "Peso:" -#: glade/profile.glade:618 -#: glade/pytrainer.glade:5223 +#: glade/profile.glade:542 +#: glade/pytrainer.glade:5248 msgid "<b>Athlete Details</b>" msgstr "<b>Datos personales</b>" -#: glade/profile.glade:633 -#: glade/pytrainer.glade:5326 +#: glade/profile.glade:557 +#: glade/pytrainer.glade:5351 msgid "Athlete" msgstr "Atleta" -#: glade/profile.glade:747 +#: glade/profile.glade:671 msgid "<b>Sport List</b>" msgstr "<b>Lista de deportes</b>" -#: glade/profile.glade:759 +#: glade/profile.glade:683 msgid "llist" msgstr "lista" -#: glade/profile.glade:814 +#: glade/profile.glade:738 msgid "M.E.T.:" msgstr "M.E.T.:" -#: glade/profile.glade:841 +#: glade/profile.glade:765 msgid "Extra Weight:" msgstr "Peso extra:" -#: glade/profile.glade:877 -#: glade/profile.glade:1257 +#: glade/profile.glade:801 +#: glade/profile.glade:1181 msgid "More information on determining yor M.E.T sport coefficient on Wikipedia" msgstr "Más información sobre el coeficiente M.E.T. en Wikipedia" -#: glade/profile.glade:897 +#: glade/profile.glade:821 msgid "Maximum Pace:" msgstr "Ritmo más rápido:" -#: glade/profile.glade:989 +#: glade/profile.glade:913 msgid "<b>Add New Sport</b>" msgstr "<b>Añadir nuevo deporte</b>" -#: glade/profile.glade:1004 +#: glade/profile.glade:928 msgid "new" msgstr "nuevo" -#: glade/profile.glade:1035 +#: glade/profile.glade:959 msgid "" "Deleting a sport removes associated records.\n" "Continue?" @@ -695,95 +683,96 @@ "Si borra un deporte elimina sus registros asociados.\n" "¿Desea continuar?" -#: glade/profile.glade:1117 +#: glade/profile.glade:1041 msgid "<b>Delete Sport</b>" msgstr "<b>Borrar deporte</b>" -#: glade/profile.glade:1149 +#: glade/profile.glade:1073 msgid "delete" msgstr "borrar" -#: glade/profile.glade:1182 +#: glade/profile.glade:1106 msgid "Name" msgstr "Nombre" -#: glade/profile.glade:1205 +#: glade/profile.glade:1129 msgid "M.E.T." msgstr "M.E.T." -#: glade/profile.glade:1232 +#: glade/profile.glade:1156 #: pytrainer/gui/windowprofile.py:59 msgid "Extra Weight" msgstr "Peso extra" -#: glade/profile.glade:1277 +#: glade/profile.glade:1201 msgid "Maxiumum Pace" msgstr "Ritmo más rápido:" -#: glade/profile.glade:1365 +#: glade/profile.glade:1289 msgid "<b>Edit Sport</b>" msgstr "<b>Editar deporte</b>" -#: glade/profile.glade:1376 +#: glade/profile.glade:1300 msgid "<b>lalaal</b>" msgstr "<b>lalaal</b>" -#: glade/profile.glade:1398 +#: glade/profile.glade:1322 msgid "edit" msgstr "editar" -#: glade/profile.glade:1414 +#: glade/profile.glade:1338 msgid "Sports" msgstr "Deportes" -#: glade/profile.glade:1469 +#: glade/profile.glade:1393 msgid "Maximum heart rate:" msgstr "Pulsaciones máximas:" -#: glade/profile.glade:1480 +#: glade/profile.glade:1404 msgid "Resting heart rate:" msgstr "Pulsaciones en reposo:" -#: glade/profile.glade:1525 +#: glade/profile.glade:1449 msgid "<small><b>Note:</b> Maximum heart rate is calculated by subtracting the number 220 minus your age. </small>" msgstr "<small><b>Nota:</b> el número máximo de pulsaciones se calcula con la siguiente fórmula: 220 menos su edad. </small>" -#: glade/profile.glade:1612 +#: glade/profile.glade:1536 msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>" msgstr "<small><b>Nota:</b> rellene todos los campos relativos a pulsaciones si usa el método Karvonen</small>" -#: glade/profile.glade:1625 +#: glade/profile.glade:1549 msgid "Percentages based method" msgstr "Basado en porcentajes" -#: glade/profile.glade:1641 -#: pytrainer/gui/windowmain.py:587 +#: glade/profile.glade:1565 +#: pytrainer/gui/windowmain.py:614 msgid "Karvonen method" msgstr "Karvonen" -#: glade/profile.glade:1662 +#: glade/profile.glade:1586 msgid "Select how to calculate your heart rate zones." msgstr "Seleccione cómo calcular las zonas de frecuencia cardiaca" -#: glade/profile.glade:1701 +#: glade/profile.glade:1625 msgid "<b>Heart Rate Zones</b>" msgstr "<b>Zonas de frecuencia cardiaca</b>" -#: glade/profile.glade:1723 +#: glade/profile.glade:1647 #: pytrainer/recordgraph.py:140 -#: pytrainer/lib/activity.py:411 -#: pytrainer/lib/activity.py:413 -#: pytrainer/lib/activity.py:423 +#: pytrainer/lib/activity.py:433 +#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:445 +#: pytrainer/lib/activity.py:515 #: pytrainer/heartrategraph.py:36 #: pytrainer/daygraph.py:56 msgid "Heart Rate" msgstr "Pulsaciones" -#: glade/profile.glade:1749 +#: glade/profile.glade:1673 msgid "Log Level" msgstr "Nivel de log" -#: glade/profile.glade:1757 +#: glade/profile.glade:1681 msgid "" "Error\n" "Warning\n" @@ -795,39 +784,39 @@ "Información\n" "Depuración" -#: glade/profile.glade:1775 +#: glade/profile.glade:1699 msgid "<small>What level of detail is written to the log?</small>" msgstr "<small>¿Qué nivel de detalle existe en el fichero de log?</small>" -#: glade/profile.glade:1789 +#: glade/profile.glade:1713 msgid "Validate" msgstr "Validar" -#: glade/profile.glade:1819 +#: glade/profile.glade:1743 msgid "<small>Do the plugins attempt to validate the input file before processing?</small>" msgstr "<small>¿Intentan los plugins validar el fichero de entrada antes de procesarlo?</small>" -#: glade/profile.glade:1835 +#: glade/profile.glade:1759 msgid "Check" msgstr "Comprobación" -#: glade/profile.glade:1864 +#: glade/profile.glade:1788 msgid "<small>Was a configuration and database check requested?</small>" msgstr "<small>¿Existió una petición para comprobar la configuración y la base de datos?</small>" -#: glade/profile.glade:1880 +#: glade/profile.glade:1804 msgid "New Graph" msgstr "Nuevo gráfico" -#: glade/profile.glade:1909 +#: glade/profile.glade:1833 msgid "<small>Want to use experimental new approach to graphing?</small>" msgstr "<small>¿Desea usar los nuevos gráficos (experimental)?</small>" -#: glade/profile.glade:1952 +#: glade/profile.glade:1876 msgid "<small>This screen shows the state of command line configurable options for pytrainer. These options can be changed here which will affect the current instance of pytrainer, they will not be remembered next time though</small>" msgstr "<small>Esta pantalla muestra el estado de las opciones que se pueden configurar mediante línea de comandos para PyTrainer. Los cambios que se hagan únicamente tendrán efecto en la presente ejecución de pytrainer y no serán recordados en el futuro</small>" -#: glade/profile.glade:1973 +#: glade/profile.glade:1897 msgid "Startup Parameters" msgstr "Configuración inicio" @@ -876,35 +865,35 @@ msgstr "_Ayuda" #: glade/pytrainer.glade:290 -#: glade/pytrainer.glade:5442 +#: glade/pytrainer.glade:5467 msgid "All Sports" -msgstr "Todos los deportes" +msgstr "Deportes" #: glade/pytrainer.glade:396 msgid "<b>Sport:</b>" msgstr "<b>Deporte:</b>" #: glade/pytrainer.glade:408 -#: glade/pytrainer.glade:2701 -#: glade/pytrainer.glade:3312 -#: glade/pytrainer.glade:3935 -#: glade/pytrainer.glade:4634 +#: glade/pytrainer.glade:2726 +#: glade/pytrainer.glade:3337 +#: glade/pytrainer.glade:3960 +#: glade/pytrainer.glade:4659 msgid "<b>Duration:</b>" msgstr "<b>Duración:</b>" #: glade/pytrainer.glade:423 -#: glade/pytrainer.glade:2791 -#: glade/pytrainer.glade:3391 -#: glade/pytrainer.glade:4014 -#: glade/pytrainer.glade:4736 +#: glade/pytrainer.glade:2816 +#: glade/pytrainer.glade:3416 +#: glade/pytrainer.glade:4039 +#: glade/pytrainer.glade:4761 msgid "<b>Speed:</b>" msgstr "<b>Velocidad:</b>" #: glade/pytrainer.glade:437 -#: glade/pytrainer.glade:2959 -#: glade/pytrainer.glade:3586 -#: glade/pytrainer.glade:4209 -#: glade/pytrainer.glade:4831 +#: glade/pytrainer.glade:2984 +#: glade/pytrainer.glade:3611 +#: glade/pytrainer.glade:4234 +#: glade/pytrainer.glade:4856 msgid "<b>Pace:</b>" msgstr "<b>Ritmo:</b>" @@ -925,10 +914,10 @@ msgstr "<b>Fecha:</b>" #: glade/pytrainer.glade:628 -#: glade/pytrainer.glade:2687 -#: glade/pytrainer.glade:3298 -#: glade/pytrainer.glade:3921 -#: glade/pytrainer.glade:4620 +#: glade/pytrainer.glade:2712 +#: glade/pytrainer.glade:3323 +#: glade/pytrainer.glade:3946 +#: glade/pytrainer.glade:4645 msgid "<b>Distance:</b>" msgstr "<b>Distancia:</b>" @@ -937,10 +926,10 @@ msgstr "<b>Pico velocidad:</b>" #: glade/pytrainer.glade:661 -#: glade/pytrainer.glade:2989 -#: glade/pytrainer.glade:3600 -#: glade/pytrainer.glade:4223 -#: glade/pytrainer.glade:4846 +#: glade/pytrainer.glade:3014 +#: glade/pytrainer.glade:3625 +#: glade/pytrainer.glade:4248 +#: glade/pytrainer.glade:4871 msgid "<b>Max Pace:</b>" msgstr "<b>Pico ritmo:</b>" @@ -949,38 +938,38 @@ msgstr "<b>Descenso:</b>" #: glade/pytrainer.glade:769 -#: glade/pytrainer.glade:2899 -#: glade/pytrainer.glade:3466 -#: glade/pytrainer.glade:4089 -#: glade/pytrainer.glade:4546 +#: glade/pytrainer.glade:2924 +#: glade/pytrainer.glade:3491 +#: glade/pytrainer.glade:4114 +#: glade/pytrainer.glade:4571 msgid "Cal" msgstr "Cal" #: glade/pytrainer.glade:808 -#: glade/pytrainer.glade:2661 -#: glade/pytrainer.glade:3272 -#: glade/pytrainer.glade:3895 -#: glade/pytrainer.glade:4723 +#: glade/pytrainer.glade:2686 +#: glade/pytrainer.glade:3297 +#: glade/pytrainer.glade:3920 +#: glade/pytrainer.glade:4748 #: pytrainer/gui/windowmain.py:102 msgid "Km" msgstr "km" #: glade/pytrainer.glade:823 -#: glade/pytrainer.glade:2821 -#: glade/pytrainer.glade:2854 -#: glade/pytrainer.glade:3421 -#: glade/pytrainer.glade:3514 -#: glade/pytrainer.glade:4044 -#: glade/pytrainer.glade:4137 -#: glade/pytrainer.glade:4766 -#: glade/pytrainer.glade:4782 -#: pytrainer/gui/windowmain.py:604 -#: pytrainer/gui/windowmain.py:605 -#: pytrainer/gui/windowmain.py:721 -#: pytrainer/gui/windowmain.py:722 -#: pytrainer/gui/windowmain.py:799 -#: pytrainer/gui/windowmain.py:800 -#: pytrainer/lib/activity.py:199 +#: glade/pytrainer.glade:2846 +#: glade/pytrainer.glade:2879 +#: glade/pytrainer.glade:3446 +#: glade/pytrainer.glade:3539 +#: glade/pytrainer.glade:4069 +#: glade/pytrainer.glade:4162 +#: glade/pytrainer.glade:4791 +#: glade/pytrainer.glade:4807 +#: pytrainer/gui/windowmain.py:631 +#: pytrainer/gui/windowmain.py:632 +#: pytrainer/gui/windowmain.py:754 +#: pytrainer/gui/windowmain.py:755 +#: pytrainer/gui/windowmain.py:832 +#: pytrainer/gui/windowmain.py:833 +#: pytrainer/lib/activity.py:202 msgid "km/h" msgstr "km/h" @@ -988,16 +977,16 @@ msgid "<b>Equipment:</b>" msgstr "<b>Material:</b>" -#: glade/pytrainer.glade:1015 +#: glade/pytrainer.glade:1014 msgid " <b>Title:</b>" msgstr "<b>Título:</b>" -#: glade/pytrainer.glade:1065 -#: pytrainer/gui/windowmain.py:1332 +#: glade/pytrainer.glade:1064 +#: pytrainer/gui/windowmain.py:1375 msgid "Show graph display options" msgstr "Mostrar opciones del gráfico" -#: glade/pytrainer.glade:1083 +#: glade/pytrainer.glade:1082 msgid "" "Profile\n" "Speed\n" @@ -1015,14 +1004,14 @@ "Porcentaje\n" "Zona" -#: glade/pytrainer.glade:1100 -#: glade/pytrainer.glade:3806 -#: glade/pytrainer.glade:4429 -#: glade/pytrainer.glade:5051 +#: glade/pytrainer.glade:1099 +#: glade/pytrainer.glade:3831 +#: glade/pytrainer.glade:4454 +#: glade/pytrainer.glade:5076 msgid "Versus" msgstr "contra" -#: glade/pytrainer.glade:1111 +#: glade/pytrainer.glade:1110 msgid "" "None\n" "Profile\n" @@ -1037,198 +1026,199 @@ "Ritmo\n" "Pulsaciones\n" -#: glade/pytrainer.glade:1232 +#: glade/pytrainer.glade:1257 msgid "<small>Graph Display Options</small>" msgstr "<small>Opciones de visualización gráfica</small>" -#: glade/pytrainer.glade:1257 -#: glade/pytrainer.glade:1472 -#: glade/pytrainer.glade:1692 +#: glade/pytrainer.glade:1282 +#: glade/pytrainer.glade:1497 +#: glade/pytrainer.glade:1717 msgid "<small>Limits</small>" msgstr "<small>Límites</small>" -#: glade/pytrainer.glade:1269 -#: glade/pytrainer.glade:1484 -#: glade/pytrainer.glade:1738 +#: glade/pytrainer.glade:1294 +#: glade/pytrainer.glade:1509 +#: glade/pytrainer.glade:1763 msgid "<small>Min</small>" msgstr "<small>Mín</small>" -#: glade/pytrainer.glade:1281 -#: glade/pytrainer.glade:1496 -#: glade/pytrainer.glade:1750 +#: glade/pytrainer.glade:1306 +#: glade/pytrainer.glade:1521 +#: glade/pytrainer.glade:1775 msgid "<small>Max</small>" msgstr "<small>Máx</small>" -#: glade/pytrainer.glade:1330 -#: glade/pytrainer.glade:1552 +#: glade/pytrainer.glade:1355 +#: glade/pytrainer.glade:1577 msgid "<small>Color</small>" msgstr "<small>Color</small>" -#: glade/pytrainer.glade:1361 -#: glade/pytrainer.glade:1565 +#: glade/pytrainer.glade:1386 +#: glade/pytrainer.glade:1590 msgid "<small>Weight</small>" msgstr "<small>Peso</small>" -#: glade/pytrainer.glade:1391 +#: glade/pytrainer.glade:1416 msgid "Y1" msgstr "Y1" -#: glade/pytrainer.glade:1402 -#: glade/pytrainer.glade:1613 +#: glade/pytrainer.glade:1427 +#: glade/pytrainer.glade:1638 msgid "<small>Smoothing</small>" msgstr "<small>Suavizado</small>" -#: glade/pytrainer.glade:1542 +#: glade/pytrainer.glade:1567 msgid "Y2" msgstr "Y2" -#: glade/pytrainer.glade:1682 +#: glade/pytrainer.glade:1707 msgid "X" msgstr "X" -#: glade/pytrainer.glade:1763 +#: glade/pytrainer.glade:1788 msgid "<small>Distance</small>" msgstr "<small>Distancia</small>" -#: glade/pytrainer.glade:1792 +#: glade/pytrainer.glade:1817 msgid "<small>Time</small>" msgstr "<small>Tiempo</small>" -#: glade/pytrainer.glade:1853 +#: glade/pytrainer.glade:1878 msgid "Show Laps" msgstr "Mostras vueltas" -#: glade/pytrainer.glade:1892 +#: glade/pytrainer.glade:1917 msgid "Reset Graph" msgstr "Resetear" -#: glade/pytrainer.glade:1954 +#: glade/pytrainer.glade:1979 msgid "Redraw Map" msgstr "Restaurar" -#: glade/pytrainer.glade:1970 +#: glade/pytrainer.glade:1995 msgid "<small>Display map using:</small>" msgstr "<small>Opciones de visualización de mapas:</small>" -#: glade/pytrainer.glade:2072 +#: glade/pytrainer.glade:2097 msgid "<b>Beats:</b>" msgstr "<b>Pulsaciones:</b>" -#: glade/pytrainer.glade:2084 -#: glade/pytrainer.glade:2869 -#: glade/pytrainer.glade:3436 -#: glade/pytrainer.glade:4059 -#: glade/pytrainer.glade:4516 +#: glade/pytrainer.glade:2109 +#: glade/pytrainer.glade:2894 +#: glade/pytrainer.glade:3461 +#: glade/pytrainer.glade:4084 +#: glade/pytrainer.glade:4541 msgid "<b>Calories: </b>" msgstr "<b>Calorías: </b>" -#: glade/pytrainer.glade:2098 -#: glade/pytrainer.glade:3021 -#: glade/pytrainer.glade:3664 -#: glade/pytrainer.glade:4287 -#: glade/pytrainer.glade:4894 +#: glade/pytrainer.glade:2123 +#: glade/pytrainer.glade:3046 +#: glade/pytrainer.glade:3689 +#: glade/pytrainer.glade:4312 +#: glade/pytrainer.glade:4919 msgid "<b>Max Beats:</b>" msgstr "<b>Pico pulsaciones:</b>" -#: glade/pytrainer.glade:2112 +#: glade/pytrainer.glade:2137 msgid "<b>HR Zones Method:</b>" msgstr "<b>Método de cálculo:</b>" -#: glade/pytrainer.glade:2127 +#: glade/pytrainer.glade:2152 msgid "<b>HR Zone5:</b>" msgstr "<b>Máximo esfuerzo:</b>" -#: glade/pytrainer.glade:2142 -#: glade/pytrainer.glade:2341 +#: glade/pytrainer.glade:2167 +#: glade/pytrainer.glade:2366 msgid " bpm" msgstr "ppm" -#: glade/pytrainer.glade:2158 +#: glade/pytrainer.glade:2183 msgid " Cal" msgstr "Cal" -#: glade/pytrainer.glade:2216 +#: glade/pytrainer.glade:2241 msgid "<b>HR Zone4:</b>" msgstr "<b>Anaeróbica:</b>" -#: glade/pytrainer.glade:2232 +#: glade/pytrainer.glade:2257 msgid "<b>HR Zone3:</b>" msgstr "<b>Aeróbica:</b>" -#: glade/pytrainer.glade:2248 +#: glade/pytrainer.glade:2273 msgid "<b>HR Zone2:</b>" msgstr "<b>Quemagrasas:</b>" -#: glade/pytrainer.glade:2264 +#: glade/pytrainer.glade:2289 msgid "<b>HR Zone1:</b>" msgstr "<b>Recuperación:</b>" -#: glade/pytrainer.glade:2366 -#: glade/pytrainer.glade:2378 -#: glade/pytrainer.glade:2393 -#: glade/pytrainer.glade:2408 -#: glade/pytrainer.glade:2423 -#: glade/pytrainer.glade:2944 -#: glade/pytrainer.glade:3038 -#: glade/pytrainer.glade:3571 -#: glade/pytrainer.glade:3649 -#: glade/pytrainer.glade:4194 -#: glade/pytrainer.glade:4272 -#: glade/pytrainer.glade:4591 -#: glade/pytrainer.glade:4798 -#: pytrainer/lib/activity.py:413 +#: glade/pytrainer.glade:2391 +#: glade/pytrainer.glade:2403 +#: glade/pytrainer.glade:2418 +#: glade/pytrainer.glade:2433 +#: glade/pytrainer.glade:2448 +#: glade/pytrainer.glade:2969 +#: glade/pytrainer.glade:3063 +#: glade/pytrainer.glade:3596 +#: glade/pytrainer.glade:3674 +#: glade/pytrainer.glade:4219 +#: glade/pytrainer.glade:4297 +#: glade/pytrainer.glade:4616 +#: glade/pytrainer.glade:4823 +#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:515 msgid "bpm" msgstr "ppm" -#: glade/pytrainer.glade:2468 +#: glade/pytrainer.glade:2493 msgid " <b>Heart Rate:</b>" msgstr "<b>Pulsaciones:</b>" -#: glade/pytrainer.glade:2628 +#: glade/pytrainer.glade:2653 msgid "Record" msgstr "Registro" -#: glade/pytrainer.glade:2837 -#: glade/pytrainer.glade:3482 -#: glade/pytrainer.glade:4105 -#: glade/pytrainer.glade:4814 +#: glade/pytrainer.glade:2862 +#: glade/pytrainer.glade:3507 +#: glade/pytrainer.glade:4130 +#: glade/pytrainer.glade:4839 msgid "<b>Max Speed:</b>" msgstr "<b>Velocidad máxima:</b>" -#: glade/pytrainer.glade:2914 -#: glade/pytrainer.glade:3541 -#: glade/pytrainer.glade:4164 -#: glade/pytrainer.glade:4561 +#: glade/pytrainer.glade:2939 +#: glade/pytrainer.glade:3566 +#: glade/pytrainer.glade:4189 +#: glade/pytrainer.glade:4586 msgid "<b>Beats avg:</b>" msgstr "<b>Media pulsaciones:</b>" -#: glade/pytrainer.glade:2974 -#: glade/pytrainer.glade:3006 -#: glade/pytrainer.glade:3617 -#: glade/pytrainer.glade:3633 -#: glade/pytrainer.glade:4240 -#: glade/pytrainer.glade:4256 -#: glade/pytrainer.glade:4863 -#: glade/pytrainer.glade:4879 -#: pytrainer/gui/windowmain.py:606 -#: pytrainer/gui/windowmain.py:607 -#: pytrainer/gui/windowmain.py:723 -#: pytrainer/gui/windowmain.py:724 -#: pytrainer/gui/windowmain.py:801 -#: pytrainer/gui/windowmain.py:802 -#: pytrainer/lib/activity.py:200 +#: glade/pytrainer.glade:2999 +#: glade/pytrainer.glade:3031 +#: glade/pytrainer.glade:3642 +#: glade/pytrainer.glade:3658 +#: glade/pytrainer.glade:4265 +#: glade/pytrainer.glade:4281 +#: glade/pytrainer.glade:4888 +#: glade/pytrainer.glade:4904 +#: pytrainer/gui/windowmain.py:633 +#: pytrainer/gui/windowmain.py:634 +#: pytrainer/gui/windowmain.py:756 +#: pytrainer/gui/windowmain.py:757 +#: pytrainer/gui/windowmain.py:834 +#: pytrainer/gui/windowmain.py:835 +#: pytrainer/lib/activity.py:203 msgid "min/km" msgstr "min/km" -#: glade/pytrainer.glade:3128 +#: glade/pytrainer.glade:3153 msgid " <b>Date:</b>" msgstr "<b>Fecha:</b>" -#: glade/pytrainer.glade:3171 +#: glade/pytrainer.glade:3196 msgid "Value" msgstr "Valor" -#: glade/pytrainer.glade:3182 +#: glade/pytrainer.glade:3207 msgid "" "Stage Profile\n" "Stage Velocity\n" @@ -1238,17 +1228,17 @@ "Velocidad de Etapa\n" "Perfil/Velocidad de Etapa" -#: glade/pytrainer.glade:3238 +#: glade/pytrainer.glade:3263 msgid "Day" msgstr "Día" -#: glade/pytrainer.glade:3740 +#: glade/pytrainer.glade:3765 msgid " <b>Week:</b>" msgstr "<b>Semana:</b>" -#: glade/pytrainer.glade:3791 -#: glade/pytrainer.glade:4414 -#: glade/pytrainer.glade:5036 +#: glade/pytrainer.glade:3816 +#: glade/pytrainer.glade:4439 +#: glade/pytrainer.glade:5061 msgid "" "Distance\n" "Time\n" @@ -1262,9 +1252,9 @@ "Velocidad media\n" "Calorías" -#: glade/pytrainer.glade:3817 -#: glade/pytrainer.glade:4440 -#: glade/pytrainer.glade:5062 +#: glade/pytrainer.glade:3842 +#: glade/pytrainer.glade:4465 +#: glade/pytrainer.glade:5087 msgid "" "None\n" "Distance\n" @@ -1280,71 +1270,71 @@ "Velocidad media\n" "Calorías" -#: glade/pytrainer.glade:3861 +#: glade/pytrainer.glade:3886 msgid "Week" msgstr "Semana" -#: glade/pytrainer.glade:4363 +#: glade/pytrainer.glade:4388 msgid " <b>Month:</b>" msgstr "<b>Mes:</b>" -#: glade/pytrainer.glade:4483 +#: glade/pytrainer.glade:4508 msgid "Month" msgstr "Mes" -#: glade/pytrainer.glade:4985 +#: glade/pytrainer.glade:5010 msgid " <b>Year:</b>" msgstr "<b>Año:</b>" -#: glade/pytrainer.glade:5105 +#: glade/pytrainer.glade:5130 msgid "Year" msgstr "Año" -#: glade/pytrainer.glade:5259 +#: glade/pytrainer.glade:5284 msgid "<b>Graph</b>" msgstr "<b>Gráfico</b>" -#: glade/pytrainer.glade:5300 +#: glade/pytrainer.glade:5325 msgid "<b>History</b>" msgstr "<b>Histórico</b>" -#: glade/pytrainer.glade:5364 +#: glade/pytrainer.glade:5389 msgid "<b>Title:</b>" msgstr "<b>Título:</b>" -#: glade/pytrainer.glade:5387 +#: glade/pytrainer.glade:5412 msgid "Search" msgstr "Buscar" -#: glade/pytrainer.glade:5411 +#: glade/pytrainer.glade:5436 msgid "All Distances" -msgstr "Todas las distancias" +msgstr "Distancia" -#: glade/pytrainer.glade:5420 +#: glade/pytrainer.glade:5445 msgid "All Durations" -msgstr "Todas las duraciones" +msgstr "Duración" -#: glade/pytrainer.glade:5430 +#: glade/pytrainer.glade:5455 msgid "" "All time\n" "Last 4 weeks\n" "Last 6 months\n" "Last 12 months" msgstr "" -"De siempre\n" +"Tiempo\n" "Últimas 4 semanas\n" "Últimos 6 meses\n" "Últimos 12 meses" -#: glade/pytrainer.glade:5467 +#: glade/pytrainer.glade:5492 msgid "Columns" msgstr "Columnas" -#: glade/pytrainer.glade:5594 +#: glade/pytrainer.glade:5619 msgid "Type:" msgstr "Tipo:" -#: glade/pytrainer.glade:5607 +#: glade/pytrainer.glade:5632 msgid "" "Font\n" "Restaurant\n" @@ -1356,31 +1346,31 @@ "Mirador\n" "Cumbre" -#: glade/pytrainer.glade:5623 +#: glade/pytrainer.glade:5648 msgid "Latitude: " msgstr "<b>Latitud:</b>" -#: glade/pytrainer.glade:5637 +#: glade/pytrainer.glade:5662 msgid " Name:" msgstr "Nombre:" -#: glade/pytrainer.glade:5649 +#: glade/pytrainer.glade:5674 msgid "Longitude:" msgstr "<b>Longitud:</b>" -#: glade/pytrainer.glade:5741 +#: glade/pytrainer.glade:5766 msgid "<b> Waypoint: </b>" msgstr "<b> Waypoint: </b>" -#: glade/pytrainer.glade:5925 +#: glade/pytrainer.glade:5950 msgid "Edit Record" msgstr "Editar entrada" -#: glade/pytrainer.glade:5939 +#: glade/pytrainer.glade:5964 msgid "Show graph in classic view" msgstr "Mostrar gráfico en vista clásica" -#: glade/pytrainer.glade:5953 +#: glade/pytrainer.glade:5978 msgid "Merge tracks" msgstr "Combinar entrenamientos" @@ -1410,17 +1400,19 @@ #: pytrainer/gui/windowmain.py:110 #: pytrainer/gui/windowmain.py:393 -#: pytrainer/gui/windowmain.py:1115 +#: pytrainer/gui/windowmain.py:1148 #: pytrainer/gui/windowimportdata.py:352 #: pytrainer/gui/windowrecord.py:210 -#: pytrainer/lib/activity.py:310 -#: pytrainer/lib/activity.py:374 -#: pytrainer/lib/activity.py:385 -#: pytrainer/lib/activity.py:394 -#: pytrainer/lib/activity.py:403 -#: pytrainer/lib/activity.py:412 -#: pytrainer/lib/activity.py:422 -#: pytrainer/lib/activity.py:431 +#: pytrainer/lib/activity.py:313 +#: pytrainer/lib/activity.py:324 +#: pytrainer/lib/activity.py:396 +#: pytrainer/lib/activity.py:407 +#: pytrainer/lib/activity.py:416 +#: pytrainer/lib/activity.py:425 +#: pytrainer/lib/activity.py:434 +#: pytrainer/lib/activity.py:444 +#: pytrainer/lib/activity.py:453 +#: pytrainer/lib/activity.py:514 #: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 msgid "Distance" @@ -1428,7 +1420,7 @@ #: pytrainer/gui/windowmain.py:112 #: pytrainer/gui/windowmain.py:394 -#: pytrainer/gui/windowmain.py:1117 +#: pytrainer/gui/windowmain.py:1150 #: pytrainer/extensions/googlemaps.py:71 #: pytrainer/extensions/osm.py:50 msgid "Time" @@ -1466,110 +1458,122 @@ msgid "Laps" msgstr "Vueltas" -#: pytrainer/gui/windowmain.py:447 +#: pytrainer/gui/windowmain.py:396 +msgid "Left Axis Grid" +msgstr "Cuadrícula eje izquierdo" + +#: pytrainer/gui/windowmain.py:397 +msgid "Right Axis Grid" +msgstr "Cuadrícula eje derecho" + +#: pytrainer/gui/windowmain.py:398 +msgid "X Axis Grid" +msgstr "Cuadrícula eje X" + +#: pytrainer/gui/windowmain.py:459 msgid "Reset Limits" msgstr "Borrar límites" -#: pytrainer/gui/windowmain.py:449 +#: pytrainer/gui/windowmain.py:461 msgid "Set Limits" msgstr "Establecer límites" -#: pytrainer/gui/windowmain.py:589 +#: pytrainer/gui/windowmain.py:616 msgid "Percentages method" msgstr "basado en porcentajes" -#: pytrainer/gui/windowmain.py:597 -#: pytrainer/gui/windowmain.py:714 -#: pytrainer/gui/windowmain.py:792 -#: pytrainer/lib/activity.py:193 +#: pytrainer/gui/windowmain.py:624 +#: pytrainer/gui/windowmain.py:747 +#: pytrainer/gui/windowmain.py:825 +#: pytrainer/lib/activity.py:196 msgid "miles" msgstr "millas" -#: pytrainer/gui/windowmain.py:598 -#: pytrainer/gui/windowmain.py:599 -#: pytrainer/gui/windowmain.py:715 -#: pytrainer/gui/windowmain.py:716 -#: pytrainer/gui/windowmain.py:793 -#: pytrainer/gui/windowmain.py:794 -#: pytrainer/lib/activity.py:194 +#: pytrainer/gui/windowmain.py:625 +#: pytrainer/gui/windowmain.py:626 +#: pytrainer/gui/windowmain.py:748 +#: pytrainer/gui/windowmain.py:749 +#: pytrainer/gui/windowmain.py:826 +#: pytrainer/gui/windowmain.py:827 +#: pytrainer/lib/activity.py:197 msgid "miles/h" msgstr "millas/h" -#: pytrainer/gui/windowmain.py:600 -#: pytrainer/gui/windowmain.py:601 -#: pytrainer/gui/windowmain.py:717 -#: pytrainer/gui/windowmain.py:718 -#: pytrainer/gui/windowmain.py:795 -#: pytrainer/gui/windowmain.py:796 -#: pytrainer/lib/activity.py:195 +#: pytrainer/gui/windowmain.py:627 +#: pytrainer/gui/windowmain.py:628 +#: pytrainer/gui/windowmain.py:750 +#: pytrainer/gui/windowmain.py:751 +#: pytrainer/gui/windowmain.py:828 +#: pytrainer/gui/windowmain.py:829 +#: pytrainer/lib/activity.py:198 msgid "min/mile" msgstr "min/milla" -#: pytrainer/gui/windowmain.py:603 -#: pytrainer/gui/windowmain.py:720 -#: pytrainer/gui/windowmain.py:798 -#: pytrainer/lib/activity.py:198 +#: pytrainer/gui/windowmain.py:630 +#: pytrainer/gui/windowmain.py:753 +#: pytrainer/gui/windowmain.py:831 +#: pytrainer/lib/activity.py:201 msgid "km" msgstr "km" -#: pytrainer/gui/windowmain.py:1118 +#: pytrainer/gui/windowmain.py:1151 #: pytrainer/recordgraph.py:144 msgid "Beats" msgstr "Pulsaciones" -#: pytrainer/gui/windowmain.py:1119 +#: pytrainer/gui/windowmain.py:1152 msgid "Average" msgstr "Media" -#: pytrainer/gui/windowmain.py:1328 +#: pytrainer/gui/windowmain.py:1371 msgid "Hide graph display options" msgstr "Ocultar configuración de visualización gráfica" -#: pytrainer/gui/windowmain.py:1624 +#: pytrainer/gui/windowmain.py:1669 msgid "lap" msgstr "vuelta" -#: pytrainer/gui/windowmain.py:1634 +#: pytrainer/gui/windowmain.py:1679 #: pytrainer/gui/drawArea.py:165 #: pytrainer/extensions/googlemaps.py:69 #: pytrainer/extensions/osm.py:48 msgid "h" msgstr "h" -#: pytrainer/gui/windowmain.py:1634 -#: pytrainer/gui/windowmain.py:1636 -#: pytrainer/lib/activity.py:201 +#: pytrainer/gui/windowmain.py:1679 +#: pytrainer/gui/windowmain.py:1681 +#: pytrainer/lib/activity.py:204 msgid "m" msgstr "m" -#: pytrainer/gui/windowmain.py:1634 -#: pytrainer/gui/windowmain.py:1636 +#: pytrainer/gui/windowmain.py:1679 +#: pytrainer/gui/windowmain.py:1681 msgid "s" msgstr "s" -#: pytrainer/gui/windowmain.py:1720 +#: pytrainer/gui/windowmain.py:1765 #: pytrainer/record.py:63 msgid "Edit Entry" msgstr "Editar entrada" -#: pytrainer/gui/windowmain.py:1731 +#: pytrainer/gui/windowmain.py:1776 msgid "Delete Entry" msgstr "Borrar entrada" -#: pytrainer/gui/windowmain.py:1755 +#: pytrainer/gui/windowmain.py:1800 msgid "Create Athlete Entry" msgstr "Crear entrada de atleta" -#: pytrainer/gui/windowmain.py:1759 +#: pytrainer/gui/windowmain.py:1804 msgid "Edit Athlete Entry" msgstr "Editar atleta" -#: pytrainer/gui/windowmain.py:1840 -#: pytrainer/main.py:421 +#: pytrainer/gui/windowmain.py:1885 +#: pytrainer/main.py:433 msgid "Delete this database entry?" msgstr "¿Borrar esta entrada de la base de datos?" -#: pytrainer/gui/windowmain.py:1842 +#: pytrainer/gui/windowmain.py:1887 msgid "Are you sure?" msgstr "¿Está seguro?" @@ -1746,7 +1750,7 @@ msgid "Track Name" msgstr "Nombre de la ruta" -#: pytrainer/gui/drawGraph.py:155 +#: pytrainer/gui/drawGraph.py:170 msgid "Athlete Data" msgstr "Datos del atleta" @@ -1770,15 +1774,16 @@ msgstr "Velocidad (km/h)" #: pytrainer/recordgraph.py:136 -#: pytrainer/lib/activity.py:393 -#: pytrainer/lib/activity.py:395 +#: pytrainer/lib/activity.py:325 +#: pytrainer/lib/activity.py:415 +#: pytrainer/lib/activity.py:417 msgid "Speed" msgstr "Velocidad" #: pytrainer/recordgraph.py:138 -#: pytrainer/lib/activity.py:311 -#: pytrainer/lib/activity.py:402 -#: pytrainer/lib/activity.py:404 +#: pytrainer/lib/activity.py:314 +#: pytrainer/lib/activity.py:424 +#: pytrainer/lib/activity.py:426 msgid "Pace" msgstr "Ritmo" @@ -1793,8 +1798,8 @@ msgstr "Cadencia (rpm)" #: pytrainer/recordgraph.py:142 -#: pytrainer/lib/activity.py:430 -#: pytrainer/lib/activity.py:432 +#: pytrainer/lib/activity.py:452 +#: pytrainer/lib/activity.py:454 msgid "Cadence" msgstr "Cadence" @@ -1834,48 +1839,58 @@ msgid "No Data" msgstr "Sin datos" -#: pytrainer/lib/activity.py:196 +#: pytrainer/lib/activity.py:199 msgid "feet" msgstr "pies" -#: pytrainer/lib/activity.py:309 +#: pytrainer/lib/activity.py:312 msgid "Pace by Lap" msgstr "Ritmo por vuelta" -#: pytrainer/lib/activity.py:315 -#: pytrainer/lib/activity.py:379 -#: pytrainer/lib/activity.py:389 -#: pytrainer/lib/activity.py:398 -#: pytrainer/lib/activity.py:407 -#: pytrainer/lib/activity.py:416 -#: pytrainer/lib/activity.py:426 -#: pytrainer/lib/activity.py:435 +#: pytrainer/lib/activity.py:318 +#: pytrainer/lib/activity.py:329 +#: pytrainer/lib/activity.py:401 +#: pytrainer/lib/activity.py:411 +#: pytrainer/lib/activity.py:420 +#: pytrainer/lib/activity.py:429 +#: pytrainer/lib/activity.py:438 +#: pytrainer/lib/activity.py:448 +#: pytrainer/lib/activity.py:457 +#: pytrainer/lib/activity.py:519 msgid "Time (seconds)" msgstr "Tiempo (segundos)" -#: pytrainer/lib/activity.py:373 -#: pytrainer/lib/activity.py:375 +#: pytrainer/lib/activity.py:323 +msgid "Speed by Lap" +msgstr "Velocidad por vuelta" + +#: pytrainer/lib/activity.py:395 +#: pytrainer/lib/activity.py:397 msgid "Elevation" msgstr "Altura" -#: pytrainer/lib/activity.py:384 -#: pytrainer/lib/activity.py:386 +#: pytrainer/lib/activity.py:406 +#: pytrainer/lib/activity.py:408 msgid "Corrected Elevation" msgstr "Altura corregida" -#: pytrainer/lib/activity.py:421 +#: pytrainer/lib/activity.py:443 #, python-format msgid "Heart Rate (% of max)" msgstr "Frecuencia cardíaca (% del máx.)" -#: pytrainer/lib/activity.py:423 +#: pytrainer/lib/activity.py:445 msgid "%" msgstr "%" -#: pytrainer/lib/activity.py:432 +#: pytrainer/lib/activity.py:454 msgid "rpm" msgstr "rpm" +#: pytrainer/lib/activity.py:513 +msgid "Heart Rate zone" +msgstr "Zona frecuencia cardiaca" + #: pytrainer/monthgraph.py:70 #: pytrainer/monthgraph.py:72 #: pytrainer/monthgraph.py:74 @@ -1973,7 +1988,7 @@ msgid "Velocity" msgstr "Velocidad" -#: pytrainer/main.py:435 +#: pytrainer/main.py:449 msgid "Delete this waypoint?" msgstr "¿Borrar este waypoint?" @@ -2059,6 +2074,18 @@ msgid "Wordpress Extension Upload Complete" msgstr "Envío completo a Wordpress" +#~ msgid "Use this port for internal connections: " +#~ msgstr "Use este puerto para conexiones internas" + +#~ msgid "" +#~ "<small><b>Note:</b> Change this only if you know what you are doing</" +#~ "small>" +#~ msgstr "" +#~ "<small><b>Nota:</b> cambie esto solamente si sabe lo que hace</small>" + +#~ msgid "<b>Port Connnection</b>" +#~ msgstr "<b>Puerto de conexión:</b>" + #~ msgid "Googlemaps v3" #~ msgstr "Googlemaps v3" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |