Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielojęzyczność. Brak wartości w dołączonej funkcji
Forum PHP.pl > Forum > PHP
kilab
Witam, mam problem ze zmiennymi, a raczej ich wartościami. Otóż tworzę sobie portal, pozwoliłem wykorzystać wielojęzyczność, która polega na pobraniu z adresu wartości zmiennej i za pomocą warunków załadowanie odpowiedniego pliku z językiem. Np, adres.pl/pl - ładuje plik /inc/pl.inc.php i analogicznie z innymi językami. poszczególne podstrony dołączam za pomocą funkcji include, tak więc adres.pl/pl/forum wskazuje na plik - /forum.php, w którym znajduje się forum, jednak plik ten wykorzystuje funkcje, które przechowywane są w innym pliku - /inc/forum.inc.php. Oczywiście plik z językiem jest dołączany na samym początku. Wydaje mi się więc, że zmienne z tego pliku winny być widoczne w całym skrypcie, we wszystkich plikach dołączanych również. Jednak zmienne, które wykorzystuje do wyświetlania danego tekstu w odpowiednim języku działają na adres.pl/pl/forum, ale w funkcji, która jest wywoływana w tym pliku, a zapisana w /inc/forum.inc.php nie działa. Dokładnie - nie zwraca żadnej wartości. Jakoś ciężko jest mi znaleźć informacje na ten temat. Domyślam się, że chodzi tutaj o zasięg zmiennych, jednak nie wiele jestem w stanie zrobić, aby poprawić tego fanta  sadsmiley02.gif Czekam na jakieś sugestie i pomysły dlaczego dzieje się tak, że w funkcjach znajdujących się w plikach dołączanych, zmienne nie 'docierają' i ew. pomoc w poprawie  snitch.gif

Wybaczcie moją ewentualną niewyraźną wypowiedź w tonie bełkotnym, ale pora już późna i spracowany jestem. Jeśli potrzebujecie więcej informacji, piszcie  tongue.gif
taro
Może nie do końca odpowiedź na Twoje pytanie, ale polecam:

'HTTP_ACCEPT_LANGUAGE' Contents of the Accept-Language: header from the current request, if there is one. Example: 'en'.

http://php.net/manual/en/reserved.variables.server.phpMoże to się okazać lepszym rozwiązaniem.

Masz jeszcze wpis dalys at chokladboll dot se

  1. <?php
  2. function detectlanguage() {
  3. $langcode = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
  4. $langcode = explode(",", $langcode['0']);
  5. return $langcode['0'];
  6. }
  7.  
  8. $language = detectlanguage();
  9.  
  10. echo "You have chosen $language as your language in your web browser.";
  11. ?>



Pozdrawiam.
kilab
Dzięki, może się przydać przy następnych lekcjach smile.gif

Ale teraz jednak problem z tym zasięgiem zmiennych  dry.gif

Najbardziej mnie interesuje to, czy jeśli na początku skryptu dołączę plik ze zadeklarowanymi zmiennymi to będą one dostępne w innych plikach dołączanych do skryptu(tak, będą, ale..) i czy są jakieś limitu zagłębiania się w tych plikach.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.