1a) Проверьте с помощью "locale -a", существует ли локаль на вашем веб-сервере.
1b) Без оболочки попробуйте этот код, если вы можете установить локаль
echo setlocale(LC_ALL, 0); // read the current locale
setlocale(LC_ALL, "fa"); // try to write your locale
echo setlocale(LC_ALL, 0); // check if your was accepted
2a) Еслиязыковой стандарт отсутствует, добавьте его, например, с помощью «apt-get install locales».
2b) Если у вас нет прав root, используйте https://launchpad.net/php-gettext в качестве замены.
<?php
$locale = "fa";
// Define location and domain of translations
$directory = realpath('./') .'/translations/LOCALES';
$domain = 'php-addressbook';
$default_locale = $locale;
$supported_locales = array($locale);
// Prepare "php-gettext"
require_once('gettext/gettext.inc');
// Prepare "native gettext" setup
T_setlocale(LC_ALL, $locale);
T_bindtextdomain($domain, $directory);
T_textdomain($domain);
T_bind_textdomain_codeset($domain, 'UTF-8');
echo T_gettext('ADDRESS');
if (!locale_emulation()) {
print "<p>locale '$locale' is supported by your system, using native gettext implementation.</p>\n";
}
else {
print "<p>locale '$locale' is _not_ supported on your system, using the default locale '". $default_locale ."'.</p>\n";
}
?>