Forum Użytkowników Stacji Pogodowych
Stacje Pogody - oprogramowanie => Cumulus => Wątek zaczęty przez: Dador w 28 Październik, 2013, 18:11:26
-
Na swojej stronie prezentuję dane pogodowe ze stacji Davis Vantage Vue. Stacja generuje automatyczną prognozę pogody, którą za pomocą tagu internetowego <forecast>, program cumulus umieszcza na stronie www. Jednakże prognoza jest w oryginalnej składni i języku, czyli po angielsku. Ja chciałbym aby była po polsku. Z poziomu programu tego zrobić się, póki co, nie da. Pozostaje napisać skrypt, który zamieniałby oryginalny tekst prognozy na tekst przetłumaczony na język polski. Prognozy są stałe i są generowane z ok. 200 tekstów.
Pełna lista prognoz http://www.meteojejkowice.pl/DavisForecastStrings.txt (http://www.meteojejkowice.pl/DavisForecastStrings.txt)
I teraz pytanie. Czy znalazłby się ktoś, kto dałby radę napisać skrypt zamieniający wygenerowaną prognozę na taką po polsku? Podobno skrypt jest prosty, jeśli użyć funkcji str_replace() (taką dostałem podpowiedź). Ja się niestety kompletnie na tym nie znam. Przewertowałem forum cumulus, ale nie ogarniam ich podpowiedzi, jak to zrobić. Niestety nie mają tam prostego, jednoznacznego i uniwersalnego rozwiązania.
-
Nie znam się na stacji "Davis" więc to co piszę to tylko domniemanie. Czy to nie jest tak, że stacja generuje "numer" prognozy i tagiem "forecast" numer jest zastępowany przez odpowiedni do numeru tekst? Jeśli tak to powinno wystarczyć przetłumaczenie tekstu z pliku na język polski. Być może wystąpią problemy z "polskimi literami".
Pozdrawiam,
Piotr
-
Davisy generują prognozę tekstową i taką też odczytuje cumulus. Nie ma numeracji, tylko określony tekst. W konsolach stacji Vantage Pro, tekst prognozy widoczny jest na ekranie, natomiast w stacji Vue dopiero w programie Weatherlink i w pochodnych. W cumulusie też nie można tego pozmieniać, jak to ma miejsce dla stacji typu FO, gdzie wystarczy przetłumaczyć plik strings.ini, aby prognoza była po polsku. Narazie przeglądam Internet i szukam skryptów. Może coś się trafi co będzie pasować, lub co łatwo będzie można zaadaptować.
-
Można by użyć instrukcji Switch do tłumaczenia tych wyrażeń, bardzo podobnie napisany jest skrypt tłumaczący warunki pogodowe z tego (http://stacjepogody.waw.pl/index.php?topic=1336.0) postu.
<?php
$prognoza = "<#forecast>";
switch ($prognoza) {
case "MOSTLY CLEAR AND COOLER.":
echo "Przeważnie pogodnie i ochłodzenie.";
break;
case "MOSTLY CLEAR WITH LITTLE TEMPERATURE CHANGE.":
echo "Przeważnie pogodnie, z niewielkimi zmianami temperatury.";
break;
case "MOSTLY CLEAR FOR 12 HOURS WITH LITTLE TEMPERATURE CHANGE.":
echo " "; // Kolejne tłumaczenie...
break;
default:
echo "$prognoza";
}
?>
-
Dominik, dzięki za podpowiedź.
Obecnie dokształcam się trochę z zakresu php, więc myślę, że w niedalekiej przyszłości wyskrobię skrypt, który przetłumaczy te prognozy. Faktycznie, nie wydaje się to takie trudne. A co do użycia danej funkcji, to chyba zostanę przy str replace(), gdyż wydaje mi się, że będzie z tym mniej roboty. Jak będzie, zobaczymy.
A propos, prognoza BT's, którą masz na stronie, bazuje tylko na trendzie ciśnienia? Bo generuje, wg mnie, dość trafne komunikaty.
/edit
Testowy skrypt już działa ;D
/eidt2
Narazie działa jako podstrona, bo serwer na którym stoi strona nie obsługuje skryptów php w kodzie html.
http://www.meteojejkowice.pl/prognoza.php
-
Wszystkie potrzebne informacje do prognozy zawarte są na tej podstronie http://pogodaradlin.pl/bt-sager-cu.js (http://pogodaradlin.pl/bt-sager-cu.js).
Czyli prognoza BT Sager wykorzystuje dane o:
-lokalizacji
-kierunku wiatru
-aktualnym ciśnieniu i wahaniach ciśnienia
-aktualnym zachmurzeniu, które można ręcznie wpisywać w Cumulusie, jednak w przypadku braku tej informacji pojawia się "Partly Cloudy". Nie wpływa to aż tak znacząco na prognozę. W czasie trwającego opadu zmiania się na "Rain".