Judging this note, you are most likely missing UTF-8 bits. Those helped me with problem of “Gettext not working”.
$directory = dirname(__FILE__).'/locale';
$domain = 'mydomain';
$locale ="fi_FI.utf8";
//putenv("LANG=".$locale); //not needed for my tests, but people say it's useful for windows
setlocale( LC_MESSAGES, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
Inside locale, there should be file structure of
./locale/pt/LC_MESSAGES/mydomain.mo
or similar.
Important: If the mo file is already read by Apache, it needs be restarted so that it can read the new file. In other words, there is some kind of caching system I don’t know about still.