![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw powiem, jak jest zbudowana strona. Mam plik index.php, który korzysta z switch do przełączania między pl.php a eng.php. Domyślnie jest polski język. Obie strony zawierają swoje podstrony, które są po prostu kopiami z przetłumaczoną treścią. Są one ulokowane w katalogach /pages i /pages/eng. Korzystam także z .htaccess do uzyskiwania krótszych adresów. Problemem jest to, że jak włączę język angielski, to pojawia się strona startowa w tym języku i to jest poprawne. Ale gdy kliknę na którąś z pozycji menu, to ładuje się strona startowa w języku polskim, reszta witryny tak samo - jakbym ustawiał na język polski.
Kody: index.php
CODE RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{DOCUMENT_ROOT}/pages/elektronika/$1.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/wn/$1.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/kriogenika/$1.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/$1.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/eng/electronic/$2.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/eng/hv/$1.php -f [OR] RewriteCond %{DOCUMENT_ROOT}/pages/eng/cryogenic/$1.php -f [OR] ewriteCond %{DOCUMENT_ROOT}/pages/eng/$1.php -f RewriteRule ^([a-z0-9-]+)$ /index.php?id=$1 [NC] Język przełączam za pomocą odnośników z href="pl" i href="eng". Zmiana języka działała dobrze, dopóki nie dodałem .htacess, więc podejrzewam go jako winowajcę. Ten post edytował Tonic 17.03.2008, 15:15:56 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
moze to nie jest rozwiazanie twojego problemu. Ale ja kożystam z sesji. Ustawiam sobie sesje z nazwa języka a dla zarejestrowanego usera wrzucam info o jezyku w bazie. I huczy aż miło:) Może spróbujesz tak jak ja Ci mówie
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
moze to nie jest rozwiazanie twojego problemu. Ale ja kożystam z sesji. Ustawiam sobie sesje z nazwa języka a dla zarejestrowanego usera wrzucam info o jezyku w bazie. I huczy aż miło:) Może spróbujesz tak jak ja Ci mówie Musiałbym się dużo podszkolić w sesjach - PHP to dla mnie czarna magia, niestety. Dziękuję, ale mnie to na obecną chwilę przerasta. Dalej kombinuję i szukam odpowiedzi w internecie, ale bez żadnego rezultatu. Jednak zauważyłem coś dziwnego - jeśli dam regułkę : Kod RewriteRule ^angielski/([a-z0-9-]+)$ /eng.php?id=$1 [L,NC] Według niej wpisany adres zawierający słowo 'angielski' i nazwę podstrony o dowolnym układzie liter i cyfr oraz myślników będąca jednocześnie zmienną, zostanie przekonwertowany na adres, według którego serwer ma załadować odpowiednią stronę. Jeśli wpiszę pełny adres (czyli eng.php?id=nazwa_podstrony), działa dobrze. Natomiast, jak wpiszę skrócony, to strona ładuje się, ale bez CSS - mam wrażenie, że serwer myśli, że plik pl.php z podaną ścieżką do CSS jest w podkatalogu 'angielski'. Pytanie - dlaczego ręczne wpisanie ładuje stronę z CSS, a przekonwertowany adres nie? Pomimo tego, że z reguły wynika, że adresy są takie same? (angielski/nazwa_podstrony => eng.php/?id=nazwa_podstrony) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 4 Dołączył: 1.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
a może cookies?
-------------------- 9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..." |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 31.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
a może cookies? Jeśli znasz tutorial dla PHP'owych ignorantów, który opisuje jak wykorzystać ciasteczka do zapamiętywania języka strony i poprawnie działające z mod_rewrite oraz odnośnikami w postaci "nazwa_podstrony" (ta nazwa jest konwertowana przez skrypt do ładowania podstrony, kod tutaj), to jak najbardziej :-) EDIT: Jednak mi się wydaje, że wystarczy rozwiązać problem z mod_rewrite opisany post wcześniej - chciałbym, żeby rozwiązanie mojego problemu z dwujęzycznością było proste - bo naprawdę jestem zielony w PHP. Ten post edytował Tonic 20.03.2008, 00:01:48 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 15:04 |