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
apt-get install php5-dev cd /usr/include/php5/ext wget http://support.edokumenty.eu/trac/raw-attachment/wiki/DeployerGuide/Others/Localization/bsedt-src.zip unzip bsedt-src.zip cd bsedt phpize ./configure make make install echo "extension=bsedt.so" > /etc/php5/mods-available/bsedt.ini ln -s /etc/php5/mods-available/bsedt.ini /etc/php5/apache2/conf.d/bsedt.ini ln -s /etc/php5/mods-available/bsedt.ini /etc/php5/cli/conf.d/bsedt.ini
W pliku php.ini tworzymy sekcję :
[bsedt] bsedt.lang_path="/home/edokumenty/public_html/apps/edokumenty/share/lang" bsedt.lang=en_UK
Restart apache:
service apache2 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 restart
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.
To compile mo file just simply execute this command.
msgfmt -o pl_PL.mo pl_PL.po