aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2009-06-07 11:34:01 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2009-06-07 11:34:01 +0000
commita539fca62b10f53a5f5dadf07f9ab07340fdabf9 (patch)
tree28f4ab59d1564aefd30709748ce245f993be5f7c /phpBB
parent711f482cb62070ab2340aa27c736a85cc6e8c518 (diff)
downloadforums-a539fca62b10f53a5f5dadf07f9ab07340fdabf9.tar
forums-a539fca62b10f53a5f5dadf07f9ab07340fdabf9.tar.gz
forums-a539fca62b10f53a5f5dadf07f9ab07340fdabf9.tar.bz2
forums-a539fca62b10f53a5f5dadf07f9ab07340fdabf9.tar.xz
forums-a539fca62b10f53a5f5dadf07f9ab07340fdabf9.zip
some corrections, only very minor things.
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9554 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/acm/acm_memcache.php10
-rw-r--r--phpBB/includes/acm/acm_memory.php4
-rw-r--r--phpBB/includes/acm/acm_null.php7
-rw-r--r--phpBB/includes/acp/acp_captcha.php29
-rw-r--r--phpBB/includes/auth/auth_db.php10
-rw-r--r--phpBB/includes/captcha/captcha_factory.php25
-rw-r--r--phpBB/includes/captcha/captcha_gd_wave.php45
-rw-r--r--phpBB/includes/captcha/plugins/captcha_abstract.php139
-rw-r--r--phpBB/includes/captcha/plugins/phpbb_captcha_gd_plugin.php16
-rw-r--r--phpBB/includes/captcha/plugins/phpbb_captcha_gd_wave_plugin.php5
-rw-r--r--phpBB/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php21
-rw-r--r--phpBB/includes/captcha/plugins/phpbb_recaptcha_plugin.php142
-rw-r--r--phpBB/includes/functions.php24
-rw-r--r--phpBB/includes/functions_user.php4
-rw-r--r--phpBB/includes/session.php3
-rw-r--r--phpBB/includes/ucp/ucp_register.php23
-rw-r--r--phpBB/install/database_update.php7
-rw-r--r--phpBB/language/en/acp/board.php2
-rw-r--r--phpBB/posting.php5
19 files changed, 264 insertions, 257 deletions
diff --git a/phpBB/includes/acm/acm_memcache.php b/phpBB/includes/acm/acm_memcache.php
index 5a34a2a51d..3077ee9615 100644
--- a/phpBB/includes/acm/acm_memcache.php
+++ b/phpBB/includes/acm/acm_memcache.php
@@ -32,6 +32,11 @@ if (!defined('PHPBB_ACM_MEMCACHE_COMPRESS'))
define('PHPBB_ACM_MEMCACHE_COMPRESS', false);
}
+if (!defined('PHPBB_ACM_MEMCACHE_HOST'))
+{
+ define('PHPBB_ACM_MEMCACHE_HOST', 'localhost');
+}
+
/**
* ACM for Memcached
* @package acm
@@ -48,11 +53,6 @@ class acm extends acm_memory
// Call the parent constructor
parent::acm_memory();
- if (!defined('PHPBB_ACM_MEMCACHE_HOST'))
- {
- trigger_error('Missing required constant [PHPBB_ACM_MEMCACHE_HOST] for memcache ACM module.', E_USER_ERROR);
- }
-
$this->memcache = new Memcache;
$this->memcache->connect(PHPBB_ACM_MEMCACHE_HOST, PHPBB_ACM_MEMCACHE_PORT);
$this->flags = (PHPBB_ACM_MEMCACHE_COMPRESS) ? MEMCACHE_COMPRESSED : 0;
diff --git a/phpBB/includes/acm/acm_memory.php b/phpBB/includes/acm/acm_memory.php
index c7b5d34a47..fd9b9ff342 100644
--- a/phpBB/includes/acm/acm_memory.php
+++ b/phpBB/includes/acm/acm_memory.php
@@ -156,7 +156,7 @@ class acm_memory
while (($entry = readdir($dir)) !== false)
{
- if (strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0)
+ if (strpos($entry, 'sql_') !== 0 && strpos($entry, 'data_') !== 0 && strpos($entry, 'ctpl_') !== 0 && strpos($entry, 'tpl_') !== 0)
{
continue;
}
@@ -415,7 +415,7 @@ class acm_memory
* @access protected
* @param string $var Cache key
* @return bool True if it exists, otherwise false
- */
+ */
function _isset($var)
{
// Most caches don't need to check
diff --git a/phpBB/includes/acm/acm_null.php b/phpBB/includes/acm/acm_null.php
index c2363b9ddf..fca67115a7 100644
--- a/phpBB/includes/acm/acm_null.php
+++ b/phpBB/includes/acm/acm_null.php
@@ -27,7 +27,6 @@ class acm
*/
function acm()
{
-
}
/**
@@ -43,7 +42,6 @@ class acm
*/
function unload()
{
-
}
/**
@@ -51,7 +49,6 @@ class acm
*/
function save()
{
-
}
/**
@@ -76,7 +73,6 @@ class acm
*/
function put($var_name, $var, $ttl = 0)
{
-
}
/**
@@ -84,7 +80,6 @@ class acm
*/
function purge()
{
-
}
/**
@@ -92,7 +87,6 @@ class acm
*/
function destroy($var_name, $table = '')
{
-
}
/**
@@ -116,7 +110,6 @@ class acm
*/
function sql_save($query, &$query_result, $ttl)
{
-
}
/**
diff --git a/phpBB/includes/acp/acp_captcha.php b/phpBB/includes/acp/acp_captcha.php
index ed2ccf6ccc..7c7a5acc9f 100644
--- a/phpBB/includes/acp/acp_captcha.php
+++ b/phpBB/includes/acp/acp_captcha.php
@@ -10,8 +10,6 @@
/**
* @ignore
*/
-
-
if (!defined('IN_PHPBB'))
{
exit;
@@ -35,13 +33,13 @@ class acp_captcha
$selected = request_var('select_captcha', $config['captcha_plugin']);
$configure = request_var('configure', false);
-
+
// Oh, they are just here for the view
if (isset($_GET['captcha_demo']))
{
$this->deliver_demo($selected);
}
-
+
// Delegate
if ($configure)
{
@@ -52,6 +50,7 @@ class acp_captcha
else
{
$captchas = phpbb_captcha_factory::get_captcha_types();
+
$config_vars = array(
'enable_confirm' => 'REG_ENABLE',
'enable_post_confirm' => 'POST_ENABLE',
@@ -68,10 +67,12 @@ class acp_captcha
if ($submit && check_form_key($form_key))
{
$config_vars = array_keys($config_vars);
+
foreach ($config_vars as $config_var)
{
set_config($config_var, request_var($config_var, false));
}
+
if ($selected !== $config['captcha_plugin'])
{
// sanity check
@@ -79,9 +80,11 @@ class acp_captcha
{
$old_captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$old_captcha->uninstall();
+
set_config('captcha_plugin', $selected);
$new_captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
- $old_captcha->install();
+ $new_captcha->install();
+
add_log('admin', 'LOG_CONFIG_VISUAL');
}
else
@@ -103,14 +106,15 @@ class acp_captcha
$current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
$captcha_select .= '<option value="' . $value . '"' . $current . '>' . $user->lang[$title] . '</option>';
}
+
foreach ($captchas['unavailable'] as $value => $title)
{
$current = ($selected !== false && $value == $selected) ? ' selected="selected"' : '';
- $captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option" >' . $user->lang[$title] . '</option>';
+ $captcha_select .= '<option value="' . $value . '"' . $current . ' class="disabled-option">' . $user->lang[$title] . '</option>';
}
$demo_captcha = phpbb_captcha_factory::get_instance($selected);
-
+
foreach ($config_vars as $config_var => $template_var)
{
$template->assign_var($template_var, (isset($_REQUEST[$config_var])) ? request_var($config_var, '') : $config[$config_var]) ;
@@ -121,28 +125,23 @@ class acp_captcha
'CAPTCHA_SELECT' => $captcha_select,
));
}
-
}
}
-
-
+
/**
* Entry point for delivering image CAPTCHAs in the ACP.
*/
function deliver_demo($selected)
{
global $db, $user, $config;
-
+
$captcha = phpbb_captcha_factory::get_instance($selected);
$captcha->init(CONFIRM_REG);
$captcha->execute_demo();
+
garbage_collection();
exit_handler();
}
-
-
-
-
}
?> \ No newline at end of file
diff --git a/phpBB/includes/auth/auth_db.php b/phpBB/includes/auth/auth_db.php
index bdafefa70b..f798264ada 100644
--- a/phpBB/includes/auth/auth_db.php
+++ b/phpBB/includes/auth/auth_db.php
@@ -68,7 +68,6 @@ function login_db(&$username, &$password)
if ($config['max_login_attempts'] && $row['user_login_attempts'] >= $config['max_login_attempts'])
{
$confirm_id = request_var('confirm_id', '');
- $confirm_code = request_var('confirm_code', '');
// Visual Confirmation handling
if (!$confirm_id)
@@ -84,12 +83,13 @@ function login_db(&$username, &$password)
$captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$captcha->init(CONFIRM_LOGIN);
$vc_response = $captcha->validate();
+
if ($vc_response)
{
return array(
- 'status' => LOGIN_ERROR_ATTEMPTS,
- 'error_msg' => 'LOGIN_ERROR_ATTEMPTS',
- 'user_row' => $row,
+ 'status' => LOGIN_ERROR_ATTEMPTS,
+ 'error_msg' => 'LOGIN_ERROR_ATTEMPTS',
+ 'user_row' => $row,
);
}
}
@@ -130,7 +130,7 @@ function login_db(&$username, &$password)
$row['user_pass_convert'] = 0;
$row['user_password'] = $hash;
}
- else
+ else
{
// Although we weren't able to convert this password we have to
// increase login attempt count to make sure this cannot be exploited
diff --git a/phpBB/includes/captcha/captcha_factory.php b/phpBB/includes/captcha/captcha_factory.php
index fbe615a043..b5fa69990d 100644
--- a/phpBB/includes/captcha/captcha_factory.php
+++ b/phpBB/includes/captcha/captcha_factory.php
@@ -16,8 +16,11 @@ if (!defined('IN_PHPBB'))
exit;
}
-
-/** A small class until we get the autoloader done */
+/**
+* A small class for 3.0.x (no autoloader in 3.0.x)
+*
+* @package VC
+*/
class phpbb_captcha_factory
{
/**
@@ -26,7 +29,7 @@ class phpbb_captcha_factory
function get_instance($name)
{
global $phpbb_root_path, $phpEx;
-
+
$name = basename($name);
if (!class_exists($name))
{
@@ -34,7 +37,7 @@ class phpbb_captcha_factory
}
return call_user_func(array($name, 'get_instance'));
}
-
+
/**
* Call the garbage collector
*/
@@ -49,18 +52,19 @@ class phpbb_captcha_factory
}
call_user_func(array($name, 'garbage_collect'), 0);
}
-
+
/**
* return a list of all discovered CAPTCHA plugins
*/
function get_captcha_types()
{
global $phpbb_root_path, $phpEx;
-
- $captchas = array();
- $captchas['available'] = array();
- $captchas['unavailable'] = array();
-
+
+ $captchas = array(
+ 'available' => array(),
+ 'unavailable' => array(),
+ );
+
$dp = @opendir($phpbb_root_path . 'includes/captcha/plugins');
if ($dp)
@@ -74,6 +78,7 @@ class phpbb_captcha_factory
{
include($phpbb_root_path . "includes/captcha/plugins/$file");
}
+
if (call_user_func(array($name, 'is_available')))
{
$captchas['available'][$name] = call_user_func(array($name, 'get_name'));
diff --git a/phpBB/includes/captcha/captcha_gd_wave.php b/phpBB/includes/captcha/captcha_gd_wave.php
index d911d574f7..f706c98d43 100644
--- a/phpBB/includes/captcha/captcha_gd_wave.php
+++ b/phpBB/includes/captcha/captcha_gd_wave.php
@@ -1,16 +1,18 @@
<?php
-/**
+/**
*
* @package VC
* @version $Id$
-* @copyright (c) 2006 phpBB Group
-* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+* @copyright (c) 2006 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
-
-/**
-* Wave3D CAPTCHA by Robert Hetzler
+/**
+* Wave3D CAPTCHA
+*
+* @author Robert Hetzler
+* @package VC
*/
class captcha
{
@@ -20,10 +22,10 @@ class captcha
function execute($code, $seed)
{
global $starttime;
-
+
// seed the random generator
mt_srand($seed);
-
+
// set height and width
$img_x = $this->width;
$img_y = $this->height;
@@ -32,7 +34,7 @@ class captcha
$img = imagecreatetruecolor($img_x, $img_y);
$x_grid = mt_rand(6, 10);
$y_grid = mt_rand(6, 10);
-
+
// Ok, so lets cut to the chase. We could accurately represent this in 3d and
// do all the appropriate linear transforms. my questions is... why bother?
// The computational overhead is unnecessary when you consider the simple fact:
@@ -47,28 +49,29 @@ class captcha
$plane_x = 100;
$plane_y = 30;
- $subdivision_factor = 3;
+ $subdivision_factor = 3;
+
// $box is the 4 points in img_space that correspond to the corners of the plane in 3-space
$box = array(
'upper_left' => array(
'x' => mt_rand(5, 15),
'y' => mt_rand(10, 15)
- ),
+ ),
'upper_right' => array(
'x' => mt_rand($img_x - 35, $img_x - 19),
'y' => mt_rand(10, 17)
- ),
+ ),
'lower_left' => array(
'x' => mt_rand($img_x - 5, $img_x - 45),
'y' => mt_rand($img_y - 0, $img_y - 15)
- ),
+ ),
);
+
$box['lower_right'] = array(
- 'x' => $box['lower_left']['x'] + $box['upper_left']['x'] - $box['upper_right']['x'],
- 'y' => $box['lower_left']['y'] + $box['upper_left']['y'] - $box['upper_right']['y'],
+ 'x' => $box['lower_left']['x'] + $box['upper_left']['x'] - $box['upper_right']['x'],
+ 'y' => $box['lower_left']['y'] + $box['upper_left']['y'] - $box['upper_right']['y'],
);
-
// TODO
$background = imagecolorallocate($img, mt_rand(155, 255), mt_rand(155, 255), mt_rand(155, 255));
imagefill($img, 0, 0, $background);
@@ -83,7 +86,7 @@ class captcha
}
$fontcolors[0] = imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
-
+
$colors = array();
$minr = mt_rand(20, 30);
@@ -159,7 +162,7 @@ class captcha
$cur_height = $this->wave_height($x, 0, $subdivision_factor);
$offset = $cur_height - $prev_height;
$img_pos_cur = array($img_pos_prev[0] + $dxx, $img_pos_prev[1] + $dxy + $offset);
-
+
$img_buffer[0][$x] = $img_pos_cur;
$img_pos_prev = $img_pos_cur;
$prev_height = $cur_height;
@@ -170,7 +173,7 @@ class captcha
// swap buffers
$buffer_cur = $y & 1;
$buffer_prev = 1 - $buffer_cur;
-
+
$prev_height = $this->wave_height(0, $y, $subdivision_factor);
$offset = $prev_height - $this->wave_height(0, $y - 1, $subdivision_factor);
$img_pos_cur = array($img_buffer[$buffer_prev][0][0] + $dyx, min($img_buffer[$buffer_prev][0][1] + $dyy + $offset, $img_y - 1));
@@ -179,7 +182,7 @@ class captcha
$img_pos_prev = $img_pos_cur;
$img_buffer[$buffer_cur][0] = $img_pos_cur;
-
+
for ($x = 1; $x <= $full_x; ++$x)
{
$cur_height = $this->wave_height($x, $y, $subdivision_factor) + $this->grid_height($x, $y, 1, $x_grid, $y_grid);
@@ -496,7 +499,7 @@ class captcha
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
- ),
+ ),
'O' => array(
array(0,0,0,1,1,1,0,0,0),
array(0,0,1,0,0,0,1,0,0),
diff --git a/phpBB/includes/captcha/plugins/captcha_abstract.php b/phpBB/includes/captcha/plugins/captcha_abstract.php
index f88d82b2a0..0666a3ca67 100644
--- a/phpBB/includes/captcha/plugins/captcha_abstract.php
+++ b/phpBB/includes/captcha/plugins/captcha_abstract.php
@@ -18,7 +18,9 @@ if (!defined('IN_PHPBB'))
/**
-* This class holds the code shared by the two default 3.0 CAPTCHAs.
+* This class holds the code shared by the two default 3.0.x CAPTCHAs.
+*
+* @package VC
*/
class phpbb_default_captcha
{
@@ -29,18 +31,17 @@ class phpbb_default_captcha
var $type;
var $solved = false;
-
function init($type)
{
global $config, $db, $user;
-
+
// read input
$this->confirm_id = request_var('confirm_id', '');
$this->confirm_code = request_var('confirm_code', '');
$refresh = request_var('refresh_vc', false) && $config['confirm_refresh'];
-
+
$this->type = (int) $type;
-
+
if (!strlen($this->confirm_id))
{
// we have no confirm ID, better get ready to display something
@@ -50,24 +51,22 @@ class phpbb_default_captcha
{
$this->regenerate_code();
}
-
}
-
+
function execute_demo()
{
global $user;
-
- $this->code = gen_rand_string(mt_rand(5, 8));
+
+ $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->seed = hexdec(substr(unique_id(), 4, 10));
-
+
// compute $seed % 0x7fffffff
$this->seed -= 0x7fffffff * floor($this->seed / 0x7fffffff);
-
+
$captcha = new captcha();
$captcha->execute($this->code, $this->seed);
}
-
-
+
function execute()
{
if (empty($this->code))
@@ -81,46 +80,46 @@ class phpbb_default_captcha
$captcha = new captcha();
$captcha->execute($this->code, $this->seed);
}
-
-
+
function get_template()
{
global $config, $user, $template, $phpEx, $phpbb_root_path;
-
+
$template->set_filenames(array(
'captcha' => 'captcha_default.html')
);
-
+
$template->assign_vars(array(
'CONFIRM_IMAGE' => append_sid($phpbb_root_path . 'ucp.' . $phpEx . '?mode=confirm&amp;confirm_id=' . $this->confirm_id . '&amp;type=' . $this->type),
- 'CONFIRM_ID' => $this->confirm_id,
+ 'CONFIRM_ID' => $this->confirm_id,
'S_REFRESH' => (bool) $config['confirm_refresh'],
));
-
+
return $template->assign_display('captcha');
}
-
+
function get_demo_template($id)
{
global $config, $user, $template, $phpbb_admin_path, $phpEx;
-
+
$template->set_filenames(array(
'captcha_demo' => 'captcha_default_acp_demo.html')
);
+
// acp_captcha has a delivery function; let's use it
$template->assign_vars(array(
'CONFIRM_IMAGE' => append_sid($phpbb_admin_path . 'index.' . $phpEx . '?captcha_demo=1&amp;mode=visual&amp;i=' . $id . '&amp;select_captcha=' . $this->get_class_name()),
'CONFIRM_ID' => $this->confirm_id,
));
-
+
return $template->assign_display('captcha_demo');
}
-
+
function get_hidden_fields()
{
$hidden_fields = array();
-
+
// this is required for postig.php - otherwise we would forget about the captcha being already solved
if ($this->solved)
{
@@ -129,16 +128,16 @@ class phpbb_default_captcha
$hidden_fields['confirm_id'] = $this->confirm_id;
return $hidden_fields;
}
-
+
function garbage_collect($type)
{
global $db, $config;
$sql = 'SELECT DISTINCT c.session_id
- FROM ' . CONFIRM_TABLE . ' c
- LEFT JOIN ' . SESSIONS_TABLE . ' s ON (c.session_id = s.session_id)
- WHERE s.session_id IS NULL' .
- ((empty($type)) ? '' : ' AND c.confirm_type = ' . (int) $type);
+ FROM ' . CONFIRM_TABLE . ' c
+ LEFT JOIN ' . SESSIONS_TABLE . ' s ON (c.session_id = s.session_id)
+ WHERE s.session_id IS NULL' .
+ ((empty($type)) ? '' : ' AND c.confirm_type = ' . (int) $type);
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
@@ -159,21 +158,21 @@ class phpbb_default_captcha
}
$db->sql_freeresult($result);
}
-
+
function uninstall()
{
- self::garbage_collect(0);
+ $this->garbage_collect(0);
}
-
+
function install()
{
return;
}
-
+
function validate()
{
global $config, $db, $user;
-
+
$this->confirm_code = request_var('confirm_code', '');
if (!$this->confirm_id)
{
@@ -191,10 +190,10 @@ class phpbb_default_captcha
$error = $user->lang['CONFIRM_CODE_WRONG'];
}
}
-
+
if (strlen($error))
{
- // okay, inorect answer. Let's ask a new question
+ // okay, incorrect answer. Let's ask a new question.
$this->generate_code();
return $error;
}
@@ -203,16 +202,15 @@ class phpbb_default_captcha
return false;
}
}
-
-
+
/**
* The old way to generate code, suitable for GD and non-GD. Resets the internal state.
*/
function generate_code()
{
global $db, $user;
-
- $this->code = gen_rand_string(mt_rand(5, 8));
+
+ $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->confirm_id = md5(unique_id($user->ip));
$this->seed = hexdec(substr(unique_id(), 4, 10));
$this->solved = false;
@@ -228,19 +226,20 @@ class phpbb_default_captcha
);
$db->sql_query($sql);
}
-
+
/**
* New Question, if desired.
*/
function regenerate_code()
{
global $db, $user;
-
- $this->code = gen_rand_string(mt_rand(5, 8));
+
+ $this->code = gen_rand_string(mt_rand(CAPTCHA_MIN_CHARS, CAPTCHA_MAX_CHARS));
$this->seed = hexdec(substr(unique_id(), 4, 10));
$this->solved = false;
// compute $seed % 0x7fffffff
$this->seed -= 0x7fffffff * floor($this->seed / 0x7fffffff);
+
$sql = 'UPDATE ' . CONFIRM_TABLE . ' SET ' . $db->sql_build_array('UPDATE', array(
'code' => (string) $this->code,
'seed' => (int) $this->seed)) . '
@@ -249,35 +248,37 @@ class phpbb_default_captcha
session_id = \'' . $db->sql_escape($user->session_id) . '\'';
$db->sql_query($sql);
}
-
+
/**
- * Look up everything we need for painting&checking.
+ * Look up everything we need for painting&checking.
*/
function load_code()
{
global $db, $user;
+
$sql = 'SELECT code, seed
- FROM ' . CONFIRM_TABLE . "
- WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
- AND session_id = '" . $db->sql_escape($user->session_id) . "'
- AND confirm_type = " . $this->type;
+ FROM ' . CONFIRM_TABLE . "
+ WHERE confirm_id = '" . $db->sql_escape($this->confirm_id) . "'
+ AND session_id = '" . $db->sql_escape($user->session_id) . "'
+ AND confirm_type = " . $this->type;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
+
if ($row)
{
$this->code = $row['code'];
$this->seed = $row['seed'];
return true;
}
+
return false;
-
}
-
+
function check_code()
{
global $db;
-
+
if (empty($this->code))
{
if (!$this->load_code())
@@ -287,47 +288,45 @@ class phpbb_default_captcha
}
return (strcasecmp($this->code, $this->confirm_code) === 0);
}
-
+
function delete_code()
{
global $db, $user;
-
+
$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
- WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
- AND session_id = '" . $db->sql_escape($user->session_id) . "'
- AND confirm_type = " . $this->type;
+ WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
+ AND session_id = '" . $db->sql_escape($user->session_id) . "'
+ AND confirm_type = " . $this->type;
$db->sql_query($sql);
}
-
+
function get_attempt_count()
{
global $db, $user;
-
+
$sql = 'SELECT COUNT(session_id) AS attempts
- FROM ' . CONFIRM_TABLE . "
- WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
- AND confirm_type = " . $this->type;
+ FROM ' . CONFIRM_TABLE . "
+ WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
+ AND confirm_type = " . $this->type;
$result = $db->sql_query($sql);
$attempts = (int) $db->sql_fetchfield('attempts');
$db->sql_freeresult($result);
-
+
return $attempts;
}
-
-
+
function reset()
{
global $db, $user;
-
+
$sql = 'DELETE FROM ' . CONFIRM_TABLE . "
- WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
- AND confirm_type = " . (int) $this->type;
+ WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
+ AND confirm_type = " . (int) $this->type;
$db->sql_query($sql);
-
+
// we leave the class usable by generating a new question
$this->generate_code();
}
-
}
?> \ No newline at end of file
diff --git a/phpBB/includes/captcha/plugins/phpbb_captcha_gd_plugin.php b/phpBB/includes/captcha/plugins/phpbb_captcha_gd_plugin.php
index 5b3c09f32d..ac78b3d1c4 100644
--- a/phpBB/includes/captcha/plugins/phpbb_captcha_gd_plugin.php
+++ b/phpBB/includes/captcha/plugins/phpbb_captcha_gd_plugin.php
@@ -16,7 +16,7 @@ if (!defined('IN_PHPBB'))
exit;
}
-/**
+/**
* Placeholder for autoload
*/
if (!class_exists('phpbb_default_captcha'))
@@ -24,6 +24,9 @@ if (!class_exists('phpbb_default_captcha'))
include($phpbb_root_path . 'includes/captcha/plugins/captcha_abstract.' . $phpEx);
}
+/**
+* @package VC
+*/
class phpbb_captcha_gd extends phpbb_default_captcha
{
function phpbb_captcha_gd()
@@ -35,7 +38,7 @@ class phpbb_captcha_gd extends phpbb_default_captcha
include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx);
}
}
-
+
function get_instance()
{
return new phpbb_captcha_gd();
@@ -45,17 +48,17 @@ class phpbb_captcha_gd extends phpbb_default_captcha
{
return (@extension_loaded('gd') || can_load_dll('gd'));
}
-
+
function get_name()
{
return 'CAPTCHA_GD';
}
-
+
function get_class_name()
{
return 'phpbb_captcha_gd';
}
-
+
function acp_page($id, &$module)
{
global $db, $user, $auth, $template;
@@ -80,7 +83,6 @@ class phpbb_captcha_gd extends phpbb_default_captcha
'captcha_gd' => 'CAPTCHA_GD',
);
-
$module->tpl_name = 'captcha_gd_acp';
$module->page_title = 'ACP_VC_SETTINGS';
$form_key = 'acp_captcha';
@@ -112,11 +114,11 @@ class phpbb_captcha_gd extends phpbb_default_captcha
$var = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, 0) : $config[$captcha_var];
$template->assign_var($template_var, $var);
}
+
$template->assign_vars(array(
'CAPTCHA_PREVIEW' => $this->get_demo_template($id),
'CAPTCHA_NAME' => $this->get_class_name(),
));
-
}
}
}
diff --git a/phpBB/includes/captcha/plugins/phpbb_captcha_gd_wave_plugin.php b/phpBB/includes/captcha/plugins/phpbb_captcha_gd_wave_plugin.php
index 38e5aabedd..36cbaf7d79 100644
--- a/phpBB/includes/captcha/plugins/phpbb_captcha_gd_wave_plugin.php
+++ b/phpBB/includes/captcha/plugins/phpbb_captcha_gd_wave_plugin.php
@@ -24,6 +24,9 @@ if (!class_exists('captcha_abstract'))
include_once($phpbb_root_path . 'includes/captcha/plugins/captcha_abstract.' . $phpEx);
}
+/**
+* @package VC
+*/
class phpbb_captcha_gd_wave extends phpbb_default_captcha
{
@@ -60,7 +63,7 @@ class phpbb_captcha_gd_wave extends phpbb_default_captcha
function acp_page($id, &$module)
{
global $config, $db, $template, $user;
-
+
trigger_error($user->lang['CAPTCHA_NO_OPTIONS'] . adm_back_link($module->u_action));
}
}
diff --git a/phpBB/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php b/phpBB/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php
index 8df11bfe8a..517b55f09e 100644
--- a/phpBB/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php
+++ b/phpBB/includes/captcha/plugins/phpbb_captcha_nogd_plugin.php
@@ -16,7 +16,7 @@ if (!defined('IN_PHPBB'))
exit;
}
-/**
+/**
* Placeholder for autoload
*/
if (!class_exists('phpbb_default_captcha'))
@@ -24,6 +24,9 @@ if (!class_exists('phpbb_default_captcha'))
include_once($phpbb_root_path . 'includes/captcha/plugins/captcha_abstract.' . $phpEx);
}
+/**
+* @package VC
+*/
class phpbb_captcha_nogd extends phpbb_default_captcha
{
@@ -36,7 +39,7 @@ class phpbb_captcha_nogd extends phpbb_default_captcha
include_once($phpbb_root_path . 'includes/captcha/captcha_non_gd.' . $phpEx);
}
}
-
+
function get_instance()
{
return new phpbb_captcha_nogd();
@@ -46,25 +49,23 @@ class phpbb_captcha_nogd extends phpbb_default_captcha
{
return true;
}
-
+
function get_name()
{
- global $user;
-
- return 'CAPTCHA_NO_GD';
+ return 'CAPTCHA_NO_GD';
}
-
+
function get_class_name()
{
return 'phpbb_captcha_nogd';
}
-
-
+
function acp_page($id, &$module)
{
global $user;
-
+
trigger_error($user->lang['CAPTCHA_NO_OPTIONS'] . adm_back_link($module->u_action));
}
}
+?> \ No newline at end of file
diff --git a/phpBB/includes/captcha/plugins/phpbb_recaptcha_plugin.php b/phpBB/includes/captcha/plugins/phpbb_recaptcha_plugin.php
index 42ca25ae54..a96f5ef9c6 100644
--- a/phpBB/includes/captcha/plugins/phpbb_recaptcha_plugin.php
+++ b/phpBB/includes/captcha/plugins/phpbb_recaptcha_plugin.php
@@ -22,6 +22,9 @@ if (!class_exists('phpbb_default_captcha'))
include_once($phpbb_root_path . 'includes/captcha/plugins/captcha_abstract.' . $phpEx);
}
+/**
+* @package VC
+*/
class phpbb_recaptcha extends phpbb_default_captcha
{
var $recaptcha_server = 'http://api.recaptcha.net';
@@ -29,18 +32,16 @@ class phpbb_recaptcha extends phpbb_default_captcha
var $challenge;
var $response;
-
function init($type)
{
global $config, $db, $user;
-
+
$user->add_lang('recaptcha');
parent::init($type);
$this->challenge = request_var('recaptcha_challenge_field', '');
$this->response = request_var('recaptcha_response_field', '');
}
-
-
+
function get_instance()
{
return new phpbb_recaptcha();
@@ -48,25 +49,25 @@ class phpbb_recaptcha extends phpbb_default_captcha
function is_available()
{
- global $config, $user;
+ global $config, $user;
$user->add_lang('recaptcha');
return (isset($config['recaptcha_pubkey']) && !empty($config['recaptcha_pubkey']));
}
-
+
function get_name()
{
return 'CAPTCHA_RECAPTCHA';
}
-
+
function get_class_name()
{
return 'phpbb_recaptcha';
}
-
+
function acp_page($id, &$module)
{
global $config, $db, $template, $user;
-
+
$captcha_vars = array(
'recaptcha_pubkey' => 'RECAPTCHA_PUBKEY',
'recaptcha_privkey' => 'RECAPTCHA_PRIVKEY',
@@ -103,6 +104,7 @@ class phpbb_recaptcha extends phpbb_default_captcha
$var = (isset($_REQUEST[$captcha_var])) ? request_var($captcha_var, '') : ((isset($config[$captcha_var])) ? $config[$captcha_var] : '');
$template->assign_var($template_var, $var);
}
+
$template->assign_vars(array(
'CAPTCHA_PREVIEW' => $this->get_demo_template($id),
'CAPTCHA_NAME' => $this->get_class_name(),
@@ -110,47 +112,44 @@ class phpbb_recaptcha extends phpbb_default_captcha
}
}
-
-
+
// not needed
function execute_demo()
{
}
-
-
+
// not needed
function execute()
{
}
-
-
+
function get_template()
{
global $config, $user, $template;
-
+
$template->set_filenames(array(
'captcha' => 'captcha_recaptcha.html')
);
-
+
$template->assign_vars(array(
'RECAPTCHA_SERVER' => $this->recaptcha_server,
'RECAPTCHA_PUBKEY' => isset($config['recaptcha_pubkey']) ? $config['recaptcha_pubkey'] : '',
'RECAPTCHA_ERRORGET' => '',
'S_RECAPTCHA_AVAILABLE' => $this->is_available(),
));
-
+
return $template->assign_display('captcha');
}
-
+
function get_demo_template($id)
{
return $this->get_template();
}
-
+
function get_hidden_fields()
{
$hidden_fields = array();
-
+
// this is required for postig.php - otherwise we would forget about the captcha being already solved
if ($this->solved)
{
@@ -159,17 +158,17 @@ class phpbb_recaptcha extends phpbb_default_captcha
$hidden_fields['confirm_id'] = $this->confirm_id;
return $hidden_fields;
}
-
+
function uninstall()
{
- self::garbage_collect(0);
+ $this->garbage_collect(0);
}
-
+
function install()
{
return;
}
-
+
function validate()
{
if (!parent::validate())
@@ -181,7 +180,6 @@ class phpbb_recaptcha extends phpbb_default_captcha
return $this->recaptcha_check_answer();
}
}
-
// Code from here on is based on recaptchalib.php
/*
@@ -218,14 +216,14 @@ class phpbb_recaptcha extends phpbb_default_captcha
*/
/**
- * Submits an HTTP POST to a reCAPTCHA server
- * @param string $host
- * @param string $path
- * @param array $data
- * @param int port
- * @return array response
- */
- function _recaptcha_http_post($host, $path, $data, $port = 80)
+ * Submits an HTTP POST to a reCAPTCHA server
+ * @param string $host
+ * @param string $path
+ * @param array $data
+ * @param int port
+ * @return array response
+ */
+ function _recaptcha_http_post($host, $path, $data, $port = 80)
{
$req = $this->_recaptcha_qsencode ($data);
@@ -238,52 +236,56 @@ class phpbb_recaptcha extends phpbb_default_captcha
$http_request .= $req;
$response = '';
- if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
- die ('Could not open socket');
+ if (false == ($fs = @fsockopen($host, $port, $errno, $errstr, 10)))
+ {
+ trigger_error('Could not open socket', E_USER_ERROR);
}
fwrite($fs, $http_request);
- while ( !feof($fs) )
- $response .= fgets($fs, 1160); // One TCP-IP packet
+ while (!feof($fs))
+ {
+ // One TCP-IP packet
+ $response .= fgets($fs, 1160);
+ }
fclose($fs);
$response = explode("\r\n\r\n", $response, 2);
return $response;
}
-
/**
- * Calls an HTTP POST function to verify if the user's guess was correct
- * @param array $extra_params an array of extra variables to post to the server
- * @return ReCaptchaResponse
- */
- function recaptcha_check_answer ($extra_params = array())
+ * Calls an HTTP POST function to verify if the user's guess was correct
+ * @param array $extra_params an array of extra variables to post to the server
+ * @return ReCaptchaResponse
+ */
+ function recaptcha_check_answer($extra_params = array())
{
global $config, $user;
+
//discard spam submissions
- if ($this->challenge == null || strlen($this->challenge) == 0 || $this->response == null || strlen($this->response) == 0)
+ if ($this->challenge == null || strlen($this->challenge) == 0 || $this->response == null || strlen($this->response) == 0)
{
- return $user->lang['RECAPTCHA_INCORRECT'];
+ return $user->lang['RECAPTCHA_INCORRECT'];
}
- $response = $this->_recaptcha_http_post ($this->recaptcha_verify_server, "/verify",
- array (
- 'privatekey' => $config['recaptcha_privkey'],
- 'remoteip' => $user->ip,
- 'challenge' => $this->challenge,
- 'response' => $this->response
- ) + $extra_params
- );
-
- $answers = explode ("\n", $response[1]);
-
- if (trim ($answers[0]) === 'true')
+ $response = $this->_recaptcha_http_post($this->recaptcha_verify_server, '/verify',
+ array(
+ 'privatekey' => $config['recaptcha_privkey'],
+ 'remoteip' => $user->ip,
+ 'challenge' => $this->challenge,
+ 'response' => $this->response
+ ) + $extra_params
+ );
+
+ $answers = explode("\n", $response[1]);
+
+ if (trim($answers[0]) === 'true')
{
$this->solved = true;
return false;
}
- else
+ else
{
if ($answers[1] === 'incorrect-captcha-sol')
{
@@ -291,22 +293,24 @@ class phpbb_recaptcha extends phpbb_default_captcha
}
}
}
-
- /**
- * Encodes the given data into a query string format
- * @param $data - array of string elements to be encoded
- * @return string - encoded request
- */
- function _recaptcha_qsencode ($data)
+
+ /**
+ * Encodes the given data into a query string format
+ * @param $data - array of string elements to be encoded
+ * @return string - encoded request
+ */
+ function _recaptcha_qsencode($data)
{
$req = '';
- foreach ( $data as $key => $value )
+ foreach ($data as $key => $value)
{
- $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
+ $req .= $key . '=' . urlencode(stripslashes($value)) . '&';
}
+
// Cut the last '&'
- $req=substr($req,0,strlen($req)-1);
+ $req = substr($req, 0, strlen($req) - 1);
return $req;
}
}
+?> \ No newline at end of file
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 78905beff6..f958a204b6 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -670,17 +670,17 @@ function phpbb_chmod($filename, $perms = CHMOD_READ)
}
/**
- * Test if a file/directory is writable
- *
- * This function calls the native is_writable() when not running under
- * Windows and it is not disabled.
- *
- * @param string $file Path to perform write test on
- * @return bool True when the path is writable, otherwise false.
- */
+* Test if a file/directory is writable
+*
+* This function calls the native is_writable() when not running under
+* Windows and it is not disabled.
+*
+* @param string $file Path to perform write test on
+* @return bool True when the path is writable, otherwise false.
+*/
function phpbb_is_writable($file)
{
- if (substr(PHP_OS, 0, 3) === 'WIN' || !function_exists('is_writable'))
+ if (strtolower(substr(PHP_OS, 0, 3)) === 'win' || !function_exists('is_writable'))
{
if (file_exists($file))
{
@@ -714,7 +714,6 @@ function phpbb_is_writable($file)
else
{
// file does not exist test if we can write to the directory
-
$dir = dirname($file);
if (file_exists($dir) && is_dir($dir) && phpbb_is_writable($dir))
@@ -722,6 +721,7 @@ function phpbb_is_writable($file)
return true;
}
}
+
return false;
}
else
@@ -2585,7 +2585,7 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
{
include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
}
-
+
$err = '';
// Make sure user->setup() has been called
@@ -2700,14 +2700,12 @@ function login_box($redirect = '', $l_explain = '', $l_success = '', $admin = fa
$captcha->init(CONFIRM_LOGIN);
$captcha->reset();
-
$template->assign_vars(array(
'S_CONFIRM_CODE' => true,
'CONFIRM' => $captcha->get_template(''),
));
$err = $user->lang[$result['error_msg']];
-
break;
case LOGIN_ERROR_PASSWORD_CONVERT:
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index ee9867b1f1..0345f039a3 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -2077,8 +2077,8 @@ function avatar_gallery($category, $avatar_select, $items_per_column, $block_var
if (preg_match('#^[^&\'"<>]+\.(?:gif|png|jpe?g)$#i', $sub_file))
{
$avatar_list[$file][$avatar_row_count][$avatar_col_count] = array(
- 'file' => rawurlencode ($file) . '/' . rawurlencode ($sub_file),
- 'filename' => rawurlencode ($sub_file),
+ 'file' => rawurlencode($file) . '/' . rawurlencode($sub_file),
+ 'filename' => rawurlencode($sub_file),
'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $sub_file))),
);
$avatar_col_count++;
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index e039fce6e1..8c6606d680 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -949,7 +949,7 @@ class session
WHERE last_login < ' . (time() - (86400 * (int) $config['max_autologin_time']));
$db->sql_query($sql);
}
-
+
// only called from CRON; should be a safe workaround until the infrastructure gets going
if (!class_exists('captcha_factory'))
{
@@ -961,7 +961,6 @@ class session
return;
}
-
/**
* Sets a cookie
*
diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php
index 958369a03e..06606f602f 100644
--- a/phpBB/includes/ucp/ucp_register.php
+++ b/phpBB/includes/ucp/ucp_register.php
@@ -42,7 +42,8 @@ class ucp_register
$submit = (isset($_POST['submit'])) ? true : false;
$change_lang = request_var('change_lang', '');
$user_lang = request_var('lang', $user->lang_name);
- $confirm_refresh = (isset($_POST['confirm_refresh']) && $config['confirm_refresh']) ? ((!empty($_POST['confirm_refresh'])) ? 1 : 0) : false;
+ $confirm_refresh= (isset($_POST['confirm_refresh']) && $config['confirm_refresh']) ? ((!empty($_POST['confirm_refresh'])) ? 1 : 0) : false;
+
if ($agreed)
{
add_form_key('ucp_register');
@@ -52,14 +53,13 @@ class ucp_register
add_form_key('ucp_register_terms');
}
-
if ($config['enable_confirm'])
{
include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
$captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$captcha->init(CONFIRM_REG);
}
-
+
if ($change_lang || $user_lang != $config['default_lang'])
{
$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
@@ -94,7 +94,7 @@ class ucp_register
{
$add_lang = ($change_lang) ? '&amp;change_lang=' . urlencode($change_lang) : '';
$add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : '';
-
+
$s_hidden_fields = array();
// If we change the language, we want to pass on some more possible parameter.
@@ -108,7 +108,7 @@ class ucp_register
'lang' => $user->lang_name,
'tz' => request_var('tz', (float) $config['board_timezone']),
));
-
+
if ($config['enable_confirm'])
{
$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
@@ -198,10 +198,12 @@ class ucp_register
'tz' => array('num', false, -14, 14),
'lang' => array('match', false, '#^[a-z_\-]{2,}$#i'),
));
+
if (!check_form_key('ucp_register'))
{
$error[] = $user->lang['FORM_INVALID'];
}
+
// Replace "error" strings with their real, localised form
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
@@ -216,11 +218,13 @@ class ucp_register
{
$captcha->reset();
}
+
if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
{
$error[] = $user->lang['TOO_MANY_REGISTERS'];
}
}
+
// DNSBL check
if ($config['check_dnsbl'])
{
@@ -424,7 +428,6 @@ class ucp_register
$confirm_image = '';
// Visual Confirmation - Show images
-
if ($config['enable_confirm'])
{
if ($change_lang || $confirm_refresh)
@@ -434,13 +437,12 @@ class ucp_register
else
{
$str = '';
-
}
+
$template->assign_vars(array(
'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'),
'S_CAPTCHA' => $captcha->get_template(),
));
-
}
//
@@ -455,7 +457,7 @@ class ucp_register
$l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE'];
break;
}
-
+
$template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'USERNAME' => $data['username'],
@@ -474,8 +476,7 @@ class ucp_register
'S_COPPA' => $coppa,
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
- )
- );
+ ));
//
$user->profile_fields = array();
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index fe855496e4..a77896c470 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -677,7 +677,7 @@ function database_update_info()
// No changes from 3.0.5-RC1 to 3.0.5
'3.0.5-RC1' => array(),
-
+
// No changes from 3.0.5
'3.0.5' => array(),
);
@@ -1015,13 +1015,12 @@ function change_database_data(&$no_updates, $version)
// No changes from 3.0.5-RC1 to 3.0.5
case '3.0.5-RC1':
break;
-
-
-
+
case '3.0.5':
// TODO: smarter detection here; problem without GD.
set_config('captcha_plugin', 'phpbb_captcha_nogd');
+ $no_updates = false;
break;
}
}
diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php
index fec608ed80..c1d6e7fbeb 100644
--- a/phpBB/language/en/acp/board.php
+++ b/phpBB/language/en/acp/board.php
@@ -257,7 +257,7 @@ $lang = array_merge($lang, array(
'CAPTCHA_NO_GD' => 'CAPTCHA without GD',
'CAPTCHA_PREVIEW_MSG' => 'Your changes to the visual confirmation setting were not saved. This is just a preview.',
'CAPTCHA_PREVIEW_EXPLAIN' => 'The CAPTCHA as it would look like using the current selection.',
-
+
'CAPTCHA_SELECT' => 'Installed CAPTCHA plugins',
'CAPTCHA_SELECT_EXPLAIN' => 'The dropdown holds the CAPTCHA plugins recognized by the board. Gray entries are not available right now and might need configuration prior to use.',
'CAPTCHA_CONFIGURE' => 'Configure CAPTCHAs',
diff --git a/phpBB/posting.php b/phpBB/posting.php
index 18c5b2fa7c..99d9a59925 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -51,7 +51,7 @@ if ($config['enable_post_confirm'] && !$user->data['is_registered'])
$captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$captcha->init(CONFIRM_POST);
}
-
+
// Was cancel pressed? If so then redirect to the appropriate page
if ($cancel || ($current_time - $lastclick < 2 && $submit))
{
@@ -1016,10 +1016,12 @@ if ($submit || $preview || $refresh)
}
$redirect_url = submit_post($mode, $post_data['post_subject'], $post_data['username'], $post_data['topic_type'], $poll, $data, $update_message);
+
if ($config['enable_post_confirm'] && !$user->data['is_registered'] && in_array($mode, array('quote', 'post', 'reply')))
{
$captcha->reset();
}
+
// Check the permissions for post approval, as well as the queue trigger where users are put on approval with a post count lower than specified. Moderators are not affected.
if ((($config['enable_queue_trigger'] && $user->data['user_posts'] < $config['queue_trigger_posts']) || !$auth->acl_get('f_noapprove', $data['forum_id'])) && !$auth->acl_get('m_approve', $data['forum_id']))
{
@@ -1242,7 +1244,6 @@ if ($config['enable_post_confirm'] && !$user->data['is_registered'] && $solved_c
{
$captcha->reset();
-
$template->assign_vars(array(
'S_CONFIRM_CODE' => true,
'CONFIRM' => $captcha->get_template(),
ref='#n2598'>2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068
# Latest versions of po files are at http://www.mandrivalinux.com/l10n/am.php3
# Copyright (C) 2004 Mandriva SA
# Alemayehu Gemeda <alemayehu@gmx.at>, 2004.
#
msgid ""
msgstr ""
"Project-Id-Version: rpmdrake\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-10-01 15:43+0200\n"
"PO-Revision-Date: 2004-04-19 13:59+0200\n"
"Last-Translator: Alemayehu Gemeda <alemayehu@gmx.at>\n"
"Language-Team: Amharic <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: ../MandrivaUpdate:104 ../Rpmdrake/gui.pm:858
#, c-format
msgid ""
"The list of updates is empty. This means that either there is\n"
"no available update for the packages installed on your computer,\n"
"or you already installed all of them."
msgstr ""

#: ../MandrivaUpdate:109 ../rpmdrake:88 ../rpmdrake:637 ../rpmdrake.pm:184
#, c-format
msgid "Software Management"
msgstr ""

#: ../MandrivaUpdate:126
#, c-format
msgid "Here is the list of software package updates"
msgstr ""

#: ../MandrivaUpdate:132
#, c-format
msgid "Name"
msgstr "ስም"

#: ../MandrivaUpdate:133 ../rpmdrake:263
#, fuzzy, c-format
msgid "Version"
msgstr "ዝርያ"

#: ../MandrivaUpdate:134 ../rpmdrake:267
#, c-format
msgid "Release"
msgstr ""

#: ../MandrivaUpdate:135
#, fuzzy, c-format
msgid "Arch"
msgstr "መዝገብ ቤት"

#: ../MandrivaUpdate:148 ../Rpmdrake/edit_urpm_sources.pm:1118
#, c-format
msgid "Help"
msgstr "መረጃ"

#: ../MandrivaUpdate:152 ../rpmdrake:572 ../rpmdrake.pm:780
#, c-format
msgid "Select all"
msgstr "ሁሉንም ምረጡ"

#: ../MandrivaUpdate:165 ../rpmdrake.pm:784
#, c-format
msgid "Update"
msgstr "አሻሽል"

#: ../MandrivaUpdate:173 ../rpmdrake:583
#, c-format
msgid "Quit"
msgstr "ውጣ"

#: ../Rpmdrake/edit_urpm_sources.pm:61
#, c-format
msgid "CD-ROM"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:62
#, c-format
msgid "FTP"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:63 ../Rpmdrake/edit_urpm_sources.pm:73
#, fuzzy, c-format
msgid "Local"
msgstr "የቅርብ ፋይሎች"

#: ../Rpmdrake/edit_urpm_sources.pm:64
#, c-format
msgid "HTTP"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:65
#, c-format
msgid "HTTPS"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:66 ../Rpmdrake/edit_urpm_sources.pm:69
#, c-format
msgid "NFS"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:67
#, fuzzy, c-format
msgid "Removable"
msgstr "አስወግድ"

#: ../Rpmdrake/edit_urpm_sources.pm:68
#, c-format
msgid "rsync"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:72
#, c-format
msgid "Mirror list"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:117
#, c-format
msgid "Choose media type"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:118
#, c-format
msgid ""
"In order to keep your system secure and stable, you must at a minimum set "
"up\n"
"sources for official security and stability updates. You can also choose to "
"set\n"
"up a fuller set of sources which includes the complete official Mandriva\n"
"repositories, giving you access to more software than can fit on the "
"Mandriva\n"
"discs. Please choose whether to configure update sources only, or the full "
"set\n"
"of sources."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:125
#, c-format
msgid "Full set of sources"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:125
#, c-format
msgid "Update sources only"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:129
#, c-format
msgid ""
"This will attempt to install all official sources corresponding to your\n"
"distribution (%s).\n"
"\n"
"I need to contact the Mandriva website to get the mirror list.\n"
"Please check that your network is currently running.\n"
"\n"
"Is it ok to continue?"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:139
#, c-format
msgid "Please wait, adding media..."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:147
#, c-format
msgid "Add a medium"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:151
#, c-format
msgid "Local files"
msgstr "የቅርብ ፋይሎች"

#: ../Rpmdrake/edit_urpm_sources.pm:151
#, fuzzy, c-format
msgid "Medium path:"
msgstr "መሀከለኛ"

#: ../Rpmdrake/edit_urpm_sources.pm:152
#, c-format
msgid "FTP server"
msgstr "የFTP ተጠሪ"

#: ../Rpmdrake/edit_urpm_sources.pm:152 ../Rpmdrake/edit_urpm_sources.pm:153
#: ../Rpmdrake/edit_urpm_sources.pm:154 ../Rpmdrake/edit_urpm_sources.pm:457
#, c-format
msgid "URL:"
msgstr "URL፦"

#: ../Rpmdrake/edit_urpm_sources.pm:153
#, fuzzy, c-format
msgid "RSYNC server"
msgstr "የFTP ተጠሪ"

#: ../Rpmdrake/edit_urpm_sources.pm:154
#, c-format
msgid "HTTP server"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:155
#, c-format
msgid "Removable device"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:155
#, c-format
msgid "Path or mount point:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:173
#, c-format
msgid "Browse..."
msgstr "ቃኝ..."

#: ../Rpmdrake/edit_urpm_sources.pm:200
#, c-format
msgid "Login:"
msgstr "ዝምብሎ ይግባ:"

#: ../Rpmdrake/edit_urpm_sources.pm:200 ../Rpmdrake/edit_urpm_sources.pm:557
#: ../rpmdrake.pm:132
#, c-format
msgid "Password:"
msgstr "ሚስጢራዊ ቃል"

#: ../Rpmdrake/edit_urpm_sources.pm:206
#, fuzzy, c-format
msgid "Medium name:"
msgstr "መሀከለኛ"

#: ../Rpmdrake/edit_urpm_sources.pm:212
#, c-format
msgid "Create media for a whole distribution"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:216
#, c-format
msgid "Tag this medium as an update medium"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:226
#, c-format
msgid "You need to fill up at least the two first entries."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:230
#, c-format
msgid ""
"There is already a medium by that name, do you\n"
"really want to replace it?"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:242
#, c-format
msgid "Adding a medium:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:244
#, c-format
msgid "Type of medium:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:254 ../Rpmdrake/edit_urpm_sources.pm:368
#: ../Rpmdrake/edit_urpm_sources.pm:466 ../Rpmdrake/edit_urpm_sources.pm:493
#: ../Rpmdrake/edit_urpm_sources.pm:574 ../Rpmdrake/edit_urpm_sources.pm:638
#: ../Rpmdrake/edit_urpm_sources.pm:740 ../Rpmdrake/gui.pm:558
#: ../Rpmdrake/init.pm:149 ../Rpmdrake/pkg.pm:201 ../Rpmdrake/pkg.pm:717
#: ../rpmdrake.pm:293 ../rpmdrake.pm:630 ../rpmdrake.pm:703 ../rpmdrake.pm:776
#, c-format
msgid "Cancel"
msgstr "ተወው"

#: ../Rpmdrake/edit_urpm_sources.pm:256 ../Rpmdrake/edit_urpm_sources.pm:370
#: ../Rpmdrake/edit_urpm_sources.pm:493 ../Rpmdrake/edit_urpm_sources.pm:564
#: ../Rpmdrake/edit_urpm_sources.pm:637 ../Rpmdrake/edit_urpm_sources.pm:733
#: ../Rpmdrake/edit_urpm_sources.pm:806 ../Rpmdrake/edit_urpm_sources.pm:920
#: ../Rpmdrake/edit_urpm_sources.pm:1119 ../Rpmdrake/gui.pm:558
#: ../Rpmdrake/gui.pm:574 ../Rpmdrake/gui.pm:579 ../Rpmdrake/init.pm:149
#: ../Rpmdrake/pkg.pm:529 ../Rpmdrake/pkg.pm:717 ../Rpmdrake/rpmnew.pm:180
#: ../rpmdrake.pm:123 ../rpmdrake.pm:231 ../rpmdrake.pm:296 ../rpmdrake.pm:630
#, c-format
msgid "Ok"
msgstr "እሺ"

#: ../Rpmdrake/edit_urpm_sources.pm:311
#, c-format
msgid "Global options for package installation"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:313
#, c-format
msgid "never"
msgstr "በፍጹም"

#: ../Rpmdrake/edit_urpm_sources.pm:313
#, c-format
msgid "always"
msgstr "ሁል ጊዜ"

#: ../Rpmdrake/edit_urpm_sources.pm:318 ../Rpmdrake/edit_urpm_sources.pm:350
#, fuzzy, c-format
msgid "Never"
msgstr "በፍጹም"

#: ../Rpmdrake/edit_urpm_sources.pm:319 ../Rpmdrake/edit_urpm_sources.pm:353
#, c-format
msgid "On-demand"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:320 ../Rpmdrake/edit_urpm_sources.pm:357
#, fuzzy, c-format
msgid "Update-only"
msgstr "አሻሽል"

#: ../Rpmdrake/edit_urpm_sources.pm:321 ../Rpmdrake/edit_urpm_sources.pm:360
#, fuzzy, c-format
msgid "Always"
msgstr "ሁል ጊዜ"

#: ../Rpmdrake/edit_urpm_sources.pm:329
#, c-format
msgid "Verify RPMs to be installed:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:334
#, c-format
msgid "Download program to use:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:341
#, c-format
msgid "XML meta-data download policy:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:348
#, c-format
msgid ""
"For remote media, specify when XML meta-data (file lists, changelogs & "
"informations) are downloaded."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:351
#, c-format
msgid "For remote media, XML meta-data are never downloaded."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:354
#, c-format
msgid "(This is the default)"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:355
#, c-format
msgid "The specific XML info file is downloaded when clicking on package."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:358
#, c-format
msgid ""
"Updating media implies updating XML info files already required at least "
"once."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:361
#, c-format
msgid "All XML info files are downloaded when adding or updating media."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:390
#, c-format
msgid "Source Removal"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:392
#, c-format
msgid "Are you sure you want to remove source \"%s\"?"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:393
#, c-format
msgid "Are you sure you want to remove the following sources ?"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:399
#, c-format
msgid "Please wait, removing medium..."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:447
#, c-format
msgid "Edit a medium"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:454
#, c-format
msgid "Editing medium \"%s\":"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:458
#, c-format
msgid "Downloader:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:470
#, c-format
msgid "Save changes"
msgstr "ለውጦች አስቀምጣቸው"

#: ../Rpmdrake/edit_urpm_sources.pm:479
#, c-format
msgid "Proxy..."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:491
#, c-format
msgid "You need to insert the medium to continue"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:492
#, c-format
msgid ""
"In order to save the changes, you need to insert the medium in the drive."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:527
#, c-format
msgid "Configure proxies"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:540
#, c-format
msgid "Proxy settings for media \"%s\""
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:541
#, c-format
msgid "Global proxy settings"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:543
#, c-format
msgid ""
"If you need a proxy, enter the hostname and an optional port (syntax: "
"<proxyhost[:port]>):"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:546
#, c-format
msgid "Proxy hostname:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:549
#, c-format
msgid "You may specify a user/password for the proxy authentication:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:552
#, c-format
msgid "User:"
msgstr "ተጠቃሚ፦"

#: ../Rpmdrake/edit_urpm_sources.pm:648
#, c-format
msgid "Add a parallel group"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:648
#, c-format
msgid "Edit a parallel group"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:672
#, c-format
msgid "Add a medium limit"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:672
#, c-format
msgid "Choose a medium for adding in the media limit:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:689
#, c-format
msgid "Add a host"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:689
#, c-format
msgid "Type in the hostname or IP address of the host to add:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:703
#, c-format
msgid "Editing parallel group \"%s\":"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:707
#, c-format
msgid "Group name:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:708
#, c-format
msgid "Protocol:"
msgstr "ፕሮቶኮል:"

#: ../Rpmdrake/edit_urpm_sources.pm:710
#, c-format
msgid "Media limit:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:715 ../Rpmdrake/edit_urpm_sources.pm:724
#: ../Rpmdrake/edit_urpm_sources.pm:908 ../Rpmdrake/edit_urpm_sources.pm:1106
#, c-format
msgid "Add"
msgstr "ጨምር"

#: ../Rpmdrake/edit_urpm_sources.pm:716 ../Rpmdrake/edit_urpm_sources.pm:725
#: ../Rpmdrake/edit_urpm_sources.pm:786 ../Rpmdrake/edit_urpm_sources.pm:912
#: ../Rpmdrake/edit_urpm_sources.pm:1096
#, c-format
msgid "Remove"
msgstr "አስወግድ"

#: ../Rpmdrake/edit_urpm_sources.pm:719
#, c-format
msgid "Hosts:"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:755
#, c-format
msgid "Configure parallel urpmi (distributed execution of urpmi)"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:759
#, c-format
msgid "Group"
msgstr "የውይይት መድረክ"

#: ../Rpmdrake/edit_urpm_sources.pm:759
#, c-format
msgid "Protocol"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:759
#, c-format
msgid "Media limit"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:760
#, c-format
msgid "Command"
msgstr "ትእዛዝ"

#: ../Rpmdrake/edit_urpm_sources.pm:770 ../Rpmdrake/formatting.pm:127
#: ../Rpmdrake/gui.pm:790 ../Rpmdrake/pkg.pm:118 ../Rpmdrake/pkg.pm:163
#: ../Rpmdrake/pkg.pm:171 ../Rpmdrake/pkg.pm:192 ../Rpmdrake/rpmnew.pm:76
#, c-format
msgid "(none)"
msgstr "(ምንም)"

#: ../Rpmdrake/edit_urpm_sources.pm:790
#, c-format
msgid "Edit..."
msgstr "አስተካክል"

#: ../Rpmdrake/edit_urpm_sources.pm:798
#, c-format
msgid "Add..."
msgstr "ጨምር..."

#: ../Rpmdrake/edit_urpm_sources.pm:814
#, c-format
msgid "Manage keys for digital signatures of packages"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:820 ../Rpmdrake/edit_urpm_sources.pm:1021
#, c-format
msgid "Medium"
msgstr "መሀከለኛ"

#: ../Rpmdrake/edit_urpm_sources.pm:827
#, c-format
msgid ""
"_:cryptographic keys\n"
"Keys"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:850
#, c-format
msgid "no name found, key doesn't exist in rpm keyring!"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:870
#, c-format
msgid "Add a key"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:870
#, c-format
msgid "Choose a key for adding to the medium %s"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:889
#, c-format
msgid "Remove a key"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:890
#, c-format
msgid ""
"Are you sure you want to remove the key %s from medium %s?\n"
"(name of the key: %s)"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:929 ../Rpmdrake/edit_urpm_sources.pm:1089
#, c-format
msgid "Configure media"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:936 ../Rpmdrake/edit_urpm_sources.pm:937
#: ../Rpmdrake/edit_urpm_sources.pm:938 ../rpmdrake:462 ../rpmdrake:465
#: ../rpmdrake:470 ../rpmdrake:485 ../rpmdrake:486
#, c-format
msgid "/_File"
msgstr "/ፋይል (_F)"

#: ../Rpmdrake/edit_urpm_sources.pm:937
#, fuzzy, c-format
msgid "/_Update"
msgstr "አሻሽል"

#: ../Rpmdrake/edit_urpm_sources.pm:937
#, fuzzy, c-format
msgid "<control>U"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:938
#, fuzzy, c-format
msgid "/Close"
msgstr "ዝጋ"

#: ../Rpmdrake/edit_urpm_sources.pm:938
#, fuzzy, c-format
msgid "<control>W"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:939 ../Rpmdrake/edit_urpm_sources.pm:940
#: ../Rpmdrake/edit_urpm_sources.pm:941 ../Rpmdrake/edit_urpm_sources.pm:942
#: ../Rpmdrake/edit_urpm_sources.pm:943 ../Rpmdrake/edit_urpm_sources.pm:944
#: ../rpmdrake:459 ../rpmdrake:489 ../rpmdrake:493 ../rpmdrake:497
#: ../rpmdrake:536
#, c-format
msgid "/_Options"
msgstr "/ምርጫዎች (_O)"

#: ../Rpmdrake/edit_urpm_sources.pm:940
#, fuzzy, c-format
msgid "/_Global options"
msgstr "/ምርጫዎች (_O)"

#: ../Rpmdrake/edit_urpm_sources.pm:940
#, fuzzy, c-format
msgid "<control>G"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:960
#, c-format
msgid "/_Add media"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:960 ../Rpmdrake/edit_urpm_sources.pm:961
#, fuzzy, c-format
msgid "<control>A"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:961
#, c-format
msgid "/_Add a custom medium"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:962
#, c-format
msgid "/Manage _keys"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:942
#, fuzzy, c-format
msgid "<control>K"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:943
#, c-format
msgid "/_Parallel"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:943
#, fuzzy, c-format
msgid "<control>P"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:944
#, c-format
msgid "/P_roxy"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:944
#, fuzzy, c-format
msgid "<control>R"
msgstr "<ኮንትሮል>Q"

#: ../Rpmdrake/edit_urpm_sources.pm:946 ../Rpmdrake/edit_urpm_sources.pm:947
#: ../Rpmdrake/edit_urpm_sources.pm:948 ../Rpmdrake/edit_urpm_sources.pm:949
#: ../rpmdrake:501 ../rpmdrake:502 ../rpmdrake:503 ../rpmdrake:504
#, c-format
msgid "/_Help"
msgstr "/መረጃ (_H)"

#: ../Rpmdrake/edit_urpm_sources.pm:947 ../rpmdrake:502
#, c-format
msgid "/_Report Bug"
msgstr "/የሶፍትዌርን ችግር ዘግብ (_R)"

#: ../Rpmdrake/edit_urpm_sources.pm:949 ../rpmdrake:504
#, c-format
msgid "/_About..."
msgstr "/ስለ... (_A)"

#: ../Rpmdrake/edit_urpm_sources.pm:952 ../rpmdrake:507
#, c-format
msgid "Rpmdrake"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:954 ../rpmdrake:509
#, c-format
msgid "Copyright (C) %s by Mandriva"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:956 ../rpmdrake:511
#, c-format
msgid "Rpmdrake is Mandriva Linux package management tool."
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:958 ../rpmdrake:513
#, fuzzy, c-format
msgid "Mandriva Linux"
msgstr "Mandriva Online"

#. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
#. -PO: put here name(s) and email(s) of translator(s) (eg: "John Smith <jsmith@nowhere.com>")
#: ../Rpmdrake/edit_urpm_sources.pm:963 ../rpmdrake:518
#, c-format
msgid "_: Translator(s) name(s) & email(s)\n"
msgstr "Alemayehu <alemayehu@gmx.at>\n"

#: ../Rpmdrake/edit_urpm_sources.pm:1018 ../Rpmdrake/pkg.pm:271
#, c-format
msgid "Enabled"
msgstr "ያስችላል"

#: ../Rpmdrake/edit_urpm_sources.pm:1019
#, fuzzy, c-format
msgid "Updates"
msgstr "አሻሽል"

#: ../Rpmdrake/edit_urpm_sources.pm:1020
#, c-format
msgid "Type"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:1035
#, c-format
msgid "This medium needs to be updated to be usable. Update it now ?"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:1066
#, c-format
msgid ""
"Unable to update medium, errors reported:\n"
"\n"
"%s"
msgstr ""

#: ../Rpmdrake/edit_urpm_sources.pm:1100
#, c-format
msgid "Edit"
msgstr "አስተካክል"

#: ../Rpmdrake/edit_urpm_sources.pm:1142
#, c-format
msgid ""
"Packages database is locked. Please close other applications\n"
"working with packages database (do you have another media\n"
"manager on another desktop, or are you currently installing\n"
"packages as well?)."
msgstr ""

#: ../Rpmdrake/formatting.pm:101
#, fuzzy, c-format
msgid "None (installed)"
msgstr "ትከል"

#: ../Rpmdrake/formatting.pm:164
#, c-format
msgid "%s of additional disk space will be used."
msgstr ""

#: ../Rpmdrake/formatting.pm:165
#, c-format
msgid "%s of disk space will be freed."
msgstr ""

#: ../Rpmdrake/gui.pm:95 ../Rpmdrake/gui.pm:179 ../Rpmdrake/gui.pm:181
#: ../Rpmdrake/pkg.pm:184
#, c-format
msgid "(Not available)"
msgstr ""

#: ../Rpmdrake/gui.pm:123 ../Rpmdrake/gui.pm:197
#, c-format
msgid "Importance: "
msgstr "አስፈላጊነት: "

#: ../Rpmdrake/gui.pm:124 ../Rpmdrake/gui.pm:205
#, c-format
msgid "Reason for update: "
msgstr ""

#: ../Rpmdrake/gui.pm:128
#, c-format
msgid "Security advisory"
msgstr ""

#: ../Rpmdrake/gui.pm:136 ../Rpmdrake/gui.pm:207
#, fuzzy, c-format
msgid "No description"
msgstr "መግለጫ"

#: ../Rpmdrake/gui.pm:169 ../Rpmdrake/gui.pm:236
#, c-format
msgid "Version: "
msgstr "ዝርያ: "

#: ../Rpmdrake/gui.pm:172 ../Rpmdrake/gui.pm:231
#, c-format
msgid "Currently installed version: "
msgstr ""

#: ../Rpmdrake/gui.pm:175
#, fuzzy, c-format
msgid "Group: "
msgstr "የውይይት መድረክ"

#: ../Rpmdrake/gui.pm:176 ../Rpmdrake/gui.pm:237
#, c-format
msgid "Architecture: "
msgstr ""

#: ../Rpmdrake/gui.pm:150 ../Rpmdrake/gui.pm:194
#, c-format
msgid "Size: "
msgstr "መጠን: "

#: ../Rpmdrake/gui.pm:150 ../Rpmdrake/gui.pm:194
#, c-format
msgid "%s KB"
msgstr "%s KB"

#: ../Rpmdrake/gui.pm:151 ../Rpmdrake/gui.pm:186 ../rpmdrake.pm:835
#, c-format
msgid "Medium: "
msgstr ""

#: ../Rpmdrake/gui.pm:189
#, fuzzy, c-format
msgid "URL: "
msgstr "URL፦"

#: ../Rpmdrake/gui.pm:197
#, c-format
msgid "Details:"
msgstr ""

#: ../Rpmdrake/gui.pm:201
#, c-format
msgid "Files:"
msgstr "ፋይሎች:"

#: ../Rpmdrake/gui.pm:165
#, c-format
msgid "Changelog:"
msgstr ""

#: ../Rpmdrake/gui.pm:176
#, fuzzy, c-format
msgid "Files:\n"
msgstr "/ፋይል (_F)"

#: ../Rpmdrake/gui.pm:181
#, c-format
msgid "Changelog:\n"
msgstr ""

#: ../Rpmdrake/gui.pm:191
#, c-format
msgid "Name: "
msgstr "ስም: "

#: ../Rpmdrake/gui.pm:201
#, c-format
msgid "Summary: "
msgstr "ማጠቃለያ፦"

#: ../Rpmdrake/gui.pm:207
#, c-format
msgid "Description: "
msgstr "መግለጫ: "

#: ../Rpmdrake/gui.pm:218 ../Rpmdrake/gui.pm:432 ../Rpmdrake/gui.pm:438
#: ../Rpmdrake/pkg.pm:727 ../rpmdrake.pm:759 ../rpmdrake.pm:874
#, c-format
msgid "Warning"
msgstr "ማስጠንቀቂያ"

#: ../Rpmdrake/gui.pm:220
#, c-format
msgid "The package \"%s\" was found."
msgstr ""

#: ../Rpmdrake/gui.pm:221
#, c-format
msgid "However this package is not in the package list."
msgstr ""

#: ../Rpmdrake/gui.pm:222
#, c-format
msgid "You may want to update your urpmi database."
msgstr ""

#: ../Rpmdrake/gui.pm:224
#, c-format
msgid "Matching packages:"
msgstr ""

#. -PO: this is list fomatting: "- <package_name> (medium: <medium_name>)"
#. -PO: eg: "- rpmdrake (medium: "Main Release"
#: ../Rpmdrake/gui.pm:229
#, c-format
msgid "- %s (medium: %s)"
msgstr ""

#: ../Rpmdrake/gui.pm:433
#, c-format
msgid "Removing package %s would break your system"
msgstr ""

#: ../Rpmdrake/gui.pm:438
#, c-format
msgid ""
"The \"%s\" package is in urpmi skip list.\n"
"Do you want to select it anyway?"
msgstr ""

#: ../Rpmdrake/gui.pm:468 ../Rpmdrake/pkg.pm:642
#, c-format
msgid ""
"Rpmdrake or one of its priority dependencies needs to be updated first. "
"Rpmdrake will then restart."
msgstr ""

#: ../Rpmdrake/gui.pm:582 ../Rpmdrake/gui.pm:612 ../Rpmdrake/gui.pm:614
#, c-format
msgid "More information on package..."
msgstr ""

#: ../Rpmdrake/gui.pm:542
#, c-format
msgid "Please choose"
msgstr ""

#: ../Rpmdrake/gui.pm:543
#, c-format
msgid "The following package is needed:"
msgstr ""

#: ../Rpmdrake/gui.pm:543
#, fuzzy, c-format
msgid "One of the following packages is needed:"
msgstr "የሚከተሉት ጥቅሎች ሊወገዱ ነው"

#. -PO: Keep it short, this is gonna be on a button
#: ../Rpmdrake/gui.pm:558 ../Rpmdrake/gui.pm:563
#, c-format
msgid "More info"
msgstr ""

#: ../Rpmdrake/gui.pm:565
#, c-format
msgid "Information on packages"
msgstr ""

#: ../Rpmdrake/gui.pm:593
#, c-format
msgid "Checking dependencies of package..."
msgstr ""

#: ../Rpmdrake/gui.pm:600
#, c-format
msgid "Some additional packages need to be removed"
msgstr ""

#: ../Rpmdrake/gui.pm:601
#, c-format
msgid ""
"Because of their dependencies, the following package(s) also need to be\n"
"removed:"
msgstr ""

#: ../Rpmdrake/gui.pm:607 ../Rpmdrake/gui.pm:617
#, c-format
msgid "Some packages can't be removed"
msgstr ""

#: ../Rpmdrake/gui.pm:608
#, c-format
msgid ""
"Removing these packages would break your system, sorry:\n"
"\n"
msgstr ""

#: ../Rpmdrake/gui.pm:618 ../Rpmdrake/gui.pm:687
#, c-format
msgid ""
"Because of their dependencies, the following package(s) must be\n"
"unselected now:\n"
"\n"
msgstr ""

#: ../Rpmdrake/gui.pm:648
#, c-format
msgid "Additional packages needed"
msgstr ""

#: ../Rpmdrake/gui.pm:649
#, c-format
msgid ""
"To satisfy dependencies, the following package(s) also need\n"
"to be installed:\n"
"\n"
msgstr ""

#: ../Rpmdrake/gui.pm:663
#, c-format
msgid "%s (belongs to the skip list)"
msgstr ""

#: ../Rpmdrake/gui.pm:667
#, c-format
msgid "One package cannot be installed"
msgstr ""

#: ../Rpmdrake/gui.pm:667
#, fuzzy, c-format
msgid "Some packages can't be installed"
msgstr "ለመትከል የሚፈልጉትን ጥቅል ይምረጡ"

#: ../Rpmdrake/gui.pm:669
#, c-format
msgid ""
"Sorry, the following package cannot be selected:\n"
"\n"
"%s"
msgstr ""

#: ../Rpmdrake/gui.pm:670
#, fuzzy, c-format
msgid ""
"Sorry, the following packages can't be selected:\n"
"\n"
"%s"
msgstr "የሚከተሉት ጥቅሎች ሊተከሉ ነው"

#: ../Rpmdrake/gui.pm:686 ../Rpmdrake/pkg.pm:625
#, c-format
msgid "Some packages need to be removed"
msgstr ""

#: ../Rpmdrake/gui.pm:719
#, c-format
msgid "Error: %s appears to be mounted read-only."
msgstr ""

#: ../Rpmdrake/gui.pm:723
#, c-format
msgid "You need to select some packages first."
msgstr ""

#: ../Rpmdrake/gui.pm:728
#, c-format
msgid "Too many packages are selected"
msgstr ""

#: ../Rpmdrake/gui.pm:729
#, c-format
msgid ""
"Warning: it seems that you are attempting to add so much\n"
"packages that your filesystem may run out of free diskspace,\n"
"during or after package installation ; this is particularly\n"
"dangerous and should be considered with care.\n"
"\n"
"Do you really want to install all the selected packages?"
msgstr ""

#: ../Rpmdrake/gui.pm:755 ../Rpmdrake/open_db.pm:75
#, c-format
msgid "Fatal error"
msgstr ""

#: ../Rpmdrake/gui.pm:756 ../Rpmdrake/open_db.pm:76
#, c-format
msgid "A fatal error occurred: %s."
msgstr ""

#: ../Rpmdrake/gui.pm:774
#, c-format
msgid "Please wait, listing packages..."
msgstr ""

#: ../Rpmdrake/gui.pm:792
#, c-format
msgid "No update"
msgstr ""

#: ../Rpmdrake/gui.pm:816 ../Rpmdrake/icon.pm:35 ../rpmdrake:342
#, c-format
msgid "All"
msgstr "ሁሉንም"

#: ../Rpmdrake/gui.pm:825 ../rpmdrake:187
#, c-format
msgid "Upgradable"
msgstr ""

#: ../Rpmdrake/gui.pm:894 ../rpmdrake:355
#, fuzzy, c-format
msgid "Installed"
msgstr "ትከል"

#: ../Rpmdrake/gui.pm:895 ../rpmdrake:193
#, c-format
msgid "Addable"
msgstr ""

#: ../Rpmdrake/gui.pm:845
#, c-format
msgid "Description not available for this package\n"
msgstr ""

#: ../Rpmdrake/icon.pm:36
#, c-format
msgid "Accessibility"
msgstr "የመገኘት ሁኔታ"

#: ../Rpmdrake/icon.pm:37 ../Rpmdrake/icon.pm:38 ../Rpmdrake/icon.pm:39
#: ../Rpmdrake/icon.pm:40 ../Rpmdrake/icon.pm:41
#, c-format
msgid "Archiving"
msgstr "መዝገብ ቤት"

#: ../Rpmdrake/icon.pm:38
#, c-format
msgid "Backup"
msgstr "ቤካፕ"

#: ../Rpmdrake/icon.pm:39
#, c-format
msgid "Cd burning"
msgstr "ሲዲ ማቃጠል"

#: ../Rpmdrake/icon.pm:40
#, c-format
msgid "Compression"
msgstr "መጠቅጠቅ"

#: ../Rpmdrake/icon.pm:41 ../Rpmdrake/icon.pm:47 ../Rpmdrake/icon.pm:58
#: ../Rpmdrake/icon.pm:72 ../Rpmdrake/icon.pm:90 ../Rpmdrake/icon.pm:111
#: ../Rpmdrake/icon.pm:124 ../Rpmdrake/icon.pm:135 ../Rpmdrake/pkg.pm:86
#, c-format
msgid "Other"
msgstr "ሌላ"

#: ../Rpmdrake/icon.pm:42 ../Rpmdrake/icon.pm:43 ../Rpmdrake/icon.pm:44
#: ../Rpmdrake/icon.pm:45 ../Rpmdrake/icon.pm:46 ../Rpmdrake/icon.pm:47
#, c-format
msgid "Books"
msgstr ""

#: ../Rpmdrake/icon.pm:43
#, c-format
msgid "Computer books"
msgstr ""

#: ../Rpmdrake/icon.pm:44
#, c-format
msgid "Faqs"
msgstr ""

#: ../Rpmdrake/icon.pm:45
#, c-format
msgid "Howtos"
msgstr ""

#: ../Rpmdrake/icon.pm:46
#, c-format
msgid "Literature"
msgstr ""

#: ../Rpmdrake/icon.pm:48
#, c-format
msgid "Communications"
msgstr "መገናኛዎች"

#: ../Rpmdrake/icon.pm:49 ../Rpmdrake/icon.pm:53
#, c-format
msgid "Databases"
msgstr "ዳታቤዝ"

#: ../Rpmdrake/icon.pm:50 ../Rpmdrake/icon.pm:51 ../Rpmdrake/icon.pm:52
#: ../Rpmdrake/icon.pm:53 ../Rpmdrake/icon.pm:54 ../Rpmdrake/icon.pm:55
#: ../Rpmdrake/icon.pm:56 ../Rpmdrake/icon.pm:57 ../Rpmdrake/icon.pm:58
#: ../Rpmdrake/icon.pm:59 ../Rpmdrake/icon.pm:60 ../Rpmdrake/icon.pm:61
#: ../Rpmdrake/icon.pm:62 ../Rpmdrake/icon.pm:173 ../Rpmdrake/icon.pm:174
#: ../Rpmdrake/icon.pm:175
#, c-format
msgid "Development"
msgstr "እድገት"

#: ../Rpmdrake/icon.pm:51
#, c-format
msgid "C"
msgstr "C"

#: ../Rpmdrake/icon.pm:52
#, c-format
msgid "C++"
msgstr ""

#: ../Rpmdrake/icon.pm:54
#, c-format
msgid "GNOME and GTK+"
msgstr ""

#: ../Rpmdrake/icon.pm:55
#, c-format
msgid "Java"
msgstr ""

#: ../Rpmdrake/icon.pm:56
#, c-format
msgid "KDE and Qt"
msgstr ""

#: ../Rpmdrake/icon.pm:57
#, c-format
msgid "Kernel"
msgstr ""

#: ../Rpmdrake/icon.pm:59
#, c-format
msgid "Perl"
msgstr "Perl"

#: ../Rpmdrake/icon.pm:60
#, c-format
msgid "PHP"
msgstr ""

#: ../Rpmdrake/icon.pm:61
#, c-format
msgid "Python"
msgstr ""

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:62 ../Rpmdrake/icon.pm:150
#, c-format
msgid "X11"
msgstr ""

#: ../Rpmdrake/icon.pm:63
#, c-format
msgid "Editors"
msgstr "አርትኢዎች"

#: ../Rpmdrake/icon.pm:64
#, c-format
msgid "Education"
msgstr "ትምህርት"

#: ../Rpmdrake/icon.pm:65
#, c-format
msgid "Emulators"
msgstr "ተስተካካዮች"

#: ../Rpmdrake/icon.pm:66
#, c-format
msgid "File tools"
msgstr "የፋይል መሳሪያዎች"

#: ../Rpmdrake/icon.pm:67 ../Rpmdrake/icon.pm:68 ../Rpmdrake/icon.pm:69
#: ../Rpmdrake/icon.pm:70 ../Rpmdrake/icon.pm:71 ../Rpmdrake/icon.pm:72
#: ../Rpmdrake/icon.pm:73 ../Rpmdrake/icon.pm:74 ../Rpmdrake/icon.pm:75
#, c-format
msgid "Games"
msgstr "ጨዋታዎች"

#: ../Rpmdrake/icon.pm:68
#, c-format
msgid "Adventure"
msgstr "አደገኛ ሁኔታ"

#: ../Rpmdrake/icon.pm:69
#, c-format
msgid "Arcade"
msgstr "አርኬድ"

#: ../Rpmdrake/icon.pm:70
#, c-format
msgid "Boards"
msgstr "ቦርዶች"

#: ../Rpmdrake/icon.pm:71
#, c-format
msgid "Cards"
msgstr "ካርዶች"

#: ../Rpmdrake/icon.pm:73
#, c-format
msgid "Puzzles"
msgstr "እንቆቅልሾች"

#: ../Rpmdrake/icon.pm:74
#, c-format
msgid "Sports"
msgstr "ስፖርት"

#: ../Rpmdrake/icon.pm:75
#, c-format
msgid "Strategy"
msgstr "እቅድ"

#: ../Rpmdrake/icon.pm:76 ../Rpmdrake/icon.pm:77 ../Rpmdrake/icon.pm:80
#: ../Rpmdrake/icon.pm:81 ../Rpmdrake/icon.pm:84 ../Rpmdrake/icon.pm:87
#: ../Rpmdrake/icon.pm:90 ../Rpmdrake/icon.pm:91 ../Rpmdrake/icon.pm:94
#: ../Rpmdrake/icon.pm:97
#, c-format
msgid "Graphical desktop"
msgstr ""

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:79
#, c-format
msgid "Enlightenment"
msgstr ""

#: ../Rpmdrake/icon.pm:80
#, c-format
msgid "FVWM based"
msgstr ""

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:83
#, c-format
msgid "GNOME"
msgstr "ኖም"

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:86
#, c-format
msgid "Icewm"
msgstr ""

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:89
#, c-format
msgid "KDE"
msgstr "KDE"

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:93
#, c-format
msgid "Sawfish"
msgstr "Sawfish"

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:96
#, c-format
msgid "WindowMaker"
msgstr ""

#. -PO: This is a package/product name. Only translate it if needed:
#: ../Rpmdrake/icon.pm:99
#, c-format
msgid "Xfce"
msgstr ""

#: ../Rpmdrake/icon.pm:100
#, c-format
msgid "Graphics"
msgstr "ንድፍ"

#: ../Rpmdrake/icon.pm:101
#, c-format
msgid "Monitoring"
msgstr "መቆጣጠር"

#: ../Rpmdrake/icon.pm:102 ../Rpmdrake/icon.pm:103
#, c-format
msgid "Multimedia"
msgstr "የመገናኛ ብዙሃን"

#: ../Rpmdrake/icon.pm:103 ../Rpmdrake/icon.pm:154
#, c-format
msgid "Video"
msgstr "ቪዲዮ"

#: ../Rpmdrake/icon.pm:104 ../Rpmdrake/icon.pm:105 ../Rpmdrake/icon.pm:106
#: ../Rpmdrake/icon.pm:107 ../Rpmdrake/icon.pm:108 ../Rpmdrake/icon.pm:109
#: ../Rpmdrake/icon.pm:110 ../Rpmdrake/icon.pm:111 ../Rpmdrake/icon.pm:112
#: ../Rpmdrake/icon.pm:113 ../Rpmdrake/icon.pm:134
#, c-format
msgid "Networking"
msgstr "መረብ"

#: ../Rpmdrake/icon.pm:105
#, c-format
msgid "Chat"
msgstr "ውይይት"

#: ../Rpmdrake/icon.pm:106
#, c-format
msgid "File transfer"
msgstr "ፋይል ማዛወር"

#: ../Rpmdrake/icon.pm:107
#, c-format
msgid "IRC"
msgstr "IRC"

#: ../Rpmdrake/icon.pm:108
#, c-format
msgid "Instant messaging"
msgstr "ፈጣን መልእክት"

#: ../Rpmdrake/icon.pm:109 ../Rpmdrake/icon.pm:180
#, c-format
msgid "Mail"
msgstr "ፖስታ"

#: ../Rpmdrake/icon.pm:110
#, c-format
msgid "News"
msgstr "ዜና"

#: ../Rpmdrake/icon.pm:112
#, c-format
msgid "Remote access"
msgstr "በርቀት ማየት "

#: ../Rpmdrake/icon.pm:113
#, c-format
msgid "WWW"
msgstr "WWW"

#: ../Rpmdrake/icon.pm:114
#, c-format
msgid "Office"
msgstr "ቢሮ"

#: ../Rpmdrake/icon.pm:115
#, c-format
msgid "Public Keys"
msgstr ""

#: ../Rpmdrake/icon.pm:116
#, c-format
msgid "Publishing"
msgstr "ማሳተም"

#: ../Rpmdrake/icon.pm:117 ../Rpmdrake/icon.pm:118 ../Rpmdrake/icon.pm:119
#: ../Rpmdrake/icon.pm:120 ../Rpmdrake/icon.pm:121 ../Rpmdrake/icon.pm:122
#: ../Rpmdrake/icon.pm:123 ../Rpmdrake/icon.pm:124 ../Rpmdrake/icon.pm:125
#, c-format
msgid "Sciences"
msgstr "ሳይንስ"

#: ../Rpmdrake/icon.pm:118
#, c-format
msgid "Astronomy"
msgstr "የፈለክ ጥናት"

#: ../Rpmdrake/icon.pm:119
#, c-format
msgid "Biology"
msgstr "ባዮሎጂ"

#: ../Rpmdrake/icon.pm:120
#, c-format
msgid "Chemistry"
msgstr "ኬሚስትሪ"

#: ../Rpmdrake/icon.pm:121
#, c-format
msgid "Computer science"
msgstr "ኮምፒውተር ሳይንስ"

#: ../Rpmdrake/icon.pm:122
#, c-format
msgid "Geosciences"
msgstr "የስነ-ምድር ሳይንስ"

#: ../Rpmdrake/icon.pm:123
#, c-format
msgid "Mathematics"
msgstr "ሂሳብ"

#: ../Rpmdrake/icon.pm:125
#, c-format
msgid "Physics"
msgstr "ፊዚክስ"

#: ../Rpmdrake/icon.pm:126
#, c-format
msgid "Shells"
msgstr "ሼሎች"

#: ../Rpmdrake/icon.pm:127
#, c-format
msgid "Sound"
msgstr "ድምፅ"

#: ../Rpmdrake/icon.pm:128 ../Rpmdrake/icon.pm:129 ../Rpmdrake/icon.pm:130
#: ../Rpmdrake/icon.pm:131 ../Rpmdrake/icon.pm:132 ../Rpmdrake/icon.pm:133
#: ../Rpmdrake/icon.pm:134 ../Rpmdrake/icon.pm:135 ../Rpmdrake/icon.pm:136
#: ../Rpmdrake/icon.pm:137 ../Rpmdrake/icon.pm:138 ../Rpmdrake/icon.pm:139
#: ../Rpmdrake/icon.pm:140 ../Rpmdrake/icon.pm:141 ../Rpmdrake/icon.pm:142
#: ../Rpmdrake/icon.pm:143 ../Rpmdrake/icon.pm:144 ../Rpmdrake/icon.pm:145
#: ../Rpmdrake/icon.pm:146 ../Rpmdrake/icon.pm:147 ../Rpmdrake/icon.pm:148
#, c-format
msgid "System"
msgstr "ሲስተም"

#: ../Rpmdrake/icon.pm:129
#, c-format
msgid "Base"
msgstr ""

#: ../Rpmdrake/icon.pm:130
#, c-format
msgid "Cluster"
msgstr ""

#: ../Rpmdrake/icon.pm:131 ../Rpmdrake/icon.pm:132 ../Rpmdrake/icon.pm:133
#: ../Rpmdrake/icon.pm:134 ../Rpmdrake/icon.pm:135 ../Rpmdrake/icon.pm:136
#: ../Rpmdrake/icon.pm:137 ../Rpmdrake/icon.pm:158
#, c-format
msgid "Configuration"
msgstr "ማስተካከያ"

#: ../Rpmdrake/icon.pm:132
#, c-format
msgid "Boot and Init"
msgstr "ማስጀመሪያ"

#: ../Rpmdrake/icon.pm:133
#, c-format
msgid "Hardware"
msgstr "ሀርድዌር"

#: ../Rpmdrake/icon.pm:136
#, c-format
msgid "Packaging"
msgstr ""

#: ../Rpmdrake/icon.pm:137 ../Rpmdrake/icon.pm:146
#, c-format
msgid "Printing"
msgstr "ህትመት"

#: ../Rpmdrake/icon.pm:138 ../Rpmdrake/icon.pm:139 ../Rpmdrake/icon.pm:140
#: ../Rpmdrake/icon.pm:141 ../Rpmdrake/icon.pm:142
#, c-format
msgid "Fonts"
msgstr "የፊደል ቅርጾች"

#: ../Rpmdrake/icon.pm:139
#, c-format
msgid "Console"
msgstr ""

#: ../Rpmdrake/icon.pm:140
#, c-format
msgid "True type"
msgstr ""

#: ../Rpmdrake/icon.pm:141
#, c-format
msgid "Type1"
msgstr ""

#: ../Rpmdrake/icon.pm:142
#, c-format
msgid "X11 bitmap"
msgstr ""

#: ../Rpmdrake/icon.pm:143
#, fuzzy, c-format
msgid "Internationalization"
msgstr "አቀራረቦች"

#: ../Rpmdrake/icon.pm:144
#, c-format
msgid "Kernel and hardware"
msgstr ""

#: ../Rpmdrake/icon.pm:145
#, c-format
msgid "Libraries"
msgstr ""

#: ../Rpmdrake/icon.pm:147
#, c-format
msgid "Servers"
msgstr "ሰርቨሮች"

#: ../Rpmdrake/icon.pm:151
#, c-format
msgid "Terminals"
msgstr "ተርሚናሎች"

#: ../Rpmdrake/icon.pm:152
#, c-format
msgid "Text tools"
msgstr "የመጻፊያ መሳሪያዎች"

#: ../Rpmdrake/icon.pm:153
#, c-format
msgid "Toys"
msgstr "አሻንጉሊቶች"

#: ../Rpmdrake/icon.pm:157 ../Rpmdrake/icon.pm:158 ../Rpmdrake/icon.pm:159
#: ../Rpmdrake/icon.pm:160 ../Rpmdrake/icon.pm:161 ../Rpmdrake/icon.pm:162
#: ../Rpmdrake/icon.pm:163 ../Rpmdrake/icon.pm:164 ../Rpmdrake/icon.pm:165
#: ../Rpmdrake/icon.pm:166
#, fuzzy, c-format
msgid "Workstation"
msgstr "የቅርብ መረብ ምርጫ"

#: ../Rpmdrake/icon.pm:159
#, fuzzy, c-format
msgid "Console Tools"
msgstr "የፋይል መሳሪያዎች"

#: ../Rpmdrake/icon.pm:160 ../Rpmdrake/icon.pm:175
#, c-format
msgid "Documentation"
msgstr "ማስረጃ"

#: ../Rpmdrake/icon.pm:161
#, c-format
msgid "Game station"
msgstr ""

#: ../Rpmdrake/icon.pm:162
#, fuzzy, c-format
msgid "Internet station"
msgstr "ፈጣን መልእክት"

#: ../Rpmdrake/icon.pm:163
#, fuzzy, c-format
msgid "Multimedia station"
msgstr "የመገናኛ ብዙሃን"

#: ../Rpmdrake/icon.pm:164
#, fuzzy, c-format
msgid "Network Computer (client)"
msgstr "ኮምፒውተር ሳይንስ"

#: ../Rpmdrake/icon.pm:165
#, c-format
msgid "Office Workstation"
msgstr ""

#: ../Rpmdrake/icon.pm:166
#, c-format
msgid "Scientific Workstation"
msgstr ""

#: ../Rpmdrake/icon.pm:167 ../Rpmdrake/icon.pm:169 ../Rpmdrake/icon.pm:170
#: ../Rpmdrake/icon.pm:171 ../Rpmdrake/icon.pm:172
#, c-format
msgid "Graphical Environment"
msgstr ""

#: ../Rpmdrake/icon.pm:169
#, c-format
msgid "GNOME Workstation"
msgstr ""

#: ../Rpmdrake/icon.pm:170
#, fuzzy, c-format
msgid "IceWm Desktop"
msgstr "ሰሌዳ"

#: ../Rpmdrake/icon.pm:171
#, c-format
msgid "KDE Workstation"
msgstr ""

#: ../Rpmdrake/icon.pm:172
#, c-format
msgid "Other Graphical Desktops"
msgstr ""

#: ../Rpmdrake/icon.pm:176 ../Rpmdrake/icon.pm:177 ../Rpmdrake/icon.pm:178
#: ../Rpmdrake/icon.pm:179 ../Rpmdrake/icon.pm:180 ../Rpmdrake/icon.pm:181
#: ../Rpmdrake/icon.pm:182 ../Rpmdrake/icon.pm:183
#, c-format
msgid "Server"
msgstr "ሰርቨር"

#: ../Rpmdrake/icon.pm:177
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"

#: ../Rpmdrake/icon.pm:178
#, c-format
msgid "Database"
msgstr "ዳታቤዝ"

#: ../Rpmdrake/icon.pm:179
#, c-format
msgid "Firewall/Router"
msgstr ""

#: ../Rpmdrake/icon.pm:181
#, c-format
msgid "Mail/Groupware/News"
msgstr ""

#: ../Rpmdrake/icon.pm:182
#, fuzzy, c-format
msgid "Network Computer server"
msgstr "ኮምፒውተር ሳይንስ"

#: ../Rpmdrake/icon.pm:183
#, c-format
msgid "Web/FTP"
msgstr ""

#: ../Rpmdrake/init.pm:48
#, c-format
msgid "Usage: %s [OPTION]..."
msgstr "አጠቃቀም፦ %s [ምርጫ]..."

#: ../Rpmdrake/init.pm:49
#, c-format
msgid "  --auto                 assume default answers to questions"
msgstr ""

#: ../Rpmdrake/init.pm:50
#, c-format
msgid ""
"  --changelog-first      display changelog before filelist in the "
"description window"
msgstr ""

#: ../Rpmdrake/init.pm:51
#, c-format
msgid "  --media=medium1,..     limit to given media"
msgstr ""

#: ../Rpmdrake/init.pm:52
#, c-format
msgid ""
"  --merge-all-rpmnew     propose to merge all .rpmnew/.rpmsave files found"
msgstr ""

#: ../Rpmdrake/init.pm:53
#, c-format
msgid "  --mode=MODE            set mode (install (default), remove, update)"
msgstr ""

#: ../Rpmdrake/init.pm:54
#, c-format
msgid ""
"  --justdb               update the database, but do not modify the "
"filesystem"
msgstr ""

#: ../Rpmdrake/init.pm:55
#, c-format
msgid ""
"  --no-confirmation      don't ask first confirmation question in update mode"
msgstr ""

#: ../Rpmdrake/init.pm:56
#, c-format
msgid "  --no-media-update      don't update media at startup"
msgstr ""

#: ../Rpmdrake/init.pm:58
#, c-format
msgid ""
"  --no-splash            don't ask first confirmation question in update mode"
msgstr ""

#: ../Rpmdrake/init.pm:59
#, c-format
msgid "  --no-verify-rpm        don't verify packages signatures"
msgstr ""

#: ../Rpmdrake/init.pm:58
#, c-format
msgid ""
"  --parallel=alias,host  be in parallel mode, use \"alias\" group, use \"host"
"\" machine to show needed deps"
msgstr ""

#: ../Rpmdrake/init.pm:59
#, c-format
msgid "  --rpm-root=path        use another root for rpm installation"
msgstr ""

#: ../Rpmdrake/init.pm:60
#, c-format
msgid ""
"  --urpmi-root           use another root for urpmi db & rpm installation"
msgstr ""

#: ../Rpmdrake/init.pm:61
#, c-format
msgid "  --root                 force to run as root"
msgstr ""

#: ../Rpmdrake/init.pm:61
#, fuzzy, c-format
msgid "(Deprecated)"
msgstr "ተመርጠዋል"

#: ../Rpmdrake/init.pm:62
#, c-format
msgid "  --run-as-root          force to run as root"
msgstr ""

#: ../Rpmdrake/init.pm:63
#, c-format
msgid "  --search=pkg           run search for \"pkg\""
msgstr ""

#: ../Rpmdrake/init.pm:64
#, c-format
msgid ""
"  --test                 only verify if the installation can be achieved "
"correctly"
msgstr ""

#: ../Rpmdrake/init.pm:65
#, c-format
msgid "  --version              print this tool's version number\n"
msgstr ""

#: ../Rpmdrake/init.pm:146
#, c-format
msgid "Running in user mode"
msgstr ""

#: ../Rpmdrake/init.pm:147
#, c-format
msgid ""
"You are launching this program as a normal user.\n"
"You will not be able to perform modifications on the system,\n"
"but you may still browse the existing database."
msgstr ""

#: ../Rpmdrake/init.pm:155 ../Rpmdrake/init.pm:180
#, c-format
msgid "Welcome"
msgstr "እንኳን ደህና መጡ"

#: ../Rpmdrake/init.pm:166
#, c-format
msgid "The software installation tool can set up media sources."
msgstr ""

#: ../Rpmdrake/init.pm:183
#, c-format
msgid "Do you want to add media sources now?"
msgstr ""

#: ../Rpmdrake/pkg.pm:129
#, c-format
msgid "Getting information from XML meta-data from %s..."
msgstr ""

#: ../Rpmdrake/pkg.pm:133
#, c-format
msgid "Getting '%s' from XML meta-data..."
msgstr ""

#: ../Rpmdrake/pkg.pm:136 ../Rpmdrake/pkg.pm:309 ../Rpmdrake/pkg.pm:645
#: ../Rpmdrake/pkg.pm:802 ../rpmdrake:125 ../rpmdrake.pm:321
#: ../rpmdrake.pm:532
#, c-format
msgid "Please wait"
msgstr "እባክዎ ይጠብቁ"

#: ../Rpmdrake/pkg.pm:148
#, c-format
msgid "No xml info for medium \"%s\", only partial result for package %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:150
#, c-format
msgid ""
"No xml info for medium \"%s\", unable to return any result for package %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:200 ../Rpmdrake/pkg.pm:205
#, c-format
msgid "Downloading package `%s'..."
msgstr ""

#: ../Rpmdrake/pkg.pm:207
#, c-format
msgid "        %s%% of %s completed, ETA = %s, speed = %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:208
#, c-format
msgid "        %s%% completed, speed = %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:251 ../Rpmdrake/pkg.pm:625
#, fuzzy, c-format
msgid "Confirmation"
msgstr "ስየማ"

#: ../Rpmdrake/pkg.pm:252
#, c-format
msgid ""
"I need to contact the mirror to get latest update packages.\n"
"Please check that your network is currently running.\n"
"\n"
"Is it ok to continue?"
msgstr ""

#: ../Rpmdrake/pkg.pm:256
#, c-format
msgid "Do not ask me next time"
msgstr ""

#: ../Rpmdrake/pkg.pm:265
#, c-format
msgid "Already existing update media"
msgstr ""

#: ../Rpmdrake/pkg.pm:266
#, c-format
msgid ""
"You already have at least one update medium configured, but\n"
"all of them are currently disabled. You should run the Software\n"
"Media Manager to enable at least one (check it in the \"%s\"\n"
"column).\n"
"\n"
"Then, restart \"%s\"."
msgstr ""

#: ../Rpmdrake/pkg.pm:276
#, c-format
msgid ""
"You have no configured update media. MandrivaUpdate cannot operate without "
"any update media."
msgstr ""

#: ../Rpmdrake/pkg.pm:277 ../rpmdrake.pm:565
#, c-format
msgid ""
"I need to contact the Mandriva website to get the mirror list.\n"
"Please check that your network is currently running.\n"
"\n"
"Is it ok to continue?"
msgstr ""

#: ../Rpmdrake/pkg.pm:284
#, c-format
msgid "How to choose manually your mirror"
msgstr ""

#: ../Rpmdrake/pkg.pm:285
#, c-format
msgid ""
"You may also choose your desired mirror manually: to do so,\n"
"launch the Software Media Manager, and then add a `Security\n"
"updates' medium.\n"
"\n"
"Then, restart %s."
msgstr ""

#: ../Rpmdrake/pkg.pm:309 ../Rpmdrake/pkg.pm:645
#, c-format
msgid "Package installation..."
msgstr ""

#: ../Rpmdrake/pkg.pm:309 ../Rpmdrake/pkg.pm:645 ../Rpmdrake/pkg.pm:802
#, c-format
msgid "Initializing..."
msgstr ""

#: ../Rpmdrake/pkg.pm:322
#, c-format
msgid "Reading updates description"
msgstr ""

#: ../Rpmdrake/pkg.pm:328 ../Rpmdrake/pkg.pm:404
#, c-format
msgid "Please wait, finding available packages..."
msgstr ""

#: ../Rpmdrake/pkg.pm:334
#, c-format
msgid "Please wait, listing base packages..."
msgstr ""

#: ../Rpmdrake/pkg.pm:393 ../Rpmdrake/pkg.pm:810 ../Rpmdrake/pkg.pm:833
#: ../rpmdrake.pm:770 ../rpmdrake.pm:857 ../rpmdrake.pm:881
#, c-format
msgid "Error"
msgstr "ስህተት"

#: ../Rpmdrake/pkg.pm:401
#, c-format
msgid "Please wait, finding installed packages..."
msgstr ""

#: ../Rpmdrake/pkg.pm:509
#, c-format
msgid "Upgrade information"
msgstr ""

#: ../Rpmdrake/pkg.pm:511
#, c-format
msgid "These packages come with upgrade information"
msgstr ""

#: ../Rpmdrake/pkg.pm:519
#, c-format
msgid "Upgrade information about this package"
msgstr ""

#: ../Rpmdrake/pkg.pm:522
#, c-format
msgid "Upgrade information about package %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:544 ../Rpmdrake/pkg.pm:763
#, c-format
msgid "All requested packages were installed successfully."
msgstr ""

#: ../Rpmdrake/pkg.pm:548 ../Rpmdrake/pkg.pm:737
#, c-format
msgid "Problem during installation"
msgstr ""

#: ../Rpmdrake/pkg.pm:549 ../Rpmdrake/pkg.pm:569 ../Rpmdrake/pkg.pm:739
#, c-format
msgid ""
"There was a problem during the installation:\n"
"\n"
"%s"
msgstr ""

#: ../Rpmdrake/pkg.pm:568
#, fuzzy, c-format
msgid "Installation failed"
msgstr "%s አልተገኘም"

#: ../Rpmdrake/pkg.pm:588
#, c-format
msgid "Checking validity of requested packages..."
msgstr ""

#: ../Rpmdrake/pkg.pm:604
#, c-format
msgid "Unable to get source packages."
msgstr ""

#: ../Rpmdrake/pkg.pm:605
#, c-format
msgid "Unable to get source packages, sorry. %s"
msgstr ""

#: ../Rpmdrake/pkg.pm:606
#, c-format
msgid ""
"\n"
"\n"
"Error(s) reported:\n"
"%s"
msgstr ""

#: ../Rpmdrake/pkg.pm:643
#, fuzzy, c-format
msgid "The following package is going to be installed:"
msgid_plural "The following %d packages are going to be installed:"
msgstr[0] "የሚከተሉት ጥቅሎች ሊተከሉ ነው"
msgstr[1] "የሚከተሉት ጥቅሎች ሊተከሉ ነው"

#: ../Rpmdrake/pkg.pm:628
#, fuzzy, c-format
msgid "Remove one package?"
msgid_plural "Remove %d packages?"
msgstr[0] "በርቀት ማየት "
msgstr[1] "በርቀት ማየት "

#: ../Rpmdrake/pkg.pm:630
#, c-format
msgid "The following package has to be removed for others to be upgraded:"
msgstr ""

#: ../Rpmdrake/pkg.pm:631
#, fuzzy, c-format
msgid "The following packages have to be removed for others to be upgraded:"
msgstr "የሚከተሉት ጥቅሎች ሊወገዱ ነው"

#: ../Rpmdrake/pkg.pm:634
#, c-format
msgid "%s of packages will be retrieved."
msgstr ""

#: ../Rpmdrake/pkg.pm:636
#, c-format
msgid "Is it ok to continue?"
msgstr ""

#: ../Rpmdrake/pkg.pm:701 ../Rpmdrake/pkg.pm:868
#, c-format
msgid "Orphan packages"
msgstr ""

#: ../Rpmdrake/pkg.pm:701
#, fuzzy, c-format
msgid "The following orphan package will be removed."
msgid_plural "The following orphan packages will be removed."
msgstr[0] "የሚከተሉት ጥቅሎች ሊወገዱ ነው"
msgstr[1] "የሚከተሉት ጥቅሎች ሊወገዱ ነው"

#: ../Rpmdrake/pkg.pm:715
#, c-format
msgid "Preparing packages installation..."
msgstr ""

#: ../Rpmdrake/pkg.pm:657
#, fuzzy, c-format
msgid "Preparing package installation transaction..."
msgstr "%s አልተገኘም"

#: ../Rpmdrake/pkg.pm:660
#, c-format
msgid "Installing package `%s' (%s/%s)..."
msgstr ""

#: ../Rpmdrake/pkg.pm:661
#, c-format
msgid "Total: %s/%s"
msgstr ""

#: ../Rpmdrake/pkg.pm:715
#, c-format
msgid "Change medium"
msgstr ""

#: ../Rpmdrake/pkg.pm:716
#, c-format
msgid "Please insert the medium named \"%s\""
msgstr ""

#: ../Rpmdrake/pkg.pm:720
#, c-format
msgid "Verifying package signatures..."
msgstr ""

#: ../Rpmdrake/pkg.pm:738
#, fuzzy, c-format
msgid "%d installation transactions failed"
msgstr "%s አልተገኘም"

#: ../Rpmdrake/pkg.pm:811
#, c-format
msgid "Unrecoverable error: no package found for installation, sorry."
msgstr ""

#: ../Rpmdrake/pkg.pm:750
#, c-format
msgid "Inspecting configuration files..."
msgstr ""

#: ../Rpmdrake/pkg.pm:758
#, c-format
msgid ""
"The installation is finished; everything was installed correctly.\n"
"\n"
"Some configuration files were created as `.rpmnew' or `.rpmsave',\n"
"you may now inspect some in order to take actions:"
msgstr ""

#: ../Rpmdrake/pkg.pm:764
#, c-format
msgid "Looking for \"README\" files..."
msgstr ""

#: ../Rpmdrake/pkg.pm:785
#, c-format
msgid "RPM transaction %d/%d"
msgstr ""

#: ../Rpmdrake/pkg.pm:786
#, fuzzy, c-format
msgid "Unselect all"
msgstr "ሁሉንም ምረጡ"

#: ../Rpmdrake/pkg.pm:787
#, c-format
msgid "Details"
msgstr ""

#: ../Rpmdrake/pkg.pm:832 ../Rpmdrake/pkg.pm:848
#, c-format
msgid "Please wait, removing packages..."
msgstr ""

#: ../Rpmdrake/pkg.pm:831
#, c-format
msgid "Problem during removal"
msgstr ""

#: ../Rpmdrake/pkg.pm:832
#, c-format
msgid ""
"There was a problem during the removal of packages:\n"
"\n"
"%s"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:77
#, c-format
msgid "Inspecting %s"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:102
#, c-format
msgid "Changes:"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:111
#, c-format
msgid ""
"You can either remove the .%s file, use it as main file or do nothing. If "
"unsure, keep the current file (\"%s\")."
msgstr ""

#: ../Rpmdrake/rpmnew.pm:112 ../Rpmdrake/rpmnew.pm:117
#, c-format
msgid "Remove .%s"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:121
#, c-format
msgid "Use .%s as main file"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:125
#, c-format
msgid "Do nothing"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:157
#, c-format
msgid "Installation finished"
msgstr ""

#: ../Rpmdrake/rpmnew.pm:172
#, c-format
msgid "Inspect..."
msgstr ""

#: ../Rpmdrake/rpmnew.pm:190 ../rpmdrake:93
#, c-format
msgid "Please wait, searching..."
msgstr ""

#: ../gurpmi.addmedia:88
#, c-format
msgid "bad <url> (for local directory, the path must be absolute)"
msgstr ""

#: ../gurpmi.addmedia:113
#, c-format
msgid ""
"%s\n"
"\n"
"Is it ok to continue?"
msgstr ""

#: ../gurpmi.addmedia:117
#, c-format
msgid ""
"You are about to add new packages media, %s.\n"
"That means you will be able to add new software packages\n"
"to your system from these new media."
msgstr ""

#: ../gurpmi.addmedia:110
#, c-format
msgid ""
"You are about to add a new packages medium, `%s'.\n"
"That means you will be able to add new software packages\n"
"to your system from that new medium."
msgstr ""

#: ../gurpmi.addmedia:134
#, c-format
msgid "Successfully added media %s."
msgstr ""

#: ../gurpmi.addmedia:135
#, c-format
msgid "Successfully added medium `%s'."
msgstr ""

#: ../rpmdrake:65 ../rpmdrake:186
#, c-format
msgid "Search results"
msgstr ""

#: ../rpmdrake:67
#, c-format
msgid "Search results (none)"
msgstr ""

#: ../rpmdrake:100
#, c-format
msgid "Stop"
msgstr "አቁም"

#: ../rpmdrake:132
#, c-format
msgid "no xml-info available for medium \"%s\""
msgstr ""

#: ../rpmdrake:148 ../rpmdrake:176
#, fuzzy, c-format
msgid "Search aborted"
msgstr "ፈልግ..."

#: ../rpmdrake:189
#, c-format
msgid "Selected"
msgstr "ተመርጠዋል"

#: ../rpmdrake:189
#, c-format
msgid "Not selected"
msgstr ""

#: ../rpmdrake:231
#, c-format
msgid "Selected: %s / Free disk space: %s"
msgstr ""

#: ../rpmdrake:259
#, c-format
msgid "Package"
msgstr ""

#. -PO: "Architecture" but to be kept *small* !!!
#: ../rpmdrake:273
#, fuzzy, c-format
msgid "Arch."
msgstr "መዝገብ ቤት"

#. -PO: "Status" should be kept *small* !!!
#: ../rpmdrake:301
#, c-format
msgid "Status"
msgstr ""

#: ../rpmdrake:356
#, fuzzy, c-format
msgid "Not installed"
msgstr "ትከል"

#: ../rpmdrake:347
#, c-format
msgid "All packages, alphabetical"
msgstr ""

#: ../rpmdrake:355
#, c-format
msgid "All packages, by group"
msgstr ""

#: ../rpmdrake:356
#, c-format
msgid "Leaves only, sorted by install date"
msgstr ""

#: ../rpmdrake:357
#, c-format
msgid "All packages, by update availability"
msgstr ""

#: ../rpmdrake:358
#, c-format
msgid "All packages, by selection state"
msgstr ""

#: ../rpmdrake:359
#, c-format
msgid "All packages, by size"
msgstr ""

#: ../rpmdrake:367
#, c-format
msgid "All packages, by medium repository"
msgstr ""

#. -PO: Backports media are newer but less-tested versions of some packages in main
#. -PO: See http://wiki.mandriva.com/en/Policies/SoftwareMedia#.2Fmain.2Fbackports
#: ../rpmdrake:375
#, fuzzy, c-format
msgid "Backports"
msgstr "ቤካፕ"

#: ../rpmdrake:358
#, c-format
msgid "Meta packages"
msgstr ""

#: ../rpmdrake:359
#, c-format
msgid "Packages with GUI"
msgstr ""

#: ../rpmdrake:360
#, fuzzy, c-format
msgid "All updates"
msgstr "አሻሽል"

#: ../rpmdrake:361
#, c-format
msgid "Security updates"
msgstr ""

#: ../rpmdrake:362
#, c-format
msgid "Bugfixes updates"
msgstr ""

#: ../rpmdrake:363
#, fuzzy, c-format
msgid "General updates"
msgstr "አሻሽል"

#: ../rpmdrake:404
#, c-format
msgid "View"
msgstr "ተመልከት"

#: ../rpmdrake:432
#, fuzzy, c-format
msgid "Filter"
msgstr "/ፋይል (_F)"

#: ../rpmdrake:477
#, c-format
msgid "in names"
msgstr ""

#: ../rpmdrake:421
#, c-format
msgid "in descriptions"
msgstr ""

#: ../rpmdrake:421
#, c-format
msgid "in summaries"
msgstr ""

#: ../rpmdrake:421
#, c-format
msgid "in file names"
msgstr ""

#: ../rpmdrake:459
#, c-format
msgid "/_Select dependencies without asking"
msgstr ""

#: ../rpmdrake:465
#, c-format
msgid "/_Update media"
msgstr ""

#: ../rpmdrake:470
#, fuzzy, c-format
msgid "/_Reset the selection"
msgstr "የመንገድ ምርጫ"

#: ../rpmdrake:485
#, c-format
msgid "/Reload the _packages list"
msgstr ""

#: ../rpmdrake:486
#, c-format
msgid "/_Quit"
msgstr "/ውጣ (_Q)"

#: ../rpmdrake:486
#, c-format
msgid "<control>Q"
msgstr "<ኮንትሮል>Q"

#: ../rpmdrake:493
#, c-format
msgid "/_Media Manager"
msgstr ""

#: ../rpmdrake:497 ../rpmdrake:536
#, c-format
msgid "/_Show automatically selected packages"
msgstr ""

#: ../rpmdrake:547 ../rpmdrake:550 ../rpmdrake:555 ../rpmdrake:587
#, c-format
msgid "/_View"
msgstr "/ተመልከት (_V)"

#: ../rpmdrake:610
#, c-format
msgid "Find:"
msgstr "ፈልግ፦"

#: ../rpmdrake:606
#, c-format
msgid "Find"
msgstr "ፈልግ፦"

#: ../rpmdrake:579
#, c-format
msgid "Apply"
msgstr "ተጠቀም"

#: ../rpmdrake:598
#, c-format
msgid "Quick Introduction"
msgstr ""

#: ../rpmdrake:599