Относительное время с GetText - PullRequest
0 голосов
/ 01 апреля 2012

Я работаю над мультиязычным приложением с php5 и gettext.

Правильно, я хотел бы показать относительное время, но у меня есть некоторые проблемы с ним, сохраняя мультиязычность.

Я попытался найти решение для Google, но не смог найти правильный способ сделать это и не смог заставить изменения работать самостоятельно.

Надеюсь, у вас есть решение для этого.

Ответы [ 2 ]

0 голосов
/ 26 октября 2012

Если вы согласны с использованием реализации на стороне клиента, вы можете проверить http://timeago.yarp.com/ Он снимает нагрузку на стороне сервера, предоставляет лучшие варианты для кэширования и имеет многоязычную поддержку.

0 голосов
/ 04 апреля 2012
<?php

function getRelativeTime($date) {
    $diff = time() - strtotime($date);
    if ($diff<60)
        return strtr(ngettext("vor einer Sekunde", "vor %time% Sekunden", $diff), array("%time%" => $diff));
    $diff = round($diff/60);
    if ($diff<60)
        return strtr(ngettext("vor einer Minute", "vor %time% Minuten", $diff), array("%time%" => $diff));
    $diff = round($diff/60);
    if ($diff<24)
        return strtr(ngettext("vor einer Stunde", "vor %time% Stunden", $diff), array("%time%" => $diff));
    $diff = round($diff/24);
    if ($diff<7)
        return strtr(ngettext("vor einem Tag", "vor %time% Tagen", $diff), array("%time%" => $diff));
    $diff = round($diff/7);
    if ($diff<4)
        return strtr(ngettext("vor einer Woche", "vor %time% Wochen", $diff), array("%time%" => $diff));
    $diff = round($diff/4);
    if ($diff<12)
        return strtr(ngettext("vor einem Monat", "vor %time% Monaten", $diff), array("%time%" => $diff));
    return strtr(_("am %date% um %time%"), array("%time%" => strftime('%X', strtotime($date)),
                                                 "%date%" => strftime('%x', strtotime($date))
                                                 ));
}

?>

Это мое решение.

...