Autor Zpráva
hanus
Profil
Ahoj, pouzivam na webe 2 rozne jazykove verzie: EN a SK

<a href="index.php/en" title="English language">EN</a> |
<a href="index.php/sk" title="Slovenský jazyk">SK</a>

Ked som napr. na /index.php/en/login, tak potrebujemto, ze ked kliknem na EN alebo SK, tak stale ostanem na stranke login, len adresa bude /index.php/sk/login, skusal som rozne php skripty, no neviem to spravit.
shaggy
Profil
hanus:
skusal som rozne php skripty
To by ma zaujímalo, aké si škúšal ;-) Pretože je to triviálna vec a skôr ako s programátorskými skúsenosťami súvisí s logickým myslením.

Keby si sa zamyslel, tak:
1. by si pochopil, že máš dva odkazy na jazykové verzie, ktoré majú vždy odkazovať na tú istú stránku, kde si, iba v inej jazykovej mutácií. Čiže napríklad:
<a href="index.php/en/kontakt" title="English language">EN</a> |
<a href="index.php/sk/kontakt" title="Slovenský jazyk">SK</a>

2. všimol by si si, že sa mení vždy len určitá časť adresy:
index.php/sk
index.php/sk/kontakt
index.php/sk/login

3. z toho by si mohol logicky odvodiť, že potrebuješ vždy iba url friendly názov konkrétnej stránky. A keďže podľa url zobrazuješ nejaký obsah, tak predpokladám, že url friendly názov tej stránky máš v nejakej premennej.

4. predpokladajme, že sa tá premenná volá napr. $page_url, preto by malo stačiť:
<a href="index.php/en/<?php echo $page_url; ?> " title="English language">EN</a> |
<a href="index.php/sk/<?php echo $page_url; ?>" title="Slovenský jazyk">SK</a>

Samozrejme je to veľmi jednoduchý príklad, ktorý by sa dal ešte zdokonaliť drobnými vychytávkami.
Predpokladám, že nepoužívaš žiadne CMS, ktoré by ti tie adresy generovalo. A tiež predpokladám, že url konkrétnej stránky je rovnaká pre všetky jazykové verzie (okrem identifikátora jazyka). Ak by si potreboval odlišné url pre jednotlivé krajiny, napr. /sk/kontakt a /en/contact, tak môžeš použiť napr. pole, kde budeš mať uložené jednotlivé jazykové mutácie.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0