protected static function _translated($id, $count, $locale, array $options = array())
{
$params = compact('id', 'count', 'locale', 'options');
$cache =& static::$_cachedPages;
return static::_filter(__FUNCTION__, $params, function ($self, $params) use(&$cache) {
extract($params);
if (isset($options['context']) && $options['context'] !== null) {
$context = $options['context'];
$id = "{$id}|{$context}";
}
if (!isset($cache[$options['scope']][$locale])) {
$cache[$options['scope']][$locale] = Catalog::read(true, 'message', $locale, $options);
}
$page = $cache[$options['scope']][$locale];
if (!isset($page[$id])) {
return null;
}
if (!is_array($page[$id])) {
return $page[$id];
}
if (!isset($page['pluralRule']) || !is_callable($page['pluralRule'])) {
return null;
}
$key = $page['pluralRule']($count);
if (isset($page[$id][$key])) {
return $page[$id][$key];
}
});
}