Skocz do zawartości

dwa języki na stronie


cachaito

Rekomendowane odpowiedzi

Witam wszystkich!

Na wstępie zaznaczam, że szukałem dużo w temacie. Znajdowałem wywody jakiego sposobu wielojęzyczności na stronie użyć, albo były przykłady z użyciem jakichś tablic. Ja chciałbym ugryźć to inaczej (jeśli dobrze zrozumiałem podczas moich poszukiwań, jest to sposób oparty o sesje), ale z PHP się nie znamy zbyt dobrze :-/

Otóż bardzo chciałbym na stronie aby były dwa języki. Powiedzmy, że mam plik index.php i na nim wybór języka "pl" lub "en". Jeśli ktoś wybierze "en" chciałbym aby wszystkie includy na tej i innych podstronach zasysały pliki z katalogu english a jak wybiorę dla kaprysu wersję "pl", wszystkie includy wczytują się z katalogu polish.

Super by było, gdyby strona sama rozpoznawała lokalizację użytkownika i dobierała język - ale to już pikuś.

Jest ważniejszy problem: w index.php mam takie coś:

<?php
if(isset($_GET['start'])){
include('polish/start.html');
}else if(isset($_GET['nauka'])){
include('polish/nauka.html');
}else if(isset($_GET['kursy'])){
include('polish/kursy.html');			   
}else{
include('polish/start.html');
}
?>

Po wybraniu języka "en", to także musi się zmieniać:

<?php
if(isset($_GET['start'])){
include('english/start.html');
}else if(isset($_GET['learning'])){
include('english/learning.html');
}else if(isset($_GET['courses'])){
include('english/courses.html');			   
}else{
include('english/start.html');
}
?>

Z góry bardzo dziękuję za pomoc, i mam nadzieję, że wątek pomoże innym użytkownikom bowiem ciężko znaleźć jakiś dobry tutorial w tym temacie.

cachaito - - - - - - - - - - - - - - - - - - - - -

- - - - - - www.cachaito.strefa.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Witam wszystkich!

Otóż bardzo chciałbym na stronie aby były dwa języki.

Zainteresuj się:

Instrukcja warunkową: https://php.net/manual/en/control-structures.switch.php

Obsługą sesji: https://www.php.net/manual/pl/book.session.php

Choć w tym wypadku lepiej dać informacje w adresie jaka jest wersja językowa wiec GET

/pl/kursy.html

/en/kursy.html

lub kursy.html, learning.html i tablica https://www.php.net/manual/en/language.types.array.php klucz=>wartosc określająca jaki plik ma być includowanu.

... więc zmienne środowiska: https://php.net/manual/en/reserved.variables.php

$_GET , $_SERVER , 'HTTP_ACCEPT_LANGUAGE'

ITD.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Super by było, gdyby strona sama rozpoznawała lokalizację użytkownika i dobierała język - ale to już pikuś.

Jak dla mnie to koszmarny pomysł a szczególnie jak nie bedzie można zmienić języka , bo czasami pojawiają się takie potworki

Co do strony wielojęzykowej to robienie tego z głowa, na forum temat był poruszany wielokrotnie,

Twoja metoda wydaje się przekombinowana , zapewniam Cię że jezeli to nie bedzie martwa strona tylko taka co żyje to z czasem bedziesz przeklinał tą koncepcję albo ten co będzie poprawiał po Tobie.

Najprościej to zrobić dwie strony w dwóch katalogach/domnach i nie mieszać PHP do tego

Odnośnik do komentarza
Udostępnij na innych stronach

Nie łatwiej zrobić całą stronę w PL a potem to samo w ANG? nazwastrony/pl nazwastrony/ang

W topie strony byłyby odnośniki do zmiany języka. W folderze /pl byłyby pliki pl a w ang- ang ;)

Jeżeli to strona statyczna, natomiast jeżeli to jakiś rozbudowany portal to już nie wiem.

Odnośnik do komentarza
Udostępnij na innych stronach

Kede chyba tak w końcu zrobię jak radzisz. Dwie odrębne strony. Z tego co czytałem lepiej wygląda to przy pozycjonowaniu, choć to akurat tak bardzo mnie nie interesuje. Chciałbym jednak zrobić to z głową. Czy myślicie, aby wprowadzić system oparty o strukturę:

index.php

[katalog "en"] treść include w języku angielskim

[katalog "pl"] to samo tylko po polsku

[kalaog css]

[katalog img]

[katalog js]

Tylko przy takim układzie mam pytanie: jeśli z index.php wybiorę język en to do czego będzie on prowadził? Do index_en.php w katalogu "en"?

Jak uważacie?

cachaito - - - - - - - - - - - - - - - - - - - - -

- - - - - - www.cachaito.strefa.pl

Odnośnik do komentarza
Udostępnij na innych stronach

[ SERWIS WIELOJĘZYCZNY INDEX ] -> czyli strona główna Wybierz język dwie flagi

[pl] -> wielojezyczny.pl/pl/

[en] -> wielojezyczny.pl/en/

lub subdomeny

[pl] -> pl.wielojezyczny.pl/

[en] -> en.wielojezyczny.pl/

itd

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Wrócę jeszcze do pomysłu z dynamiczną podmianą języka na stronie index.php

Znalazłem coś takiego:

<?php			
if ( $_GET['lang'] == "en" ) {
include "en/menu_en.html";
}
else 
{
  include "pl/menu_pl.html";
}
?>

i działa :-)

Tylko jest jeden mały szkopuł: jak się wchodzi na stronę, jest błąd, dopóki nie wybiorę języka. Potem wszystko śmiga...

Jak zrobić, aby domyślnie zawsze się wgrywał język pl, a dopiero po naciśnięciu [en] zmieniał się include?

cachaito - - - - - - - - - - - - - - - - - - - - -

- - - - - - www.cachaito.strefa.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Kod jaki masz działa dokładnie tak jak chcesz - jeśli wartość zmiennej GET lang jest różna od en wykonywana jest instrukcja z bloku

else

{

include "pl/menu_pl.html";

}

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Kod jaki masz działa dokładnie tak jak chcesz - jeśli wartość zmiennej GET lang jest różna od en wykonywana jest instrukcja z bloku

else

{

include "pl/menu_pl.html";

}

Tak, wszystko działa ale jak zamknę przeglądarkę i ponowie ją otworzę, na stronie pojawiają się błędy typu: "Notice: Undefined index: lang" w miejscach gdzie powinny być includy :-(

cachaito - - - - - - - - - - - - - - - - - - - - -

- - - - - - www.cachaito.strefa.pl

Odnośnik do komentarza
Udostępnij na innych stronach

To się zgadza, bo masz tak ustawiony poziom raportowania błędów.

if (isset($_GET['lang']) && $_GET['lang'] == "en" ) {

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności