VMM: Updated some messages. (doesn't, isn't) -> (does not, is not) v0.6.x
authorPascal Volk <neverseen@users.sourceforge.net>
Thu, 24 Feb 2011 20:47:35 +0000
branchv0.6.x
changeset 417 8209da83e256
parent 416 f32b323fd347
child 418 542a4d23a9f0
VMM: Updated some messages. (doesn't, isn't) -> (does not, is not) Added missing dots at the end of some sentences.
VirtualMailManager/account.py
VirtualMailManager/alias.py
VirtualMailManager/aliasdomain.py
VirtualMailManager/cli/__init__.py
VirtualMailManager/cli/handler.py
VirtualMailManager/cli/main.py
VirtualMailManager/cli/subcommands.py
VirtualMailManager/domain.py
VirtualMailManager/emailaddress.py
VirtualMailManager/ext/postconf.py
VirtualMailManager/handler.py
VirtualMailManager/password.py
VirtualMailManager/relocated.py
--- a/VirtualMailManager/account.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/account.py	Thu Feb 24 20:47:35 2011 +0000
@@ -56,7 +56,7 @@
             # TP: Hm, what “quotation marks” should be used?
             # If you are unsure have a look at:
             # http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage
-            raise AErr(_(u"The domain '%s' doesn't exist.") %
+            raise AErr(_(u"The domain '%s' does not exist.") %
                        self._addr.domainname, NO_SUCH_DOMAIN)
         self._uid = 0
         self._mail = None
@@ -101,13 +101,14 @@
         """
         if maillocation.dovecot_version > cfg_dget('misc.dovecot_version'):
             raise AErr(_(u"The mailbox format '%(mbfmt)s' requires Dovecot "
-                         u">= v%(version)s") % {'mbfmt': maillocation.mbformat,
+                         u">= v%(version)s.") % {
+                       'mbfmt': maillocation.mbformat,
                        'version': version_str(maillocation.dovecot_version)},
                        INVALID_MAIL_LOCATION)
         if not maillocation.postfix and \
           self._transport.transport.lower() in ('virtual:', 'virtual'):
             raise AErr(_(u"Invalid transport '%(transport)s' for mailbox "
-                         u"format '%(mbfmt)s'") %
+                         u"format '%(mbfmt)s'.") %
                        {'transport': self._transport,
                         'mbfmt': maillocation.mbformat}, INVALID_MAIL_LOCATION)
         self._mail = maillocation
@@ -179,7 +180,7 @@
         """Raise an AccountError if the Account is new - not yet saved in the
         database."""
         if self._new:
-            raise AErr(_(u"The account '%s' doesn't exist.") % self._addr,
+            raise AErr(_(u"The account '%s' does not exist.") % self._addr,
                        NO_SUCH_ACCOUNT)
 
     @property
@@ -263,7 +264,7 @@
             raise AErr(_(u"The account '%s' already exists.") % self._addr,
                        ACCOUNT_EXISTS)
         if not self._passwd:
-            raise AErr(_(u"No password set for '%s'.") % self._addr,
+            raise AErr(_(u"No password set for account: '%s'") % self._addr,
                        ACCOUNT_MISSING_PASSWORD)
         if cfg_dget('misc.dovecot_version') >= 0x10200b02:
             sieve_col = 'sieve'
@@ -321,7 +322,7 @@
         """
         if cfg_dget('misc.dovecot_version') < 0x10102f00:
             raise VMMError(_(u'PostgreSQL-based dictionary quota requires '
-                             u'Dovecot >= v1.1.2'), VMM_ERROR)
+                             u'Dovecot >= v1.1.2.'), VMM_ERROR)
         self._chk_state()
         assert isinstance(quotalimit, QuotaLimit)
         if quotalimit == self._qlimit:
@@ -344,7 +345,7 @@
         if transport.transport.lower() in ('virtual', 'virtual:') and \
            not self._mail.postfix:
             raise AErr(_(u"Invalid transport '%(transport)s' for mailbox "
-                         u"format '%(mbfmt)s'") %
+                         u"format '%(mbfmt)s'.") %
                        {'transport': transport, 'mbfmt': self._mail.mbformat},
                        INVALID_MAIL_LOCATION)
         self._update_tables('tid', transport.tid)
@@ -475,7 +476,7 @@
     info = dbc.fetchone()
     dbc.close()
     if not info:
-        raise AErr(_(u"There is no account with the UID '%d'.") % uid,
+        raise AErr(_(u"There is no account with the UID: '%d'") % uid,
                    NO_SUCH_ACCOUNT)
     info = dict(zip(('address', 'uid', 'gid'), info))
     return info
--- a/VirtualMailManager/alias.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/alias.py	Thu Feb 24 20:47:35 2011 +0000
@@ -31,7 +31,7 @@
         self._dbh = dbh
         self._gid = get_gid(self._dbh, self._addr.domainname)
         if not self._gid:
-            raise AErr(_(u"The domain '%s' doesn't exist.") %
+            raise AErr(_(u"The domain '%s' does not exist.") %
                        self._addr.domainname, NO_SUCH_DOMAIN)
         self._dests = []
 
@@ -56,14 +56,14 @@
         if dcount == limit or dcount + count_new > limit:
             failed = True
             errmsg = _(
-u"""Can't add %(count_new)i new destination(s) to alias '%(address)s'.
+u"""Cannot add %(count_new)i new destination(s) to alias '%(address)s'.
 Currently this alias expands into %(count)i/%(limit)i recipients.
 %(count_new)i additional destination(s) will render this alias unusable.
 Hint: Increase Postfix' virtual_alias_expansion_limit""")
         elif dcount > limit:
             failed = True
             errmsg = _(
-u"""Can't add %(count_new)i new destination(s) to alias '%(address)s'.
+u"""Cannot add %(count_new)i new destination(s) to alias '%(address)s'.
 This alias already exceeds its expansion limit (%(count)i/%(limit)i).
 So its unusable, all messages addressed to this alias will be bounced.
 Hint: Delete some destination addresses.""")
@@ -138,10 +138,10 @@
         """Deletes the specified ``destination`` address from the alias."""
         assert isinstance(destination, EmailAddress)
         if not self._dests:
-            raise AErr(_(u"The alias '%s' doesn't exist.") % self._addr,
+            raise AErr(_(u"The alias '%s' does not exist.") % self._addr,
                        NO_SUCH_ALIAS)
         if not destination in self._dests:
-            raise AErr(_(u"The address '%(addr)s' isn't a destination of "
+            raise AErr(_(u"The address '%(addr)s' is not a destination of "
                          u"the alias '%(alias)s'.") % {'addr': self._addr,
                        'alias': destination}, NO_SUCH_ALIAS)
         self._delete(destination)
@@ -150,14 +150,14 @@
     def get_destinations(self):
         """Returns an iterator for all destinations of the alias."""
         if not self._dests:
-            raise AErr(_(u"The alias '%s' doesn't exist.") % self._addr,
+            raise AErr(_(u"The alias '%s' does not exist.") % self._addr,
                        NO_SUCH_ALIAS)
         return iter(self._dests)
 
     def delete(self):
         """Deletes the alias with all its destinations."""
         if not self._dests:
-            raise AErr(_(u"The alias '%s' doesn't exist.") % self._addr,
+            raise AErr(_(u"The alias '%s' does not exist.") % self._addr,
                        NO_SUCH_ALIAS)
         self._delete()
         del self._dests[:]
--- a/VirtualMailManager/aliasdomain.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/aliasdomain.py	Thu Feb 24 20:47:35 2011 +0000
@@ -72,7 +72,7 @@
             raise ADErr(_(u'No destination domain set for the alias domain.'),
                         ALIASDOMAIN_NO_DOMDEST)
         if self._domain.gid < 1:
-            raise ADErr(_(u"The target domain '%s' doesn't exist.") %
+            raise ADErr(_(u"The target domain '%s' does not exist.") %
                         self._domain.name, NO_SUCH_DOMAIN)
         dbc = self._dbh.cursor()
         dbc.execute('INSERT INTO domain_name (domainname, gid, is_primary) '
@@ -85,7 +85,7 @@
         """Returns a dict (keys: "alias" and "domain") with the names of the
         AliasDomain and its primary domain."""
         if self._gid < 1:
-            raise ADErr(_(u"The alias domain '%s' doesn't exist.") %
+            raise ADErr(_(u"The alias domain '%s' does not exist.") %
                         self._name, NO_SUCH_ALIASDOMAIN)
         dbc = self._dbh.cursor()
         dbc.execute('SELECT domainname FROM domain_name WHERE gid = %s AND '
@@ -106,10 +106,10 @@
             raise ADErr(_(u'No destination domain set for the alias domain.'),
                         ALIASDOMAIN_NO_DOMDEST)
         if self._domain.gid < 1:
-            raise ADErr(_(u"The target domain '%s' doesn't exist.") %
+            raise ADErr(_(u"The target domain '%s' does not exist.") %
                         self._domain.name, NO_SUCH_DOMAIN)
         if self._gid < 1:
-            raise ADErr(_(u"The alias domain '%s' doesn't exist.") %
+            raise ADErr(_(u"The alias domain '%s' does not exist.") %
                         self._name, NO_SUCH_ALIASDOMAIN)
         if self._gid == self._domain.gid:
             raise ADErr(_(u"The alias domain '%(alias)s' is already assigned "
@@ -130,7 +130,7 @@
         Raises an AliasDomainError if the AliasDomain doesn't exist.
         """
         if self._gid < 1:
-            raise ADErr(_(u"The alias domain '%s' doesn't exist.") %
+            raise ADErr(_(u"The alias domain '%s' does not exist.") %
                         self._name, NO_SUCH_ALIASDOMAIN)
         dbc = self._dbh.cursor()
         dbc.execute('DELETE FROM domain_name WHERE domainname = %s AND NOT '
--- a/VirtualMailManager/cli/__init__.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/cli/__init__.py	Thu Feb 24 20:47:35 2011 +0000
@@ -88,11 +88,11 @@
         clear1 = getpass(prompt=readp_msg1)
         if clear0 != clear1:
             failures += 1
-            w_err(0, _(u'Sorry, passwords do not match'))
+            w_err(0, _(u'Sorry, passwords do not match.'))
             continue
         if not clear0:
             failures += 1
-            w_err(0, _(u'Sorry, empty passwords are not permitted'))
+            w_err(0, _(u'Sorry, empty passwords are not permitted.'))
             continue
         mismatched = False
     return clear0
--- a/VirtualMailManager/cli/handler.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/cli/handler.py	Thu Feb 24 20:47:35 2011 +0000
@@ -90,7 +90,7 @@
         password dialog."""
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         if not isinstance(password, basestring) or not password:
             password = read_pass()
--- a/VirtualMailManager/cli/main.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/cli/main.py	Thu Feb 24 20:47:35 2011 +0000
@@ -36,7 +36,7 @@
 
 def run(argv):
     if len(argv) < 2:
-        usage(EX_MISSING_ARGS, _(u"You must specify a subcommand at least"))
+        usage(EX_MISSING_ARGS, _(u"You must specify a subcommand at least."))
 
     sub_cmd = argv[1].lower()
     if sub_cmd in cmd_map:
@@ -65,7 +65,8 @@
     except (BadOptionError, ConfigValueError), err:
         w_err(INVALID_ARGUMENT, _(u'Error: %s') % err)
     except NoSectionError, err:
-        w_err(INVALID_ARGUMENT, _(u"Error: No section '%s'") % err.section)
+        w_err(INVALID_ARGUMENT,
+              _(u"Error: Unknown section: '%s'") % err.section)
     except NoOptionError, err:
         w_err(INVALID_ARGUMENT,
               _(u"Error: No option '%(option)s' in section: '%(section)s'") %
--- a/VirtualMailManager/cli/subcommands.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/cli/subcommands.py	Thu Feb 24 20:47:35 2011 +0000
@@ -343,7 +343,7 @@
 def get_user(ctx):
     """get the address of the user with the given UID"""
     if ctx.argc < 3:
-        usage(EX_MISSING_ARGS, _(u'Missing userid.'), ctx.scmd)
+        usage(EX_MISSING_ARGS, _(u'Missing UID.'), ctx.scmd)
     _print_info(ctx, ctx.hdlr.user_by_uid(ctx.args[2]), _(u'Account'))
 
 
--- a/VirtualMailManager/domain.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/domain.py	Thu Feb 24 20:47:35 2011 +0000
@@ -111,7 +111,7 @@
         """Throws a DomainError if the Domain is new - not saved in the
         database."""
         if self._new:
-            raise DomErr(_(u"The domain '%s' doesn't exist.") % self._name,
+            raise DomErr(_(u"The domain '%s' does not exist.") % self._name,
                          NO_SUCH_DOMAIN)
 
     def _update_tables(self, column, value, force=False):
@@ -269,7 +269,7 @@
         """
         if cfg_dget('misc.dovecot_version') < 0x10102f00:
             raise VMMError(_(u'PostgreSQL-based dictionary quota requires '
-                             u'Dovecot >= v1.1.2'), VMM_ERROR)
+                             u'Dovecot >= v1.1.2.'), VMM_ERROR)
         self._chk_state()
         assert isinstance(quotalimit, QuotaLimit)
         if not force and quotalimit == self._qlimit:
--- a/VirtualMailManager/emailaddress.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/emailaddress.py	Thu Feb 24 20:47:35 2011 +0000
@@ -68,16 +68,16 @@
         parts = address.split('@')
         p_len = len(parts)
         if p_len < 2:
-            raise EAErr(_(u"Missing the '@' sign in address '%s'") % address,
+            raise EAErr(_(u"Missing the '@' sign in address: '%s'") % address,
                         INVALID_ADDRESS)
         elif p_len > 2:
-            raise EAErr(_(u"Too many '@' signs in address '%s'") % address,
+            raise EAErr(_(u"Too many '@' signs in address: '%s'") % address,
                         INVALID_ADDRESS)
         if not parts[0]:
-            raise EAErr(_(u"Missing local-part in address '%s'") % address,
+            raise EAErr(_(u"Missing local-part in address: '%s'") % address,
                         LOCALPART_INVALID)
         if not parts[1]:
-            raise EAErr(_(u"Missing domain name in address '%s'") % address,
+            raise EAErr(_(u"Missing domain name in address: '%s'") % address,
                         DOMAIN_NO_NAME)
         self._localpart = check_localpart(parts[0])
         self._domainname = check_domainname(parts[1])
@@ -121,7 +121,7 @@
     invalid characters.
     """
     if len(localpart) > 64:
-        raise EAErr(_(u"The local-part '%s' is too long") % localpart,
+        raise EAErr(_(u"The local-part '%s' is too long.") % localpart,
                     LOCALPART_TOO_LONG)
     invalid_chars = set(RE_LOCALPART.findall(localpart))
     if invalid_chars:
--- a/VirtualMailManager/ext/postconf.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/ext/postconf.py	Thu Feb 24 20:47:35 2011 +0000
@@ -81,7 +81,7 @@
         """Check that the `parameter` looks like a configuration parameter.
         If not, a VMMError will be raised."""
         if not self.__class__._parameter_re.match(parameter):
-            raise VMMError(_(u"The value '%s' doesn't look like a valid "
+            raise VMMError(_(u"The value '%s' does not look like a valid "
                              u"postfix configuration parameter name.") %
                            parameter, VMM_ERROR)
 
--- a/VirtualMailManager/handler.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/handler.py	Thu Feb 24 20:47:35 2011 +0000
@@ -153,14 +153,14 @@
             try:
                 _db_mod = __import__('psycopg2')
             except ImportError:
-                raise VMMError(_(u"Unable to import database module '%s'") %
+                raise VMMError(_(u"Unable to import database module '%s'.") %
                                'psycopg2', VMM_ERROR)
             self._db_connect = self._psycopg2_connect
         else:
             try:
                 tmp = __import__('pyPgSQL', globals(), locals(), ['PgSQL'])
             except ImportError:
-                raise VMMError(_(u"Unable to import database module '%s'") %
+                raise VMMError(_(u"Unable to import database module '%s'.") %
                                'pyPgSQL', VMM_ERROR)
             _db_mod = tmp.PgSQL
             self._db_connect = self._pypgsql_connect
@@ -594,7 +594,7 @@
             if destination.gid and \
                not self._chk_other_address_types(destination, TYPE_RELOCATED):
                 self._warnings.append(_(u"The destination account/alias '%s' "
-                                        u"doesn't exist.") % destination)
+                                        u"does not exist.") % destination)
 
     def user_delete(self, emailaddress, force=False):
         """Wrapper around Account.delete(...)"""
@@ -602,7 +602,7 @@
             raise TypeError('force must be a bool')
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         uid = acc.uid
         gid = acc.gid
@@ -631,7 +631,7 @@
         if alias:
             return alias.get_destinations()
         if not self._is_other_address(alias.address, TYPE_ALIAS):
-            raise VMMError(_(u"The alias '%s' doesn't exist.") %
+            raise VMMError(_(u"The alias '%s' does not exist.") %
                            alias.address, NO_SUCH_ALIAS)
 
     def alias_delete(self, aliasaddress, targetaddress=None):
@@ -652,7 +652,7 @@
         acc = self._get_account(emailaddress)
         if not acc:
             if not self._is_other_address(acc.address, TYPE_ACCOUNT):
-                raise VMMError(_(u"The account '%s' doesn't exist.") %
+                raise VMMError(_(u"The account '%s' does not exist.") %
                                acc.address, NO_SUCH_ACCOUNT)
         info = acc.get_info()
         if self._cfg.dget('account.disk_usage') or details in ('du', 'full'):
@@ -678,7 +678,7 @@
                            INVALID_ARGUMENT)
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         acc.modify('password', password)
 
@@ -689,7 +689,7 @@
                            INVALID_ARGUMENT)
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         acc.modify('name', name)
 
@@ -700,7 +700,7 @@
                             "integers or longs.")
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         acc.update_quotalimit(QuotaLimit(self._dbh, bytes=bytes_,
                                          messages=messages))
@@ -712,7 +712,7 @@
                            INVALID_ARGUMENT)
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") %
+            raise VMMError(_(u"The account '%s' does not exist.") %
                            acc.address, NO_SUCH_ACCOUNT)
         acc.update_transport(Transport(self._dbh, transport=transport))
 
@@ -724,8 +724,8 @@
             assert isinstance(services, list)
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") % acc.address,
-                           NO_SUCH_ACCOUNT)
+            raise VMMError(_(u"The account '%s' does not exist.") %
+                           acc.address, NO_SUCH_ACCOUNT)
         acc.disable(*services)
 
     def user_enable(self, emailaddress, services=None):
@@ -736,8 +736,8 @@
             assert isinstance(services, list)
         acc = self._get_account(emailaddress)
         if not acc:
-            raise VMMError(_(u"The account '%s' doesn't exist.") % acc.address,
-                           NO_SUCH_ACCOUNT)
+            raise VMMError(_(u"The account '%s' does not exist.") %
+                           acc.address, NO_SUCH_ACCOUNT)
         acc.enable(*services)
 
     def relocated_add(self, emailaddress, targetaddress):
@@ -752,7 +752,7 @@
         if destination.gid and \
            not self._chk_other_address_types(destination, TYPE_RELOCATED):
             self._warnings.append(_(u"The destination account/alias '%s' "
-                                    u"doesn't exist.") % destination)
+                                    u"does not exist.") % destination)
 
     def relocated_info(self, emailaddress):
         """Returns the target address of the relocated user with the given
@@ -761,7 +761,7 @@
         if relocated:
             return relocated.get_info()
         if not self._is_other_address(relocated.address, TYPE_RELOCATED):
-            raise VMMError(_(u"The relocated user '%s' doesn't exist.") %
+            raise VMMError(_(u"The relocated user '%s' does not exist.") %
                            relocated.address, NO_SUCH_RELOCATED)
 
     def relocated_delete(self, emailaddress):
--- a/VirtualMailManager/password.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/password.py	Thu Feb 24 20:47:35 2011 +0000
@@ -371,13 +371,13 @@
                        VMM_ERROR)
     if cfg_dget('misc.dovecot_version') < _scheme_info[scheme][1]:
         raise VMMError(_(u"The password scheme '%(scheme)s' requires Dovecot "
-                         u">= v%(version)s") % {'scheme': scheme,
+                         u">= v%(version)s.") % {'scheme': scheme,
                        'version': version_str(_scheme_info[scheme][1])},
                        VMM_ERROR)
     if len(scheme_encoding) > 1:
         if cfg_dget('misc.dovecot_version') < 0x10100a01:
             raise VMMError(_(u'Encoding suffixes for password schemes require '
-                             u'Dovecot >= v1.1.alpha1'), VMM_ERROR)
+                             u'Dovecot >= v1.1.alpha1.'), VMM_ERROR)
         if scheme_encoding[1] not in ('B64', 'BASE64', 'HEX'):
             raise VMMError(_(u"Unsupported password encoding: '%s'") %
                            scheme_encoding[1], VMM_ERROR)
@@ -400,7 +400,7 @@
         password = password.encode(ENCODING)
     password = password.strip()
     if not password:
-        raise ValueError("Couldn't accept empty password.")
+        raise ValueError("Could not accept empty password.")
     if scheme is None:
         scheme = cfg_dget('misc.password_scheme')
     scheme, encoding = verify_scheme(scheme)
--- a/VirtualMailManager/relocated.py	Thu Feb 24 01:02:24 2011 +0000
+++ b/VirtualMailManager/relocated.py	Thu Feb 24 20:47:35 2011 +0000
@@ -35,7 +35,7 @@
         self._dbh = dbh
         self._gid = get_gid(self._dbh, self._addr.domainname)
         if not self._gid:
-            raise RErr(_(u"The domain '%s' doesn't exist.") %
+            raise RErr(_(u"The domain '%s' does not exist.") %
                        self._addr.domainname, NO_SUCH_DOMAIN)
         self._dest = None
 
@@ -95,14 +95,14 @@
     def get_info(self):
         """Returns the address to which mails should be sent."""
         if not self._dest:
-            raise RErr(_(u"The relocated user '%s' doesn't exist.") %
+            raise RErr(_(u"The relocated user '%s' does not exist.") %
                        self._addr, NO_SUCH_RELOCATED)
         return self._dest
 
     def delete(self):
         """Deletes the relocated entry from the database."""
         if not self._dest:
-            raise RErr(_(u"The relocated user '%s' doesn't exist.") %
+            raise RErr(_(u"The relocated user '%s' does not exist.") %
                        self._addr, NO_SUCH_RELOCATED)
         dbc = self._dbh.cursor()
         dbc.execute('DELETE FROM relocated WHERE gid = %s AND address = %s',