I recommend using absolute paths in the $directory parameter. This caused me several hours to debug as Ajax calls to my localization functions messed up the path. And since no error if thrown if the path in $directory cannot be found, one should check the result always:<?php // Imagine the path for this file is "/localization" and your locales are in the "/locale" directory. $pathToDomain = __DIR__ . "/../locale"; if ($pathToDomain != bindtextdomain($domain, $pathToDomain)) { // Error handling. }?>