diff options
| -rw-r--r-- | cpanfile.snapshot | 40 | ||||
| -rwxr-xr-x | lib/Travelynx.pm | 58 | ||||
| -rwxr-xr-x | lib/Travelynx/Model/Journeys.pm | 108 | ||||
| -rw-r--r-- | share/locales/de_DE.po | 76 | ||||
| -rw-r--r-- | share/locales/en_GB.po | 76 | ||||
| -rw-r--r-- | share/locales/reference.md | 110 | ||||
| -rw-r--r-- | templates/_checked_in.html.ep | 6 | ||||
| -rw-r--r-- | templates/_public_status_card.html.ep | 4 | ||||
| -rw-r--r-- | templates/year_in_review.html.ep | 44 |
9 files changed, 390 insertions, 132 deletions
diff --git a/cpanfile.snapshot b/cpanfile.snapshot index a3beeed..59230b4 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -1502,18 +1502,18 @@ DISTRIBUTIONS Exporter 5.57 ExtUtils::MakeMaker 0 perl 5.008 - IO-Socket-SSL-2.095 - pathname: S/SU/SULLR/IO-Socket-SSL-2.095.tar.gz + IO-Socket-SSL-2.098 + pathname: S/SU/SULLR/IO-Socket-SSL-2.098.tar.gz provides: - IO::Socket::SSL 2.095 + IO::Socket::SSL 2.098 IO::Socket::SSL::Intercept 2.056 - IO::Socket::SSL::OCSP_Cache 2.095 - IO::Socket::SSL::OCSP_Resolver 2.095 + IO::Socket::SSL::OCSP_Cache 2.098 + IO::Socket::SSL::OCSP_Resolver 2.098 IO::Socket::SSL::PublicSuffix undef - IO::Socket::SSL::SSL_Context 2.095 - IO::Socket::SSL::SSL_HANDLE 2.095 - IO::Socket::SSL::Session_Cache 2.095 - IO::Socket::SSL::Trace 2.095 + IO::Socket::SSL::SSL_Context 2.098 + IO::Socket::SSL::SSL_HANDLE 2.098 + IO::Socket::SSL::Session_Cache 2.098 + IO::Socket::SSL::Trace 2.098 IO::Socket::SSL::Utils 2.015 requirements: ExtUtils::MakeMaker 0 @@ -2714,18 +2714,18 @@ DISTRIBUTIONS TimeDate 1.21 requirements: ExtUtils::MakeMaker 0 - Travel-Status-DE-DBRIS-0.20 - pathname: D/DE/DERF/Travel-Status-DE-DBRIS-0.20.tar.gz + Travel-Status-DE-DBRIS-0.22 + pathname: D/DE/DERF/Travel-Status-DE-DBRIS-0.22.tar.gz provides: - Travel::Status::DE::DBRIS 0.20 - Travel::Status::DE::DBRIS::Formation 0.20 - Travel::Status::DE::DBRIS::Formation::Carriage 0.20 - Travel::Status::DE::DBRIS::Formation::Group 0.20 - Travel::Status::DE::DBRIS::Formation::Sector 0.20 - Travel::Status::DE::DBRIS::Journey 0.20 - Travel::Status::DE::DBRIS::JourneyAtStop 0.20 - Travel::Status::DE::DBRIS::Location 0.20 - Travel::Status::DE::DBRIS::Operators 0.20 + Travel::Status::DE::DBRIS 0.22 + Travel::Status::DE::DBRIS::Formation 0.22 + Travel::Status::DE::DBRIS::Formation::Carriage 0.22 + Travel::Status::DE::DBRIS::Formation::Group 0.22 + Travel::Status::DE::DBRIS::Formation::Sector 0.22 + Travel::Status::DE::DBRIS::Journey 0.22 + Travel::Status::DE::DBRIS::JourneyAtStop 0.22 + Travel::Status::DE::DBRIS::Location 0.22 + Travel::Status::DE::DBRIS::Operators 0.22 requirements: Carp 0 Class::Accessor 0.16 diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 7b5cf99..a83af39 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -466,6 +466,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' ); } diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index b6c9793..ea3461c 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -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 ) = @_; @@ -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]; @@ -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}; @@ -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}; @@ -1745,12 +1688,10 @@ 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_lineno} = $most_delayed->{line} + $review{most_delayed_type} = $most_delayed->{type}; + $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}; $review{most_delayed_to} = $most_delayed->{to_name}; @@ -1758,17 +1699,13 @@ sub compute_review { } if ($most_delay) { - $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_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} = $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}; @@ -1776,17 +1713,14 @@ sub compute_review { } if ($most_undelay) { - $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_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} = $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}; diff --git a/share/locales/de_DE.po b/share/locales/de_DE.po index ed09017..dbe6248 100644 --- a/share/locales/de_DE.po +++ b/share/locales/de_DE.po @@ -46,6 +46,43 @@ 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 # @@ -697,6 +734,45 @@ msgstr " " msgid "review.cancelled-percent.post" msgstr " deiner geplanten Fahrten sind ausgefallen." +msgid "review.most-delayed.pre" +msgstr "Mit" + +msgid "review.most-delayed.mid" +msgstr " hatte" + +msgid "review.most-delayed.post" +msgstr " die größte Verspätung." + +msgid "review.most-delay.pre" +msgstr "Die Fahrt mit" + +msgid "review.most-delay.from" +msgstr "von" + +msgid "review.most-delay.to" +msgstr "nach" + +msgid "review.most-delay.mid" +msgstr "verlief besonders gemächlich: sie dauerte" + +msgid "review.most-delay.post" +msgstr " länger als geplant." + +msgid "review.most-undelay.pre" +msgstr "In" + +msgid "review.most-undelay.from" +msgstr "wurde hingegen Vmax ausgereizt und die Strecke von" + +msgid "review.most-undelay.to" +msgstr "nach" + +msgid "review.most-undelay.mid" +msgstr " " + +msgid "review.most-undelay.post" +msgstr " schneller absolviert als vorgesehen." + # _checked_in.html.ep, _public_status_card.html.ep msgid "status.is-checked-in" diff --git a/share/locales/en_GB.po b/share/locales/en_GB.po index f5dbfb2..5299e68 100644 --- a/share/locales/en_GB.po +++ b/share/locales/en_GB.po @@ -46,6 +46,43 @@ 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 # @@ -693,6 +730,45 @@ msgstr " " msgid "review.cancelled-percent.post" msgstr " of your trips were cancelled." +msgid "review.most-delayed.pre" +msgstr "With" + +msgid "review.most-delayed.mid" +msgstr ", " + +msgid "review.most-delayed.post" +msgstr " effortlessly took the first place." + +msgid "review.most-delay.pre" +msgstr "The trip with" + +msgid "review.most-delay.from" +msgstr "from" + +msgid "review.most-delay.to" +msgstr "to" + +msgid "review.most-delay.mid" +msgstr "was super serene: it took" + +msgid "review.most-delay.post" +msgstr " longer than scheduled." + +msgid "review.most-undelay.pre" +msgstr "On the other hand," + +msgid "review.most-undelay.from" +msgstr "took the handle to the table and managed to go from" + +msgid "review.most-undelay.to" +msgstr "to" + +msgid "review.most-undelay.mid" +msgstr " an impressive" + +msgid "review.most-undelay.post" +msgstr " faster than anticipated." + # _checked_in.html.ep, _public_status_card.html.ep msgid "status.is-checked-in" diff --git a/share/locales/reference.md b/share/locales/reference.md index 9254813..17d7a95 100644 --- a/share/locales/reference.md +++ b/share/locales/reference.md @@ -2,9 +2,9 @@ * de-DE: 100.0% complete (0 missing) * en-GB: 100.0% complete (0 missing) -* fr-FR: 22.3% complete (206 missing) -* hu-HU: 61.5% complete (102 missing) -* pl-PL: 70.6% complete (78 missing) +* fr-FR: 21.2% complete (219 missing) +* hu-HU: 58.6% complete (115 missing) +* pl-PL: 67.3% complete (91 missing) ### @@ -1820,6 +1820,110 @@ Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 && (n<10 || n>=20) ? 1 * hu-HU *missing* * pl-PL *missing* +### review.most-delayed.pre + +* de-DE: Mit +* en-GB: With +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delayed.mid + +* de-DE: hatte +* en-GB: , +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delayed.post + +* de-DE: die größte Verspätung. +* en-GB: effortlessly took the first place. +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delay.pre + +* de-DE: Die Fahrt mit +* en-GB: The trip with +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delay.from + +* de-DE: von +* en-GB: from +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delay.to + +* de-DE: nach +* en-GB: to +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delay.mid + +* de-DE: verlief besonders gemächlich: sie dauerte +* en-GB: was super serene: it took +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-delay.post + +* de-DE: länger als geplant. +* en-GB: longer than scheduled. +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-undelay.pre + +* de-DE: In +* en-GB: On the other hand, +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-undelay.from + +* de-DE: wurde hingegen Vmax ausgereizt und die Strecke von +* en-GB: took the handle to the table and managed to go from +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-undelay.to + +* de-DE: nach +* en-GB: to +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-undelay.mid + +* de-DE: +* en-GB: an impressive +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + +### review.most-undelay.post + +* de-DE: schneller absolviert als vorgesehen. +* en-GB: faster than anticipated. +* fr-FR *missing* +* hu-HU *missing* +* pl-PL *missing* + ## _checked_in.html.ep, _public_status_card.html.ep ### status.is-checked-in diff --git a/templates/_checked_in.html.ep b/templates/_checked_in.html.ep index 659abff..e509549 100644 --- a/templates/_checked_in.html.ep +++ b/templates/_checked_in.html.ep @@ -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') diff --git a/templates/_public_status_card.html.ep b/templates/_public_status_card.html.ep index ca5ddf8..834f9a8 100644 --- a/templates/_public_status_card.html.ep +++ b/templates/_public_status_card.html.ep @@ -34,14 +34,14 @@ % } data-arrival="<%= $journey->{real_arrival}->epoch %>"> % if ($journey->{departure_countdown} > 60) { - Abfahrt in <%= journeys->min_to_human(int($journey->{departure_countdown} / 60)) %> + Abfahrt in <%= LT(int($journey->{departure_countdown} / 60)) %> % } % elsif ($journey->{departure_countdown} > 0) { Abfahrt in weniger als einer Minute % } % 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') diff --git a/templates/year_in_review.html.ep b/templates/year_in_review.html.ep index 527cc56..db8aca3 100644 --- a/templates/year_in_review.html.ep +++ b/templates/year_in_review.html.ep @@ -17,12 +17,12 @@ % if ($review->{traveling_min_total} > 525) { %= L('review.travel-time.pre') <strong><%= $review->{traveling_percentage_year} %> <%= L('review.travel-time.of-year') %></strong> - (<%= $review->{traveling_time_year} %>) + (<%= LT($review->{traveling_time_year}) %>) %= L('review.travel-time.post') % } % else { %= L('review.travel-time.pre') - <strong><%= $review->{traveling_time_year} %></strong> + <strong><%= LT($review->{traveling_time_year}) %></strong> %= L('review.travel-time.post') % } </p> @@ -67,7 +67,7 @@ </p> <p> %= L('review.time-distance.pre') - <strong><%= $review->{typical_time} %></strong> + <strong><%= LT($review->{typical_time}) %></strong> %= L('review.time-distance.mid') <strong><%= $review->{typical_km} %> km</strong> (<%= $review->{typical_kmh} %> km/h)<%= L('review.time-distance.post') %> </p> @@ -80,17 +80,17 @@ <p> % if ($review->{typical_delay_arr} < $review->{typical_delay_dep}) { %= L('review.delay-decreasing.pre') - <strong><%= $review->{typical_delay_dep_h} %></strong> + <strong><%= LT($review->{typical_delay_dep}) %></strong> %= L('review.delay-decreasing.mid') - <strong><%= $review->{typical_delay_arr_h} %></strong><%= L('review.delay-decreasing.post') %> + <strong><%= LT($review->{typical_delay_arr}) %></strong><%= L('review.delay-decreasing.post') %> % } % elsif ($review->{typical_delay_arr} == $review->{typical_delay_dep}) { %= L('review.delay-constant.pre') - <strong><%= $review->{typical_delay_dep_h} %></strong><%= L('review.delay-constant.post') %> + <strong><%= LT($review->{typical_delay_dep}) %></strong><%= L('review.delay-constant.post') %> % } % else { %= L('review.delay-increasing.pre') - <strong><%= $review->{typical_delay_dep_h} %></strong> + <strong><%= LT($review->{typical_delay_dep}) %></strong> %= L('review.delay-increasing.mid') <strong>+<%= $review->{typical_delay_arr} %></strong><%= L('review.delay-increasing.post') %> % } @@ -103,7 +103,7 @@ <p> <a href="/journey/<%= $review->{longest_t_id} %>"><%= L('review.high-scores.longest-trip.link') %></a>: %= L('review.high-scores.longest-trip.pre') - <strong><%= $review->{longest_t_time} %></strong> + <strong><%= LT($review->{longest_t_min}) %></strong> %= L('review.high-scores.with') <strong><%= $review->{longest_t_type} %> <%= $review->{longest_t_lineno} %></strong> %= L('review.high-scores.from') @@ -135,7 +135,7 @@ <p> <a href="/journey/<%= $review->{shortest_t_id} %>"><%= L('review.high-scores.shortest-trip.link') %></a>: %= L('review.high-scores.shortest-trip.pre') - <strong><%= $review->{shortest_t_time} %></strong> + <strong><%= LT($review->{shortest_t_min}) %></strong> %= L('review.high-scores.with') <strong><%= $review->{shortest_t_type} %> <%= $review->{shortest_t_lineno} %></strong> %= L('review.high-scores.from') @@ -203,22 +203,32 @@ </p> % if ($review->{most_delayed_id}) { <p> - Mit <strong><%= $review->{most_delayed_delay_arr} %></strong> hatte <a href="/journey/<%= $review->{most_delayed_id} %>"><%= $review->{most_delayed_type} %> <%= $review->{most_delayed_lineno} %></a> <%= $review->{most_delayed_from} %> → <%= $review->{most_delayed_to} %> die größte Verspätung. + %= L('review.most-delayed.pre') + <strong><%= LT($review->{most_delayed_delay_arr}) %></strong><%= L('review.most-delayed.mid') %> + <a href="/journey/<%= $review->{most_delayed_id} %>"><%= $review->{most_delayed_type} %> <%= $review->{most_delayed_lineno} %></a> <%= $review->{most_delayed_from} %> → <%= $review->{most_delayed_to} %><%= L('review.most-delayed.post') %> </p> % } % if ($review->{most_delay_id}) { <p> - Die Fahrt mit <a href="/journey/<%= $review->{most_delay_id} %>"><%= $review->{most_delay_type} %> <%= $review->{most_delay_lineno} %></a> - von <%= $review->{most_delay_from} %> nach <%= $review->{most_delay_to} %> verlief besonders gemächlich: - sie dauerte <strong><%= $review->{most_delay_delta} %></strong> länger als geplant. + %= L('review.most-delay.pre') + <a href="/journey/<%= $review->{most_delay_id} %>"><%= $review->{most_delay_type} %> <%= $review->{most_delay_lineno} %></a> + %= L('review.most-delay.from') + %= $review->{most_delay_from} + %= L('review.most-delay.to') + %= $review->{most_delay_to} + %= L('review.most-delay.mid') + <strong><%= LT($review->{most_delay_delta}) %></strong><%= L('review.most-delay.post') %> </p> % } % if ($review->{most_undelay_id}) { <p> - In <a href="/journey/<%= $review->{most_undelay_id} %>"><%= $review->{most_undelay_type} %> <%= $review->{most_undelay_lineno} %></a> - wurde hingegen Vmax ausgereizt und die Strecke von - <%= $review->{most_undelay_from} %> nach <%= $review->{most_undelay_to} %> - <strong><%= $review->{most_undelay_delta} %></strong> schneller absolviert als vorgesehen. + %= L('review.most-undelay.pre') + <a href="/journey/<%= $review->{most_undelay_id} %>"><%= $review->{most_undelay_type} %> <%= $review->{most_undelay_lineno} %></a> + %= L('review.most-undelay.from') + %= $review->{most_undelay_from} + %= L('review.most-undelay.to') + %= $review->{most_undelay_to} + <strong><%= LT($review->{most_undelay_delta}) %></strong><%= L('review.most-undelay.post') %> </p> % } </div> |
