Polski format daty

Witam,

Czy jest możliwość ustawienia w Drupalu polskiej daty, np. ‚15 sierpnia 2008’, a nie ‚15 sierpień 2008’?

Jeśli tego nie da się zrobić, to gdzie powinienem umieścić funkcje takie jak na tej stronie:

http://4programmers.net/…a_data_w_PHP

aby w jak najmniejszym stopniu wpływało to na szybkość strony?

Wiadomo coś o lokalizacji daty w wersjach Drupala 6 i 7(moje pierwsze pytanie dotyczy wersji 5)?

Pozdrawiam

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.

Cześć! Cieszę się, że

Cześć!

Cieszę się, że istnieją jeszcze ludzie dla których „taki szczegół” ma znaczenie. Kiedyś pisałem o tym, ale Arche zbagatelizował problem.

Najprostszym rozwiązaniem jest zmiana tłumaczenia nazw miesięcy której możesz dokonać tu: admin/settings/lo­cale/string/se­arch

Po takiej zmianie prawdopodobnie pojawi się problem w modułach typu kalendarz (nie używałem więc nie podam Ci konkretnego przykładu) – to znaczy kolumna miesiąca będzie opisana nie jako „styczeń” a jako „stycznia” – czyli bez sensu.

Można również dodać do pliku page.tpl.php dwanaście linii preg_replace() które będą wyławiać i zamieniać feralne końcówki przed publikacją treści na stronie. I nie będzie to jakoś szczególnie obciążać systemu.

Z pozdrowieniami racho

p.s. Jeżeli interesują Cię zagadnienia tłumaczenia interfejsu Drupala zapraszam na Dialog z Drupalem w tle

Dzięki, na moje potrzeby

Dzięki, na moje potrzeby (nie uzywam kalendarza) w zupełności wystarczyło rozwiązanie z podmianą tłumaczeń miesięcy.

Portret użytkownika archetwist

Znaczenie

moderator

Cieszę się, że istnieją jeszcze ludzie dla których „taki szczegół” ma znaczenie. Kiedyś pisałem o tym, ale Arche zbagatelizował problem.

Ma znaczenie, ale nie tak wielkie, by dla niego tworzyć inny problem (nazwy miesięcy nie we wszystkich miejscach w interfejsie powinny być odmienione).

nazwy miesięcy nie we

nazwy miesięcy nie we wszystkich miejscach w interfejsie powinny być odmienione

Arche, oczywiście. Napisałem o tym w swoim poście. Podejrzewam jednak, że w przeważającej większości wypadków potrzebna jest forma dopełniaczowa. Idąc dalej tym tropem nazwa miesiąca w dopełniaczu tam gdzie powinna być w mianowniku robi ma mnie wrażenie literówki, natomiast sytuację przeciwną – miesiąc w formie mianownikowej w zapisie daty – odbieram jako bardzo rażące niechlujstwo językowe.

A wszystko to jak zwykle w moim czysto subiektywnym odczuciu.

Z pozdrowieniami racho

Portret użytkownika Erewhon

Zaciekawił mnie ten wątek

moderator

Zaciekawił mnie ten wątek i wykonałem taki test:

do template.php dodałem funkcję:

function MakeDate($s)
{
$date = date("l, d F Y", $s);

$date_ang = array('Monday', 'Tuesday', 'Wednesday',  'Thursday', 'Monday', 'Saturday', 'Sunday', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

$date_pl = array('Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela', 'Stycznia', 'Lutego', 'Marca', 'Kwietnia', 'Maja', 'Czerwca', 'Lipca', 'Sierpnia', 'Września', 'Października', 'Listopada', 'Grudnia');

return str_replace($date_ang, $date_pl, $date);
}

w page.tpl.php wywołanie:

Dzisiaj jest: <?php print MakeDate(time()); ?>

Działa, może się kiedyś przyda.

Pamiętaj o swoim święcie http://sysadminday.pl

Rozumiem, że to najszybsze

Rozumiem, że to najszybsze z rozwiązań (zastanawiałem się, czy szybsze nie byłoby wstawienie tych funkcji jako patcha do jakiegoś modułu)?

Portret użytkownika Erewhon

Cały problem polega na tym,

moderator

Cały problem polega na tym, ze jest to specyficzne rozwiązanie dla Naszego języka (nie mam informacji, czy jakieś inne narodowości mają podobną zasadę pisowni / odmiany), więc patch nie do końca byłby chyba wskazany.

Natomiast w zbiorze template.php definiuje się własne funkcje i rozwiązania i wydaje się to najbardziej eleganckim i zgodnym z prawidłami rozwiązaniem.

Pamiętaj o swoim święcie http://sysadminday.pl

Istotnie, zgrabny kawałek

Istotnie, zgrabny kawałek kodu :-)

Nie rozwiązuje jednak kwestii czuwania nad sposobem zapisu daty w treści „wypluwanej” przez różne moduły. W takim celu można przepuścić treść zawartą w zmiennej $content (lub innej zmiennej zdefiniowanej w tablicy obszarów, w pliku template.php) przez

$content = preg_replace ('/([0-9]*?)(.){1,2}styczeń/','\\1\\2stycznia', $content);

(uwaga: powyższe wyrażenie regularne jest napisane „z palca” i nie zostało przeze mnie przetestowane, ale powinno działać :-))

Oczywiście można to zgrabnie zapakować do tablic i stosować podobnie jak Twoją funkcję:

$content = preg_replace($mc_w_mianowniku, $mc_w_dopełniaczu, $content);

Z pozdrowieniami racho