View Issue Details

IDProjectCategoryView StatusLast Update
0000444WackoWikiadministrationpublic2017-08-31 09:36
Reporteruser64Assigned Toadministrator  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformx86OSOpenBSDOS Version9.2-RELEASE-p4
Product Version5.4.0 
Target Version5.5.0Fixed in Version5.5.0 
Summary0000444: AdminPanel -> Broken Groups management
DescriptionGroups administration fails. Forms are not properly not displayed. Database entries get changed wrongly.

Inspection of the code reveals that portions seem to be incorrectly recycled. For instance, the 'add member into group' reuses parts of 'add new group'. Soe logging messages are wrong (GroupsAdded after adding a member to a group).

Adding a member to a group failed as group_id is always 0 (table usergroup_member)

Steps To ReproduceOpen admin panel, select group management. Try to add/remove a user to/from a group.
Additional InformationRepairing the file admin/modules/groups.php is beyond my skills, the code seems to suffer gravely from copy-pasting. Repairing may be a minor job for the responsible person, though.
TagsNo tags attached.
Attached Files
groups.php (22,870 bytes)   
<?php

if (!defined('IN_WACKO'))
{
	exit;
}

########################################################
##   User Groups                                      ##
########################################################

$module['groups'] = array(
		'order'	=> 5,
		'cat'	=> 'Users',
		'mode'	=> 'groups',
		'name'	=> 'Groups',
		'title'	=> 'Group management',
	);

########################################################

function admin_groups(&$engine, &$module)
{
	$where = '';
	$order = '';
	$usergroup = '';
	$orderuser = '';

/*	TODO:
 * Pre-defined groups
 * Pre-defined groups are special groups, they cannot be deleted or directly modified. However you can still add users and alter basic settings.
 *
 * User defined groups
 * These are groups created by you or another admin on this board. You can manage memberships as well as edit group properties or even delete the group.
*/
?>
	<h1><?php echo $module['title']; ?></h1>
	<br />
	<p>
		From this panel you can administrate all your usergroups. You can delete, create and edit existing groups. Furthermore, you may choose group leaders, toggle open/hidden/closed group status and set the group name and description.
	</p>
	<br />
<?php

	/////////////////////////////////////////////
	//   list change/update
	/////////////////////////////////////////////

	// update groups list
	if (isset($_POST['save']))
	{

		$this->log(4, "Updated usergroup members ");
		$this->set_message($this->get_translation('GroupsUpdated'));

	}
	else
	{
		// get group
		if (isset($_GET['group_id']) || isset($_POST['addmember'])|| isset($_POST['removemember']))
		{
			$group_id = (isset($_GET['group_id']) ? $_GET['group_id'] : $_POST['group_id']);

			// add member into group
			if (isset($_POST['addmember']) && isset($_POST['newmember']))
			{
				$engine->sql_query(
					"INSERT INTO {$engine->config['table_prefix']}usergroup_member SET ".
					"group_id	= '".quote($engine->dblink, $_POST['group_id'])."', ".
					"user_id	= '".quote($engine->dblink, (int)$_POST['newmember'])."'");

				$engine->log(4, "Added member //'{$_POST['newmember']}'// into group //'{$_POST['group_id']}'// ");   
				unset($_POST['addmember']);
			}

			// remove member from group
			else if (isset($_POST['removemember']) && isset($_POST['member_id']) && isset($_POST['group_id']))
			{
				$engine->sql_query(
					"DELETE FROM {$engine->config['table_prefix']}usergroup_member ".
					"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' ".
					"AND user_id = '".quote($engine->dblink, $_POST['member_id'])."'");

				$engine->set_message($engine->get_translation('MembersRemoved'));
				$engine->log(4, "Removed member //'{$_POST['member_id']}'// from group //'{$_POST['group_id']}'//");

			}

			/////////////////////////////////////////////
			//   edit forms
			/////////////////////////////////////////////

			// add member into group
			if (isset($_POST['addmember']))
			{
				echo '<form action="admin.php" method="post" name="groups">';
				echo '<input type="hidden" name="group_id" value="'.$group_id.'" />';
				echo '<input type="hidden" name="mode" value="groups" />';
				echo '<table class="formation">';
				echo '<tr><td><label for="newmember">'.$engine->get_translation('MembersAddNew').'</label></td>'.
					'<td><select id="newmember" name="newmember">';?>
						<option value=""></option>
						<?php
						if ($users = $engine->load_users())
						{
							foreach($users as $user)
							{
								echo "<option value=\"".$user['user_id']."\">".htmlspecialchars($user['user_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET)."</option>\n";
							}
						}

				echo '</select></td></tr>';
				echo '<tr><td><br /><input id="submit" type="submit" name="addmember" value="'.$engine->get_translation('GroupsSaveButton').'" /> '.
					'<input id="button" type="button" value="'.$engine->get_translation('GroupsCancelButton').'" onclick="document.location=\''.addslashes($engine->href()).'\';" />'.
					'</td></tr>';
				echo '</table><br />';
				echo '</form>';
			}

			// remove member from group
			if (isset($_POST['removemember']) && isset($_POST['changemember']))
			{
				if ($member = $engine->load_single("SELECT user_name FROM {$engine->config['table_prefix']}user WHERE user_id = '".quote($engine->dblink, $_POST['changemember'])."' LIMIT 1"))
				{
					echo '<form action="admin.php" method="post" name="groups">';
					echo '<input type="hidden" name="group_id" value="'.$group_id.'" />';
					echo '<input type="hidden" name="mode" value="'.groups.'" />';
					echo '<input type="hidden" name="member_id" value="'.htmlspecialchars($_POST['changemember'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'" />'."\n";
					echo '<table class="formation">';
					echo '<tr><td><label for="">'.$engine->get_translation('MembersRemove').' \'<code>'.htmlspecialchars($member['user_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'</code>\'?</label> '.
						'<input id="submit" type="submit" name="removemember" value="yes" style="width:40px;" /> '.
						'<input id="button" type="button" value="no" style="width:40px;" onclick="document.location=\''.addslashes($engine->href()).'\';" />'.
						'<br /><small>'.$engine->get_translation('MembersDeleteInfo').'</small>'.
						'</td></tr>';
					echo '</table><br />';
					echo '</form>';
				}
			}

		}

		// add group
		if (isset($_POST['create']) && isset($_POST['newname']))
		{
			// do we have identical names?
			if ($engine->load_single(
			"SELECT group_id FROM {$engine->config['table_prefix']}usergroup ".
			"WHERE group_name = '".quote($engine->dblink, $_POST['newname'])."' ".
			"LIMIT 1"))
			{
				$engine->set_message($engine->get_translation('GroupsAlreadyExists'));
				$_POST['change'] = $_POST['group_id'];
				$_POST['create'] = 1;
			}
			else
			{
				$engine->sql_query(
					"INSERT INTO {$engine->config['table_prefix']}usergroup SET ".
						"created		= NOW(), ".
						"description	= '".quote($engine->dblink, $_POST['description'])."', ".
						"moderator		= '".quote($engine->dblink, (int)$_POST['moderator'])."', ".
						"group_name		= '".quote($engine->dblink, $_POST['newname'])."', ".
						"open			= '".quote($engine->dblink, (int)$_POST['open'])."', ".
						"active			= '".quote($engine->dblink, (int)$_POST['active'])."'");

				$engine->set_message($engine->get_translation('GroupsAdded'));
				$engine->log(4, "Created a new group //'{$_POST['newname']}'//");
				unset($_POST['create']);
			}
		}
		// edit group
		else if (isset($_POST['edit']) && isset($_POST['group_id']) && (isset($_POST['newname']) || isset($_POST['moderator'])))
		{
			// do we have identical names?
			if ($engine->load_single(
			"SELECT group_id FROM {$engine->config['table_prefix']}usergroup ".
			"WHERE group_name = '".quote($engine->dblink, $_POST['newname'])."' AND group_id <> '".quote($engine->dblink, $_POST['group_id'])."' ".
			"LIMIT 1"))
			{
				$engine->set_message($engine->get_translation('GroupsAlreadyExists'));
				$_POST['change'] = $_POST['group_id'];
				$_POST['edit'] = 1;
			}
			else
			{
				$engine->sql_query(
					"UPDATE {$engine->config['table_prefix']}usergroup SET ".
					"group_name		= '".quote($engine->dblink, $_POST['newname'])."', ".
					"description	= '".quote($engine->dblink, $_POST['newdescription'])."', ".
					"moderator		= '".quote($engine->dblink, (int)$_POST['moderator'])."', ".
					"open			= '".quote($engine->dblink, (int)$_POST['open'])."', ".
					"active			= '".quote($engine->dblink, (int)$_POST['active'])."' ".
					"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' ".
					"LIMIT 1");


				$engine->set_message($engine->get_translation('GroupsRenamed'));
				$engine->log(4, "Group //'{$_POST['group_id']}'// renamed //'{$_POST['newname']}'//");
			}
		}
		// delete group
		else if (isset($_POST['delete']) && isset($_POST['group_id']))
		{
			$usergroup = $engine->load_single("SELECT group_name FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."' LIMIT 1");
			$engine->log(4, "Removed group //'{$usergroup['group_name']}'//"); 
			
			$engine->sql_query(
				"DELETE FROM {$engine->config['table_prefix']}usergroup ".
				"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."'");
			$engine->sql_query(
				"DELETE FROM {$engine->config['table_prefix']}usergroup_member ".
				"WHERE group_id = '".quote($engine->dblink, $_POST['group_id'])."'");

			$engine->set_message($engine->get_translation('GroupsDeleted'));
			unset($_GET['group_id']);
			unset($_POST['group_id']);
		}
	}

	/////////////////////////////////////////////
	//   edit forms
	/////////////////////////////////////////////

		// add new group
		if (isset($_POST['create']))
		{
			echo '<form action="admin.php" method="post" name="groups">';
			echo '<input type="hidden" name="mode" value="groups" />';
			echo '<table class="formation">';
			echo '<tr><td><label for="newname">'.$engine->get_translation('GroupsAdd').'</label></td>'.
				'<td><input id="newname" name="newname" value="'.( isset($_POST['newname']) ? htmlspecialchars($_POST['newname'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : '' ).'" size="20" maxlength="100" /></td></tr>'.
				'<tr><td><label for="description">'.$engine->get_translation('GroupsDescription').'</label></td>'.
				'<td><input id="description" name="description" value="'.( isset($_POST['description']) ? htmlspecialchars($_POST['description'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : '' ).'" size="50" maxlength="100" /></td></tr>'.
				'<tr><td><label for="moderator">'.$engine->get_translation('GroupsModerator').'</label></td>'.
				'<td><select id="moderator" name="moderator">';?>
					<option value=""></option>
					<?php
					if ($users = $engine->load_users())
					{
						foreach($users as $user)
						{
							echo "<option value=\"".$user['user_id']."\">".htmlspecialchars($user['user_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET)."</option>\n";
						}
					}

			echo '</select></td></tr>';
			echo '<tr><td><label for="open">'.$engine->get_translation('GroupsOpen').'</label></td>'.
				'<td><input type="checkbox" id="open" name="open" value="1" '. ( !isset($_POST['open']) ? ' checked="checked"' : '' ).' /></td></tr>'.
				'<tr><td><label for="active">'.$engine->get_translation('GroupsActive').'</label></td>'.
				'<td><input type="checkbox" id="active" name="active" value="1" '. ( !isset($_POST['active']) ? ' checked="checked"' : '' ).' /></td></tr>';
			echo '<tr><td><br /><input id="submit" type="submit" name="create" value="'.$engine->get_translation('GroupsSaveButton').'" /> '.
				'<input id="button" type="button" value="'.$engine->get_translation('GroupsCancelButton').'" onclick="document.location=\''.addslashes($engine->href()).'\';" />'.
				'</td></tr>';
			echo '</table><br />';
			echo '</form>';
		}
		// edit group
		else if (isset($_POST['edit']) && isset($_POST['change']))
		{
			if ($usergroup = $engine->load_single("SELECT group_name, description, moderator, open, active FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['change'])."' LIMIT 1"))
			{
				echo '<form action="admin.php" method="post" name="groups">';
				echo '<input type="hidden" name="mode" value="groups" />';
				echo '<input type="hidden" name="group_id" value="'.htmlspecialchars($_POST['change'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'" />'."\n";
				echo '<table class="formation">';
				echo '<tr><td><label for="newname">'.$engine->get_translation('GroupsRename').' \'<code>'.htmlspecialchars($usergroup['group_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'</code>\' in</label></td>'.
					'<td><input id="newname" name="newname" value="'.( isset($_POST['newname']) ? htmlspecialchars($_POST['newname'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : htmlspecialchars($usergroup['group_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) ).'" size="20" maxlength="100" /></td></tr>'.
					'<tr><td><label for="newdescription">'.$engine->get_translation('GroupsDescription').'</label></td>'.
					'<td><input id="newdescription" name="newdescription" value="'.( isset($_POST['newdescription']) ? htmlspecialchars($_POST['newdescription'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : htmlspecialchars($usergroup['description'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) ).'" size="50" maxlength="100" /></td></tr>'.
					'<tr><td><label for="moderator">'.$engine->get_translation('GroupsModerator').'</label></td>'.
					'<td><select id="moderator" name="moderator">'.
					'<option value=""></option> ';

					if ($users = $engine->load_users())
					{
						foreach($users as $user)
						{
							echo "<option value=\"".$user['user_id']."\" ".($usergroup['moderator'] == $user['user_id'] ? " selected=\"selected\"" : "").">".$user['user_name']."</option>\n";
						}
					}

				echo '</select></td></tr>';
				echo '<tr><td><label for="open">'.$engine->get_translation('GroupsOpen').'</label></td>'.
					'<td><input type="checkbox" id="open" name="open" value="1" '. ( isset($_POST['open']) || $usergroup['open'] == 1 ? ' checked="checked"' : '' ).' /></td></tr>'.
					'<tr><td><label for="active">'.$engine->get_translation('GroupsActive').'</label></td>'.
					'<td><input type="checkbox" id="active" name="active" value="1" '. ( isset($_POST['active']) || $usergroup['active'] == 1 ? ' checked="checked"' : '' ).' /></td></tr>';
				echo '<tr><td><br /><input id="submit" type="submit" name="edit" value="'.$engine->get_translation('GroupsSaveButton').'" /> '.
					'<input id="button" type="button" value="'.$engine->get_translation('GroupsCancelButton').'" onclick="document.location=\''.addslashes($engine->href()).'\';" />'.
					'<br /><small>'.$engine->get_translation('GroupsRenameInfo').'</small>'.
					'</td></tr>';
				echo '</table><br />';
				echo '</form>';
			}
		}
		// delete group
		if (isset($_POST['delete']) && isset($_POST['change']))
		{
			if ($usergroup = $engine->load_single("SELECT group_name FROM {$engine->config['table_prefix']}usergroup WHERE group_id = '".quote($engine->dblink, $_POST['change'])."' LIMIT 1"))
			{
				echo '<form action="admin.php" method="post" name="groups">';
				echo '<input type="hidden" name="mode" value="groups" />';
				echo '<input type="hidden" name="group_id" value="'.htmlspecialchars($_POST['change'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'" />'."\n";
				echo '<table class="formation">';
				echo '<tr><td><label for="">'.$engine->get_translation('GroupsDelete').' \'<code>'.htmlspecialchars($usergroup['group_name'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET).'</code>\'?</label> '.
					'<input id="submit" type="submit" name="delete" value="yes" style="width:40px;" /> '.
					'<input id="button" type="button" value="no" style="width:40px;" onclick="document.location=\''.addslashes($engine->href()).'\';" />'.
					'<br /><small>'.$engine->get_translation('GroupsDeleteInfo').'</small>'.
					'</td></tr>';
				echo '</table><br />';
				echo '</form>';
			}
			echo "<!-- end trying to delete group -->";
		}
?>
<?php

	/////////////////////////////////////////////
	//   building lists
	/////////////////////////////////////////////

	// get group
	if (isset($_GET['group_id']) || isset($_POST['group_id']))
	{
		$group_id = (isset($_GET['group_id']) ? $_GET['group_id'] : $_POST['group_id']);
		$usergroup = $engine->load_single(
			"SELECT group_id, moderator, group_name FROM {$engine->config['table_prefix']}usergroup ".
			"WHERE group_id = '".quote($engine->dblink, $group_id)."' ".
			"LIMIT 1");

		echo "<h2>".$engine->get_translation('GroupsMembersFor').": ".$usergroup['group_name']."</h2>";

		$members = $engine->load_all(
			"SELECT m.user_id, user_name FROM {$engine->config['table_prefix']}usergroup g ".
				"INNER JOIN {$engine->config['table_prefix']}usergroup_member m ON (g.group_id = m.group_id) ".
				"INNER JOIN {$engine->config['table_prefix']}user u ON (m.user_id = u.user_id) ".
			"WHERE g.group_id = '".quote($engine->dblink, $group_id)."' ");
?>
		<form action="admin.php" method="post" name="groups">
		<input type="hidden" name="mode" value="groups" />
		<input type="hidden" name="group_id" value="<?php echo $group_id; ?>" />

		<table cellpadding="3" class="formation">
		<tr>
			<th style="width:5px;"></th>
			<th style="width:5px;">ID</th>
			<th style="width:20px;"><a href="?mode=groups&order=<?php echo $orderuser; ?>">Username</a></th>
		</tr>
<?php
		foreach ($members as $member)
		{
			echo '<tr class="lined">'."\n".
			'<td valign="top" align="center"><input type="radio" name="changemember" value="'.$member['user_id'].'" /></td>'.
					'<td valign="top" align="center">'.$member['user_id'].'</td>'.
					'<td valign="top" align="center" style="padding-left:5px; padding-right:5px;"><strong><a href="?mode=users&user_id='.$member['user_id'].'">'.$member['user_name'].'</a></strong></td>'.
			'</tr>';
		}
			?>
		</table>
		<?php

		/////////////////////////////////////////////
		//   control buttons
		/////////////////////////////////////////////

		echo '<br /><input id="button" type="submit" name="addmember" value="'.$engine->get_translation('GroupsAddButton').'" /> ';
		echo '<input id="button" type="submit" name="removemember" value="'.$engine->get_translation('GroupsRemoveButton').'" /> ';
		echo '<input id="button" type="reset" value="'.$engine->get_translation('GroupsCancelButton').'" onclick="document.location=\''.addslashes($engine->href()).'\';" />';
	 ?>
		</form>
		<?php
	}
	else
	{
		// set created ordering
		if (isset($_GET['order']) && $_GET['order'] == 'created_asc')
		{
			$order		= 'ORDER BY g.created ASC ';
			$created	= 'created_desc';
		}
		else if (isset($_GET['order']) && $_GET['order'] == 'created_desc')
		{
			$order		= 'ORDER BY g.created DESC ';
			$created	= 'created_asc';
		}
		else
		{
			$created	= 'created_asc';
		}

		// set usergroup ordering
		if (isset($_GET['order']) && $_GET['order'] == 'group_asc')
		{
			$order		= 'ORDER BY g.group_name DESC ';
			$ordergroup	= 'user_desc';
		}
		else if (isset($_GET['order']) && $_GET['order'] == 'group_desc')
		{
			$order		= 'ORDER BY g.group_name ASC ';
			$ordergroup	= 'group_asc';
		}
		else
		{
			$ordergroup	= 'group_desc';
		}

		// set members ordering
		if (isset($_GET['order']) && $_GET['order'] == 'members_asc')
		{
			$order			= 'ORDER BY members DESC ';
			$ordermembers	= 'user_desc';
		}
		else if (isset($_GET['order']) && $_GET['order'] == 'members_desc')
		{
			$order			= 'ORDER BY members ASC ';
			$ordermembers	= 'members_asc';
		}
		else
		{
			$ordermembers	= 'members_desc';
		}

		// filter by lang
		if (isset($_GET['moderator']))
		{
			$where = "WHERE g.moderator = '".quote($engine->dblink, $_GET['moderator'])."' ";
		}

		// entries to display
		$limit = 100;

		// collecting data
		$count = $engine->load_single(
			"SELECT COUNT(group_name) AS n ".
			"FROM {$engine->config['table_prefix']}usergroup ".
			( $where ? $where : '' )
			);

		$pagination	= $engine->pagination($count['n'], $limit, 'p', 'mode=groups&order='.isset($_GET['order']) ? htmlspecialchars($_GET['order'], ENT_COMPAT | ENT_HTML401, HTML_ENTITIES_CHARSET) : '', '', 'admin.php');

		$groups = $engine->load_all(
			"SELECT g.*, u.user_name, COUNT(m.user_id) AS members ".
			"FROM {$engine->config['table_prefix']}usergroup g ".
				"LEFT JOIN {$engine->config['table_prefix']}user u ON (g.moderator = u.user_id) ".
				"LEFT JOIN ".$engine->config['table_prefix']."usergroup_member m ON (m.group_id = g.group_id) ".
			( $where ? $where : '' ).
			"GROUP BY g.group_id ".
			( $order ? $order : 'ORDER BY group_id DESC ' ).
			"LIMIT {$pagination['offset']}, $limit");

	/////////////////////////////////////////////
	//   print list
	/////////////////////////////////////////////

	?>
		<form action="admin.php" method="post" name="groups">
		<input type="hidden" name="mode" value="groups" />

			<?php
			/////////////////////////////////////////////
			//   control buttons
			/////////////////////////////////////////////

			$control_buttons = '<br /><input id="button" type="submit" name="create" value="'.$engine->get_translation('GroupsAddButton').'" /> ';
			$control_buttons .= '<input id="button" type="submit" name="edit" value="'.$engine->get_translation('GroupsEditButton').'" /> ';
			$control_buttons .= '<input id="button" type="submit" name="delete" value="'.$engine->get_translation('GroupsRemoveButton').'" /> ';

			echo $control_buttons;

			if (isset($pagination['text']))
			{
				echo '<div class="right">'.( $pagination['text'] == true ? '<small>'.$pagination['text'].'</small>' : '&nbsp;' ).'</div>'."\n";
			} ?>
			<table cellpadding="3" class="formation">
				<tr>
					<th style="width:5px;"></th>
					<th style="width:5px;">ID</th>
					<th style="width:20px;"><a href="?mode=groups&order=<?php echo $ordergroup; ?>">Group</a></th>
					<th>Description</th>
					<th style="width:20px;">Moderator</th>
					<th style="width:20px;"><a href="?mode=groups&order=<?php echo $ordermembers; ?>">Members</a></th>
					<th style="width:20px;">Open</th>
					<th style="width:20px;">Active</th>
					<th style="width:20px;"><a href="?mode=groups&order=<?php echo $created; ?>">Created</a></th>
				</tr>
<?php
		if ($groups)
		{
			foreach ($groups as $row)
			{
				echo '<tr class="lined">'."\n".
						'<td valign="top" align="center"><input type="radio" name="change" value="'.$row['group_id'].'" /></td>'.
						'<td valign="top" align="center">'.$row['group_id'].'</td>'.
						'<td valign="top" align="left" style="padding-left:5px; padding-right:5px;"><strong><a href="?mode=groups&group_id='.$row['group_id'].'">'.$row['group_name'].'</a></strong></td>'.
						'<td valign="top">'.$row['description'].'</td>'.
						'<td valign="top" align="center"><small><a href="?mode=groups&moderator='.$row['moderator'].'">'.$row['user_name'].'</a></small></td>'.
						'<td valign="top" align="center">'.$row['members'].'</td>'.
						'<td valign="top" align="center">'.$row['open'].'</td>'.
						'<td valign="top" align="center">'.$row['active'].'</td>'.
						'<td valign="top" align="center"><small>'.date($engine->config['date_precise_format'], strtotime($row['created'])).'</small></td>'.
					'</tr>';
			}
		}
		else
		{
			echo '<tr><td colspan="5" align="center"><br /><em>No groups that meet the criteria</em></td></tr>';
		}
?>
			</table>
			<?php if (isset($pagination['text'])) echo '<div class="right">'.( $pagination['text'] == true ? '<small>'.$pagination['text'].'</small>' : '' ).'</div>'."\n";

		/////////////////////////////////////////////
		//   control buttons
		/////////////////////////////////////////////

		echo $control_buttons;
?>
		</form>

<?php
	}
}

?>
groups.php (22,870 bytes)   
wacko.de.php (61,676 bytes)   
<?php

if (!defined('IN_WACKO'))
{
	exit;
}

$wacko_translation = array(

	'FormInvalid'				=> 'Das ?bermittelte Formular war ung?ltig. Versuche erneut, das Formular abzusenden.',
	// logged in panel
	'YouAre'					=> 'Du bist ',
	'AccountLink'				=> 'Einstellungen',
	'AccountText'				=> 'Konto',
	'AccountTip'				=> 'Konto Einstellungen',
	'LogoutLink'				=> 'Abmelden',
	'LogoutButton'				=> 'Abmelden',
	'LogoutAreYouSure'			=> 'Willst du dich wirklich abmelden?',

	// registration panel
	'RegistrationWelcome'		=> 'Registrierung eines neuen Benutzers:',
	'RegistrationRealName'		=> 'Show Name',
	'RegistrationPassword'		=> 'Passwort',
	'RegistrationButton'		=> 'Benutzer registrieren',
	'RegistrationUserNameOwned'	=> 'Dieser Name ist bereits vergeben. Bitte w?hle einen anderen Namen.',
	'RegistrationPage'			=> 'Registrierung',
	'SiteRegistered'			=> 'Du hast dich erfolgreich auf der Website registriert ',
	'RegistrationEmailInfo'		=> 'Eine g?ltige E-Mail-Adresse. Alle E-Mails der Website werden an diese Adresse gesendet werden. Die E-Mail-Adresse wird nicht ver?ffentlicht und wird nur verwendet, wenn ein neues Passwort anfordern wird oder wenn eingestellt wird, bestimmte Informationen oder Benachrichtigungen per E-Mail zu erhalten.',
	'SiteEmailConfirm'			=> 'Bitte best?tige deine E-Mailadresse gem?? der dir zugesanden Anleitung. <br />Notice that not verify the address, you can not retrieve password!',
	'NameTooShort'				=> 'Der Benutzername ist zu kurz, es sind mindestens %2 Zeichen erforderlich.',
	'NameTooLong'				=> 'Der Benutzername ist zu lang, es sind maximal %2 Zeichen zul?ssig.',
	'NameAlphanumOnly'			=> 'Der Benutzername muss zwischen %1 und %2 Zeichen lang sein und darf nur aus alphanumerischen Zeichen bestehen.',
	'NameCamelCaseOnly'			=> 'Der Benutzername muss zwischen %1 und %2 Zeichen lang sein und als WikiWort formatiert.',
	'NewUserAccount'			=> 'neues Benutzerkonto',

	'NewAccountSubject'			=> 'Konto Registrierung',
	'NewAccountAdminCreated'	=> 'Der Benutzer %1 hat f?r dich ein Konto mit dem Benutzernamen ?%2? angelegt. Um die Registrierung abzuschlie?en, besuchen die folgende URL (stelle sicher, dass sie in einer einzigen Zeile eingegeben wurde) und setze dein eigenes Zugangskennwort:',
	'NewAccountUsername'		=> 'Benutzername:',
	'NewAccountDoNotReply'		=> 'NICHT AUF DIESE NACHRICHT ANTWORTEN',
	'NewAccountEmail'			=> 'E-Mail:',
	'NewAccountIP'				=> 'Von IP-Adresse:',
	'NewAccountSignupInfo'		=> 'Das folgende Konto wurde angelegt:',

	// login panel
	'LoginWelcome'				=> 'Anmeldung',
	'LoginWelcome2'				=> '((/Registrierung Benutzerkonto anlegen))',
	'LoginName'					=> 'Benutzer',
	'LoginPassword'				=> 'Passwort',
	'LoginButton'				=> 'Benutzer anmelden',
	'LoginPage'					=> 'Anmeldung',
	'PersistentCookie'			=> 'Angemeldet bleiben',
	'Session'					=> 'Sitzung',
	'SessionTip'				=> 'Parameter der aktuellen Sitzung',
	'SessionDuration'			=> 'Sitzungsdauer',
	'SessionDurationDay'		=> '1 Tag',
	'SessionDurationWeek'		=> '1 Woche',
	'SessionDurationMonth'		=> '1 Monat',
	'LoggedInAs'				=> 'Du bist angemeldet als',

	'ClearCookies'				=> 'Alle Cookies l?schen',
	'BindSessionIp'				=> 'Sizung an die IP-Adresse binden',// ''
	'BindSessionIpOn'			=> 'aktiviert (die aktuelle IP',
	'TrafficProtection'			=> 'Traffic Protection',
	'SessionEnds'				=> 'Die aktuelle Sitzung endet',
	'LastVisit'					=> 'Dein letzter Besuch',

	'LoginAttemtsExceeded'		=> 'Du hast die maximal zul?ssige Zahl von Anmeldeversuchen ?berschritten.<br />Du musst nun deinen Benutzernamen und dein Passwort erneut eingeben sowie eine Sicherheitsabfrage beantworten.',

	// other
	'Guest'						=> 'Gast',
	'Help'						=> 'Hilfe',
	'MsWordVersion'				=> 'Microsoft Word Version',
	'EmailHello'				=> 'Hallo ',
	'EmailGoodbye'				=> 'MfG, ',
	'WatchedPageChanged'		=> 'Seite wurde ge?ndert ',
	'SomeoneChangedThisPage'	=> ' ?nderte diese von dir beobachtete Seite: ',
	'ActionDenied'				=> 'Diese Aktion ist hier nicht erlaubt.',
	'TOCTitle'					=> 'Inhalt ',
	'OuterLink2'				=> 'externer Verweis',
	'FileLink'					=> '',
	'PDFLink'					=> 'PDF Dokument',
	'RDFLink'					=> 'RDF Dokument',
	'EmailLink'					=> 'Schreibe E-Mail'."\n".'(E-Mailprogramm wird gestartet)',
	'JabberLink'				=> 'Chatte ?ber XMPP (Jabber client  wird gestartet)',
	'PermaLink'					=> 'Permalink',
	'PermaLinkTip'				=> 'Permalink zu dieser Seite',
	'PermaLinkRedirected'		=> 'Redirected Permalink',
	'PermaLinkEmpty'			=> 'No reference for redirect provided (e.g. ?page_id=506).',
	'PermaLinkRecent'			=> 'Permalink address to ',
	'PermaLinkRevision'			=> 'Permalink address to revision of ',

	'ShowTip'					=> 'In Ansichtsmodus zur?ckzukehren',
	'ShowText'					=> 'Ansicht',
	'WikieditAutocomplete'		=> 'Vervollst?ndige Wikilinks mit Strg+Leertaste',
	'WikiEditInactiveJs'		=> 'Um WikiEdit nutzen zu k?nnen, aktiviere bitte JavaScript in deinem Browser.',
	'NumerateLinks'				=> 'Links in der Druckansicht extra ausweisen',
	'Typografica'				=> 'Autokorrektur im Ansichtsmodus',
	'Comment'					=> 'Kommentar',
	'Comments_0'				=> 'Kommentieren',
	'Comments_1'				=> 'Kommentare lesen (1 Beitrag)',
	'Comments_n'				=> 'Kommentare lesen (%1 Beitr?ge)',
	'Comments_all'				=> 'Kommentare',
	'CommentEdited'				=> 'bearbeitet',
	'Links'						=> 'Links',
	'Version'					=> 'Version',
	'TermsOfUse'				=> 'Nutzungsbedingungen',
	'AcceptTermsOfUse'			=> 'Ich akzeptiere',
	'ShowComments'				=> 'Zeige Kommentare',
	'HideComments'				=> 'Verberge Kommentare',
	'AddComment'				=> 'Dieser Seite einen Kommentar hinzuf?gen:',
	'AddCommentTitle'			=> 'Titel des Kommentars:',
	'AddCommentButton'			=> 'Kommentar hinzuf?gen',
	'HereLink'					=> 'hier',
	'PageHandlerMoreTip'		=> 'weitere',

	'ThemeCorrupt'				=> 'Layout ist besch?digt',
	'DoesNotExists'				=> 'Diese Seite existiert nicht.',
	'PromptCreate'				=> 'M?chtest du sie <b><a href="%1">erstellen</a></b>?',
	'Revision'					=> 'Das ist eine alte Version von <a href="%1">%2</a> vom %3 bearbeitet durch %4.',
	'ReadAccessDenied'			=> 'Du bist nicht berechtigt, diese Seite zu lesen.',
	'YouAreOwner'				=> 'Diese Seite geh?rt dir.',
	'Owner'						=> 'Besitzer',
	'Nobody'					=> 'Niemand',
	'TakeOwnership'				=> 'Seite ?bernehmen',
	'FilesTip'					=> 'Dateianh?nge verwalten',
	'FilesText'					=> 'Dateien',
	'DeleteConfirm'				=> 'Willst du wirklich diese Seite l?schen?'."\n".'Diese Aktion kann nicht r?ckg?ngig gemacht werden!',
	'DeleteTip'					=> 'Seite l?schen.',
	'DeleteCommentTip'			=> 'Kommentar l?schen.',
	'DeleteText'				=> 'L?schen',
	'EditACLConfirm'			=> '?nderungen wirklich nicht speichern?',
	'ACLText'					=> 'Berechtigungen',
	'ACLTip'					=> 'Berechtigungen bearbeiten',
	'EditPropertiesConfirm'		=> '?nderungen wirklich nicht speichern?',
	'PropertiesText'			=> 'Eigenschaften',
	'PropertiesTip'				=> 'Eigenschaften bearbeiten',
	'EditTip'					=> 'Seite bearbeiten' ,
	'EditText'					=> 'Editieren' ,
	'EditCommentTip'			=> 'Kommentar editieren.' ,
	'EditComment'				=> 'Kommentar editieren' ,
	'RevisionTip'				=> 'Seitenversionen ansehen',
	'RevisionText'				=> 'Versionen',
	'RevisionXMLTip'			=> 'Seitenversionen im XML-Format ansehen.',
	'RecentCommentsXMLTip'		=> 'Letzte Kommentare im XML-Format ansehen.',
	'RecentChangesXMLTip'		=> 'Letzten ?nderungen im XML-Format ansehen.',
	'RecentNewsXMLTip'			=> 'Letzten Nachrichten im XML-Format ansehen.',
	'ReferrersTip'				=> 'Liste von URLs, die auf diese Seite verweisen.',
	'ReferrersText'				=> 'Verweise',
	'ModerateTip'				=> 'Moderation von Themen und Forumsbeitr?gen',
	'ModerateText'				=> 'Moderieren',

	'ACLUpdated'				=> 'Berechtigungen aktualisiert',
	'ACLGaveOwnership'			=> ' und Besitzer ge?ndert zu ',
	'ACLNoNewOwner'				=> ', jedoch wurde der Besitz nicht ?bertragen, da der Nutzer %1 nicht exsistiert.',
	'NewPageOwnership'			=> 'Besitz ?bertragen',
	'YouAreNewOwner'			=> 'Der fr?here Besitzer von 1% hat die folgende Seite '."\n".' auf dich ?bertragen %2',
	'PageOwnershipInfo'			=> 'Mit dem Besitz der Seite gehen auch eine Reihe von Verpflichtungen auf dich ?ber wie '."\n".'(..write..here..).',
	'ACLRead'					=> '<strong>Lesen:</strong>',
	'ACLWrite'					=> '<strong>Schreiben:</strong>',
	'ACLComment'				=> '<strong>Kommentare:</strong>',
	'ACLCreate'					=> '<strong>Erstellen:</strong>',
	'ACLUpload'					=> '<strong>Hochladen:</strong>',
	'ACLFor'					=> 'Berechtigungen f?r %1',
	'SetOwner'					=> '<strong>Besitzer:</strong>',
	'OwnerDontChange'			=> 'keine ?nderung',
	'ACLStoreButton'			=> 'Speichern',
	'ACLCancelButton'			=> 'Abbrechen',
	'ACLAccessDenied'			=> 'Du bist nicht der Besitzer dieser Seite.',

	// purge handler
	'PurgePage'					=> 'Seite bereinigen',
	'NotOwnerAndCantPurge'		=> 'Du bist nicht der Besitzer dieser Seite und du kannst diese nicht bereinigen.',
	'ReallyPurge'				=> 'ACHTUNG: Das Bereinigen der Seite kann nicht r?ckg?ngig gemacht werden!',
	'SelectPurgeOptions'		=> 'W?hle die ben?tigten L?sch-Optionen:',
	'PurgeComments'				=> 'L?sche alle Kommentare dieser Seite',
	'CommentsPurged'			=> 'Alle Kommentare wurden gel?scht.',
	'PurgeFiles'				=> 'L?sche alle Dateianh?nge',
	'FilesPurged'				=> 'Alle Dateianh?nge wurden gel?scht.',
	'PurgeRevisions'			=> 'L?sche alle Revisionen dieser Seite',
	'RevisionsPurged'			=> 'Revisionen wurden gel?scht.',
	'PurgeButton'				=> 'L?schen',

	// categories handler
	'Categories'				=> 'Kategorien',
	'Category'					=> 'Kategorie',
	'CategoriesFor'				=> 'Kategorien f?r',
	'CategoriesTip'				=> 'Kategorien bearbeiten',
	'CategoriesText'			=> 'Kategorien',
	'CategoriesUpdated'			=> 'Kategorien aktualisiert',
	'CategoriesAlreadyExists'	=> 'Die Kategorie gibt es bereits.',
	'CategoriesAdded'			=> 'Kategorie erfolgreich hinzugef?gt.',
	'CategoriesRenamed'			=> 'Kategorie erfolgreich umbenannt.',
	'CategoriesUngrouped'		=> 'Kategorie erfolgreich degruppiert.',
	'CategoriesGrouped'			=> 'Die Kategorie wurde der neuen Guppe hizugef?gt.',
	'NoMultilevelGrouping'		=> 'Mehrstufiges gruppieren von Kategorien ist nicht m?glich.',
	'CategoriesDeleted'			=> 'Die Kategorie wurde aus der Datenbank und allen Seiten gel?scht.',
	'CategoriesAdd'				=> 'Neue Kategorie hinzuf?gen',
	'CategoriesAddGrouped'		=> 'Kategorie gruppieren mit',
	'CategoriesAddGroupedNo'	=> 'Nicht gruppieren.',
	'CategoriesRename'			=> 'Kategorie umbenennen',
	'CategoriesRenameInfo'		=> '* Hinweis: ?nderung betrifft alle Seiten, die dieser Kategorie zugeordnet sind.',
	'CategoriesGroup'			=> 'Gruppiere Kategorien ',
	'CategoriesGroupInfo'		=> '* W?hle [no group], um die Kategorie zu degruppieren.',
	'CategoriesDelete'			=> 'Willst du die Kategorie wirklich entfernen',
	'CategoriesDeleteInfo'		=> '* Hinweis: Die ?nderung betrifft alle Seiten, die dieser Kategorie zugeordnet sind. Wenn das Wort eine Unterkategorie hat, wird diese nicht gel?scht, sondern nur entb?ndelt.',
	'CategoriesStoreInfo' 		=> 'Um Kategorien zu einer Seite zuordnen w?hle das jeweilige Kontrollk?stchen.',
	'CategoriesStoreButton'		=> 'Speichere Kategorien',
	'CategoriesSaveButton'		=> 'Speichern',
	'CategoriesCancelButton' 	=> 'Abbrechen',
	'CategoriesAddButton'		=> 'Hinzuf?gen',
	'CategoriesRenameButton'	=> 'Umbenennen',
	'CategoriesGroupButton'		=> 'Gruppieren',
	'CategoriesRemoveButton'	=> 'Entfernen',
	'CategoriesEditInfo'		=> 'Um die Kategorie-Liste zu bearbeiten w?hle das Optionsfeld.',
	'NoCategoriesForThisLanguage'	=> 'Kategorien f?r diese Sprache wurden nicht definiert.',
	'PagesCategory'				=> 'Seiten der Kategorie',
	'CategoryNotExists'			=> 'Kategorie gibt es nicht.',
	'CategoryEmpty'				=> 'Kategorie leer.',
	'TagCloud'					=> 'Wortwolke',

	// source handler
	'TitleSource'				=> 'Quelltext der Seite',
	'SourceFrom'				=> 'Das Original findet sich unter: ',
	'SourceFromLink'			=> 'Link',
	'SourceCopyToClipboard'		=> 'In die Zwischenablage speichern',
	'Source'					=> 'Quelltext anzeigen',
	'SourceDesc'				=> 'Der Quelltext wird angezeigt werden mit Ausnahme der Fragmente, welche durch den Formatierer nicht ausgegeben werden <nobr><code>%%(comments)..%%</code></nobr>',

	// groups handler
	'GroupsMembersFor'			=> 'Mitglieder der Gruppe',
	'GroupsDescription'			=> 'Beschreibung',
	'GroupsModerator'			=> 'Moderator',
	'GroupsOpen'				=> 'Offen',
	'GroupsActive'				=> 'Aktiv',
	'GroupsTip'					=> 'Klicke um die Gruppe zu bearbeiten',
	'GroupsUpdated'				=> 'Gruppen aktualisiert',
	'GroupsAlreadyExists'		=> 'Diese Gruppe gibt es bereits.',
	'GroupsAdded'				=> 'Gruppe erfolgreich hinzugef?gt.',
	'GroupsRenamed'				=> 'Gruppe erfolgreich umbenannt.',
	'GroupsDeleted'				=> 'Die Gruppe und alle Mitglieder wurde aus der Datenbank gel?scht.',
	'GroupsAdd'					=> 'Eine neue Gruppe hinzuf&uuml;gen',
	'GroupsRename'				=> 'Gruppe umbenennen',
	'GroupsRenameInfo'			=> '* Hinweis: Die ?nderung wirkt sich auf alle Seiten aus, die dieser Gruppe zugeordnet sind.',
	'GroupsDelete'				=> 'Bist du dir sicher, dass du die Gruppe entfernen m?chtest ',
	'GroupsDeleteInfo'			=> '* Hinweis: Die ?nderung wirkt sich auf alle Mitglieder aus, die dieser Gruppe zugeordnet sind.',
	'GroupsStoreButton'			=> 'Speichere Gruppen',
	'GroupsSaveButton'			=> 'Absenden',
	'GroupsCancelButton'			=> 'Abbrechen',
	'GroupsAddButton'			=> 'Neu',
	'GroupsEditButton'			=> 'Gruppe Bearbeiten',
	'GroupsRemoveButton'			=> 'Entfernen',
	'GroupsEditInfo'			=> 'Zum Bearbeiten der Gruppen-Liste w?hle das Optionsfeld',

	// Groups action
	'GroupsSearch'				=> 'Suche Gruppe',
	'GroupsFilter'				=> 'Suche',
	'GroupsOpenProfile'			=> 'Profil anzeigen',
	'GroupsNoMatching'			=> 'Keine passende Gruppe Benutzer gefunden. Versuche es mit weicheren Suchkriterien.',
	'GroupsName'				=> 'Gruppe',
	'GroupsMembers'				=> 'Mitglieder',
	'GroupsCreated'				=> 'Erstellt',
	'GroupsNotFound'			=> 'Gruppe <code>%2</code> nicht gefunden. Klicke <a href="%1">hier</a>, um zur Hauptliste zu gehen.',
	'GroupsProfile'				=> 'Profil',
	'GroupsList'				=> 'Zeige gesamte Liste der Gruppen',
	'GroupsMembersSortName'			=> '[Sortiere nach Name]',
	'GroupsMembersSortDate'			=> '[Sortiere nach Datum der Erstellung]',
	'GroupSpace'				=> 'Gruppenseite',

	'MembersAddNew'				=> 'Neues Mitglied hinzuf?gen',
	'MembersRemove'				=> 'Bist du dir sicher, dass du das Mitglied enfernen m?chtest ',
	'MembersRemoved'			=> 'Das Mitglied wurde aus der Gruppe entfernt.',
	'MembersDeleteInfo'			=> '* Hinweis: Die ?nderung wirkt sich auf alle Mitglieder aus, die dieser Gruppe zugeordnet sind.',

	'UserEnabled'				=> 'Enabled',
	'UsersAddNew'				=> 'F?ge einen neuen Nutzer hinzu',
	'UsersDelete'				=> 'Bist du dir sicher, dass du den Nutzer entfernen willst ',
	'UsersDeleted'				=> 'Der Nutzer wurde aus der Datenbank entfernt.',
	'UsersRename'				=> 'Nutzer umbenennen',
	'UsersRenameInfo'			=> '* Note: Die ?nderung wirkt sich auf alle Seiten aus, die diesem Nutzer zugeordnet sind.',
	'UsersRenamed'				=> 'Nutzer erfolgreich umbenannt.',

	'MetaUpdated'				=> 'Metadaten aktualisiert',
	'MetaStoreButton'			=> 'Speichern',
	'MetaCancelButton'			=> 'Abbrechen',

	'EditStoreButton'			=> 'Speichern',
	'EditCancelButton'			=> 'Abbrechen',
	'EditPreviewButton'			=> 'Vorschau',
	'EditPreview'				=> 'Vorschau',
	'EditPreviewSlim'			=> 'Vorschau',
	'Chars'						=> 'Zeichen',
	'EditNote'					=> 'Kommentar',
	'EditNoteMissing'			=> 'Zusammenfassung fehlt',
	'EditMinor'					=> 'Kleine ?nderung',
	'MinorEditHide'				=> 'Kleine ?nderungen ausblenden',
	'MinorEditShow'				=> 'Kleine ?nderungen zeigen',
	'PostAnonymously'			=> 'Speichere anonym, ohne Angabe deines Benutzernamens',
	'NotifyMe'					=> 'Benachrichtige mich bei neuen Kommentaren und ?nderungen auf der Seite',
	'OverwriteAlert'			=> 'ACHTUNG: Diese Seite wurde von jemandem ge?ndert w?hrend du Sie selbst ge?ndert hast.<br />Bitte kopiere deine ?nderungen und ?ndere diese Seite erneut.',
	'WriteAccessDenied'			=> 'Du hast kein Schreibrecht auf diese Seite.',
	'EmptyComment'				=> 'Der Kommentar ist leer -- nicht gespeichert!',
	'CommentAccessDenied'		=> 'Du hast keine Berechtigung diese Seite zu kommentieren.',
	'CommentFlooded'			=> 'Der Abstand zwischen der Ver?ffentlichung der Nachrichten darf nicht kleiner sein als %1 Sekunden.',
	'CommentAdded'				=> 'Kommentar hinzugef?gt.',
	'YouAreNowTheOwner'			=> 'Du bist nicht der Besitzer dieser Seite.',

	'FullDiff'					=> 'Full diff',
	'SimpleDiff'				=> 'einfacher Vergleich',
	'SourceDiff'				=> 'Quelltext',
	'RevisionsShowAll'			=> 'Alle Revisionen anzeigen...',
	'ShowDifferencesButton'		=> 'Zeige Unterschiede',
	'CancelDifferencesButton'	=> 'Abbrechen und zur?ck zur Seite',
	'Comparison'				=> 'Vergleich von %3 vom  %1 und %2',
	'SimpleDiffAdditions'		=> '<b>hinzugef?gt:</b>',
	'SimpleDiffDeletions'		=> '<b>entfernt:</b>',
	'NoDifferences'				=> 'Keine Unterschiede.',
	'History'					=> 'Historie',
	'ReEditOldRevision'			=> 'Editiere diese alte Version erneut',
	'ExternalPages'				=> 'externe Seiten verlinkt zu %1 (%2) (<a href="%3">zeige Dom?nen</a>):',
	'ExternalPagesGlobal'		=> 'Sites, die auf dieses WackoWiki verlinkt haben (%2) (<a href="%1">zeige Dom?nen</a>):',
	'Last24Hours'				=> 'letzte 24 Stunden',
	'LastDays'					=> 'letzte %1 Tage',
	'DomainsSitesPages'			=> 'Dom?nen/Seiten verlinkt zu  %1 (%2)  (<a href="%3">zeige URLs</a>):',
	'DomainsSitesPagesGlobal'	=> 'Dom?nen/Seiten, die auf dieses WackoWiki verlinkt haben (<a href="%1">zeige URLs</a>):',
	'ViewReferringSites'		=> '<a href="%1">nur auf %2 verweisende Seiten</a> ',
	'ViewReferringSitesPerPage'	=> '<a href="%1">nur auf %2 verweisende Seiten</a> ',
	'ViewReferringSitesGlobal'	=> '<a href="%1">global verweisende Seiten</a>',

	'ViewReferrersPage'			=> 'zur Seite',
	'ViewReferrersPerPage'		=> 'nach Seite',
	'ViewReferrersByTime'		=> 'nach Zeit',
	'ViewReferrersGlobal'		=> 'global',
	'NoneReferrers'				=> 'keine Verweise',
	'NotOwnerAndCanDelete'		=> 'Du bist nicht der Besitzer dieser Seite und kannst sie deshalb nicht l?schen.',

	// remove
	'RemoveRevisions'			=> 'L?sche alle Revisionen',
	'RemoveCluster'				=> 'L?sche alle Seiten des Clusters',
	'RemoveDontKeep'			=> 'Speichere keine Sicherungs-Kopie der entfernten Seiten und Kommentare',
	'ReferrersRemoved'			=> 'Referenzen auf Seite %1 gel?scht.',
	'LinksRemoved'				=> 'Links von Seite %1 gel?scht.',
	'CategoriesRemoved'			=> 'Kategorien gel?scht.',
	'RatingRemoved'				=> 'Bewertung gel?scht.',
	'AclsRemoved'				=> 'Berechtigungen der Seite %1 gel?scht.',
	'BookmarksRemoved'			=> 'Lesezeichen der Seite %1 gel?scht.',
	'WatchesRemoved'			=> 'Beobachter der Seite %1 gel?scht.',
	'CommentsRemoved'			=> 'Kommentare der Seite %1 gel?scht.',
	'FilesRemoved'				=> 'Dateien der Seite %1 gel?scht.',
	'PageRemoved'				=> 'Seite %1 gel?scht.',
	'ClusterRemoved'			=> 'Alle Seiten des Cluster gel?scht.',
	'RevisionsRemoved'			=> 'Revisionen der Seite %1 gel?scht.',
	'ThisActionHavenotUndo'		=> 'Diese Aktion kann nicht r?ckg?ngig gemacht werden.',

	'PrintVersion'				=> 'Druckversion',
	'PrintText'					=> 'Drucken',
	'ReferringPages'			=> 'referenzierende Seiten',
	'NoReferringPages'			=> 'keine verweisenden Seiten',
	'Footnotes'					=> 'Fu?noten',
	'Footnote'					=> 'Fu?note',
	'MostPopularPages'			=> 'Meistbesuchte Seiten',
	'MostCommentedPages'		=> 'Meistkommentierte Seiten',
	'NoAccessToSourcePage'		=> 'Du hast keine Leseberechtigung f?r den Quelltext.',
	'SourcePageDoesntExist'		=> 'Quelltext existiert noch nicht',
	'NotLoggedInThusEdited'		=> 'Um die Liste der von dir ge?nderten Seiten zu sehen, musst du dich anmelden.',
	'DidntEditAnyPage'			=> 'Du hast noch keine Seiten g?ndert.',
	'NoPagesFound'				=> 'Keine Seiten gefunden.',
	'MyChangesTitle1'			=> 'von dir ge?nderte Seiten, sortiert nach letzter ?nderung',
	'MyChangesTitle2'			=> 'von dir ge?nderte Seiten, sortiert nach Alphabet',
	'OrderABC'					=> 'alphabetisch sortieren',
	'OrderDate'					=> 'nach Datum sortieren',
	'OrderChange'				=> 'nach ?nderung sortieren',
	'ListOwnedPages'			=> 'Liste deiner Seiten (alphabetisch sortiert)',
	'ListOwnedPages2'			=> 'Liste deiner Seiten (nach Datum sortiert)',
	'ListOwnedPages3'			=> 'Liste deiner Seiten (nach ?nderung sortiert)',
	'YouDontOwn'				=> 'Du besitzt keine Seiten.',
	'NotLoggedInThusOwned'		=> 'Um die Liste deiner Seiten zu sehen, musst du dich anmelden.',
	'NoOrphaned'				=> 'Keine verwaisten Seiten gefunden. Gut.',
	'NoRecentComments'			=> 'Keine neuen Kommentare.',
	'LatestCommentBy'			=> 'zuletzt kommentiert von',
	'NoRecentlyCommented'		=> 'Keine Seite k?rzlich kommentiert.',
	'NoRecentlyDeleted'			=> 'Keine gel?schten Seiten gefunden.',
	'CommentsDisabled'			=> 'Kommentarfunktion ist nicht verf?gbar.',

	'SearchText'				=> 'Suchen: ',
	'SearchButtonText'			=> 'Suche',
	'SearchResults'				=> 'Suchergebnisse f?r ',
	'NotFound'					=> 'nicht gefunden',
	'NoResultsFor'				=> 'Keine Ergebnisse f?r ',
	'SearchResultsFor'			=> 'Suchergebnisse f?r ',
	'SearchFor'					=> 'Suche nach',
	'TopicSearchText'			=> 'Nur in Seitentiteln suchen',
	'TopicSearchResults'		=> 'Suchergebnisse in Titeln f?r ',
	'NotFoundInTopics'			=> 'nicht in Titeln gefunden',
	'TextSearchPage'			=> 'Suche',

	'PostedBy'					=> 'eingetragen von',
	'ThisIsCommentOn'			=> 'Das ist ein Kommentar zu',
	'At'						=> 'am',
	'To'						=> 'zu',
	'By'						=> 'durch',
	'From'						=> 'von',
	'For'						=> 'zu',
	'ReturnToCommented'			=> 'zur?ck zur kommentierten Seite',

	'PagesLinkingTo'			=> 'Seiten, die verweisen auf',
	'NoPageLinkingTo'			=> 'Keine Seite verweist auf',
	'NoWantedPages'				=> 'Keine offenen Seiten. Gut.',
	'RemoveWatch'				=> 'Beobachte die Seite nicht mehr',
	'SetWatch'					=> 'Beobachte die Seite',
	'WatchText'					=> 'Beobachten',
	'UnWatchText'				=> 'Nicht beobachten',
	'UserSettingsStored'		=> 'Benutzereinstellungen gespeichert!',
	'LoggedOut'					=> 'Du bist jetzt abgemeldet.',
	'LoggedOutAuto'				=> 'Aus Sicherheitsgr?nden wurde deine Sitzung beendet. Bitte melde dich erneut an.',

	// user settings
	'SettingsCodeResent'		=> 'E-Mail-Best?tigungscode wurde erneut zugesand.',
	'SettingsCodeNotSent'		=> 'Senden des Best?tigungscodes nicht m?glich: E-Mail wurde nicht angegeben!',
	'Hello'						=> 'Hallo',
	'UserName'					=> 'Benutzername',
	'YourEmail'					=> 'Deine E-Mailadresse',
	'RealName'					=> 'Vollst?ndiger Name',
	'RevisionListLimit'			=> 'max. Anzahl von Versionen',
	'RecentChangesLimit'		=> 'max. Anzahl von ?nderungen',
	'ShowComments?'				=> 'Zeige Kommentare',
	'DoubleclickEditing'		=> 'Editieren durch Doppelklick',
	'UpdateSettingsButton'		=> 'Speichere Einstellungen',

	'AccountDisabled'			=> 'Dein Konto ist deaktiviert oder gesperrt.',
	'WrongPassword'				=> 'Falsches Passwort!',
	'AlreadyRegistered'			=> 'Falls du dich bereits registriert hast, melde dich hier an!',
	'YourLogin'					=> 'Benutzername',
	'Password'					=> 'Passwort (5+ Zeichen)',
	'StuffYouNeed'				=> 'Dinge die du nur einmal einzutragen brauchst (wenn du dich als neuer Nutzer anmeldest).',
	'ConfirmPassword'			=> 'Passwort best?tigen',
	'Email'						=> 'E-Mailadresse',
	'MustBeWikiName'			=> 'Benutzername muss im ((WackoWiki:Doc/Deutsch/WikiName WikiName))-Format sein!',
	'SpecifyEmail'				=> 'Du musst eine E-Mailadresse angeben.',
	'NotAEmail'					=> 'Das sieht nicht nach einer E-Mailadresse aus.',
	'EmailTaken'				=> 'Die angegebene E-Mail-Adresse wird bereits verwendet.',
	'PasswordsDidntMatch'		=> 'Passw?rter stimmen nicht ?berein.',
	'SpacesArentAllowed'		=> 'Leerzeichen sind im Passwort nicht zul?ssig.',
	'PasswordTooShort'			=> 'Passwort zu kurz.',
	'ListMyPages'				=> 'Liste deiner Seiten',
	'ListMyChanges'				=> 'Liste deiner ?nderungen',
	'ListMyWatches'				=> 'Liste der beobachteten Seiten',
	'ListMyChangesWatches'		=> '?nderungen an den von dir beobachteten Seiten',
	'SeeListOfPages'			=> 'Zeige Liste meiner Seiten (MeineSeiten) und die Seiten, die ich editiert haben (MeineAenderungen).',
	'AddToBookmarks'			=> 'F?ge aktuelle Seite zu Lesezeichen hinzu',
	'RemoveFromBookmarks'		=> 'Entferne aktuelle Seite aus den Lesezeichen',
	'CantAddBookmarks'			=> 'Du musst angemeldet sein um Lesezeichen verwenden zu k?nnen.',
	'YourBookmarks'				=> 'Deine Lesezeichen',
	'YourLanguage'				=> 'W?hle Sprache',
	'ShowSpaces'				=> 'Zeige Leerzeichen in WikiNamen',
	'WrongPage4Redirect'		=> 'Umleitung funktioniert wegen falschen Umleitungsparametern nicht',
	'ReallyDelete'				=> 'Willst du wirklich diese Seite l?schen?<br />Diese Aktion kann nicht r?ckg?ngig gemacht werden!<br /><br />WARNUNG: Mit dieser Seite werden alle zur Seite geh?rigen Versionen, Kommentare, Anh?nge, Berechtigungen und Verweise gel?scht.',
	'RemoveButton'				=> 'Ja, l?schen!',
	'CommentForWatchedPage'		=> 'neuer Kommentar zur Seite ',
	'SomeoneCommented'			=> ' kommentierte die von dir beobachtete Seite: ',
	'AlertReferringPages'		=> 'Auf diese Seite wird von folgenden Seiten verwiesen',
	'UnknownAction'				=> 'Unbekannte Aktion',
	'MarkRead'					=> 'Als gelesen markieren',
	'CurrentTime'				=> 'aktuelle Zeit',
	'Created'					=> 'erstellt',
	'Modified'					=> 'ge?ndert',

	'EditIcon'					=> 'Editieren',
	'TreeClusterTitle'			=> 'Baumansicht des Clusters %1',
	'TreeSiteTitle'				=> 'Baumansicht der Seite',
	'TreeEmpty'					=> '%1&nbsp;hat keine Unterseiten',
	'TreeEmptyLevels'			=> '%1&nbsp;hat keine Unterseiten f?r die angegebene Baumtiefe. Erh?he den Wert f?r dir Tiefe.',

	// clone handler
	'ClonePage'					=> 'Klone Seite',
	'CloneText'					=> 'Klonen',
	'CloneName'					=> 'Neuer Name f?r die den Klon dieser Seite',
	'CloneButton'				=> 'Klonen',
	'PageCloned'				=> 'Seite %1 geklont.',
	'ClonedFrom'				=> 'Geklont von %1.',
	'ClonedRedirect'			=> 'Nach Erstellung bearbeiten',
	'MassClone'					=> 'Klone gesamten Cluster',

	'RenameText'				=> 'Umbenennen',
	'RenameTip'					=> 'Seite umbenennen',
	'NewName'					=> 'Neuer Name f?r diese Seite',
	'RenameButton'				=> 'Umbenennen',
	'AlredyExists'				=> 'Seite <strong>%1</strong> existiert bereits.',
	'AlreadyNamed'				=> 'Diese Seite hei?t bereits <strong>%1</strong>.',
	'PageRenamed'				=> 'Seite %1 wurde umbenannt.',
	'NewNameOfPage'				=> 'Neuer Name dieser Seite: ',
	'NotOwnerAndCantRename'		=> 'Du bist nicht der Besitzer dieser Seite und kannst sie daher nicht umbenennen.',
	'NeedRedirect'				=> 'Weiterleitung von der alten zur neuen Seite einrichten.',
	'RedirectCreated'			=> 'Weiterleitung von der Seite %1 zur neuen Seite eingerichtet.',

	'UserSettings'				=> 'Benutzereinstellungen',
	'UserSettingsGeneral'		=> 'Allgemein',
	'UserSettingsExtended'		=> 'Erweitert',
	'UserSettingsOther'			=> 'weitere Einstellungen',
	'UserSpace'					=> 'Benutzerseite',
	'ChooseTheme'				=> 'W?hle ein Layout',

	'CreatePage'				=> 'Erstelle diese Seite',
	'CreateNewPage'				=> 'Neue Seite erstellen',
	'CreateNewPageText'			=> 'Erstellen',
	'CreateNewPageTip'			=> 'Neue Seite erstellen',
	'CreatePageButton'			=> 'Erstellen',
	'CreateRandomPage'			=> 'Beliebige Seite',
	'CreateSubPage'				=> 'Unterseite in diesem Cluster',
	'CreatePageParentCluster'	=> 'Seite im ?bergeordneten Cluster',
	'CreatePageDenied'			=> 'Du verf?gst nicht ?ber die erforderlichen Zugriffsrechte.',
	'CreatePageDeniedAddress'	=> 'Du hast nicht das Recht, um die Seite unter dieser Adresse zu erstellen.',
	'PageAlreadyExists'			=> 'Die Seite ist unter der Adresse bereits vorhanden.',
	'PageAlreadyExistsEdit'		=> 'M?chtest du sie %1',
	'PageAlreadyExistsEdit2'	=> 'editieren',
	'PageAlreadyExistsEditDenied'	=> 'Du kannst sie nicht editieren',

	'PageReservedWord'			=> 'You can\'t use <code>%1</code> as the part of the address as it\'s a reserved word.',
	'UserReservedWord'			=> 'User names cannot contain ##%1## as it\'s a reserved word.',

	'DontRedirect'				=> 'Keine automatische Weiterleitung erlauben, obwohl eine gesetzt ist.',
	'SendWatchEmail'			=> 'Best?tigunsmail senden, wenn jemand (au?er dir) Seiten ver?ndert, die du beobachtest',
	'AllowIntercom'				=> 'Erlaube pers?nliche Nachrichten von Nutzern des Systems',
	'AllowMassemail'			=> 'Administratoren d?rfen mir Nachrichten per E-Mail schicken',
	'HideLastSession'			=> 'Letzte Sitzung verbergen',
	'ValidateIP'				=> 'Binde Sitzung an IP-Adresse',
	'ProfileAnonymousPub'		=> 'Vorzugsweise anonym ver?ffentlichen (den Namen verstecken)',
	'PageMoved'					=> 'Diese Seite wurde verschoben. Sie ist jetzt zu finden unter',
	'CurrentPassword'			=> 'Derzeitiges Passwort',
	'NewPassword'				=> 'Neues Passwort',
	'YouWantChangePassword'		=> 'Passwort ?ndern',
	'PasswordChanged'			=> 'Passwort ge?ndert',
	'EmailWelcome'				=> 'Du bist registriert bei ',
	'EmailRegistered'			=> 'Du hast dich bei %1 registriert.'."\n".'Dein Benutzername lautet: %2'."\n\n".'Um Benachrichtigungen zu erhalten, best?tige bitte diese E-Mail. Folge diesem '."\n".'%3'."\n".'Link.'."\n\n\n".'Wenn du dich nicht registriert hast, ignoriere diese Nachricht, es wird nichts passieren.'."\n\n".'NICHT AUF DIESE NACHRICHT ANTWORTEN'."\n\n".'',
	'EmailVerify'				=> 'Jemand (vielleicht du) hat deine E-Mailadresse als Best?tigungsadresse bei %1 angegeben.'."\n".'Dein Benutzername lautet: %2'."\n\n".'Um Benachrichtigungen zu erhalten, best?tige bitte diese E-Mail. Folge diesem '."\n".'%3'."\n".'Link.'."\n\n".'',
	'EmailConfirm'				=> 'Bitte best?tige deine E-Mail.',
	'EmailConfirmed'			=> 'E-Mail wurde erfolgreich best?tigt.',
	'EmailNotConfirmed'			=> 'E-Mail konnte nicht best?tigt werden. Dies k?nnte an einen falschen Best?tigung-Code liegen oder die E-Mail-Adresse wurde m?glicherweise bereits best?tigt. Du kannst pr?fen ob die E-Mail bereits best?tigt wurde indem du dich anmeldst und deinen Status auf deiner %1 Seite einsiehst.',
	'EmailNotVerified'			=> 'E-Mail wurde nicht best?tigt!',
	'EmailNotVerifiedDesc'		=> 'Du erh?lst keine Benachrichtigung ?ber ?nderungen oder Kommentare von beobachteten Seiten, '.
									'Nachrichten von anderen Nutzern, ebenso wirst du nicht in der Lage sein <u> ein vergessenes Passwort wieder herzustellen</u>, '.
									'bis deine E-Mail-Adresse best?tigt wurde, indem du den Link in der dir zugesendeten E-Mail folgst. '.
									'Wenn innerhalb weniger Tage nach der Registrierung du keine E-Mail erhalten hast, kannst du sie erneut anfragen, klicke dazu ',

	'ForgotComment'				=> 'Benutzername und E-Mailadresse angeben,'."\n".'du bekommst dann eine E-Mail mit weiteren Anweisungen.',
	'ForgotMain'				=> 'Passwort vergessen?',
	'SendButton'				=> 'Senden',
	'UserNotFound'				=> 'Ein Benutzer mit diesem Namen oder E-Mailadresse wurde nicht gefunden.',
	'NotConfirmedEmail'			=> 'Deine E-Mailadresse ist noch nicht best?tigt<br />E-Mails k?nnen nicht an unbest?tigte E-Mailadressen verschickt werden.',
	'EmailForgotSubject'		=> 'Neues Passwort f?r ',
	'EmailForgotMessage'		=> 'Jemand (vielleicht du) hat sein Passwort f?r %1 vergessen.'."\n".'Dein Benutzername lautet: %2'."\n\n".'Um dein Passwort zu ?ndern, folge diesem Link oder kopiere ihn in die Adresszeile deines Browsers.'."\n".'%3'."\n\n".'',
	'CodeWasSent'				=> 'Eine E-Mail mit Informationen zu deinem Passwort wurde versandt.',
	'WrongCode'					=> 'Falscher Code',
	'YouWantChangePasswordForUser'	=> '%1\'s Passwort ?nderung',

	'Watchers'					=> 'Beobachter f?r %1',
	'NoWatchers'				=> 'Keine Beobachter f?r %1',
	'NotOwnerAndViewWatchers'	=>'Du bist nicht der Besitzer dieser Seite und kannst die Liste der Beobachter nicht einsehen.',

	// mywatches action
	'WatchedPages'				=> 'Liste aller Seiten, die du auf ?nderungen beobachtest',
	'UnwatchedPages'			=> 'Liste aller Seiten, die du nicht beobachtest',
	'NoWatchedPages'			=> 'Du hast keine beobachteten Seiten.',
	'NoUnwatchedPages'			=> 'Du beobachtest alle Seiten.',
	'ViewWatchedPages'			=> 'Zeige beobachtete Seiten',
	'ViewUnwatchedPages'		=> 'Zeige unbeobachtete Seiten',
	'NotLoggedInWatches'		=> 'Du bist nicht angemeldet, daher l?sst sich die Liste deiner beobachteten Seiten nicht ermitteln.',

	// mychangeswatches action
	'MyChangesWatches'			=> 'Liste aller von dir beobachteten Seiten, welche seit deiner letzten ?nderung zwischenzeitlich von anderen bearbeitet wurden',
	'ResetChangesWatches'		=> 'Liste der ?nderungen zur?cksetzen',
	'NoChangesWatches'			=> 'Unter deinen beobachteten Seiten sind keine ?nderungen...',

	// whatsnew action
	'NewCommentAdded'			=> 'Kommentar hinzugef?gt',
	'NewFileAdded'				=> 'Added new file',
	'NewPageCreated'			=> 'Neue Seite erstellt',
	'NewRevisionAdded'			=> 'Seite ge?ndert',
	'Cluster'					=> 'Cluster',

	// users action
	'UsersSearch'				=> 'Benutzersuche',
	'UsersFilter'				=> 'Suche',
	'UsersOpenProfile'			=> 'Profil anzeigen',
	'UsersNoMatching'			=> 'Keine passenden Benutzer gefunden. Versuche es mit weicheren Suchkriterien.',
	'UsersName'					=> 'Benutzername',
	'UsersPages'				=> 'Seiten',
	'UsersComments'				=> 'Kommentare',
	'UsersRevisions'			=> 'Revisionen',
	'UsersSignup'				=> 'Anmeldung',
	'UsersLastSession'			=> 'Letzter Besuch',
	'UsersNotFound'				=> 'Benutzer <code>%2</code> nicht gefunden. Klicke <a href="%1">hier</a>, um zur Hauptliste zu gehen.',
	'UsersProfile'				=> 'Profil',
	'UsersContact'				=> 'Kontakt',
	'UsersList'					=> 'Zeige gesamte Liste der Benutzer',
	'UsersNA'					=> '[nicht gesetzt]',
	'UsersNA2'					=> '[keine]',
	'UsersSignupDate'			=> 'Beitrittsdatum',
	'UsersGroupMembership'		=> 'Gruppen-Mitgliedschaft',
	'UsersPersonalInfo'			=> 'Pers?nliche Infos',
	'UsersOwnedPages'			=> 'Eigene Seiten',
	'UsersCommentsPosted'		=> 'Kommentare erstellt',
	'UsersRevisionsMade'		=> 'Revisionen erstellt',
	'UsersDocsSortName'			=> '[Sortiere nach Name]',
	'UsersDocsSortDate'			=> '[Sortiere nach Erstellungsdatum]',
	'UsersSessionNA'			=> '[nicht aufgezeichnet]',
	'UsersSessionHidden'		=> '[verborgen]',
	'UsersIntercomSubject'		=> 'Betreff',
	'UsersIntercomSubjectN'		=> '[Beginne ein neues Thema]',
	'UsersIntercomDisabled'		=> 'Du m?chtest oder kannst keine privaten Nachrichten empfangen.',
	'UsersIntercomSend'			=> 'absenden',
	'UsersIntercomDesc'			=> 'Hinweis: Senden von pers?nlichen Nachrichten an die E-Mail-Adresse des '.
								   'Empf?nger ohne Offenlegung deiner Adresse. Der Empf?nger hat die M?glichkeit dir zu anworten, indem '.
								   'er das gleiche Formular auf deiner Profilseite nutzt.',
	'UsersPMOversized'			=> 'Die L?nge der Nachricht ?berschreitet die maximal zul?ssigen %1 Zeichen. Bitte k?rze deine Mitteilung und ?bermittle sie erneut.',
	'UsersPMFlooded'			=> 'Der Abstand zwischen dem Senden von pers?nlichen Nachrichten sollte nicht kleiner sein als %1 Sekunden.',
	'UsersPMSent'				=> 'Pers?nliche Nachricht wurde erfolgreich an den Nutzer gesendet.',
	'UsersPMPlnSent'			=> 'Pers?nliche Nachricht f?r den Benutzer im Klartext gesendet.',
	'UsersPMBody'				=> 'Diese Nachricht wurde dir durch den Benutzer %1 von %2 geschickt. Um auf diese Email-Nachricht zu antworten '.
								   ', klicke den folgenden Link (do not use the Reply button / Reply '.
								   'in mailer):'."\n".'%3'."\n\n".''.
								   '----------------------------------------------------------------------'."\n".''.
								   '%5'."\n".''.
								   '----------------------------------------------------------------------'."\n\n".''.
								   'Hinweis: Falls diese Nachricht Spam ist, beleidigende oder anderweitig gegen die Regeln der Seite enth?lt '.
								   'violates the rules of the site %2, please send it (using the button Forward /'.
								   'Forward your mail program) to address %4.',
	'UsersPMNotLoggedIn'		=> 'Du bist nicht im System angemeldet und kannst daher keine pers?nlichen Nachrichten an andere Nutzer ?bermitteln.',

	// rating handler
	'RatingDenied'				=> 'Du kannst diese Seite nicht bewerten.',
	'RatingSuccess'				=> 'Deine Bewertung wurde ber?cksichtigt',
	'RatingDuplicate'			=> 'Du hast diese Seite bereits bewertet.',
	'RatingHeader'				=> 'Diese Seite bewerten',
	'RatingHeaderResults'		=> 'Gesamtbewertung der Seite',
	'RatingResults'				=> 'zeige Ergebnisse',
	'RatingForm'				=> 'zeige Formular',
	'RatingSubmit'				=> 'Bewertung abgeben',
	'RatingVoters'				=> 'Stimmen',
	'RatingTotal'				=> 'durchschnittliche Bewertung',
	'RatingNotRated'			=> 'Seite wurde noch nicht bewertet',
	'RatingTopPages'			=> 'Am besten bewertete Seiten',
	'RatingBottomPages'			=> 'Am schlechtesten bewertete Seiten',
	'RatingNoPagesRated'		=> 'keine vorhanden',

	// Properties
	'PropertiesFor'				=> 'Eigenschaften f?r Seite %1',
	'MetaInfo'					=> 'META Schl?sselw?rter/Beschreibungen, die in den HTML-Kopf eingef?gt werden.',
	'MetaTitle'					=> 'Titel',
	'MetaKeywords'				=> 'Schl?sselw?rter',
	'MetaDescription'			=> 'Beschreibung',
	'MetaOn'					=> 'An',
	'MetaOff'					=> 'Aus',
	'MetaRegistered'			=> 'Registriert',
	'MetaComments'				=> 'Kommentare anzeigen',
	'MetaFiles'					=> 'Dateileiste anzeigen',
	'MetaRating'				=> 'Bewertungsleiste anzeigen',
	'MetaToc'					=> 'Inhaltsverzeichnis anzeigen',
	'MetaIndex'					=> 'Cluster Leiste anzeigen',
	'MetaIndexMode'				=> 'Ebenen anzeigen',
	'MetaIndexFull'				=> 'Baum',
	'MetaIndexUpper'			=> 'obere',
	'MetaIndexLower'			=> 'untere',
	'MetaHtml'					=> 'HTML Unterst?tzung f?r Seite',
	'MetaSafeHtml'				=> 'Unsicheres HTML filtern',
	'MetaNoIndex'				=> 'Block search engines',
	'SettingsID'				=> 'ID der Seite',
	'SettingsSize'				=> 'Gr??e',
	'SettingsSizeTip'			=> 'Quelltext / zusammengestellt',
	'SettingsCreated'			=> 'Erstellt am',
	'SettingsCurrent'			=> 'Ge?ndert am',
	'SettingsTotalRevs'			=> 'Revsionen',
	'SettingsTotalComs'			=> 'Kommentare',
	'SettingsHits'				=> 'Aufrufe',
	'SettingsRating'			=> 'Leserbewertung',
	'SettingsText'				=> 'Einstellungen',
	'SettingsTip'				=> 'Weitere Einstellungen und Eigenschaften dieser Seite:',
	'SettingsPortal'			=> 'Weitere Einstellungen zur Seite:',
	'SettingsEdit'				=> 'Editieren',
	'SettingsRevisions'			=> 'Versionen',
	'SettingsClone'				=> 'Klonen',
	'SettingsRename'			=> 'Umbenennen',
	'MassRename'				=> 'Ganzen Cluster umbenennen',
	'SettingsRemove'			=> 'L?schen',
	'SettingsPurge'				=> 'Bereinigen',
	'SettingsModerate'			=> 'Moderieren',
	'SettingsPermissions'		=> 'Berechtigungen',
	'AclForEntireCluster'		=> 'Berechtigungen f?r ganzen Cluster ?ndern',
	'SettingsUpload'			=> 'Dateien hochladen',
	'SettingsCategories'		=> 'Kategorien',
	'SettingsReferrers'			=> 'Verweise',
	'SettingsWatch'				=> 'Beobachten',
	'SettingsPrint'				=> 'Druckversion',
	'SettingsMsword'			=> 'MS Word Version',
	'SettingsLatex'				=> 'LaTeX Version',
	'SettingsXML'				=> 'Export als XML',
	'BewareChangeLang'			=> 'Ver?ndere nicht die Spracheinstellungen, wenn du dir nicht sicher bist, was du tust. Eine ?nderung der Sprache kann zur ?nderung des Namens der Seite f?hren, in Abh?ngigkeit von den sprachlichen Besonderheiten der neu gew?hlten Sprache. M?glicherweise wird der gesamte Inhalt nicht mehr lesbar sein. Du kannst diesen Schritt r?ckg?ngig machen, indem du die Spracheinstellungen wieder auf den Ursprungswert zur?ckstellst.',
	'SetLang'					=> 'Sprache dieser Seite',
	'SetMenuLabel'				=> 'Menu label',
	'SetShowMenuLabel'			=> 'Show in navigation',

	// upload
	'UploadFor'					=> 'Datei hochladen',
	'UploadButtonText'			=> 'Hochladen',
	'UploadGlobalText'			=> 'f?r alle Benutzer',
	'UploadHereText'			=> 'nur f?r Benutzer, die diese Seite sehen d?rfen',
	'UploadDesc'				=> 'Beschreibung',
	'UploadForbidden'			=> 'Du hast keine Berechtigung, hier Dateien hochzuladen.',
	'UploadNoFile'				=> 'Keine Datei gefunden... aus irgendeinem Grund.',
	'UploadMaxSizeReached'		=> 'Datei ist zu gro?!',
	'UploadNotAPicture'			=> 'Nur das Hochladen von Bildern ist erlaubt.',
	'UploadMaxFileQuota'		=> 'Dein Speicherplatz ist voll. Du kannst keine weiteren Dateien hochladen.',
	'UploadDone'				=> 'Datei erfolgreich hochgeladen',
	'UploadKB'					=> 'Kb',
	'UploadFileNotFound'		=> 'Datei nicht gefunden',
	'UploadFileForbidden'		=> 'Datei-Zugriff verweigert',
	'UploadTitle'				=> 'Dateien zu dieser Seite',
	'UploadTitleGlobal'			=> 'Dateien, die global verwendet werden k?nnen',
	'UploadEdit'				=> 'bearbeiten',
	'UploadEditConfirm'			=> 'Bearbeite Metadaten dieser Datei',
	'UploadEditedMeta'			=> 'Metadaten der Datei aktualisiert',
	'UploadEditDenied'			=> 'Du hast keine Berechtigung, diese Datei zu bearbeiten',
	'UploadRemove'				=> 'l?schen',
	'UploadRemovedFromDB'		=> 'Datei aus der Datenbank gel?scht',
	'UploadRemovedFromFS'		=> 'Datei im Dateisystem gel?scht',
	'UploadRemovedFromFSError'	=> 'L?schen der Datei fehlgeschlagen!',
	'UploadRemoveConfirm'		=> 'Sicher, dass diese Datei gel?scht werden soll?',
	'UploadRemoveDenied'		=> 'Du hast keine Berechtigung, diese Datei zu l?schen',
	'UploadMax'					=> 'Nicht mehr als ',
	'UploadUsedStorage'			=> 'Storage in use ',

	'UploadBy'					=> 'Hochgeladen von',
	'FileAdded'					=> 'Hinzugef?gt',
	'FileSize'					=> 'Gr??e',
	'FileName'					=> 'Name',
	'FileSyntax'				=> 'Syntax',

	'Files_0'					=> 'Dateien (0)',
	'Files_1'					=> 'Dateien (1)',
	'Files_n'					=> 'Dateien (%1)',
	'Files_all'					=> 'Dateien',
	'ShowFiles'					=> 'Zeige Dateien',
	'HideFiles'					=> 'Verberge Dateien',
	'ShowFiles?'				=> 'Zeige Dateiliste',

	'RegistrationLang'			=> 'Sprachauswahl',
	'InvalidWikiName'			=> 'Seitenname ist ung?ltig',
	'InvalidUserName'			=> 'Benutzername ist ung?ltig',
	'PleaseLogin'				=> '((Einstellungen Bitte hier registrieren))',
	'Bookmarks'					=> 'Lesezeichen',
	'ReallyDeleteComment'		=> 'Willst du den Kommentar wirklich l?schen?<br />Diese Aktion kann nicht r?ckg?ngig gemacht werden!',
	'ForgotLink'				=> '((/Passwort Passwort vergessen?))',
	'RegistrationClosed'		=> 'Registrierung ist nicht verf?gbar. Kontaktiere bei Interesse den Administrator.',
	'ACLForCluster'				=> 'Berechtigungen f?r gesamten Cluster %1',
	'ACLAreYouSure'				=> 'Du bist dabei die ACLs von dieser Seite und aller ihrer Unterseiten zu ?ndern. Fortfahren?',

	'BookmarkDeleteSelected'	=> 'L?schen Ausgew?hlte',
	'BookmarkMark'				=> 'Markieren',
	'BookmarkNumber'			=> 'Nr.',
	'BookmarkNone'				=> 'Du hast keine Lesezeichen gesetzt.',
	'BookmarkTitle'				=> 'Lesezeichen Titel',
	'BookmarkPage'				=> 'Seite',
	'BookmarkSaveChanges'		=> 'Speichere ?nderungen',
	'BookmarksAddPage'			=> 'Setze ein Lesezeichen f?r die folgende Seite',
	'BookmarkAlreadyExists'		=> 'Das Lesezeichen gibt es bereits.',

	'MeasuredTime'				=> 'Zeit',
	'MeasuredMemory'			=> 'Speicher',
	'PoweredBy'					=> 'Betrieben mit',

	'ImportTo'					=> 'Import in Cluster',
	'ImportWhat'				=> 'XML-Datei die importiert werden soll',
	'ImportButtonText'			=> 'Importieren',
	'ImportSuccess'				=> 'Erfolgreich importiert.',
	'MassRenaming'				=> 'Ganzen Cluster umbenennen',
	'MassNewName'				=> 'Einen neuen Namen f?r diesen Cluster eingeben',
	'MassNeedRedirect'			=> 'Weiterleitung von den alten zu den neuen Seiten einrichten.',

	// pagination
	'ToThePage'					=> 'Zu Seite',
	'Next'						=> 'weiter',
	'Prev'						=> 'zur?ck',
	'NextAcr'					=> 'weiter',
	'PrevAcr'					=> 'zur?ck',

	// filter
	'Any'						=> 'Alle',

	//icons
	'outericon'					=> '<img src="{theme}icons/web.png" alt="externer Link" />',
	'fileicon'					=> '<img src="{theme}icons/file.png" alt="Datei" />',
	'xmlicon'					=> '<img src="{theme}icons/xml.png" alt="XML" />',
	'pdficon'					=> '<img src="{theme}icons/pdf.png" alt="PDF" />',
	'rdficon'					=> '<img src="{theme}icons/rdf.png" alt="RDF" />',
	'emailicon'					=> '<img src="{theme}icons/mail.png" alt="E-Mail" />',
	'jabbericon'				=> '<img src="{theme}icons/jabber.png" alt="XMPP" />',
	'lockicon'					=> '<img src="{theme}icons/lock.png" alt="Zugriff verweigert" />',
	'keyicon'					=> '<img src="{theme}icons/key.png" alt="Zugriff eingeschr?nkt" />',
	'wantedicon'				=> '?',

	// My Groups
	'UserGroups'				=> 'Nutzergruppen',
	'MyGroups'					=> 'Gruppenzugeh?rigkeiten',
	'Group'						=> 'Gruppe',
	'Groups'					=> 'Gruppen',

	// Cache
	'ClearCache'				=> 'Cache leeren',
	'CacheCleared'				=> 'Cache geleert.',
	'ConfigCache'				=> 'Config cache',
	'FeedCache'					=> 'Feed cache',
	'PageCache'					=> 'Page cache',
	'SQLCache'					=> 'SQL cache',

	// Flash
	'FlashNoURL'				=> 'Bitte gib eine Flashdatei mit dem Parameter url an. (z.B. {{flash url="file:the_movie.swf"}} )',

	// Feed
	'FeedTitle'					=> 'Feed Titel',
	'FeedMulti'					=> 'Multi-Feed',
	'FeedNoURL'					=> 'Bitte gib einen Feed mit dem Parameter url an. (z.B. {{feed url="http://example.com/xml/comments_wackowiki.xml"}}',
	'FeedError'					=> 'Kann Feed nicht laden oder parsen',
	'FeedSource'				=> 'Quelle:',

	'FeedMonthAgo'				=> ' month ago',
	'FeedMonthsAgo'				=> ' months ago',
	'FeedWeekAgo'				=> ' week ago',
	'FeedWeeksAgo'				=> ' weeks ago',
	'FeedDayAgo'				=> ' day ago',
	'FeedDaysAgo'				=> ' days ago',
	'FeedHourAgo'				=> ' hour ago',
	'FeedHoursAgo'				=> ' hours ago',
	'FeedMinuteAgo'				=> ' minute ago',
	'FeedMinutesAgo'			=> ' minutes ago',

	// XML / RSS autodiscovery
	'RecentChangesTitleXML'		=> ' - Letzte ?nderungen',
	'RecentChangesXML'			=> 'Letzte ?nderungen im ',
	'RecentCommentsTitleXML'	=> ' - Letzte Kommentare',
	'RecentCommentsXML'			=> 'Letzte Kommentare im ',
	'RecentNewsTitleXML'		=> ' - Aktuelle Nachrichten',
	'RecentNewsXML'				=> 'Recent news zu ',
	'PageRevisionsXML'			=> 'Historie/Revisionen von ',
	'ExportClusterXML'			=> 'Export des ganzen Clusters von ',
	'AccessDeniedXML'			=> 'Du hast keine Berechtigung f?r den Zugriff auf diese Seite.',

	'RecentChangesRSS'			=> '?nderungen',
	'RecentCommentsRSS'			=> 'Kommentare',
	'RecentNewsRSS'				=> 'Nachrichten',
	'HistoryRevisionsRSS'		=> 'Versionen von ',

	'LastModification'			=> 'Letzte ?nderung',

	// Captcha
	'Captcha'					=> 'Bitte schreibe das Wort welches du im Bild lesen kannst',
	'CaptchaFailed'				=> 'Du hast das Captcha-Wort nicht korrekt eingegeben. Bitte versuche es erneut.',
	'CaptchaReload'				=> 'Neues Captcha',
	'CaptchaReloadWarning'		=> 'Kann das Captcha Bild nicht neu laden, du musst die Seite neu laden um das zu tun.',

	// news
	'News'						=> 'Nachrichten',
	'NewsName'					=> 'Titel',
	'NewsSubmit'				=> 'hinzuf?gen',
	'NewsNoName'				=> 'Du habst vergessen eine Schlagzeile hinzuzuf?gen.',
	'NewsNotAvailable'			=> 'Keine Nachrichten verf?gbar.',
	'NewsNoClusterDefined'		=> 'Kein News-Cluster definiert.',
	'NewsDiscuss'				=> 'Diskutiere diesen Artikel...',

	// Review
	'Reviewer'					=> 'Pr?fer',
	'Reviewed'					=> '?berpr?ft',
	'Review'					=> 'sichten',
	'ReviewedBy'				=> 'gesichtet von',
	'RemoveReview'				=> 'Revidiere diese Version',
	'SetReview'					=> 'Vidiere diese Version',
	'SetAsReviewed'				=> 'Seite als gepr?ft gesetzt',
	'SetAsUnreviewed'			=> 'Seite als ungepr?fed gesetzt',

	// moderation handler
	'Moderation'				=> 'Moderation',
	'Topics'					=> 'Themen',
	'ModerateSection'			=> 'Bereich / Seite ',

	'NotModerator'				=> '<h3>Du hast nicht die Berechtigung diese Seite / das Thema zu moderieren</h3>',
	'ModerateDelete'			=> 'L?schen',
	'ModerateDeleteTopic'		=> 'L?sche Thema / Seite',
	'ModerateDeletePosts'		=> 'L?sche Kommentare',
	'ModerateMove'				=> 'Verschieben',
	'ModerateRename'			=> 'Umbenennen',
	'ModerateSplit'				=> 'Trenne / Verschiebe Kommentare',
	'ModerateMerge'				=> 'Zusammenf?hren',
	'ModerateLock'				=> 'Sperren',
	'ModerateUnlock'			=> 'Entsperren',
	'ModerateSet'				=> 'Setzen',
	'ModerateReset'				=> 'Zur?cksetzen',
	'ModerateAccept'			=> 'Best?tigen',
	'ModerateDecline'			=> 'Abbrechen',
	'ModerateDeleteConfirm'		=> 'Bist du dir sicher, dass du folgende Themen <u>l?schen</ u> willst?',
	'ModerateRenameConfirm'		=> 'Gib einen neuen Namen f?r die gew?hlte Seite an',
	'ModerateRenameExists'		=> 'Es gibt bereits eine Seite mit dem gleichen Namen! W?hle einen anderen Seiten-Namen.',
	'ModerateRename1Only'		=> 'Hinweise: renamed to be only the first page you chose!',
	'ModerateMovesConfirm'		=> 'W?hle den Ziel-Cluster in welchen das Forum verschoben werden soll',
	'ModerateMoveConfirm'		=> 'W?hle ein Forum oder gib einen Cluster an in welchen du die Themen verschieben willst. Um die Seite in die Root zu verschieben, schreibe &quot;/&quot;',
	'ModeratePgMoveConfirm'		=> 'Gib den Namen des Clusters an, in welchen du die Seite verschieben willst. Um die Seite in die Root zu verschieben, schreibe &quot;/&quot;',
	'ModerateMoveExists'		=> 'Vorgang abgebrochen: In dem Bereich gibt es bereits Themen mit dem gleichen Namen %1. If you still need to transfer the above-mentioned topics, please rename them first.',
	'ModerateMoveNotExists'		=> 'Diese Seite / Cluster gibt es nicht. Bitte ?berpr?fe den Namen und versuche es erneut.',
	'ModerateMergeConfirm'		=> 'W?hle ein Thema, unter welchem die bestehenden zusammengef?hrt werden sollen',
	'ModerateMerge2Min'			=> 'Zum Zusammenf?hren musst du mindestens zwei Themen w?hlen!',
	'ModerateComDelConfirm'		=> 'Bist du dir sicher, dass du  %1 %2 <u>l?schen</u> willst?',
	'ModerateComment'			=> 'Kommentar',
	'ModerateComments'			=> 'Kommentare',
	'ModerateSplitNewName'		=> 'Gib den Namen f?r das zu trennende Thema an und w?hle ein Trennungs-Schema',
	'ModerateSplitPageName'		=> 'Gib den Namen der Seite / des Themas an, in welche die abgetrennten Kommentare verschoben werden sollen, und w?hle ein Trennungs-Schema',
	'ModerateSplitAllAfter'		=> 'Trenne alle Kommentare nach dem ersten ausgew?hlten (diesen eingeschlossen)',
	'ModerateSplitSelected'		=> 'Trenne nur ausgew?hlte Kommentare (gesamt %1)',
	'ModerateUserProfile'		=> 'Profil',

	'ModerateSection2'			=> 'moderiere Bereich...',
	'ModerateTopicsDeleted'		=> 'Ausgew?hlte Themen wurden erfolgreich gel?scht.',
	'ModerateTopicsRelocated'	=> 'Ausgew?hlte Themen wurden erfolgreich verschoben.',
	'ModerateTopicsRenamed'		=> 'Thema erfolgreich umbenannt.',
	'ModerateTopicsMerged'		=> 'Ausgew?hlte Themen wurden erfolgreich zusammengef?hrt.',
	'ModerateTopicsBlocked'		=> 'Ausgew?hlte Themen wurden erfolgreich gesperrt',
	'ModerateTopicsUnlocked'	=> 'Ausgew?hlte Themen wurden erfolgreich entsperrt.',
	'ModerateTopicDeleted'		=> 'Ausgew?hltes Thema wurde erfolgreich gel?scht.',
	'ModeratePageMoved'			=> 'Seite erfolgreich verschoben.',
	'ModerateTopicRenamed'		=> 'Thema erfolgreich umbenannt.',
	'ModerateTopicBlocked'		=> 'Thema erfolgreich gesperrt',
	'ModerateTopicUnlocked'		=> 'Thema erfolgreich entsperrt.',
	'ModerateCommentsDeleted'	=> 'Ausgew?hlte Kommentare wurden erfolgreich gel?scht.',
	'ModerateCommentsSplited'	=> 'Ausgew?hlte Kommentare wurden erfolgreich einem neuem Thema zugewiesen.',
	'ModerateCommentsSplitFailed'	=> 'Hinweis: Aus irgendeinem Grund ist das Abtrennen der ausgew?hlen Kommentare zu einem neuen Thema gescheiterte.<br />Normalerweise sollte dies nicht geschehen, setze daher den Site-Administrator von dem Ereignis in Kenntnis.<br />Als Vorsichtsma?nahme hat es die Kommentare in ihrer urspr?nglichen Form belassen.',
	'ModerateCommentsMoved'		=> 'Ausgew?hlte Kommentare erfolgreich zur angegebenen Seite verschoben.',

	// forum
	'ForumSubforums'			=> 'Forum',
	'ForumTopic'				=> 'Thema',
	'ForumTopics'				=> 'Themen',
	'ForumPosts'				=> 'Beitr?ge',
	'ForumReplies'				=> 'Antworten',
	'ForumAuthor'				=> 'Author',
	'ForumViews'				=> 'Zugriffe',
	'ForumCreated'				=> 'Erstellt',
	'ForumComments'				=> 'Kommentare',
	'ForumLastComment'			=> 'Letzter Kommentar',
	'ForumNoComments'			=> 'Keine Kommentare',
	'ForumNewTopic'				=> 'Beginne eine neue Diskussion',
	'ForumTopicName'			=> 'Neues Thema',
	'ForumTopicSubmit'			=> 'Thema erstellen',
	'ForumNoTopicName'			=> 'Gib einen Namen f?r die neue Seite an.',
	'ForumNewPosts'				=> 'neuer Beitrag',
	'ForumLocked'				=> 'Bereich gesperrt',

	// password complexity
	'PwdCplxShort'				=> 'Passwort ist zu kurz.',
	'PwdCplxEquals'				=> 'Passwort enth?lt den Benutzernamen.',
	'PwdCplxWeak'				=> 'Kennwort entspricht nicht der Komplexit?ts-Anforderungen.',
	'PwdCplxDesc1'				=> 'Anforderungen an das Kennwort: ',
	'PwdCplxDesc2'				=> 'Passwort sollte nicht weniger als %1 Zeichen sein',
	'PwdCplxDesc3'				=> 'sollte nicht deinen Benutzernamen enthalten ',
	'PwdCplxDesc4'				=> 'sollte bestehen aus ',
	'PwdCplxDesc41'				=> 'Buchstaben und Zahlen',
	'PwdCplxDesc42'				=> 'Gro?- und Kleinbuchstaben und Zahlen',
	'PwdCplxDesc43'				=> 'Gro?- und Kleinbuchstaben, Ziffern und nicht-alphabetische Zeichen',
	'PwdCplxDesc5'				=> 'Es k?nnen alle Buchstaben, Zahlen und Sonderzeichen, au?er Leerzeichen, verwendet werden.',

	// POLLS ADD-ON
	'PollsTopic'				=> 'Thema',
	'PollsVariant'				=> 'Antwort',
	'PollsPlural'				=> 'Du kannst mehrere Antworten ausw?hlen',
	'PollsSingular'				=> 'Du kannst nur eine Antwort ausw?hlen',
	'PollsAddVariant'			=> 'Auswahl hinzuf?gen',
	'PollsDelVariant'			=> 'L?sche Auswahl',
	'PollsSubmit'				=> 'Absenden',
	'PollsNeedTopic'			=> 'Du hast kein Thema / keine Frage f?r die Umfrage angegeben.',
	'PollsNeedAnswers'			=> 'Du m?sst mindestens zwei M?glichkeiten angeben.',
	'PollsSubmitted'			=> 'Deine Umfrage wurde erfolgreich hinzugef?gt.',
	'PollsSubmittedMod'			=> 'Nach Freigabe durch den Moderator, wird sie in der Liste der aktiven Umfragen erscheinen.',
	'PollsCurrent'				=> 'Aktuelle Umfragen',
	'PollsModeration'			=> 'Wartet auf Moderation',
	'PollsEnded'				=> 'Abgeschlossene Umfragen',
	'PollsArchiveYear'			=> 'Alle Umfragen f?r das Jahr %1',
	'PollsArchiveAll'			=> 'Alle Umfragen',
	'PollsConfirmDelete'		=> 'Best?tige L?schen',
	'PollsError'				=> 'Fehler',
	'PollsStartMod'				=> 'Aktiviere Umfrage',
	'PollsEmptyList'			=> 'Umfrage-Liste ist leer.',
	'PollsNotExists'			=> 'Die angeforderte Umfrage gibt es nicht.',
	'PollsAlreadyVoted'			=> 'Du hast an der Umfrage bereits teilgenommen.',
	'PollsAlreadyEnded'			=> 'Diese Umfrage ist abgeschlossen.',
	'PollsDone'					=> 'Vielen Dank f?r deine Teilnahme! Deine Stimme wurde ber?cksichtigt.',
	'PollsReset'				=> 'zur?cksetzen',
	'PollsRemove'				=> 'entfernen',
	'PollsStop'					=> 'anhalten',
	'PollsActivate'				=> 'aktivieren',
	'PollsEdit'					=> 'bearbeiten',
	'PollsResults'				=> 'Ergebnisse',
	'PollsCancel'				=> 'abbrechen',
	'PollsLasts'				=> 'Umfrage geht (Tage)',
	'PollsLasted'				=> 'Umfrage ging (Tage)',
	'PollsAdded'				=> 'hinzugef?gt',
	'PollsTotalVotes'			=> 'Abgegebene Stimmen',
	'PollsGuest'				=> 'Gast',
	'PollsShow'					=> 'Anzeigen',
	'PollsAll'					=> 'Alle',
	'PollsNotifySubj'			=> 'Neue Umfrage hinzugef?gt',
	'PollsNotifyBody'			=> 'Nutzer %1 hat eine neue Umfrage hinzugef?gt. Um die Details einzusehen, die Umfrage zu best?tigen oder abzulehnen folge dem Link:',
	'PollsNone'					=> 'Keine aktive Umfrage.',

	'Timezone'					=> 'Zeitzone',
	'DST'						=> 'Sommerzeit',
	'TzZones'	=> array(
		'-12'	=> '[UTC - 12] Baker Island Time',
		'-11'	=> '[UTC - 11] Niue Time, Samoa Standard Time',
		'-10'	=> '[UTC - 10] Hawaii-Aleutian Standard Time, Cook Island Time',
		'-9.5'	=> '[UTC - 9:30] Marquesas Islands Time',
		'-9'	=> '[UTC - 9] Alaska Standard Time, Gambier Island Time',
		'-8'	=> '[UTC - 8] Pacific Standard Time',
		'-7'	=> '[UTC - 7] Mountain Standard Time',
		'-6'	=> '[UTC - 6] Central Standard Time',
		'-5'	=> '[UTC - 5] Eastern Standard Time',
		'-4.5'	=> '[UTC - 4:30] Venezuelan Standard Time',
		'-4'	=> '[UTC - 4] Atlantic Standard Time',
		'-3.5'	=> '[UTC - 3:30] Newfoundland Standard Time',
		'-3'	=> '[UTC - 3] Amazon Standard Time, Central Greenland Time',
		'-2'	=> '[UTC - 2] Fernando de Noronha Time, South Georgia &amp; the South Sandwich Islands Time',
		'-1'	=> '[UTC - 1] Azores Standard Time, Cape Verde Time, Eastern Greenland Time',
		'0'		=> '[UTC] Westeurop?ische Zeit, Greenwich Mean Time',
		'1'		=> '[UTC + 1] Mitteleurop?ische Zeit, West African Time',
		'2'		=> '[UTC + 2] Osteurop?ische Zeit, Central African Time',
		'3'		=> '[UTC + 3] Moscow Standard Time, Eastern African Time',
		'3.5'	=> '[UTC + 3:30] Iran Standard Time',
		'4'		=> '[UTC + 4] Gulf Standard Time, Samara Standard Time',
		'4.5'	=> '[UTC + 4:30] Afghanistan Time',
		'5'		=> '[UTC + 5] Pakistan Standard Time, Yekaterinburg Standard Time',
		'5.5'	=> '[UTC + 5:30] Indian Standard Time, Sri Lanka Time',
		'5.75'	=> '[UTC + 5:45] Nepal Time',
		'6'		=> '[UTC + 6] Bangladesh Time, Bhutan Time, Novosibirsk Standard Time',
		'6.5'	=> '[UTC + 6:30] Cocos Islands Time, Myanmar Time',
		'7'		=> '[UTC + 7] Indochina Time, Krasnoyarsk Standard Time',
		'8'		=> '[UTC + 8] Chinese Standard Time, Australian Western Standard Time, Irkutsk Standard Time',
		'8.75'	=> '[UTC + 8:45] Southeastern Western Australia Standard Time',
		'9'		=> '[UTC + 9] Japan Standard Time, Korea Standard Time, Chita Standard Time',
		'9.5'	=> '[UTC + 9:30] Australian Central Standard Time',
		'10'	=> '[UTC + 10] Australian Eastern Standard Time, Vladivostok Standard Time',
		'10.5'	=> '[UTC + 10:30] Lord Howe Standard Time',
		'11'	=> '[UTC + 11] Solomon Island Time, Magadan Standard Time',
		'11.5'	=> '[UTC + 11:30] Norfolk Island Time',
		'12'	=> '[UTC + 12] New Zealand Time, Fiji Time, Kamchatka Standard Time',
		'12.75'	=> '[UTC + 12:45] Chatham Islands Time',
		'13'	=> '[UTC + 13] Tonga Time, Phoenix Islands Time',
		'14'	=> '[UTC + 14] Line Island Time',
		),

	// Admin panel
	'Authorization'				=> 'Autorisation',
	'AuthorizationTip'			=> 'Bitte gib das Administratorkennwort ein (und stelle sicher, dass Cookies von Deinem Browser akzeptiert werde).',
	'NoRecoceryPassword'		=> 'Das Administrator-Passwort wurde nicht gesetzt!',
	'NoRecoceryPasswordTip'		=> 'Hinweis: Das Fehlen eines Administrator-Passworts ist eine Bedrohung f?r die Sicherheit! Gib das Passwort in der Konfigurationsdatei an und starte das Programm erneut.',

	'LogFilterTip'				=> 'Filtere Ereignisse nach Kriterien',
	'LogLevel'					=> 'Stufe',
	'LogLevelNotLower'			=> 'nicht weniger als',
	'LogLevelNotHigher'			=> 'nicht h?her als',
	'LogLevelEqual'				=> 'gleich',
	'LogNoMatch'				=> 'Keine Ereignisse, die die Kriterien erf?llen',
	'LogDate'					=> 'Datum',
	'LogEvent'					=> 'Ereignis',
	'LogUsername'				=> 'Benutzername',

	// log
	'LogLevel1'					=> 'kritisch (1)',
	'LogLevel2'					=> 'h?chste (2)',
	'LogLevel3'					=> 'hoch (3)',
	'LogLevel4'					=> 'mittel (4)',
	'LogLevel5'					=> 'niedrig (5)',
	'LogLevel6'					=> 'unterste (6)',
	'LogLevel7'					=> 'debugging (7)',
        'LogAdminLoginSuccess'          => 'Successful login into the administrative panel',
        'LogAdminLogout'                        => 'Logout of the administrative panel',
        'LogAdminLoginFailed'           => '!!Failure to authorize into the administrative panel!!',
        'LogAdminLoginLocked'           => 'Locked login into the administrative panel',
        'LogUserCookieForged'           => '!!**An attempt to login on a forged cookie with login ##%1##**!!',
        'LogRemovedPage'                        => '!!Removed page ##%1## (user %2)!!',
        'LogRemovedCluster'                     => '!!Removed **cluster** ##%1## (user %2)!!',
        'LogRemovedComment'                     => '!!Removed comment from %3 on page [[/%1]] (user %2)!!',
        'LogRemovedFile'                        => '!!Removed file ##%2## from page [[/%1]]!!',
        'LogRemovedPoll'                        => '!!Removed poll with ID %1!!',
        'LogRemovedAllComments'         => '!!Removed all comments of the page [[/%1]]!!',
	'LogRemovedAllRevisions'	=> '!!Removed all revisions of the page [[/%1]]!!',
	'LogRemovedAllFiles'		=> '!!Removed all files, attached to [[/%1]]!!',
	'LogTopicLocked'			=> 'Forum topic is locked [[/%1]]',
	'LogTopicUnlocked'			=> 'Unlocked forum topic [[/%1]]',
	'LogACLUpdated'				=> 'Updated ACL page [[/%1]]',
	'LogOwnershipChanged'		=> 'Ownership of the page [[/%1]] transferred to the user ##%2##',
	'LogUserLoginFailed'		=> '!!Unsuccessful attempts to log in with ##~%1##!!',
	'LogClonedPage'				=> 'Page ##%1## cloned to [[/%2]]',
	'LogRenamedPage'			=> 'Page ##%1## renamed to [[/%2]]',
	'LogRenamedPage2'			=> '. On the old page, a link to the new',
	'LogSplittedPage'			=> 'Comments on the page [[/%1]] splitted to page [[/%2]]',
	'LogMergedPages'			=> 'Pages %1 merged to page [[/%2]]',
	'LogUserPasswordReminded'	=> 'User ##%1## asked for the password recovery process to address ##%2##',
	'LogUserPasswordRecovered'	=> 'User ##%1## successfully recover his forgotten password',
	'LogUserPasswordChanged'	=> 'User ##%1## successfully updated (changed) his password',
	'LogUserPasswordMismatch'	=> '!!User ##%1## failed to change his password: Password mismatch with current!!',
	'LogUserIPSwitched'			=> 'Unauthorized switched IP-address of the user ##%1## frpm ##%2## to ##%3##',
	'LogPageImported'			=> 'Imported page [[/%1]]',
	'LogPageCreated'			=> 'Created new page [[/%1]]',
	'LogPageMetaUpdated'		=> 'Updated page meta data [[/%1]]',
	'LogPageOwnershipClaimed'	=> 'You claimed ownership of the page [[/%1]]',
	'LogPollCreated'			=> 'A new poll with ID %1',
	'LogPollChanged'			=> 'Changed content of the poll with ID %1',
	'LogPollStarted'			=> 'Started poll with ID %1',
	'LogPollReset'				=> 'Reset results from poll with ID %1',
	'LogPollStopped'			=> 'Stopped poll with ID %1',
	'LogFileUploadedLocal'		=> 'To page [[/%1]] uploaded new file ##%2## (size %3 Kb)',
	'LogFileUploadedGlobal'		=> 'Uploaded a new file to global folder ##%2## (size %3 Kb)',
	'LogUserSimiliarName'		=> 'There were attempts to register under the same user name: ##%1##',
	'LogUserRegistered'			=> 'Successfully registered a new user ##%1## (##%2##)',
	'LogUserEmailActivated'		=> 'Successfully activated email ##%1## of user ##%2##',
	'LogCommentPosted'			=> 'Added [[/%1 new comment]] to page [[/%2]]',
	'LogUserLoginOK'			=> 'User ##%1## successfully logged in the system',
	'LogUserLoggedOut'			=> 'User ##%1## successfully logged out the system',
	'LogUserSessionContinued'	=> 'User ##%1## continued to suspend the session',
	'LogUserSettingsUpdate'		=> 'User ##%1## updated personal settings',
	'LogPageEdited'				=> 'Edited page [[/%1]]',
	'LogCommentEdited'			=> 'Edited comment [[/%1]]',
	'LogUpdatedFileMeta'		=> 'Updated file metadata for ##%2## from page [[/%1]]',
);

?>
wacko.de.php (61,676 bytes)   

Relationships

related to 0000117 resolvedadministrator GUI interface to define user groups 

Activities

user64

2014-07-01 20:32

  ~0000928

Fixed many issues, see enclosed file 'group.php'. However, some issues remain:

* file needs to be reviewed for QA
* is it sensible to allow a non-member of a group to become its moderator?
* members of a group should not be displayed in the 'add user' selector
* some $engine->set_message() get displayed not after an operation is complete but after the successive operation. Reproducible with 'add user' and 'add group'

I also changed some texts in wacko.de.php, see enclosed file.

Please note that the file that is part of the distribution is in a shameful condition and should never have shipped.

administrator

2014-07-03 20:13

administrator   ~0000929

Last edited: 2014-07-12 17:36

This is also true for other parts of the Admin panel and this is the reason why there is no documentation and it is still marked as Beta. But I merged and back ported it from the openSpace fork from pgpru.com - added some more proof of concept sections - and was more focused on get it to run. Guess so this is my mess.

administrator

2014-07-05 14:59

administrator   ~0000931

Committed a first update:
http://wackowiki.hg.sourceforge.net/hgweb/wackowiki/dev/rev/1586934a5e62

I still work on the other issues, its easy the correct success message display but this touches other unsolved questions like how we manage the localization and the log messages in the AP.

administrator

2014-07-12 11:23

administrator   ~0000932

Fixed message sets:
http://wackowiki.hg.sourceforge.net/hgweb/wackowiki/dev/rev/053ffcf6221c

Issue History

Date Modified Username Field Change
2014-06-26 08:00 user64 New Issue
2014-07-01 20:22 user64 File Added: groups.php
2014-07-01 20:30 user64 File Added: wacko.de.php
2014-07-01 20:32 user64 Note Added: 0000928
2014-07-03 20:13 administrator Note Added: 0000929
2014-07-03 20:13 administrator Assigned To => administrator
2014-07-03 20:13 administrator Status new => confirmed
2014-07-03 21:18 administrator Target Version => 6.1.x
2014-07-03 21:33 administrator Relationship added related to 0000117
2014-07-05 14:49 administrator Summary AdminPanel -> Groups management is a mess => AdminPanel -> Broken Groups management
2014-07-05 14:59 administrator Note Added: 0000931
2014-07-12 11:23 administrator Note Added: 0000932
2014-07-12 17:36 administrator Note Edited: 0000929
2015-02-19 19:19 administrator Target Version 6.1.x => 5.5.0
2015-02-22 18:13 administrator Status confirmed => resolved
2015-02-22 18:13 administrator Resolution open => fixed
2015-02-22 18:13 administrator Fixed in Version => 5.5.0
2016-09-21 09:18 administrator Fixed in Version 5.5.0 => 5.5.rc2
2017-08-31 09:36 administrator Fixed in Version 5.5.rc2 => 5.5.0