次の例は、Mac OS X と Apache で動作します。つまり、翻訳された文字列がエコー バックされます。しかし、lighttpd を使用した Ubuntu では、元のテキスト「非アクティブ アカウント」が表示されます。環境変数のあらゆる種類の組み合わせを試してみましたが、うまくいきませんでした。.mo ファイルの内容をエコーアウトできるため、ファイルのアクセス許可でもありません。
<?php
//$locale = 'sv_SE.UTF-8';
$locale = 'sv_SE';
$dir = dirname(__FILE__);
// File permission is apparantly not a problem as this works...
//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL=$locale");
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
setlocale(LC_MESSAGES, $locale);
//setlocale(LANG, $locale);
//setlocale(LANGUAGE, $locale);
bindtextdomain('flattr', $dir);
//bind_textdomain_codeset("flattr", 'UTF-8');
textdomain('flattr');
echo _("Inactive account");
?>
誰にもアイデアはありますか?