Mehrsprachigkeit bei Variablen für Zeitdauer-Angaben

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
WS-Mijas

Mehrsprachigkeit bei Variablen für Zeitdauer-Angaben

Beitrag von WS-Mijas »

An die Variablen-Spezialisten, Holli? Werner? Werner?

Grüß Gott!

In meinen englisch- und spanisch-sprachigen custom-xx.htmls:

http://www.calahonda-info.net/Wetter/ht ... om-uk.html
http://www.calahonda-info.net/Wetter/ht ... om-us.html
http://www.calahonda-info.net/Wetter/ht ... om-es.html

und im Wetter-Ticker verwende ich auch die Variablen %ws_desert_durations% und %ws_iceday_durations% mit der die Trockenheitsdauer bzw. die Frostdauer in Kurzform ausgegeben wird. OK, sie schreibt heute bei mir z.B. 5 T, 10 h, 1 min., das paßt für Englisch und Spanisch nur zu zwei Dritteln, denn das "T" müßte durch ein "d" ersetzt werden (day bzw. dia). Aber mit den Sprach-Kennziffern [1] und [6] für Englisch bzw. Spanisch geht da nichts. Die Variablen %ws_desert_duration% und %ws_iceday_duration% kann ich erst recht nicht verwenden, denn die schreiben alles im langen Klartext z.B.: 5 Tage, 10 Stunden, 1 Minute.
Mit der gleichen „Einsprachigkeit“ sind auch die Variablen %ws_moonage% und allen Artverwandten eingeschränkt.

Wie würdet Ihr Euch da helfen, ohne dass daraus ein aufwendiges Kunstwerk werden muß?

Es hat keine Dringlichkeit, denn mit diesem kleinen Schönheitsfehler kann ich leben und bisher hat sich noch kein Engländer oder Spanier bei mir beschwert, dass er mit einem „T“ nichts anzufangen weiß.
Benutzeravatar
Werner
Site Admin
Beiträge: 6119
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 147 mal
Kontaktdaten:

Beitrag von Werner »

@Bernd,

ich würde dafür die Variable Zeichen ersetzen verwenden:
%ws_replacestr=alttext1~neutext2~text%
Beispiele:
%ws_replacestr=:~ ~00:24% ersetzt ":" in der Uhrzeit durch ein Leerzeichen
%ws_replacestr=/~:~00/39% ersetzt "/" durch ":"

Werner
WS-Mijas

Danke! Aus "T" soll "d" werden ist gelö

Beitrag von WS-Mijas »

Guten Tag Werner (Kr.),

danke für die schnelle Antwort zu später/früher Stunde.

Gleich habe ich Deinen Vorschlag angewendet. Bei der Trockenheitsvariablen habe ich es so:
%ws_replacestr=T~d~%ws_desert_durations%% gemacht
und bei der Frostdauer so:
%ws_replacestr=T~d~%ws_iceday_durations%% und es klappt. Prima, WSWin hat wieder einmal eine elegante, unkomplizierte Lösung parat.

Bei der Mondalter-Variablen %ws_moonage% habe ich aber die Schwierigkeit, dass gleich drei Strings am Stück verändert werden müssen, und die dann auch noch kombiniert für Einzahl und Mehrzahl, ich meine:

aus Tag -> day bzw. Tage -> days
aus Stunde -> hour bzw. Stunden -> hours
aus Minute -> minute bzw. Minuten -> minutes

Das kriege ich syntaktisch mit der replace-Methode nicht hin, weil ich nur den ersten String ändern kann, wie z.B.:

%ws_replacestr=Tag~day~%ws_moonage%% --- oder gibt es da einen Verschachtelungstrick, den ich noch nicht sehe?
Benutzeravatar
weneu
Site Admin
Beiträge: 11572
Registriert: 22 Feb 2002 01:00
Wohnort: Donauwörth
Danksagung erhalten: 18 mal
Kontaktdaten:

Beitrag von weneu »

Hallo Bernd,
ich fürchte, man bricht sich hier alle Finger. Ein Ansatz wäre:
Mondalter: %ws_moonage%<br>
%ws_setmem[60]=%ws_replacestr=Tage~days~%ws_moonage%%<br>
%ws_getmem[60]%<br>
%ws_setmem[61]=%ws_replacestr=Stunden~hours~%ws_moonage%%
%ws_getmem[61]%<br>
%ws_setmem[62]=%ws_replacestr=Minuten~minutes~%ws_moonage%%<br>
Das brächte dann z.B. folgendes Ergebnis:
Mondalter: 11 Tage, 8 Stunden, 22 Minuten
11 days, 8 Stunden, 22 Minuten

