Autor Zpráva
Petr Janák
Profil *
Dobrý den,
chci se zeptat jak se tvoří weby, které mají na výběr více jazyků, třeba hotely pro turisty. Automaticky je tam čeština a někde navrchu máte vlaječky na další jazyky (třeba angličtina a němčina). Teď nemyslím žádný redakční systém, je to prostě ručně vytvořený web. Jak se to dělá? To uděláte komplet česky a zkopírujete to do nové složky a celé to přepisujete do druhého jazyku? Jak se to pak aktualizuje? Nebo je to napsané v každém souboru ve všech jazycích a jen ějakým dotazem se to zobrazuje buď v češtině nebo dalším jazyku?
Děkuji
panther
Profil
Petr Janák:
Jak se to pak aktualizuje?
právě nějakým redakčním systémem nejčastěji.

Jinak design jednotlivých verzí bývá často shodný, stačí tedy jedna šablona, do které se vkládají různojazyčné texty.
AM_
Profil
Jedna možnost je jak píšeš - v podstatě napsat jednu jazykovou verzi a tu pak rozkopírovat (ať už kompletně statické HTML, nebo nějaké celé části stránky skládané PHPkem). „Jak se to pak aktualizuje?“ blbě, musíš vždy kompletně aktualizovat všechny verze.

Druhá možnost je trochu složitější na napsání, ale lépe se udržuje - udělat si jedny šablony (na to ale doporučuji nějaký šablonovací systém, můžeš si vytvořit i jednoduchý vlastní např. všechny výskyty %=hello_world% nahradíš příslušným jazykovým textem nebo zapnout short open tagy s hezkou syntaxí <?=$lang['hello_world']?>.
Např.
<h1>%=title%</h1>
<p>%=welcome_article%</p>

//cs.php:
$lang = array(
  'title'=>'Ahoj světe';
  'welcome_article'=>'Toto je můj první vícejazyčný web';
);

+ jednoduchý preg_replace (nebo preg_replace_callback, jde to přes obojí, co ti bude milejší), který značky v HTML šabloně nahradí za vybraný text.

Výběr jazyků lze realizovat přes session, nebo pěknější, ale náročnější řešení je s pomocí mod_rewrite a trochy programování jazyk promítnout do url (http://example.com/cs/ http://example.com/en/)
Petr Janák
Profil *
To jsem chtěl vědět.
Moc děkuju

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: