From c04ace54359270656d9283c13eec10348d64bd63 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Sat, 8 Oct 2011 14:13:17 +0000 Subject: [PATCH] Part of bug 31503 - Allow gender distinction also for user groups --- includes/Preferences.php | 2 +- includes/User.php | 5 +++-- includes/specials/SpecialActiveusers.php | 2 +- includes/specials/SpecialListusers.php | 9 +++------ includes/specials/SpecialUserrights.php | 10 +++++----- languages/messages/MessagesEn.php | 12 ++++++------ 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/includes/Preferences.php b/includes/Preferences.php index 0fc908a1b3..ad8e82caa9 100644 --- a/includes/Preferences.php +++ b/includes/Preferences.php @@ -159,7 +159,7 @@ class Preferences { $groupName = User::getGroupName( $ueg ); $userGroups[] = User::makeGroupLinkHTML( $ueg, $groupName ); - $memberName = User::getGroupMember( $ueg ); + $memberName = User::getGroupMember( $ueg, $user->getName() ); $userMembers[] = User::makeGroupLinkHTML( $ueg, $memberName ); } asort( $userGroups ); diff --git a/includes/User.php b/includes/User.php index ef724c4d2d..455c99018a 100644 --- a/includes/User.php +++ b/includes/User.php @@ -3562,10 +3562,11 @@ class User { * Get the localized descriptive name for a member of a group, if it exists * * @param $group String Internal group name + * @param $username String Username for gender (since 1.19) * @return String Localized name for group member */ - public static function getGroupMember( $group ) { - $msg = wfMessage( "group-$group-member" ); + public static function getGroupMember( $group, $username = '#' ) { + $msg = wfMessage( "group-$group-member", $username ); return $msg->isBlank() ? $group : $msg->text(); } diff --git a/includes/specials/SpecialActiveusers.php b/includes/specials/SpecialActiveusers.php index ee2fd4c8cd..7e337306b5 100644 --- a/includes/specials/SpecialActiveusers.php +++ b/includes/specials/SpecialActiveusers.php @@ -124,7 +124,7 @@ class ActiveUsersPager extends UsersPager { if ( isset( $this->groups[$group] ) ) { return; } - $list[] = self::buildGroupLink( $group ); + $list[] = self::buildGroupLink( $group, $userName ); } $groups = $this->getLang()->commaList( $list ); diff --git a/includes/specials/SpecialListusers.php b/includes/specials/SpecialListusers.php index 44c0a07137..672ac5bce8 100644 --- a/includes/specials/SpecialListusers.php +++ b/includes/specials/SpecialListusers.php @@ -135,7 +135,7 @@ class UsersPager extends AlphabeticPager { if( count( $groups_list ) > 0 ) { $list = array(); foreach( $groups_list as $group ) - $list[] = self::buildGroupLink( $group ); + $list[] = self::buildGroupLink( $group, $userPage->getText() ); $groups = $this->getLang()->commaList( $list ); } else { $groups = ''; @@ -263,11 +263,8 @@ class UsersPager extends AlphabeticPager { * @param $group String: group name * @return string */ - protected static function buildGroupLink( $group ) { - static $cache = array(); - if( !isset( $cache[$group] ) ) - $cache[$group] = User::makeGroupLinkHtml( $group, htmlspecialchars( User::getGroupMember( $group ) ) ); - return $cache[$group]; + protected static function buildGroupLink( $group, $username ) { + return User::makeGroupLinkHtml( $group, htmlspecialchars( User::getGroupMember( $group, $username ) ) ); } } diff --git a/includes/specials/SpecialUserrights.php b/includes/specials/SpecialUserrights.php index 8a2fb02d5b..aeee554610 100644 --- a/includes/specials/SpecialUserrights.php +++ b/includes/specials/SpecialUserrights.php @@ -450,7 +450,7 @@ class UserrightsPage extends SpecialPage { wfMessage( 'editinguser' )->params( wfEscapeWikiText( $user->getName() ) )->rawParams( $userToolLinks )->parse() . wfMsgExt( 'userrights-groups-help', array( 'parse' ) ) . $grouplist . - Xml::tags( 'p', null, $this->groupCheckboxes( $groups ) ) . + Xml::tags( 'p', null, $this->groupCheckboxes( $groups, $user ) ) . Xml::openElement( 'table', array( 'border' => '0', 'id' => 'mw-userrights-table-outer' ) ) . " " . @@ -501,7 +501,7 @@ class UserrightsPage extends SpecialPage { * @param $usergroups Array: groups the user belongs to * @return string XHTML table element with checkboxes */ - private function groupCheckboxes( $usergroups ) { + private function groupCheckboxes( $usergroups, $user ) { $allgroups = $this->getAllGroups(); $ret = ''; @@ -549,11 +549,11 @@ class UserrightsPage extends SpecialPage { foreach( $column as $group => $checkbox ) { $attr = $checkbox['disabled'] ? array( 'disabled' => 'disabled' ) : array(); + $member = User::getGroupMember( $group, $user->getName() ); if ( $checkbox['irreversible'] ) { - $text = htmlspecialchars( wfMsg( 'userrights-irreversible-marker', - User::getGroupMember( $group ) ) ); + $text = wfMessage( 'userrights-irreversible-marker', $member )->escaped(); } else { - $text = htmlspecialchars( User::getGroupMember( $group ) ); + $text = htmlspecialchars( $member ); } $checkboxHtml = Xml::checkLabel( $text, "wpGroup-" . $group, "wpGroup-" . $group, $checkbox['set'], $attr ); diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 23c389b2f4..bcfb32ceeb 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1908,12 +1908,12 @@ Your e-mail address is not revealed when other users contact you.', 'group-suppress' => 'Oversights', 'group-all' => '(all)', -'group-user-member' => 'user', -'group-autoconfirmed-member' => 'autoconfirmed user', -'group-bot-member' => 'bot', -'group-sysop-member' => 'administrator', -'group-bureaucrat-member' => 'bureaucrat', -'group-suppress-member' => 'oversight', +'group-user-member' => '{{GENDER:$1|user}}', +'group-autoconfirmed-member' => '{{GENDER:$1|autoconfirmed user}}', +'group-bot-member' => '{{GENDER:$1|bot}}', +'group-sysop-member' => '{{GENDER:$1|administrator}}', +'group-bureaucrat-member' => '{{GENDER:$1|bureaucrat}}', +'group-suppress-member' => '{{GENDER:$1|oversight}}', 'grouppage-user' => '{{ns:project}}:Users', 'grouppage-autoconfirmed' => '{{ns:project}}:Autoconfirmed users', -- 2.20.1