Autor Zpráva
dhead
Profil *
Zdravím, nejsem programátor, jenom kodér - brigádník, čili amatér...

Právě řeším takový menší problém, potřebuju na webu, který je ve více jazykových variantách zobrazovat krátký úsek textu ve více jazycích - podle toho, v jaké mutaci se návštěvník nachází. Napadlo mě řešení, které by nejprve otestovalo, zda li v url existuje řetězec (nazývám to vůbec správně řetězcem? :-) ) "/en/" nebo "/de/" a podle toho bych věděl, jestli mám ten krátký úsek textu vypsat česky nebo německy nebo anglicky apod. Problém je, že neumím php ani trochu, vůbec nevím, jak to poskládat. Byl by někdo ochotný mi s tímhle pomoci? Pokud bych to měl nějak připraven/ukázaný, určitě bych si pak už poradil a dosadil tam to, co potřebuju... ještě bych měl doplňující dotaz, jestli to třeba nemůže nějak zpomalovat chod webu, jestli to nemůže být třeba příliš náročné..

Díky moc za jakoukoliv pomoc.
Enko
Profil *
Pro url adresu například: http://www.adresa.cz/index.php?lang=en platí toto
<?php
if($_GET["lang"] == "en"){
//presmerujes na anglickou veryi
}
?>
Když to napíšu velice stručně.
dhead
Profil *
jasny jasny, to bych pochopil... a co když mám adresu fakt v pěkny tvaru abc.cz/en/cokoliv ... lze to udělat jinak než přes nějaký cykly testovací? :)


A díky za reakci mimochodem ;)
Enko
Profil *
Pokud máš "hezkou" URL, tak pak to je stejné, jen vycházíš z nastavení ModRewrite, podle způsobu, kterým generuje hezkou URL. Dej sem konkrétní příklad. Stačí konkrétní kus z .htaccessu, který generuje hezké adresy. Ale je to pořád stejný princip, většinou se jen schovávají GET proměnné a veškeré ostatní znaky s výjimkou lomítek. Bavím se v obecné rovině, možností je víc.
Kubo2
Profil
Trošku konkrétnejšie:
<?php

/**
 * Zobrazí určený text podľa jazykovej skratky obsiahnutej v URL.
 *
 * @author Kubo2
*/

$cur_uri = isset ($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : '';
$lang = false;

if (strlen(trim($cur_uri, '/')) === 0)
    $lang = 'cs'; // východzí jazyk je čeština

if (!$lang && (preg_match("/^\/(en|cs|sk|de|bhg)\/[^\/]+\/$/i", $cur_uri, $m)) === 0) // máš k dispozícii 5 jazykov
    $lang = $m[1];

switch ($lang) {
case 'sk':
echo "slovenský text";
break;

case 'en':
echo "the english text";
break;

case 'de':
echo "deutsch text";
break;

case 'bhg':
echo "bulgarsky text";
break;

default:
case 'cs':
echo "český text";
break;
}
?>
Verím, že po prečítaní komentárov (oranžových textov za //) sa v tom zorientuješ.

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: