Loading lib/Travelynx.pm +58 −0 Changes for lib/Travelynx.pm: 58 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -465,6 +465,64 @@ sub startup { } ); $self->helper( 'LT' => sub { my ( $self, $minutes ) = @_; my @ret; if ( $minutes >= 14 * 24 * 60 ) { push( @ret, int( $minutes / ( 7 * 24 * 60 ) ) . q{ } . $self->L('LT.weeks') ); } elsif ( $minutes >= 7 * 24 * 60 ) { push( @ret, '1 ' . $self->L('LT.week') ); } $minutes %= 7 * 24 * 60; if ( $minutes >= 2 * 24 * 60 ) { push( @ret, int( $minutes / ( 24 * 60 ) ) . q{ } . $self->L('LT.days') ); } elsif ( $minutes >= 24 * 60 ) { push( @ret, '1 ' . $self->L('LT.day') ); } $minutes %= 24 * 60; if ( $minutes >= 2 * 60 ) { push( @ret, int( $minutes / 60 ) . q{ } . $self->L('LT.hours') ); } elsif ( $minutes >= 60 ) { push( @ret, '1 ' . $self->L('LT.hour') ); } $minutes %= 60; if ( $minutes >= 2 ) { push( @ret, "$minutes " . $self->L('LT.minutes') ); } elsif ($minutes) { push( @ret, '1 ' . $self->L('LT.minute') ); } if ( @ret == 0 ) { return $self->L('LT.zero-minutes'); } if ( @ret == 1 ) { return $ret[0]; } my $last = pop(@ret); return join( ', ', @ret ) . $self->L( @ret > 1 ? 'LT.final-and' : 'LT.and' ) . " $last"; } ); $self->helper( 'now' => sub { return DateTime->now( time_zone => 'Europe/Berlin' ); Loading lib/Travelynx/Model/Journeys.pm +13 −79 Changes for lib/Travelynx/Model/Journeys.pm: 13 added lines, 79 removed lines. Original line number Diff line number Diff line Loading @@ -50,56 +50,6 @@ sub epoch_to_dt { ); } # TODO turn into a travelynx helper called from templates so that # loc_handle is available for localization sub min_to_human { my ( $self, $minutes ) = @_; my @ret; if ( $minutes >= 14 * 24 * 60 ) { push( @ret, int( $minutes / ( 7 * 24 * 60 ) ) . ' Wochen' ); } elsif ( $minutes >= 7 * 24 * 60 ) { push( @ret, '1 Woche' ); } $minutes %= 7 * 24 * 60; if ( $minutes >= 2 * 24 * 60 ) { push( @ret, int( $minutes / ( 24 * 60 ) ) . ' Tage' ); } elsif ( $minutes >= 24 * 60 ) { push( @ret, '1 Tag' ); } $minutes %= 24 * 60; if ( $minutes >= 2 * 60 ) { push( @ret, int( $minutes / 60 ) . ' Stunden' ); } elsif ( $minutes >= 60 ) { push( @ret, '1 Stunde' ); } $minutes %= 60; if ( $minutes >= 2 ) { push( @ret, "$minutes Minuten" ); } elsif ($minutes) { push( @ret, '1 Minute' ); } if ( @ret == 0 ) { return '0 Minuten'; } if ( @ret == 1 ) { return $ret[0]; } my $last = pop(@ret); return join( ', ', @ret ) . " und $last"; } sub new { my ( $class, %opt ) = @_; Loading Loading @@ -1674,7 +1624,7 @@ sub compute_review { $review{traveling_percentage_year} = sprintf( "%.1f%%", $min_total * 100 / 525948.77 ); $review{traveling_percentage_year} =~ tr{.}{,}; $review{traveling_time_year} = $self->min_to_human($min_total); $review{traveling_time_year} = $min_total; if (@linetypes) { $review{typical_type_1} = $linetypes[0][0]; Loading @@ -1689,24 +1639,18 @@ sub compute_review { elsif ( @stops == 2 ) { $review{typical_stops_2} = [ $stops[0][0], $stops[1][0] ]; } $review{typical_time} = $self->min_to_human( $stats->{min_travel_real} / $stats->{num_trains} ); $review{typical_time} = $stats->{min_travel_real} / $stats->{num_trains}; $review{typical_km} = sprintf( '%.0f', $stats->{km_route} / $stats->{num_trains} ); $review{typical_kmh} = sprintf( '%.0f', $stats->{km_route} / ( $stats->{min_travel_real} / 60 ) ); $review{typical_delay_dep} = sprintf( '%.0f', $stats->{delay_dep} / $stats->{num_trains} ); $review{typical_delay_dep_h} = $self->min_to_human( $review{typical_delay_dep} ); $review{typical_delay_arr} = sprintf( '%.0f', $stats->{delay_arr} / $stats->{num_trains} ); $review{typical_delay_arr_h} = $self->min_to_human( $review{typical_delay_arr} ); if ($longest_t) { $review{longest_t_time} = $self->min_to_human( $longest_t->{rt_duration} / 60 ); $review{longest_t_min} = $longest_t->{rt_duration} / 60; $review{longest_t_type} = $longest_t->{type}; $review{longest_t_lineno} = $longest_t->{line} // $longest_t->{no}; $review{longest_t_from} = $longest_t->{from_name}; Loading @@ -1724,8 +1668,7 @@ sub compute_review { } if ($shortest_t) { $review{shortest_t_time} = $self->min_to_human( $shortest_t->{rt_duration} / 60 ); $review{shortest_t_min} = $shortest_t->{rt_duration} / 60; $review{shortest_t_type} = $shortest_t->{type}; $review{shortest_t_lineno} = $shortest_t->{line} // $shortest_t->{no}; $review{shortest_t_from} = $shortest_t->{from_name}; Loading @@ -1746,10 +1689,8 @@ sub compute_review { if ($most_delayed) { $review{most_delayed_type} = $most_delayed->{type}; $review{most_delayed_delay_dep} = $self->min_to_human( $most_delayed->{delay_dep} ); $review{most_delayed_delay_arr} = $self->min_to_human( $most_delayed->{delay_arr} ); $review{most_delayed_delay_dep} = $most_delayed->{delay_dep}; $review{most_delayed_delay_arr} = $most_delayed->{delay_arr}; $review{most_delayed_lineno} = $most_delayed->{line} // $most_delayed->{no}; $review{most_delayed_from} = $most_delayed->{from_name}; Loading @@ -1761,14 +1702,10 @@ sub compute_review { $review{most_delay_type} = $most_delay->{type}; $review{most_delay_delay_dep} = $most_delay->{delay_dep}; $review{most_delay_delay_arr} = $most_delay->{delay_arr}; $review{most_delay_sched_time} = $self->min_to_human( $most_delay->{sched_duration} / 60 ); $review{most_delay_real_time} = $self->min_to_human( $most_delay->{rt_duration} / 60 ); $review{most_delay_sched_time} = $most_delay->{sched_duration} / 60; $review{most_delay_real_time} = $most_delay->{rt_duration} / 60; $review{most_delay_delta} = $self->min_to_human( ( $most_delay->{rt_duration} - $most_delay->{sched_duration} ) / 60 ); = ( $most_delay->{rt_duration} - $most_delay->{sched_duration} ) / 60; $review{most_delay_lineno} = $most_delay->{line} // $most_delay->{no}; $review{most_delay_from} = $most_delay->{from_name}; $review{most_delay_to} = $most_delay->{to_name}; Loading @@ -1779,14 +1716,11 @@ sub compute_review { $review{most_undelay_type} = $most_undelay->{type}; $review{most_undelay_delay_dep} = $most_undelay->{delay_dep}; $review{most_undelay_delay_arr} = $most_undelay->{delay_arr}; $review{most_undelay_sched_time} = $self->min_to_human( $most_undelay->{sched_duration} / 60 ); $review{most_undelay_real_time} = $self->min_to_human( $most_undelay->{rt_duration} / 60 ); $review{most_undelay_sched_time} = $most_undelay->{sched_duration} / 60; $review{most_undelay_real_time} = $most_undelay->{rt_duration} / 60; $review{most_undelay_delta} = $self->min_to_human( ( $most_undelay->{sched_duration} - $most_undelay->{rt_duration} ) / 60 ); = ( $most_undelay->{sched_duration} - $most_undelay->{rt_duration} ) / 60; $review{most_undelay_lineno} = $most_undelay->{line} // $most_undelay->{no}; $review{most_undelay_from} = $most_undelay->{from_name}; Loading share/locales/de_DE.po +37 −0 Changes for share/locales/de_DE.po: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,43 @@ msgstr "automatisch" msgid "header.error" msgstr "Fehler" # # LT (localized duration) # msgid "LT.weeks" msgstr "Wochen" msgid "LT.week" msgstr "Woche" msgid "LT.days" msgstr "Tage" msgid "LT.day" msgstr "Tag" msgid "LT.hours" msgstr "Stunden" msgid "LT.hour" msgstr "Stunde" msgid "LT.minutes" msgstr "Minuten" msgid "LT.minute" msgstr "Minute" msgid "LT.zero-minutes" msgstr "0 Minuten" msgid "LT.final-and" msgstr " und" msgid "LT.and" msgstr " und" # # Templates # Loading share/locales/en_GB.po +37 −0 Changes for share/locales/en_GB.po: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,43 @@ msgstr "auto" msgid "header.error" msgstr "Error" # # LT (localized duration) # msgid "LT.weeks" msgstr "weeks" msgid "LT.week" msgstr "week" msgid "LT.days" msgstr "days" msgid "LT.day" msgstr "day" msgid "LT.hours" msgstr "hours" msgid "LT.hour" msgstr "hour" msgid "LT.minutes" msgstr "minutes" msgid "LT.minute" msgstr "minute" msgid "LT.zero-minutes" msgstr "0 minutes" msgid "LT.final-and" msgstr ", and" msgid "LT.and" msgstr " and" # # Templates # Loading templates/_checked_in.html.ep +3 −3 Changes for templates/_checked_in.html.ep: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,20 +19,20 @@ data-dest="<%= $journey->{arr_name} %>" > % if ($journey->{boarding_countdown} > 60) { <%= L('status.boarding-in.pre') %> <%= journeys->min_to_human(int($journey->{boarding_countdown} / 60)) %> <%= L('status.boarding-in.post') %><br/> <%= L('status.boarding-in.pre') %> <%= LT(int($journey->{boarding_countdown} / 60)) %> <%= L('status.boarding-in.post') %><br/> % } % elsif ($journey->{boarding_countdown} > 0) { <%= L('status.boarding-soon') %><br/> % } % if ($journey->{departure_countdown} > 60) { <%= L('status.departure-in.pre') %> <%= journeys->min_to_human(int($journey->{departure_countdown} / 60)) %> <%= L('status.departure-in.post') %> <%= L('status.departure-in.pre') %> <%= LT(int($journey->{departure_countdown} / 60)) %> <%= L('status.departure-in.post') %> % } % elsif ($journey->{departure_countdown} > 0) { %= L('status.departure-soon') % } % elsif (defined $journey->{arrival_countdown}) { % if ($journey->{arrival_countdown} > 60) { <%= L('status.arrival-in.pre') %> <%= journeys->min_to_human(int($journey->{arrival_countdown} / 60)) %> <%= L('status.arrival-in.post') %> <%= L('status.arrival-in.pre') %> <%= LT(int($journey->{arrival_countdown} / 60)) %> <%= L('status.arrival-in.post') %> % } % elsif ($journey->{arrival_countdown} > 0) { %= L('status.arrival-soon') Loading Loading
lib/Travelynx.pm +58 −0 Changes for lib/Travelynx.pm: 58 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -465,6 +465,64 @@ sub startup { } ); $self->helper( 'LT' => sub { my ( $self, $minutes ) = @_; my @ret; if ( $minutes >= 14 * 24 * 60 ) { push( @ret, int( $minutes / ( 7 * 24 * 60 ) ) . q{ } . $self->L('LT.weeks') ); } elsif ( $minutes >= 7 * 24 * 60 ) { push( @ret, '1 ' . $self->L('LT.week') ); } $minutes %= 7 * 24 * 60; if ( $minutes >= 2 * 24 * 60 ) { push( @ret, int( $minutes / ( 24 * 60 ) ) . q{ } . $self->L('LT.days') ); } elsif ( $minutes >= 24 * 60 ) { push( @ret, '1 ' . $self->L('LT.day') ); } $minutes %= 24 * 60; if ( $minutes >= 2 * 60 ) { push( @ret, int( $minutes / 60 ) . q{ } . $self->L('LT.hours') ); } elsif ( $minutes >= 60 ) { push( @ret, '1 ' . $self->L('LT.hour') ); } $minutes %= 60; if ( $minutes >= 2 ) { push( @ret, "$minutes " . $self->L('LT.minutes') ); } elsif ($minutes) { push( @ret, '1 ' . $self->L('LT.minute') ); } if ( @ret == 0 ) { return $self->L('LT.zero-minutes'); } if ( @ret == 1 ) { return $ret[0]; } my $last = pop(@ret); return join( ', ', @ret ) . $self->L( @ret > 1 ? 'LT.final-and' : 'LT.and' ) . " $last"; } ); $self->helper( 'now' => sub { return DateTime->now( time_zone => 'Europe/Berlin' ); Loading
lib/Travelynx/Model/Journeys.pm +13 −79 Changes for lib/Travelynx/Model/Journeys.pm: 13 added lines, 79 removed lines. Original line number Diff line number Diff line Loading @@ -50,56 +50,6 @@ sub epoch_to_dt { ); } # TODO turn into a travelynx helper called from templates so that # loc_handle is available for localization sub min_to_human { my ( $self, $minutes ) = @_; my @ret; if ( $minutes >= 14 * 24 * 60 ) { push( @ret, int( $minutes / ( 7 * 24 * 60 ) ) . ' Wochen' ); } elsif ( $minutes >= 7 * 24 * 60 ) { push( @ret, '1 Woche' ); } $minutes %= 7 * 24 * 60; if ( $minutes >= 2 * 24 * 60 ) { push( @ret, int( $minutes / ( 24 * 60 ) ) . ' Tage' ); } elsif ( $minutes >= 24 * 60 ) { push( @ret, '1 Tag' ); } $minutes %= 24 * 60; if ( $minutes >= 2 * 60 ) { push( @ret, int( $minutes / 60 ) . ' Stunden' ); } elsif ( $minutes >= 60 ) { push( @ret, '1 Stunde' ); } $minutes %= 60; if ( $minutes >= 2 ) { push( @ret, "$minutes Minuten" ); } elsif ($minutes) { push( @ret, '1 Minute' ); } if ( @ret == 0 ) { return '0 Minuten'; } if ( @ret == 1 ) { return $ret[0]; } my $last = pop(@ret); return join( ', ', @ret ) . " und $last"; } sub new { my ( $class, %opt ) = @_; Loading Loading @@ -1674,7 +1624,7 @@ sub compute_review { $review{traveling_percentage_year} = sprintf( "%.1f%%", $min_total * 100 / 525948.77 ); $review{traveling_percentage_year} =~ tr{.}{,}; $review{traveling_time_year} = $self->min_to_human($min_total); $review{traveling_time_year} = $min_total; if (@linetypes) { $review{typical_type_1} = $linetypes[0][0]; Loading @@ -1689,24 +1639,18 @@ sub compute_review { elsif ( @stops == 2 ) { $review{typical_stops_2} = [ $stops[0][0], $stops[1][0] ]; } $review{typical_time} = $self->min_to_human( $stats->{min_travel_real} / $stats->{num_trains} ); $review{typical_time} = $stats->{min_travel_real} / $stats->{num_trains}; $review{typical_km} = sprintf( '%.0f', $stats->{km_route} / $stats->{num_trains} ); $review{typical_kmh} = sprintf( '%.0f', $stats->{km_route} / ( $stats->{min_travel_real} / 60 ) ); $review{typical_delay_dep} = sprintf( '%.0f', $stats->{delay_dep} / $stats->{num_trains} ); $review{typical_delay_dep_h} = $self->min_to_human( $review{typical_delay_dep} ); $review{typical_delay_arr} = sprintf( '%.0f', $stats->{delay_arr} / $stats->{num_trains} ); $review{typical_delay_arr_h} = $self->min_to_human( $review{typical_delay_arr} ); if ($longest_t) { $review{longest_t_time} = $self->min_to_human( $longest_t->{rt_duration} / 60 ); $review{longest_t_min} = $longest_t->{rt_duration} / 60; $review{longest_t_type} = $longest_t->{type}; $review{longest_t_lineno} = $longest_t->{line} // $longest_t->{no}; $review{longest_t_from} = $longest_t->{from_name}; Loading @@ -1724,8 +1668,7 @@ sub compute_review { } if ($shortest_t) { $review{shortest_t_time} = $self->min_to_human( $shortest_t->{rt_duration} / 60 ); $review{shortest_t_min} = $shortest_t->{rt_duration} / 60; $review{shortest_t_type} = $shortest_t->{type}; $review{shortest_t_lineno} = $shortest_t->{line} // $shortest_t->{no}; $review{shortest_t_from} = $shortest_t->{from_name}; Loading @@ -1746,10 +1689,8 @@ sub compute_review { if ($most_delayed) { $review{most_delayed_type} = $most_delayed->{type}; $review{most_delayed_delay_dep} = $self->min_to_human( $most_delayed->{delay_dep} ); $review{most_delayed_delay_arr} = $self->min_to_human( $most_delayed->{delay_arr} ); $review{most_delayed_delay_dep} = $most_delayed->{delay_dep}; $review{most_delayed_delay_arr} = $most_delayed->{delay_arr}; $review{most_delayed_lineno} = $most_delayed->{line} // $most_delayed->{no}; $review{most_delayed_from} = $most_delayed->{from_name}; Loading @@ -1761,14 +1702,10 @@ sub compute_review { $review{most_delay_type} = $most_delay->{type}; $review{most_delay_delay_dep} = $most_delay->{delay_dep}; $review{most_delay_delay_arr} = $most_delay->{delay_arr}; $review{most_delay_sched_time} = $self->min_to_human( $most_delay->{sched_duration} / 60 ); $review{most_delay_real_time} = $self->min_to_human( $most_delay->{rt_duration} / 60 ); $review{most_delay_sched_time} = $most_delay->{sched_duration} / 60; $review{most_delay_real_time} = $most_delay->{rt_duration} / 60; $review{most_delay_delta} = $self->min_to_human( ( $most_delay->{rt_duration} - $most_delay->{sched_duration} ) / 60 ); = ( $most_delay->{rt_duration} - $most_delay->{sched_duration} ) / 60; $review{most_delay_lineno} = $most_delay->{line} // $most_delay->{no}; $review{most_delay_from} = $most_delay->{from_name}; $review{most_delay_to} = $most_delay->{to_name}; Loading @@ -1779,14 +1716,11 @@ sub compute_review { $review{most_undelay_type} = $most_undelay->{type}; $review{most_undelay_delay_dep} = $most_undelay->{delay_dep}; $review{most_undelay_delay_arr} = $most_undelay->{delay_arr}; $review{most_undelay_sched_time} = $self->min_to_human( $most_undelay->{sched_duration} / 60 ); $review{most_undelay_real_time} = $self->min_to_human( $most_undelay->{rt_duration} / 60 ); $review{most_undelay_sched_time} = $most_undelay->{sched_duration} / 60; $review{most_undelay_real_time} = $most_undelay->{rt_duration} / 60; $review{most_undelay_delta} = $self->min_to_human( ( $most_undelay->{sched_duration} - $most_undelay->{rt_duration} ) / 60 ); = ( $most_undelay->{sched_duration} - $most_undelay->{rt_duration} ) / 60; $review{most_undelay_lineno} = $most_undelay->{line} // $most_undelay->{no}; $review{most_undelay_from} = $most_undelay->{from_name}; Loading
share/locales/de_DE.po +37 −0 Changes for share/locales/de_DE.po: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,43 @@ msgstr "automatisch" msgid "header.error" msgstr "Fehler" # # LT (localized duration) # msgid "LT.weeks" msgstr "Wochen" msgid "LT.week" msgstr "Woche" msgid "LT.days" msgstr "Tage" msgid "LT.day" msgstr "Tag" msgid "LT.hours" msgstr "Stunden" msgid "LT.hour" msgstr "Stunde" msgid "LT.minutes" msgstr "Minuten" msgid "LT.minute" msgstr "Minute" msgid "LT.zero-minutes" msgstr "0 Minuten" msgid "LT.final-and" msgstr " und" msgid "LT.and" msgstr " und" # # Templates # Loading
share/locales/en_GB.po +37 −0 Changes for share/locales/en_GB.po: 37 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,43 @@ msgstr "auto" msgid "header.error" msgstr "Error" # # LT (localized duration) # msgid "LT.weeks" msgstr "weeks" msgid "LT.week" msgstr "week" msgid "LT.days" msgstr "days" msgid "LT.day" msgstr "day" msgid "LT.hours" msgstr "hours" msgid "LT.hour" msgstr "hour" msgid "LT.minutes" msgstr "minutes" msgid "LT.minute" msgstr "minute" msgid "LT.zero-minutes" msgstr "0 minutes" msgid "LT.final-and" msgstr ", and" msgid "LT.and" msgstr " and" # # Templates # Loading
templates/_checked_in.html.ep +3 −3 Changes for templates/_checked_in.html.ep: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,20 +19,20 @@ data-dest="<%= $journey->{arr_name} %>" > % if ($journey->{boarding_countdown} > 60) { <%= L('status.boarding-in.pre') %> <%= journeys->min_to_human(int($journey->{boarding_countdown} / 60)) %> <%= L('status.boarding-in.post') %><br/> <%= L('status.boarding-in.pre') %> <%= LT(int($journey->{boarding_countdown} / 60)) %> <%= L('status.boarding-in.post') %><br/> % } % elsif ($journey->{boarding_countdown} > 0) { <%= L('status.boarding-soon') %><br/> % } % if ($journey->{departure_countdown} > 60) { <%= L('status.departure-in.pre') %> <%= journeys->min_to_human(int($journey->{departure_countdown} / 60)) %> <%= L('status.departure-in.post') %> <%= L('status.departure-in.pre') %> <%= LT(int($journey->{departure_countdown} / 60)) %> <%= L('status.departure-in.post') %> % } % elsif ($journey->{departure_countdown} > 0) { %= L('status.departure-soon') % } % elsif (defined $journey->{arrival_countdown}) { % if ($journey->{arrival_countdown} > 60) { <%= L('status.arrival-in.pre') %> <%= journeys->min_to_human(int($journey->{arrival_countdown} / 60)) %> <%= L('status.arrival-in.post') %> <%= L('status.arrival-in.pre') %> <%= LT(int($journey->{arrival_countdown} / 60)) %> <%= L('status.arrival-in.post') %> % } % elsif ($journey->{arrival_countdown} > 0) { %= L('status.arrival-soon') Loading