co do formatu zapisu to może być tak jak przedstawił @muk4, tablica jest po prostu łatwiejsza w użyciu niż takie stałe i łatwiejsza w edycji gdybyś chciał to edytować z panelu lub też oddzielny plik dla każdego języku np. pl.txt, en.txt, du.txt itp. a w niej tablica:
(
'contact'=>'kontakt',
'hello user'=> 'witaj użytkowniku '
)
co do reszty to możesz sprawdzać przy pomocy $_SERVER[''HTTP_ACCEPT_LANGUAGE'] - domyślny język przeglądarki, żeby od razu ustawić en, du lub pl dla użytkownika, ponadto jeżeli user dokona zmiany język możesz zapisać to u niego w ciastkach, tak więc przy odwiedzinach użytkownika sprawdzasz czy jest ustawiona zmienna sesyjna np. $_SESSION['default_lang']; jeżeli tak to ładujesz taki język, jak nie to sprawdzasz czy istnieje ciastko np. $_COOKIE['default_lang'] jeżeli tak to ładujesz taki plik językowy jaki sobie user ustawił i ustawiasz w sesji, jeżeli nie ma ciastka to sprawdzasz $_SERVER[''HTTP_ACCEPT_LANGUAGE'] aby pokazać mu język taki jaką ma przeglądarkę i ustawiasz w sesji, a jak tego też nie ma to ładujesz domyślnie pl i wrzucasz go do sesji, tak abyś nie sprawdzał tego wszystkiego przy każdym przeładowaniu tylko za pierwszym razem