我需要在我的网站中实现这个功能,但是我的语言需要更多的修改,因为它不是英语,只为复数添加/ s。所以,这是:
Plural form:
години
месеци
седмици
дни
часа
минути
секунди
Non plural form:
година
месец
седмица
ден
час
минута
секунда
那么,我如何在下面的humanTiming
函数中进行更改?
$time = strtotime('2014-09-22 00:00:00');
echo 'Сървъра стартира преди '.humanTiming($time).'';
function humanTiming ($time)
{
$time = time() - $time; // to get the time since that moment
// Non plural forms
$tokens = array (
31536000 => 'година',
2592000 => 'месец',
604800 => 'седмица',
86400 => 'ден',
3600 => 'час',
60 => 'минута',
1 => 'секунда'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
答案 0 :(得分:0)
输入令牌变量值的数组,如下所示:
...
31536000 => array('година', 'години'), // singular, plural1, plural2?...
...
在for循环中,根据您的数字选择适当的值:
$text = $numberOfUnits > 1 ? $text[1] : $text[0];
return $numberOfUnits . ' ' . $text;
如果你正在使用某种gettext
实现,它很可能带有一个处理这类事情的函数。例如,gettext PHP扩展具有ngettext()