Zmiana języka miesięcy i dni. Komponent kalendarza pbbooking.
Wyniki 1 do 5 z 5

Temat: Zmiana języka miesięcy i dni. Komponent kalendarza pbbooking.

  1. #1
    Przeglądacz
    Dołączył
    26-02-2007
    Wpisy
    77
    Punkty
    15

    Domyślny Zmiana języka miesięcy i dni. Komponent kalendarza pbbooking.

    dotyczy: http://komputerowe-pogotowie.pl/inde...rwacja-terminu
    Komponent PBBooking (kalendarz)

    Nazwy miesiecy i dni są po angielsku, chciałbym aby były po polsku.
    To co znalazłem w kodzie komponentu to komentarz:
    //TODO: check how proper implementation of setLocale in Joomla is done....
    Tylko gdzie ustawić setLocale w Joomla ?
    Jedyne wystąpienie znalazłem w libraries/joomla/utilities/string.php - próbowałem tam coś zmieniać ale nic nie pomogło.

    Proszę o pomoc bo już kombinuje na różne sposoby i nie mogę sobie z tym poradzić.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wiarus pyziak awatar
    Dołączył
    10-06-2008
    Skąd
    Białystok
    Wpisy
    2 598
    Punkty
    155

    Domyślny

    te wyrażenia (Sunday...) znajdują się w pliku językowym /administrator/language/en-GB/en-GB.com_pbbooking.ini proponuje skopiować plik nazwać go pl-PL.com_pbbooking.ini umieścić go w /administrator/language/pl-PL/ no i oczywiście spolszczyć zawartość.
    Joomla User Group Podlasie - Zapraszam na FanPage<script src="http://connect.facebook.net/pl_PL/all.js#xfbml=1"></script>
    <fb:like href="https://www.facebook.com/JUGPodlasie" show_faces="true" width="450"></fb:like>

  4. #3
    Przeglądacz
    Dołączył
    26-02-2007
    Wpisy
    77
    Punkty
    15

    Domyślny

    To juz kiedyś przerobiłem to ale niestety nie podziałało. Te wyrażenia rzeczywiście tam są ale odnoszą się jedynie do nazw w panelu admina

  5. #4
    Debiutant
    Dołączył
    13-12-2011
    Skąd
    Warszawa
    Wpisy
    1
    Punkty
    11

    Domyślny

    Problem z wyświetlaniem polskich nazw miesięcy dotyczy tego, co zwraca PHP-owa funkcja strftime(), której wynik jest znowuż zależny od innej funkcji, którą jest setLocale. Ta także jest standardową funkcją PHP - nie jest to funkcja Joomli. SetLocale wskazuje ustawienia regionalne, które mają być użyte w danym skrypcie i wskazuje dla jakiego typu operacji lub danych. Jest to kłopotliwa funkcja ponieważ jest mocno zależna od systemu operacyjnego, na którym mamy uruchomioną instancję PHP.

    Jeżeli PHP działa na Linuxie, wówczas sprawa jest prosta: na początku pliku php generującego widok (np. /com_pbbooking/views/pbbooking/tmpl/consolidated_view.php) musimy po prostu dopisać coś takiego:
    Kod PHP:
    setlocale(LC_TIME"pl_PL"); 
    Lub jeśli mamy problemy z kodowaniem:
    Kod PHP:
    setlocale(LC_TIME,"pl_PL.UTF-8"); 
    Problemy pojawiają się, gdy PHP działa na systemie Windows, ponieważ system ten miewa bardzo różne oznaczenia dla języków i kodowań w zależności od swojej wersji. Istnieją jednakże odpowiednie strony internetowe w bazach MSDN (http://msdn.microsoft.com/en-us/libr...(v=VS.71).aspx oraz http://msdn.microsoft.com/en-us/libr...0z(vs.71).aspx), którymi można się posiłkować. To, co powinno działać już na każdym obecnym Windowsie to:
    Kod PHP:
    setlocale(LC_TIME"polish" ); 
    Jednakże, to nie koniec problemów, bo pozostaje jeszcze kodowanie. Niestety, wbrew zdrowemu rozsądkowi, system Windows nie obsługuje UTF-8 dla funkcji setLocale! Można to sprawdzić samemu albo zagłębić się w literaturę. Jedynym sposobem jest niestety wstawienie wszędzie gdzie trzeba odpowiednich wywołań funkcji iconv(). Dla przykładu - trzeba taki kod (wzięty z kodu do PBBooking):
    Kod PHP:
    echo '<th colspan='.(count($this->timeslots)-2).'>'.strftime('%B',$currday->format('U')).'</th>'
    zamienić na taki:
    Kod PHP:
    echo '<th colspan='.(count($this->timeslots)-2).'>'.iconv('Windows-1250''UTF-8'strftime('%B',$currday->format('U'))).'</th>'
    No i teraz już tylko od chęci programisty zależy jak elegancko zostaną wdrożone odpowiednie zmiany w kodzie.

    Cytat Wysłane przez noiragneau Zobacz wiadomość
    Pod wskazanym przez Ciebie linkiem mamy Consolidated View. Ja go u siebie (Windows + UTF-8) poprawiłem tak:

    Kod PHP:
    <?php //push stylesheet into head

    setlocale(LC_TIME'polish');

    $doc = &JFactory::getDocument();
    $doc->addStyleSheet(JURI::root(false)."components/com_pbbooking/user_view.css");

    //get first day of week
    $arr date_parse(date_format($date,DATE_RFC822));
    $timestamp mktime($arr['hour'],$arr['minute'],$arr['second'],$arr['month'],$arr['day'],$arr['year']);
    $arr getdate($timestamp);
    $firstday $date;
    $firstday->modify('-'.$arr['wday'].' day');
    $currday = clone $firstday;
            
    $prevweek = clone $currday;
    $prevweek->modify('-7 day');
    $nextweek = clone $currday;
    $nextweek->modify('+7 day');

    //render week calendar view
    echo '<table id="pbbooking">';
    echo 
    '<tr>';
    echo 
    '<td></td>';
    echo 
    sprintf("<th><a href=index.php?option=com_pbbooking&task=view&date=%s><<</a></td>",date_format($prevweek,'Ymd'));
    echo 
    '<th colspan='.(count($this->timeslots)-2).'>'.iconv('Windows-1250''UTF-8'strftime('%B',$currday->format('U'))).'</th>';
    echo 
    sprintf("<th><a href=index.php?option=com_pbbooking&task=view&date=%s>>></a></th>",date_format($nextweek,'Ymd'));

    echo 
    '</tr>';

    echo 
    '<tr><td></td>';
    foreach (
    $this->timeslots as $timeslot) {
        echo 
    '<th>'.$timeslot['english'].'</th>';
    }
    echo 
    '</tr>';
    for(
    $i=0;$i<7;$i++) {
        echo 
    '<tr>';
        
        
    //TODO: check how proper implementation of setLocale in Joomla is done....
        
    echo '<td>'.iconv('Windows-1250''UTF-8'strftime($this->config->date_format_heading,date_format($currday,'U'))).'</td>';
        foreach (
    $this->timeslots as $timeslot) {
            if (
    $this->block_same_day == 1) {
                
    $currday->setTime(0,0);
            } else {
                
    $currday->setTime($timeslot['start_hour'],$timeslots['start_min']);
            }
            if (
    $this->now <= $currday) {
                if (!
    $this->cal->isOpen($timeslot['id'],$currday)) {
                    echo 
    '<td class="closed_cell">N/A';
                }
                else if (!
    $this->cal->isFree($currday,$timeslot['id'])) {
                    echo 
    '<td class="free_cell">';
                    echo 
    sprintf("<a href=index.php?option=com_pbbooking&task=create&date=%s&slot=%s>",date_format($currday,'Ymd'),$timeslot['id']);
                    echo 
    JTEXT::_('COM_PBBOOKING_FREE_TEXT')."</a>";
                } else {
                    echo 
    '<td class="busy_cell">';
                    echo 
    JText::_('COM_PBBOOKING_BUSY_TEXT');
                }
                echo 
    '</td>';
            } else {
                echo 
    '<td class="busy_cell">';
                echo 
    JText::_('COM_PBBOOKING_PAST_TEXT');
                echo 
    '</td>'
            }
                
        }
    $currday->modify('+1 day');
    echo 
    '</tr>';
    }
    echo 
    '</table>';

    ?>
    Ostanio edytowane przez g_a_kowalski : 19-12-2011 18:06 Powód: poprawka tagu CODE na PHP

  6. #5
    Przeglądacz
    Dołączył
    26-02-2007
    Wpisy
    77
    Punkty
    15

    Domyślny

    Wiedziałem że to SetLocale trzeba ustawić ale nie wiedziałem jak.
    Zgooglałem kiedyś i dopisałem linię:
    Kod:
    setlocale(LC_TIME, 'pl_PL');
    ale nie działało i straciłem kilka godzin na szukanie rozwiązania.
    Po Twoim poście okazało się że miałem prosty błąd: 'pl_PL' zamiast "pl_PL" :/
    Pojawił się problem z kodowaniem ale dodatek UTF-8 pomógł.
    Dzięki wielkie.

Podobne tematy

  1. Komponent kalendarza
    przez wpk78 na forum Szukam dodatku do Joomla
    Odpowiedzi: 1
    Ostatni post/autor: 13-12-2010, 22:36
  2. Moduł wyświetlania dni miesiąca
    przez Dareios4 na forum Administracja - ogólne
    Odpowiedzi: 8
    Ostatni post/autor: 04-06-2009, 15:33
  3. Polskie znaki w nazwach dni i miesięcy
    przez marian_mk na forum Joomla 1.5 BŁĘDY
    Odpowiedzi: 9
    Ostatni post/autor: 24-03-2008, 06:01
  4. Dni miesiąca i tygodnia w Joomla
    przez sylwekb na forum Instalacje (Joomla!, składników)
    Odpowiedzi: 3
    Ostatni post/autor: 05-09-2006, 14:34

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •