Index: modules/blog/blog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/blog/blog.module,v retrieving revision 1.253 diff -u -p -r1.253 blog.module --- modules/blog/blog.module 31 Jul 2006 11:25:52 -0000 1.253 +++ modules/blog/blog.module 4 Aug 2006 01:14:31 -0000 @@ -10,7 +10,7 @@ * Implementation of hook_node_info(). */ function blog_node_info() { - return array('blog' => array('name' => t('blog entry'), 'base' => 'blog')); + return array('blog' => array('name' => t('blog entry'), 'base' => 'blog', 'singular' => '1 blog entry', 'plural' => '%count blog entries')); } /** Index: modules/book/book.module =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.module,v retrieving revision 1.376 diff -u -p -r1.376 book.module --- modules/book/book.module 31 Jul 2006 11:25:53 -0000 1.376 +++ modules/book/book.module 4 Aug 2006 01:14:32 -0000 @@ -10,7 +10,7 @@ * Implementation of hook_node_info(). */ function book_node_info() { - return array('book' => array('name' => t('book page'), 'base' => 'book')); + return array('book' => array('name' => t('book page'), 'base' => 'book', 'singular' => '1 book page', 'plural' => '%count book pages')); } /** Index: modules/forum/forum.module =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.module,v retrieving revision 1.340 diff -u -p -r1.340 forum.module --- modules/forum/forum.module 31 Jul 2006 11:25:53 -0000 1.340 +++ modules/forum/forum.module 4 Aug 2006 01:14:33 -0000 @@ -107,7 +107,7 @@ function forum_menu($may_cache) { * Implementation of hook_node_info(). */ function forum_node_info() { - return array('forum' => array('name' => t('forum topic'), 'base' => 'forum')); + return array('forum' => array('name' => t('forum topic'), 'base' => 'forum', 'singular' => '1 forum topic', 'plural' => '%count forum topics')); } /** Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.665 diff -u -p -r1.665 node.module --- modules/node/node.module 2 Aug 2006 13:44:07 -0000 1.665 +++ modules/node/node.module 4 Aug 2006 01:14:35 -0000 @@ -221,6 +221,10 @@ function _node_names($op = '', $node = N return $node_list; case 'name': return $node_list[$type]; + case 'singular': + return $node_names[$type]['singular']; + case 'plural': + return $node_names[$type]['plural']; } } @@ -241,12 +245,25 @@ function node_get_base($node) { * * @param $node * Either a node object, a node array, or a string containing the node type. + * @param $count + * May be omitted, otherwise must be a non-negative integer. * @return - * The human readable name of the node type. - */ -function node_get_name($node) { - return _node_names('name', $node); -} + * The human readable name of the node type. If $count is passed as an integer + * the translated plural form including count is returned based upon the + * plural forms declared in hook_node_info. + */ +function node_get_name($node, $count = NULL) { + if (!isset($count)) { + return _node_names('name', $node); + } + elseif (is_numeric($count) && ((int)$count >= 0)){ + return format_plural((int)$count,_node_names('singular',$node),_node_names('plural',$node)); + } + else { + return ''; + } +} + /** * Return the list of available node types. Index: modules/page/page.module =================================================================== RCS file: /cvs/drupal/drupal/modules/page/page.module,v retrieving revision 1.156 diff -u -p -r1.156 page.module --- modules/page/page.module 31 Jul 2006 11:25:54 -0000 1.156 +++ modules/page/page.module 4 Aug 2006 01:14:35 -0000 @@ -45,7 +45,7 @@ function page_perm() { * Implementation of hook_node_info(). */ function page_node_info() { - return array('page' => array('name' => t('page'), 'base' => 'page')); + return array('page' => array('name' => t('page'), 'base' => 'page', 'singular' => '1 page', 'plural' => '%count pages')); } /** Index: modules/poll/poll.module =================================================================== RCS file: /cvs/drupal/drupal/modules/poll/poll.module,v retrieving revision 1.203 diff -u -p -r1.203 poll.module --- modules/poll/poll.module 31 Jul 2006 11:25:54 -0000 1.203 +++ modules/poll/poll.module 4 Aug 2006 01:14:36 -0000 @@ -271,7 +271,7 @@ function poll_load($node) { * Implementation of hook_node_info(). */ function poll_node_info() { - return array('poll' => array('name' => t("poll"), 'base' => 'poll')); + return array('poll' => array('name' => t("poll"), 'base' => 'poll', 'singular' => '1 poll', 'plural' => '%count polls')); } function poll_page() { Index: modules/story/story.module =================================================================== RCS file: /cvs/drupal/drupal/modules/story/story.module,v retrieving revision 1.188 diff -u -p -r1.188 story.module --- modules/story/story.module 31 Jul 2006 11:25:54 -0000 1.188 +++ modules/story/story.module 4 Aug 2006 01:14:36 -0000 @@ -33,7 +33,7 @@ function story_help($section) { * Implementation of hook_node_info(). */ function story_node_info() { - return array('story' => array('name' => t('story'), 'base' => 'story')); + return array('story' => array('name' => t('story'), 'base' => 'story', 'singular' => '1 story', 'plural' => '%count stories')); } /**