не может заставить локаль работать на Linux - PullRequest
1 голос
/ 06 мая 2011

Я пишу приложение PHP и использую модуль gettext для перевода на разные языки.

Код работает так, как я ожидаю, на моем локальном компьютере (в Windows работает WAMP), но я не могу его сделатьработа на сервере (Unix + apache2)

{
        $locale_folder = dirname(dirname(dirname(__FILE__))).'/locale/';
        $locale = 'he_IL';


        $domain = 'myapp';
        $autoreload = true;

        // activate the locale setting
        setlocale(LC_ALL, $locale);
        setlocale(LC_TIME, $locale);

        putenv("LANG=$locale");
        putenv("LANGUAGE=$locale");
        putenv("LC_ALL=$locale");
        putenv("LC_MESSAGES=$locale");

        if ($autoreload) {
            // path to the .MO file that we should monitor
            $filename = "$locale_folder/$locale/LC_MESSAGES/$domain.mo";
            $mtime = filemtime($filename); // check its modification time
            // our new unique .MO file
            $filename_new = "$locale_folder/$locale/LC_MESSAGES/{$domain}_{$mtime}.mo"; 

            if (!file_exists($filename_new)) {  // check if we have created it before
                  // if not, create it now, by copying the original
                  copy($filename,$filename_new);
            }

            // compute the new domain name
            $domain_new = "{$domain}_{$mtime}";
        } else {
                $domain_new = $domain;
        }

        // bind it
        bindtextdomain($domain_new,$locale_folder);
        // then activate it
        textdomain($domain_new);

        bind_textdomain_codeset($domain_new, "UTF-8");
}

Я ранее запускал "sudo locale-get he_IL" и "sudo locale-get he_IL.UTF-8", чтобы установить языковой компонент.

Перевод работает на локальном (Windows) компьютере, но отображает исходные строки (не переведенные) на сервере ...

Нужно ли что-либо настраивать?

1 Ответ

2 голосов
/ 17 мая 2011

Попробуйте запустить локаль -a на вашем Linux-компьютере, чтобы проверить, правильно ли установлена ​​локаль

...