Do katalogu rozszerzen php np. C:/ProgramFiles/PHP/ext kopiujemy skompilowany moduł pobrany z załączników poniżej - jest to plik php_bsedt.dll
Dodajemy opcje do pliku konfiguracyjnego PHP php.ini,
extension=php_bsedt.dll [bsedt] bsedt.lang_path="C:\Program Files\BetaSoft\eDokumenty\public_html\apps\edokumenty\share\lang" bsedt.lang=en_UK
restartujemy apache (w konsoli httpd -k restart) i gotowe.
Na Linux musimy pierwsze skompilować nową bibliotekę do PHP. W tym celu należy wyposażyć w system w narzędzia developerskie php oraz ściągnąć źródła z załączonego pliku. Wymagane pakiety developerskie: gcc, glibc-devel, php-devel(php5-dev dla debiana).
Debian
cd /usr/include/php5/ext svn co https://localhost:444/svn/repos/edokumenty/src/translator mv translator bsedt cd bsedt phpize ./configure make make install
Po tych operacjach powinien pojawić się plik /etc/php5/conf.d/bsedt.ini z zawartością:
extension=bsedt.so
W pliku php.ini tworzymy sekcję :
[bsedt] bsedt.lang_path="/home/edokumenty/public_html/apps/edokumenty/share/lang" bsedt.lang=en_UK
Restart apache:
apache2 -k restart
Od tego momentu mozemy w ustawieniach zmienić język aplikacji.
System może działać w wielu językach. Jeżeli chcemy np. język angielski oraz niemiecki to trzeba to odpowiednio zadeklarować w php.ini:
bsedt.lang="en_UK,de_DE"
w lokalizacji bsedt.lang_path należy umieścić pliki z przygotowanym tłumaczeniem (en_UK.mo, de_DE.mo).
Każda zmiana pliku *.mo na serwerze w przypadku gdy uzupełniamy tłumaczenie musi zostać zakończona restartem apache
/etc/init.d/apache2 graceful
Do przygotowania pliku *.mo pod systemem Windows możemy użyć aplikacji POedit. Program można pobrać z tej lokalizacji.
Translations are stored in .mo files in /var/lang catalogue in projects tree. These files are parsed according to configuration option bsedt.lang. Access to strings are implemented by Transaltor::translate($string, $activelanguage). This is passed to PHP_MODULE bsedt that looks for these strings in files that are stored in phisical memory by apache. That solution allows to extremely fast translations, enhancing the performance of application.