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: <jb...@us...> - 2009-12-26 10:14:19
|
Revision: 443 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=443&view=rev Author: jblance Date: 2009-12-26 10:14:10 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Separated New Entry dialog into a separate glade file Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/gui/windowrecord.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/record.py Added Paths: ----------- pytrainer/trunk/glade/newrecord.glade Added: pytrainer/trunk/glade/newrecord.glade =================================================================== --- pytrainer/trunk/glade/newrecord.glade (rev 0) +++ pytrainer/trunk/glade/newrecord.glade 2009-12-26 10:14:10 UTC (rev 443) @@ -0,0 +1,1925 @@ +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> + +<glade-interface> + +<widget class="GtkWindow" id="newrecord"> + <property name="visible">True</property> + <property name="title" translatable="yes">New Entry</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="icon">logo_mini.png</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + <signal name="destroy" handler="quit" last_modification_time="Sun, 23 Sep 2007 20:55:46 GMT"/> + + <child> + <widget class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkNotebook" id="notebook2"> + <property name="border_width">9</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="show_tabs">True</property> + <property name="show_border">True</property> + <property name="tab_pos">GTK_POS_TOP</property> + <property name="scrollable">False</property> + <property name="enable_popup">False</property> + + <child> + <widget class="GtkVBox" id="vbox27"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkFrame" id="frame19"> + <property name="border_width">4</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment22"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table28"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">4</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label156"> + <property name="width_request">120</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Title:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_title"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label161"> + <property name="visible">True</property> + <property name="label" translatable="yes">GPX File:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_gpxfile"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button25"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-open</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_selectfile_clicked" last_modification_time="Mon, 23 Oct 2006 10:40:57 GMT"/> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button24"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Calculate Values</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calculatevalues_clicked" last_modification_time="Mon, 23 Oct 2006 10:41:32 GMT"/> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Sport:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkComboBoxEntry" id="rcd_sport"> + <property name="width_request">134</property> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="has_frame">True</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label-2147483646"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Main</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame24"> + <property name="border_width">4</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment28"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table31"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">4</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label8"> + <property name="width_request">120</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Distance (Km):</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button10"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Calculate</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calcdistance_clicked" last_modification_time="Mon, 15 May 2006 18:26:54 GMT"/> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Time:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkSpinButton" id="rcd_hour"> + <property name="width_request">47</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">True</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">False</property> + <property name="wrap">False</property> + <property name="adjustment">0 0 23 1 2 2</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label35"> + <property name="visible">True</property> + <property name="label" translatable="yes">:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkSpinButton" id="rcd_min"> + <property name="width_request">47</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">True</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">False</property> + <property name="wrap">False</property> + <property name="adjustment">0 0 59 1 2 2</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label36"> + <property name="visible">True</property> + <property name="label" translatable="yes">:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkSpinButton" id="rcd_second"> + <property name="width_request">42</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">False</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">False</property> + <property name="wrap">False</property> + <property name="adjustment">0 0 59 1 2 2</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_distance"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button11"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Calculate</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calctime_clicked" last_modification_time="Mon, 15 May 2006 18:27:10 GMT"/> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label6"> + <property name="width_request">60</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Date:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox5"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkEntry" id="rcd_date"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> + <property name="width_chars">10</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label28"> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button7"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calendar_clicked" last_modification_time="Sun, 02 Apr 2006 18:37:59 GMT"/> + + <child> + <widget class="GtkImage" id="image2"> + <property name="visible">True</property> + <property name="stock">gtk-index</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="lblTime"> + <property name="visible">True</property> + <property name="label" translatable="yes">Time:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkEntry" id="rcd_time"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">*</property> + <property name="activates_default">False</property> + <property name="width_chars">10</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label-2147483648"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>General</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="Velocity"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment27"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table30"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">1</property> + <property name="n_columns">5</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label134"> + <property name="width_request">120</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Max (km/h):</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_maxvel"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label133"> + <property name="visible">True</property> + <property name="label" translatable="yes">Velocity (km/h)</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button12"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Calculate</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calcaverage_clicked" last_modification_time="Mon, 15 May 2006 18:27:33 GMT"/> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_average"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label162"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Velocity</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + <packing> + <property name="tab_expand">False</property> + <property name="tab_fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Quick Entry</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">tab</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox26"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkFrame" id="frame20"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment23"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table23"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">1</property> + <property name="n_columns">5</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label138"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Max (min/km):</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_maxpace"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label137"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Pace (min/km):</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_pace"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="button43"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Calculate</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_calcpace_clicked" last_modification_time="Tue, 29 Jan 2008 21:42:09 GMT"/> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label162"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Pace</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame21"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment24"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table24"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">1</property> + <property name="n_columns">5</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label139"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Ascent:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_upositive"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label140"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Descent:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rcd_unegative"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">7</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label163"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Accumulated Altitude Change</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame22"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + + <child> + <widget class="GtkAlignment" id="alignment25"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">12</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table25"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">6</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">5</property> + + <child> + <widget class="GtkLabel" id="label142"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Max (bpm):</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label143"> + <property name="width_request">110</property> + <property name="visible">True</property> + <property n... [truncated message content] |
From: <jb...@us...> - 2009-12-26 03:14:33
|
Revision: 442 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=442&view=rev Author: jblance Date: 2009-12-26 03:14:24 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Incorporate time into record display 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 2009-12-26 02:19:28 UTC (rev 441) +++ pytrainer/trunk/glade/pytrainer.glade 2009-12-26 03:14:24 UTC (rev 442) @@ -940,6 +940,7 @@ <property name="y_options"></property> </packing> </child> + <child> <widget class="GtkLabel" id="record_unegative"> @@ -1110,7 +1111,7 @@ </packing> </child> - <child> +<!-- <child> <widget class="GtkLabel" id="label11145"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Date Time:</b></property> @@ -1137,7 +1138,36 @@ <property name="y_options"></property> </packing> </child> +--> + <child> + <widget class="GtkLabel" id="record_time"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> +<!-- <child> <widget class="GtkLabel" id="record_datetime"> <property name="visible">True</property> @@ -1193,7 +1223,7 @@ <property name="y_options"></property> </packing> </child> - +--> <child> <widget class="GtkLabel" id="record_pace"> <property name="visible">True</property> Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-26 02:19:28 UTC (rev 441) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-26 03:14:24 UTC (rev 442) @@ -198,13 +198,13 @@ date_time_utc = record_list[16] if date_time_local is not None: #Have a local time stored in DB dateTime = dateutil.parser.parse(date_time_local) - recordDateTime = dateTime.strftime("%Y-%m-%d %H:%M:%S") - recordDateTimeOffset = dateTime.strftime("%z") else: #No local time in DB - dateTime = dateutil.parser.parse(date_time_utc) - local_dateTime = dateTime.astimezone(tzlocal()) #datetime with localtime offset (using value from OS) - recordDateTime = local_dateTime.strftime("%Y-%m-%d %H:%M:%S") - recordDateTimeOffset = local_dateTime.strftime("%z") + tmpDateTime = dateutil.parser.parse(date_time_utc) + dateTime = tmpDateTime.astimezone(tzlocal()) #datetime with localtime offset (using value from OS) + recordDateTime = dateTime.strftime("%Y-%m-%d %H:%M:%S") + recordDate = dateTime.strftime("%x") + recordTime = dateTime.strftime("%X") + recordDateTimeOffset = dateTime.strftime("%z") if configuration.getValue("pytraining","prf_us_system") == "True": self.record_distance.set_text("%0.2f" %km2miles(distance)) @@ -225,14 +225,16 @@ self.record_maxpace.set_text("%0.2f" %maxpace) self.record_sport.set_text(sport) - self.record_date.set_text(str(date)) + #self.record_date.set_text(str(date)) + self.record_date.set_text(recordDate) + self.record_time.set_text(recordTime) hour,min,sec=self.parent.date.second2time(int(record_list[3])) self.record_hour.set_text("%d" %hour) self.record_minute.set_text("%02d" %min) self.record_second.set_text("%02d" %sec) self.record_calories.set_text("%0.0f" %calories) - self.record_datetime.set_text(recordDateTime) - self.record_datetime_offset.set_text(recordDateTimeOffset) + #self.record_datetime.set_text(recordDateTime) + #self.record_datetime_offset.set_text(recordDateTimeOffset) self.record_title.set_text(title) buffer = self.record_comments.get_buffer() start,end = buffer.get_bounds() Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-26 02:19:28 UTC (rev 441) +++ pytrainer/trunk/pytrainer/main.py 2009-12-26 03:14:24 UTC (rev 442) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#441" + self.version ="1.7.0_svn#442" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-26 02:19:34
|
Revision: 441 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=441&view=rev Author: jblance Date: 2009-12-26 02:19:28 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Fix for calorie count Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-26 01:46:55 UTC (rev 440) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-26 02:19:28 UTC (rev 441) @@ -192,16 +192,19 @@ maxspeed = self.parseFloat(record_list[12]) #to review maxpace = self.parseFloat(record_list[13]) - #Get datetime from date_time_utc and create a local datetime... + #Get datetime from DB, use local time if available otherwise use date_time_utc and create a local datetime... #TODO get data from date_time_local and parse - dateTime = dateutil.parser.parse(record_list[16]) - timezone = dateTime.tzname() - if timezone == 'UTC': #got a zulu time - local_dateTime = dateTime.astimezone(tzlocal()) #datetime with localtime offset (from OS) - else: - local_dateTime = dateTime #use datetime as supplied - recordDateTime = local_dateTime.strftime("%Y-%m-%d %H:%M:%S") - recordDateTimeOffset = local_dateTime.strftime("%z") + date_time_local = record_list[17] + date_time_utc = record_list[16] + if date_time_local is not None: #Have a local time stored in DB + dateTime = dateutil.parser.parse(date_time_local) + recordDateTime = dateTime.strftime("%Y-%m-%d %H:%M:%S") + recordDateTimeOffset = dateTime.strftime("%z") + else: #No local time in DB + dateTime = dateutil.parser.parse(date_time_utc) + local_dateTime = dateTime.astimezone(tzlocal()) #datetime with localtime offset (using value from OS) + recordDateTime = local_dateTime.strftime("%Y-%m-%d %H:%M:%S") + recordDateTimeOffset = local_dateTime.strftime("%z") if configuration.getValue("pytraining","prf_us_system") == "True": self.record_distance.set_text("%0.2f" %km2miles(distance)) Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-26 01:46:55 UTC (rev 440) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-26 02:19:28 UTC (rev 441) @@ -157,9 +157,11 @@ trkpoints = tree.findall(trackPointTag) #start with the info at trkseg level #calories - maybe more than one, currently adding them together - calorieCollection = tree.findall(calorieTag) - for cal in calorieCollection: - self.calories += int(cal.text) + trks = tree.findall(trackTag) + for trk in trks: + calorieCollection = trk.findall(calorieTag) + for cal in calorieCollection: + self.calories += int(cal.text) retorno = [] his_vel = [] last_lat = "False" @@ -296,7 +298,7 @@ zuluDateTime = dateTime[0].strftime("%Y-%m-%dT%H:%M:%SZ") localDateTime = dateTime[1] logging.debug(gpxFile+" | "+ date_time.text +" | " + zuluDateTime) - print localDateTime + #print localDateTime #return date_time.text logging.debug("<<") return (zuluDateTime, localDateTime) Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-26 01:46:55 UTC (rev 440) +++ pytrainer/trunk/pytrainer/main.py 2009-12-26 02:19:28 UTC (rev 441) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#440" + self.version ="1.7.0_svn#441" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-26 01:47:06
|
Revision: 440 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=440&view=rev Author: jblance Date: 2009-12-26 01:46:55 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Initial changes for timezone support Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/ddbb.py pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/lib/sqliteUtils.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/record.py Modified: pytrainer/trunk/pytrainer/lib/ddbb.py =================================================================== --- pytrainer/trunk/pytrainer/lib/ddbb.py 2009-12-26 01:15:32 UTC (rev 439) +++ pytrainer/trunk/pytrainer/lib/ddbb.py 2009-12-26 01:46:55 UTC (rev 440) @@ -237,6 +237,7 @@ "maxpace":"float", "pace":"float", "maxbeats":"float", + "date_time_local":"varchar2(20)", "date_time_utc":"varchar2(20)"} columnsWaypoints = {"id_waypoint":"integer primary key autoincrement", "lat":"float", Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-26 01:15:32 UTC (rev 439) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-26 01:46:55 UTC (rev 440) @@ -174,7 +174,8 @@ return retorno date_ = tree.find(timeTag).text - mk_time = self.getDateTime(date_)[0] + #mk_time = self.getDateTime(date_)[0] #UTC Date + mk_time = self.getDateTime(date_)[1] #Local Date self.date = mk_time.strftime("%Y-%m-%d") for trkpoint in trkpoints: @@ -291,10 +292,12 @@ if date_time is None: print "Problems when retrieving start time from "+gpxFile+". Please check data integrity" return 0 - zuluDateTime = self.getDateTime(date_time.text)[0].strftime("%Y-%m-%dT%H:%M:%SZ") + dateTime = self.getDateTime(date_time.text) + zuluDateTime = dateTime[0].strftime("%Y-%m-%dT%H:%M:%SZ") + localDateTime = dateTime[1] logging.debug(gpxFile+" | "+ date_time.text +" | " + zuluDateTime) - print zuluDateTime + print localDateTime #return date_time.text logging.debug("<<") - return zuluDateTime + return (zuluDateTime, localDateTime) Modified: pytrainer/trunk/pytrainer/lib/sqliteUtils.py =================================================================== --- pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-26 01:15:32 UTC (rev 439) +++ pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-26 01:46:55 UTC (rev 440) @@ -231,9 +231,8 @@ #Test for columns that are not in the DB that should be result2 = [x for x in tempDict if x not in columnsDB] - #print result, result2 - logging.debug("Comparison result: "+str(result)) - logging.debug("Comparison result: "+str(result2)) + logging.debug("Columns in DB that shouldnt be: "+str(result)) + logging.debug("Columns missing from DB: "+str(result2)) table_ok = True if len(result) > 0: Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-26 01:15:32 UTC (rev 439) +++ pytrainer/trunk/pytrainer/main.py 2009-12-26 01:46:55 UTC (rev 440) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#439" + self.version ="1.7.0_svn#440" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/pytrainer/record.py =================================================================== --- pytrainer/trunk/pytrainer/record.py 2009-12-26 01:15:32 UTC (rev 439) +++ pytrainer/trunk/pytrainer/record.py 2009-12-26 01:46:55 UTC (rev 440) @@ -116,7 +116,7 @@ logging.debug('>>') time = self.date.time2second(list_options["rcd_time"]) average = self.parseFloatRecord(list_options["rcd_average"]) - keys= "date,sport,distance,time,beats,comments,average,calories,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats,date_time_utc" + keys= "date,sport,distance,time,beats,comments,average,calories,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats,date_time_utc,date_time_local" if (list_options["rcd_beats"] == ""): list_options["rcd_beats"] = 0 @@ -140,6 +140,7 @@ self.parseFloatRecord(list_options["rcd_pace"]), self.parseFloatRecord(list_options["rcd_maxbeats"]), list_options["date_time_utc"], + list_options["date_time_local"], ) logging.debug('<<') return keys,values @@ -208,9 +209,11 @@ summaryRecord['rcd_upositive'] = upositive summaryRecord['rcd_unegative'] = unegative if entry[1]=="": # coming from new track dialog (file opening) - summaryRecord['date_time_utc'] = gpx.getStartTimeFromGPX(gpxOrig) + summaryRecord['date_time_utc'], summaryRecord['date_time_local'] = gpx.getStartTimeFromGPX(gpxOrig) else: # coming from GPS device summaryRecord['date_time_utc'] = entry[1] + summaryRecord['date_time_local'] = entry[1] + print "#TODO fix record summaryRecord local and utc time..." logging.debug('summary: '+str(summaryRecord)) logging.debug('<<') return summaryRecord @@ -244,13 +247,13 @@ def getrecordInfo(self,id_record): logging.debug('--') return self.ddbb.select("records,sports", - "sports.name,date,distance,time,beats,comments,average,calories,id_record,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats,date_time_utc", + "sports.name,date,distance,time,beats,comments,average,calories,id_record,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats,date_time_utc,date_time_local", "id_record=\"%s\" and records.sport=sports.id_sports" %id_record) def getrecordList(self,date): logging.debug('--') return self.ddbb.select("records,sports", - "sports.name,date,distance,time,beats,comments,average,calories,id_record,maxspeed,maxbeats,date_time_utc", + "sports.name,date,distance,time,beats,comments,average,calories,id_record,maxspeed,maxbeats,date_time_utc,date_time_local", "date=\"%s\" and records.sport=sports.id_sports" %date) def getrecordPeriod(self,date_ini, date_end, sport=None): @@ -484,7 +487,7 @@ for gpxFile in os.listdir(gpxDir): #logging.debug('File: '+gpxFile) gpx = Gpx() - date_time = gpx.getStartTimeFromGPX(gpxDir+"/"+gpxFile) + date_time = gpx.getStartTimeFromGPX(gpxDir+"/"+gpxFile)[0] if date_time != 0: logging.debug('File: '+gpxFile+' | Date: '+date_time) id_record = gpxFile.partition('.')[0] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-26 01:15:42
|
Revision: 439 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=439&view=rev Author: jblance Date: 2009-12-26 01:15:32 +0000 (Sat, 26 Dec 2009) Log Message: ----------- More DB check fixes Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/sqliteUtils.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/lib/sqliteUtils.py =================================================================== --- pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-26 01:06:05 UTC (rev 438) +++ pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-26 01:15:32 UTC (rev 439) @@ -266,8 +266,8 @@ def addColumn(self,tableName,columnName,dataType): sql = "alter table %s add %s %s" %(tableName,columnName,dataType) try: - self.ddbbObject.freeExec(sql) + self.freeExec(sql) except: logging.error('Not able to add/change column '+columnName+' to table '+tableName) - traceback.print_exc() + #traceback.print_exc() Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-26 01:06:05 UTC (rev 438) +++ pytrainer/trunk/pytrainer/main.py 2009-12-26 01:15:32 UTC (rev 439) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#438" + self.version ="1.7.0_svn#439" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-26 01:06:12
|
Revision: 438 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=438&view=rev Author: jblance Date: 2009-12-26 01:06:05 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Some fixes to DB check functionality so it will create missing columns Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/sqliteUtils.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/lib/sqliteUtils.py =================================================================== --- pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-25 23:40:43 UTC (rev 437) +++ pytrainer/trunk/pytrainer/lib/sqliteUtils.py 2009-12-26 01:06:05 UTC (rev 438) @@ -19,6 +19,7 @@ #Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. import logging +import sys try: from sqlite3 import dbapi2 as sqlite except ImportError: @@ -222,17 +223,34 @@ columnsDB.update(newField) logging.debug('Useful data retrieved from '+str(tableName)+' in DB: '+str(columnsDB)) - # http://mail.python.org/pipermail/python-list/2002-May/142854.html - tempDict = dict(zip(columns,columns)) + # http://mail.python.org/pipermail/python-list/2002-May/142854.html - not correct URL.... + #tempDict = dict(zip(columns,columns)) + tempDict = dict(columns) + #Test for columns that are in DB that shouldn't be result = [x for x in columnsDB if x not in tempDict] + #Test for columns that are not in the DB that should be + result2 = [x for x in tempDict if x not in columnsDB] + + #print result, result2 logging.debug("Comparison result: "+str(result)) + logging.debug("Comparison result: "+str(result2)) - if len(result) > 0: # may have also different data type - logging.debug('Found columns missed in DB: '+ str(result)) + table_ok = True + if len(result) > 0: + logging.debug('Found columns in DB that should not be: '+ str(result)) + table_ok = False for entry in result: + logging.debug('Column '+ str(entry) +' in DB but not in definition') + print "Column %s in DB but not in definition - please fix manually" % (str(entry)) + print "#TODO need to add auto fix code" + sys.exit(1) + if len(result2) > 0: # may have also different data type + logging.debug('Found columns missed in DB: '+ str(result2)) + table_ok = False + for entry in result2: logging.debug('Column '+ str(entry) +' not found in DB') - self.addColumn(tableName,str(entry),columnsDB[entry]) - else: + self.addColumn(tableName,str(entry),columns[entry]) + if table_ok: logging.info('Table '+ str(tableName) +' is OK') logging.debug('<<') Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-25 23:40:43 UTC (rev 437) +++ pytrainer/trunk/pytrainer/main.py 2009-12-26 01:06:05 UTC (rev 438) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#437" + self.version ="1.7.0_svn#438" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-25 23:40:51
|
Revision: 437 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=437&view=rev Author: jblance Date: 2009-12-25 23:40:43 +0000 (Fri, 25 Dec 2009) Log Message: ----------- Added support to force DB check by presence of FORCE_DB_CHECK file Modified Paths: -------------- pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-25 23:11:26 UTC (rev 436) +++ pytrainer/trunk/pytrainer/main.py 2009-12-25 23:40:43 UTC (rev 437) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#436" + self.version ="1.7.0_svn#437" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? @@ -127,6 +127,11 @@ self.ddbb.connect() self.record = Record(data_path,self) + #Look for force check file + check_file = self.data_path+"/FORCE_DB_CHECK" + if os.path.isfile(check_file): + self.check = True + os.remove(check_file) if self.check: #self.migrationCheck() self.sanityCheck() # Deprecates migrationCheck. Review first installation and version control This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-25 23:11:34
|
Revision: 436 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=436&view=rev Author: jblance Date: 2009-12-25 23:11:26 +0000 (Fri, 25 Dec 2009) Log Message: ----------- Add garmintools to setup.py, html encode start/finish info windows for Googlemaps 3 display Modified Paths: -------------- pytrainer/trunk/pytrainer/extensions/googlemaps.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/setup.py Modified: pytrainer/trunk/pytrainer/extensions/googlemaps.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/googlemaps.py 2009-12-25 22:59:39 UTC (rev 435) +++ pytrainer/trunk/pytrainer/extensions/googlemaps.py 2009-12-25 23:11:26 UTC (rev 436) @@ -89,6 +89,8 @@ time = "%d%s %02d%s" % (timeHours, _("h"), timeMin, _("min")) startinfo = "<div id='info_content'>%s: %s</div>" % (info[0][0], info[0][9]) finishinfo = "<div id='info_content'>%s: %s<br>%s: %s%s</div>" % (_("Time"), time, _("Distance"), info[0][2], _("km")) + 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) else: logging.debug("Using Google Maps version 2 API") Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-25 22:59:39 UTC (rev 435) +++ pytrainer/trunk/pytrainer/main.py 2009-12-25 23:11:26 UTC (rev 436) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#435" + self.version ="1.7.0_svn#436" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/setup.py =================================================================== --- pytrainer/trunk/setup.py 2009-12-25 22:59:39 UTC (rev 435) +++ pytrainer/trunk/setup.py 2009-12-25 23:11:26 UTC (rev 436) @@ -36,6 +36,7 @@ install_plugin("garmin-hr-file"), install_plugin("garmin-tcxv2"), install_plugin("googleearth"), + install_plugin("garmintools"), install_extension("wordpress"), (install_locale("es")), (install_locale("ca")), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-25 22:59:48
|
Revision: 435 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=435&view=rev Author: jblance Date: 2009-12-25 22:59:39 +0000 (Fri, 25 Dec 2009) Log Message: ----------- Update TCXv2 plugin to cater for files with multiple activities per file Modified Paths: -------------- pytrainer/trunk/plugins/garmin-tcxv2/garmin-tcxv2.py pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/plugins/garmin-tcxv2/garmin-tcxv2.py =================================================================== --- pytrainer/trunk/plugins/garmin-tcxv2/garmin-tcxv2.py 2009-12-17 09:20:40 UTC (rev 434) +++ pytrainer/trunk/plugins/garmin-tcxv2/garmin-tcxv2.py 2009-12-25 22:59:39 UTC (rev 435) @@ -51,15 +51,19 @@ importfiles = [] if not selectedFiles: #Nothing selected return importfiles - for filename in selectedFiles: - if self.valid_input_file(filename): - if not self.inDatabase(filename): - sport = self.getSport(filename) - gpxfile = "%s/garmin-tcxv2-%d.gpx" % (self.tmpdir, len(importfiles)) - self.createGPXfile(gpxfile, filename) - importfiles.append((gpxfile, sport)) - else: - logging.debug("%s already in database. Skipping import." % (filename,) ) + for filename in selectedFiles: #Multiple files + if self.valid_input_file(filename): #TODO could consolidate tree generation here + tree = etree.ElementTree(file=filename) + #Possibly multiple entries in file + activities = self.getActivities(tree) + for activity in activities: + if not self.inDatabase(activity): + sport = self.getSport(activity) + gpxfile = "%s/garmin-tcxv2-%d.gpx" % (self.tmpdir, len(importfiles)) + self.createGPXfile(gpxfile, activity) + importfiles.append((gpxfile, sport)) + else: + logging.debug("File:%s activity %d already in database. Skipping import." % (filename, activities.index(activity)) ) else: logging.info("File %s failed validation" % (filename)) logging.debug("<<") @@ -76,42 +80,46 @@ validator = xmlValidator() return validator.validateXSL(filename, xslfile) - def inDatabase(self, filename): + def getActivities(self, tree): + '''Function to return all activities in Garmin training center version 2 file + ''' + root = tree.getroot() + activities = root.findall(".//{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity") + return activities + + def inDatabase(self, activity): #comparing date and start time (sport may have been changed in DB after import) - time = self.detailsFromTCX(filename) + time = self.detailsFromTCX(activity) if self.parent.parent.ddbb.select("records","*","date_time_utc=\"%s\"" % (time)): return True else: return False - def getSport(self, filename): + def getSport(self, activity): #return sport from file or overide if present if self.sport: return self.sport - tree = etree.ElementTree(file=filename) - root = tree.getroot() - sportElement = root.find(".//{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity") + #sportElement = activity.find(".//{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Activity") try: - sport = sportElement.get("Sport") + sport = activity.get("Sport") except: sport = "import" return sport - def detailsFromTCX(self, filename): - tree = etree.ElementTree(file=filename) - root = tree.getroot() - timeElement = root.find(".//{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Id") + def detailsFromTCX(self, activity): + timeElement = activity.find(".//{http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2}Id") if timeElement is None: return None else: return timeElement.text - def createGPXfile(self, gpxfile, filename): + def createGPXfile(self, gpxfile, activity): """ Function to transform a Garmin Training Center v2 Track to a valid GPX+ file """ xslt_doc = etree.parse(self.data_path+"/translate.xsl") transform = etree.XSLT(xslt_doc) - xml_doc = etree.parse(filename) + #xml_doc = etree.parse(filename) + xml_doc = activity result_tree = transform(xml_doc) result_tree.write(gpxfile, xml_declaration=True) Modified: pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl =================================================================== --- pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-17 09:20:40 UTC (rev 434) +++ pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-25 22:59:39 UTC (rev 435) @@ -17,8 +17,8 @@ xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" > <xsl:value-of select="$newline"/> - <xsl:variable name="sport"><xsl:value-of select="t:TrainingCenterDatabase/t:Activities/t:Activity/@Sport"/></xsl:variable> - <xsl:variable name="time"><xsl:value-of select="t:TrainingCenterDatabase/t:Activities/t:Activity/t:Id"/></xsl:variable> + <xsl:variable name="sport"><xsl:value-of select="t:Activity/@Sport"/></xsl:variable> + <xsl:variable name="time"><xsl:value-of select="t:Activity/t:Id"/></xsl:variable> <xsl:variable name="name"><xsl:value-of select="$sport"/><xsl:value-of select="substring($time, 1,10)"/></xsl:variable> <metadata><xsl:value-of select="$newline"/> <name><xsl:value-of select="$name"/></name><xsl:value-of select="$newline"/> @@ -26,7 +26,7 @@ <time><xsl:value-of select="$time"/></time><xsl:value-of select="$newline"/> </metadata><xsl:value-of select="$newline"/> <trk><xsl:value-of select="$newline"/> - <xsl:for-each select="t:TrainingCenterDatabase/t:Activities/t:Activity/t:Lap"> + <xsl:for-each select="t:Activity/t:Lap"> <trkseg><xsl:value-of select="$newline"/> <xsl:variable name="calories"><xsl:value-of select="t:Calories"/></xsl:variable> <xsl:for-each select="t:Track/t:Trackpoint"> @@ -61,7 +61,7 @@ <!-- Lap Data --> <xsl:value-of select="$newline"/> <extensions><xsl:value-of select="$newline"/> - <xsl:for-each select="t:TrainingCenterDatabase/t:Activities/t:Activity/t:Lap"> + <xsl:for-each select="t:Activity/t:Lap"> <xsl:variable name="vIndex"> <xsl:number count="t:Lap"/> </xsl:variable> @@ -70,7 +70,7 @@ <xsl:variable name="stlat"><xsl:value-of select="t:Track/t:Trackpoint[1]/t:Position/t:LatitudeDegrees"/></xsl:variable> <xsl:variable name="stlon"><xsl:value-of select="t:Track/t:Trackpoint[1]/t:Position/t:LongitudeDegrees"/></xsl:variable> <gpxdata:startPoint lat="{$stlat}" lon="{$stlon}"/><xsl:value-of select="$newline"/> - <xsl:variable name="cnt"><xsl:value-of select="count(t:Track/t:Trackpoint/t:Position)"/></xsl:variable> + <xsl:variable name="cnt"><xsl:value-of select="count(t:Track/t:Trackpoint/t:Position)-1"/></xsl:variable> <xsl:variable name="endlat"><xsl:value-of select="t:Track/t:Trackpoint[number($cnt)]/t:Position/t:LatitudeDegrees"/></xsl:variable> <xsl:variable name="endlon"><xsl:value-of select="t:Track/t:Trackpoint[number($cnt)]/t:Position/t:LongitudeDegrees"/></xsl:variable> <gpxdata:endPoint lat="{$endlat}" lon="{$endlon}"/><xsl:value-of select="$newline"/> Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-17 09:20:40 UTC (rev 434) +++ pytrainer/trunk/pytrainer/main.py 2009-12-25 22:59:39 UTC (rev 435) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#434" + self.version ="1.7.0_svn#435" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-17 09:20:48
|
Revision: 434 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=434&view=rev Author: jblance Date: 2009-12-17 09:20:40 +0000 (Thu, 17 Dec 2009) Log Message: ----------- Some local date work - added display of date time to record, moved to dateutils parsing in gpx Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/record.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2009-12-14 10:16:39 UTC (rev 433) +++ pytrainer/trunk/glade/pytrainer.glade 2009-12-17 09:20:40 UTC (rev 434) @@ -459,7 +459,7 @@ <child> <widget class="GtkTable" id="table13"> <property name="visible">True</property> - <property name="n_rows">9</property> + <property name="n_rows">10</property> <property name="n_columns">6</property> <property name="homogeneous">False</property> <property name="row_spacing">6</property> @@ -522,6 +522,34 @@ </child> <child> + <widget class="GtkLabel" id="record_calories"> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> <widget class="GtkLabel" id="ddsddsdsdsds"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Sport:</b></property> @@ -663,9 +691,9 @@ </child> <child> - <widget class="GtkLabel" id="label11140"> + <widget class="GtkLabel" id="label11144"> <property name="visible">True</property> - <property name="label" translatable="yes"><b>Comments:</b></property> + <property name="label" translatable="yes"><b>Calories:</b></property> <property name="use_underline">False</property> <property name="use_markup">True</property> <property name="justify">GTK_JUSTIFY_LEFT</property> @@ -689,6 +717,33 @@ <property name="y_options"></property> </packing> </child> + <child> + <widget class="GtkLabel" id="label11140"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Comments:</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">6</property> + <property name="bottom_attach">7</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> <child> <widget class="GtkLabel" id="r_maxspeed_unit"> @@ -1056,6 +1111,90 @@ </child> <child> + <widget class="GtkLabel" id="label11145"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Date Time:</b></property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="record_datetime"> + <property name="visible">True</property> + <property name="label" translatable="yes"> </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="record_datetime_offset"> + <property name="visible">True</property> + <property name="label" translatable="yes">m</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> <widget class="GtkLabel" id="record_pace"> <property name="visible">True</property> <property name="label" translatable="yes"> </property> @@ -1168,6 +1307,34 @@ </child> <child> + <widget class="GtkLabel" id="r_calories_unit"> + <property name="visible">True</property> + <property name="label" translatable="yes">Cal</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> <widget class="GtkScrolledWindow" id="scrolledwindow6"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -1200,8 +1367,8 @@ <packing> <property name="left_attach">0</property> <property name="right_attach">6</property> - <property name="top_attach">6</property> - <property name="bottom_attach">7</property> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> </packing> </child> @@ -2093,7 +2260,7 @@ </child> <child> - <widget class="GtkLabel" id="record_calories"> + <widget class="GtkLabel" id="record_calories2"> <!-- not sure what this one is/... --> <property name="visible">True</property> <property name="label" translatable="yes"> </property> <property name="use_underline">False</property> Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-14 10:16:39 UTC (rev 433) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-17 09:20:40 UTC (rev 434) @@ -21,6 +21,9 @@ import datetime import matplotlib +import dateutil.parser +from dateutil.tz import * # for tzutc() + from SimpleGladeApp import * from popupmenu import PopupMenu from aboutdialog import About @@ -188,6 +191,17 @@ pace = self.parseFloat(record_list[14]) #to review maxspeed = self.parseFloat(record_list[12]) #to review maxpace = self.parseFloat(record_list[13]) + + #Get datetime from date_time_utc and create a local datetime... + #TODO get data from date_time_local and parse + dateTime = dateutil.parser.parse(record_list[16]) + timezone = dateTime.tzname() + if timezone == 'UTC': #got a zulu time + local_dateTime = dateTime.astimezone(tzlocal()) #datetime with localtime offset (from OS) + else: + local_dateTime = dateTime #use datetime as supplied + recordDateTime = local_dateTime.strftime("%Y-%m-%d %H:%M:%S") + recordDateTimeOffset = local_dateTime.strftime("%z") if configuration.getValue("pytraining","prf_us_system") == "True": self.record_distance.set_text("%0.2f" %km2miles(distance)) @@ -214,6 +228,8 @@ self.record_minute.set_text("%02d" %min) self.record_second.set_text("%02d" %sec) self.record_calories.set_text("%0.0f" %calories) + self.record_datetime.set_text(recordDateTime) + self.record_datetime_offset.set_text(recordDateTimeOffset) self.record_title.set_text(title) buffer = self.record_comments.get_buffer() start,end = buffer.get_bounds() Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 10:16:39 UTC (rev 433) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-17 09:20:40 UTC (rev 434) @@ -28,6 +28,8 @@ import logging from xmlUtils import XMLParser from lxml import etree +import dateutil.parser +from dateutil.tz import * # for tzutc() # use of namespaces is mandatory if defined mainNS = string.Template(".//{http://www.topografix.com/GPX/1/1}$tag") @@ -92,7 +94,7 @@ timeResult = trk.find(timeTag) if timeResult is not None: time_ = timeResult.text # check timezone - mk_time = self.geDatetTime(time_) + mk_time = self.getDateTime(time_)[0] time_ = time.strftime("%Y-%m-%d", mk_time) else: time_ = _("No Data") @@ -101,22 +103,18 @@ return tracks def getDateTime(self, time_): - try: - theTime = datetime.strptime(time_, "%Y-%m-%dT%H:%M:%SZ") - return theTime - except: - pass - try: - #Time includes UTC offset... - #2009-12-02T12:58:55+01:00 - #TODO Need to sort time offset etc.... - offset = time_[-6:] - time_ = time_[:-6] #remove last 6 chars - ie UTC offset eg +01:00 - theTime = datetime.strptime(time_, "%Y-%m-%dT%H:%M:%S") - return theTime - except: - pass - return None + # Time can be in multiple formats + # - zulu 2009-12-15T09:00Z + # - local ISO8601 2009-12-15T10:00+01:00 + dateTime = dateutil.parser.parse(time_) + timezone = dateTime.tzname() + if timezone == 'UTC': #got a zulu time + local_dateTime = dateTime.astimezone(tzlocal()) #datetime with localtime offset (from OS) + else: + local_dateTime = dateTime #use datetime as supplied + utc_dateTime = dateTime.astimezone(tzutc()) #datetime with 00:00 offset + #print utc_dateTime, local_dateTime + return (utc_dateTime,local_dateTime) def getUnevenness(self): return self.upositive,self.unegative @@ -176,7 +174,7 @@ return retorno date_ = tree.find(timeTag).text - mk_time = self.getDateTime(date_) + mk_time = self.getDateTime(date_)[0] self.date = mk_time.strftime("%Y-%m-%d") for trkpoint in trkpoints: @@ -201,7 +199,7 @@ timeResult = trkpoint.find(timeTag) if timeResult is not None: date_ = timeResult.text - mk_time = self.getDateTime(date_) + mk_time = self.getDateTime(date_)[0] time_ = time.mktime(mk_time.timetuple()) #Convert date to seconds else: time_ = 1 @@ -286,14 +284,17 @@ Retrieves start time from a given gpx file args: - gpxFile: path to xml file (gpx format) - returns: string with start time - 2008-03-22T12:17:43Z or 2009-12-02T12:58:55+01:00 + returns: string with start time - 2008-03-22T12:17:43Z """ logging.debug(">>") date_time = self.tree.find(timeTag) #returns first instance found if date_time is None: print "Problems when retrieving start time from "+gpxFile+". Please check data integrity" return 0 - logging.debug(gpxFile+" | "+ date_time.text) + zuluDateTime = self.getDateTime(date_time.text)[0].strftime("%Y-%m-%dT%H:%M:%SZ") + logging.debug(gpxFile+" | "+ date_time.text +" | " + zuluDateTime) + print zuluDateTime + #return date_time.text logging.debug("<<") - return date_time.text + return zuluDateTime Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-14 10:16:39 UTC (rev 433) +++ pytrainer/trunk/pytrainer/main.py 2009-12-17 09:20:40 UTC (rev 434) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#433" + self.version ="1.7.0_svn#434" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/pytrainer/record.py =================================================================== --- pytrainer/trunk/pytrainer/record.py 2009-12-14 10:16:39 UTC (rev 433) +++ pytrainer/trunk/pytrainer/record.py 2009-12-17 09:20:40 UTC (rev 434) @@ -244,13 +244,13 @@ def getrecordInfo(self,id_record): logging.debug('--') return self.ddbb.select("records,sports", - "sports.name,date,distance,time,beats,comments,average,calories,id_record,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats", + "sports.name,date,distance,time,beats,comments,average,calories,id_record,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats,date_time_utc", "id_record=\"%s\" and records.sport=sports.id_sports" %id_record) def getrecordList(self,date): logging.debug('--') return self.ddbb.select("records,sports", - "sports.name,date,distance,time,beats,comments,average,calories,id_record,maxspeed,maxbeats", + "sports.name,date,distance,time,beats,comments,average,calories,id_record,maxspeed,maxbeats,date_time_utc", "date=\"%s\" and records.sport=sports.id_sports" %date) def getrecordPeriod(self,date_ini, date_end, sport=None): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-14 10:16:47
|
Revision: 433 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=433&view=rev Author: jblance Date: 2009-12-14 10:16:39 +0000 (Mon, 14 Dec 2009) Log Message: ----------- Added 'proper' lap support to GPX+ for tcxv2 and garmintools file imports (--gmaps3 to see lap info) Modified Paths: -------------- pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl pytrainer/trunk/plugins/garmintools/garmintools.py pytrainer/trunk/plugins/garmintools/translate.xsl pytrainer/trunk/pytrainer/extensions/googlemaps.py pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl =================================================================== --- pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-14 10:16:39 UTC (rev 433) @@ -58,6 +58,38 @@ </trkseg><xsl:value-of select="$newline"/> </xsl:for-each> </trk><xsl:value-of select="$newline"/> +<!-- Lap Data --> + <xsl:value-of select="$newline"/> + <extensions><xsl:value-of select="$newline"/> + <xsl:for-each select="t:TrainingCenterDatabase/t:Activities/t:Activity/t:Lap"> + <xsl:variable name="vIndex"> + <xsl:number count="t:Lap"/> + </xsl:variable> + <gpxdata:lap><xsl:value-of select="$newline"/> + <gpxdata:index><xsl:value-of select="$vIndex"/></gpxdata:index><xsl:value-of select="$newline"/> + <xsl:variable name="stlat"><xsl:value-of select="t:Track/t:Trackpoint[1]/t:Position/t:LatitudeDegrees"/></xsl:variable> + <xsl:variable name="stlon"><xsl:value-of select="t:Track/t:Trackpoint[1]/t:Position/t:LongitudeDegrees"/></xsl:variable> + <gpxdata:startPoint lat="{$stlat}" lon="{$stlon}"/><xsl:value-of select="$newline"/> + <xsl:variable name="cnt"><xsl:value-of select="count(t:Track/t:Trackpoint/t:Position)"/></xsl:variable> + <xsl:variable name="endlat"><xsl:value-of select="t:Track/t:Trackpoint[number($cnt)]/t:Position/t:LatitudeDegrees"/></xsl:variable> + <xsl:variable name="endlon"><xsl:value-of select="t:Track/t:Trackpoint[number($cnt)]/t:Position/t:LongitudeDegrees"/></xsl:variable> + <gpxdata:endPoint lat="{$endlat}" lon="{$endlon}"/><xsl:value-of select="$newline"/> + <gpxdata:startTime><xsl:value-of select="@StartTime"/></gpxdata:startTime><xsl:value-of select="$newline"/> + <gpxdata:elapsedTime><xsl:value-of select="t:TotalTimeSeconds"/></gpxdata:elapsedTime><xsl:value-of select="$newline"/> + <gpxdata:calories><xsl:value-of select="t:Calories"/></gpxdata:calories><xsl:value-of select="$newline"/> + <gpxdata:distance><xsl:value-of select="t:DistanceMeters"/></gpxdata:distance><xsl:value-of select="$newline"/> + <!-- <gpxdata:trackReference>Reference information for the track which corresponds to this lap type="trackReferenceType"</gpxdata:trackReference><xsl:value-of select="$newline"/> --> + <gpxdata:summary><xsl:value-of select="$newline"/> + <MaximumSpeed kind="max"><xsl:value-of select="t:MaximumSpeed"/></MaximumSpeed><xsl:value-of select="$newline"/> + <AverageHeartRateBpm kind="avg"><xsl:value-of select="t:AverageHeartRateBpm/t:Value"/></AverageHeartRateBpm><xsl:value-of select="$newline"/> + <MaximumHeartRateBpm kind="max"><xsl:value-of select="t:MaximumHeartRateBpm/t:Value"/></MaximumHeartRateBpm><xsl:value-of select="$newline"/> + </gpxdata:summary><xsl:value-of select="$newline"/> + <gpxdata:trigger><xsl:value-of select="t:TriggerMethod"/></gpxdata:trigger><xsl:value-of select="$newline"/> + <gpxdata:intensity><xsl:value-of select="t:Intensity"/></gpxdata:intensity><xsl:value-of select="$newline"/> + </gpxdata:lap><xsl:value-of select="$newline"/> + </xsl:for-each> + </extensions><xsl:value-of select="$newline"/> + </gpx><xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> Modified: pytrainer/trunk/plugins/garmintools/garmintools.py =================================================================== --- pytrainer/trunk/plugins/garmintools/garmintools.py 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/plugins/garmintools/garmintools.py 2009-12-14 10:16:39 UTC (rev 433) @@ -106,7 +106,6 @@ sport = sport.capitalize() except: sport = "import" - print sport return sport def detailsFromFile(self, tree): @@ -116,7 +115,7 @@ if pointElement is not None: #Try to get time from point time = pointElement.get("time") - print "TODO first time is different from time used by gpsbabel and has locale embedded" + time + print "#TODO first time is different from time used by gpsbabel and has locale embedded: " + time return time return None Modified: pytrainer/trunk/plugins/garmintools/translate.xsl =================================================================== --- pytrainer/trunk/plugins/garmintools/translate.xsl 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/plugins/garmintools/translate.xsl 2009-12-14 10:16:39 UTC (rev 433) @@ -46,6 +46,37 @@ <xsl:value-of select="$newline"/> </trkseg><xsl:value-of select="$newline"/> </trk><xsl:value-of select="$newline"/> + +<!-- Lap Data --> + <xsl:value-of select="$newline"/> + <extensions><xsl:value-of select="$newline"/> + <xsl:for-each select="root/lap"> + <xsl:variable name="vIndex"> + <xsl:number count="lap"/> + </xsl:variable> + <gpxdata:lap><xsl:value-of select="$newline"/> + <gpxdata:index><xsl:value-of select="$vIndex"/></gpxdata:index><xsl:value-of select="$newline"/> + <xsl:variable name="stlat"><xsl:value-of select="begin_pos/@lat"/></xsl:variable> + <xsl:variable name="stlon"><xsl:value-of select="begin_pos/@lon"/></xsl:variable> + <gpxdata:startPoint lat="{$stlat}" lon="{$stlon}"/><xsl:value-of select="$newline"/> + <xsl:variable name="endlat"><xsl:value-of select="end_pos/@lat"/></xsl:variable> + <xsl:variable name="endlon"><xsl:value-of select="end_pos/@lon"/></xsl:variable> + <gpxdata:endPoint lat="{$endlat}" lon="{$endlon}"/><xsl:value-of select="$newline"/> + <gpxdata:startTime><xsl:value-of select="@start"/></gpxdata:startTime><xsl:value-of select="$newline"/> + <gpxdata:elapsedTime><xsl:value-of select="@duration"/></gpxdata:elapsedTime><xsl:value-of select="$newline"/> <!-- Needs converting to seconds --> + <gpxdata:calories><xsl:value-of select="calories"/></gpxdata:calories><xsl:value-of select="$newline"/> + <gpxdata:distance><xsl:value-of select="@distance"/></gpxdata:distance><xsl:value-of select="$newline"/> + <gpxdata:summary><xsl:value-of select="$newline"/> + <MaximumSpeed kind="max"><xsl:value-of select="max_speed"/></MaximumSpeed><xsl:value-of select="$newline"/> + <AverageHeartRateBpm kind="avg"><xsl:value-of select="avg_hr"/></AverageHeartRateBpm><xsl:value-of select="$newline"/> + <MaximumHeartRateBpm kind="max"><xsl:value-of select="max_hr"/></MaximumHeartRateBpm><xsl:value-of select="$newline"/> + </gpxdata:summary><xsl:value-of select="$newline"/> + <gpxdata:trigger><xsl:value-of select="@trigger"/></gpxdata:trigger><xsl:value-of select="$newline"/> + <gpxdata:intensity><xsl:value-of select="intensity"/></gpxdata:intensity><xsl:value-of select="$newline"/> + </gpxdata:lap><xsl:value-of select="$newline"/> + </xsl:for-each> + </extensions><xsl:value-of select="$newline"/> + </gpx><xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> Modified: pytrainer/trunk/pytrainer/extensions/googlemaps.py =================================================================== --- pytrainer/trunk/pytrainer/extensions/googlemaps.py 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/pytrainer/extensions/googlemaps.py 2009-12-14 10:16:39 UTC (rev 433) @@ -81,7 +81,7 @@ points = points.replace("\\","\\\\") if self.useGM3: logging.debug("Using Google Maps version 3 API") - laps = gpx.getLaps() # [](elapsedTime, lat, lon) + laps = gpx.getLaps() # [](elapsedTime, lat, lon, calories, distance) #"sports.name,date,distance,time,beats,comments,average,calories,id_record,title,upositive,unegative,maxspeed,maxpace,pace,maxbeats" info = self.record.getrecordInfo(id_record) timeHours = int(info[0][3]) / 3600 @@ -191,7 +191,7 @@ for lap in laps: lapNumber = laps.index(lap)+1 content += "var lap%dmarker = new google.maps.Marker({position: new google.maps.LatLng(%f, %f), icon: lapimage, map: map, title:\"Lap%d\"}); \n " % (lapNumber, float(lap[1]), float(lap[2]), lapNumber) - content += "var lap%d = new google.maps.InfoWindow({content: \"End of lap:%s<br>Elapsed time:%s\" });\n" % (lapNumber, lapNumber, lap[0]) + content += "var lap%d = new google.maps.InfoWindow({content: \"End of lap:%s<br>Elapsed time:%s<br>Distance:%s<br>Calories:%s\" });\n" % (lapNumber, lapNumber, lap[0], lap[4], lap[3]) content += "google.maps.event.addListener(lap%dmarker, 'click', function() { lap%d.open(map,lap%dmarker); });\n" % (lapNumber,lapNumber,lapNumber) content += ''' Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 10:16:39 UTC (rev 433) @@ -43,6 +43,10 @@ calorieTag = gpxdataNS.substitute(tag="calories") hrTag = gpxdataNS.substitute(tag="hr") cadTag = gpxdataNS.substitute(tag="cadence") +lapTag = gpxdataNS.substitute(tag="lap") +endPointTag = gpxdataNS.substitute(tag="endPoint") +elapsedTimeTag = gpxdataNS.substitute(tag="elapsedTime") +distanceTag = gpxdataNS.substitute(tag="distance") class Gpx: def __init__(self, data_path = None, filename = None, trkname = None): @@ -130,19 +134,18 @@ logging.debug(">>") lapInfo = [] tree = self.tree - date = tree.findtext(timeTag) - startTime = self.getDateTime(date) - trksegs = tree.findall(trackSegTag) - for trkseg in trksegs: - trkpts = trkseg.findall(trackPointTag) - trkpt = trkpts[-1] - lat = trkpt.get("lat") - lon = trkpt.get("lon") - temp = trkpt.findtext(timeTag) - time = self.getDateTime(temp) - elapsedTime = time - startTime - #print "Found time: %s, lat: %s lon: %s" % (elapsedTime, lat, lon) - lapInfo.append((elapsedTime, lat, lon)) + #date = tree.findtext(timeTag) + #startTime = self.getDateTime(date) + laps = tree.findall(lapTag) + for lap in laps: + endPoint = lap.find(endPointTag) + lat = endPoint.get("lat") + lon = endPoint.get("lon") + elapsedTime = lap.findtext(elapsedTimeTag) + calories = lap.findtext(calorieTag) + distance = lap.findtext(distanceTag) + #print "Found time: %s, lat: %s lon: %s cal: %s dist: %s " % (elapsedTime, lat, lon, calories, distance) + lapInfo.append((elapsedTime, lat, lon, calories, distance)) return lapInfo def _getValues(self): @@ -189,7 +192,6 @@ else: hr = 0 #get the cadence (if present) - #TODO cadResult = trkpoint.find(cadTag) if cadResult is not None: cadence = int(cadResult.text) Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-14 07:40:08 UTC (rev 432) +++ pytrainer/trunk/pytrainer/main.py 2009-12-14 10:16:39 UTC (rev 433) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#432" + self.version ="1.7.0_svn#433" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-14 07:40:16
|
Revision: 432 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=432&view=rev Author: jblance Date: 2009-12-14 07:40:08 +0000 (Mon, 14 Dec 2009) Log Message: ----------- Added cadence (rpm) support to record graph and tcxv2 plugin Modified Paths: -------------- pytrainer/trunk/glade/pytrainer.glade pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/recordgraph.py Modified: pytrainer/trunk/glade/pytrainer.glade =================================================================== --- pytrainer/trunk/glade/pytrainer.glade 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/glade/pytrainer.glade 2009-12-14 07:40:08 UTC (rev 432) @@ -1634,7 +1634,8 @@ <property name="items" translatable="yes">Profile Speed Pace -Heart Rate</property> +Heart Rate +Cadence</property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> <property name="focus_on_click">True</property> @@ -1680,6 +1681,7 @@ Speed Pace Heart Rate +Cadence </property> <property name="add_tearoffs">False</property> <property name="has_frame">True</property> Modified: pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl =================================================================== --- pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/plugins/garmin-tcxv2/translate.xsl 2009-12-14 07:40:08 UTC (rev 432) @@ -42,6 +42,11 @@ <gpxdata:hr><xsl:value-of select="t:HeartRateBpm/t:Value"/></gpxdata:hr><xsl:value-of select="$newline"/> </extensions><xsl:value-of select="$newline"/> </xsl:if> + <xsl:if test="t:Cadence"> + <extensions><xsl:value-of select="$newline"/> + <gpxdata:cadence><xsl:value-of select="t:Cadence"/></gpxdata:cadence><xsl:value-of select="$newline"/> + </extensions><xsl:value-of select="$newline"/> + </xsl:if> </trkpt><xsl:value-of select="$newline"/> </xsl:if> </xsl:for-each> Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-14 07:40:08 UTC (rev 432) @@ -19,6 +19,7 @@ import sys import logging import datetime +import matplotlib from SimpleGladeApp import * from popupmenu import PopupMenu @@ -227,6 +228,15 @@ if len(record_list)>0: self.record_vbox.set_sensitive(1) else: + #Remove graph + vboxChildren = self.record_vbox.get_children() + logging.debug('Vbox has %d children %s' % (len(vboxChildren), str(vboxChildren) )) + # ToDo: check why vertical container is shared + for child in vboxChildren: + #Remove all FigureCanvasGTK and NavigationToolbar2GTKAgg to stop double ups of graphs + if isinstance(child, matplotlib.backends.backend_gtkagg.FigureCanvasGTK) or isinstance(child, matplotlib.backends.backend_gtkagg.NavigationToolbar2GTKAgg): + logging.debug('Removing child: '+str(child)) + self.record_vbox.remove(child) self.record_vbox.set_sensitive(0) #logging.debug("Going to draw "+str(record_list)) self.drawarearecord.drawgraph(record_list) Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 07:40:08 UTC (rev 432) @@ -42,6 +42,7 @@ gpxdataNS = string.Template(".//{http://www.cluetrust.com/XML/GPXDATA/1/0}$tag") calorieTag = gpxdataNS.substitute(tag="calories") hrTag = gpxdataNS.substitute(tag="hr") +cadTag = gpxdataNS.substitute(tag="cadence") class Gpx: def __init__(self, data_path = None, filename = None, trkname = None): @@ -188,7 +189,12 @@ else: hr = 0 #get the cadence (if present) - #TODO + #TODO + cadResult = trkpoint.find(cadTag) + if cadResult is not None: + cadence = int(cadResult.text) + else: + cadence = 0 #get the time timeResult = trkpoint.find(timeTag) if timeResult is not None: @@ -238,7 +244,7 @@ if vel>self.maxvel: self.maxvel=vel self.total_time += time_ - retorno.append((total_dist,tmp_alt, self.total_time,vel,lat,lon,hr)) #Could add rpm here + retorno.append((total_dist,tmp_alt, self.total_time,vel,lat,lon,hr,cadence)) rel_alt = tmp_alt - last_alt #Could allow for some 'jitter' in height here if rel_alt > 0: self.upositive += rel_alt Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/pytrainer/main.py 2009-12-14 07:40:08 UTC (rev 432) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#431" + self.version ="1.7.0_svn#432" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/pytrainer/recordgraph.py =================================================================== --- pytrainer/trunk/pytrainer/recordgraph.py 2009-12-14 07:03:28 UTC (rev 431) +++ pytrainer/trunk/pytrainer/recordgraph.py 2009-12-14 07:40:08 UTC (rev 432) @@ -79,10 +79,12 @@ return _("Distance (km)"),_("Height (m)"),_("Stage Profile"),"#ff0000" if value == 1: return _("Distance (km)"),_("Speed (Km/h)"),_("Speed"),"#00ff00" - if value == 2: - return _("Distance (km)"),_("Pace (min/km)"),_("Pace"),"#0000ff" - if value == 3: - return _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#ff0000" + if value == 2: + return _("Distance (km)"),_("Pace (min/km)"),_("Pace"),"#0000ff" + if value == 3: + return _("Distance (km)"),_("Beats (bpm)"),_("Heart Rate"),"#ff0000" + if value == 4: + return _("Distance (km)"),_("Cadence (rpm)"),_("Cadence"),"#ff0000" def get_values(self,values, value_selected): @@ -97,11 +99,13 @@ yvalue.append(value[3]) if value_selected==2: try: - yvalue.append(60/value[3]) + yvalue.append(60/value[3]) except: - yvalue.append(0) + yvalue.append(0) if value_selected==3: - yvalue.append(value[6]) + yvalue.append(value[6]) + if value_selected==4: + yvalue.append(value[7]) logging.debug("<<") return xvalue,yvalue This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-14 07:03:39
|
Revision: 431 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=431&view=rev Author: jblance Date: 2009-12-14 07:03:28 +0000 (Mon, 14 Dec 2009) Log Message: ----------- Capitalise sport retrieved from import file Modified Paths: -------------- pytrainer/trunk/plugins/garmintools/garmintools.py pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/plugins/garmintools/garmintools.py =================================================================== --- pytrainer/trunk/plugins/garmintools/garmintools.py 2009-12-14 06:51:05 UTC (rev 430) +++ pytrainer/trunk/plugins/garmintools/garmintools.py 2009-12-14 07:03:28 UTC (rev 431) @@ -103,6 +103,7 @@ sportElement = root.find(".//run") try: sport = sportElement.get("sport") + sport = sport.capitalize() except: sport = "import" print sport Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-14 06:51:05 UTC (rev 430) +++ pytrainer/trunk/pytrainer/main.py 2009-12-14 07:03:28 UTC (rev 431) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0_svn#430" + self.version ="1.7.0_svn#431" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jb...@us...> - 2009-12-14 06:51:15
|
Revision: 430 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=430&view=rev Author: jblance Date: 2009-12-14 06:51:05 +0000 (Mon, 14 Dec 2009) Log Message: ----------- Initial Garmintools dump file import plugin code commit Modified Paths: -------------- pytrainer/trunk/pytrainer/lib/gpx.py pytrainer/trunk/pytrainer/main.py pytrainer/trunk/pytrainer/plugins.py Added Paths: ----------- pytrainer/trunk/plugins/garmintools/ pytrainer/trunk/plugins/garmintools/conf.xml pytrainer/trunk/plugins/garmintools/garmintools.py pytrainer/trunk/plugins/garmintools/translate.xsl Added: pytrainer/trunk/plugins/garmintools/conf.xml =================================================================== --- pytrainer/trunk/plugins/garmintools/conf.xml (rev 0) +++ pytrainer/trunk/plugins/garmintools/conf.xml 2009-12-14 06:51:05 UTC (rev 430) @@ -0,0 +1,10 @@ +<?xml version="1.0" ?> +<pytrainer-plugin + name="Garmintools dump file import" + description="Import your records from a dump file generated by Garmintools" + plugincode="garmintools" + pluginbutton="Import from file: Garmintools dump" + executable="garmintools" +> +<conf-values variable="Force_sport_to" value=""/> +</pytrainer-plugin> Added: pytrainer/trunk/plugins/garmintools/garmintools.py =================================================================== --- pytrainer/trunk/plugins/garmintools/garmintools.py (rev 0) +++ pytrainer/trunk/plugins/garmintools/garmintools.py 2009-12-14 06:51:05 UTC (rev 430) @@ -0,0 +1,129 @@ +# -*- coding: iso-8859-1 -*- + +#Copyright (C) Fiz Vazquez vu...@si... +# Modified by dgranda + +#This program is free software; you can redistribute it and/or +#modify it under the terms of the GNU General Public License +#as published by the Free Software Foundation; either version 2 +#of the License, or (at your option) any later version. + +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. + +#You should have received a copy of the GNU General Public License +#along with this program; if not, write to the Free Software +#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +import logging +import os +import StringIO +from lxml import etree +from lib.xmlUtils import XMLParser + +from gui.dialogs import fileChooserDialog, guiFlush + +class garmintools(): + def __init__(self, parent = None, validate=False): + self.parent = parent + self.tmpdir = self.parent.conf.getValue("tmpdir") + self.data_path = os.path.dirname(__file__) + self.validate = validate + self.sport = self.getConfValue("Force_sport_to") + + def getConfValue(self, confVar): + info = XMLParser(self.data_path+"/conf.xml") + code = info.getValue("pytrainer-plugin","plugincode") + plugindir = self.parent.conf.getValue("plugindir") + if not os.path.isfile(plugindir+"/"+code+"/conf.xml"): + value = None + else: + info = XMLParser(plugindir+"/"+code+"/conf.xml") + value = info.getValue("pytrainer-plugin",confVar) + return value + + def run(self): + logging.debug(">>") + # able to select multiple files.... + selectedFiles = fileChooserDialog(title="Choose a garmintools dump file (or files) to import", multiple=True).getFiles() + guiFlush() + importfiles = [] + if not selectedFiles: #Nothing selected + return importfiles + for filename in selectedFiles: + if self.valid_input_file(filename): + #Garmin dump files are not valid xml - need to load into a xmltree + #read file into string + with open(filename, 'r') as f: + xmlString = f.read() + fileString = StringIO.StringIO("<root>"+xmlString+"</root>") + #parse string as xml + tree = etree.parse(fileString) + if not self.inDatabase(tree): + sport = self.getSport(tree) + gpxfile = "%s/garmintools-%d.gpx" % (self.tmpdir, len(importfiles)) + self.createGPXfile(gpxfile, tree) + importfiles.append((gpxfile, sport)) + else: + logging.debug("%s already in database. Skipping import." % (filename,) ) + else: + logging.info("File %s failed validation" % (filename)) + logging.debug("<<") + return importfiles + + def valid_input_file(self, filename): + """ Function to validate input file if requested""" + if not self.validate: #not asked to validate + logging.debug("Not validating %s" % (filename) ) + return True + else: + print "Cannot validate garmintools dump files yet" + logging.debug("Cannot validate garmintools dump files yet") + return True + '''xslfile = os.path.realpath(self.parent.parent.data_path)+ "/schemas/GarminTrainingCenterDatabase_v2.xsd" + from lib.xmlValidation import xmlValidator + validator = xmlValidator() + return validator.validateXSL(filename, xslfile)''' + + def inDatabase(self, tree): + #comparing date and start time (sport may have been changed in DB after import) + time = self.detailsFromFile(tree) + if self.parent.parent.ddbb.select("records","*","date_time_utc=\"%s\"" % (time)): + return True + else: + return False + + def getSport(self, tree): + #return sport from file or overide if present + if self.sport: + return self.sport + root = tree.getroot() + sportElement = root.find(".//run") + try: + sport = sportElement.get("sport") + except: + sport = "import" + print sport + return sport + + def detailsFromFile(self, tree): + root = tree.getroot() + #Find first point + pointElement = root.find(".//point") + if pointElement is not None: + #Try to get time from point + time = pointElement.get("time") + print "TODO first time is different from time used by gpsbabel and has locale embedded" + time + return time + return None + + def createGPXfile(self, gpxfile, tree): + """ Function to transform a Garmintools dump file to a valid GPX+ file + """ + xslt_doc = etree.parse(self.data_path+"/translate.xsl") + transform = etree.XSLT(xslt_doc) + result_tree = transform(tree) + result_tree.write(gpxfile, xml_declaration=True) + Added: pytrainer/trunk/plugins/garmintools/translate.xsl =================================================================== --- pytrainer/trunk/plugins/garmintools/translate.xsl (rev 0) +++ pytrainer/trunk/plugins/garmintools/translate.xsl 2009-12-14 06:51:05 UTC (rev 430) @@ -0,0 +1,51 @@ +<?xml version="1.0"?> + +<!-- note defining a namespace for TrainingCenterDatabase as the translation does not seem to work with a default namespace --> +<xsl:stylesheet version="1.0" +xmlns:t="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" +xmlns:xsl="http://www.w3.org/1999/XSL/Transform" +> +<xsl:output method="xml" indent="yes" omit-xml-declaration="no"/> + +<!-- this is a bit of a messy way to get whitespace into the output - but it works --> +<xsl:variable name="newline"><xsl:text> +</xsl:text></xsl:variable> + +<xsl:template match="/"> + <gpx creator="pytrainer http://sourceforge.net/projects/pytrainer" version="1.1" + xmlns="http://www.topografix.com/GPX/1/1" + xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" > + + <xsl:value-of select="$newline"/> + <xsl:variable name="sport"><xsl:value-of select="root/run/@sport"/></xsl:variable> + <xsl:variable name="time"><xsl:value-of select="root/point/@time"/></xsl:variable> + <xsl:variable name="name"><xsl:value-of select="$sport"/><xsl:value-of select="substring($time, 1,10)"/></xsl:variable> + <metadata><xsl:value-of select="$newline"/> + <name><xsl:value-of select="$name"/></name><xsl:value-of select="$newline"/> + <link href="http://sourceforge.net/projects/pytrainer"/><xsl:value-of select="$newline"/> + <time><xsl:value-of select="$time"/></time><xsl:value-of select="$newline"/> + </metadata><xsl:value-of select="$newline"/> + <trk><xsl:value-of select="$newline"/> + <trkseg><xsl:value-of select="$newline"/> + <!-- <xsl:variable name="calories"><xsl:value-of select="t:Calories"/></xsl:variable> --> + <xsl:for-each select="root/point"> + <xsl:if test="@lat"> <!-- only write trkpt if lat/lon exist --> + <xsl:variable name="lat"><xsl:value-of select="@lat"/></xsl:variable> + <xsl:variable name="lon"><xsl:value-of select="@lon"/></xsl:variable> + <trkpt lat="{$lat}" lon="{$lon}"><xsl:value-of select="$newline"/> + <ele><xsl:value-of select="@alt"/></ele><xsl:value-of select="$newline"/> + <time><xsl:value-of select="@time"/></time><xsl:value-of select="$newline"/> + <xsl:if test="@hr"> + <extensions><xsl:value-of select="$newline"/> + <gpxdata:hr><xsl:value-of select="@hr"/></gpxdata:hr><xsl:value-of select="$newline"/> + </extensions><xsl:value-of select="$newline"/> + </xsl:if> + </trkpt><xsl:value-of select="$newline"/> + </xsl:if> + </xsl:for-each> + <xsl:value-of select="$newline"/> + </trkseg><xsl:value-of select="$newline"/> + </trk><xsl:value-of select="$newline"/> + </gpx><xsl:value-of select="$newline"/> +</xsl:template> +</xsl:stylesheet> Modified: pytrainer/trunk/pytrainer/lib/gpx.py =================================================================== --- pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-07 18:36:16 UTC (rev 429) +++ pytrainer/trunk/pytrainer/lib/gpx.py 2009-12-14 06:51:05 UTC (rev 430) @@ -27,11 +27,7 @@ from datetime import datetime import logging from xmlUtils import XMLParser -#import xml.dom -#from xml.dom import minidom, Node, getDOMImplementation -#import xml.etree.cElementTree from lxml import etree -#from gtrnctr2gpx import gtrnctr2gpx # copied to pytrainer/lib/ directory # use of namespaces is mandatory if defined mainNS = string.Template(".//{http://www.topografix.com/GPX/1/1}$tag") @@ -91,13 +87,31 @@ timeResult = trk.find(timeTag) if timeResult is not None: time_ = timeResult.text # check timezone - mk_time = time.strptime(time_, "%Y-%m-%dT%H:%M:%SZ") + mk_time = self.geDatetTime(time_) time_ = time.strftime("%Y-%m-%d", mk_time) else: time_ = _("No Data") logging.debug("name: "+name+" | time: "+time_) tracks.append((name,time_)) return tracks + + def getDateTime(self, time_): + try: + theTime = datetime.strptime(time_, "%Y-%m-%dT%H:%M:%SZ") + return theTime + except: + pass + try: + #Time includes UTC offset... + #2009-12-02T12:58:55+01:00 + #TODO Need to sort time offset etc.... + offset = time_[-6:] + time_ = time_[:-6] #remove last 6 chars - ie UTC offset eg +01:00 + theTime = datetime.strptime(time_, "%Y-%m-%dT%H:%M:%S") + return theTime + except: + pass + return None def getUnevenness(self): return self.upositive,self.unegative @@ -116,7 +130,7 @@ lapInfo = [] tree = self.tree date = tree.findtext(timeTag) - startTime = datetime.strptime(date, "%Y-%m-%dT%H:%M:%SZ") + startTime = self.getDateTime(date) trksegs = tree.findall(trackSegTag) for trkseg in trksegs: trkpts = trkseg.findall(trackPointTag) @@ -124,7 +138,7 @@ lat = trkpt.get("lat") lon = trkpt.get("lon") temp = trkpt.findtext(timeTag) - time = datetime.strptime(temp, "%Y-%m-%dT%H:%M:%SZ") + time = self.getDateTime(temp) elapsedTime = time - startTime #print "Found time: %s, lat: %s lon: %s" % (elapsedTime, lat, lon) lapInfo.append((elapsedTime, lat, lon)) @@ -158,12 +172,14 @@ return retorno date_ = tree.find(timeTag).text - mk_time = time.strptime(date_, "%Y-%m-%dT%H:%M:%SZ") - self.date = time.strftime("%Y-%m-%d", mk_time) + mk_time = self.getDateTime(date_) + self.date = mk_time.strftime("%Y-%m-%d") for trkpoint in trkpoints: lat = trkpoint.get("lat") lon = trkpoint.get("lon") + if lat is None or lat == "" or lon is None or lon == "": + continue #get the heart rate value from the gpx extended format file hrResult = trkpoint.find(hrTag) if hrResult is not None: @@ -171,17 +187,24 @@ len_validhrpoints += 1 else: hr = 0 + #get the cadence (if present) + #TODO + #get the time timeResult = trkpoint.find(timeTag) if timeResult is not None: - time_ = timeResult.text - mk_time = time.strptime(time_, "%Y-%m-%dT%H:%M:%SZ") - time_ = time.mktime(mk_time) + date_ = timeResult.text + mk_time = self.getDateTime(date_) + time_ = time.mktime(mk_time.timetuple()) #Convert date to seconds else: time_ = 1 + #get the elevation ele = trkpoint.find(elevationTag).text #chequeamos que la altura sea correcta / check that the height is correct - if len(ele)<15: - tmp_alt = int(float(ele)) + if ele is not None: + if len(ele)<15: + tmp_alt = int(float(ele)) + else: + tmp_alt= 0 #evitamos los puntos blancos / we avoid the white points if (float(lat) < -0.000001) or (float(lat) > 0.0000001): @@ -255,7 +278,8 @@ Retrieves start time from a given gpx file args: - gpxFile: path to xml file (gpx format) - returns: string with start time - 2008-03-22T12:17:43Z""" + returns: string with start time - 2008-03-22T12:17:43Z or 2009-12-02T12:58:55+01:00 + """ logging.debug(">>") date_time = self.tree.find(timeTag) #returns first instance found if date_time is None: @@ -264,20 +288,4 @@ logging.debug(gpxFile+" | "+ date_time.text) logging.debug("<<") return date_time.text - - #TODO Pending removal - ''' - def retrieveDataFromGTRNCTR(self, gtrnctrFile, entry): - """23.03.2008 - dgranda - Builds a new GPX file based on one entry from GPS (dates matching) - args: - - gtrnctrFile: path of file with data from GPS file (garmin format) - - entry: list with dictionaries: SPORT|DATE_START_TIME - returns: path to new GPX file""" - logging.debug('>>') - xmlParser = XMLParser(gtrnctrFile) - selectedEntry = xmlParser.getTrackFromDates(gtrnctrFile,entry,0) - newGPXEntry = self.conf.tmpdir + "/new_entry.gpx" - gtrnctr2gpx(selectedEntry, newGPXEntry) - logging.debug('<<') - return newGPXEntry ''' + Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-07 18:36:16 UTC (rev 429) +++ pytrainer/trunk/pytrainer/main.py 2009-12-14 06:51:05 UTC (rev 430) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0" + self.version ="1.7.0_svn#430" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? Modified: pytrainer/trunk/pytrainer/plugins.py =================================================================== --- pytrainer/trunk/pytrainer/plugins.py 2009-12-07 18:36:16 UTC (rev 429) +++ pytrainer/trunk/pytrainer/plugins.py 2009-12-14 06:51:05 UTC (rev 430) @@ -106,7 +106,7 @@ name = plugininfo.getValue("pytrainer-plugin","name") description = plugininfo.getValue("pytrainer-plugin","description") pluginsList.append((pluginsdir+"/"+plugin,name,description)) - + pluginsList.sort() return pluginsList def getPluginInfo(self,pathPlugin): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-07 18:36:25
|
Revision: 429 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=429&view=rev Author: dgranda Date: 2009-12-07 18:36:16 +0000 (Mon, 07 Dec 2009) Log Message: ----------- Fixed some errors with localizations (thnx No?\195?\168l for the hint - bug ID #2910100) Modified Paths: -------------- pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer_de.po pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer_no.po pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer_ru.po Added Paths: ----------- pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer.mo Modified: pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Modified: pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer_de.po =================================================================== --- pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer_de.po 2009-12-06 12:47:38 UTC (rev 428) +++ pytrainer/trunk/locale/de/LC_MESSAGES/pytrainer_de.po 2009-12-07 18:36:16 UTC (rev 429) @@ -12,7 +12,7 @@ "Last-Translator: Noèl Köthe <no...@de...>\n" "Language-Team: German <tra...@li...>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ASCII\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" Added: pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Property changes on: pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer.mo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer_no.po =================================================================== --- pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer_no.po 2009-12-06 12:47:38 UTC (rev 428) +++ pytrainer/trunk/locale/no/LC_MESSAGES/pytrainer_no.po 2009-12-07 18:36:16 UTC (rev 429) @@ -8,8 +8,8 @@ "Project-Id-Version: pytrainer 1.0.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-22 17:15+0200\n" -"PO-Revision-Date: 2007-06-15 09:10+0200\n" -"Last-Translator: Hvard Davidsen <hav...@gm...>\n" +"PO-Revision-Date: 2009-12-07 19:21+0100\n" +"Last-Translator: David García Granda <dg...@gm...>\n" "Language-Team: Norwegian <i1...@li...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,12 +37,10 @@ msgstr "_Vis" #: glade/pytrainer.glade:146 -#, fuzzy msgid " _Classic View" msgstr "_Klassisk Visning" #: glade/pytrainer.glade:157 -#, fuzzy msgid " _List View" msgstr "_Liste Visning" @@ -66,8 +64,10 @@ msgid "_Help" msgstr "_Hjelp" -#: glade/pytrainer.glade:339 glade/pytrainer.glade:5249 -#: pytrainer/gui/windowmain.py:49 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:339 +#: glade/pytrainer.glade:5249 +#: pytrainer/gui/windowmain.py:49 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:312 msgid "Sport" msgstr "Sport" @@ -76,78 +76,94 @@ msgid "All Sports" msgstr "Alle Typer Sport" -#: glade/pytrainer.glade:473 glade/pytrainer.glade:1659 +#: glade/pytrainer.glade:473 +#: glade/pytrainer.glade:1659 msgid "<b>Beats avg:</b>" msgstr "<b>Puls gjennomsnitt</b>" #: glade/pytrainer.glade:523 -#, fuzzy msgid " bpm" msgstr "ppm" -#: glade/pytrainer.glade:551 glade/pytrainer.glade:1631 -#: glade/pytrainer.glade:2444 glade/pytrainer.glade:2654 -#: glade/pytrainer.glade:3429 glade/pytrainer.glade:3639 +#: glade/pytrainer.glade:551 +#: glade/pytrainer.glade:1631 +#: glade/pytrainer.glade:2444 +#: glade/pytrainer.glade:2654 +#: glade/pytrainer.glade:3429 +#: glade/pytrainer.glade:3639 msgid "<b>Time:</b>" msgstr "<b>Tid:</b>" -#: glade/pytrainer.glade:579 glade/pytrainer.glade:1603 -#: glade/pytrainer.glade:2365 glade/pytrainer.glade:2626 -#: glade/pytrainer.glade:3350 glade/pytrainer.glade:3611 +#: glade/pytrainer.glade:579 +#: glade/pytrainer.glade:1603 +#: glade/pytrainer.glade:2365 +#: glade/pytrainer.glade:2626 +#: glade/pytrainer.glade:3350 +#: glade/pytrainer.glade:3611 msgid "<b>Distance:</b>" msgstr "<b>Distanse</b>" -#: glade/pytrainer.glade:633 glade/pytrainer.glade:678 -#: glade/pytrainer.glade:1904 glade/pytrainer.glade:1949 -#: glade/pytrainer.glade:2498 glade/pytrainer.glade:2543 -#: glade/pytrainer.glade:2927 glade/pytrainer.glade:2972 -#: glade/pytrainer.glade:3483 glade/pytrainer.glade:3528 -#: glade/pytrainer.glade:3912 glade/pytrainer.glade:3957 -#: glade/pytrainer.glade:5617 glade/pytrainer.glade:5662 +#: glade/pytrainer.glade:633 +#: glade/pytrainer.glade:678 +#: glade/pytrainer.glade:1904 +#: glade/pytrainer.glade:1949 +#: glade/pytrainer.glade:2498 +#: glade/pytrainer.glade:2543 +#: glade/pytrainer.glade:2927 +#: glade/pytrainer.glade:2972 +#: glade/pytrainer.glade:3483 +#: glade/pytrainer.glade:3528 +#: glade/pytrainer.glade:3912 +#: glade/pytrainer.glade:3957 +#: glade/pytrainer.glade:5617 +#: glade/pytrainer.glade:5662 msgid ":" msgstr ":" #: glade/pytrainer.glade:783 -#, fuzzy msgid " Km" msgstr "Km" -#: glade/pytrainer.glade:811 glade/pytrainer.glade:1715 -#: glade/pytrainer.glade:2738 glade/pytrainer.glade:3723 +#: glade/pytrainer.glade:811 +#: glade/pytrainer.glade:1715 +#: glade/pytrainer.glade:2738 +#: glade/pytrainer.glade:3723 msgid "<b>Calories: </b>" msgstr "<b>Kalorier:</b>" #: glade/pytrainer.glade:861 -#, fuzzy msgid " Cal" msgstr "Kal" -#: glade/pytrainer.glade:889 glade/pytrainer.glade:1687 -#: glade/pytrainer.glade:2710 glade/pytrainer.glade:3695 +#: glade/pytrainer.glade:889 +#: glade/pytrainer.glade:1687 +#: glade/pytrainer.glade:2710 +#: glade/pytrainer.glade:3695 msgid "<b>Average:</b>" msgstr "<b>Gjennomsnitt:</b>" #: glade/pytrainer.glade:939 -#, fuzzy msgid " km/h" msgstr "Km/t" #: glade/pytrainer.glade:1006 -#, fuzzy msgid "<b>Comments:</b>" msgstr "<b>Komentar</b>" -#: glade/pytrainer.glade:1060 glade/pytrainer.glade:5923 +#: glade/pytrainer.glade:1060 +#: glade/pytrainer.glade:5923 #, fuzzy msgid "<b>Positive:</b>" msgstr "<b>Tid:</b>" -#: glade/pytrainer.glade:1104 glade/pytrainer.glade:5967 +#: glade/pytrainer.glade:1104 +#: glade/pytrainer.glade:5967 #, fuzzy msgid "<b>Negative:</b>" msgstr "<b>Dato:</b>" -#: glade/pytrainer.glade:1152 glade/pytrainer.glade:6015 +#: glade/pytrainer.glade:1152 +#: glade/pytrainer.glade:6015 msgid " <b>Accumulated Unevenness:</b> " msgstr "" @@ -156,12 +172,15 @@ msgid " <b>Title:</b>" msgstr "<b>Tid:</b>" -#: glade/pytrainer.glade:1387 glade/pytrainer.glade:2186 -#: glade/pytrainer.glade:3216 glade/pytrainer.glade:4201 +#: glade/pytrainer.glade:1387 +#: glade/pytrainer.glade:2186 +#: glade/pytrainer.glade:3216 +#: glade/pytrainer.glade:4201 msgid "Value" msgstr "" -#: glade/pytrainer.glade:1412 glade/pytrainer.glade:2211 +#: glade/pytrainer.glade:1412 +#: glade/pytrainer.glade:2211 msgid "" "Stage Profile\n" "Stage Velocity\n" @@ -173,7 +192,8 @@ msgid "Record" msgstr "Endre Notat" -#: glade/pytrainer.glade:1743 glade/pytrainer.glade:2393 +#: glade/pytrainer.glade:1743 +#: glade/pytrainer.glade:2393 #: glade/pytrainer.glade:3378 msgid "Km" msgstr "Km" @@ -199,27 +219,33 @@ msgid "Day" msgstr "Dag" -#: glade/pytrainer.glade:2682 glade/pytrainer.glade:3667 +#: glade/pytrainer.glade:2682 +#: glade/pytrainer.glade:3667 msgid "<b>Beats:</b>" msgstr "<b>Puls:</b>" -#: glade/pytrainer.glade:2766 glade/pytrainer.glade:3751 +#: glade/pytrainer.glade:2766 +#: glade/pytrainer.glade:3751 msgid "Km/day" msgstr "Km/dag" -#: glade/pytrainer.glade:2794 glade/pytrainer.glade:3779 +#: glade/pytrainer.glade:2794 +#: glade/pytrainer.glade:3779 msgid "bpm/day" msgstr "ppm/dag" -#: glade/pytrainer.glade:2822 glade/pytrainer.glade:3807 +#: glade/pytrainer.glade:2822 +#: glade/pytrainer.glade:3807 msgid "km/h/day" msgstr "Km/t/dag" -#: glade/pytrainer.glade:2850 glade/pytrainer.glade:3835 +#: glade/pytrainer.glade:2850 +#: glade/pytrainer.glade:3835 msgid "cal/day" msgstr "kal/dag" -#: glade/pytrainer.glade:3027 glade/pytrainer.glade:4012 +#: glade/pytrainer.glade:3027 +#: glade/pytrainer.glade:4012 msgid "time/day" msgstr "tid/dag" @@ -228,7 +254,8 @@ msgid " <b>Month:</b>" msgstr "<b>Dato:</b>" -#: glade/pytrainer.glade:3241 glade/pytrainer.glade:4226 +#: glade/pytrainer.glade:3241 +#: glade/pytrainer.glade:4226 msgid "" "Kilometers\n" "Time\n" @@ -238,7 +265,6 @@ msgstr "" #: glade/pytrainer.glade:3285 -#, fuzzy msgid "Month" msgstr "måned" @@ -261,7 +287,6 @@ msgstr "<b>Tid:</b>" #: glade/pytrainer.glade:4395 -#, fuzzy msgid "Search" msgstr "Mars" @@ -315,11 +340,13 @@ msgid "label163" msgstr "" -#: glade/pytrainer.glade:5091 glade/pytrainer.glade:6123 +#: glade/pytrainer.glade:5091 +#: glade/pytrainer.glade:6123 msgid "New Entry" msgstr "" -#: glade/pytrainer.glade:5139 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:5139 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:310 msgid "Date" msgstr "Dato" @@ -328,18 +355,17 @@ msgid " " msgstr "." -#: glade/pytrainer.glade:5304 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:5304 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:309 msgid "Title" msgstr "Tittel" #: glade/pytrainer.glade:5362 -#, fuzzy msgid "GPX file" msgstr "Profil" #: glade/pytrainer.glade:5424 -#, fuzzy msgid "Calculate Values" msgstr "Kalkuler Tid" @@ -351,7 +377,8 @@ msgid "Distance (Km)" msgstr "Distanse (Km)" -#: glade/pytrainer.glade:5563 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:5563 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:313 msgid "Time" msgstr "Tid" @@ -372,7 +399,8 @@ msgid "Calculate Average" msgstr "Kalkuler Snitt" -#: glade/pytrainer.glade:5848 pytrainer/gui/windowmain.py:316 +#: glade/pytrainer.glade:5848 +#: pytrainer/gui/windowmain.py:316 msgid "Calories" msgstr "Kalorier" @@ -380,7 +408,8 @@ msgid "<b>Comments</b>" msgstr "<b>Komentar</b>" -#: glade/pytrainer.glade:6228 glade/pytrainer.glade:6522 +#: glade/pytrainer.glade:6228 +#: glade/pytrainer.glade:6522 msgid "Profile" msgstr "Profil" @@ -389,17 +418,14 @@ msgstr "Navn" #: glade/pytrainer.glade:6302 -#, fuzzy msgid "Gender" msgstr "Vekt" #: glade/pytrainer.glade:6330 -#, fuzzy msgid "Weight" msgstr "Vekt" #: glade/pytrainer.glade:6358 -#, fuzzy msgid "Height" msgstr "Alder" @@ -459,8 +485,9 @@ msgid "" "You are going to remove a sport. When you delete a \n" "sport you delete the records asociated. Are you sure \n" -"that you want do it?" -msgstr "sport sletter du alle hendelser assosiert!. Er du \n" +"that you want do it? \n" +msgstr "" +"sport sletter du alle hendelser assosiert!. Er du \n" #: glade/pytrainer.glade:7455 msgid "delete" @@ -546,7 +573,6 @@ msgstr "Endre Notat" #: glade/pytrainer.glade:8075 -#, fuzzy msgid "Show graph in classic view" msgstr "Vis i klassisk visning" @@ -558,18 +584,18 @@ msgid "window2" msgstr "window2" -#: glade/pytrainer.glade:8313 glade/pytrainer.glade:8663 -#, fuzzy +#: glade/pytrainer.glade:8313 +#: glade/pytrainer.glade:8663 msgid "<b>Name:</b>" msgstr "<b>Tid:</b>" -#: glade/pytrainer.glade:8341 glade/pytrainer.glade:8691 -#, fuzzy +#: glade/pytrainer.glade:8341 +#: glade/pytrainer.glade:8691 msgid "<b>Description:</b>" msgstr "<b>Distanse</b>" -#: glade/pytrainer.glade:8369 glade/pytrainer.glade:8719 -#, fuzzy +#: glade/pytrainer.glade:8369 +#: glade/pytrainer.glade:8719 msgid "<b>Status:</b>" msgstr "<b>Puls:</b>" @@ -577,11 +603,13 @@ msgid "name-entry" msgstr "" -#: glade/pytrainer.glade:8425 glade/pytrainer.glade:8775 +#: glade/pytrainer.glade:8425 +#: glade/pytrainer.glade:8775 msgid "description-entry" msgstr "" -#: glade/pytrainer.glade:8453 glade/pytrainer.glade:8803 +#: glade/pytrainer.glade:8453 +#: glade/pytrainer.glade:8803 msgid "status-entry" msgstr "" @@ -654,13 +682,16 @@ msgid "December" msgstr "Desember" -#: pytrainer/yeargraph.py:37 pytrainer/yeargraph.py:39 -#: pytrainer/yeargraph.py:41 pytrainer/yeargraph.py:43 +#: pytrainer/yeargraph.py:37 +#: pytrainer/yeargraph.py:39 +#: pytrainer/yeargraph.py:41 +#: pytrainer/yeargraph.py:43 #: pytrainer/yeargraph.py:45 msgid "month" msgstr "måned" -#: pytrainer/yeargraph.py:37 pytrainer/monthgraph.py:37 +#: pytrainer/yeargraph.py:37 +#: pytrainer/monthgraph.py:37 msgid "kilometers" msgstr "Kilometer" @@ -668,7 +699,8 @@ msgid "monthly kilometers" msgstr "månedlige kilometer" -#: pytrainer/yeargraph.py:39 pytrainer/monthgraph.py:39 +#: pytrainer/yeargraph.py:39 +#: pytrainer/monthgraph.py:39 msgid "time in hours" msgstr "tid i timer" @@ -676,7 +708,8 @@ msgid "monthly time" msgstr "månedlig tid" -#: pytrainer/yeargraph.py:41 pytrainer/monthgraph.py:41 +#: pytrainer/yeargraph.py:41 +#: pytrainer/monthgraph.py:41 msgid "beats per minute" msgstr "puls per minutt" @@ -684,7 +717,8 @@ msgid "monthly beats" msgstr "månedlig puls" -#: pytrainer/yeargraph.py:43 pytrainer/monthgraph.py:43 +#: pytrainer/yeargraph.py:43 +#: pytrainer/monthgraph.py:43 msgid "average (hm/h)" msgstr "snitt (hm/t)" @@ -692,7 +726,8 @@ msgid "monthly averages" msgstr "månedlig snitt" -#: pytrainer/yeargraph.py:45 pytrainer/monthgraph.py:45 +#: pytrainer/yeargraph.py:45 +#: pytrainer/monthgraph.py:45 msgid "calories" msgstr "kalorier" @@ -700,7 +735,8 @@ msgid "monthly calories" msgstr "månedlig kalorier" -#: pytrainer/gui/windowmain.py:49 pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:49 +#: pytrainer/gui/windowmain.py:52 msgid "id" msgstr "id" @@ -708,65 +744,75 @@ msgid "Kilometer" msgstr "Kilometer" -#: pytrainer/gui/windowmain.py:52 pytrainer/gui/windowmain.py:311 +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:311 msgid "Distance" msgstr "Distanse" -#: pytrainer/gui/windowmain.py:52 pytrainer/gui/windowmain.py:314 +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:314 msgid "Beats" msgstr "" -#: pytrainer/gui/windowmain.py:52 pytrainer/gui/windowmain.py:315 -#, fuzzy +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:315 msgid "Average" msgstr "Snitt (Km/t)" -#: pytrainer/gui/windowplugins.py:72 pytrainer/gui/windowextensions.py:70 +#: pytrainer/gui/windowplugins.py:72 +#: pytrainer/gui/windowextensions.py:70 msgid "Active" msgstr "" -#: pytrainer/gui/windowplugins.py:74 pytrainer/gui/windowextensions.py:72 +#: pytrainer/gui/windowplugins.py:74 +#: pytrainer/gui/windowextensions.py:72 msgid "unActive" msgstr "" -#: pytrainer/gui/windowplugins.py:83 pytrainer/gui/windowextensions.py:81 +#: pytrainer/gui/windowplugins.py:83 +#: pytrainer/gui/windowextensions.py:81 #, python-format msgid "%s settings" msgstr "" -#: pytrainer/gui/windowplugins.py:106 pytrainer/gui/windowextensions.py:104 +#: pytrainer/gui/windowplugins.py:106 +#: pytrainer/gui/windowextensions.py:104 #: pytrainer/gui/windowextensions.py:117 msgid "Ok" msgstr "" -#: pytrainer/daygraph.py:48 pytrainer/daygraph.py:50 -#: pytrainer/recordgraph.py:48 pytrainer/recordgraph.py:50 -#, fuzzy +#: pytrainer/daygraph.py:48 +#: pytrainer/daygraph.py:50 +#: pytrainer/recordgraph.py:48 +#: pytrainer/recordgraph.py:50 msgid "Distance (km)" msgstr "Distanse (Km)" -#: pytrainer/daygraph.py:48 pytrainer/recordgraph.py:48 -#, fuzzy +#: pytrainer/daygraph.py:48 +#: pytrainer/recordgraph.py:48 msgid "Height (m)" msgstr "Alder" -#: pytrainer/daygraph.py:48 pytrainer/recordgraph.py:48 -#, fuzzy +#: pytrainer/daygraph.py:48 +#: pytrainer/recordgraph.py:48 msgid "Stage Profile" msgstr "Profil" -#: pytrainer/daygraph.py:50 pytrainer/recordgraph.py:50 +#: pytrainer/daygraph.py:50 +#: pytrainer/recordgraph.py:50 msgid "Velocity (Km/h)" msgstr "" -#: pytrainer/daygraph.py:50 pytrainer/recordgraph.py:50 +#: pytrainer/daygraph.py:50 +#: pytrainer/recordgraph.py:50 msgid "velocity" msgstr "" -#: pytrainer/monthgraph.py:37 pytrainer/monthgraph.py:39 -#: pytrainer/monthgraph.py:41 pytrainer/monthgraph.py:43 +#: pytrainer/monthgraph.py:37 +#: pytrainer/monthgraph.py:39 +#: pytrainer/monthgraph.py:41 +#: pytrainer/monthgraph.py:43 #: pytrainer/monthgraph.py:45 -#, fuzzy msgid "day" msgstr "Dag" @@ -791,9 +837,7 @@ msgstr "daglige kalorier" #: pytrainer/record.py:183 -msgid "" -"The gpx file seems to be a several days records. Perhaps you will need to " -"edit your gpx file" +msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" msgstr "" #~ msgid "" @@ -812,9 +856,8 @@ #~ "Puls\n" #~ "Gjennomsnitt\n" #~ "KalorierMonth<b>Year:</b>Yearlabel154label155New Entry" - #~ msgid "Export " #~ msgstr "Eksporter " - #~ msgid "dialog1" #~ msgstr "dialog1" + Modified: pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer.mo =================================================================== (Binary files differ) Modified: pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer_ru.po =================================================================== --- pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer_ru.po 2009-12-06 12:47:38 UTC (rev 428) +++ pytrainer/trunk/locale/ru/LC_MESSAGES/pytrainer_ru.po 2009-12-07 18:36:16 UTC (rev 429) @@ -2,20 +2,20 @@ # Copyright (C) 2008 THE pytrainer'S COPYRIGHT HOLDER # This file is distributed under the same license as the pytrainer package. # Mansur Marvanov <nan...@gm...>, 2008. -# -# +# +# msgid "" msgstr "" "Project-Id-Version: pytrainer 1.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-01-16 20:03+0100\n" -"PO-Revision-Date: 2008-01-16 20:18+0100\n" -"Last-Translator: Mansur Marvanov <nan...@gm...>\n" +"PO-Revision-Date: 2009-12-07 19:19+0100\n" +"Last-Translator: David García Granda <dg...@gm...>\n" "Language-Team: Russian <es...@li...>\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);" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: glade/pytrainer.glade:10 msgid "window1" @@ -26,7 +26,6 @@ msgstr "_Файл" #: glade/pytrainer.glade:74 -#, fuzzy msgid "_Export as Text Separated by Commas" msgstr "_Экспортировать как текст (разделенный запятыми)" @@ -47,7 +46,6 @@ msgstr " _Список" #: glade/pytrainer.glade:168 -#, fuzzy msgid " _Waypoints Editor" msgstr " _Редактор маршрута" @@ -55,12 +53,12 @@ msgid "Tools" msgstr "Инструменты" -#: glade/pytrainer.glade:194 glade/pytrainer.glade:9226 +#: glade/pytrainer.glade:194 +#: glade/pytrainer.glade:9226 msgid "Extensions" msgstr "Расширения" #: glade/pytrainer.glade:204 -#, fuzzy msgid "GPS Device Plugins" msgstr "Плагины устройств GPS" @@ -68,8 +66,10 @@ msgid "_Help" msgstr "_Помощь" -#: glade/pytrainer.glade:338 glade/pytrainer.glade:5695 -#: pytrainer/gui/windowmain.py:49 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:338 +#: glade/pytrainer.glade:5695 +#: pytrainer/gui/windowmain.py:49 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:393 msgid "Sport" msgstr "Вид спорта" @@ -78,8 +78,10 @@ msgid "All Sports" msgstr "Все виды спорта" -#: glade/pytrainer.glade:473 glade/pytrainer.glade:1677 -#: glade/pytrainer.glade:2400 glade/pytrainer.glade:3156 +#: glade/pytrainer.glade:473 +#: glade/pytrainer.glade:1677 +#: glade/pytrainer.glade:2400 +#: glade/pytrainer.glade:3156 #: glade/pytrainer.glade:3938 msgid "<b>Beats avg:</b>" msgstr "<b>Ударов в среднем:</b>" @@ -88,23 +90,33 @@ msgid " bpm" msgstr " уд/мин" -#: glade/pytrainer.glade:551 glade/pytrainer.glade:1649 -#: glade/pytrainer.glade:2372 glade/pytrainer.glade:3128 +#: glade/pytrainer.glade:551 +#: glade/pytrainer.glade:1649 +#: glade/pytrainer.glade:2372 +#: glade/pytrainer.glade:3128 #: glade/pytrainer.glade:3910 msgid "<b>Time:</b>" msgstr "<b>Время:</b>" -#: glade/pytrainer.glade:579 glade/pytrainer.glade:2344 -#: glade/pytrainer.glade:3100 glade/pytrainer.glade:3882 +#: glade/pytrainer.glade:579 +#: glade/pytrainer.glade:2344 +#: glade/pytrainer.glade:3100 +#: glade/pytrainer.glade:3882 msgid "<b>Distance:</b>" msgstr "<b>Дистанция:</b>" -#: glade/pytrainer.glade:633 glade/pytrainer.glade:678 -#: glade/pytrainer.glade:1922 glade/pytrainer.glade:1967 -#: glade/pytrainer.glade:2645 glade/pytrainer.glade:2690 -#: glade/pytrainer.glade:3401 glade/pytrainer.glade:3446 -#: glade/pytrainer.glade:4183 glade/pytrainer.glade:4228 -#: glade/pytrainer.glade:6004 glade/pytrainer.glade:6049 +#: glade/pytrainer.glade:633 +#: glade/pytrainer.glade:678 +#: glade/pytrainer.glade:1922 +#: glade/pytrainer.glade:1967 +#: glade/pytrainer.glade:2645 +#: glade/pytrainer.glade:2690 +#: glade/pytrainer.glade:3401 +#: glade/pytrainer.glade:3446 +#: glade/pytrainer.glade:4183 +#: glade/pytrainer.glade:4228 +#: glade/pytrainer.glade:6004 +#: glade/pytrainer.glade:6049 msgid ":" msgstr ":" @@ -112,8 +124,10 @@ msgid " Km" msgstr "км" -#: glade/pytrainer.glade:811 glade/pytrainer.glade:1733 -#: glade/pytrainer.glade:2456 glade/pytrainer.glade:3212 +#: glade/pytrainer.glade:811 +#: glade/pytrainer.glade:1733 +#: glade/pytrainer.glade:2456 +#: glade/pytrainer.glade:3212 #: glade/pytrainer.glade:3994 msgid "<b>Calories: </b>" msgstr "<b>Калории:</b>" @@ -122,9 +136,10 @@ msgid " Cal" msgstr " ккал" -#: glade/pytrainer.glade:889 glade/pytrainer.glade:2428 -#: glade/pytrainer.glade:3184 glade/pytrainer.glade:3966 -#, fuzzy +#: glade/pytrainer.glade:889 +#: glade/pytrainer.glade:2428 +#: glade/pytrainer.glade:3184 +#: glade/pytrainer.glade:3966 msgid "<b>Velocity:</b>" msgstr "<b>Название</b>" @@ -137,17 +152,14 @@ msgstr "<b>Комментарии:</b>" #: glade/pytrainer.glade:1060 -#, fuzzy msgid "<b>Ascent:</b>" msgstr "<b>Дистанция:</b>" #: glade/pytrainer.glade:1104 -#, fuzzy msgid "<b>Descent:</b>" msgstr "<b>Дистанция:</b>" #: glade/pytrainer.glade:1152 -#, fuzzy msgid " <b>Accumulated Altitude Change:</b> " msgstr "Неровности" @@ -163,7 +175,8 @@ "Heart Rate" msgstr "" -#: glade/pytrainer.glade:1431 glade/pytrainer.glade:3728 +#: glade/pytrainer.glade:1431 +#: glade/pytrainer.glade:3728 #: glade/pytrainer.glade:4510 msgid "Versus" msgstr "" @@ -178,7 +191,6 @@ msgstr "" #: glade/pytrainer.glade:1621 -#, fuzzy msgid "<b>Maximum:</b>" msgstr "<b>Время:</b>" @@ -186,23 +198,31 @@ msgid "<b>Average:</b>" msgstr "<b>Среднее:</b>" -#: glade/pytrainer.glade:1761 glade/pytrainer.glade:2484 -#: glade/pytrainer.glade:3240 glade/pytrainer.glade:4022 +#: glade/pytrainer.glade:1761 +#: glade/pytrainer.glade:2484 +#: glade/pytrainer.glade:3240 +#: glade/pytrainer.glade:4022 msgid "Km" msgstr "км" -#: glade/pytrainer.glade:1789 glade/pytrainer.glade:2512 -#: glade/pytrainer.glade:3268 glade/pytrainer.glade:4050 +#: glade/pytrainer.glade:1789 +#: glade/pytrainer.glade:2512 +#: glade/pytrainer.glade:3268 +#: glade/pytrainer.glade:4050 msgid "bpm" msgstr "уд/мин" -#: glade/pytrainer.glade:1817 glade/pytrainer.glade:2540 -#: glade/pytrainer.glade:3296 glade/pytrainer.glade:4078 +#: glade/pytrainer.glade:1817 +#: glade/pytrainer.glade:2540 +#: glade/pytrainer.glade:3296 +#: glade/pytrainer.glade:4078 msgid "km/h" msgstr "км/ч" -#: glade/pytrainer.glade:1845 glade/pytrainer.glade:2568 -#: glade/pytrainer.glade:3324 glade/pytrainer.glade:4106 +#: glade/pytrainer.glade:1845 +#: glade/pytrainer.glade:2568 +#: glade/pytrainer.glade:3324 +#: glade/pytrainer.glade:4106 msgid "Cal" msgstr "ккал" @@ -211,7 +231,6 @@ msgstr "999" #: glade/pytrainer.glade:2129 -#, fuzzy msgid " <b>Heart Rate:</b>" msgstr "<b>Дата:</b>" @@ -238,7 +257,8 @@ msgid "Day" msgstr "День" -#: glade/pytrainer.glade:3501 glade/pytrainer.glade:5636 +#: glade/pytrainer.glade:3501 +#: glade/pytrainer.glade:5636 msgid " " msgstr "" @@ -246,7 +266,8 @@ msgid " <b>Month:</b>" msgstr "<b>Месяц</b>" -#: glade/pytrainer.glade:3708 glade/pytrainer.glade:4490 +#: glade/pytrainer.glade:3708 +#: glade/pytrainer.glade:4490 msgid "" "Kilometers\n" "Time\n" @@ -260,8 +281,8 @@ "Среднее\n" "Калории" -#: glade/pytrainer.glade:3753 glade/pytrainer.glade:4535 -#, fuzzy +#: glade/pytrainer.glade:3753 +#: glade/pytrainer.glade:4535 msgid "" "None\n" "Kilometers\n" @@ -321,23 +342,20 @@ msgstr "" #: glade/pytrainer.glade:5035 -#, fuzzy msgid "Latitude: " msgstr "<b>Широта</b>" #: glade/pytrainer.glade:5063 -#, fuzzy msgid " Name:" msgstr "Имя" #: glade/pytrainer.glade:5091 -#, fuzzy msgid "Longitude:" msgstr "<b>Долгота</b>" -#: glade/pytrainer.glade:5119 glade/pytrainer.glade:9414 +#: glade/pytrainer.glade:5119 +#: glade/pytrainer.glade:9414 #: glade/pytrainer.glade:9737 -#, fuzzy msgid "Description:" msgstr "<b>Описание</b>" @@ -357,16 +375,20 @@ msgid "label163" msgstr "" -#: glade/pytrainer.glade:5537 glade/pytrainer.glade:6837 +#: glade/pytrainer.glade:5537 +#: glade/pytrainer.glade:6837 msgid "New Entry" msgstr "Новая запись" -#: glade/pytrainer.glade:5585 pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:391 pytrainer/gui/dialogselecttrack.py:36 +#: glade/pytrainer.glade:5585 +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:391 +#: pytrainer/gui/dialogselecttrack.py:36 msgid "Date" msgstr "Дата" -#: glade/pytrainer.glade:5750 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:5750 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:390 msgid "Title" msgstr "Название" @@ -383,36 +405,37 @@ msgid "Distance (Km)" msgstr "Дистанция (км)" -#: glade/pytrainer.glade:5929 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:5929 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:394 msgid "Time" msgstr "Время" -#: glade/pytrainer.glade:6104 pytrainer/gui/windowmain.py:397 +#: glade/pytrainer.glade:6104 +#: pytrainer/gui/windowmain.py:397 #: pytrainer/monthgraph.py:77 msgid "Calories" msgstr "Калории" #: glade/pytrainer.glade:6153 -#, fuzzy msgid "<b>Pace</b>" msgstr "<b>Имя:</b>" -#: glade/pytrainer.glade:6224 glade/pytrainer.glade:6512 +#: glade/pytrainer.glade:6224 +#: glade/pytrainer.glade:6512 msgid "Calculate Average" msgstr "Подсчитать среднее" -#: glade/pytrainer.glade:6242 pytrainer/monthgraph.py:75 +#: glade/pytrainer.glade:6242 +#: pytrainer/monthgraph.py:75 msgid "Average (km/h)" msgstr "Среднее (км/ч)" #: glade/pytrainer.glade:6270 -#, fuzzy msgid "Maxim (km/h)" msgstr "Среднее (км/ч)" #: glade/pytrainer.glade:6298 -#, fuzzy msgid "<b>Velocity</b>" msgstr "<b>Удалить вид спорта</b>" @@ -425,17 +448,14 @@ msgstr "Подсчитать время" #: glade/pytrainer.glade:6367 -#, fuzzy msgid "Calculate Calories" msgstr "Подсчитать значения" #: glade/pytrainer.glade:6385 -#, fuzzy msgid "<b>Accumulated Altitude Change</b>" msgstr "Неровности" #: glade/pytrainer.glade:6455 -#, fuzzy msgid "Average (min/km)" msgstr "Среднее (км/ч)" @@ -452,7 +472,6 @@ msgstr "" #: glade/pytrainer.glade:6629 -#, fuzzy msgid "<b>Heart Rate</b>" msgstr "<b>Ударов в среднем:</b>" @@ -460,7 +479,8 @@ msgid "Maxim (bpm)" msgstr "" -#: glade/pytrainer.glade:6685 pytrainer/gui/windowmain.py:52 +#: glade/pytrainer.glade:6685 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:396 msgid "Average" msgstr "Среднее" @@ -469,11 +489,13 @@ msgid "<b>Comments</b>" msgstr "<b>Комментарии</b>" -#: glade/pytrainer.glade:6942 glade/pytrainer.glade:7237 +#: glade/pytrainer.glade:6942 +#: glade/pytrainer.glade:7237 msgid "Profile" msgstr "Профиль" -#: glade/pytrainer.glade:6989 glade/pytrainer.glade:7831 +#: glade/pytrainer.glade:6989 +#: glade/pytrainer.glade:7831 #: glade/pytrainer.glade:8379 msgid "Name" msgstr "Имя" @@ -534,12 +556,13 @@ msgid "<b>Add new Sport</b>" msgstr "<b>Добавить нвоый вид спорта</b>" -#: glade/pytrainer.glade:7859 glade/pytrainer.glade:8428 +#: glade/pytrainer.glade:7859 +#: glade/pytrainer.glade:8428 msgid "M.E.T." msgstr "" -#: glade/pytrainer.glade:7908 glade/pytrainer.glade:8477 -#, fuzzy +#: glade/pytrainer.glade:7908 +#: glade/pytrainer.glade:8477 msgid "Extra Weight" msgstr "Вес" @@ -552,14 +575,11 @@ msgstr "<b>Удалить вид спорта</b>" #: glade/pytrainer.glade:8140 -#, fuzzy msgid "" "You are going to remove a sport. When you delete a \n" "sport you delete the records asociated. Are you sure \n" "that you want do it?" -msgstr "" -"Вы собираетесь удалить вид спорта. Когда вы это сделаетезаписи объединятся. " -"Вы уверены, что хотите это сделать?удалить" +msgstr "Вы собираетесь удалить вид спорта. Когда вы это сделаетезаписи объединятся. Вы уверены, что хотите это сделать?удалить" #: glade/pytrainer.glade:8277 msgid "delete" @@ -577,13 +597,14 @@ msgid "Sports" msgstr "Спорт" -#: glade/pytrainer.glade:8667 pytrainer/daygraph.py:58 -#: pytrainer/heartrategraph.py:36 pytrainer/recordgraph.py:76 +#: glade/pytrainer.glade:8667 +#: pytrainer/daygraph.py:58 +#: pytrainer/heartrategraph.py:36 +#: pytrainer/recordgraph.py:76 msgid "Heart Rate" msgstr "" #: glade/pytrainer.glade:8694 -#, fuzzy msgid "General" msgstr "Пол" @@ -675,17 +696,18 @@ msgid "name-entry" msgstr "имя записи" -#: glade/pytrainer.glade:9358 glade/pytrainer.glade:9849 -#, fuzzy +#: glade/pytrainer.glade:9358 +#: glade/pytrainer.glade:9849 msgid "Name:" msgstr "Имя" -#: glade/pytrainer.glade:9386 glade/pytrainer.glade:9793 -#, fuzzy +#: glade/pytrainer.glade:9386 +#: glade/pytrainer.glade:9793 msgid "Status:" msgstr "<b>Статус:</b>" -#: glade/pytrainer.glade:9442 glade/pytrainer.glade:9765 +#: glade/pytrainer.glade:9442 +#: glade/pytrainer.glade:9765 msgid "status-entry" msgstr "<b>статус записи</b>" @@ -698,12 +720,10 @@ msgstr "Плагины" #: glade/pytrainer.glade:9680 -#, fuzzy msgid "<b>Plugin Details</b>" msgstr "<b>База данных</b>" #: glade/pytrainer.glade:9709 -#, fuzzy msgid "description-entry " msgstr "<b>описание записи</b>" @@ -725,16 +745,13 @@ #: pytrainer/main.py:237 msgid "You are going to remove one database entry. Are you sure yo want do it?" -msgstr "" -"Вы собираетесь удалить одну запись в базе данных. Уверены, что хотите это " -"сделать?" +msgstr "Вы собираетесь удалить одну запись в базе данных. Уверены, что хотите это сделать?" #: pytrainer/main.py:248 msgid "You are going to remove one waypoint. Are you sure yo want do it?" msgstr "Вы собираетесь удалить маршрут. Уверены, что хотите это сделать?" #: pytrainer/lib/gpx.py:52 -#, fuzzy msgid "No Name" msgstr "Имя" @@ -790,8 +807,10 @@ msgid "December" msgstr "Декабрь" -#: pytrainer/yeargraph.py:70 pytrainer/yeargraph.py:72 -#: pytrainer/yeargraph.py:74 pytrainer/yeargraph.py:76 +#: pytrainer/yeargraph.py:70 +#: pytrainer/yeargraph.py:72 +#: pytrainer/yeargraph.py:74 +#: pytrainer/yeargraph.py:76 #: pytrainer/yeargraph.py:78 msgid "month" msgstr "месяц" @@ -836,7 +855,8 @@ msgid "monthly calories" msgstr "калории за месяц" -#: pytrainer/gui/windowmain.py:49 pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:49 +#: pytrainer/gui/windowmain.py:52 #: pytrainer/gui/windowmain.py:56 msgid "id" msgstr "id" @@ -845,11 +865,13 @@ msgid "Kilometer" msgstr "Километр" -#: pytrainer/gui/windowmain.py:52 pytrainer/gui/windowmain.py:392 +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:392 msgid "Distance" msgstr "Дистанция" -#: pytrainer/gui/windowmain.py:52 pytrainer/gui/windowmain.py:395 +#: pytrainer/gui/windowmain.py:52 +#: pytrainer/gui/windowmain.py:395 msgid "Beats" msgstr "Удары" @@ -857,29 +879,31 @@ msgid "Waypoint" msgstr "Маршрут" -#: pytrainer/gui/windowplugins.py:70 pytrainer/gui/windowplugins.py:97 +#: pytrainer/gui/windowplugins.py:70 +#: pytrainer/gui/windowplugins.py:97 #: pytrainer/gui/windowextensions.py:70 msgid "Enable" msgstr "" -#: pytrainer/gui/windowplugins.py:72 pytrainer/gui/windowplugins.py:96 +#: pytrainer/gui/windowplugins.py:72 +#: pytrainer/gui/windowplugins.py:96 #: pytrainer/gui/windowextensions.py:72 -#, fuzzy msgid "Disable" msgstr "Дистанция" -#: pytrainer/gui/windowplugins.py:81 pytrainer/gui/windowextensions.py:81 +#: pytrainer/gui/windowplugins.py:81 +#: pytrainer/gui/windowextensions.py:81 #, python-format msgid "%s settings" msgstr "%s настройки" -#: pytrainer/gui/windowplugins.py:104 pytrainer/gui/windowextensions.py:104 +#: pytrainer/gui/windowplugins.py:104 +#: pytrainer/gui/windowextensions.py:104 #: pytrainer/gui/windowextensions.py:117 msgid "Ok" msgstr "Ok" #: pytrainer/gui/windowprofile.py:44 -#, fuzzy msgid "Male" msgstr "Значение" @@ -891,78 +915,78 @@ msgid "Track Name" msgstr "Название Трека" -#: pytrainer/daygraph.py:54 pytrainer/daygraph.py:56 pytrainer/daygraph.py:58 -#: pytrainer/heartrategraph.py:36 pytrainer/recordgraph.py:72 -#: pytrainer/recordgraph.py:74 pytrainer/recordgraph.py:76 +#: pytrainer/daygraph.py:54 +#: pytrainer/daygraph.py:56 +#: pytrainer/daygraph.py:58 +#: pytrainer/heartrategraph.py:36 +#: pytrainer/recordgraph.py:72 +#: pytrainer/recordgraph.py:74 +#: pytrainer/recordgraph.py:76 msgid "Distance (km)" msgstr "Дистанция (км)" -#: pytrainer/daygraph.py:54 pytrainer/recordgraph.py:72 +#: pytrainer/daygraph.py:54 +#: pytrainer/recordgraph.py:72 msgid "Height (m)" msgstr "Высота (м)" -#: pytrainer/daygraph.py:54 pytrainer/recordgraph.py:72 +#: pytrainer/daygraph.py:54 +#: pytrainer/recordgraph.py:72 msgid "Stage Profile" msgstr "Профиль уровня" -#: pytrainer/daygraph.py:56 pytrainer/recordgraph.py:74 +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:74 msgid "Velocity (Km/h)" msgstr "Скорость (км/ч)" #: pytrainer/daygraph.py:56 -#, fuzzy msgid "Velocity" msgstr "скорость" -#: pytrainer/daygraph.py:58 pytrainer/heartrategraph.py:36 +#: pytrainer/daygraph.py:58 +#: pytrainer/heartrategraph.py:36 #: pytrainer/recordgraph.py:76 -#, fuzzy msgid "Beats (bpm)" msgstr "Ударов в среднем (уд/мин)" -#: pytrainer/monthgraph.py:69 pytrainer/monthgraph.py:71 -#: pytrainer/monthgraph.py:73 pytrainer/monthgraph.py:75 +#: pytrainer/monthgraph.py:69 +#: pytrainer/monthgraph.py:71 +#: pytrainer/monthgraph.py:73 +#: pytrainer/monthgraph.py:75 #: pytrainer/monthgraph.py:77 msgid "day" msgstr "день" #: pytrainer/monthgraph.py:69 -#, fuzzy msgid "Kilometers" msgstr "Километр" #: pytrainer/monthgraph.py:69 -#, fuzzy msgid "Daily kilometers" msgstr "километров в день" #: pytrainer/monthgraph.py:71 -#, fuzzy msgid "Time in Hours" msgstr "время в часах" #: pytrainer/monthgraph.py:71 -#, fuzzy msgid "Daily Time" msgstr "время в день" #: pytrainer/monthgraph.py:73 -#, fuzzy msgid "Beats per Minute" msgstr "ударов в минуту" #: pytrainer/monthgraph.py:73 -#, fuzzy msgid "Daily Beats" msgstr "ударов в день" #: pytrainer/monthgraph.py:75 -#, fuzzy msgid "Daily Averages" msgstr "среднее за день" #: pytrainer/monthgraph.py:77 -#, fuzzy msgid "Daily Calories" msgstr "калории за день" @@ -971,47 +995,31 @@ msgstr "скорость" #: pytrainer/record.py:191 -msgid "" -"The gpx file seems to have several track records. Press cancel to select a " -"track record. Press Ok to load all of them as a single track record." -msgstr "" -"Кажется, GPX-файл содержит несколько трековых записей.Нажмите Отменить для " -"выбора записи трека. Нажмите Ok длязагрузки всех одиночных трековых записей." +msgid "The gpx file seems to have several track records. Press cancel to select a track record. Press Ok to load all of them as a single track record." +msgstr "Кажется, GPX-файл содержит несколько трековых записей.Нажмите Отменить для выбора записи трека. Нажмите Ok длязагрузки всех одиночных трековых записей." #: pytrainer/waypoint.py:67 -msgid "" -"The gpx file seems to be a several days records. Perhaps you will need to " -"edit your gpx file" -msgstr "" -"Кажется, GPX-файл содержит записи за несколько дней.Возможно, Вам придется " -"редактировать Ваше GPX-файл" +msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" +msgstr "Кажется, GPX-файл содержит записи за несколько дней.Возможно, Вам придется редактировать Ваше GPX-файл" #~ msgid "<b>Positive:</b>" #~ msgstr "Под гору" - #~ msgid "<b>Negative:</b>" #~ msgstr "В гору" - #~ msgid " <b>Name:</b>" #~ msgstr "<b>Имя</b>" - #~ msgid " <b>Description:</b>" #~ msgstr "<b>Описание</b>" - #~ msgid " <b>Type:</b>" #~ msgstr "<b>Тип</b>" - #~ msgid "New name" #~ msgstr "Новое имя" - #~ msgid "The free sport trainning center" #~ msgstr "Свободный центр спортивных занятий" - #~ msgid "window2" #~ msgstr "window2" - #~ msgid "Active" #~ msgstr "Активно" - #~ msgid "unActive" #~ msgstr "неАктивно" + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-06 12:47:50
|
Revision: 428 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=428&view=rev Author: dgranda Date: 2009-12-06 12:47:38 +0000 (Sun, 06 Dec 2009) Log Message: ----------- Tagging 1.7.0 release Added Paths: ----------- pytrainer/tags/1.7.0/ Property changes on: pytrainer/tags/1.7.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: <dg...@us...> - 2009-12-06 12:37:23
|
Revision: 427 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=427&view=rev Author: dgranda Date: 2009-12-06 12:37:13 +0000 (Sun, 06 Dec 2009) Log Message: ----------- Updating changelog, package dependencies and official version to 1.7.0 Modified Paths: -------------- pytrainer/trunk/CHANGES pytrainer/trunk/INSTALL pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/CHANGES =================================================================== --- pytrainer/trunk/CHANGES 2009-12-06 11:43:09 UTC (rev 426) +++ pytrainer/trunk/CHANGES 2009-12-06 12:37:13 UTC (rev 427) @@ -1,20 +1,23 @@ - PyTrainer changes for 1.7.0: +Updated Spanish translation (svn rev 420,423,424) +Updated French translation (svn rev 421) +Migration to lxml for better performance (svn rev 412,413,414) +Start of rework for Google Map rendering - experimental!, test with --gmaps3 at startup (svn 411,415) Modified on_sportlist_changed event to improve performance (svn rev 409) Fix for minor bug in translation scripts (svn rev 402) Fix for bug #2811470 - clickable link for further details on MET (links to wikipedia) (svn rev 391) -Fix for bug #2089342 auto refresh after import, edit and delete of records (svn rev 390) -Refactoring database and config file sanity checks (triggered with --check) (svn rev 389,392,396,401) -Added weekly view (svn rev 388,393,394,395,398,403-410) +Fix for bug #2089342 auto refresh after import, edit and delete of records (svn rev 390,425) +Refactoring database and config file sanity checks (triggered with --check at startup) (svn rev 389,392,396,401) +Added weekly view (svn rev 388,393,394,395,398,403-410,426) Fix for multiple graphs view (svn rev 386,387) Better error handling preventing pytrainer to crash (svn rev 364,369) -Support for plugin validation (svn rev 361,363,371) +Support for plugin validation (triggered with --valid at startup)(svn rev 361,363,371) Import TCXv2 files (svn rev 351,355,356) Improving import from TCXv1 format (svn rev 354,371,375,376) -Several improvements in plugins handling (svn rev 350,353,360,378) +Several improvements in plugins handling (svn rev 350,353,360,378,422) Import GPX files (svn rev 349) - - PyTrainer tasks for 1.6.0.9: Added dynamic loading and unloading of plugin menu items (svn rev 344) Modified: pytrainer/trunk/INSTALL =================================================================== --- pytrainer/trunk/INSTALL 2009-12-06 11:43:09 UTC (rev 426) +++ pytrainer/trunk/INSTALL 2009-12-06 12:37:13 UTC (rev 427) @@ -7,29 +7,24 @@ Here you are dependencies for PyTrainer. Of course you must have a working environment with proper shell configuration and typical GNU tools to uncompress (gunzip) and untar (tar) files. -1.1.- Mandatory packages (Fedora 10 package revisions as of 24.03.2009 for 1.6.0.7) +1.1.- Working packages (Fedora 12 package revisions as of 2009.12.06 for 1.7.0) -python-2.5.2-1 -libxml2-python-2.7.3-1 -(removed python-sqlite2-2.3.3-3 from 1.6.0.7 on) -pygtk2-libglade-2.13.0-3 -pygtk2-2.13.0-3 -python-matplotlib-0.98.1-1 -SOAPpy-0.11.6-7 -sqlite-3.5.6-2 (sqlite is preferred as db than mysql) -gnome-python2-gtkmozembed-2.19.1-27 +python-2.6.2-2 +python-matplotlib-0.98.5.2-5 +gnome-python2-gtkmozembed-2.25.3-13 +pygtk2-libglade-2.16.0-1.fc12.i686 +pygtk2-2.16.0-1.fc12.i686 +SOAPpy-0.11.6-10.fc12.noarch +python-lxml-2.2.3-1 +libxml2-python-2.7.6-1 +libxml2-2.7.6-1 +libxslt-python-1.1.26-1 +libxslt-1.1.26-1 +sqlite-3.6.20-1 (sqlite is preferred as db than mysql) gpsbabel-1.3.5-1 +xulrunner-1.9.1.5-1 +firefox-3.5.5-1 -(additional packages from 1.7.0 onwards) -python-lxml -libxml2 -libxslt - -1.2.- Optional packages (Google Maps integration) - -xulrunner-1.9.0.7-1 -firefox-3.0.7-1 - 2.- Installation process Copy the tarball file to a location where you have write and execution rights. Make sure executables are under your $PATH. Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-06 11:43:09 UTC (rev 426) +++ pytrainer/trunk/pytrainer/main.py 2009-12-06 12:37:13 UTC (rev 427) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.7.0pre" + self.version ="1.7.0" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-06 11:43:19
|
Revision: 426 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=426&view=rev Author: dgranda Date: 2009-12-06 11:43:09 +0000 (Sun, 06 Dec 2009) Log Message: ----------- Fixed a problem with days encoding for weekly view. Extra logging added Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/drawArea.py pytrainer/trunk/pytrainer/gui/windowmain.py pytrainer/trunk/pytrainer/weekgraph.py Modified: pytrainer/trunk/pytrainer/gui/drawArea.py =================================================================== --- pytrainer/trunk/pytrainer/gui/drawArea.py 2009-12-05 13:20:57 UTC (rev 425) +++ pytrainer/trunk/pytrainer/gui/drawArea.py 2009-12-06 11:43:09 UTC (rev 426) @@ -156,6 +156,8 @@ #TODO tidy logging.debug('>>') logging.debug("Title: %s", (title, )) + logging.debug("X values received: %s", str(xvalues)) + logging.debug("Y values received: %s", str(yvalues)) self.removeVboxChildren() #Check how many axes to draw @@ -168,7 +170,7 @@ else: #Error return - keys = yvalues[0].keys() + keys = yvalues[0].keys() # days of the week numRows = len(keys) numCols = len(xvalues[0]) if numRows == 0: @@ -186,6 +188,7 @@ #Display first axis for key in keys: + logging.debug("Day of the week: %s", str(key)) for ind in inds: ybottoms[ind] += yheights[ind] yheights[ind] = 0 #Zero heights @@ -210,6 +213,9 @@ plt.title(title[0]) axis.legend(loc=0) + logging.debug("X values first axis: %s", str(xvals)) + logging.debug("Y values first axis: %s", str(yheights)) + #Display twin axis if len(xvalues) == 2: self.showGraph=False Modified: pytrainer/trunk/pytrainer/gui/windowmain.py =================================================================== --- pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-05 13:20:57 UTC (rev 425) +++ pytrainer/trunk/pytrainer/gui/windowmain.py 2009-12-06 11:43:09 UTC (rev 426) @@ -352,6 +352,7 @@ km = calories = time = average = beats = 0 num_records = len(record_list) + logging.info("Number of records selected week: "+str(num_records)) time_in_min = 0 tbeats = 0 maxspeed = 0 Modified: pytrainer/trunk/pytrainer/weekgraph.py =================================================================== --- pytrainer/trunk/pytrainer/weekgraph.py 2009-12-05 13:20:57 UTC (rev 425) +++ pytrainer/trunk/pytrainer/weekgraph.py 2009-12-06 11:43:09 UTC (rev 426) @@ -35,6 +35,8 @@ tit = [] valsAreTime = [] + logging.debug("Values: "+str(values)) + #Reset the comboboxes if nothing selected value_selected = self.combovalue.get_active() if value_selected < 0: @@ -54,6 +56,8 @@ #TODO yvalues, valuesAreTime = self.get_values(values,value_selected) + logging.debug("yvalues: "+str(yvalues)) + logging.debug("valuesAreTime: "+str(valuesAreTime)) yval.append(yvalues) xlab.append(days) valsAreTime.append(valuesAreTime) @@ -78,7 +82,7 @@ valueCount = {} #Counts the totals to allow for averaging if needed for record in values: - day = datetime.datetime.strptime(record[0], "%Y-%m-%d").strftime("%a") # Gives Sun, Mon etc for this record + day = unicode(datetime.datetime.strptime(record[0], "%Y-%m-%d").strftime("%a")) # Gives Sun, Mon etc for this record sport = record[9] value = self.getValue(record, value_selected) if sport in valueDict: #Already got this sport This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-05 13:21:04
|
Revision: 425 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=425&view=rev Author: dgranda Date: 2009-12-05 13:20:57 +0000 (Sat, 05 Dec 2009) Log Message: ----------- Added refresh for daily view when importing (Bug id #2089342). Updated version Modified Paths: -------------- pytrainer/trunk/pytrainer/main.py Modified: pytrainer/trunk/pytrainer/main.py =================================================================== --- pytrainer/trunk/pytrainer/main.py 2009-12-05 13:16:37 UTC (rev 424) +++ pytrainer/trunk/pytrainer/main.py 2009-12-05 13:20:57 UTC (rev 425) @@ -97,7 +97,7 @@ def __init__(self,filename = None, data_path = None): logging.debug('>>') self.data_path = data_path - self.version ="1.6.0.9_svn#417" + self.version ="1.7.0pre" self.date = Date() main_dir = os.path.realpath(os.path.dirname(__file__)) #why? sys.path.insert(0, main_dir) #why? @@ -201,6 +201,7 @@ else: logging.debug("No files returned from Plugin") self.refreshListRecords() + self.refreshGraphView("day") logging.debug('<<') def runExtension(self,extension,id): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-05 13:16:46
|
Revision: 424 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=424&view=rev Author: dgranda Date: 2009-12-05 13:16:37 +0000 (Sat, 05 Dec 2009) Log Message: ----------- Minor changes to spanish translation. Credits updated Modified Paths: -------------- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po pytrainer/trunk/pytrainer/gui/aboutdialog.py 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 2009-12-04 21:17:28 UTC (rev 423) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po 2009-12-05 13:16:37 UTC (rev 424) @@ -8,7 +8,7 @@ "Project-Id-Version: vud 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-04 21:22+0100\n" -"PO-Revision-Date: 2009-12-04 22:14+0100\n" +"PO-Revision-Date: 2009-12-05 14:06+0100\n" "Last-Translator: David García Granda <dg...@gm...>\n" "Language-Team: Spanish <es...@li...>\n" "MIME-Version: 1.0\n" @@ -170,9 +170,8 @@ #: glade/pytrainer.glade:1145 #: pytrainer/gui/windowmain.py:171 #: pytrainer/gui/windowmain.py:172 -#, fuzzy msgid "m" -msgstr "km" +msgstr "m" #: glade/pytrainer.glade:780 msgid " " @@ -954,7 +953,7 @@ #: glade/pytrainer.glade:13455 msgid "<b>Extension Details</b>" -msgstr "<b>Detalles de la Extensión</b>" +msgstr "<b>Detalles de la extensión</b>" #: glade/pytrainer.glade:13483 msgid "name-entry" @@ -963,7 +962,7 @@ #: glade/pytrainer.glade:13539 #: glade/pytrainer.glade:13946 msgid "Status:" -msgstr "<b>Estado:</b>" +msgstr "Estado:" #: glade/pytrainer.glade:13595 #: glade/pytrainer.glade:13918 @@ -988,7 +987,7 @@ #: glade/pytrainer.glade:13974 msgid "nameEntry" -msgstr "Nueva Entrada" +msgstr "Nombre entrada" #: glade/pytrainer.glade:14145 msgid "Select track record" @@ -1018,14 +1017,13 @@ #: pytrainer/gui/windowplugins.py:97 #: pytrainer/gui/windowextensions.py:70 msgid "Enable" -msgstr "Habilitar" +msgstr "Activo" #: pytrainer/gui/windowplugins.py:72 #: pytrainer/gui/windowplugins.py:96 #: pytrainer/gui/windowextensions.py:72 -#, fuzzy msgid "Disable" -msgstr "Distancia" +msgstr "Desactivo" #: pytrainer/gui/windowplugins.py:81 #: pytrainer/gui/windowextensions.py:81 @@ -1110,15 +1108,13 @@ #: pytrainer/gui/windowmain.py:370 #: pytrainer/gui/windowmain.py:447 #: pytrainer/gui/windowmain.py:448 -#, fuzzy msgid "min/mile" -msgstr "min/km" +msgstr "min/milla" #: pytrainer/gui/windowmain.py:163 #: pytrainer/gui/windowmain.py:164 -#, fuzzy msgid "feet" -msgstr "borrar" +msgstr "pies" #: pytrainer/gui/windowmain.py:166 #: pytrainer/gui/windowmain.py:273 @@ -1153,7 +1149,7 @@ #: pytrainer/lib/gpx.py:90 msgid "No Name" -msgstr "Nombre" +msgstr "Sin nombre" #: pytrainer/lib/gpx.py:97 msgid "No Data" @@ -1255,7 +1251,7 @@ #: pytrainer/monthgraph.py:71 #: pytrainer/weekgraph.py:113 msgid "Daily Time" -msgstr "tiempo diario" +msgstr "Tiempo diario" #: pytrainer/monthgraph.py:73 #: pytrainer/yeargraph.py:74 @@ -1282,7 +1278,7 @@ #: pytrainer/monthgraph.py:77 #: pytrainer/weekgraph.py:119 msgid "Daily Calories" -msgstr "calorias diarias" +msgstr "Calorías diarias" #: pytrainer/waypoint.py:80 msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" @@ -1306,7 +1302,7 @@ #: pytrainer/yeargraph.py:72 msgid "Monthly Time" -msgstr "tiempo mensual" +msgstr "Tiempo mensual" #: pytrainer/yeargraph.py:74 msgid "Monthly Average Heart Rate" @@ -1318,7 +1314,7 @@ #: pytrainer/yeargraph.py:78 msgid "Monthly Calories" -msgstr "calorias mensuales" +msgstr "Calorías mensuales" #~ msgid "None" #~ msgstr "Ninguno" Modified: pytrainer/trunk/pytrainer/gui/aboutdialog.py =================================================================== --- pytrainer/trunk/pytrainer/gui/aboutdialog.py 2009-12-04 21:17:28 UTC (rev 423) +++ pytrainer/trunk/pytrainer/gui/aboutdialog.py 2009-12-05 13:16:37 UTC (rev 424) @@ -33,7 +33,7 @@ def run(self): authors = ["Fiz Vázquez <vu...@si...>\nDavid García Granda <dg...@gm...>\nJohn Blance <joh...@gm...>\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 = "Basque: Jabier Santamaria <men...@gm...>\nCatalan: Eloi Crespillo Itchart <el...@ik...>\nCzech: Lobus Pokorny <sp...@se...>\nFrench: Dj <dj...@dj...>, Pierre Gaigé <pg...@fr...>\nNorwegian: Havard Davidsen <hav...@gm...>\nPolish: Seweryn Kokot <sk...@po...>\nGerman: Aleks <al...@sc...>, Noèl Köthe <no...@de...>\nSpanish: Fiz Vázquez <vu...@si...>" + translator_credits = "Basque: Jabier Santamaria <men...@gm...>\nCatalan: Eloi Crespillo Itchart <el...@ik...>\nCzech: Lobus Pokorny <sp...@se...>\nFrench: Dj <dj...@dj...>, Pierre Gaigé <pg...@fr...>\nNorwegian: Havard Davidsen <hav...@gm...>\nPolish: Seweryn Kokot <sk...@po...>\nGerman: Aleks <al...@sc...>, Noèl Köthe <no...@de...>\nSpanish: 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) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-04 21:17:39
|
Revision: 423 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=423&view=rev Author: dgranda Date: 2009-12-04 21:17:28 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Updating spanish translation, 2nd - and hopefully last - attempt Modified Paths: -------------- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot pytrainer/trunk/messages.pot 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 2009-12-04 19:46:35 UTC (rev 422) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po 2009-12-04 21:17:28 UTC (rev 423) @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: vud 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-04 20:21+0100\n" -"PO-Revision-Date: 2009-12-04 20:32+0100\n" +"POT-Creation-Date: 2009-12-04 21:22+0100\n" +"PO-Revision-Date: 2009-12-04 22:14+0100\n" "Last-Translator: David García Granda <dg...@gm...>\n" "Language-Team: Spanish <es...@li...>\n" "MIME-Version: 1.0\n" @@ -25,7 +25,6 @@ msgstr "Archivo" #: glade/pytrainer.glade:72 -#, fuzzy msgid "_Export as Text Separated by Commas" msgstr "Exportar como texto separado por comas" @@ -46,7 +45,6 @@ msgstr "Listado de registros" #: glade/pytrainer.glade:166 -#, fuzzy msgid " _Waypoints Editor" msgstr "Editor de waypoints" @@ -60,7 +58,6 @@ msgstr "Extensiones" #: glade/pytrainer.glade:202 -#, fuzzy msgid "GPS Device Plugins" msgstr "Plugins de dispositivos GPS" @@ -92,9 +89,8 @@ msgstr "" #: glade/pytrainer.glade:527 -#, fuzzy msgid "<b>Sport:</b>" -msgstr "<b>Lista de deportes:</b>" +msgstr "<b>Deporte:</b>" #: glade/pytrainer.glade:555 #: glade/pytrainer.glade:2994 @@ -109,23 +105,20 @@ #: glade/pytrainer.glade:4292 #: glade/pytrainer.glade:5434 #: glade/pytrainer.glade:6783 -#, fuzzy msgid "<b>Speed:</b>" -msgstr "<b>Titulo:</b>" +msgstr "<b>Velocidad:</b>" #: glade/pytrainer.glade:612 #: glade/pytrainer.glade:3500 #: glade/pytrainer.glade:4656 #: glade/pytrainer.glade:5798 #: glade/pytrainer.glade:6953 -#, fuzzy msgid "<b>Pace:</b>" -msgstr "<b>Nombre:</b>" +msgstr "<b>Ritmo:</b>" #: glade/pytrainer.glade:640 -#, fuzzy msgid "<b>Ascent:</b>" -msgstr "<b>Pulsaciones:</b>" +msgstr "<b>Ascenso:</b>" #: glade/pytrainer.glade:668 msgid "<b>Comments:</b>" @@ -198,7 +191,6 @@ msgstr " " #: glade/pytrainer.glade:920 -#, fuzzy msgid "<b>Date:</b>" msgstr "<b>Fecha:</b>" @@ -211,23 +203,20 @@ msgstr "<b>Distancia:</b>" #: glade/pytrainer.glade:977 -#, fuzzy msgid "<b>Max Speed</b>" -msgstr "<b>Nombre:</b>" +msgstr "<b>Pico velocidad:</b>" #: glade/pytrainer.glade:1005 #: glade/pytrainer.glade:3556 #: glade/pytrainer.glade:4684 #: glade/pytrainer.glade:5826 #: glade/pytrainer.glade:6982 -#, fuzzy msgid "<b>Max Pace:</b>" -msgstr "<b>Nombre:</b>" +msgstr "<b>Pico ritmo:</b>" #: glade/pytrainer.glade:1033 -#, fuzzy msgid "<b>Descent:</b>" -msgstr "<b>Distancia:</b>" +msgstr "<b>Descenso:</b>" #: glade/pytrainer.glade:1061 msgid " " @@ -302,7 +291,7 @@ #: glade/pytrainer.glade:1520 msgid " <b>Title:</b>" -msgstr "<b>Titulo:</b>" +msgstr "<b>Título:</b>" #: glade/pytrainer.glade:1634 msgid "" @@ -321,7 +310,7 @@ #: glade/pytrainer.glade:6180 #: glade/pytrainer.glade:7336 msgid "Versus" -msgstr "Contra" +msgstr "contra" #: glade/pytrainer.glade:1678 msgid "" @@ -347,26 +336,23 @@ #: glade/pytrainer.glade:5518 #: glade/pytrainer.glade:6334 msgid "<b>Calories: </b>" -msgstr "<b>Calorías:</b>" +msgstr "<b>Calorías: </b>" #: glade/pytrainer.glade:1899 #: glade/pytrainer.glade:3612 #: glade/pytrainer.glade:4796 #: glade/pytrainer.glade:5938 #: glade/pytrainer.glade:7066 -#, fuzzy msgid "<b>Max Beats:</b>" -msgstr "<b>Pulsaciones:</b>" +msgstr "<b>Pico pulsaciones:</b>" #: glade/pytrainer.glade:1927 -#, fuzzy msgid "<b>HR Zones Method:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Método de cálculo:</b>" #: glade/pytrainer.glade:1956 -#, fuzzy msgid "<b>HR Zone5:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Máximo esfuerzo:</b>" #: glade/pytrainer.glade:1984 #: glade/pytrainer.glade:2348 @@ -378,24 +364,20 @@ msgstr "Cal" #: glade/pytrainer.glade:2124 -#, fuzzy msgid "<b>HR Zone4:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Anaeróbica:</b>" #: glade/pytrainer.glade:2152 -#, fuzzy msgid "<b>HR Zone3:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Aeróbica:</b>" #: glade/pytrainer.glade:2180 -#, fuzzy msgid "<b>HR Zone2:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Quemagrasas:</b>" #: glade/pytrainer.glade:2208 -#, fuzzy msgid "<b>HR Zone1:</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Recuperación:</b>" #: glade/pytrainer.glade:2236 #: glade/pytrainer.glade:2292 @@ -430,9 +412,8 @@ msgstr " " #: glade/pytrainer.glade:2580 -#, fuzzy msgid " <b>Heart Rate:</b>" -msgstr "<b>Fecha:</b>" +msgstr "<b>Pulsaciones:</b>" #: glade/pytrainer.glade:2757 #: glade/pytrainer.glade:8150 @@ -453,9 +434,8 @@ #: glade/pytrainer.glade:4461 #: glade/pytrainer.glade:5603 #: glade/pytrainer.glade:6924 -#, fuzzy msgid "<b>Max Speed:</b>" -msgstr "<b>Nombre:</b>" +msgstr "<b>Velocidad máxima:</b>" #: glade/pytrainer.glade:3388 #: glade/pytrainer.glade:4432 @@ -506,7 +486,6 @@ msgstr " " #: glade/pytrainer.glade:4918 -#, fuzzy msgid " <b>Week:</b>" msgstr "<b>Semana:</b>" @@ -597,26 +576,22 @@ msgstr "" #: glade/pytrainer.glade:7861 -#, fuzzy msgid "Latitude: " msgstr "<b>Latitud:</b>" #: glade/pytrainer.glade:7889 -#, fuzzy msgid " Name:" msgstr "Nombre:" #: glade/pytrainer.glade:7917 -#, fuzzy msgid "Longitude:" msgstr "<b>Longitud:</b>" #: glade/pytrainer.glade:7945 #: glade/pytrainer.glade:13567 #: glade/pytrainer.glade:13890 -#, fuzzy msgid "Description:" -msgstr "<b>Descripcion:</b>" +msgstr "<b>Descripción:</b>" #: glade/pytrainer.glade:8065 msgid "<b> Waypoint: </b>" @@ -632,36 +607,31 @@ #: glade/pytrainer.glade:8363 msgid "New Entry" -msgstr "Nueva Entrada" +msgstr "Nueva entrada" #: glade/pytrainer.glade:8436 -#, fuzzy msgid "Title:" msgstr "Título:" #: glade/pytrainer.glade:8485 -#, fuzzy msgid "GPX File:" -msgstr "Archivo Gpxl" +msgstr "Archivo GPX" #: glade/pytrainer.glade:8555 msgid "Calculate Values" msgstr "Calcular valores" #: glade/pytrainer.glade:8574 -#, fuzzy msgid "Sport:" msgstr "Deporte:" #: glade/pytrainer.glade:8625 -#, fuzzy msgid "<b>Main</b>" -msgstr "<b>Mes:</b>" +msgstr "<b>Principal</b>" #: glade/pytrainer.glade:8686 -#, fuzzy msgid "Distance (Km):" -msgstr "Distancia (Km)" +msgstr "Distancia (Km):" #: glade/pytrainer.glade:8715 #: glade/pytrainer.glade:8912 @@ -669,45 +639,37 @@ #: glade/pytrainer.glade:9439 #: glade/pytrainer.glade:9907 #: glade/pytrainer.glade:12638 -#, fuzzy msgid "Calculate" -msgstr "Calcular Tiempo" +msgstr "Calcular" #: glade/pytrainer.glade:8734 -#, fuzzy msgid "Time:" -msgstr "Tiempo" +msgstr "Tiempo:" #: glade/pytrainer.glade:8932 -#, fuzzy msgid "Date:" -msgstr "Fecha" +msgstr "Fecha:" #: glade/pytrainer.glade:9052 #: glade/pytrainer.glade:12688 -#, fuzzy msgid "<b>General</b>" -msgstr "<b>Media:</b>" +msgstr "<b>General:</b>" #: glade/pytrainer.glade:9113 -#, fuzzy msgid "Max (km/h):" -msgstr "Media (Km/h)" +msgstr "Punta (Km/h)" #: glade/pytrainer.glade:9164 -#, fuzzy msgid "Velocity (km/h)" msgstr "Velocidad (km/h)" #: glade/pytrainer.glade:9239 -#, fuzzy msgid "<b>Velocity</b>" -msgstr "<b>Borrar deporte</b>" +msgstr "<b>Velocidad</b>" #: glade/pytrainer.glade:9275 -#, fuzzy msgid "Quick Entry" -msgstr "Nueva Entrada" +msgstr "Nueva entrada" #: glade/pytrainer.glade:9335 msgid "Max (min/km):" @@ -718,9 +680,8 @@ msgstr "Ritmo (min/km)" #: glade/pytrainer.glade:9462 -#, fuzzy msgid "<b>Pace</b>" -msgstr "<b>Nombre:</b>" +msgstr "<b>Ritmo</b>" #: glade/pytrainer.glade:9523 msgid "Ascent:" @@ -731,7 +692,6 @@ msgstr "Descenso:" #: glade/pytrainer.glade:9630 -#, fuzzy msgid "<b>Accumulated Altitude Change</b>" msgstr "<b>Desnivel acumulado:</b>" @@ -753,12 +713,11 @@ #: glade/pytrainer.glade:9845 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:</a> Para el cálculo de calorías es necesario introducir el valor de MET del deporte (en Preferencias -> Deporte)</small>" +msgstr "<small><b>Nota:</a> para el cálculo de calorías es necesario introducir el valor de MET del deporte (en Preferencias -> Deporte)</small>" #: glade/pytrainer.glade:9962 -#, fuzzy msgid "<b>Heart Rate</b>" -msgstr "<b>Media pulsaciones:</b>" +msgstr "<b>Pulsaciones</b>" #: glade/pytrainer.glade:9998 msgid "Advanced" @@ -769,9 +728,8 @@ msgstr "<b>Comentarios</b>" #: glade/pytrainer.glade:10124 -#, fuzzy msgid "Comments" -msgstr "<b>Comentarios</b>" +msgstr "Comentarios" #: glade/pytrainer.glade:10229 msgid "Preferences" @@ -790,27 +748,22 @@ msgstr "<b>Sistema de medida</b>" #: glade/pytrainer.glade:10411 -#, fuzzy msgid "Database type:" msgstr "Tipo de base de datos" #: glade/pytrainer.glade:10439 -#, fuzzy msgid "Database host:" msgstr "Servidor base de datos" #: glade/pytrainer.glade:10488 -#, fuzzy msgid "Database name:" msgstr "Nombre base de datos" #: glade/pytrainer.glade:10556 -#, fuzzy msgid "Database user:" -msgstr "Usuarios base de datos" +msgstr "Usuario base de datos" #: glade/pytrainer.glade:10584 -#, fuzzy msgid "Database pass:" msgstr "Contraseña base de datos" @@ -824,54 +777,45 @@ #: glade/pytrainer.glade:10769 msgid "<small><b>Note:</b> Change this only if you know what you are doing</small>" -msgstr "<small><b>Nota:</b> Cambie ésto solamente si sabe lo que hace.</small>" +msgstr "<small><b>Nota:</b> cambie esto solamente si sabe lo que hace</small>" #: glade/pytrainer.glade:10801 -#, fuzzy msgid "<b>Port Connnection</b>" -msgstr "<b>Descripción:</b>" +msgstr "<b>Puerto de conexión:</b>" #: glade/pytrainer.glade:10837 -#, fuzzy msgid "General" msgstr "General" #: glade/pytrainer.glade:10890 -#, fuzzy msgid "User name:" -msgstr "Nuevo nombre" +msgstr "Nombre de usuario:" #: glade/pytrainer.glade:10918 -#, fuzzy msgid "Gender:" -msgstr "Género" +msgstr "Género:" #: glade/pytrainer.glade:10964 -#, fuzzy msgid "Height:" -msgstr "Altura" +msgstr "Altura:" #: glade/pytrainer.glade:11035 msgid "Date of birth:" msgstr "Fecha de nacimiento:" #: glade/pytrainer.glade:11147 -#, fuzzy msgid "Weight:" -msgstr "Peso" +msgstr "Peso:" #: glade/pytrainer.glade:11179 -#, fuzzy msgid "<b>Athlete Details</b>" msgstr "<b>Datos personales</b>" #: glade/pytrainer.glade:11208 -#, fuzzy msgid "Athlete" msgstr "Atleta" #: glade/pytrainer.glade:11391 -#, fuzzy msgid "<b>Sport List</b>" msgstr "<b>Lista de deportes:</b>" @@ -882,16 +826,14 @@ #: glade/pytrainer.glade:11500 #: glade/pytrainer.glade:13511 #: glade/pytrainer.glade:14002 -#, fuzzy msgid "Name:" -msgstr "Nombre" +msgstr "Nombre:" #: glade/pytrainer.glade:11528 msgid "M.E.T.:" msgstr "M.E.T.:" #: glade/pytrainer.glade:11577 -#, fuzzy msgid "Extra Weight:" msgstr "Peso extra:" @@ -901,7 +843,6 @@ msgstr "Más información sobre el coeficiente M.E.T. en Wikipedia" #: glade/pytrainer.glade:11755 -#, fuzzy msgid "<b>Add New Sport</b>" msgstr "<b>Añadir nuevo deporte</b>" @@ -918,7 +859,6 @@ "¿Desea continuar?" #: glade/pytrainer.glade:11984 -#, fuzzy msgid "<b>Delete Sport</b>" msgstr "<b>Borrar deporte</b>" @@ -936,12 +876,10 @@ #: glade/pytrainer.glade:12201 #: pytrainer/gui/windowprofile.py:69 -#, fuzzy msgid "Extra Weight" -msgstr "Peso" +msgstr "Peso extra" #: glade/pytrainer.glade:12359 -#, fuzzy msgid "<b>Edit Sport</b>" msgstr "<b>Editar deporte</b>" @@ -968,29 +906,28 @@ #: glade/pytrainer.glade:12609 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>" +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/pytrainer.glade:12748 msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>" -msgstr "<small><b>NOTE:</b> Rellene todos los campos relativos a pulsaciones para usar el método Karvonen</small>" +msgstr "<small><b>Nota:</b> rellene todos los campos relativos a pulsaciones si usa el método Karvonen</small>" #: glade/pytrainer.glade:12777 msgid "Percentages based method" -msgstr "Metodo basado en porcentajes" +msgstr "Basado en porcentajes" #: glade/pytrainer.glade:12799 #: pytrainer/gui/windowmain.py:254 msgid "Karvonen method" -msgstr "Método Karvonen" +msgstr "Karvonen" #: glade/pytrainer.glade:12821 msgid "Select how to calculate your heart rate zones." -msgstr "Seleccione cómo calcular las zonas de pulsaciones" +msgstr "Seleccione cómo calcular las zonas de frecuencia cardiaca" #: glade/pytrainer.glade:12853 -#, fuzzy msgid "<b>Heart Rate Zones</b>" -msgstr "<b>Pulsaciones:</b>" +msgstr "<b>Zonas de frecuencia cardiaca</b>" #: glade/pytrainer.glade:12889 #: pytrainer/daygraph.py:56 @@ -1005,7 +942,7 @@ #: glade/pytrainer.glade:13196 msgid "Edit Record" -msgstr "Editar Registro" +msgstr "Editar registro" #: glade/pytrainer.glade:13217 msgid "Show graph in classic view" @@ -1025,7 +962,6 @@ #: glade/pytrainer.glade:13539 #: glade/pytrainer.glade:13946 -#, fuzzy msgid "Status:" msgstr "<b>Estado:</b>" @@ -1043,9 +979,8 @@ msgstr "Plugins" #: glade/pytrainer.glade:13833 -#, fuzzy msgid "<b>Plugin Details</b>" -msgstr "<b>Base de datos:</b>" +msgstr "<b>Detalles del plugin:</b>" #: glade/pytrainer.glade:13862 msgid "description-entry " @@ -1068,16 +1003,14 @@ msgstr "¿Borrar este waypoint?" #: pytrainer/gui/windowprofile.py:51 -#, fuzzy msgid "Male" -msgstr "Valor" +msgstr "Varón" #: pytrainer/gui/windowprofile.py:52 msgid "Female" msgstr "Mujer" #: pytrainer/gui/windowprofile.py:69 -#, fuzzy msgid "MET" msgstr "M.E.T." @@ -1116,14 +1049,12 @@ #: pytrainer/gui/windowmain.py:60 #: pytrainer/gui/windowmain.py:674 -#, fuzzy msgid "Title" -msgstr "Titulo" +msgstr "Título" #: pytrainer/gui/windowmain.py:60 #: pytrainer/gui/windowmain.py:675 #: pytrainer/gui/dialogselecttrack.py:40 -#, fuzzy msgid "Date" msgstr "Fecha" @@ -1136,7 +1067,6 @@ #: pytrainer/gui/windowmain.py:60 #: pytrainer/gui/windowmain.py:678 #: pytrainer/extensions/googlemaps.py:91 -#, fuzzy msgid "Time" msgstr "Tiempo" @@ -1158,9 +1088,8 @@ #: pytrainer/gui/windowmain.py:267 #: pytrainer/gui/windowmain.py:366 #: pytrainer/gui/windowmain.py:444 -#, fuzzy msgid "miles" -msgstr "Archivo" +msgstr "millas" #: pytrainer/gui/windowmain.py:159 #: pytrainer/gui/windowmain.py:160 @@ -1196,14 +1125,12 @@ #: pytrainer/gui/windowmain.py:372 #: pytrainer/gui/windowmain.py:450 #: pytrainer/extensions/googlemaps.py:91 -#, fuzzy msgid "km" -msgstr "Km/h" +msgstr "Km" #: pytrainer/gui/windowmain.py:256 -#, fuzzy msgid "Percentages method" -msgstr "Método basado en porcentajes" +msgstr "basado en porcentajes" #: pytrainer/gui/dialogselecttrack.py:40 msgid "Track Name" @@ -1216,9 +1143,8 @@ #: pytrainer/gui/drawArea.py:143 #: pytrainer/extensions/googlemaps.py:89 -#, fuzzy msgid "min" -msgstr "min/km" +msgstr "min" #: pytrainer/gui/windowextensions.py:104 #: pytrainer/gui/windowextensions.py:117 @@ -1226,7 +1152,6 @@ msgstr "Ok" #: pytrainer/lib/gpx.py:90 -#, fuzzy msgid "No Name" msgstr "Nombre" @@ -1279,33 +1204,28 @@ msgstr "Perfil de Etapa" #: pytrainer/daygraph.py:54 -#, fuzzy msgid "Velocity (Km/h)" msgstr "Velocidad (km/h)" #: pytrainer/daygraph.py:54 -#, fuzzy msgid "Velocity" -msgstr "velocidad" +msgstr "Velocidad" #: pytrainer/daygraph.py:56 #: pytrainer/recordgraph.py:85 #: pytrainer/heartrategraph.py:38 -#, fuzzy msgid "Beats (bpm)" msgstr "Media pulsaciones (ppm)" #: pytrainer/recordgraph.py:81 -#, fuzzy msgid "Speed (Km/h)" -msgstr "media (km/h)" +msgstr "Velocidad (km/h)" #: pytrainer/recordgraph.py:81 msgid "Speed" msgstr "Velocidad" #: pytrainer/recordgraph.py:83 -#, fuzzy msgid "Pace (min/km)" msgstr "Ritmo (min/km)" @@ -1319,24 +1239,21 @@ #: pytrainer/monthgraph.py:75 #: pytrainer/monthgraph.py:77 msgid "day" -msgstr "dia" +msgstr "día" #: pytrainer/monthgraph.py:69 #: pytrainer/weekgraph.py:111 -#, fuzzy msgid "Daily Distance" msgstr "Distancia" #: pytrainer/monthgraph.py:71 #: pytrainer/yeargraph.py:72 #: pytrainer/weekgraph.py:113 -#, fuzzy msgid "Time (hours)" msgstr "Tiempo en horas" #: pytrainer/monthgraph.py:71 #: pytrainer/weekgraph.py:113 -#, fuzzy msgid "Daily Time" msgstr "tiempo diario" @@ -1348,26 +1265,22 @@ #: pytrainer/monthgraph.py:73 #: pytrainer/weekgraph.py:115 -#, fuzzy msgid "Daily Average Heart Rate" -msgstr "medias diarias" +msgstr "Pulsaciones diarias" #: pytrainer/monthgraph.py:75 #: pytrainer/yeargraph.py:76 #: pytrainer/weekgraph.py:117 -#, fuzzy msgid "Average Speed (km/h)" -msgstr "media (km/h)" +msgstr "Velocidad media (km/h)" #: pytrainer/monthgraph.py:75 #: pytrainer/weekgraph.py:117 -#, fuzzy msgid "Daily Average Speed" msgstr "medias diarias" #: pytrainer/monthgraph.py:77 #: pytrainer/weekgraph.py:119 -#, fuzzy msgid "Daily Calories" msgstr "calorias diarias" @@ -1388,27 +1301,22 @@ msgstr "mes" #: pytrainer/yeargraph.py:70 -#, fuzzy msgid "Monthly Distance" msgstr "Distancia" #: pytrainer/yeargraph.py:72 -#, fuzzy msgid "Monthly Time" msgstr "tiempo mensual" #: pytrainer/yeargraph.py:74 -#, fuzzy msgid "Monthly Average Heart Rate" -msgstr "medias mensuales" +msgstr "Pulsaciones medias mensuales" #: pytrainer/yeargraph.py:76 -#, fuzzy msgid "Monthly Average Speed" msgstr "medias mensuales" #: pytrainer/yeargraph.py:78 -#, fuzzy msgid "Monthly Calories" msgstr "calorias mensuales" Modified: pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot =================================================================== --- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot 2009-12-04 19:46:35 UTC (rev 422) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot 2009-12-04 21:17:28 UTC (rev 423) @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-04 20:21+0100\n" -"PO-Revision-Date: 2009-12-04 20:21+0100\n" +"POT-Creation-Date: 2009-12-04 21:22+0100\n" +"PO-Revision-Date: 2009-12-04 21:22+0100\n" "Last-Translator: David Garca Granda <dg...@gm...>\n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" Modified: pytrainer/trunk/messages.pot =================================================================== --- pytrainer/trunk/messages.pot 2009-12-04 19:46:35 UTC (rev 422) +++ pytrainer/trunk/messages.pot 2009-12-04 21:17:28 UTC (rev 423) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-04 20:21+0100\n" +"POT-Creation-Date: 2009-12-04 21:22+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-04 19:46:44
|
Revision: 422 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=422&view=rev Author: dgranda Date: 2009-12-04 19:46:35 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Minor changes related to logging and warnings showed Modified Paths: -------------- pytrainer/trunk/plugins/garmin-hr/garminhr.py Modified: pytrainer/trunk/plugins/garmin-hr/garminhr.py =================================================================== --- pytrainer/trunk/plugins/garmin-hr/garminhr.py 2009-12-04 19:40:07 UTC (rev 421) +++ pytrainer/trunk/plugins/garmin-hr/garminhr.py 2009-12-04 19:46:35 UTC (rev 422) @@ -63,7 +63,8 @@ outgps = commands.getstatusoutput("gpsbabel -t -i garmin -f %s -o gtrnctr -F %s | zenity --progress --pulsate --text='Loading Data' auto-close" % (self.input_dev, gpsbabelOutputFile) ) if outgps[0]==0: if outgps[1] == "Found no Garmin USB devices.": # check localizations - print "GPSBabel found no Garmin USB devices" + logging.error ("GPSBabel found no Garmin USB devices") + os.popen("zenity --error --text='GPSBabel found no Garmin USB devices'"); pass else: #gpsbabel worked - now process file... if self.valid_input_file(gpsbabelOutputFile): @@ -100,9 +101,9 @@ if version[2] == validVersion: return True else: - print "GPSBabel at version %s instead of expected version %s" % (version[2], validVersion) + logging.error("GPSBabel at version %s instead of expected version %s" % (version[2], validVersion)) except: - print "Unexpected result from gpsbabel -V" + logging.error("Unexpected result from gpsbabel -V") return False return False This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-04 19:40:16
|
Revision: 421 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=421&view=rev Author: dgranda Date: 2009-12-04 19:40:07 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Updated french translation (thnx to Pierre) Modified Paths: -------------- pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po 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 2009-12-04 19:38:00 UTC (rev 420) +++ pytrainer/trunk/locale/fr/LC_MESSAGES/pytrainer_fr.po 2009-12-04 19:40:07 UTC (rev 421) @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: pytrainer_fr\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-02-27 22:15+0100\n" -"PO-Revision-Date: 2008-02-27 22:50+0100\n" +"POT-Creation-Date: 2009-12-02 19:33+0100\n" +"PO-Revision-Date: 2009-12-02 19:36+0100\n" "Last-Translator: Pierre Gaigé <pg...@fr...>\n" "Language-Team: <fr...@li...>\n" "MIME-Version: 1.0\n" @@ -21,245 +21,283 @@ "X-Poedit-Language: French\n" "X-Poedit-Country: FRANCE\n" -#: glade/pytrainer.glade:10 +#: glade/pytrainer.glade:8 msgid "window1" msgstr "fenêtre1" -#: glade/pytrainer.glade:50 +#: glade/pytrainer.glade:48 msgid "_File" msgstr "_Fichier" -#: glade/pytrainer.glade:74 +#: glade/pytrainer.glade:72 msgid "_Export as Text Separated by Commas" msgstr "_Exporter un Fichier Texte séparé par des virgules" -#: glade/pytrainer.glade:114 +#: glade/pytrainer.glade:112 msgid "_Edit" msgstr "_Édition" -#: glade/pytrainer.glade:136 +#: glade/pytrainer.glade:134 msgid "_View" msgstr "_Vue" -#: glade/pytrainer.glade:145 +#: glade/pytrainer.glade:143 msgid " _Classic View" msgstr "_Vue classique" -#: glade/pytrainer.glade:156 +#: glade/pytrainer.glade:154 msgid " _List View" msgstr "_Vue en liste" -#: glade/pytrainer.glade:168 +#: glade/pytrainer.glade:166 msgid " _Waypoints Editor" msgstr "_Vue d'édition des Points de Localisation" -#: glade/pytrainer.glade:184 +#: glade/pytrainer.glade:182 msgid "Tools" msgstr "Outils" -#: glade/pytrainer.glade:194 -#: glade/pytrainer.glade:12298 +#: glade/pytrainer.glade:192 +#: glade/pytrainer.glade:13379 msgid "Extensions" msgstr "Extensions" -#: glade/pytrainer.glade:204 +#: glade/pytrainer.glade:202 msgid "GPS Device Plugins" msgstr "Plugins pour les Périphériques GPS" -#: glade/pytrainer.glade:218 +#: glade/pytrainer.glade:216 msgid "_Help" msgstr "_Aide" -#: glade/pytrainer.glade:338 -#: pytrainer/gui/windowprofile.py:67 -#: pytrainer/gui/windowmain.py:49 -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:471 +#: glade/pytrainer.glade:336 +#: pytrainer/gui/windowprofile.py:69 +#: pytrainer/gui/windowmain.py:57 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:677 msgid "Sport" msgstr "Sport" -#: glade/pytrainer.glade:364 +#: glade/pytrainer.glade:362 msgid "All Sports" msgstr "Tous les Sports" -#: glade/pytrainer.glade:473 -#: glade/pytrainer.glade:838 -#: glade/pytrainer.glade:866 +#: glade/pytrainer.glade:471 +#: glade/pytrainer.glade:836 +#: glade/pytrainer.glade:864 msgid " " msgstr "" -#: glade/pytrainer.glade:501 -#: glade/pytrainer.glade:894 +#: glade/pytrainer.glade:499 +#: glade/pytrainer.glade:892 msgid " " msgstr "" -#: glade/pytrainer.glade:529 +#: glade/pytrainer.glade:527 msgid "<b>Sport:</b>" msgstr "<b>Sport:</b>" -#: glade/pytrainer.glade:557 -#: glade/pytrainer.glade:2996 -#: glade/pytrainer.glade:4124 -#: glade/pytrainer.glade:5419 +#: glade/pytrainer.glade:555 +#: glade/pytrainer.glade:2994 +#: glade/pytrainer.glade:4122 +#: glade/pytrainer.glade:5264 +#: glade/pytrainer.glade:6559 msgid "<b>Time:</b>" msgstr "<b>Temps:</b>" -#: glade/pytrainer.glade:586 -#: glade/pytrainer.glade:3193 -#: glade/pytrainer.glade:4294 -#: glade/pytrainer.glade:5643 +#: glade/pytrainer.glade:584 +#: glade/pytrainer.glade:3191 +#: glade/pytrainer.glade:4292 +#: glade/pytrainer.glade:5434 +#: glade/pytrainer.glade:6783 msgid "<b>Speed:</b>" msgstr "<b>Vitesse:</b>" -#: glade/pytrainer.glade:614 -#: glade/pytrainer.glade:3502 -#: glade/pytrainer.glade:4658 -#: glade/pytrainer.glade:5813 +#: glade/pytrainer.glade:612 +#: glade/pytrainer.glade:3500 +#: glade/pytrainer.glade:4656 +#: glade/pytrainer.glade:5798 +#: glade/pytrainer.glade:6953 msgid "<b>Pace:</b>" msgstr "<b>Cadence:</b>" -#: glade/pytrainer.glade:642 +#: glade/pytrainer.glade:640 msgid "<b>Ascent:</b>" msgstr "<b>Dénivelé Pos.:</b>" -#: glade/pytrainer.glade:670 +#: glade/pytrainer.glade:668 msgid "<b>Comments:</b>" msgstr "<b>Commentaires:</b>" -#: glade/pytrainer.glade:698 -#: glade/pytrainer.glade:1381 -#: glade/pytrainer.glade:3249 -#: glade/pytrainer.glade:3306 -#: glade/pytrainer.glade:4350 -#: glade/pytrainer.glade:4519 -#: glade/pytrainer.glade:5699 -#: glade/pytrainer.glade:5727 +#: glade/pytrainer.glade:696 +#: glade/pytrainer.glade:1379 +#: glade/pytrainer.glade:3247 +#: glade/pytrainer.glade:3304 +#: glade/pytrainer.glade:4348 +#: glade/pytrainer.glade:4517 +#: glade/pytrainer.glade:5490 +#: glade/pytrainer.glade:5659 +#: glade/pytrainer.glade:6839 +#: glade/pytrainer.glade:6867 +#: pytrainer/gui/windowmain.py:167 +#: pytrainer/gui/windowmain.py:168 +#: pytrainer/gui/windowmain.py:274 +#: pytrainer/gui/windowmain.py:275 +#: pytrainer/gui/windowmain.py:373 +#: pytrainer/gui/windowmain.py:374 +#: pytrainer/gui/windowmain.py:451 +#: pytrainer/gui/windowmain.py:452 msgid "km/h" msgstr "km/h" -#: glade/pytrainer.glade:726 -#: glade/pytrainer.glade:1091 -#: glade/pytrainer.glade:3530 -#: glade/pytrainer.glade:3586 -#: glade/pytrainer.glade:4714 -#: glade/pytrainer.glade:4742 -#: glade/pytrainer.glade:5870 -#: glade/pytrainer.glade:5898 +#: glade/pytrainer.glade:724 +#: glade/pytrainer.glade:1089 +#: glade/pytrainer.glade:3528 +#: glade/pytrainer.glade:3584 +#: glade/pytrainer.glade:4712 +#: glade/pytrainer.glade:4740 +#: glade/pytrainer.glade:5854 +#: glade/pytrainer.glade:5882 +#: glade/pytrainer.glade:7010 +#: glade/pytrainer.glade:7038 +#: pytrainer/gui/windowmain.py:169 +#: pytrainer/gui/windowmain.py:170 +#: pytrainer/gui/windowmain.py:276 +#: pytrainer/gui/windowmain.py:277 +#: pytrainer/gui/windowmain.py:375 +#: pytrainer/gui/windowmain.py:376 +#: pytrainer/gui/windowmain.py:453 +#: pytrainer/gui/windowmain.py:454 msgid "min/km" msgstr "min/km" -#: glade/pytrainer.glade:754 -#: glade/pytrainer.glade:1147 +#: glade/pytrainer.glade:752 +#: glade/pytrainer.glade:1145 +#: pytrainer/gui/windowmain.py:171 +#: pytrainer/gui/windowmain.py:172 msgid "m" msgstr "m" -#: glade/pytrainer.glade:782 +#: glade/pytrainer.glade:780 msgid " " msgstr "" -#: glade/pytrainer.glade:810 -#: glade/pytrainer.glade:1119 -#: glade/pytrainer.glade:2042 -#: glade/pytrainer.glade:2070 -#: glade/pytrainer.glade:2098 -#: glade/pytrainer.glade:2266 -#: glade/pytrainer.glade:3698 -#: glade/pytrainer.glade:4854 +#: glade/pytrainer.glade:808 +#: glade/pytrainer.glade:1117 +#: glade/pytrainer.glade:2040 +#: glade/pytrainer.glade:2068 +#: glade/pytrainer.glade:2096 +#: glade/pytrainer.glade:2264 +#: glade/pytrainer.glade:3696 +#: glade/pytrainer.glade:4852 +#: glade/pytrainer.glade:5994 msgid " " msgstr "" -#: glade/pytrainer.glade:922 +#: glade/pytrainer.glade:920 msgid "<b>Date:</b>" msgstr "<b>Date:</b>" -#: glade/pytrainer.glade:950 -#: glade/pytrainer.glade:2968 -#: glade/pytrainer.glade:4096 -#: glade/pytrainer.glade:5391 +#: glade/pytrainer.glade:948 +#: glade/pytrainer.glade:2966 +#: glade/pytrainer.glade:4094 +#: glade/pytrainer.glade:5236 +#: glade/pytrainer.glade:6531 msgid "<b>Distance:</b>" msgstr "<b>Distance:</b>" -#: glade/pytrainer.glade:979 +#: glade/pytrainer.glade:977 msgid "<b>Max Speed</b>" msgstr "<b>Vit. Max:</b>" -#: glade/pytrainer.glade:1007 -#: glade/pytrainer.glade:3558 -#: glade/pytrainer.glade:4686 -#: glade/pytrainer.glade:5842 +#: glade/pytrainer.glade:1005 +#: glade/pytrainer.glade:3556 +#: glade/pytrainer.glade:4684 +#: glade/pytrainer.glade:5826 +#: glade/pytrainer.glade:6982 msgid "<b>Max Pace:</b>" msgstr "<b>Cad. Max:</b>" -#: glade/pytrainer.glade:1035 +#: glade/pytrainer.glade:1033 msgid "<b>Descent:</b>" msgstr "<b>Dénivelé Nég.:</b>" -#: glade/pytrainer.glade:1063 +#: glade/pytrainer.glade:1061 msgid " " msgstr "" -#: glade/pytrainer.glade:1213 -#: glade/pytrainer.glade:2912 -#: glade/pytrainer.glade:4040 -#: glade/pytrainer.glade:5615 +#: glade/pytrainer.glade:1211 +#: glade/pytrainer.glade:2910 +#: glade/pytrainer.glade:4038 +#: glade/pytrainer.glade:5180 +#: glade/pytrainer.glade:6755 msgid "Km" msgstr "km" -#: glade/pytrainer.glade:1246 -#: glade/pytrainer.glade:1296 -#: glade/pytrainer.glade:1346 -#: glade/pytrainer.glade:3030 -#: glade/pytrainer.glade:3080 -#: glade/pytrainer.glade:3130 -#: glade/pytrainer.glade:4208 -#: glade/pytrainer.glade:4258 -#: glade/pytrainer.glade:5503 -#: glade/pytrainer.glade:5553 +#: glade/pytrainer.glade:1244 +#: glade/pytrainer.glade:1294 +#: glade/pytrainer.glade:1344 +#: glade/pytrainer.glade:3028 +#: glade/pytrainer.glade:3078 +#: glade/pytrainer.glade:3128 +#: glade/pytrainer.glade:4206 +#: glade/pytrainer.glade:4256 +#: glade/pytrainer.glade:5348 +#: glade/pytrainer.glade:5398 +#: glade/pytrainer.glade:6643 +#: glade/pytrainer.glade:6693 msgid "00" msgstr "" -#: glade/pytrainer.glade:1271 -#: glade/pytrainer.glade:1321 -#: glade/pytrainer.glade:3055 -#: glade/pytrainer.glade:3105 -#: glade/pytrainer.glade:4183 -#: glade/pytrainer.glade:4233 -#: glade/pytrainer.glade:5478 -#: glade/pytrainer.glade:5528 -#: glade/pytrainer.glade:7648 -#: glade/pytrainer.glade:7693 +#: glade/pytrainer.glade:1269 +#: glade/pytrainer.glade:1319 +#: glade/pytrainer.glade:3053 +#: glade/pytrainer.glade:3103 +#: glade/pytrainer.glade:4181 +#: glade/pytrainer.glade:4231 +#: glade/pytrainer.glade:5323 +#: glade/pytrainer.glade:5373 +#: glade/pytrainer.glade:6618 +#: glade/pytrainer.glade:6668 +#: glade/pytrainer.glade:8788 +#: glade/pytrainer.glade:8833 msgid ":" msgstr ":" -#: glade/pytrainer.glade:1415 -#: glade/pytrainer.glade:2377 -#: glade/pytrainer.glade:2939 -#: glade/pytrainer.glade:3221 -#: glade/pytrainer.glade:3362 -#: glade/pytrainer.glade:3446 -#: glade/pytrainer.glade:3726 -#: glade/pytrainer.glade:3754 -#: glade/pytrainer.glade:4067 -#: glade/pytrainer.glade:4322 -#: glade/pytrainer.glade:4406 -#: glade/pytrainer.glade:4602 -#: glade/pytrainer.glade:4882 -#: glade/pytrainer.glade:5222 -#: glade/pytrainer.glade:5306 -#: glade/pytrainer.glade:5362 -#: glade/pytrainer.glade:5671 -#: glade/pytrainer.glade:5954 -#: glade/pytrainer.glade:5982 -#: glade/pytrainer.glade:6010 -#: glade/pytrainer.glade:6038 +#: glade/pytrainer.glade:1413 +#: glade/pytrainer.glade:2375 +#: glade/pytrainer.glade:2937 +#: glade/pytrainer.glade:3219 +#: glade/pytrainer.glade:3360 +#: glade/pytrainer.glade:3444 +#: glade/pytrainer.glade:3724 +#: glade/pytrainer.glade:3752 +#: glade/pytrainer.glade:4065 +#: glade/pytrainer.glade:4320 +#: glade/pytrainer.glade:4404 +#: glade/pytrainer.glade:4600 +#: glade/pytrainer.glade:4880 +#: glade/pytrainer.glade:5207 +#: glade/pytrainer.glade:5462 +#: glade/pytrainer.glade:5546 +#: glade/pytrainer.glade:5742 +#: glade/pytrainer.glade:6022 +#: glade/pytrainer.glade:6362 +#: glade/pytrainer.glade:6446 +#: glade/pytrainer.glade:6502 +#: glade/pytrainer.glade:6811 +#: glade/pytrainer.glade:7094 +#: glade/pytrainer.glade:7122 +#: glade/pytrainer.glade:7150 +#: glade/pytrainer.glade:7178 msgid " " msgstr "" -#: glade/pytrainer.glade:1522 +#: glade/pytrainer.glade:1520 msgid " <b>Title:</b>" msgstr " <b>Titre:</b>" -#: glade/pytrainer.glade:1636 +#: glade/pytrainer.glade:1634 msgid "" "Profile\n" "Speed\n" @@ -271,13 +309,14 @@ "Cadence\n" "Fréquence Cardiaque" -#: glade/pytrainer.glade:1655 -#: glade/pytrainer.glade:5040 -#: glade/pytrainer.glade:6196 +#: glade/pytrainer.glade:1653 +#: glade/pytrainer.glade:5038 +#: glade/pytrainer.glade:6180 +#: glade/pytrainer.glade:7336 msgid "Versus" msgstr "" -#: glade/pytrainer.glade:1680 +#: glade/pytrainer.glade:1678 msgid "" "None\n" "Profile\n" @@ -291,131 +330,140 @@ "Cadence\n" "Fréquence Cardiaque\n" -#: glade/pytrainer.glade:1845 +#: glade/pytrainer.glade:1843 msgid "<b>Beats:</b>" -msgstr "<b>Pulsations:</b>" +msgstr "<b>FC Moy:</b>" -#: glade/pytrainer.glade:1873 -#: glade/pytrainer.glade:3334 -#: glade/pytrainer.glade:4378 -#: glade/pytrainer.glade:5194 +#: glade/pytrainer.glade:1871 +#: glade/pytrainer.glade:3332 +#: glade/pytrainer.glade:4376 +#: glade/pytrainer.glade:5518 +#: glade/pytrainer.glade:6334 msgid "<b>Calories: </b>" msgstr "<b>Calories:</b>" -#: glade/pytrainer.glade:1901 -#: glade/pytrainer.glade:3614 -#: glade/pytrainer.glade:4798 -#: glade/pytrainer.glade:5926 +#: glade/pytrainer.glade:1899 +#: glade/pytrainer.glade:3612 +#: glade/pytrainer.glade:4796 +#: glade/pytrainer.glade:5938 +#: glade/pytrainer.glade:7066 msgid "<b>Max Beats:</b>" msgstr "<b>FC Max:</b>" -#: glade/pytrainer.glade:1929 +#: glade/pytrainer.glade:1927 msgid "<b>HR Zones Method:</b>" msgstr "<b>Calcul des zones de FC :</b>" -#: glade/pytrainer.glade:1958 +#: glade/pytrainer.glade:1956 msgid "<b>HR Zone5:</b>" msgstr "<b>Zone FC5:</b>" -#: glade/pytrainer.glade:1986 -#: glade/pytrainer.glade:2350 +#: glade/pytrainer.glade:1984 +#: glade/pytrainer.glade:2348 msgid " bpm" msgstr " bpm" -#: glade/pytrainer.glade:2014 +#: glade/pytrainer.glade:2012 msgid " Cal" msgstr " Cal" -#: glade/pytrainer.glade:2126 +#: glade/pytrainer.glade:2124 msgid "<b>HR Zone4:</b>" msgstr "<b>Zone FC4:</b>" -#: glade/pytrainer.glade:2154 +#: glade/pytrainer.glade:2152 msgid "<b>HR Zone3:</b>" msgstr "<b>Zone FC3:</b>" -#: glade/pytrainer.glade:2182 +#: glade/pytrainer.glade:2180 msgid "<b>HR Zone2:</b>" msgstr "<b>Zone FC2:</b>" -#: glade/pytrainer.glade:2210 +#: glade/pytrainer.glade:2208 msgid "<b>HR Zone1:</b>" msgstr "<b>Zone FC1:</b>" -#: glade/pytrainer.glade:2238 -#: glade/pytrainer.glade:2294 -#: glade/pytrainer.glade:2322 -#: glade/pytrainer.glade:3670 -#: glade/pytrainer.glade:4491 -#: glade/pytrainer.glade:4826 +#: glade/pytrainer.glade:2236 +#: glade/pytrainer.glade:2292 +#: glade/pytrainer.glade:2320 +#: glade/pytrainer.glade:3668 +#: glade/pytrainer.glade:4489 +#: glade/pytrainer.glade:4824 +#: glade/pytrainer.glade:5631 +#: glade/pytrainer.glade:5966 msgid " " msgstr "" -#: glade/pytrainer.glade:2405 -#: glade/pytrainer.glade:2432 -#: glade/pytrainer.glade:2460 -#: glade/pytrainer.glade:2488 -#: glade/pytrainer.glade:2516 -#: glade/pytrainer.glade:3474 -#: glade/pytrainer.glade:3642 -#: glade/pytrainer.glade:4630 -#: glade/pytrainer.glade:4770 -#: glade/pytrainer.glade:5334 -#: glade/pytrainer.glade:5755 +#: glade/pytrainer.glade:2403 +#: glade/pytrainer.glade:2430 +#: glade/pytrainer.glade:2458 +#: glade/pytrainer.glade:2486 +#: glade/pytrainer.glade:2514 +#: glade/pytrainer.glade:3472 +#: glade/pytrainer.glade:3640 +#: glade/pytrainer.glade:4628 +#: glade/pytrainer.glade:4768 +#: glade/pytrainer.glade:5770 +#: glade/pytrainer.glade:5910 +#: glade/pytrainer.glade:6474 +#: glade/pytrainer.glade:6895 msgid "bpm" msgstr "bpm" -#: glade/pytrainer.glade:2544 +#: glade/pytrainer.glade:2542 #, fuzzy msgid " " msgstr " " -#: glade/pytrainer.glade:2582 +#: glade/pytrainer.glade:2580 msgid " <b>Heart Rate:</b>" msgstr " <b>Fréquence Cardiaque:</b>" -#: glade/pytrainer.glade:2759 -#: glade/pytrainer.glade:7010 -#: glade/pytrainer.glade:10877 +#: glade/pytrainer.glade:2757 +#: glade/pytrainer.glade:8150 +#: glade/pytrainer.glade:12008 msgid "label-2147483648" msgstr "label-2147483648" -#: glade/pytrainer.glade:2797 +#: glade/pytrainer.glade:2795 #, fuzzy msgid "label-2147483647" msgstr "label-2147483648" -#: glade/pytrainer.glade:2853 +#: glade/pytrainer.glade:2851 msgid "Record" msgstr "Enregistrement" -#: glade/pytrainer.glade:3278 -#: glade/pytrainer.glade:4463 -#: glade/pytrainer.glade:5784 +#: glade/pytrainer.glade:3276 +#: glade/pytrainer.glade:4461 +#: glade/pytrainer.glade:5603 +#: glade/pytrainer.glade:6924 msgid "<b>Max Speed:</b>" msgstr "<b>Vit. Max:</b>" -#: glade/pytrainer.glade:3390 -#: glade/pytrainer.glade:4434 -#: glade/pytrainer.glade:5250 +#: glade/pytrainer.glade:3388 +#: glade/pytrainer.glade:4432 +#: glade/pytrainer.glade:5574 +#: glade/pytrainer.glade:6390 msgid "Cal" msgstr "Cal" -#: glade/pytrainer.glade:3418 -#: glade/pytrainer.glade:4574 -#: glade/pytrainer.glade:5278 +#: glade/pytrainer.glade:3416 +#: glade/pytrainer.glade:4572 +#: glade/pytrainer.glade:5714 +#: glade/pytrainer.glade:6418 msgid "<b>Beats avg:</b>" msgstr "<b>FC Moy:</b>" -#: glade/pytrainer.glade:3792 +#: glade/pytrainer.glade:3790 msgid " <b>Date:</b>" msgstr " <b>Date:</b>" -#: glade/pytrainer.glade:3867 +#: glade/pytrainer.glade:3865 msgid "Value" msgstr "Valeur" -#: glade/pytrainer.glade:3892 +#: glade/pytrainer.glade:3890 msgid "" "Stage Profile\n" "Stage Velocity\n" @@ -425,378 +473,392 @@ "Vitesse de la sortie\n" "Profil de la sortie/Vitesse" -#: glade/pytrainer.glade:3981 +#: glade/pytrainer.glade:3979 msgid "Day" msgstr "Jour" -#: glade/pytrainer.glade:4158 -#: glade/pytrainer.glade:5453 +#: glade/pytrainer.glade:4156 +#: glade/pytrainer.glade:5298 +#: glade/pytrainer.glade:6593 msgid "000" msgstr "" -#: glade/pytrainer.glade:4547 -#: glade/pytrainer.glade:7846 +#: glade/pytrainer.glade:4545 +#: glade/pytrainer.glade:5687 +#: glade/pytrainer.glade:8986 msgid " " msgstr " " -#: glade/pytrainer.glade:4920 -msgid " <b>Month:</b>" -msgstr " <b>Mois:</b>" +#: glade/pytrainer.glade:4918 +msgid " <b>Week:</b>" +msgstr "<b>Semaine:</b>" -#: glade/pytrainer.glade:5020 -#: glade/pytrainer.glade:6176 +#: glade/pytrainer.glade:5018 +#: glade/pytrainer.glade:6160 +#: glade/pytrainer.glade:7316 msgid "" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" -"Kilomètres\n" +"Distance\n" "Durée\n" -"Pulsations\n" -"Moyenne\n" +"FC moyenne\n" +"Vitesse moyenne\n" "Calories" -#: glade/pytrainer.glade:5065 -#: glade/pytrainer.glade:6221 +#: glade/pytrainer.glade:5063 +#: glade/pytrainer.glade:6205 +#: glade/pytrainer.glade:7361 msgid "" "None\n" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" "Null\n" -"Kilomètres\n" +"Distance\n" "Durée\n" -"Pulsations\n" -"Moyenne\n" +"FC moyenne\n" +"Vitesse moyenne\n" "Calories" -#: glade/pytrainer.glade:5135 +#: glade/pytrainer.glade:5132 +msgid "Week" +msgstr "Semaine" + +#: glade/pytrainer.glade:6060 +msgid " <b>Month:</b>" +msgstr " <b>Mois:</b>" + +#: glade/pytrainer.glade:6275 msgid "Month" msgstr "Mois" -#: glade/pytrainer.glade:6076 +#: glade/pytrainer.glade:7216 msgid " <b>Year:</b>" msgstr " <b>Année:</b>" -#: glade/pytrainer.glade:6291 +#: glade/pytrainer.glade:7431 msgid "Year" msgstr "Année" -#: glade/pytrainer.glade:6334 +#: glade/pytrainer.glade:7474 msgid "label154" msgstr "label154" -#: glade/pytrainer.glade:6371 +#: glade/pytrainer.glade:7511 msgid "<b>Title:</b>" msgstr "<b>Titre:</b>" -#: glade/pytrainer.glade:6416 +#: glade/pytrainer.glade:7556 msgid "Search" msgstr "Rechercher" -#: glade/pytrainer.glade:6463 +#: glade/pytrainer.glade:7603 msgid "Columns" msgstr "Colonnes" -#: glade/pytrainer.glade:6538 +#: glade/pytrainer.glade:7678 msgid "label155" msgstr "label155" -#: glade/pytrainer.glade:6672 +#: glade/pytrainer.glade:7812 msgid "Type:" msgstr "Type:" -#: glade/pytrainer.glade:6700 +#: glade/pytrainer.glade:7840 msgid "" "Font\n" "Restaurant\n" "Scenic Area\n" "Summit" msgstr "" -"Font\n" +"Point d'eau\n" "Restaurant\n" "Vue Panoramique\n" "Sommet" -#: glade/pytrainer.glade:6721 +#: glade/pytrainer.glade:7861 msgid "Latitude: " msgstr "Latitude:" -#: glade/pytrainer.glade:6749 +#: glade/pytrainer.glade:7889 msgid " Name:" msgstr "Nom:" -#: glade/pytrainer.glade:6777 +#: glade/pytrainer.glade:7917 msgid "Longitude:" msgstr " Longitude:" -#: glade/pytrainer.glade:6805 -#: glade/pytrainer.glade:12486 -#: glade/pytrainer.glade:12809 +#: glade/pytrainer.glade:7945 +#: glade/pytrainer.glade:13567 +#: glade/pytrainer.glade:13890 msgid "Description:" msgstr "Description:" -#: glade/pytrainer.glade:6925 +#: glade/pytrainer.glade:8065 msgid "<b> Waypoint: </b>" msgstr "<b> Point de localisation:</b>" -#: glade/pytrainer.glade:7058 +#: glade/pytrainer.glade:8198 msgid "label162" msgstr "label162" -#: glade/pytrainer.glade:7198 +#: glade/pytrainer.glade:8338 msgid "label163" msgstr "label163" -#: glade/pytrainer.glade:7223 +#: glade/pytrainer.glade:8363 msgid "New Entry" msgstr "Nouvelle entrée" -#: glade/pytrainer.glade:7296 +#: glade/pytrainer.glade:8436 msgid "Title:" msgstr "Titre:" -#: glade/pytrainer.glade:7345 +#: glade/pytrainer.glade:8485 msgid "GPX File:" msgstr "Fichier GPX:" -#: glade/pytrainer.glade:7415 +#: glade/pytrainer.glade:8555 msgid "Calculate Values" msgstr "Calculer les Valeurs" -#: glade/pytrainer.glade:7434 +#: glade/pytrainer.glade:8574 msgid "Sport:" msgstr "Sport:" -#: glade/pytrainer.glade:7485 +#: glade/pytrainer.glade:8625 msgid "<b>Main</b>" msgstr "<b>Principal:</b>" -#: glade/pytrainer.glade:7546 +#: glade/pytrainer.glade:8686 msgid "Distance (Km):" msgstr "Distance (km):" -#: glade/pytrainer.glade:7575 -#: glade/pytrainer.glade:7772 -#: glade/pytrainer.glade:8053 -#: glade/pytrainer.glade:8299 -#: glade/pytrainer.glade:8767 -#: glade/pytrainer.glade:11515 +#: glade/pytrainer.glade:8715 +#: glade/pytrainer.glade:8912 +#: glade/pytrainer.glade:9193 +#: glade/pytrainer.glade:9439 +#: glade/pytrainer.glade:9907 +#: glade/pytrainer.glade:12638 msgid "Calculate" msgstr "Calculer" -#: glade/pytrainer.glade:7594 +#: glade/pytrainer.glade:8734 msgid "Time:" msgstr "Temps:" -#: glade/pytrainer.glade:7792 +#: glade/pytrainer.glade:8932 msgid "Date:" msgstr "Date:" -#: glade/pytrainer.glade:7912 -#: glade/pytrainer.glade:11565 +#: glade/pytrainer.glade:9052 +#: glade/pytrainer.glade:12688 msgid "<b>General</b>" msgstr "<b>Général:</b>" -#: glade/pytrainer.glade:7973 +#: glade/pytrainer.glade:9113 msgid "Max (km/h):" msgstr "Max (km/h):" -#: glade/pytrainer.glade:8024 +#: glade/pytrainer.glade:9164 msgid "Velocity (km/h)" msgstr "Vitesse (km/h)" -#: glade/pytrainer.glade:8099 +#: glade/pytrainer.glade:9239 msgid "<b>Velocity</b>" msgstr "<b>Vitesse</b>" -#: glade/pytrainer.glade:8135 +#: glade/pytrainer.glade:9275 msgid "Quick Entry" msgstr "Entrée Rapide" -#: glade/pytrainer.glade:8195 +#: glade/pytrainer.glade:9335 msgid "Max (min/km):" msgstr "Max (min/km)" -#: glade/pytrainer.glade:8247 +#: glade/pytrainer.glade:9387 msgid "Pace (min/km):" msgstr "Cadence (min/km)" -#: glade/pytrainer.glade:8322 +#: glade/pytrainer.glade:9462 msgid "<b>Pace</b>" msgstr "<b>Cadence:</b>" -#: glade/pytrainer.glade:8383 +#: glade/pytrainer.glade:9523 msgid "Ascent:" msgstr "Dénivelé Pos.:" -#: glade/pytrainer.glade:8435 +#: glade/pytrainer.glade:9575 msgid "Descent:" msgstr "Dénivelé Nég.:" -#: glade/pytrainer.glade:8490 +#: glade/pytrainer.glade:9630 msgid "<b>Accumulated Altitude Change</b>" msgstr " <b>Dénivelé Cumulé:</b> " -#: glade/pytrainer.glade:8551 +#: glade/pytrainer.glade:9691 msgid "Max (bpm):" msgstr "Max (bpm):" -#: glade/pytrainer.glade:8580 +#: glade/pytrainer.glade:9720 msgid "Heart rate:" msgstr "Fréquence Cardiaque:" -#: glade/pytrainer.glade:8654 -#: pytrainer/gui/windowmain.py:475 +#: glade/pytrainer.glade:9794 +#: pytrainer/gui/windowmain.py:681 #: pytrainer/monthgraph.py:77 +#: pytrainer/weekgraph.py:119 +#: pytrainer/yeargraph.py:78 msgid "Calories" msgstr "Calories" -#: glade/pytrainer.glade:8705 +#: glade/pytrainer.glade:9845 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/pytrainer.glade:8822 +#: glade/pytrainer.glade:9962 msgid "<b>Heart Rate</b>" msgstr "<b>Fréquence Cardiaque:</b>" -#: glade/pytrainer.glade:8858 +#: glade/pytrainer.glade:9998 msgid "Advanced" msgstr "Avancé" -#: glade/pytrainer.glade:8955 +#: glade/pytrainer.glade:10095 msgid "<b>Comments</b>" msgstr "<b>Commentaires</b>" -#: glade/pytrainer.glade:8984 +#: glade/pytrainer.glade:10124 msgid "Comments" msgstr "Commentaires" -#: glade/pytrainer.glade:9089 +#: glade/pytrainer.glade:10229 msgid "Preferences" msgstr "Préférences" -#: glade/pytrainer.glade:9163 +#: glade/pytrainer.glade:10303 msgid "Metric system" msgstr "Système Métrique" -#: glade/pytrainer.glade:9185 +#: glade/pytrainer.glade:10325 msgid "U.S. customary units" msgstr "Unités U.S." -#: glade/pytrainer.glade:9211 +#: glade/pytrainer.glade:10351 msgid "<b>System of Measurement</b>" msgstr "<b>Système de Mesure</b>" -#: glade/pytrainer.glade:9271 +#: glade/pytrainer.glade:10411 msgid "Database type:" msgstr "Type de Base de Données:" -#: glade/pytrainer.glade:9299 +#: glade/pytrainer.glade:10439 msgid "Database host:" msgstr "Hôte de la Base de Données:" -#: glade/pytrainer.glade:9348 +#: glade/pytrainer.glade:10488 msgid "Database name:" msgstr "Nom de la Base de Données:" -#: glade/pytrainer.glade:9416 +#: glade/pytrainer.glade:10556 msgid "Database user:" msgstr "Utilisateur de la Base de Données:" -#: glade/pytrainer.glade:9444 +#: glade/pytrainer.glade:10584 msgid "Database pass:" msgstr "Mot de passe de la Base de Données:" -#: glade/pytrainer.glade:9518 +#: glade/pytrainer.glade:10658 msgid "<b>Database</b>" msgstr "<b>Base de données</b>" -#: glade/pytrainer.glade:9578 +#: glade/pytrainer.glade:10718 msgid "Use this port for internal connections: " msgstr "Utiliser ce port pour les connexions internes:" -#: glade/pytrainer.glade:9629 +#: glade/pytrainer.glade:10769 msgid "<small><b>Note:</b> Change this only if you know what you are doing</small>" msgstr "<small><b>Note:</b> Changez cette valeur uniquement si vous savez ce que vous faites</small>" -#: glade/pytrainer.glade:9661 +#: glade/pytrainer.glade:10801 msgid "<b>Port Connnection</b>" msgstr "<b>Port de Connexion:</b>" -#: glade/pytrainer.glade:9697 +#: glade/pytrainer.glade:10837 msgid "General" msgstr "Général" -#: glade/pytrainer.glade:9750 +#: glade/pytrainer.glade:10890 msgid "User name:" msgstr "Nom d'Utilisateur:" -#: glade/pytrainer.glade:9778 +#: glade/pytrainer.glade:10918 msgid "Gender:" msgstr "Sexe:" -#: glade/pytrainer.glade:9824 +#: glade/pytrainer.glade:10964 msgid "Height:" msgstr "Taille:" -#: glade/pytrainer.glade:9895 +#: glade/pytrainer.glade:11035 msgid "Date of birth:" msgstr "Date de Naissance:" -#: glade/pytrainer.glade:10007 +#: glade/pytrainer.glade:11147 msgid "Weight:" msgstr "Poids:" -#: glade/pytrainer.glade:10039 +#: glade/pytrainer.glade:11179 msgid "<b>Athlete Details</b>" msgstr "<b>Détail de l'Athlète</b>" -#: glade/pytrainer.glade:10068 +#: glade/pytrainer.glade:11208 msgid "Athlete" msgstr "Athlète" -#: glade/pytrainer.glade:10251 +#: glade/pytrainer.glade:11391 msgid "<b>Sport List</b>" msgstr "<b>Liste des Sports</b>" -#: glade/pytrainer.glade:10280 +#: glade/pytrainer.glade:11420 msgid "llist" msgstr "" -#: glade/pytrainer.glade:10360 -#: glade/pytrainer.glade:12430 -#: glade/pytrainer.glade:12921 +#: glade/pytrainer.glade:11500 +#: glade/pytrainer.glade:13511 +#: glade/pytrainer.glade:14002 msgid "Name:" msgstr "Nom:" -#: glade/pytrainer.glade:10388 +#: glade/pytrainer.glade:11528 msgid "M.E.T.:" msgstr "M.E.T.:" -#: glade/pytrainer.glade:10437 +#: glade/pytrainer.glade:11577 msgid "Extra Weight:" msgstr "Poids Additionnel:" -#: glade/pytrainer.glade:10513 -#: glade/pytrainer.glade:11119 -msgid "<small><b>Note:</b> You can get your M.E.T. sport Coefficient here: http://pytrainer.e-oss.net/met.pdf</small>" -msgstr "<small><b>Note:</b> Vous pouvez consulter l'indice M.E.T. de votre sport à l'adresse suivante: http://pytrainer.e-oss.net/met.pdf</small>" +#: glade/pytrainer.glade:11651 +#: glade/pytrainer.glade:12249 +msgid "More information on determining yor M.E.T sport coefficient on Wikipedia" +msgstr "Plus d'information pour déterminer le coefficient M.E.T du sport sur Wikipedia" -#: glade/pytrainer.glade:10624 +#: glade/pytrainer.glade:11755 msgid "<b>Add New Sport</b>" msgstr "<b>Ajouter un Sport</b>" -#: glade/pytrainer.glade:10653 +#: glade/pytrainer.glade:11784 msgid "new" msgstr "nouveau" -#: glade/pytrainer.glade:10713 +#: glade/pytrainer.glade:11844 msgid "" "Deleting a sport removes associated records.\n" "Continue?" @@ -804,243 +866,150 @@ "Détruire un sport supprime les enregistrements associés.\n" "Continuer?" -#: glade/pytrainer.glade:10853 +#: glade/pytrainer.glade:11984 msgid "<b>Delete Sport</b>" msgstr "<b>Supprimer un Sport</b>" -#: glade/pytrainer.glade:10913 +#: glade/pytrainer.glade:12044 msgid "delete" msgstr "supprimer" -#: glade/pytrainer.glade:10972 +#: glade/pytrainer.glade:12103 msgid "Name" msgstr "Nom" -#: glade/pytrainer.glade:11021 +#: glade/pytrainer.glade:12152 msgid "M.E.T." msgstr "M.E.T." -#: glade/pytrainer.glade:11070 -#: pytrainer/gui/windowprofile.py:67 +#: glade/pytrainer.glade:12201 +#: pytrainer/gui/windowprofile.py:69 msgid "Extra Weight" msgstr "Poids Additionnel" -#: glade/pytrainer.glade:11236 +#: glade/pytrainer.glade:12359 msgid "<b>Edit Sport</b>" msgstr "<b>Éditer un sport</b>" -#: glade/pytrainer.glade:11260 -#, fuzzy +#: glade/pytrainer.glade:12383 msgid "<b>lalaal</b>" msgstr "<b>Base de données</b>" -#: glade/pytrainer.glade:11296 +#: glade/pytrainer.glade:12419 msgid "edit" msgstr "édition" -#: glade/pytrainer.glade:11325 +#: glade/pytrainer.glade:12448 msgid "Sports" msgstr "Sports" -#: glade/pytrainer.glade:11384 +#: glade/pytrainer.glade:12507 msgid "Maximum heart rate:" msgstr "Fréquence Cardiaque Maximale:" -#: glade/pytrainer.glade:11412 +#: glade/pytrainer.glade:12535 msgid "Resting heart rate:" msgstr "Fréquence Cardiaque au Repos:" -#: glade/pytrainer.glade:11486 +#: glade/pytrainer.glade:12609 msgid "<small><b>Note:</b> Maximum heart rate is calculated by subtracting the number 220 minus your age. </small>" msgstr "<small><b>Note:</b> Le calcul de votre fréquence cardiaque maximale est effectué grâce à la formule 220 moins votre âge. </small>" -#: glade/pytrainer.glade:11625 +#: glade/pytrainer.glade:12748 msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>" msgstr "<small><b>Note:</b> Afin d'utiliser la méthode de Karvonen vous devez obligatoirement renseigner le champ «Fréquence Cardiaque au Repos».</small>" -#: glade/pytrainer.glade:11654 +#: glade/pytrainer.glade:12777 msgid "Percentages based method" msgstr "Méthode basée sur des pourcentages" -#: glade/pytrainer.glade:11676 -#: pytrainer/gui/windowmain.py:194 +#: glade/pytrainer.glade:12799 +#: pytrainer/gui/windowmain.py:254 msgid "Karvonen method" msgstr "Méthode de Karvonen" -#: glade/pytrainer.glade:11698 +#: glade/pytrainer.glade:12821 msgid "Select how to calculate your heart rate zones." msgstr "Sélectionnez la méthode appropriée pour définir les zones cardiaque." -#: glade/pytrainer.glade:11730 +#: glade/pytrainer.glade:12853 msgid "<b>Heart Rate Zones</b>" msgstr "<b>Zones Cardiaque:</b>" -#: glade/pytrainer.glade:11766 -#: pytrainer/daygraph.py:58 -#: pytrainer/recordgraph.py:78 -#: pytrainer/heartrategraph.py:33 +#: glade/pytrainer.glade:12889 +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 msgid "Heart Rate" msgstr "Fréquence Cardiaque" -#: glade/pytrainer.glade:11871 +#: glade/pytrainer.glade:12994 msgid "Calendar" msgstr "Calendrier" -#: glade/pytrainer.glade:11997 -msgid "pytrainer" -msgstr "pytrainer" - -#: glade/pytrainer.glade:11998 -msgid "(c) Fiz Vazquez <vu...@si...>" -msgstr "(c) Fiz Vazquez <vu...@si...>" - -#: glade/pytrainer.glade:11999 -msgid "Track sporting activities and performance" -msgstr "Un outil de suivi des activités sportives et des performances" - -#: glade/pytrainer.glade:12000 -msgid "" -"(C) Fiz Vazquez\n" -"\n" -" This program is free software; you can redistribute \n" -" it and/or modify it under the terms of the GNU \n" -" General Public License as published by the Free \n" -" Software Foundation; either version 2 of the License, \n" -" or (at your option) any later version.\n" -"\n" -" This program is distributed in the hope that it will be \n" -" useful, but WITHOUT ANY WARRANTY; without even the\n" -" implied warranty of MERCHANTABILITY or FITNESS FOR \n" -" A PARTICULAR PURPOSE. See the GNU General Public \n" -" License <http://www.opensource.org/gpl-license.html>\n" -" for more details.\n" -"\n" -" You can found the license on Debian systems in the file\n" -" /usr/share/common-licenses/GPL\n" -msgstr "" -"(C) Fiz Vazquez\n" -"\n" -" This program is free software; you can redistribute \n" -" it and/or modify it under the terms of the GNU \n" -" General Public License as published by the Free \n" -" Software Foundation; either version 2 of the License, \n" -" or (at your option) any later version.\n" -"\n" -" This program is distributed in the hope that it will be \n" -" useful, but WITHOUT ANY WARRANTY; without even the\n" -" implied warranty of MERCHANTABILITY or FITNESS FOR \n" -" A PARTICULAR PURPOSE. See the GNU General Public \n" -" License <http://www.opensource.org/gpl-license.html>\n" -" for more details.\n" -"\n" -" You can found the license on Debian systems in the file\n" -" /usr/share/common-licenses/GPL\n" - -#: glade/pytrainer.glade:12020 -msgid "pytrainer.e-oss.net" -msgstr "pytrainer.e-oss.net" - -#: glade/pytrainer.glade:12022 -msgid "" -"Basque: Jabier Santamaria <men...@gm...>\n" -"Catalan: Eloi Crespillo Itchart <el...@ik...>\n" -"Czech: Lobus Pokorny <sp...@se...>\n" -"French: Dj <dj...@dj...>\n" -"French: Pierre Gaigé <pg...@fr...>\n" -"Norwegian: Havard Davidsen <hav...@gm...>\n" -"Polish: Seweryn Kokot <sk...@po...>\n" -"german: Aleks <al...@sc...>\n" -"Spanish: Fiz vazquez <vu...@si...>" -msgstr "" -"Basque: Jabier Santamaria <men...@gm...>\n" -"Catalan: Eloi Crespillo Itchart <el...@ik...>\n" -"Czech: Lobus Pokorny <sp...@se...>\n" -"French: Dj <dj...@dj...>\n" -"French: Pierre Gaigé <pg...@fr...>\n" -"Norwegian: Havard Davidsen <hav...@gm...>\n" -"Polish: Seweryn Kokot <sk...@po...>\n" -"german: Aleks <al...@sc...>\n" -"Spanish: Fiz vazquez <vu...@si...>" - -#: glade/pytrainer.glade:12115 +#: glade/pytrainer.glade:13196 msgid "Edit Record" msgstr "Éditer un enregistrement" -#: glade/pytrainer.glade:12136 +#: glade/pytrainer.glade:13217 msgid "Show graph in classic view" msgstr "Montrer le graphe dans la vue classique" -#: glade/pytrainer.glade:12172 +#: glade/pytrainer.glade:13253 msgid "warning" msgstr "attention" -#: glade/pytrainer.glade:12374 +#: glade/pytrainer.glade:13455 msgid "<b>Extension Details</b>" msgstr "<b>Détail des Extensions</b>" -#: glade/pytrainer.glade:12402 +#: glade/pytrainer.glade:13483 msgid "name-entry" msgstr "" -#: glade/pytrainer.glade:12458 -#: glade/pytrainer.glade:12865 +#: glade/pytrainer.glade:13539 +#: glade/pytrainer.glade:13946 msgid "Status:" msgstr "Statut:" -#: glade/pytrainer.glade:12514 -#: glade/pytrainer.glade:12837 +#: glade/pytrainer.glade:13595 +#: glade/pytrainer.glade:13918 msgid "status-entry" msgstr "" -#: glade/pytrainer.glade:12542 +#: glade/pytrainer.glade:13623 msgid "description-entry" msgstr "" -#: glade/pytrainer.glade:12677 +#: glade/pytrainer.glade:13758 msgid "Plugins" msgstr "Plugins" -#: glade/pytrainer.glade:12752 +#: glade/pytrainer.glade:13833 msgid "<b>Plugin Details</b>" msgstr "<b>Détail du plugin</b>" -#: glade/pytrainer.glade:12781 +#: glade/pytrainer.glade:13862 msgid "description-entry " msgstr "" -#: glade/pytrainer.glade:12893 +#: glade/pytrainer.glade:13974 msgid "nameEntry" msgstr "" -#: glade/pytrainer.glade:13064 +#: glade/pytrainer.glade:14145 msgid "Select track record" msgstr "Sélectionnez un Circuit" -#: pytrainer/main.py:94 -msgid "No Active Plugins" -msgstr "Aucun plugins actif" - -#: pytrainer/main.py:103 -msgid "No Active Extensions" -msgstr "Aucune extension active" - -#: pytrainer/main.py:245 -msgid "Delete this database entry?" -msgstr "Supprimer cette entrée de la Base de Données?" - -#: pytrainer/main.py:256 -msgid "Delete this waypoint?" -msgstr "Détruire ce Point de Localisation" - -#: pytrainer/gui/windowprofile.py:49 +#: pytrainer/gui/windowprofile.py:51 msgid "Male" msgstr "Homme" -#: pytrainer/gui/windowprofile.py:50 +#: pytrainer/gui/windowprofile.py:52 msgid "Female" msgstr "Femme" -#: pytrainer/gui/windowprofile.py:67 +#: pytrainer/gui/windowprofile.py:69 msgid "MET" msgstr "MET" @@ -1066,117 +1035,123 @@ msgid "Ok" msgstr "Ok" -#: pytrainer/gui/windowmain.py:49 -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:56 +#: pytrainer/gui/windowmain.py:57 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:64 msgid "id" msgstr "id" -#: pytrainer/gui/windowmain.py:49 +#: pytrainer/gui/windowmain.py:57 msgid "Kilometer" msgstr "Kilomètres" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:468 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:674 msgid "Title" msgstr "Titre" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:469 -#: pytrainer/gui/dialogselecttrack.py:36 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:675 +#: pytrainer/gui/dialogselecttrack.py:40 msgid "Date" msgstr "Date" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:470 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:676 +#: pytrainer/extensions/googlemaps.py:91 msgid "Distance" msgstr "Distance" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:472 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:678 +#: pytrainer/extensions/googlemaps.py:91 msgid "Time" msgstr "Temps" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:473 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:679 msgid "Beats" msgstr "Pulsations" -#: pytrainer/gui/windowmain.py:52 -#: pytrainer/gui/windowmain.py:474 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:680 msgid "Average" msgstr "Moyenne" -#: pytrainer/gui/windowmain.py:56 +#: pytrainer/gui/windowmain.py:64 msgid "Waypoint" msgstr "Point de Localisation" -#: pytrainer/gui/windowmain.py:196 +#: pytrainer/gui/windowmain.py:158 +#: pytrainer/gui/windowmain.py:267 +#: pytrainer/gui/windowmain.py:366 +#: pytrainer/gui/windowmain.py:444 +msgid "miles" +msgstr "miles" + +#: pytrainer/gui/windowmain.py:159 +#: pytrainer/gui/windowmain.py:160 +#: pytrainer/gui/windowmain.py:268 +#: pytrainer/gui/windowmain.py:269 +#: pytrainer/gui/windowmain.py:367 +#: pytrainer/gui/windowmain.py:368 +#: pytrainer/gui/windowmain.py:445 +#: pytrainer/gui/windowmain.py:446 +msgid "miles/h" +msgstr "" + +#: pytrainer/gui/windowmain.py:161 +#: pytrainer/gui/windowmain.py:162 +#: pytrainer/gui/windowmain.py:270 +#: pytrainer/gui/windowmain.py:271 +#: pytrainer/gui/windowmain.py:369 +#: pytrainer/gui/windowmain.py:370 +#: pytrainer/gui/windowmain.py:447 +#: pytrainer/gui/windowmain.py:448 +msgid "min/mile" +msgstr "min/mile" + +#: pytrainer/gui/windowmain.py:163 +#: pytrainer/gui/windowmain.py:164 +msgid "feet" +msgstr "pieds" + +#: pytrainer/gui/windowmain.py:166 +#: pytrainer/gui/windowmain.py:273 +#: pytrainer/gui/windowmain.py:372 +#: pytrainer/gui/windowmain.py:450 +#: pytrainer/extensions/googlemaps.py:91 +msgid "km" +msgstr "km" + +#: pytrainer/gui/windowmain.py:256 msgid "Percentages method" msgstr "Méthode basée sur des pourcentages" -#: pytrainer/gui/dialogselecttrack.py:36 +#: pytrainer/gui/dialogselecttrack.py:40 msgid "Track Name" msgstr "Nom du Circuit" +#: pytrainer/gui/drawArea.py:142 +#: pytrainer/extensions/googlemaps.py:89 +msgid "h" +msgstr "" + +#: pytrainer/gui/drawArea.py:143 +#: pytrainer/extensions/googlemaps.py:89 +msgid "min" +msgstr "min" + #: pytrainer/gui/windowextensions.py:104 #: pytrainer/gui/windowextensions.py:117 msgid "OK" msgstr "OK" -#: pytrainer/lib/date.py:73 -msgid "January" -msgstr "Janvier" - -#: pytrainer/lib/date.py:74 -msgid "Febrary" -msgstr "Février" - -#: pytrainer/lib/date.py:75 -msgid "March" -msgstr "Mars" - -#: pytrainer/lib/date.py:76 -msgid "April" -msgstr "Avril" - -#: pytrainer/lib/date.py:77 -msgid "May" -msgstr "Mai" - -#: pytrainer/lib/date.py:78 -msgid "June" -msgstr "Juin" - -#: pytrainer/lib/date.py:79 -msgid "July" -msgstr "Juillet" - -#: pytrainer/lib/date.py:80 -msgid "August" -msgstr "Août" - -#: pytrainer/lib/date.py:81 -msgid "September" -msgstr "Septembre" - -#: pytrainer/lib/date.py:82 -msgid "October" -msgstr "Octobre" - -#: pytrainer/lib/date.py:83 -msgid "November" -msgstr "Novembre" - -#: pytrainer/lib/date.py:84 -msgid "December" -msgstr "Décembre" - -#: pytrainer/lib/gpx.py:75 +#: pytrainer/lib/gpx.py:90 msgid "No Name" msgstr "Sans Nom" -#: pytrainer/lib/gpx.py:81 +#: pytrainer/lib/gpx.py:97 msgid "No Data" msgstr "Pas de Valeurs" @@ -1200,114 +1175,60 @@ msgid "VO2 MAX" msgstr "" -#: pytrainer/waypoint.py:67 -msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" -msgstr "Ce fichier GPX semble contenir plusieurs jours d'enregistrements. Vous devrez peut-être au préalable éditer celui-ci." - -#: pytrainer/record.py:207 -msgid "pyTrainer cant import data from your gpx file" -msgstr "pyTrainer ne peut pas importer de données depuis le fichier GPX" - +#: pytrainer/daygraph.py:52 #: pytrainer/daygraph.py:54 #: pytrainer/daygraph.py:56 -#: pytrainer/daygraph.py:58 -#: pytrainer/recordgraph.py:72 -#: pytrainer/recordgraph.py:74 -#: pytrainer/recordgraph.py:76 -#: pytrainer/recordgraph.py:78 -#: pytrainer/heartrategraph.py:33 +#: pytrainer/recordgraph.py:79 +#: pytrainer/recordgraph.py:81 +#: pytrainer/recordgraph.py:83 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 +#: pytrainer/monthgraph.py:69 +#: pytrainer/weekgraph.py:111 +#: pytrainer/yeargraph.py:70 msgid "Distance (km)" msgstr "Distance (km) " -#: pytrainer/daygraph.py:54 -#: pytrainer/recordgraph.py:72 +#: pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:79 msgid "Height (m)" msgstr "Altitude (m)" -#: pytrainer/daygraph.py:54 -#: pytrainer/recordgraph.py:72 +#: pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:79 msgid "Stage Profile" msgstr "Profil de la sortie" -#: pytrainer/daygraph.py:56 +#: pytrainer/daygraph.py:54 msgid "Velocity (Km/h)" msgstr "Vitesse (km/h)" -#: pytrainer/daygraph.py:56 +#: pytrainer/daygraph.py:54 msgid "Velocity" msgstr "Vitesse" -#: pytrainer/daygraph.py:58 -#: pytrainer/recordgraph.py:78 -#: pytrainer/heartrategraph.py:33 +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 msgid "Beats (bpm)" msgstr "Pulsations (bpm)" -#: pytrainer/recordgraph.py:74 -#, fuzzy +#: pytrainer/recordgraph.py:81 msgid "Speed (Km/h)" -msgstr "Vitesse Max (km/h)" +msgstr "Vitesse (km/h)" -#: pytrainer/recordgraph.py:74 +#: pytrainer/recordgraph.py:81 msgid "Speed" msgstr "Vitesse" -#: pytrainer/recordgraph.py:76 +#: pytrainer/recordgraph.py:83 msgid "Pace (min/km)" msgstr "Cadence (min/km)" -#: pytrainer/recordgraph.py:76 +#: pytrainer/recordgraph.py:83 msgid "Pace" msgstr "Cadence" -#: pytrainer/yeargraph.py:69 -#: pytrainer/yeargraph.py:71 -#: pytrainer/yeargraph.py:73 -#: pytrainer/yeargraph.py:75 -#: pytrainer/yeargraph.py:77 -msgid "month" -msgstr "mois" - -#: pytrainer/yeargraph.py:69 -msgid "kilometers" -msgstr "Kilomètres" - -#: pytrainer/yeargraph.py:69 -msgid "monthly kilometers" -msgstr "Kilométrage Mensuel" - -#: pytrainer/yeargraph.py:71 -msgid "time in hours" -msgstr "Temps en heures" - -#: pytrainer/yeargraph.py:71 -msgid "monthly time" -msgstr "Durées Mensuelles" - -#: pytrainer/yeargraph.py:73 -msgid "beats per minute" -msgstr "pulsations par minute" - -#: pytrainer/yeargraph.py:73 -msgid "monthly beats" -msgstr "pulsations mensuelles" - -#: pytrainer/yeargraph.py:75 -msgid "average (hm/h)" -msgstr "moyenne (km/h)" - -#: pytrainer/yeargraph.py:75 -msgid "monthly averages" -msgstr "moyennes mensuelles" - -#: pytrainer/yeargraph.py:77 -msgid "calories" -msgstr "calories" - -#: pytrainer/yeargraph.py:77 -msgid "monthly calories" -msgstr "Calories mensuelles" - #: pytrainer/monthgraph.py:69 #: pytrainer/monthgraph.py:71 #: pytrainer/monthgraph.py:73 @@ -1317,41 +1238,230 @@ msgstr "jour" #: pytrainer/monthgraph.py:69 -msgid "Kilometers" -msgstr "Kilomètres" +#: pytrainer/weekgraph.py:111 +msgid "Daily Distance" +msgstr "Distance Journalière" -#: pytrainer/monthgraph.py:69 -msgid "Daily kilometers" -msgstr "Kilométrage Journalier" - #: pytrainer/monthgraph.py:71 -msgid "Time in Hours" -msgstr "Durée en Heures" +#: pytrainer/weekgraph.py:113 +#: pytrainer/yeargraph.py:72 +msgid "Time (hours)" +msgstr "Durée (Heures)" #: pytrainer/monthgraph.py:71 +#: pytrainer/weekgraph.py:113 msgid "Daily Time" msgstr "Durée Journalière" #: pytrainer/monthgraph.py:73 -msgid "Beats per Minute" -msgstr "Pulsations par Minute" +#: pytrainer/weekgraph.py:115 +#: pytrainer/yeargraph.py:74 +msgid "Average Heart Rate (bpm)" +msgstr "FC moyenne (bpm):" #: pytrainer/monthgraph.py:73 -msgid "Daily Beats" -msgstr "Pulsations Journalières" +#: pytrainer/weekgraph.py:115 +msgid "Daily Average Heart Rate" +msgstr "FC moyenne Journalière" #: pytrainer/monthgraph.py:75 -msgid "Average (km/h)" -msgstr "Moyenne (km/h)" +#: pytrainer/weekgraph.py:117 +#: pytrainer/yeargraph.py:76 +msgid "Average Speed (km/h)" +msgstr "Vitesse moyenne (km/h)" #: pytrainer/monthgraph.py:75 -msgid "Daily Averages" -msgstr "Moyennes Journalières" +#: pytrainer/weekgraph.py:117 +msgid "Daily Average Speed" +msgstr "Vitesse moyenne Journalière" #: pytrainer/monthgraph.py:77 +#: pytrainer/weekgraph.py:119 msgid "Daily Calories" -msgstr "Calories Journalières" +msgstr "Calories Journalière" +#: pytrainer/waypoint.py:80 +msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" +msgstr "Ce fichier GPX semble contenir plusieurs jours d'enregistrements. Vous devrez peut-être au préalable éditer celui-ci." + +#: pytrainer/record.py:368 +msgid "pyTrainer cant import data from your gpx file" +msgstr "pyTrainer ne peut pas importer de données depuis le fichier GPX" + +#: pytrainer/yeargraph.py:70 +#: pytrainer/yeargraph.py:72 +#: pytrainer/yeargraph.py:74 +#: pytrainer/yeargraph.py:76 +#: pytrainer/yeargraph.py:78 +msgid "month" +msgstr "mois" + +#: pytrainer/yeargraph.py:70 +msgid "Monthly Distance" +msgstr "Distance Mensuelle" + +#: pytrainer/yeargraph.py:72 +msgid "Monthly Time" +msgstr "Durée Mensuelle" + +#: pytrainer/yeargraph.py:74 +msgid "Monthly Average Heart Rate" +msgstr "FC moyenne Mensuelle" + +#: pytrainer/yeargraph.py:76 +msgid "Monthly Average Speed" +msgstr "Vitesse moyenne Mensuelle" + +#: pytrainer/yeargraph.py:78 +msgid "Monthly Calories" +msgstr "Calories Mensuelle" + +#: pytrainer/main.py:394 +msgid "Delete this database entry?" +msgstr "Supprimer cette entrée de la Base de Données?" + +#: pytrainer/main.py:408 +msgid "Delete this waypoint?" +msgstr "Détruire ce Point de Localisation" + +#~ msgid "Kilometers" +#~ msgstr "Kilomètres" +#~ msgid "Daily kilometers" +#~ msgstr "Kilométrage journalier" +#~ msgid "Beats per Minute" +#~ msgstr "Pulsations par Minute" +#~ msgid "Daily Beats" +#~ msgstr "FC moy. journalière" +#~ msgid "Average (km/h)" +#~ msgstr "Vitesse moy. (km/h)" +#~ msgid "Weekly kilometers" +#~ msgstr "Kilométrage hebdomadaire" +#~ msgid "Weekly Time" +#~ msgstr "Durée hebdomadaire" +#~ msgid "weekly Beats" +#~ msgstr "FC moy. hebdomadaire" +#~ msgid "Weekly Speed Averages" +#~ msgstr "Vitesse moy. hebdomadaire" +#~ msgid "Weekly Calories" +#~ msgstr "Calories hebdomadaire" +#~ msgid "kilometers" +#~ msgstr "Kilomètres" +#~ msgid "monthly kilometers" +#~ msgstr "Kilométrage mensuel" +#~ msgid "time in hours" +#~ msgstr "Temps en heures" +#~ msgid "beats per minute" +#~ msgstr "pulsations par minute" +#~ msgid "monthly beats" +#~ msgstr "FC moy. mensuelle" +#~ msgid "average (hm/h)" +#~ msgstr "Vitesse moy. (km/h)" +#~ msgid "calories" +#~ msgstr "calories" +#~ msgid "January" +#~ msgstr "Janvier" +#~ msgid "Febrary" +#~ msgstr "Février" +#~ msgid "March" +#~ msgstr "Mars" +#~ msgid "April" +#~ msgstr "Avril" +#~ msgid "May" +#~ msgstr "Mai" +#~ msgid "June" +#~ msgstr "Juin" +#~ msgid "July" +#~ msgstr "Juillet" +#~ msgid "August" +#~ msgstr "Août" +#~ msgid "September" +#~ msgstr "Septembre" +#~ msgid "October" +#~ msgstr "Octobre" +#~ msgid "November" +#~ msgstr "Novembre" +#~ msgid "December" +#~ msgstr "Décembre" +#~ msgid "" +#~ "Distance\n" +#~ "Time\n" +#~ msgstr "" +#~ "Distance\n" +#~ "Temps\n" +#~ msgid "" +#~ "<small><b>Note:</b> You can get your M.E.T. sport Coefficient here: " +#~ "http://pytrainer.e-oss.net/met.pdf</small>" +#~ msgstr "" +#~ "<small><b>Note:</b> Vous pouvez consulter l'indice M.E.T. de votre sport " +#~ "à l'adresse suivante: http://pytrainer.e-oss.net/met.pdf</small>" +#~ msgid "pytrainer" +#~ msgstr "pytrainer" +#~ msgid "(c) Fiz Vazquez <vu...@si...>" +#~ msgstr "(c) Fiz Vazquez <vu...@si...>" +#~ msgid "Track sporting activities and performance" +#~ msgstr "Un outil de suivi des activités sportives et des performances" +#~ msgid "" +#~ "(C) Fiz Vazquez\n" +#~ "\n" +#~ " This program is free software; you can redistribute \n" +#~ " it and/or modify it under the terms of the GNU \n" +#~ " General Public License as published by the Free \n" +#~ " Software Foundation; either version 2 of the License, \n" +#~ " or (at your option) any later version.\n" +#~ "\n" +#~ " This program is distributed in the hope that it will be \n" +#~ " useful, but WITHOUT ANY WARRANTY; without even the\n" +#~ " implied warranty of MERCHANTABILITY or FITNESS FOR \n" +#~ " A PARTICULAR PURPOSE. See the GNU General Public \n" +#~ " License <http://www.opensource.org/gpl-license.html>\n" +#~ " for more details.\n" +#~ "\n" +#~ " You can found the license on Debian systems in the file\n" +#~ " /usr/share/common-licenses/GPL\n" +#~ msgstr "" +#~ "(C) Fiz Vazquez\n" +#~ "\n" +#~ " This program is free software; you can redistribute \n" +#~ " it and/or modify it under the terms of the GNU \n" +#~ " General Public License as published by the Free \n" +#~ " Software Foundation; either version 2 of the License, \n" +#~ " or (at your option) any later version.\n" +#~ "\n" +#~ " This program is distributed in the hope that it will be \n" +#~ " useful, but WITHOUT ANY WARRANTY; without even the\n" +#~ " implied warranty of MERCHANTABILITY or FITNESS FOR \n" +#~ " A PARTICULAR PURPOSE. See the GNU General Public \n" +#~ " License <http://www.opensource.org/gpl-license.html>\n" +#~ " for more details.\n" +#~ "\n" +#~ " You can found the license on Debian systems in the file\n" +#~ " /usr/share/common-licenses/GPL\n" +#~ msgid "pytrainer.e-oss.net" +#~ msgstr "pytrainer.e-oss.net" +#~ msgid "" +#~ "Basque: Jabier Santamaria <men...@gm...>\n" +#~ "Catalan: Eloi Crespillo Itchart <el...@ik...>\n" +#~ "Czech: Lobus Pokorny <sp...@se...>\n" +#~ "French: Dj <dj...@dj...>\n" +#~ "French: Pierre Gaigé <pg...@fr...>\n" +#~ "Norwegian: Havard Davidsen <hav...@gm...>\n" +#~ "Polish: Seweryn Kokot <sk...@po...>\n" +#~ "german: Aleks <al...@sc...>\n" +#~ "Spanish: Fiz vazquez <vu...@si...>" +#~ msgstr "" +#~ "Basque: Jabier Santamaria <men...@gm...>\n" +#~ "Catalan: Eloi Crespillo Itchart <el...@ik...>\n" +#~ "Czech: Lobus Pokorny <sp...@se...>\n" +#~ "French: Dj <dj...@dj...>\n" +#~ "French: Pierre Gaigé <pg...@fr...>\n" +#~ "Norwegian: Havard Davidsen <hav...@gm...>\n" +#~ "Polish: Seweryn Kokot <sk...@po...>\n" +#~ "german: Aleks <al...@sc...>\n" +#~ "Spanish: Fiz vazquez <vu...@si...>" +#~ msgid "No Active Plugins" +#~ msgstr "Aucun plugins actif" +#~ msgid "No Active Extensions" +#~ msgstr "Aucune extension active" #~ msgid " Km" #~ msgstr " Km" #~ msgid "<b>Velocity:</b>" @@ -1374,8 +1484,6 @@ #~ msgstr "Calculer le Rythme" #~ msgid "Calculate Calories" #~ msgstr "Calculer les Calories" -#~ msgid "Heart rate (bpm):" -#~ msgstr "Fréquence Cardiaque (bpm):" #~ msgid "Calculate Average" #~ msgstr "Calcule la Moyenne" #~ msgid "" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dg...@us...> - 2009-12-04 19:38:09
|
Revision: 420 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=420&view=rev Author: dgranda Date: 2009-12-04 19:38:00 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Updated spanish translation Modified Paths: -------------- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer.mo pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot pytrainer/trunk/messages.pot 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 2009-12-04 19:37:15 UTC (rev 419) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.po 2009-12-04 19:38:00 UTC (rev 420) @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: vud 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-16 22:27+0200\n" -"PO-Revision-Date: 2009-04-16 22:34+0200\n" -"Last-Translator: Fiz Vazquez <vu...@si...>\n" +"POT-Creation-Date: 2009-12-04 20:21+0100\n" +"PO-Revision-Date: 2009-12-04 20:32+0100\n" +"Last-Translator: David García Granda <dg...@gm...>\n" "Language-Team: Spanish <es...@li...>\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);" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: glade/pytrainer.glade:8 msgid "window1" @@ -39,7 +39,7 @@ #: glade/pytrainer.glade:143 msgid " _Classic View" -msgstr "Vista Clasica" +msgstr "Vista clásica" #: glade/pytrainer.glade:154 msgid " _List View" @@ -54,7 +54,8 @@ msgid "Tools" msgstr "Herramientas" -#: glade/pytrainer.glade:192 glade/pytrainer.glade:12254 +#: glade/pytrainer.glade:192 +#: glade/pytrainer.glade:13379 msgid "Extensions" msgstr "Extensiones" @@ -68,6 +69,10 @@ msgstr "Ayuda" #: glade/pytrainer.glade:336 +#: pytrainer/gui/windowprofile.py:69 +#: pytrainer/gui/windowmain.py:57 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:677 msgid "Sport" msgstr "Deporte" @@ -75,12 +80,14 @@ msgid "All Sports" msgstr "Todos los deportes" -#: glade/pytrainer.glade:471 glade/pytrainer.glade:836 +#: glade/pytrainer.glade:471 +#: glade/pytrainer.glade:836 #: glade/pytrainer.glade:864 msgid " " msgstr "" -#: glade/pytrainer.glade:499 glade/pytrainer.glade:892 +#: glade/pytrainer.glade:499 +#: glade/pytrainer.glade:892 msgid " " msgstr "" @@ -89,19 +96,28 @@ msgid "<b>Sport:</b>" msgstr "<b>Lista de deportes:</b>" -#: glade/pytrainer.glade:555 glade/pytrainer.glade:2994 -#: glade/pytrainer.glade:4122 glade/pytrainer.glade:5417 +#: glade/pytrainer.glade:555 +#: glade/pytrainer.glade:2994 +#: glade/pytrainer.glade:4122 +#: glade/pytrainer.glade:5264 +#: glade/pytrainer.glade:6559 msgid "<b>Time:</b>" msgstr "<b>Tiempo:</b>" -#: glade/pytrainer.glade:584 glade/pytrainer.glade:3191 -#: glade/pytrainer.glade:4292 glade/pytrainer.glade:5641 +#: glade/pytrainer.glade:584 +#: glade/pytrainer.glade:3191 +#: glade/pytrainer.glade:4292 +#: glade/pytrainer.glade:5434 +#: glade/pytrainer.glade:6783 #, fuzzy msgid "<b>Speed:</b>" msgstr "<b>Titulo:</b>" -#: glade/pytrainer.glade:612 glade/pytrainer.glade:3500 -#: glade/pytrainer.glade:4656 glade/pytrainer.glade:5811 +#: glade/pytrainer.glade:612 +#: glade/pytrainer.glade:3500 +#: glade/pytrainer.glade:4656 +#: glade/pytrainer.glade:5798 +#: glade/pytrainer.glade:6953 #, fuzzy msgid "<b>Pace:</b>" msgstr "<b>Nombre:</b>" @@ -115,21 +131,52 @@ msgid "<b>Comments:</b>" msgstr "<b>Comentarios:</b>" -#: glade/pytrainer.glade:696 glade/pytrainer.glade:1379 -#: glade/pytrainer.glade:3247 glade/pytrainer.glade:3304 -#: glade/pytrainer.glade:4348 glade/pytrainer.glade:4517 -#: glade/pytrainer.glade:5697 glade/pytrainer.glade:5725 +#: glade/pytrainer.glade:696 +#: glade/pytrainer.glade:1379 +#: glade/pytrainer.glade:3247 +#: glade/pytrainer.glade:3304 +#: glade/pytrainer.glade:4348 +#: glade/pytrainer.glade:4517 +#: glade/pytrainer.glade:5490 +#: glade/pytrainer.glade:5659 +#: glade/pytrainer.glade:6839 +#: glade/pytrainer.glade:6867 +#: pytrainer/gui/windowmain.py:167 +#: pytrainer/gui/windowmain.py:168 +#: pytrainer/gui/windowmain.py:274 +#: pytrainer/gui/windowmain.py:275 +#: pytrainer/gui/windowmain.py:373 +#: pytrainer/gui/windowmain.py:374 +#: pytrainer/gui/windowmain.py:451 +#: pytrainer/gui/windowmain.py:452 msgid "km/h" msgstr "Km/h" -#: glade/pytrainer.glade:724 glade/pytrainer.glade:1089 -#: glade/pytrainer.glade:3528 glade/pytrainer.glade:3584 -#: glade/pytrainer.glade:4712 glade/pytrainer.glade:4740 -#: glade/pytrainer.glade:5868 glade/pytrainer.glade:5896 +#: glade/pytrainer.glade:724 +#: glade/pytrainer.glade:1089 +#: glade/pytrainer.glade:3528 +#: glade/pytrainer.glade:3584 +#: glade/pytrainer.glade:4712 +#: glade/pytrainer.glade:4740 +#: glade/pytrainer.glade:5854 +#: glade/pytrainer.glade:5882 +#: glade/pytrainer.glade:7010 +#: glade/pytrainer.glade:7038 +#: pytrainer/gui/windowmain.py:169 +#: pytrainer/gui/windowmain.py:170 +#: pytrainer/gui/windowmain.py:276 +#: pytrainer/gui/windowmain.py:277 +#: pytrainer/gui/windowmain.py:375 +#: pytrainer/gui/windowmain.py:376 +#: pytrainer/gui/windowmain.py:453 +#: pytrainer/gui/windowmain.py:454 msgid "min/km" msgstr "min/km" -#: glade/pytrainer.glade:752 glade/pytrainer.glade:1145 +#: glade/pytrainer.glade:752 +#: glade/pytrainer.glade:1145 +#: pytrainer/gui/windowmain.py:171 +#: pytrainer/gui/windowmain.py:172 #, fuzzy msgid "m" msgstr "km" @@ -138,10 +185,15 @@ msgid " " msgstr "" -#: glade/pytrainer.glade:808 glade/pytrainer.glade:1117 -#: glade/pytrainer.glade:2040 glade/pytrainer.glade:2068 -#: glade/pytrainer.glade:2096 glade/pytrainer.glade:2264 -#: glade/pytrainer.glade:3696 glade/pytrainer.glade:4852 +#: glade/pytrainer.glade:808 +#: glade/pytrainer.glade:1117 +#: glade/pytrainer.glade:2040 +#: glade/pytrainer.glade:2068 +#: glade/pytrainer.glade:2096 +#: glade/pytrainer.glade:2264 +#: glade/pytrainer.glade:3696 +#: glade/pytrainer.glade:4852 +#: glade/pytrainer.glade:5994 msgid " " msgstr " " @@ -150,8 +202,11 @@ msgid "<b>Date:</b>" msgstr "<b>Fecha:</b>" -#: glade/pytrainer.glade:948 glade/pytrainer.glade:2966 -#: glade/pytrainer.glade:4094 glade/pytrainer.glade:5389 +#: glade/pytrainer.glade:948 +#: glade/pytrainer.glade:2966 +#: glade/pytrainer.glade:4094 +#: glade/pytrainer.glade:5236 +#: glade/pytrainer.glade:6531 msgid "<b>Distance:</b>" msgstr "<b>Distancia:</b>" @@ -160,8 +215,11 @@ msgid "<b>Max Speed</b>" msgstr "<b>Nombre:</b>" -#: glade/pytrainer.glade:1005 glade/pytrainer.glade:3556 -#: glade/pytrainer.glade:4684 glade/pytrainer.glade:5840 +#: glade/pytrainer.glade:1005 +#: glade/pytrainer.glade:3556 +#: glade/pytrainer.glade:4684 +#: glade/pytrainer.glade:5826 +#: glade/pytrainer.glade:6982 #, fuzzy msgid "<b>Max Pace:</b>" msgstr "<b>Nombre:</b>" @@ -175,38 +233,70 @@ msgid " " msgstr "" -#: glade/pytrainer.glade:1211 glade/pytrainer.glade:2910 -#: glade/pytrainer.glade:4038 glade/pytrainer.glade:5613 +#: glade/pytrainer.glade:1211 +#: glade/pytrainer.glade:2910 +#: glade/pytrainer.glade:4038 +#: glade/pytrainer.glade:5180 +#: glade/pytrainer.glade:6755 msgid "Km" msgstr "km" -#: glade/pytrainer.glade:1244 glade/pytrainer.glade:1294 -#: glade/pytrainer.glade:1344 glade/pytrainer.glade:3028 -#: glade/pytrainer.glade:3078 glade/pytrainer.glade:3128 -#: glade/pytrainer.glade:4206 glade/pytrainer.glade:4256 -#: glade/pytrainer.glade:5501 glade/pytrainer.glade:5551 +#: glade/pytrainer.glade:1244 +#: glade/pytrainer.glade:1294 +#: glade/pytrainer.glade:1344 +#: glade/pytrainer.glade:3028 +#: glade/pytrainer.glade:3078 +#: glade/pytrainer.glade:3128 +#: glade/pytrainer.glade:4206 +#: glade/pytrainer.glade:4256 +#: glade/pytrainer.glade:5348 +#: glade/pytrainer.glade:5398 +#: glade/pytrainer.glade:6643 +#: glade/pytrainer.glade:6693 msgid "00" msgstr "00" -#: glade/pytrainer.glade:1269 glade/pytrainer.glade:1319 -#: glade/pytrainer.glade:3053 glade/pytrainer.glade:3103 -#: glade/pytrainer.glade:4181 glade/pytrainer.glade:4231 -#: glade/pytrainer.glade:5476 glade/pytrainer.glade:5526 -#: glade/pytrainer.glade:7646 glade/pytrainer.glade:7691 +#: glade/pytrainer.glade:1269 +#: glade/pytrainer.glade:1319 +#: glade/pytrainer.glade:3053 +#: glade/pytrainer.glade:3103 +#: glade/pytrainer.glade:4181 +#: glade/pytrainer.glade:4231 +#: glade/pytrainer.glade:5323 +#: glade/pytrainer.glade:5373 +#: glade/pytrainer.glade:6618 +#: glade/pytrainer.glade:6668 +#: glade/pytrainer.glade:8788 +#: glade/pytrainer.glade:8833 msgid ":" msgstr ":" -#: glade/pytrainer.glade:1413 glade/pytrainer.glade:2375 -#: glade/pytrainer.glade:2937 glade/pytrainer.glade:3219 -#: glade/pytrainer.glade:3360 glade/pytrainer.glade:3444 -#: glade/pytrainer.glade:3724 glade/pytrainer.glade:3752 -#: glade/pytrainer.glade:4065 glade/pytrainer.glade:4320 -#: glade/pytrainer.glade:4404 glade/pytrainer.glade:4600 -#: glade/pytrainer.glade:4880 glade/pytrainer.glade:5220 -#: glade/pytrainer.glade:5304 glade/pytrainer.glade:5360 -#: glade/pytrainer.glade:5669 glade/pytrainer.glade:5952 -#: glade/pytrainer.glade:5980 glade/pytrainer.glade:6008 -#: glade/pytrainer.glade:6036 +#: glade/pytrainer.glade:1413 +#: glade/pytrainer.glade:2375 +#: glade/pytrainer.glade:2937 +#: glade/pytrainer.glade:3219 +#: glade/pytrainer.glade:3360 +#: glade/pytrainer.glade:3444 +#: glade/pytrainer.glade:3724 +#: glade/pytrainer.glade:3752 +#: glade/pytrainer.glade:4065 +#: glade/pytrainer.glade:4320 +#: glade/pytrainer.glade:4404 +#: glade/pytrainer.glade:4600 +#: glade/pytrainer.glade:4880 +#: glade/pytrainer.glade:5207 +#: glade/pytrainer.glade:5462 +#: glade/pytrainer.glade:5546 +#: glade/pytrainer.glade:5742 +#: glade/pytrainer.glade:6022 +#: glade/pytrainer.glade:6362 +#: glade/pytrainer.glade:6446 +#: glade/pytrainer.glade:6502 +#: glade/pytrainer.glade:6811 +#: glade/pytrainer.glade:7094 +#: glade/pytrainer.glade:7122 +#: glade/pytrainer.glade:7150 +#: glade/pytrainer.glade:7178 msgid " " msgstr "" @@ -226,8 +316,10 @@ "Ritmo\n" "Pulsaciones" -#: glade/pytrainer.glade:1653 glade/pytrainer.glade:5038 -#: glade/pytrainer.glade:6194 +#: glade/pytrainer.glade:1653 +#: glade/pytrainer.glade:5038 +#: glade/pytrainer.glade:6180 +#: glade/pytrainer.glade:7336 msgid "Versus" msgstr "Contra" @@ -239,18 +331,29 @@ "Pace\n" "Heart Rate\n" msgstr "" +"Nada\n" +"Perfil\n" +"Velocidad\n" +"Ritmo\n" +"Pulsaciones\n" #: glade/pytrainer.glade:1843 msgid "<b>Beats:</b>" msgstr "<b>Pulsaciones:</b>" -#: glade/pytrainer.glade:1871 glade/pytrainer.glade:3332 -#: glade/pytrainer.glade:4376 glade/pytrainer.glade:5192 +#: glade/pytrainer.glade:1871 +#: glade/pytrainer.glade:3332 +#: glade/pytrainer.glade:4376 +#: glade/pytrainer.glade:5518 +#: glade/pytrainer.glade:6334 msgid "<b>Calories: </b>" -msgstr "<b>Calorias:</b>" +msgstr "<b>Calorías:</b>" -#: glade/pytrainer.glade:1899 glade/pytrainer.glade:3612 -#: glade/pytrainer.glade:4796 glade/pytrainer.glade:5924 +#: glade/pytrainer.glade:1899 +#: glade/pytrainer.glade:3612 +#: glade/pytrainer.glade:4796 +#: glade/pytrainer.glade:5938 +#: glade/pytrainer.glade:7066 #, fuzzy msgid "<b>Max Beats:</b>" msgstr "<b>Pulsaciones:</b>" @@ -265,7 +368,8 @@ msgid "<b>HR Zone5:</b>" msgstr "<b>Mes:</b>" -#: glade/pytrainer.glade:1984 glade/pytrainer.glade:2348 +#: glade/pytrainer.glade:1984 +#: glade/pytrainer.glade:2348 msgid " bpm" msgstr "ppm" @@ -293,18 +397,30 @@ msgid "<b>HR Zone1:</b>" msgstr "<b>Mes:</b>" -#: glade/pytrainer.glade:2236 glade/pytrainer.glade:2292 -#: glade/pytrainer.glade:2320 glade/pytrainer.glade:3668 -#: glade/pytrainer.glade:4489 glade/pytrainer.glade:4824 +#: glade/pytrainer.glade:2236 +#: glade/pytrainer.glade:2292 +#: glade/pytrainer.glade:2320 +#: glade/pytrainer.glade:3668 +#: glade/pytrainer.glade:4489 +#: glade/pytrainer.glade:4824 +#: glade/pytrainer.glade:5631 +#: glade/pytrainer.glade:5966 msgid " " msgstr "" -#: glade/pytrainer.glade:2403 glade/pytrainer.glade:2430 -#: glade/pytrainer.glade:2458 glade/pytrainer.glade:2486 -#: glade/pytrainer.glade:2514 glade/pytrainer.glade:3472 -#: glade/pytrainer.glade:3640 glade/pytrainer.glade:4628 -#: glade/pytrainer.glade:4768 glade/pytrainer.glade:5332 -#: glade/pytrainer.glade:5753 +#: glade/pytrainer.glade:2403 +#: glade/pytrainer.glade:2430 +#: glade/pytrainer.glade:2458 +#: glade/pytrainer.glade:2486 +#: glade/pytrainer.glade:2514 +#: glade/pytrainer.glade:3472 +#: glade/pytrainer.glade:3640 +#: glade/pytrainer.glade:4628 +#: glade/pytrainer.glade:4768 +#: glade/pytrainer.glade:5770 +#: glade/pytrainer.glade:5910 +#: glade/pytrainer.glade:6474 +#: glade/pytrainer.glade:6895 msgid "bpm" msgstr "ppm" @@ -318,8 +434,9 @@ msgid " <b>Heart Rate:</b>" msgstr "<b>Fecha:</b>" -#: glade/pytrainer.glade:2757 glade/pytrainer.glade:7008 -#: glade/pytrainer.glade:10875 +#: glade/pytrainer.glade:2757 +#: glade/pytrainer.glade:8150 +#: glade/pytrainer.glade:12008 msgid "label-2147483648" msgstr " " @@ -332,19 +449,25 @@ msgid "Record" msgstr "Registro" -#: glade/pytrainer.glade:3276 glade/pytrainer.glade:4461 -#: glade/pytrainer.glade:5782 +#: glade/pytrainer.glade:3276 +#: glade/pytrainer.glade:4461 +#: glade/pytrainer.glade:5603 +#: glade/pytrainer.glade:6924 #, fuzzy msgid "<b>Max Speed:</b>" msgstr "<b>Nombre:</b>" -#: glade/pytrainer.glade:3388 glade/pytrainer.glade:4432 -#: glade/pytrainer.glade:5248 +#: glade/pytrainer.glade:3388 +#: glade/pytrainer.glade:4432 +#: glade/pytrainer.glade:5574 +#: glade/pytrainer.glade:6390 msgid "Cal" msgstr "Cal" -#: glade/pytrainer.glade:3416 glade/pytrainer.glade:4572 -#: glade/pytrainer.glade:5276 +#: glade/pytrainer.glade:3416 +#: glade/pytrainer.glade:4572 +#: glade/pytrainer.glade:5714 +#: glade/pytrainer.glade:6418 msgid "<b>Beats avg:</b>" msgstr "<b>Media pulsaciones:</b>" @@ -368,87 +491,104 @@ #: glade/pytrainer.glade:3979 msgid "Day" -msgstr "Dia" +msgstr "Día" -#: glade/pytrainer.glade:4156 glade/pytrainer.glade:5451 +#: glade/pytrainer.glade:4156 +#: glade/pytrainer.glade:5298 +#: glade/pytrainer.glade:6593 msgid "000" msgstr "000" -#: glade/pytrainer.glade:4545 glade/pytrainer.glade:7844 +#: glade/pytrainer.glade:4545 +#: glade/pytrainer.glade:5687 +#: glade/pytrainer.glade:8986 msgid " " msgstr " " #: glade/pytrainer.glade:4918 -msgid " <b>Month:</b>" -msgstr "<b>Mes:</b>" +#, fuzzy +msgid " <b>Week:</b>" +msgstr "<b>Semana:</b>" -#: glade/pytrainer.glade:5018 glade/pytrainer.glade:6174 +#: glade/pytrainer.glade:5018 +#: glade/pytrainer.glade:6160 +#: glade/pytrainer.glade:7316 msgid "" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" -"Kilometros\n" +"Distancia\n" "Tiempo\n" "Pulsaciones\n" -"Media\n" -"Calorias" +"Velocidad media\n" +"Calorías" -#: glade/pytrainer.glade:5063 glade/pytrainer.glade:6219 -#, fuzzy +#: glade/pytrainer.glade:5063 +#: glade/pytrainer.glade:6205 +#: glade/pytrainer.glade:7361 msgid "" "None\n" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" -"Kilometros\n" +"Nada\n" +"Distancia\n" "Tiempo\n" "Pulsaciones\n" -"Media\n" -"Calorias" +"Velocidad media\n" +"Calorías" -#: glade/pytrainer.glade:5133 +#: glade/pytrainer.glade:5132 +msgid "Week" +msgstr "Semana" + +#: glade/pytrainer.glade:6060 +msgid " <b>Month:</b>" +msgstr "<b>Mes:</b>" + +#: glade/pytrainer.glade:6275 msgid "Month" msgstr "Mes" -#: glade/pytrainer.glade:6074 +#: glade/pytrainer.glade:7216 msgid " <b>Year:</b>" msgstr "<b>Año:</b>" -#: glade/pytrainer.glade:6289 +#: glade/pytrainer.glade:7431 msgid "Year" msgstr "Año" -#: glade/pytrainer.glade:6332 +#: glade/pytrainer.glade:7474 msgid "label154" msgstr " " -#: glade/pytrainer.glade:6369 +#: glade/pytrainer.glade:7511 msgid "<b>Title:</b>" -msgstr "<b>Titulo:</b>" +msgstr "<b>Título:</b>" -#: glade/pytrainer.glade:6414 +#: glade/pytrainer.glade:7556 msgid "Search" msgstr "Buscar" -#: glade/pytrainer.glade:6461 +#: glade/pytrainer.glade:7603 msgid "Columns" msgstr "Columnas" -#: glade/pytrainer.glade:6536 +#: glade/pytrainer.glade:7678 msgid "label155" msgstr " " -#: glade/pytrainer.glade:6670 +#: glade/pytrainer.glade:7812 msgid "Type:" msgstr "Tipo:" -#: glade/pytrainer.glade:6698 +#: glade/pytrainer.glade:7840 msgid "" "Font\n" "Restaurant\n" @@ -456,496 +596,902 @@ "Summit" msgstr "" -#: glade/pytrainer.glade:6719 +#: glade/pytrainer.glade:7861 #, fuzzy msgid "Latitude: " msgstr "<b>Latitud:</b>" -#: glade/pytrainer.glade:6747 +#: glade/pytrainer.glade:7889 #, fuzzy msgid " Name:" -msgstr "Nombre" +msgstr "Nombre:" -#: glade/pytrainer.glade:6775 +#: glade/pytrainer.glade:7917 #, fuzzy msgid "Longitude:" msgstr "<b>Longitud:</b>" -#: glade/pytrainer.glade:6803 glade/pytrainer.glade:12442 -#: glade/pytrainer.glade:12765 +#: glade/pytrainer.glade:7945 +#: glade/pytrainer.glade:13567 +#: glade/pytrainer.glade:13890 #, fuzzy msgid "Description:" msgstr "<b>Descripcion:</b>" -#: glade/pytrainer.glade:6923 +#: glade/pytrainer.glade:8065 msgid "<b> Waypoint: </b>" -msgstr "<b>Waypoint:</b>" +msgstr "<b> Waypoint: </b>" -#: glade/pytrainer.glade:7056 +#: glade/pytrainer.glade:8198 msgid "label162" msgstr " " -#: glade/pytrainer.glade:7196 +#: glade/pytrainer.glade:8338 msgid "label163" msgstr " " -#: glade/pytrainer.glade:7221 +#: glade/pytrainer.glade:8363 msgid "New Entry" msgstr "Nueva Entrada" -#: glade/pytrainer.glade:7294 +#: glade/pytrainer.glade:8436 #, fuzzy msgid "Title:" -msgstr "Titulo" +msgstr "Título:" -#: glade/pytrainer.glade:7343 +#: glade/pytrainer.glade:8485 #, fuzzy msgid "GPX File:" msgstr "Archivo Gpxl" -#: glade/pytrainer.glade:7413 +#: glade/pytrainer.glade:8555 msgid "Calculate Values" -msgstr "Calcular Valores" +msgstr "Calcular valores" -#: glade/pytrainer.glade:7432 +#: glade/pytrainer.glade:8574 #, fuzzy msgid "Sport:" -msgstr "Deporte" +msgstr "Deporte:" -#: glade/pytrainer.glade:7483 +#: glade/pytrainer.glade:8625 #, fuzzy msgid "<b>Main</b>" msgstr "<b>Mes:</b>" -#: glade/pytrainer.glade:7544 +#: glade/pytrainer.glade:8686 #, fuzzy msgid "Distance (Km):" msgstr "Distancia (Km)" -#: glade/pytrainer.glade:7573 glade/pytrainer.glade:7770 -#: glade/pytrainer.glade:8051 glade/pytrainer.glade:8297 -#: glade/pytrainer.glade:8765 glade/pytrainer.glade:11513 +#: glade/pytrainer.glade:8715 +#: glade/pytrainer.glade:8912 +#: glade/pytrainer.glade:9193 +#: glade/pytrainer.glade:9439 +#: glade/pytrainer.glade:9907 +#: glade/pytrainer.glade:12638 #, fuzzy msgid "Calculate" msgstr "Calcular Tiempo" -#: glade/pytrainer.glade:7592 +#: glade/pytrainer.glade:8734 #, fuzzy msgid "Time:" msgstr "Tiempo" -#: glade/pytrainer.glade:7790 +#: glade/pytrainer.glade:8932 #, fuzzy msgid "Date:" msgstr "Fecha" -#: glade/pytrainer.glade:7910 glade/pytrainer.glade:11563 +#: glade/pytrainer.glade:9052 +#: glade/pytrainer.glade:12688 #, fuzzy msgid "<b>General</b>" msgstr "<b>Media:</b>" -#: glade/pytrainer.glade:7971 +#: glade/pytrainer.glade:9113 #, fuzzy msgid "Max (km/h):" msgstr "Media (Km/h)" -#: glade/pytrainer.glade:8022 +#: glade/pytrainer.glade:9164 #, fuzzy msgid "Velocity (km/h)" msgstr "Velocidad (km/h)" -#: glade/pytrainer.glade:8097 +#: glade/pytrainer.glade:9239 #, fuzzy msgid "<b>Velocity</b>" msgstr "<b>Borrar deporte</b>" -#: glade/pytrainer.glade:8133 +#: glade/pytrainer.glade:9275 #, fuzzy msgid "Quick Entry" msgstr "Nueva Entrada" -#: glade/pytrainer.glade:8193 +#: glade/pytrainer.glade:9335 msgid "Max (min/km):" -msgstr "Max·(min/km)" +msgstr "Max (min/km)" -#: glade/pytrainer.glade:8245 +#: glade/pytrainer.glade:9387 msgid "Pace (min/km):" -msgstr "" +msgstr "Ritmo (min/km)" -#: glade/pytrainer.glade:8320 +#: glade/pytrainer.glade:9462 #, fuzzy msgid "<b>Pace</b>" msgstr "<b>Nombre:</b>" -#: glade/pytrainer.glade:8381 +#: glade/pytrainer.glade:9523 msgid "Ascent:" -msgstr "" +msgstr "Ascenso:" -#: glade/pytrainer.glade:8433 +#: glade/pytrainer.glade:9575 msgid "Descent:" -msgstr "" +msgstr "Descenso:" -#: glade/pytrainer.glade:8488 +#: glade/pytrainer.glade:9630 #, fuzzy msgid "<b>Accumulated Altitude Change</b>" -msgstr "<b>Desnivel Acumulado:</b>" +msgstr "<b>Desnivel acumulado:</b>" -#: glade/pytrainer.glade:8549 +#: glade/pytrainer.glade:9691 msgid "Max (bpm):" -msgstr "" +msgstr "Pulsaciones máximas" -#: glade/pytrainer.glade:8578 +#: glade/pytrainer.glade:9720 msgid "Heart rate:" -msgstr "" +msgstr "Pulsaciones" -#: glade/pytrainer.glade:8652 +#: glade/pytrainer.glade:9794 +#: pytrainer/gui/windowmain.py:681 +#: pytrainer/monthgraph.py:77 +#: pytrainer/yeargraph.py:78 +#: pytrainer/weekgraph.py:119 msgid "Calories" -msgstr "Calorias" +msgstr "Calorías" -#: glade/pytrainer.glade:8703 -msgid "" -"<small><b>Note:</b> In order to calculate the calories you must set the " -"sport MET (in Preferences->Sport) </small>" -msgstr "" +#: glade/pytrainer.glade:9845 +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:</a> Para el cálculo de calorías es necesario introducir el valor de MET del deporte (en Preferencias -> Deporte)</small>" -#: glade/pytrainer.glade:8820 +#: glade/pytrainer.glade:9962 #, fuzzy msgid "<b>Heart Rate</b>" msgstr "<b>Media pulsaciones:</b>" -#: glade/pytrainer.glade:8856 +#: glade/pytrainer.glade:9998 msgid "Advanced" -msgstr "" +msgstr "Avanzado" -#: glade/pytrainer.glade:8953 +#: glade/pytrainer.glade:10095 msgid "<b>Comments</b>" msgstr "<b>Comentarios</b>" -#: glade/pytrainer.glade:8982 +#: glade/pytrainer.glade:10124 #, fuzzy msgid "Comments" msgstr "<b>Comentarios</b>" -#: glade/pytrainer.glade:9087 +#: glade/pytrainer.glade:10229 msgid "Preferences" -msgstr "" +msgstr "Preferencias" -#: glade/pytrainer.glade:9161 +#: glade/pytrainer.glade:10303 msgid "Metric system" -msgstr "" +msgstr "Sistema métrico" -#: glade/pytrainer.glade:9183 +#: glade/pytrainer.glade:10325 msgid "U.S. customary units" -msgstr "" +msgstr "Sistema americano" -#: glade/pytrainer.glade:9209 +#: glade/pytrainer.glade:10351 msgid "<b>System of Measurement</b>" -msgstr "" +msgstr "<b>Sistema de medida</b>" -#: glade/pytrainer.glade:9269 +#: glade/pytrainer.glade:10411 #, fuzzy msgid "Database type:" msgstr "Tipo de base de datos" -#: glade/pytrainer.glade:9297 +#: glade/pytrainer.glade:10439 #, fuzzy msgid "Database host:" msgstr "Servidor base de datos" -#: glade/pytrainer.glade:9346 +#: glade/pytrainer.glade:10488 #, fuzzy msgid "Database name:" msgstr "Nombre base de datos" -#: glade/pytrainer.glade:9414 +#: glade/pytrainer.glade:10556 #, fuzzy msgid "Database user:" msgstr "Usuarios base de datos" -#: glade/pytrainer.glade:9442 +#: glade/pytrainer.glade:10584 #, fuzzy msgid "Database pass:" msgstr "Contraseña base de datos" -#: glade/pytrainer.glade:9516 +#: glade/pytrainer.glade:10658 msgid "<b>Database</b>" msgstr "<b>Base de datos:</b>" -#: glade/pytrainer.glade:9576 +#: glade/pytrainer.glade:10718 msgid "Use this port for internal connections: " -msgstr "" +msgstr "Use este puerto para conexiones internas" -#: glade/pytrainer.glade:9627 -msgid "" -"<small><b>Note:</b> Change this only if you know what you are doing</small>" -msgstr "<small><b>Nota:</b> Cambie ésto sólo si sabe lo que hace.</small>" +#: glade/pytrainer.glade:10769 +msgid "<small><b>Note:</b> Change this only if you know what you are doing</small>" +msgstr "<small><b>Nota:</b> Cambie ésto solamente si sabe lo que hace.</small>" -#: glade/pytrainer.glade:9659 +#: glade/pytrainer.glade:10801 #, fuzzy msgid "<b>Port Connnection</b>" -msgstr "<b>Descripcion:</b>" +msgstr "<b>Descripción:</b>" -#: glade/pytrainer.glade:9695 +#: glade/pytrainer.glade:10837 #, fuzzy msgid "General" -msgstr "Genero" +msgstr "General" -#: glade/pytrainer.glade:9748 +#: glade/pytrainer.glade:10890 #, fuzzy msgid "User name:" msgstr "Nuevo nombre" -#: glade/pytrainer.glade:9776 +#: glade/pytrainer.glade:10918 #, fuzzy msgid "Gender:" -msgstr "Genero" +msgstr "Género" -#: glade/pytrainer.glade:9822 +#: glade/pytrainer.glade:10964 #, fuzzy msgid "Height:" msgstr "Altura" -#: glade/pytrainer.glade:9893 +#: glade/pytrainer.glade:11035 msgid "Date of birth:" msgstr "Fecha de nacimiento:" -#: glade/pytrainer.glade:10005 +#: glade/pytrainer.glade:11147 #, fuzzy msgid "Weight:" msgstr "Peso" -#: glade/pytrainer.glade:10037 +#: glade/pytrainer.glade:11179 #, fuzzy msgid "<b>Athlete Details</b>" -msgstr "<b>Borrar deporte</b>" +msgstr "<b>Datos personales</b>" -#: glade/pytrainer.glade:10066 +#: glade/pytrainer.glade:11208 #, fuzzy msgid "Athlete" -msgstr "borrar" +msgstr "Atleta" -#: glade/pytrainer.glade:10249 +#: glade/pytrainer.glade:11391 #, fuzzy msgid "<b>Sport List</b>" msgstr "<b>Lista de deportes:</b>" -#: glade/pytrainer.glade:10278 +#: glade/pytrainer.glade:11420 msgid "llist" msgstr "" -#: glade/pytrainer.glade:10358 glade/pytrainer.glade:12386 -#: glade/pytrainer.glade:12877 +#: glade/pytrainer.glade:11500 +#: glade/pytrainer.glade:13511 +#: glade/pytrainer.glade:14002 #, fuzzy msgid "Name:" msgstr "Nombre" -#: glade/pytrainer.glade:10386 +#: glade/pytrainer.glade:11528 msgid "M.E.T.:" -msgstr "M.E.T:" +msgstr "M.E.T.:" -#: glade/pytrainer.glade:10435 +#: glade/pytrainer.glade:11577 #, fuzzy msgid "Extra Weight:" -msgstr "Peso" +msgstr "Peso extra:" -#: glade/pytrainer.glade:10511 glade/pytrainer.glade:11117 -msgid "" -"<small><b>Note:</b> You can get your M.E.T. sport Coefficient here: http://" -"pytrainer.e-oss.net/met.pdf</small>" -msgstr "" +#: glade/pytrainer.glade:11651 +#: glade/pytrainer.glade:12249 +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/pytrainer.glade:10622 +#: glade/pytrainer.glade:11755 #, fuzzy msgid "<b>Add New Sport</b>" msgstr "<b>Añadir nuevo deporte</b>" -#: glade/pytrainer.glade:10651 +#: glade/pytrainer.glade:11784 msgid "new" msgstr "nuevo" -#: glade/pytrainer.glade:10711 +#: glade/pytrainer.glade:11844 msgid "" "Deleting a sport removes associated records.\n" "Continue?" -msgstr "SI borra un deporte elimina sus registros asociados.\n" -"Desea continuar?" +msgstr "" +"Si borra un deporte elimina sus registros asociados.\n" +"¿Desea continuar?" -#: glade/pytrainer.glade:10851 +#: glade/pytrainer.glade:11984 #, fuzzy msgid "<b>Delete Sport</b>" msgstr "<b>Borrar deporte</b>" -#: glade/pytrainer.glade:10911 +#: glade/pytrainer.glade:12044 msgid "delete" msgstr "borrar" -#: glade/pytrainer.glade:10970 +#: glade/pytrainer.glade:12103 msgid "Name" msgstr "Nombre" -#: glade/pytrainer.glade:11019 +#: glade/pytrainer.glade:12152 msgid "M.E.T." msgstr "M.E.T." -#: glade/pytrainer.glade:11068 +#: glade/pytrainer.glade:12201 +#: pytrainer/gui/windowprofile.py:69 #, fuzzy msgid "Extra Weight" msgstr "Peso" -#: glade/pytrainer.glade:11234 +#: glade/pytrainer.glade:12359 #, fuzzy msgid "<b>Edit Sport</b>" msgstr "<b>Editar deporte</b>" -#: glade/pytrainer.glade:11258 +#: glade/pytrainer.glade:12383 #, fuzzy msgid "<b>lalaal</b>" msgstr "<b>Base de datos:</b>" -#: glade/pytrainer.glade:11294 +#: glade/pytrainer.glade:12419 msgid "edit" msgstr "editar" -#: glade/pytrainer.glade:11323 +#: glade/pytrainer.glade:12448 msgid "Sports" msgstr "Deportes" -#: glade/pytrainer.glade:11382 +#: glade/pytrainer.glade:12507 msgid "Maximum heart rate:" msgstr "Pulsaciones máximas:" -#: glade/pytrainer.glade:11410 +#: glade/pytrainer.glade:12535 msgid "Resting heart rate:" msgstr "Pulsaciones en reposo:" -#: glade/pytrainer.glade:11484 -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/pytrainer.glade:12609 +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/pytrainer.glade:11623 -msgid "" -"<small><b>NOTE:</b> in order to use the Karvonen method you must cover the " -"Resting hr field.</small>" -msgstr "" +#: glade/pytrainer.glade:12748 +msgid "<small><b>NOTE:</b> in order to use the Karvonen method you must cover the Resting hr field.</small>" +msgstr "<small><b>NOTE:</b> Rellene todos los campos relativos a pulsaciones para usar el método Karvonen</small>" -#: glade/pytrainer.glade:11652 +#: glade/pytrainer.glade:12777 msgid "Percentages based method" -msgstr "Metodo basado en Porcentajes" +msgstr "Metodo basado en porcentajes" -#: glade/pytrainer.glade:11674 +#: glade/pytrainer.glade:12799 +#: pytrainer/gui/windowmain.py:254 msgid "Karvonen method" -msgstr "" +msgstr "Método Karvonen" -#: glade/pytrainer.glade:11696 +#: glade/pytrainer.glade:12821 msgid "Select how to calculate your heart rate zones." -msgstr "" +msgstr "Seleccione cómo calcular las zonas de pulsaciones" -#: glade/pytrainer.glade:11728 +#: glade/pytrainer.glade:12853 #, fuzzy msgid "<b>Heart Rate Zones</b>" msgstr "<b>Pulsaciones:</b>" -#: glade/pytrainer.glade:11764 +#: glade/pytrainer.glade:12889 +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 msgid "Heart Rate" -msgstr "" +msgstr "Pulsaciones" -#: glade/pytrainer.glade:11869 +#: glade/pytrainer.glade:12994 msgid "Calendar" msgstr "Calendario" -#: glade/pytrainer.glade:12071 +#: glade/pytrainer.glade:13196 msgid "Edit Record" msgstr "Editar Registro" -#: glade/pytrainer.glade:12092 +#: glade/pytrainer.glade:13217 msgid "Show graph in classic view" -msgstr "Mostrar en la vista clásica" +msgstr "Mostrar en vista clásica" -#: glade/pytrainer.glade:12128 +#: glade/pytrainer.glade:13253 msgid "warning" msgstr "advertencia" -#: glade/pytrainer.glade:12330 +#: glade/pytrainer.glade:13455 msgid "<b>Extension Details</b>" msgstr "<b>Detalles de la Extensión</b>" -#: glade/pytrainer.glade:12358 +#: glade/pytrainer.glade:13483 msgid "name-entry" -msgstr "" +msgstr "Nombre" -#: glade/pytrainer.glade:12414 glade/pytrainer.glade:12821 +#: glade/pytrainer.glade:13539 +#: glade/pytrainer.glade:13946 #, fuzzy msgid "Status:" msgstr "<b>Estado:</b>" -#: glade/pytrainer.glade:12470 glade/pytrainer.glade:12793 +#: glade/pytrainer.glade:13595 +#: glade/pytrainer.glade:13918 msgid "status-entry" -msgstr "" +msgstr "Estado" -#: glade/pytrainer.glade:12498 +#: glade/pytrainer.glade:13623 msgid "description-entry" -msgstr "" +msgstr "Descripción" -#: glade/pytrainer.glade:12633 +#: glade/pytrainer.glade:13758 msgid "Plugins" msgstr "Plugins" -#: glade/pytrainer.glade:12708 +#: glade/pytrainer.glade:13833 #, fuzzy msgid "<b>Plugin Details</b>" msgstr "<b>Base de datos:</b>" -#: glade/pytrainer.glade:12737 +#: glade/pytrainer.glade:13862 msgid "description-entry " -msgstr "" +msgstr "Descripción" -#: glade/pytrainer.glade:12849 +#: glade/pytrainer.glade:13974 msgid "nameEntry" msgstr "Nueva Entrada" -#: glade/pytrainer.glade:13020 +#: glade/pytrainer.glade:14145 msgid "Select track record" msgstr "Seleccione uno de los tracks" +#: pytrainer/main.py:394 +msgid "Delete this database entry?" +msgstr "¿Borrar esta entrada de la base de datos?" + +#: pytrainer/main.py:408 +msgid "Delete this waypoint?" +msgstr "¿Borrar este waypoint?" + +#: pytrainer/gui/windowprofile.py:51 +#, fuzzy +msgid "Male" +msgstr "Valor" + +#: pytrainer/gui/windowprofile.py:52 +msgid "Female" +msgstr "Mujer" + +#: pytrainer/gui/windowprofile.py:69 +#, fuzzy +msgid "MET" +msgstr "M.E.T." + +#: pytrainer/gui/windowplugins.py:70 +#: pytrainer/gui/windowplugins.py:97 +#: pytrainer/gui/windowextensions.py:70 +msgid "Enable" +msgstr "Habilitar" + +#: pytrainer/gui/windowplugins.py:72 +#: pytrainer/gui/windowplugins.py:96 +#: pytrainer/gui/windowextensions.py:72 +#, fuzzy +msgid "Disable" +msgstr "Distancia" + +#: pytrainer/gui/windowplugins.py:81 +#: pytrainer/gui/windowextensions.py:81 +#, python-format +msgid "%s settings" +msgstr "%s opciones" + +#: pytrainer/gui/windowplugins.py:104 +msgid "Ok" +msgstr "Ok" + +#: pytrainer/gui/windowmain.py:57 +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:64 +msgid "id" +msgstr "id" + +#: pytrainer/gui/windowmain.py:57 +msgid "Kilometer" +msgstr "Kilómetros" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:674 +#, fuzzy +msgid "Title" +msgstr "Titulo" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:675 +#: pytrainer/gui/dialogselecttrack.py:40 +#, fuzzy +msgid "Date" +msgstr "Fecha" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:676 +#: pytrainer/extensions/googlemaps.py:91 +msgid "Distance" +msgstr "Distancia" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:678 +#: pytrainer/extensions/googlemaps.py:91 +#, fuzzy +msgid "Time" +msgstr "Tiempo" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:679 +msgid "Beats" +msgstr "Pulsaciones" + +#: pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:680 +msgid "Average" +msgstr "Media" + +#: pytrainer/gui/windowmain.py:64 +msgid "Waypoint" +msgstr "Waypoint" + +#: pytrainer/gui/windowmain.py:158 +#: pytrainer/gui/windowmain.py:267 +#: pytrainer/gui/windowmain.py:366 +#: pytrainer/gui/windowmain.py:444 +#, fuzzy +msgid "miles" +msgstr "Archivo" + +#: pytrainer/gui/windowmain.py:159 +#: pytrainer/gui/windowmain.py:160 +#: pytrainer/gui/windowmain.py:268 +#: pytrainer/gui/windowmain.py:269 +#: pytrainer/gui/windowmain.py:367 +#: pytrainer/gui/windowmain.py:368 +#: pytrainer/gui/windowmain.py:445 +#: pytrainer/gui/windowmain.py:446 +msgid "miles/h" +msgstr "" + +#: pytrainer/gui/windowmain.py:161 +#: pytrainer/gui/windowmain.py:162 +#: pytrainer/gui/windowmain.py:270 +#: pytrainer/gui/windowmain.py:271 +#: pytrainer/gui/windowmain.py:369 +#: pytrainer/gui/windowmain.py:370 +#: pytrainer/gui/windowmain.py:447 +#: pytrainer/gui/windowmain.py:448 +#, fuzzy +msgid "min/mile" +msgstr "min/km" + +#: pytrainer/gui/windowmain.py:163 +#: pytrainer/gui/windowmain.py:164 +#, fuzzy +msgid "feet" +msgstr "borrar" + +#: pytrainer/gui/windowmain.py:166 +#: pytrainer/gui/windowmain.py:273 +#: pytrainer/gui/windowmain.py:372 +#: pytrainer/gui/windowmain.py:450 +#: pytrainer/extensions/googlemaps.py:91 +#, fuzzy +msgid "km" +msgstr "Km/h" + +#: pytrainer/gui/windowmain.py:256 +#, fuzzy +msgid "Percentages method" +msgstr "Método basado en porcentajes" + +#: pytrainer/gui/dialogselecttrack.py:40 +msgid "Track Name" +msgstr "Nombre de la ruta" + +#: pytrainer/gui/drawArea.py:142 +#: pytrainer/extensions/googlemaps.py:89 +msgid "h" +msgstr "" + +#: pytrainer/gui/drawArea.py:143 +#: pytrainer/extensions/googlemaps.py:89 +#, fuzzy +msgid "min" +msgstr "min/km" + +#: pytrainer/gui/windowextensions.py:104 +#: pytrainer/gui/windowextensions.py:117 +msgid "OK" +msgstr "Ok" + +#: pytrainer/lib/gpx.py:90 +#, fuzzy +msgid "No Name" +msgstr "Nombre" + +#: pytrainer/lib/gpx.py:97 +msgid "No Data" +msgstr "Sin datos" + +#: pytrainer/lib/heartrate.py:46 +msgid "Moderate activity" +msgstr "Actividad moderada" + +#: pytrainer/lib/heartrate.py:47 +msgid "Weight Control" +msgstr "Control de peso" + +#: pytrainer/lib/heartrate.py:48 +msgid "Aerobic" +msgstr "Aeróbico" + +#: pytrainer/lib/heartrate.py:49 +msgid "Anaerobic" +msgstr "Anaeróbico" + +#: pytrainer/lib/heartrate.py:50 +msgid "VO2 MAX" +msgstr "VO2 máximo" + +#: pytrainer/daygraph.py:52 +#: pytrainer/daygraph.py:54 +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:79 +#: pytrainer/recordgraph.py:81 +#: pytrainer/recordgraph.py:83 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 +#: pytrainer/monthgraph.py:69 +#: pytrainer/yeargraph.py:70 +#: pytrainer/weekgraph.py:111 +msgid "Distance (km)" +msgstr "Distancia (Km)" + +#: pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:79 +msgid "Height (m)" +msgstr "Altura (m)" + +#: pytrainer/daygraph.py:52 +#: pytrainer/recordgraph.py:79 +msgid "Stage Profile" +msgstr "Perfil de Etapa" + +#: pytrainer/daygraph.py:54 +#, fuzzy +msgid "Velocity (Km/h)" +msgstr "Velocidad (km/h)" + +#: pytrainer/daygraph.py:54 +#, fuzzy +msgid "Velocity" +msgstr "velocidad" + +#: pytrainer/daygraph.py:56 +#: pytrainer/recordgraph.py:85 +#: pytrainer/heartrategraph.py:38 +#, fuzzy +msgid "Beats (bpm)" +msgstr "Media pulsaciones (ppm)" + +#: pytrainer/recordgraph.py:81 +#, fuzzy +msgid "Speed (Km/h)" +msgstr "media (km/h)" + +#: pytrainer/recordgraph.py:81 +msgid "Speed" +msgstr "Velocidad" + +#: pytrainer/recordgraph.py:83 +#, fuzzy +msgid "Pace (min/km)" +msgstr "Ritmo (min/km)" + +#: pytrainer/recordgraph.py:83 +msgid "Pace" +msgstr "Ritmo" + +#: pytrainer/monthgraph.py:69 +#: pytrainer/monthgraph.py:71 +#: pytrainer/monthgraph.py:73 +#: pytrainer/monthgraph.py:75 +#: pytrainer/monthgraph.py:77 +msgid "day" +msgstr "dia" + +#: pytrainer/monthgraph.py:69 +#: pytrainer/weekgraph.py:111 +#, fuzzy +msgid "Daily Distance" +msgstr "Distancia" + +#: pytrainer/monthgraph.py:71 +#: pytrainer/yeargraph.py:72 +#: pytrainer/weekgraph.py:113 +#, fuzzy +msgid "Time (hours)" +msgstr "Tiempo en horas" + +#: pytrainer/monthgraph.py:71 +#: pytrainer/weekgraph.py:113 +#, fuzzy +msgid "Daily Time" +msgstr "tiempo diario" + +#: pytrainer/monthgraph.py:73 +#: pytrainer/yeargraph.py:74 +#: pytrainer/weekgraph.py:115 +msgid "Average Heart Rate (bpm)" +msgstr "Pulsaciones medias (ppm)" + +#: pytrainer/monthgraph.py:73 +#: pytrainer/weekgraph.py:115 +#, fuzzy +msgid "Daily Average Heart Rate" +msgstr "medias diarias" + +#: pytrainer/monthgraph.py:75 +#: pytrainer/yeargraph.py:76 +#: pytrainer/weekgraph.py:117 +#, fuzzy +msgid "Average Speed (km/h)" +msgstr "media (km/h)" + +#: pytrainer/monthgraph.py:75 +#: pytrainer/weekgraph.py:117 +#, fuzzy +msgid "Daily Average Speed" +msgstr "medias diarias" + +#: pytrainer/monthgraph.py:77 +#: pytrainer/weekgraph.py:119 +#, fuzzy +msgid "Daily Calories" +msgstr "calorias diarias" + +#: pytrainer/waypoint.py:80 +msgid "The gpx file seems to be a several days records. Perhaps you will need to edit your gpx file" +msgstr "Parece que el archivo gpx contiene salidas de varios dias. Probablementenecesitarás editar tu archivo gpx" + +#: pytrainer/record.py:368 +msgid "pyTrainer cant import data from your gpx file" +msgstr "pyTrainer no puede importar datos de tu fichero gpx" + +#: pytrainer/yeargraph.py:70 +#: pytrainer/yeargraph.py:72 +#: pytrainer/yeargraph.py:74 +#: pytrainer/yeargraph.py:76 +#: pytrainer/yeargraph.py:78 +msgid "month" +msgstr "mes" + +#: pytrainer/yeargraph.py:70 +#, fuzzy +msgid "Monthly Distance" +msgstr "Distancia" + +#: pytrainer/yeargraph.py:72 +#, fuzzy +msgid "Monthly Time" +msgstr "tiempo mensual" + +#: pytrainer/yeargraph.py:74 +#, fuzzy +msgid "Monthly Average Heart Rate" +msgstr "medias mensuales" + +#: pytrainer/yeargraph.py:76 +#, fuzzy +msgid "Monthly Average Speed" +msgstr "medias mensuales" + +#: pytrainer/yeargraph.py:78 +#, fuzzy +msgid "Monthly Calories" +msgstr "calorias mensuales" + +#~ msgid "None" +#~ msgstr "Ninguno" +#~ msgid "January" +#~ msgstr "Enero" +#~ msgid "Febrary" +#~ msgstr "Febrero" +#~ msgid "March" +#~ msgstr "Marzo" +#~ msgid "April" +#~ msgstr "Abril" +#~ msgid "May" +#~ msgstr "Mayo" +#~ msgid "June" +#~ msgstr "Junio" +#~ msgid "July" +#~ msgstr "Julio" +#~ msgid "August" +#~ msgstr "Agosto" +#~ msgid "September" +#~ msgstr "Septiembre" +#~ msgid "October" +#~ msgstr "Octubre" +#~ msgid "November" +#~ msgstr "Noviembre" +#~ msgid "December" +#~ msgstr "Diciembre" + +#, fuzzy +#~ msgid "Kilometers" +#~ msgstr "Kilómetros" + +#, fuzzy +#~ msgid "Daily kilometers" +#~ msgstr "Kilómetros diarios" + +#, fuzzy +#~ msgid "Beats per Minute" +#~ msgstr "pulsaciones por minuto" + +#, fuzzy +#~ msgid "Daily Beats" +#~ msgstr "pulsaciones diarias" +#~ msgid "kilometers" +#~ msgstr "Kilometros" +#~ msgid "monthly kilometers" +#~ msgstr "Kilometros mensuales" +#~ msgid "time in hours" +#~ msgstr "Tiempo en horas" +#~ msgid "beats per minute" +#~ msgstr "pulsaciones por minuto" +#~ msgid "monthly beats" +#~ msgstr "pulsaciones mensuales" +#~ msgid "average (hm/h)" +#~ msgstr "media (km/h)" +#~ msgid "calories" +#~ msgstr "calorias" +#~ msgid "Week View" +#~ msgstr "Vista semanal" #~ msgid " Km" #~ msgstr "km" - #~ msgid " km/h" #~ msgstr "Km/h" - #~ msgid "<b>Positive:</b>" #~ msgstr "<b>Positivo:</b>" - #~ msgid "<b>Negative:</b>" #~ msgstr "<b>Negativo:</b>" - #~ msgid " <b>Name:</b>" #~ msgstr "<b>Nombre:</b>" - #~ msgid " <b>Description:</b>" #~ msgstr "<b>Descripción:</b>" - -#~ msgid "Beats avg (bpm)" -#~ msgstr "Media pulsaciones (ppm)" - #~ msgid "Calculate Distance" #~ msgstr "Calcular Distancia" - #~ msgid "Calculate Average" #~ msgstr "Calcular Media" - #~ msgid "Profile" #~ msgstr "Perfil" - #~ msgid "Age" #~ msgstr "Edad" - #~ msgid "Database" #~ msgstr "Base de datos" - #~ msgid "" #~ "You are going to remove a sport. When you delete a \n" #~ "sport you delete the records asociated. Are you sure \n" @@ -955,19 +1501,14 @@ #~ "un deporte borras también la lista de registros asociados\n" #~ "en la base de datos. ¿Estás seguro de que es ésto lo que \n" #~ "quieres hacer?" - #~ msgid "pytrainer" #~ msgstr "pytrainer" - #~ msgid "(c) Fiz Vazquez <vu...@si...>" #~ msgstr " " - #~ msgid "The free sport trainning center" #~ msgstr "El centro de entrenamiento libre" - #~ msgid "pytrainer.e-oss.net" #~ msgstr " " - #~ msgid "" #~ "Catalan: Eloi Crespillo Itchart <el...@ik...>\n" #~ "Czech: Lobus Pokorny <sp...@se...>\n" @@ -977,159 +1518,25 @@ #~ "german: Aleks <al...@sc...>\n" #~ "Spanish: Fiz vazquez <vu...@si...>" #~ msgstr " " - #~ msgid "window2" #~ msgstr "window2" - #~ msgid "No Active Plugins" #~ msgstr "No hay plugins activos" - #~ msgid "No Active Extensions" #~ msgstr "No hay extensiones activas" - #~ msgid "" #~ "You are going to remove one database entry. Are you sure yo want do it?" #~ msgstr "" #~ "Estás a punto de borrar una entrada en la base de datos. Estás seguro de " #~ "que quieres hacer eso?" - #~ msgid "You are going to remove one waypoint. Are you sure yo want do it?" #~ msgstr "" #~ "Estás a punto de borrar una entrada en la base de datos. Estás seguro de " #~ "que quieres hacer eso?" - -#~ msgid "January" -#~ msgstr "Enero" - -#~ msgid "Febrary" -#~ msgstr "Febrero" - -#~ msgid "March" -#~ msgstr "Marzo" - -#~ msgid "April" -#~ msgstr "Abril" - -#~ msgid "May" -#~ msgstr "Mayo" - -#~ msgid "June" -#~ msgstr "Junio" - -#~ msgid "July" -#~ msgstr "Julio" - -#~ msgid "August" -#~ msgstr "Agosto" - -#~ msgid "September" -#~ msgstr "Septiembre" - -#~ msgid "October" -#~ msgstr "Octubre" - -#~ msgid "November" -#~ msgstr "Noviembre" - -#~ msgid "December" -#~ msgstr "Diciembre" - -#~ msgid "month" -#~ msgstr "mes" - -#~ msgid "kilometers" -#~ msgstr "Kilometros" - -#~ msgid "monthly kilometers" -#~ msgstr "Kilometros mensuales" - -#~ msgid "time in hours" -#~ msgstr "Tiempo en horas" - -#~ msgid "monthly time" -#~ msgstr "tiempo mensual" - -#~ msgid "beats per minute" -#~ msgstr "pulsaciones por minuto" - -#~ msgid "monthly beats" -#~ msgstr "pulsaciones mensuales" - -#~ msgid "average (hm/h)" -#~ msgstr "media (km/h)" - -#~ msgid "monthly averages" -#~ msgstr "medias mensuales" - -#~ msgid "calories" -#~ msgstr "calorias" - -#~ msgid "monthly calories" -#~ msgstr "calorias mensuales" - -#~ msgid "id" -#~ msgstr "id" - -#~ msgid "Kilometer" -#~ msgstr "Kilometros" - -#~ msgid "Distance" -#~ msgstr "Distancia" - -#~ msgid "Beats" -#~ msgstr "Pulsaciones" - -#~ msgid "Average" -#~ msgstr "Media" - -#~ msgid "Waypoint" -#~ msgstr "Waypoint" - #~ msgid "Active" #~ msgstr "Activo" - #~ msgid "unActive" #~ msgstr "inActivo" - -#~ msgid "%s settings" -#~ msgstr "%s opciones" - -#~ msgid "Ok" -#~ msgstr "Ok" - -#~ msgid "Track Name" -#~ msgstr "Nombre de la ruta." - -#~ msgid "Distance (km)" -#~ msgstr "Distancia (Km)" - -#~ msgid "Height (m)" -#~ msgstr "Altura (m)" - -#~ msgid "Stage Profile" -#~ msgstr "Perfil de Etapa" - -#~ msgid "velocity" -#~ msgstr "velocidad" - -#~ msgid "day" -#~ msgstr "dia" - -#~ msgid "daily kilometers" -#~ msgstr "Kilometros diarios" - -#~ msgid "daily time" -#~ msgstr "tiempo diario" - -#~ msgid "daily beats" -#~ msgstr "pulsaciones diarias" - -#~ msgid "daily averages" -#~ msgstr "medias diarias" - -#~ msgid "daily calories" -#~ msgstr "calorias diarias" - #~ msgid "" #~ "The gpx file seems to have several track records. Press cancel to select " #~ "a track record. Press Ok to load all of them as a single track record." @@ -1137,34 +1544,20 @@ #~ "Parece que el archivo gpx contiene varios registros de rutas. Presione " #~ "Cancelar para seleccionar una ruta. Selecciona aceptar para " #~ "seleccionarlos todos como una unica ruta." - -#~ msgid "" -#~ "The gpx file seems to be a several days records. Perhaps you will need to " -#~ "edit your gpx file" -#~ msgstr "" -#~ "Parece que el archivo gpx contiene salidas de varios dias. " -#~ "Probablementenecesitarás editar tu archivo gpx" - #~ msgid "Km/day" #~ msgstr "Km/dia" - #~ msgid "bpm/day" #~ msgstr "ppm/dia" - #~ msgid "km/h/day" #~ msgstr "km/h/dia" - #~ msgid "cal/day" #~ msgstr "cal/dia" - #~ msgid "time/day" #~ msgstr "tiempo/dia" - #~ msgid "Export " #~ msgstr "Exportar" - #~ msgid "Kj/day" #~ msgstr "Kj/dia" - #~ msgid "Press Here to create the database" #~ msgstr "Presiona aqui para crear la base de datos" + Modified: pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot =================================================================== --- pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot 2009-12-04 19:37:15 UTC (rev 419) +++ pytrainer/trunk/locale/es/LC_MESSAGES/pytrainer_es.pot 2009-12-04 19:38:00 UTC (rev 420) @@ -1,15 +1,15 @@ -# Spanish translations for vud package. -# Copyright (C) 2009 THE vud'S COPYRIGHT HOLDER -# This file is distributed under the same license as the vud package. -# Fiz Vazquez <vu...@si...>, 2009. +# Spanish translations for PACKAGE package. +# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# David García Granda <dg...@gm...>, 2009. # msgid "" msgstr "" -"Project-Id-Version: vud 1\n" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-16 22:27+0200\n" -"PO-Revision-Date: 2009-04-16 22:27+0200\n" -"Last-Translator: Fiz Vazquez <vu...@si...>\n" +"POT-Creation-Date: 2009-12-04 20:21+0100\n" +"PO-Revision-Date: 2009-12-04 20:21+0100\n" +"Last-Translator: David Garca Granda <dg...@gm...>\n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ASCII\n" @@ -52,7 +52,7 @@ msgid "Tools" msgstr "" -#: glade/pytrainer.glade:192 glade/pytrainer.glade:12254 +#: glade/pytrainer.glade:192 glade/pytrainer.glade:13379 msgid "Extensions" msgstr "" @@ -64,7 +64,9 @@ msgid "_Help" msgstr "" -#: glade/pytrainer.glade:336 +#: glade/pytrainer.glade:336 pytrainer/gui/windowprofile.py:69 +#: pytrainer/gui/windowmain.py:57 pytrainer/gui/windowmain.py:60 +#: pytrainer/gui/windowmain.py:677 msgid "Sport" msgstr "" @@ -86,17 +88,20 @@ msgstr "" #: glade/pytrainer.glade:555 glade/pytrainer.glade:2994 -#: glade/pytrainer.glade:4122 glade/pytrainer.glade:5417 +#: glade/pytrainer.glade:4122 glade/pytrainer.glade:5264 +#: glade/pytrainer.glade:6559 msgid "<b>Time:</b>" msgstr "" #: glade/pytrainer.glade:584 glade/pytrainer.glade:3191 -#: glade/pytrainer.glade:4292 glade/pytrainer.glade:5641 +#: glade/pytrainer.glade:4292 glade/pytrainer.glade:5434 +#: glade/pytrainer.glade:6783 msgid "<b>Speed:</b>" msgstr "" #: glade/pytrainer.glade:612 glade/pytrainer.glade:3500 -#: glade/pytrainer.glade:4656 glade/pytrainer.glade:5811 +#: glade/pytrainer.glade:4656 glade/pytrainer.glade:5798 +#: glade/pytrainer.glade:6953 msgid "<b>Pace:</b>" msgstr "" @@ -111,18 +116,29 @@ #: glade/pytrainer.glade:696 glade/pytrainer.glade:1379 #: glade/pytrainer.glade:3247 glade/pytrainer.glade:3304 #: glade/pytrainer.glade:4348 glade/pytrainer.glade:4517 -#: glade/pytrainer.glade:5697 glade/pytrainer.glade:5725 +#: glade/pytrainer.glade:5490 glade/pytrainer.glade:5659 +#: glade/pytrainer.glade:6839 glade/pytrainer.glade:6867 +#: pytrainer/gui/windowmain.py:167 pytrainer/gui/windowmain.py:168 +#: pytrainer/gui/windowmain.py:274 pytrainer/gui/windowmain.py:275 +#: pytrainer/gui/windowmain.py:373 pytrainer/gui/windowmain.py:374 +#: pytrainer/gui/windowmain.py:451 pytrainer/gui/windowmain.py:452 msgid "km/h" msgstr "" #: glade/pytrainer.glade:724 glade/pytrainer.glade:1089 #: glade/pytrainer.glade:3528 glade/pytrainer.glade:3584 #: glade/pytrainer.glade:4712 glade/pytrainer.glade:4740 -#: glade/pytrainer.glade:5868 glade/pytrainer.glade:5896 +#: glade/pytrainer.glade:5854 glade/pytrainer.glade:5882 +#: glade/pytrainer.glade:7010 glade/pytrainer.glade:7038 +#: pytrainer/gui/windowmain.py:169 pytrainer/gui/windowmain.py:170 +#: pytrainer/gui/windowmain.py:276 pytrainer/gui/windowmain.py:277 +#: pytrainer/gui/windowmain.py:375 pytrainer/gui/windowmain.py:376 +#: pytrainer/gui/windowmain.py:453 pytrainer/gui/windowmain.py:454 msgid "min/km" msgstr "" #: glade/pytrainer.glade:752 glade/pytrainer.glade:1145 +#: pytrainer/gui/windowmain.py:171 pytrainer/gui/windowmain.py:172 msgid "m" msgstr "" @@ -134,6 +150,7 @@ #: glade/pytrainer.glade:2040 glade/pytrainer.glade:2068 #: glade/pytrainer.glade:2096 glade/pytrainer.glade:2264 #: glade/pytrainer.glade:3696 glade/pytrainer.glade:4852 +#: glade/pytrainer.glade:5994 msgid " " msgstr "" @@ -142,7 +159,8 @@ msgstr "" #: glade/pytrainer.glade:948 glade/pytrainer.glade:2966 -#: glade/pytrainer.glade:4094 glade/pytrainer.glade:5389 +#: glade/pytrainer.glade:4094 glade/pytrainer.glade:5236 +#: glade/pytrainer.glade:6531 msgid "<b>Distance:</b>" msgstr "" @@ -151,7 +169,8 @@ msgstr "" #: glade/pytrainer.glade:1005 glade/pytrainer.glade:3556 -#: glade/pytrainer.glade:4684 glade/pytrainer.glade:5840 +#: glade/pytrainer.glade:4684 glade/pytrainer.glade:5826 +#: glade/pytrainer.glade:6982 msgid "<b>Max Pace:</b>" msgstr "" @@ -164,7 +183,8 @@ msgstr "" #: glade/pytrainer.glade:1211 glade/pytrainer.glade:2910 -#: glade/pytrainer.glade:4038 glade/pytrainer.glade:5613 +#: glade/pytrainer.glade:4038 glade/pytrainer.glade:5180 +#: glade/pytrainer.glade:6755 msgid "Km" msgstr "" @@ -172,15 +192,17 @@ #: glade/pytrainer.glade:1344 glade/pytrainer.glade:3028 #: glade/pytrainer.glade:3078 glade/pytrainer.glade:3128 #: glade/pytrainer.glade:4206 glade/pytrainer.glade:4256 -#: glade/pytrainer.glade:5501 glade/pytrainer.glade:5551 +#: glade/pytrainer.glade:5348 glade/pytrainer.glade:5398 +#: glade/pytrainer.glade:6643 glade/pytrainer.glade:6693 msgid "00" msgstr "" #: glade/pytrainer.glade:1269 glade/pytrainer.glade:1319 #: glade/pytrainer.glade:3053 glade/pytrainer.glade:3103 #: glade/pytrainer.glade:4181 glade/pytrainer.glade:4231 -#: glade/pytrainer.glade:5476 glade/pytrainer.glade:5526 -#: glade/pytrainer.glade:7646 glade/pytrainer.glade:7691 +#: glade/pytrainer.glade:5323 glade/pytrainer.glade:5373 +#: glade/pytrainer.glade:6618 glade/pytrainer.glade:6668 +#: glade/pytrainer.glade:8788 glade/pytrainer.glade:8833 msgid ":" msgstr "" @@ -190,11 +212,13 @@ #: glade/pytrainer.glade:3724 glade/pytrainer.glade:3752 #: glade/pytrainer.glade:4065 glade/pytrainer.glade:4320 #: glade/pytrainer.glade:4404 glade/pytrainer.glade:4600 -#: glade/pytrainer.glade:4880 glade/pytrainer.glade:5220 -#: glade/pytrainer.glade:5304 glade/pytrainer.glade:5360 -#: glade/pytrainer.glade:5669 glade/pytrainer.glade:5952 -#: glade/pytrainer.glade:5980 glade/pytrainer.glade:6008 -#: glade/pytrainer.glade:6036 +#: glade/pytrainer.glade:4880 glade/pytrainer.glade:5207 +#: glade/pytrainer.glade:5462 glade/pytrainer.glade:5546 +#: glade/pytrainer.glade:5742 glade/pytrainer.glade:6022 +#: glade/pytrainer.glade:6362 glade/pytrainer.glade:6446 +#: glade/pytrainer.glade:6502 glade/pytrainer.glade:6811 +#: glade/pytrainer.glade:7094 glade/pytrainer.glade:7122 +#: glade/pytrainer.glade:7150 glade/pytrainer.glade:7178 msgid " " msgstr "" @@ -211,7 +235,7 @@ msgstr "" #: glade/pytrainer.glade:1653 glade/pytrainer.glade:5038 -#: glade/pytrainer.glade:6194 +#: glade/pytrainer.glade:6180 glade/pytrainer.glade:7336 msgid "Versus" msgstr "" @@ -229,12 +253,14 @@ msgstr "" #: glade/pytrainer.glade:1871 glade/pytrainer.glade:3332 -#: glade/pytrainer.glade:4376 glade/pytrainer.glade:5192 +#: glade/pytrainer.glade:4376 glade/pytrainer.glade:5518 +#: glade/pytrainer.glade:6334 msgid "<b>Calories: </b>" msgstr "" #: glade/pytrainer.glade:1899 glade/pytrainer.glade:3612 -#: glade/pytrainer.glade:4796 glade/pytrainer.glade:5924 +#: glade/pytrainer.glade:4796 glade/pytrainer.glade:5938 +#: glade/pytrainer.glade:7066 msgid "<b>Max Beats:</b>" msgstr "" @@ -273,6 +299,7 @@ #: glade/pytrainer.glade:2236 glade/pytrainer.glade:2292 #: glade/pytrainer.glade:2320 glade/pytrainer.glade:3668 #: glade/pytrainer.glade:4489 glade/pytrainer.glade:4824 +#: glade/pytrainer.glade:5631 glade/pytrainer.glade:5966 msgid " " msgstr "" @@ -280,8 +307,9 @@ #: glade/pytrainer.glade:2458 glade/pytrainer.glade:2486 #: glade/pytrainer.glade:2514 glade/pytrainer.glade:3472 #: glade/pytrainer.glade:3640 glade/pytrainer.glade:4628 -#: glade/pytrainer.glade:4768 glade/pytrainer.glade:5332 -#: glade/pytrainer.glade:5753 +#: glade/pytrainer.glade:4768 glade/pytrainer.glade:5770 +#: glade/pytrainer.glade:5910 glade/pytrainer.glade:6474 +#: glade/pytrainer.glade:6895 msgid "bpm" msgstr "" @@ -293,8 +321,8 @@ msgid " <b>Heart Rate:</b>" msgstr "" -#: glade/pytrainer.glade:2757 glade/pytrainer.glade:7008 -#: glade/pytrainer.glade:10875 +#: glade/pytrainer.glade:2757 glade/pytrainer.glade:8150 +#: glade/pytrainer.glade:12008 msgid "label-2147483648" msgstr "" @@ -307,17 +335,17 @@ msgstr "" #: glade/pytrainer.glade:3276 glade/pytrainer.glade:4461 -#: glade/pytrainer.glade:5782 +#: glade/pytrainer.glade:5603 glade/pytrainer.glade:6924 msgid "<b>Max Speed:</b>" msgstr "" #: glade/pytrainer.glade:3388 glade/pytrainer.glade:4432 -#: glade/pytrainer.glade:5248 +#: glade/pytrainer.glade:5574 glade/pytrainer.glade:6390 msgid "Cal" msgstr "" #: glade/pytrainer.glade:3416 glade/pytrainer.glade:4572 -#: glade/pytrainer.glade:5276 +#: glade/pytrainer.glade:5714 glade/pytrainer.glade:6418 msgid "<b>Beats avg:</b>" msgstr "" @@ -340,74 +368,86 @@ msgid "Day" msgstr "" -#: glade/pytrainer.glade:4156 glade/pytrainer.glade:5451 +#: glade/pytrainer.glade:4156 glade/pytrainer.glade:5298 +#: glade/pytrainer.glade:6593 msgid "000" msgstr "" -#: glade/pytrainer.glade:4545 glade/pytrainer.glade:7844 +#: glade/pytrainer.glade:4545 glade/pytrainer.glade:5687 +#: glade/pytrainer.glade:8986 msgid " " msgstr "" #: glade/pytrainer.glade:4918 -msgid " <b>Month:</b>" +msgid " <b>Week:</b>" msgstr "" -#: glade/pytrainer.glade:5018 glade/pytrainer.glade:6174 +#: glade/pytrainer.glade:5018 glade/pytrainer.glade:6160 +#: glade/pytrainer.glade:7316 msgid "" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" -#: glade/pytrainer.glade:5063 glade/pytrainer.glade:6219 +#: glade/pytrainer.glade:5063 glade/pytrainer.glade:6205 +#: glade/pytrainer.glade:7361 msgid "" "None\n" -"Kilometers\n" +"Distance\n" "Time\n" -"Beats\n" -"Average\n" +"Average Heart Rate\n" +"Average Speed\n" "Calories" msgstr "" -#: glade/pytrainer.glade:5133 +#: glade/pytrainer.glade:5132 +msgid "Week" +msgstr "" + +#: glade/pytrainer.glade:6060 +msgid " <b>Month:</b>" +msgstr "" + +#: glade/pytrainer.glade:6275 msgid "Month" msgstr "" -#: glade/pytrainer.glade:6074 +#: glade/pytrainer.glade:7216 msgid " <b>Year:</b>" msgstr "" -#: glade/pytrainer.glade:6289 +#: glade/pytrainer.glade:7431 msgid "Year" msgstr "" -#: glade/pytrainer.glade:6332 +#: glade/pytrainer.glade:7474 msgid "label154" msgstr "" -#: glade/pytrainer.glade:6369 +#: glade/pytrainer.glade:7511 msgid "<b>Title:</b>" msgstr "" -#: glade/pytrainer.glade:6414 +#: glade/pytrainer.glade:7556 msgid "Search" msgstr "" -#: glade/pytrainer.glade:6461 +#: glade/pytrainer.glade:7603 msgid "Columns" msgstr "" -#: glade/pytrainer.glade:6536 +#: glade/pytrainer.glade:7678 msgid "label155" msgstr "" -#: glade/pytrainer.glade:6670 +#: glade/pytrainer.glade:7812 msgid "Type:" msgstr "" -#: glade/pytrainer.glade:6698 +#: glade/pytrainer.glade:7840 msgid "" "Font\n" "Restaurant\n" @@ -415,409 +455,689 @@ "Summit" msgstr "" -#: glade/pytrainer.glade:6719 +#: glade/pytrainer.glade:7861 msgid "Latitude: " msgstr "" -#: glade/pytrainer.glade:6747 +#: glade/pytrainer.glade:7889 msgid " Name:" msgstr "" -#: glade/pytrainer.glade:6775 +#: glade/pytrainer.glade:7917 msgid "Longitude:" msgstr "" -#: glade/pytrainer.glade:6803 glade/pytrainer.glade:12442 -#: glade/pytrainer.glade:12765 +#: glade/pytrainer.glade:7945 glade/pytrainer.glade:13567 +#: glade/pytrainer.glade:13890 msgid "Description:" msgstr "" -#: glade/pytrainer.glade:6923 +#: glade/pytrainer.glade:8065 msgid "<b> Waypoint: </b>" msgstr "" -#: glade/pytrainer.glade:7056 +#: glade/pytrainer.glade:8198 msgid "label162" msgstr "" -#: glade/pytrainer.glade:7196 +#: glade/pytrainer.glade:8338 msgid "label163" msgstr "" -#: glade/pytrainer.glade:7221 +#: glade/pytrainer.glade:8363 msgid "New Entry" msgstr "" -#: glade/pytrainer.glade:7294 +#: glade/pytrainer.glade:8436 msgid "Title:" msgstr "" -#: glade/pytrainer.glade:7343 +#: glade/pytrainer.glade:8485 msgid "GPX File:" msgstr "" -#: glade/pytrainer.glade:7413 +#: glade/pytrainer.glade:8555 msgid "Calculate Values" msgstr "" -#: glade/pytrainer.glade:7432 +#: glade/pytrainer.glade:8574 msgid "Sport:" msgstr "" -#: glade/pytrainer.glade:7483 +#: glade/pytrainer.glade:8625 msgid "<b>Main</b>" msgstr "" -#: glade/pytrainer.glade:7544 +#: glade/pytrainer.glade:8686 msgid "Distance (Km):" msgstr "" -#: glade/pytrainer.glade:7573 glade/pytrainer.glade:7770 -#: glade/pytrainer.glade:8051 glade/pytrainer.glade:8297 -#: glade/pytrainer.glade:8765 glade/pytrainer.glade:11513 +#: glade/pytrainer.glade:8715 glade/pytrainer.glade:8912 +#: glade/pytrainer.glade:9193 glade/pytrainer.glade:9439 +#: glade/pytrainer.glade:9907 glade/pytrainer.glade:12638 msgid "Calculate" msgstr "" -#: glade/pytrainer.glade:7592 +#: glade/pytrainer.glade:8734 msgid "Time:" msgstr "" -#: glade/pytrainer.glade:7790 +#: glade/pytrainer.glade:8932 msgid "Date:" msgstr "" -#: glade/pytrainer.glade:7910 glade/pytrainer.glade:11563 +#: glade/pytrainer.glade:9052 glade/pytrainer.glade:12688 msgid "<b>General</b>" msgstr "" -#: glade/pytrainer.glade:7971 +#: glade/pytrainer.glade:9113 msgid "Max (km/h):" msgstr "" -#: glade/pytrainer.glade:8022 +#: glade/pytrainer.glade:9164 msgid "Velocity (km/h)" msgstr "" -#: glade/pytrainer.glade:8097 +#: glade/pytrainer.glade:9239 msgid "<b>Velocity</b>" msgstr "" -#: glade/pytrainer.glade:8133 +#: glade/pytrainer.glade:9275 msgid "Quick Entry" msgstr "" -#: glade/pytrainer.glade:8193 +#: glade/pytrainer.glade:9335 msgid "Max (min/km):" msgstr "" -#: glade/pytrainer.glade:8245 +#: glade/pytrainer.glade:9387 msgid "Pace (min/km):" msgstr "" -#: glade/pytrainer.glade:8320 +#: glade/pytrainer.glade:9462 msgid "<b>Pace</b>" msgstr "" -#: glade/pytrainer.glade:8381 +#: glade/pytrainer.glade:9523 msgid "Ascent:" msgstr "" -#: glade/pytrainer.glade:8433 +#: glade/pytrainer.glade:9575 msgid "Descent:" msgstr "" -#: glade/pytrainer.glade:8488 +#: glade/pytrainer.glade:9630 msgid "<b>Accumulated Alt... [truncated message content] |
From: <dg...@us...> - 2009-12-04 19:37:24
|
Revision: 419 http://pytrainer.svn.sourceforge.net/pytrainer/?rev=419&view=rev Author: dgranda Date: 2009-12-04 19:37:15 +0000 (Fri, 04 Dec 2009) Log Message: ----------- Added Ubuntu package maintainer Modified Paths: -------------- pytrainer/trunk/pytrainer/gui/aboutdialog.py Modified: pytrainer/trunk/pytrainer/gui/aboutdialog.py =================================================================== --- pytrainer/trunk/pytrainer/gui/aboutdialog.py 2009-12-01 21:16:51 UTC (rev 418) +++ pytrainer/trunk/pytrainer/gui/aboutdialog.py 2009-12-04 19:37:15 UTC (rev 419) @@ -32,7 +32,7 @@ self.version = version def run(self): - authors = ["Fiz Vázquez <vu...@si...>\nDavid García Granda <dg...@gm...>\nJohn Blance <joh...@gm...>\n\n-Package maintainers:\n\nRedHat/Fedora: Douglas E. Warner <sil...@si...>\nDebian: Noèl Köthe <no...@de...>\nUbuntu: Kevin Dwyer <ke...@ph...>"] + authors = ["Fiz Vázquez <vu...@si...>\nDavid García Granda <dg...@gm...>\nJohn Blance <joh...@gm...>\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 = "Basque: Jabier Santamaria <men...@gm...>\nCatalan: Eloi Crespillo Itchart <el...@ik...>\nCzech: Lobus Pokorny <sp...@se...>\nFrench: Dj <dj...@dj...>, Pierre Gaigé <pg...@fr...>\nNorwegian: Havard Davidsen <hav...@gm...>\nPolish: Seweryn Kokot <sk...@po...>\nGerman: Aleks <al...@sc...>, Noèl Köthe <no...@de...>\nSpanish: Fiz Vázquez <vu...@si...>" 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() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |