issue #288 allow relative_date() to be translated into languages with more than two plural forms, such as pl.
This commit is contained in:
parent
1db3409f36
commit
d004017b01
@ -269,15 +269,16 @@ function relative_date($posted_date, $format = null) {
|
|||||||
return t('less than a second ago');
|
return t('less than a second ago');
|
||||||
}
|
}
|
||||||
|
|
||||||
$a = array( 12 * 30 * 24 * 60 * 60 => array( t('year'), t('years')),
|
$a = array( 12 * 30 * 24 * 60 * 60 => 'y',
|
||||||
30 * 24 * 60 * 60 => array( t('month'), t('months')),
|
30 * 24 * 60 * 60 => 'm',
|
||||||
7 * 24 * 60 * 60 => array( t('week'), t('weeks')),
|
7 * 24 * 60 * 60 => 'w',
|
||||||
24 * 60 * 60 => array( t('day'), t('days')),
|
24 * 60 * 60 => 'd',
|
||||||
60 * 60 => array( t('hour'), t('hours')),
|
60 * 60 => 'h',
|
||||||
60 => array( t('minute'), t('minutes')),
|
60 => 'i',
|
||||||
1 => array( t('second'), t('seconds'))
|
1 => 's'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
foreach ($a as $secs => $str) {
|
foreach ($a as $secs => $str) {
|
||||||
$d = $etime / $secs;
|
$d = $etime / $secs;
|
||||||
if ($d >= 1) {
|
if ($d >= 1) {
|
||||||
@ -285,11 +286,43 @@ function relative_date($posted_date, $format = null) {
|
|||||||
if (! $format)
|
if (! $format)
|
||||||
$format = t('%1$d %2$s ago', 'e.g. 22 hours ago, 1 minute ago');
|
$format = t('%1$d %2$s ago', 'e.g. 22 hours ago, 1 minute ago');
|
||||||
|
|
||||||
return sprintf($format, $r, (($r == 1) ? $str[0] : $str[1]));
|
return sprintf($format, $r, plural_dates($str,$r));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function plural_dates($k,$n) {
|
||||||
|
|
||||||
|
switch($k) {
|
||||||
|
case 'y':
|
||||||
|
return tt('year','years',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 'm':
|
||||||
|
return tt('month','months',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
return tt('week','weeks',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 'd':
|
||||||
|
return tt('day','days',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
return tt('hour','hours',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
return tt('minute','minutes',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
return tt('second','seconds',$n,'relative_date');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns timezone correct age in years.
|
* @brief Returns timezone correct age in years.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user