summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2023-10-29 13:34:43 +0100
committerBirte Kristina Friesel <derf@finalrewind.org>2023-10-29 13:34:43 +0100
commit662693f26be2fe67fe59335b2c863f257120bf41 (patch)
treed93a95b141d73964c7fc00bfdde2abc89567859b /templates
parentece34fe0815ef85db0c3a775d74625607aa65e25 (diff)
add english version of landing page and main menu
Diffstat (limited to 'templates')
-rw-r--r--templates/landingpage.html.ep32
-rw-r--r--templates/layouts/app.html.ep115
2 files changed, 90 insertions, 57 deletions
diff --git a/templates/landingpage.html.ep b/templates/landingpage.html.ep
index 4913586..0a977a8 100644
--- a/templates/landingpage.html.ep
+++ b/templates/landingpage.html.ep
@@ -1,18 +1,30 @@
% if (stash 'show_intro') {
<div class="container">
-<p>
- DBF ist ein inoffizieller Abfahrtsmonitor für den Regional- und Fernverkehr mit dem Ziel, Daten aus verschiedenen Quellen übersichtlich zusammenzutragen.
- Der Fokus liegt auf Zügen im Netz der Deutschen Bahn; eingeschränkte Unterstützung für Nahverkehr und Züge in anderen Netzen lässt sich optional zuschalten.
-</p>
-<p>
- Diese Seite ist ein kostenfreies, privat betriebenes Projekt ohne
- Verfügbarkeitsgarantie. Alle Angaben ohne Gewähr.
-</p>
+% if (languages() =~ m{^en}) {
+ <p>
+ DBF is an unofficial departure monitor for regional and long-distance trains within Germany, aiming to combine multiple data sources in a useful manner.
+ It also has limited support for local transit and traffic outside of Germany.
+ </p>
+ <p>
+ This site is operated by a private entity in a not-for-profit manner.
+ There are no uptime or reliability guarantees whatsoever.
+ </p>
+% }
+% else {
+ <p>
+ DBF ist ein inoffizieller Abfahrtsmonitor für den Regional- und Fernverkehr mit dem Ziel, Daten aus verschiedenen Quellen übersichtlich zusammenzutragen.
+ Der Fokus liegt auf Zügen im Netz der Deutschen Bahn; eingeschränkte Unterstützung für Nahverkehr und Züge in anderen Netzen lässt sich optional zuschalten.
+ </p>
+ <p>
+ Diese Seite ist ein kostenfreies, privat betriebenes Projekt ohne Verfügbarkeitsgarantie.
+ Alle Angaben ohne Gewähr.
+ </p>
+% }
<p class="geolink">
-<a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>">Stationen in der Umgebung suchen</a>
+<a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>"><%= l 'Stationen in der Umgebung suchen' %></a>
</p>
<p>
-Oder hier angeben:
+%= l 'Oder hier angeben:'
</p>
</div>
% }
diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep
index 51aded6..1795471 100644
--- a/templates/layouts/app.html.ep
+++ b/templates/layouts/app.html.ep
@@ -111,8 +111,8 @@
</div>
% }
% elsif (stash('stationlist')) {
-<div class="error"><strong>Mehrdeutige Eingabe.</strong>
-Bitte eine Station aus der Liste auswählen</div>
+<div class="error"><strong><%= l 'Mehrdeutige Eingabe' %>.</strong>
+<%= l 'Bitte eine Station aus der Liste auswählen' %></div>
% }
</div>
@@ -128,35 +128,35 @@ Bitte eine Station aus der Liste auswählen</div>
%= form_for _redirect => begin
<div>
<div class="field">
- <div class="desc">Zug / Station</div>
+ <div class="desc"><%= l 'Zug / Station' %></div>
<div>
% if (stash('stationlist')) {
%= select_field input => stash('stationlist')
% }
% elsif (stash('input')) {
- %= text_field 'input', class => 'station', placeholder => 'Zug, Stationsname oder Ril100-Kürzel', id => 'stationinput'
+ %= text_field 'input', class => 'station', placeholder => l 'Zug, Stationsname oder Ril100-Kürzel', id => 'stationinput'
% }
% else {
- %= text_field 'input', class => 'station', placeholder => 'Zug, Stationsname oder Ril100-Kürzel', id => 'stationinput', autofocus => 'autofocus'
+ %= text_field 'input', class => 'station', placeholder => l 'Zug, Stationsname oder Ril100-Kürzel', id => 'stationinput', autofocus => 'autofocus'
% }
</div>
</div>
<div class="field">
- %= submit_button 'Abfahrtsmonitor'
+ %= submit_button l('Abfahrstafel')
</div>
% if (stash('input')) {
<div class="geolink">
- <a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>">Stationen in der Umgebung suchen</a>
+ <a class="button" href="<%= url_for('_autostop')->to_abs->scheme('https') %>"><%= l 'Stationen in der Umgebung suchen' %></a>
</div>
% }
<div class="break"></div>
- <div class="moresettings-header moresettings-header-collapsed button button-light">Weitere Einstellungen</div>
+ <div class="moresettings-header moresettings-header-collapsed button button-light"><%= l 'Weitere Einstellungen' %></div>
<div class="moresettings moresettings-collapsed">
<div class="field">
<div class="desc">
%= check_box 'rt' => 1, id => 'id_show_realtime'
<label for="id_show_realtime">
- Zeiten inkl. Verspätung angeben
+ %= l 'Zeiten inkl. Verspätung angeben'
</label>
</div>
</div>
@@ -164,7 +164,7 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="desc">
%= check_box 'hidelowdelay' => 1, id => 'id_hidelowdelay'
<label for="id_hidelowdelay">
- Verspätungen erst ab 5 Minuten anzeigen
+ %= l 'Verspätungen erst ab 5 Minuten anzeigen'
</label>
</div>
</div>
@@ -172,7 +172,7 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="desc">
%= check_box 'detailed' => 1, id => 'id_detailed'
<label for="id_detailed">
- Mehr Details (u.a. Zugnummern und Zugbildungsplan)
+ %= l 'Mehr Details'
</label>
</div>
</div>
@@ -180,7 +180,7 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="desc">
%= check_box 'no_related' => 1, id => 'id_no_related'
<label for="id_no_related">
- Betriebliche Bahnhofstrennungen berücksichtigen (z.B. "Hbf (Fern+Regio)" vs. "Hbf (S)")
+ %= l 'Betriebliche Bahnhofstrennungen berücksichtigen (z.B. "Hbf (Fern+Regio)" vs. "Hbf (S)")'
</label>
</div>
</div>
@@ -188,7 +188,7 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="desc">
%= check_box 'past' => 1, id => 'past'
<label for="past">
- Bereits abgefahrene Züge anzeigen
+ %= l 'Bereits abgefahrene Züge anzeigen'
</label>
</div>
</div>
@@ -196,21 +196,21 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="desc">
%= check_box 'hide_opts' => 1, id => 'id_hide_opts'
<label for="id_hide_opts">
- Formular verstecken (für Infoscreens)
+ %= l 'Formular verstecken'
</label>
</div>
</div>
<div class="field">
<div class="desc">
- Nur Züge über
+ %= l 'Nur Züge über'
</div>
<div>
- %= text_field 'via', placeholder => 'Bahnhof 1, Bhf2, ... (oder regulärer Ausdruck)', class => 'station'
+ %= text_field 'via', placeholder => l('Bahnhof 1, Bhf2, ... (oder regulärer Ausdruck)'), class => 'station'
</div>
</div>
<div class="field">
<div class="desc">
- Gleise
+ %= l 'Gleise'
</div>
<div>
%= text_field 'platforms', placeholder => '1, 2, 5, ...'
@@ -218,10 +218,10 @@ Bitte eine Station aus der Liste auswählen</div>
</div>
<div class="field">
<div class="desc">
- Ankunfts- oder Abfahrtszeit anzeigen?
+ %= l 'Ankunfts- oder Abfahrtszeit anzeigen?'
</div>
<div>
- %= select_field admode => [['Abfahrt bevorzugen' => 'deparr'], ['Nur Abfahrt' => 'dep'], ['Nur Ankunft' => 'arr']]
+ %= select_field admode => [[l('Abfahrt bevorzugen') => 'deparr'], [l('Nur Abfahrt') => 'dep'], [l('Nur Ankunft') => 'arr']]
</div>
</div>
<div class="field">
@@ -233,7 +233,7 @@ Bitte eine Station aus der Liste auswählen</div>
</div>
</div>
<div class="field">
- %= submit_button 'Anzeigen'
+ %= submit_button l('Anzeigen')
</div>
</div> <!-- moresettings -->
</div>
@@ -242,32 +242,53 @@ Bitte eine Station aus der Liste auswählen</div>
</div> <!-- input-field -->
<div class="notes">
- <div class="developers-header developers-header-collapsed button button-light">API- und Entwickler-Hinweise</div>
+ <div class="developers-header developers-header-collapsed button button-light">API</div>
<div class="developers developers-collapsed">
<ul>
- <li>DBF-Abfahrtstafeln können gerne als iframe eingebunden oder in
- fest installierten Vollbild-Browserfenstern verwendet werden.
- Für eine kleine Ansicht (z.B. iframe in einer normalen Website)
- empfiehlt sich das "App"-Frontend. Für eine große Ansicht
- (z.B. als alleinstehender Infoscreen) gibt es den "Infoscreen"-Modus.</li>
- <li>Die Parameter <span style="font-family: monospace;">mode=json&amp;version=3</span>
- (alternativ <span style="font-family:
- monospace;">https://dbf.finalrewind.org/Bahnhofsname.json?version=3</span>)
- bieten ein JSON-IRIS-Interface. Die route-Elemente können zusätzlich
- die Felder "isAdditional" oder "isCancelled" enthalten, der Rest sollte
- selbsterklärend sein. Im Fehlerfall fehlt das "departures"-Element,
- stattdessen wird ein "error"-Element mit Fehlermeldung zurückgegeben.
- Bitte maximal 30 Anfragen pro Minute und insbesondere nur eine Anfrage
- pro Station und Minute – eine höhere Auflösung haben die Backenddaten
- ohnehin nicht.</li>
- <li>Ein JSON-Interface für Zugdetails ist in Arbeit.</li>
- <li>Mit <span style="font-family: monospace;">limit</span> kann die Anzahl der
- angezeigten / im JSON enthaltenen Abfahrten eingeschränkt werden, z.B.
- <span style="font-family: monospace;">limit=10</span> für die ersten zehn.</li>
- <li>Dieser Dienst ist Open Source-Software und kann leicht auf eigenen Servern
- <a href="https://github.com/derf/db-fakedisplay/blob/master/README.md">installiert</a>
- werden. Automatisierte Crawler, die mehrere Dutzend Stationen pro Minute
- abfragen, bitte nur auf eigenen Instanzen betreiben.</li>
+ % if (languages() =~ m{^en}) {
+ <li>You're welcome to embed DBF departure boards as iframes or use them
+ in full-screen browser setups. The App frontend works best for
+ small screens, whereas the legacy Infoscreen mode is better suited
+ for large displays.</li>
+ <li>A JSON IRIS API is avaliable via
+ <span style="font-family: monospace;">mode=json&amp;version=3</span>
+ (or just <span style="font-family: monospace;">https://dbf.finalrewind.org/Station.json?version=3</span>).
+ Route elements may contain "isAdditional" and "isCancelled"; the rest
+ should be self-explanatory. Please do not send more than 30 requests
+ per minute and only one request per station per minute.</li>
+ <li>There is no JSON API for train details yet.</li>
+ <li>The optional <span style="font-family: monospace;">limit</span>
+ parameter limits the number of returnd departures; e.g.
+ <span style="font-family: monospace;">limit=10</span> will result in no more than ten.</li>
+ <li>DBF is available as Open Source software
+ (<a href="https://github.com/derf/db-fakedisplay/blob/master/README.md">installation instructions</a>).
+ Please use your own installation for automated crawlers that request dozens of stations per minute.</li>
+ % }
+ % else {
+ <li>DBF-Abfahrtstafeln können gerne als iframe eingebunden oder in
+ fest installierten Vollbild-Browserfenstern verwendet werden.
+ Für eine kleine Ansicht (z.B. iframe in einer normalen Website)
+ empfiehlt sich das "App"-Frontend. Für eine große Ansicht
+ (z.B. als alleinstehender Infoscreen) gibt es den "Infoscreen"-Modus.</li>
+ <li>Die Parameter <span style="font-family: monospace;">mode=json&amp;version=3</span>
+ (alternativ <span style="font-family:
+ monospace;">https://dbf.finalrewind.org/Bahnhofsname.json?version=3</span>)
+ bieten ein JSON-IRIS-Interface. Die route-Elemente können zusätzlich
+ die Felder "isAdditional" oder "isCancelled" enthalten, der Rest sollte
+ selbsterklärend sein. Im Fehlerfall fehlt das "departures"-Element,
+ stattdessen wird ein "error"-Element mit Fehlermeldung zurückgegeben.
+ Bitte maximal 30 Anfragen pro Minute und insbesondere nur eine Anfrage
+ pro Station und Minute – eine höhere Auflösung haben die Backenddaten
+ ohnehin nicht.</li>
+ <li>Ein JSON-Interface für Zugdetails ist in Arbeit.</li>
+ <li>Mit <span style="font-family: monospace;">limit</span> kann die Anzahl der
+ angezeigten / im JSON enthaltenen Abfahrten eingeschränkt werden, z.B.
+ <span style="font-family: monospace;">limit=10</span> für die ersten zehn.</li>
+ <li>Dieser Dienst ist Open Source-Software und kann leicht auf eigenen Servern
+ <a href="https://github.com/derf/db-fakedisplay/blob/master/README.md">installiert</a>
+ werden. Automatisierte Crawler, die mehrere Dutzend Stationen pro Minute
+ abfragen, bitte nur auf eigenen Instanzen betreiben.</li>
+ % }
</ul>
</div> <!-- developers -->
</div> <!-- notes -->
@@ -276,11 +297,11 @@ Bitte eine Station aus der Liste auswählen</div>
<div class="container">
<div class="about">
-<a href="_about">Über DBF</a>
+<a href="_about"><%= l 'Über DBF' %></a>
·
-<a href="_datenschutz" rel="nofollow">Datenschutz</a>
+<a href="_datenschutz" rel="nofollow"><%= l 'Datenschutz' %></a>
·
-<a href="_impressum" rel="nofollow">Impressum</a><br/>
+<a href="_impressum" rel="nofollow"><%= l 'Impressum' %></a><br/>
Version <%= stash('version') // '???' %>
</div> <!-- about -->
</div> <!-- container -->