11 Tage, 8 hours, 22 Minuten
11 Tage, 8 Stunden, 22 minutes
Und nun könnte man versuchen (habe im Moment die Zeit nicht, es zu testen), mit der Variablen
%ws_cutstr=Start~Anzahl~Text%
die getmem-Variablen zu "zerlegen". Vermutlich wird es aber daran scheitern, dass der String nicht immer gleich lang ist.
Und dann bleibt immer noch das Problem mit Einzahl/Mehrzahl, nämlich "Stunde - Stunden" usw.
Ob der Aufwand dafür steht, weiß ich nicht.

Ein kürzerer Ansatz wäre:
%ws_setmem[60]=%ws_replacestr=Tage~days~%ws_moonage%%<br>
%ws_setmem[61]=%ws_replacestr=Stunden~hours~%ws_getmem[60]%%
%ws_setmem[62]=%ws_replacestr=Minuten~minutes~%ws_getmem[61]%%<br>
Mondalter neu: %ws_getmem[60]%%ws_getmem[61]%%ws_getmem[62]%<br>
aber das scheint nicht zu funktionieren, wenn eine ws_getmem erneut ausgewertet werden soll.
WS-Mijas

Viel Aufwand für drei Wort-Auswechslungen

Beitrag von WS-Mijas »

Guten Tag Werner (weneu),

danke, daß Du Dir soviel Mühe gemacht hast.

Da gebe ich Dir recht. Der Aufwand ist schon gewaltig und ich müßte das ja auch noch für die zweite Sprache dazu setzen.

Da glaube ich, daß es besser ist wenn wir warten, bis es vielleicht doch auch für diese Variable Sprachkennziffern [1] bzw. [2] geben wird und dazu auch noch eine Kurzform wie z.B. %ws_moonages%.
WS-Mijas

Zeitdauer-Variable mit Fremdsprachen-Kennziffern, jetzt da!

Beitrag von WS-Mijas »

Hallo WSWin32-Freunde,

zum oben abgehandelten Thema, hier eine erfreuliche Neuerung:

In der z.Zt. verfügbaren neuesten Test-Version von WSWin32 V2.92.6 und wohl auch in allen zukünftigen offiziellen Versionen gibt es jetzt die anschließend aufgeführten Zeitdauer-Variablen auch für sechs Fremdsprachen mit Hilfe der Fremdsprachen-Kennziffern.

Wie schon bisher sind die Variablen mit Fremdsprachen-Kennziffer in eckigen [] Klammern immer mit einem führenden „#“-Zeichen gekennzeichnet, das natürlich bei der Einbindung der Variablen weggelassen werden muß.
Hier eine Liste (Auszug aus der neuen custom_.txt):

Frostzeiten:
Dauer Frostzeit #%ws_iceday_duration[1]% ---Ausgabe-Beispiel: 2 days, 5 hours, 31 minutes
Dauer Frostzeit(kurz) #%ws_iceday_durations[1]% --- Ausgabe-Beispiel: 2 D, 5 h, 31 m
Dauer längster Frost #%LT_IceDayDuration[1]% --- Ausgabe-Beispiel: 2 days, 5 hours, 31 minutes

Trockenzeiten:
ohne Regen seit #%ws_desert_duration[1]% --- Ausgabe-Beispiel: 2 days, 5 hours, 31 minutes
ohne Regen seit (kurz) #%ws_desert_durations[1]% --- Ausgabe-Beispiel: 2 D, 5 h, 31 m
Dauer ohne Regen (Addition aller regenfreien Zeiten eines Jahres) #%LT_NoRainDuration[1]%
Ausgabe-Beispiel: 112 days, 5 hours, 31 minutes

Mond/Sonnen-Daten:
Mondalter #%ws_moonage[1]% --- Ausgabe-Beispiel: 2 days, 5 hours, 31 minutes
Info Mond/Sonne #%ws_infomoonsun[1]%
Ausgabe-Beispiel: The moon-/sun dates refer onto the position coordinates of 48° 30' 27" North - 10° 43' 59" East

Danke Werner (Krenn) für diese zusätzliche Erleichterung bei der Einbindung von Variablen mit der Ausgabe von Zeitangaben in fremden Sprachen.
JueSt

Ausgabe von 'ws_infomoonsun'

Beitrag von JueSt »

Hallo Werner,

kannst Du das Ausgabeformat von den Koordinaten in 'ws_infomoonsun' an die von 'ws_remark1' anpassen (sprich für ["] sollte 2*['] ausgegeben werden)? Dann kann man diese Variable auch mit PHP in eine dynamisch HTML-Seite einbinden.
Antworten