Toggle navigation
Images.Elk.pl
Jak zrobić wielojęzyczny serwis w PHP
©2010 by free.xaa.pl
Autor: Dawid Panfil
Jak zrobić wielojęzyczny serwis w PHP?
Jak zrobić wielojęzyczny serwis w PHP?
Dzisiaj przedstawię w jaki sposób bardzo szybko i łatwo wykonać serwis wielojęzyczny.
Przy okazji osobiście dowiedziałem się, że ładowanie wszystkiego w klasy jest głupotą. W
tym wypadku troszkę 'luznego' kodu i kilka prostych funkcji starczyło, aby w zupełności
zadowolić moje potrzeby.
Mój skrypt oparłem na tablicach, choć niektórzy wolą oprzeć takie skrypty na stałych, dla
mnie właśnie tablice są wygodniejsze. Dlaczego? Za pomocą kilku linijek kodu mogę
zautomatyzować dodawanie nowych zmiennych do języka czy też stworzyć cały język od
podstaw w ładnym i przejrzystym formularzu. Użycie stałych jest tłumaczone ich
nieograniczonym zasięgiem w funkcjach, lecz czy aż tak trudno napisać global $l; na
początku funkcji, lub na upartego dać static przy zmiennej podczas ładowania języka?
Sądzę, że nie, a można zyskać dodatkowo sporo udogodnień.
Jak pisałem na początku nie wpakowałem języka w klasę. Dzisiaj mój kod jest taki luzny:
if($_SESSION['lang']=='' && $_GET['lang']==''){
$_SESSION['lang']=$default_lang;
}
if($_GET['lang']!=''){
$_SESSION['lang']=$_GET['lang'];
}
$path=$dir. $_SESSION['lang'].$file;
if (file_exists($path)){ include($path); }
elseif(file_exists($dir.$default_lang.$file)){ include ($dir.$default_lang.$file); }
else {
echo 'Plik z językiem nie istnieje!';
exit();
}
©2010 by free.xaa.pl
Autor: Dawid Panfil
Jak zrobić wielojęzyczny serwis w PHP?
Jeszcze potrzebujemy kilku zmiennych, umożliwiających poprawne działanie tym kilku
linijkom:
$dir='./database/'; //folder z wszystkimi plikami
$default_lang='pl'; //domyślny język
$file='/lang.php'; //nazwa pliku z zmiennymi języka
Kolejną sprawą jest umiejscowienie plików typu: zawartość stron, plik z językiem, menu
itp. Wg powyższych ustawień powinny być one umiejscowione (dla języka polskiego -
domyślnego) w folderze ./database/pl/ to rozwiązanie ma swoje plusy i minusy.
Plusem na pewno jest to, że bardzo łatwo jest wykonać kolejne języki bez integracji w
inny język (np. jeden plik zawiera zawartość dla wielu języków)
Natomiast największym minusem jest zmiana języka na jakiejś stronie. Załóżmy, że
oglądamy stronę przyklad.pl?go=o-mnie i chcemy zmienić język na angielski więc
dopisujemy do adres &lang=en i pojawia się błąd 404, bo nie istnieje w wersji
angielskiej strona o-mnie lecz istnieje strona about-me. Da się oczywiście to zniwelować
wysyłając użytkownika po zmianie języka na stronę główną, lub zapisywać np w sesji id
pod jakim znajduje się strona. Lecz musi być wtedy warunek, że elementy menu w
różnych językach są pod tym samym id.
Dobra dosyć tej trochę zagmatwanej teorii. Czas przejść do użycia. Można zrobić to na
kilka sposobów. Jeżeli w szablonie strony możesz używać PHP to wystarczy dać:
oczywiście pod warunkiem, że przetłumaczone nazwy trzymasz w tablicy $l
Drugi sposób, jeżeli korzystasz z jakiegoś parsera to jest przechwycenie zawartości całej
strony przed wyświetleniem i wykorzystanie z tej funkcji:
function parse_lang($data){
global $l;
foreach ($l as $key=>$i){
$x = array_keys($l, $i);
$data = str_replace('{'.$x[0].'}', $i,$data ) ;
}
return $data;
©2010 by free.xaa.pl
Autor: Dawid Panfil
Jak zrobić wielojęzyczny serwis w PHP?
}
Wtedy w szablonie umieszczasz samÄ… nazwÄ™ w klamrach np: {example}.
Ja osobiście wolę drugą wersję, wtedy omijam przeplatanie kodu PHP wraz z HTML i kod
dzięki temu jest czytelniejszy. Zazwyczaj nie daje konkretnych przykładów użycia, lecz
tutaj zrobię mały wyjątek: http://chomikuj.pl/free.xaa/PHP/demo/Przyk*c5*82ad+-
+wieloj*c4*99zyczno*c5*9b*c4*87,368970980.rar
Jeżeli dopiszesz sobie do tego prosty panel administratora to wyjdzie bardzo lekki i
przyjemny CMS.
Wyszukiwarka
Podobne podstrony:
Jak zrobic sciage w Wordzie(1)
Jak zrobić tła w folderach
Jak zrobic przekładane herbatniki
Jak zrobić latawiec
Jak zrobić kartonowe meble dla dziecka
Jak zrobić flash menu na chomiku
Jak zrobić pudełko z papieru
Jak zrobić eliksir miłości
Jak zrobić sałatkę grecką
Jak zrobić marszrute
Jak zrobić lasagne
Kominek JAK ZROBIC
Jak zrobić link lub przycisk
więcej podobnych podstron