setlocale (LC_ALL, 'it_IT'); установлены, но все еще даты на английском языке

У меня есть этот код, который через json_decode извлекает мои последние твиты, их дату и т. д.

<?php setlocale(LC_ALL, 'it_IT'); ?>
<?php include("twitter_auth.php");
echo "<ul style='color:#6E6E6E'>";
foreach ($twitter_data as $tweet)
{
    if (!empty($tweet)) {
        $text = $tweet->text;
        $text_in_tooltip = str_replace('"', '', $text); // replace " to avoid conflicts with title="" opening tags
        $id = $tweet->id;
        $time = strftime('%d %B', strtotime($tweet->created_at));
        $username = $tweet->user->name;
    }
    echo '<li><span title="'; echo $text_in_tooltip; echo '">'; echo $text . "</span><br>
        <a href=\"http://twitter.com/"; echo $username ; echo '/status/'; echo $id ; echo '"><small>'; echo $time; echo '</small></a> - 
        <a href="http://twitter.com/intent/tweet?in_reply_to='; echo $id; echo '"><small>rispondi</small></a> - 
        <a href="http://twitter.com/intent/retweet?tweet_id='; echo $id; echo '"><small>retweet</small></a> - 
        <a href="http://twitter.com/intent/favorite?tweet_id='; echo $id; echo '"><small>preferito</small></a></li>';
}

echo '</ul>';
?>

Проблема в том, что $time выводит что-то вроде «03 февраля», хотя есть setlocale(LC_ALL, 'it_IT');. В чем ошибка? Как я могу вывести даты на итальянском языке? Система: PHP 5.4.11 и nginx (на сервере Ubuntu).

EDIT: я также запустил dpkg-reconfigure locales:

Generating locales...
  en_US.UTF-8... up-to-date
  it_IT.UTF-8... up-to-date
Generation complete.

person MultiformeIngegno    schedule 06.02.2013    source источник
comment
Это должно работать: см. php.net/manual/en/ function.strftime.php. Но далее в документации говорится, что не все спецификаторы преобразования могут поддерживаться вашей библиотекой C, и в этом случае они не будут поддерживаться PHP strftime().   -  person paulsm4    schedule 06.02.2013
comment
Эм.. так? Что я должен делать? Должен ли я попробовать изменить «%d %B» на что-то другое? В любом случае странно, что они не поддерживаются... они довольно простые!   -  person MultiformeIngegno    schedule 06.02.2013


Ответы (1)


Как бы глупо это ни звучало, я решил изменить строку на:

<?php setlocale(LC_ALL, 'it_IT.UTF-8'); ?> 
person MultiformeIngegno    schedule 06.02.2013
comment
да, ждать 2 дня. :) - person MultiformeIngegno; 07.02.2013
comment
После 2 часов поиска в Интернете я, наконец, хотел сдаться, а затем я нажал на ссылку, которая привела меня сюда, и когда я увидел ваш ответ @MultiformeIngegno, он просто щелкнул. Я пробовал все, но забыл написать «-» между UTF и 8. Когда я увидел ваш ответ, я просто понял, что - поможет. И я сделал. Спасибо большое. - person Mr. Sam; 08.07.2014
comment
Гораздо лучше использовать замену строк во всех представлениях. Спасибо! - person Kadaiser; 28.09.2018
comment
Странно, но у меня не работает - person Vipul Hadiya; 04.05.2021