• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie widzi funkcji.

VPS Starter Arubacloud
0 głosów
188 wizyt
pytanie zadane 7 października 2017 w PHP przez Raster22 Obywatel (1,640 p.)

Cześć, mam skrypt (poniżej), który tłumaczy mi tekst. mam dwa pliki, idnex.php(skrypt z tlumaczem) i skrypt.php(select do bazy). W skrypt.php odświeża się co 5s. Za pierwszym razem widzi funkcje i ładnie wszystko działa, ale po 5s pisze " Uncaught Error: Call to undefined function translate() ". Co mogę zrobić?

function getTranslations(): array
{
    return [
        'pl-PL' => [
            'witaj' => 'Witaj',
            'wybierz_plik' => 'Wybierz plik do wczytania.',
            'historia_plikow' => 'Historia wczytanych plików ',
            'nazwa' => 'Nazwa Pliku',
            'czas_wczytania' => 'Czas wczytania pliku [s]',
            'wybierz_jezyk' => '<b>Wybierz język</b>',
            'wyslij' => 'Wyślij plik',
            'strefa' => '<b>Twoja strefa czasowa: </b>'.date("e"), 
            'jezyk' => '<b>Twoj język: </b>Polski',
        ],
        'en-US' => [
            'witaj' => 'Hello',
            'wybierz_plik' => 'Select the file to load',
            'historia_plikow' => 'History of loaded files',
            'nazwa' => 'File name',
            'czas_wczytania' => 'Time to load the file [s]',
            'wybierz_jezyk' => '<b>Choose language</b>',
            'wyslij' => 'Send a file',
            'strefa' => '<b>Your time zone: </b>'.date("e"),
            'jezyk' => '<b>Your language: </b>English',
        ],
    ];
}
 
function translate($text): string
{
    $lang = $_GET['lang'] ?? $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '';
    $translations = getTranslations();
    switch ($lang) {
        case 'pl-PL':
            return $translations['pl-PL'][$text] ?? '';
        case 'en-US':
        case 'en-GB':
        default:
            return $translations['en-US'][$text] ?? '';
    }
}
	<div id="historia">
			<?php include "select.php";?>
		</div>

 

1 odpowiedź

0 głosów
odpowiedź 7 października 2017 przez Arkadiusz Waluk Ekspert (287,550 p.)
Tak jak mówiliśmy Ci z @xandros wczoraj na IRC, przy wywołaniu przez Ajax ta funkcja po prostu jest niezdefiniowana. Być może brakuje Ci jakiegoś dołączenia pliku z tą funkcją, ciężko powiedzieć nie widząc całości.
komentarz 7 października 2017 przez Raster22 Obywatel (1,640 p.)
Jak to jest że u Ciebie mi to działało normalnie..
komentarz 7 października 2017 przez Arkadiusz Waluk Ekspert (287,550 p.)

Czyli funkcję widzi i jest w porządku. Jeśli wykrywa zły język to prawdopodobnie coś tutaj jest nie tak:

$lang = $_GET['lang'] ?? $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '';

Nie przekazujesz ręcznie parametru lang w adresie, nie może odczytać tej danej z $_SERVER lub jest to dana błędna, itd.

komentarz 7 października 2017 przez Raster22 Obywatel (1,640 p.)
Już nic nie rozumiem...
komentarz 7 października 2017 przez Raster22 Obywatel (1,640 p.)
prrr, tzn wykrywa dobry język ale po odświeżeniu diva go gubi(ajax) i zmienia na ang
komentarz 7 października 2017 przez Raster22 Obywatel (1,640 p.)
Czyli co mógłbym teraz zrobić>? a jakbym dane z buttona wysylal np do skryptu za pomoca post?

Podobne pytania

0 głosów
1 odpowiedź 535 wizyt
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 20 lipca 2018 w JavaScript przez Bish0p Obywatel (1,940 p.)
0 głosów
1 odpowiedź 335 wizyt
pytanie zadane 1 kwietnia 2018 w JavaScript przez WireNess Stary wyjadacz (11,240 p.)

92,453 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...