Lokalizace PHP stránek – I.

Obecně, lokalizovat stránky lze několika způsoby. Jedním způsobem je napsat identické stránky v různých jazycích. Chtěl jsem, aby přepínání stránek do jiného jazyka bylo jednoduché a funkční v kterémkoliv místě. Nelíbí se mi stránky, které po volbě jazyka zobrazí znovu kořenovou stránku (index. html, index.php či jinou) a musí se klikat znovu. Dokonce, že stránky jsou obsahově nebo architekturou zcela jiné a poskytují svým uživatelům jinou sadu informací, v závislosti podle volby jazyka. Příklad zde.

logo-phpclasses

Zdroj: http://www.phpclasses.org/

Našel jsem stránku se sadou PHP tříd, kde jsem našel vhodnou třídu a velmi mírně ji upravil.

http://www.phpclasses.org/package/6615-PHP-Load-localization-strings-based-on-current-idiom.html

Předně, upřednostnil jsem koncept, který využívá páru klíč – hodnota, takže do stránky vložím vhodný klíč a uživatel si zobrazí již stránku, kde jsou dosazené hodnoty – slova v cizím jazyce.
V angličtině:

a v češtině….

Hlavní části je definice třídy lang.class.php. V konstruktoru třídy je kontrola, jestli je znak jazyka předáván v adrese stránky. Očekávanými parametry proměnné lang je cs en.

Pokud existuje, bude nastaven jako vlastnost language objektu mylanguage a nahraje se příslušný soubor metodou load_language(parametr). V metodě load_language(parametr) je podle hodnoty parametru složen název příslušného jazykového souboru se seznamem klíčů a hodnot.

Zdrojový kód třídy myclass:

Příklad použití:

V první části vložit do stránky třídu, vytvořit nový objekt $mylang. Tím by to mohlo skončit, ale uložení do $_SESSION['mylang'] umožní tuto uloženou proměnnou použít v dalších částek stránky, resp. kódu PHP.
Příkazem echo KLÍČ, se zobrazí u uživatele HODNOTA.

Grafické řešení lokalizace PHP stránky (frontend)

czech
english
slovak

Psal jsem, že požadavkem jsem si stanovil kdykoliv přepínat stránku z jazyka na jazyk. Stránka by měla být tedy od počátku tvorby psaná jako lokalizovatelná. A někde na stránce by měl být vyřešen způsob, jak přepínat mezi jazyky. Zvolil jsem grafickou podobu – obrázky vlaječek, jako symbol jazyku. No a jazyky češtinu a angličtinu, možná přiložím slovenčinu.

Až přesvědčím synka, aby mi přeložil připravené řetězce do němčiny, bude i němčina… 😉

german

Pracovní HTML kod, který je nutné dále upravit pro funkční lokalizaci, vypadá takto:

Napsal jsem dva soubory lang-cs.php a lang-sn.php s obsahem:

Lokalizace je téměř funkční. Protože není nastaven jazyk v adrese, použije se ten, co je nastaven jako defaultní – angličtina. Všechny řetezce (NAME, SUBMIT) se zamění za řetezce ze souboru lang-en.php.

V prohlížeči se zobrazí stránka:

Pro zvětšení klikněte

Pro připomenutí, vzhled stránky (CSS) není nijak nastaven.

Ke stažení zde.