Dzień dobry,

Mam problem, mianowicie w moim szablonie wordpressa chciałem zrobić plik do tłumaczenia strony.
Zrobiłem osobny plik:
lang_polski.php
  1. <?php
  2.  
  3. $lang = array(
  4.  
  5. "help" => "pomoc",
  6. "all_doctors" => "wszyscy lekarze",
  7. );
  8. ?>


Funkcję w osobnym pliku:
language.php
  1.  
  2. /************************************************************/
  3. /* Define Theme's Constants */
  4. /************************************************************/
  5. define('MYTHEMEROOT', 'wp-content/themes/medic-final');
  6.  
  7.  
  8. /************************************************************/
  9. /* JEZYK */
  10. /************************************************************/
  11.  
  12. // SPRAWDZA CZY CIASTECZKO JEST USTAWIONE. JAK TAK TO SIĘ DO NIEGO ODWOŁUJE
  13. if(isSet($_COOKIE['lang']))
  14. {
  15. $ldef = $_COOKIE['lang'];
  16. } else {
  17. // JESLI NIE MA CIASTECZKA OTWIERAMY DOMYŚLNY JĘZYK NA STRONIE
  18. $ldef = "polski";
  19. }
  20.  
  21. // SPRAWDZDAMY CZY PLIK ISTNIEJE. JAK TAK TO SIĘ DO NIEGO ODWOŁUJEMY
  22. $lang_file = ''.MYTHEMEROOT.'/lang/lang_'.$ldef.'.php';
  23.  
  24. if(file_exists($lang_file)){
  25. include ($lang_file);
  26. echo "<!--Język wczytany! -->";
  27. } else {
  28. echo "Brak pliku z językiem!";
  29. }
  30.  
  31. function _lang($var, $var_wp)
  32. {
  33. if($var_wp == ""){
  34. echo $var;
  35. }else{
  36. echo ($var == "" ? $var_wp : $var);
  37. }
  38. }


A w pliku header.php dałem includea:
  1. // language
  2. include('lib/functions/language.php');

oraz wywołanie funkcji w pliku header.php (jako próba):
  1. <?php _lang($lang['help'], ""); ?>
  2. zwraca odpowiednio "pomoc"


I do tego momentu jest wszystko super. Za to kiedy chcę umieścić tłumaczony tekst w innym pliku np. template_gallery.php to otrzymuję błąd:

  1. Notice: Undefined variable: lang in /***/wp-content/themes/final/template-gallery.php on line 33


I teraz proszę o pomoc, czy jest coś o czym nie wiem?
Idąc krok po kroku... funkcje oraz include powinny zostać zaimportowane wraz z plikiem header.php, niestety tak się nie dzieje. Co jest źle?
Chciałem dodać includy w pliku funkcje.php ale wtedy dostaję błąd:

  1. <b>Notice</b>: Undefined variable: lang in <b>/***/wp-content/themes/final/header.php</b> on line <b>61</b><br />



Proszę niech mi ktoś to wytłumaczy. W razie pytań chętnie odpowiem.

Pozdrawiam i dziękuję wink.gif




[EDIT] [SOLUTION]

Już sobie poradziłem.

Wystarczyło dodać global

  1. <?php
  2.  
  3. global $lang;
  4. $lang = array(
  5.  
  6. "charset" => "utf-8",
  7.  
  8. "help" => "pomoc",
  9. "all_doctors" => "wszyscy lekarze"
  10.  
  11. );
  12.  
  13. ?>


Pozdro