[Python-checkins] r53427 - in tracker/vendor/roundup/current: CHANGES.txt ChangeLog doc/FAQ.txt doc/Makefile doc/admin_guide.txt doc/announcement.txt doc/customizing.txt doc/features.txt doc/images/edit_issue.png doc/images/index_logged_in.png doc/images/index_logged_out.png doc/images/my_details.png doc/images/new_issue.png doc/images/registration.png doc/index.txt doc/installation.txt doc/user_guide.txt frontends/roundup.cgi locale/GNUmakefile locale/de.po locale/es.po locale/hu.po locale/lt.po locale/roundup.pot locale/ru.po roundup/__init__.py roundup/backends/back_sqlite.py roundup/backends/indexer_common.py roundup/cgi/TranslationService.py roundup/cgi/client.py roundup/cgi/form_parser.py roundup/cgi/templating.py roundup/configuration.py roundup/instance.py roundup/mailgw.py roundup/roundupdb.py roundup/scripts/roundup_mailgw.py roundup/scripts/roundup_server.py scripts/README.txt scripts/weekly-report setup.py templates/classic/html/page.html templates/classic/html/user.help-search.html templates/classic/initial_data.py templates/minimal/html/page.html test/db_test_base.py test/test_cgi.py

erik.forsberg python-checkins at python.org
Sun Jan 14 15:31:28 CET 2007


Author: erik.forsberg
Date: Sun Jan 14 15:31:23 2007
New Revision: 53427

Added:
   tracker/vendor/roundup/current/doc/images/edit_issue.png   (contents, props changed)
   tracker/vendor/roundup/current/doc/images/index_logged_in.png   (contents, props changed)
   tracker/vendor/roundup/current/doc/images/index_logged_out.png   (contents, props changed)
   tracker/vendor/roundup/current/doc/images/my_details.png   (contents, props changed)
   tracker/vendor/roundup/current/doc/images/new_issue.png   (contents, props changed)
   tracker/vendor/roundup/current/doc/images/registration.png   (contents, props changed)
   tracker/vendor/roundup/current/locale/hu.po
   tracker/vendor/roundup/current/scripts/weekly-report   (contents, props changed)
Modified:
   tracker/vendor/roundup/current/CHANGES.txt
   tracker/vendor/roundup/current/ChangeLog
   tracker/vendor/roundup/current/doc/FAQ.txt
   tracker/vendor/roundup/current/doc/Makefile
   tracker/vendor/roundup/current/doc/admin_guide.txt
   tracker/vendor/roundup/current/doc/announcement.txt
   tracker/vendor/roundup/current/doc/customizing.txt
   tracker/vendor/roundup/current/doc/features.txt
   tracker/vendor/roundup/current/doc/index.txt
   tracker/vendor/roundup/current/doc/installation.txt
   tracker/vendor/roundup/current/doc/user_guide.txt
   tracker/vendor/roundup/current/frontends/roundup.cgi
   tracker/vendor/roundup/current/locale/GNUmakefile
   tracker/vendor/roundup/current/locale/de.po
   tracker/vendor/roundup/current/locale/es.po
   tracker/vendor/roundup/current/locale/lt.po
   tracker/vendor/roundup/current/locale/roundup.pot
   tracker/vendor/roundup/current/locale/ru.po
   tracker/vendor/roundup/current/roundup/__init__.py
   tracker/vendor/roundup/current/roundup/backends/back_sqlite.py
   tracker/vendor/roundup/current/roundup/backends/indexer_common.py
   tracker/vendor/roundup/current/roundup/cgi/TranslationService.py
   tracker/vendor/roundup/current/roundup/cgi/client.py
   tracker/vendor/roundup/current/roundup/cgi/form_parser.py
   tracker/vendor/roundup/current/roundup/cgi/templating.py
   tracker/vendor/roundup/current/roundup/configuration.py
   tracker/vendor/roundup/current/roundup/instance.py
   tracker/vendor/roundup/current/roundup/mailgw.py
   tracker/vendor/roundup/current/roundup/roundupdb.py
   tracker/vendor/roundup/current/roundup/scripts/roundup_mailgw.py
   tracker/vendor/roundup/current/roundup/scripts/roundup_server.py
   tracker/vendor/roundup/current/scripts/README.txt
   tracker/vendor/roundup/current/setup.py
   tracker/vendor/roundup/current/templates/classic/html/page.html
   tracker/vendor/roundup/current/templates/classic/html/user.help-search.html
   tracker/vendor/roundup/current/templates/classic/initial_data.py
   tracker/vendor/roundup/current/templates/minimal/html/page.html
   tracker/vendor/roundup/current/test/db_test_base.py
   tracker/vendor/roundup/current/test/test_cgi.py
Log:
Importing roundup 1.3.2

Modified: tracker/vendor/roundup/current/CHANGES.txt
==============================================================================
--- tracker/vendor/roundup/current/CHANGES.txt	(original)
+++ tracker/vendor/roundup/current/CHANGES.txt	Sun Jan 14 15:31:23 2007
@@ -1,7 +1,32 @@
 This file contains the changes to the Roundup system over time. The entries
 are given with the most recent entry first.
 
-2006-??-?? 1.3.0
+
+2006-12-19 1.3.2
+Fixed:
+- relax rules for required fields in form_parser.py (sf bug 1599740)
+- documentation cleanup from Luke Ross (sf patch 1594860)
+- updated Spanish translation from Ramiro Morales (sf patch 1594718)
+- handle 8-bit untranslateable messages in tracker templates
+- handling of required for boolean False and numeric 0 (sf bug 1608200)
+- removed bogus args attr of ConfigurationError (sf bug 1608056)
+- implemented start_response in roundup.cgi (sf bug 1604304)
+- clarified windows service documentation (sf patch 1597713)
+- HTMLClass fixed to work with new item permissions check (sf bug 1602983)
+- support POP over SSL (sf patch 1597703)
+- clean up input field generation and quoting of values (sf bug 1615616)
+- allow use of roundup-server pidfile without forking (sf bug 1614753)
+- allow translation of status/priority menu options (sf bug 1613976)
+
+
+2006-11-11 1.3.1
+Fixed:
+- setup.py had broken reference to roundup.cgi (sf bug 1593573)
+- full-text search wasn't coping with multiple multilinks to the same class
+- unicode / sqlite 3 problem (sf bug 1589292)
+
+
+2006-11-09 1.3.0
 Feature:
 - WSGI support via roundup.cgi.wsgi_handler
 

Modified: tracker/vendor/roundup/current/ChangeLog
==============================================================================
--- tracker/vendor/roundup/current/ChangeLog	(original)
+++ tracker/vendor/roundup/current/ChangeLog	Sun Jan 14 15:31:23 2007
@@ -1,3 +1,8 @@
+2006-11-22  Stefan Seefeld  <stefan at codesourcery.com>
+
+	* roundup/cgi/form_parser.py: Allow required fields to be ommitted
+	if user doesn't have edit permission and the value is already set.
+
 2001-08-03 11:54  richard
 
 	* BUILD.txt, CHANGES.txt, README.txt, setup.py,
@@ -872,10 +877,13 @@
 
 	* cgitb.py, config.py, date.py, hyperdb.py, roundup-mailgw.py,
 	roundup.py, roundup_cgi.py, roundupdb.py, server.py, template.py:
-	Added CVS keywords $Id: ChangeLog,v 1.7 2001/08/03 02:12:07 anthonybaxter Exp $ and $Log: ChangeLog,v $
-	Added CVS keywords $Id$ and Revision 1.7  2001/08/03 02:12:07  anthonybaxter
-	Added CVS keywords $Id$ and regenerated on Fri Aug  3 12:12:00 EST 2001
-	Added CVS keywords $Id$ and to all python files.
+	Added CVS keywords $Id: ChangeLog,v 1.8 2006/11/23 00:44:48 stefan Exp $ and $Log: ChangeLog,v $
+	Added CVS keywords $Id: ChangeLog,v 1.7 2001/08/03 02:12:07 anthonybaxter Exp $ and Revision 1.8  2006/11/23 00:44:48  stefan
+	Added CVS keywords $Id: ChangeLog,v 1.7 2001/08/03 02:12:07 anthonybaxter Exp $ and Fix sf bug 1599740
+	Added CVS keywords $Id: ChangeLog,v 1.7 2001/08/03 02:12:07 anthonybaxter Exp $ and
+	Added CVS keywords $Id: ChangeLog,v 1.8 2006/11/23 00:44:48 stefan Exp $ and Revision 1.7  2001/08/03 02:12:07  anthonybaxter
+	Added CVS keywords $Id: ChangeLog,v 1.8 2006/11/23 00:44:48 stefan Exp $ and regenerated on Fri Aug  3 12:12:00 EST 2001
+	Added CVS keywords $Id: ChangeLog,v 1.8 2006/11/23 00:44:48 stefan Exp $ and to all python files.
 
 2001-07-19 15:46  anthonybaxter
 

Modified: tracker/vendor/roundup/current/doc/FAQ.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/FAQ.txt	(original)
+++ tracker/vendor/roundup/current/doc/FAQ.txt	Sun Jan 14 15:31:23 2007
@@ -2,7 +2,7 @@
 Roundup FAQ
 ===========
 
-:Version: $Revision: 1.22 $
+:Version: $Revision: 1.23 $
 
 .. contents::
 
@@ -13,7 +13,7 @@
 Living without a mailserver
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Remove the nosy reactor, means delete the tracker file
+Remove the nosy reactor - delete the tracker file
 ``detectors/nosyreactor.py`` from your tracker home.
 
 
@@ -23,10 +23,11 @@
 Yep, it sure is. It has to start up Python and load all of the support
 libraries for *every* request.
 
-The solution is to use the built in server.
+The solution is to use the built in server (or possibly the mod_python
+or WSGI support).
 
 To make Roundup more seamless with your website, you may place the built
-in server behind apache and link it into your web tree
+in server behind apache and link it into your web tree (see below).
 
 
 How do I put Roundup behind Apache

Modified: tracker/vendor/roundup/current/doc/Makefile
==============================================================================
--- tracker/vendor/roundup/current/doc/Makefile	(original)
+++ tracker/vendor/roundup/current/doc/Makefile	Sun Jan 14 15:31:23 2007
@@ -14,6 +14,7 @@
 
 website: ${WEBHT}
 	cp *.ht ${WEBDIR}
+	cp -r images ${WEBDIR}
 
 %.html: %.txt
 	${STXTOHTML} --report=warning -d $< $@

Modified: tracker/vendor/roundup/current/doc/admin_guide.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/admin_guide.txt	(original)
+++ tracker/vendor/roundup/current/doc/admin_guide.txt	Sun Jan 14 15:31:23 2007
@@ -2,7 +2,7 @@
 Administration Guide
 ====================
 
-:Version: $Revision: 1.20 $
+:Version: $Revision: 1.23 $
 
 .. contents::
 
@@ -37,7 +37,7 @@
    installs configuration files, HTML templates, detector code and a new
    database. You have complete control over where this stuff goes through
    both choosing your "tracker home" and the ``main`` -> ``database`` variable
-   in the tracker's config.ini. 
+   in the tracker's config.ini.
 
 
 Configuring Roundup's Logging of Messages For Sysadmins
@@ -76,12 +76,12 @@
 
     [main]
     port = 8080
-    ;hostname = 
-    ;user = 
-    ;group = 
+    ;hostname =
+    ;user =
+    ;group =
     ;log_ip = yes
-    ;pidfile = 
-    ;logfile = 
+    ;pidfile =
+    ;logfile =
 
     [trackers]
     ; Add one of these per tracker being served
@@ -157,7 +157,7 @@
 
 Maintenance of Roundup can involve one of the following:
 
-1. `tracker backup`_ 
+1. `tracker backup`_
 2. `software upgrade`_
 3. `migrating backends`_
 4. `moving a tracker`_
@@ -216,19 +216,23 @@
 Migrating Backends
 ------------------
 
-1. stop the existing tracker web and email frontends (preventing changes)
-2. use the roundup-admin tool "export" command to export the contents of
-   your tracker to disk
-3. copy the tracker home to a new directory
-4. delete the "db" directory from the new directory
-5. enter the new backend name in the tracker home ``db/backend_name`` file
-6. use the roundup-admin "import" command to import the previous export with
-   the new tracker home
-7. test each of the admin tool, web interface and mail gateway using the new
-   backend
-8. move the old tracker home out of the way (rename to "tracker.old") and 
-   move the new tracker home into its place
-9. restart web and email frontends
+1. Stop the existing tracker web and email frontends (preventing changes).
+2. Use the roundup-admin tool "export" command to export the contents of
+   your tracker to disk.
+3. Copy the tracker home to a new directory.
+4. Delete the "db" directory from the new directory.
+5. Enter the new backend name in the tracker home ``db/backend_name`` file.
+6. Use the roundup-admin "import" command to import the previous export with
+   the new tracker home. If non-interactively::
+     
+     roundup-admin -i <tracker home> import <tracker export dir>
+
+   If interactively, enter 'commit' before exitting.
+7. Test each of the admin tool, web interface and mail gateway using the new
+   backend.
+8. Move the old tracker home out of the way (rename to "tracker.old") and
+   move the new tracker home into its place.
+9. Restart web and email frontends.
 
 
 Moving a Tracker
@@ -263,14 +267,14 @@
 directly. The latter is almost always simpler -- see the "scripts"
 directory in the Roundup source for some example uses of the API.
 
-"roundup-admin import" will import data into your tracker from a 
+"roundup-admin import" will import data into your tracker from a
 directory containing files with the following format:
 
 - one colon-separated-values file per Class with columns for each property,
   named <classname>.csv
 - one colon-separated-values file per Class with journal information,
   named <classname>-journals.csv (this is required, even if it's empty)
-- if the Class is a FileClass, you may have the "content" property 
+- if the Class is a FileClass, you may have the "content" property
   stored in separate files from the csv files. This goes in a directory
   structure::
 
@@ -317,12 +321,12 @@
 Windows
 -------
 
-On Windows, the roundup-server program runs as a Windows Service, and 
+On Windows, the roundup-server program runs as a Windows Service, and
 therefore may be controlled through the Services control panel. The
 roundup-server program may also control the service directly:
 
 **install the service**
-  ``roundup-server -c install``
+  ``roundup-server -C /path/to/my/roundup-server.ini -c install``
 **start the service**
   ``roundup-server -c start``
 **stop the service**
@@ -335,6 +339,11 @@
 Windows NT4
   Start/Control Panel/Services
 
+You will need a server configuration file (as described in
+`Configuring roundup-server`_) for specifying tracker homes
+and other roundup-server configuration. Specify the name of
+this file using the ``-C`` switch when installing the service.
+
 Running the Mail Gateway Script
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -354,4 +363,3 @@
 .. _`Table of Contents`: index.html
 .. _`customisation documentation`: customizing.html
 .. _`upgrading documentation`: upgrading.html
-

Modified: tracker/vendor/roundup/current/doc/announcement.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/announcement.txt	(original)
+++ tracker/vendor/roundup/current/doc/announcement.txt	Sun Jan 14 15:31:23 2007
@@ -1,20 +1,24 @@
-I'm proud to release version 1.3.0 of Roundup.
+I'm proud to release version 1.3.2 of Roundup.
+
+Fixed in 1.3.2:
+
+- relax rules for required fields in form_parser.py (sf bug 1599740)
+- documentation cleanup from Luke Ross (sf patch 1594860)
+- updated Spanish translation from Ramiro Morales (sf patch 1594718)
+- handle 8-bit untranslateable messages in tracker templates
+- handling of required for boolean False and numeric 0 (sf bug 1608200)
+- removed bogus args attr of ConfigurationError (sf bug 1608056)
+- implemented start_response in roundup.cgi (sf bug 1604304)
+- clarified windows service documentation (sf patch 1597713)
+- HTMLClass fixed to work with new item permissions check (sf bug 1602983)
+- support POP over SSL (sf patch 1597703)
+- clean up input field generation and quoting of values (sf bug 1615616)
+- allow use of roundup-server pidfile without forking (sf bug 1614753)
+- allow translation of status/priority menu options (sf bug 1613976)
 
 New Features in 1.3.0:
-- WSGI support via roundup.cgi.wsgi_handler
 
-Fixed in 1.3.0:
-- sqlite module detection was broken for python 2.5 compiled without sqlite
-  support
-- fixed support for pysqlite2 (version 2.1.0 is the minimum version
-  supported)
-- roundup-server called setuid when run by non-root user
-- fix sort/group direction checkbox in issue.index.html (sf bug 1593025)
-- fix error detection for non-EN locales of postgres (sf bug 1592249)
-- fix email change note rendering of multiline properties (sf patch 1575223)
-- fix sidebar search links (sf patch 1574467)
-- nicer "permission required" messages (sf patch 1558183)
-- fix unstable ordering of detectors (sf bug 1585378)
+- WSGI support via roundup.cgi.wsgi_handler
 
 If you're upgrading from an older version of Roundup you *must* follow
 the "Software Upgrade" guidelines given in the maintenance documentation.

Modified: tracker/vendor/roundup/current/doc/customizing.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/customizing.txt	(original)
+++ tracker/vendor/roundup/current/doc/customizing.txt	Sun Jan 14 15:31:23 2007
@@ -2,7 +2,7 @@
 Customising Roundup
 ===================
 
-:Version: $Revision: 1.210 $
+:Version: $Revision: 1.215 $
 
 .. This document borrows from the ZopeBook section on ZPT. The original is at:
    http://www.zope.org/Documentation/Books/ZopeBook/current/ZPT.stx
@@ -49,6 +49,7 @@
 detectors/          Auditors and reactors for this tracker                   
 extensions/         Additional web actions and templating utilities.
 html/               Web interface templates, images and style sheets         
+lib/                optional common imports for detectors and extensions
 =================== ======================================================== 
 
 
@@ -347,6 +348,34 @@
 name, so "domain" in the section "mail" becomes MAIL_DOMAIN. The
 configuration variables available are:
 
+Extending the configuration file
+--------------------------------
+
+You can't add new variables to the config.ini file in the tracker home but
+you can add two new config.ini files:
+
+- a config.ini in the ``extensions`` directory will be loaded and attached
+  to the config variable as "ext".
+- a config.ini in the ``detectors`` directory will be loaded and attached
+  to the config variable as "detectors".
+
+For example, the following in ``detectors/config.ini``::
+
+    [main]
+    qa_recipients = email at example.com
+
+is accessible as::
+
+    db.config.detectors['QA_RECIPIENTS']
+
+Note that the name grouping applied to the main configuration file is
+applied to the extension config files, so if you instead have::
+
+    [qa]
+    recipients = email at example.com
+
+then the above ``db.config.detectors['QA_RECIPIENTS']`` will still work.
+
 
 Tracker Schema
 ==============
@@ -397,14 +426,15 @@
 
     user = Class(db, "user", username=String(), organisation=String(),
         password=String(), address=String(), realname=String(),
-        phone=String())
+        phone=String(), alternate_addresses=String(),
+        queries=Multilink('query'), roles=String(), timezone=String())
     user.setkey("username")
 
     msg = FileClass(db, "msg", author=Link("user"), summary=String(),
         date=Date(), recipients=Multilink("user"),
-        files=Multilink("file"))
+        files=Multilink("file"), messageid=String(), inreplyto=String())
 
-    file = FileClass(db, "file", name=String(), type=String())
+    file = FileClass(db, "file", name=String())
 
     issue = IssueClass(db, "issue", topic=Multilink("keyword"),
         status=Link("status"), assignedto=Link("user"),
@@ -535,7 +565,8 @@
 the database, which generally makes databases more efficient, and also
 allows us to use command-line tools to operate on the files. They are
 stored in the files sub-directory of the ``'db'`` directory in your
-tracker.
+tracker. FileClasses also have a "type" attribute to store the MIME
+type of the file.
 
 
 IssueClass
@@ -640,7 +671,8 @@
 Examples of adding to your schema
 ---------------------------------
 
-TODO
+The Roundup wiki has examples of how schemas can be customised to add
+new functionality.
 
 
 Detectors - adding behaviour to your tracker
@@ -799,7 +831,7 @@
 ================
 
 .. note::
-   if you modify the content of definitional classes, you'll most
+   If you modify the content of definitional classes, you'll most
    likely need to edit the tracker `detectors`_ to reflect your changes.
 
 Customisation of the special "definitional" classes (eg. status,
@@ -1047,7 +1079,7 @@
  trackers don't allow this as it opens them up to spam. It may be enabled
  by uncommenting the appropriate addPermissionToRole in your tracker's
  ``schema.py`` file. The new user is given the Roles list defined in the
-"new_email_user_roles" config variable. 
+ "new_email_user_roles" config variable. 
 
 **only developers may be assigned issues**
  Create a new Permission called "Fixer" for the "issue" class. Create a

Modified: tracker/vendor/roundup/current/doc/features.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/features.txt	(original)
+++ tracker/vendor/roundup/current/doc/features.txt	Sun Jan 14 15:31:23 2007
@@ -35,7 +35,7 @@
    across all storages available
  - customised automatic auditors and reactors may be written that perform
    actions before and after changes are made to entries in the database,
-   or may veto the creation or modification of items int he database
+   or may veto the creation or modification of items in the database
  - samples are provided for all manner of configuration changes and
    customisations
 
@@ -61,8 +61,8 @@
    to register new users
  - authentication of user registration and user-driven password resetting
    using email and one time keys
- - may be run through CGI as a normal cgi script, as a stand-alone
-   web server, or through Zope
+ - may be run using WSGI or through CGI as a normal cgi script, as a
+   stand-alone web server, under mod_python or through Zope
  - searching may be performed using many constraints, including a full-text
    search of messages attached to issues
  - file attachments (added through the web or email) are served up with the

Added: tracker/vendor/roundup/current/doc/images/edit_issue.png
==============================================================================
Binary file. No diff available.

Added: tracker/vendor/roundup/current/doc/images/index_logged_in.png
==============================================================================
Binary file. No diff available.

Added: tracker/vendor/roundup/current/doc/images/index_logged_out.png
==============================================================================
Binary file. No diff available.

Added: tracker/vendor/roundup/current/doc/images/my_details.png
==============================================================================
Binary file. No diff available.

Added: tracker/vendor/roundup/current/doc/images/new_issue.png
==============================================================================
Binary file. No diff available.

Added: tracker/vendor/roundup/current/doc/images/registration.png
==============================================================================
Binary file. No diff available.

Modified: tracker/vendor/roundup/current/doc/index.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/index.txt	(original)
+++ tracker/vendor/roundup/current/doc/index.txt	Sun Jan 14 15:31:23 2007
@@ -101,6 +101,7 @@
 Charles Groves,
 Engelbert Gruber,
 Bruce Guenter,
+Tamás Gulácsi,
 Thomas Arendsen Hein,
 Juergen Hermann,
 Tobias Herp,
@@ -122,9 +123,11 @@
 Henrik Levkowetz,
 David Linke,
 Fredrik Lundh,
+Will Maier,
 Georges Martin,
 Gordon McMillan,
 John F Meinel Jr,
+Ramiro Morales,
 Toni Mueller,
 Stefan Niederhauser,
 Truls E. Næss,

Modified: tracker/vendor/roundup/current/doc/installation.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/installation.txt	(original)
+++ tracker/vendor/roundup/current/doc/installation.txt	Sun Jan 14 15:31:23 2007
@@ -2,7 +2,7 @@
 Installing Roundup
 ==================
 
-:Version: 1.76
+:Version: $Revision: 1.121 $
 
 .. contents::
    :depth: 2
@@ -285,6 +285,9 @@
 
   SQLite is supported via PySQLite versions 1.1.7, 2.1.0 and sqlite3 (the last
   being bundled with Python 2.5+)
+
+  Installed SQLite should be the latest version available (3.3.8 is known
+  to work, 3.1.3 is known to have problems).
 **metakit**
   Similar performance to sqlite. If you are choosing between these two,
   please select sqlite.
@@ -312,7 +315,7 @@
 Configure a Web Interface
 -------------------------
 
-There are three web interfaces to choose from:
+There are five web interfaces to choose from:
 
 1. `web server cgi-bin`_
 2. `stand-alone web server`_
@@ -332,7 +335,7 @@
 restrict access to your tracker to only use HTTPS. Access will be slower
 than through the `stand-alone web server`_ though.
 
-If your Python isn't install as "python" then you'll need to edit
+If your Python isn't installed as "python" then you'll need to edit
 the ``roundup.cgi`` script to fix the first line.
 
 If you're using IIS on a Windows platform, you'll need to run this command
@@ -368,7 +371,7 @@
 
 If you're using Apache, you can use an additional trick to hide the
 ``.cgi`` extension of the cgi script. Place the ``roundup.cgi`` script
-wherever you want it to be, renamed it to just ``roundup``, and add a
+wherever you want it to be, rename it to just ``roundup``, and add a
 couple lines to your Apache configuration::
  
  <Location /path/to/roundup>
@@ -379,7 +382,7 @@
 Stand-alone Web Server
 ~~~~~~~~~~~~~~~~~~~~~~
 
-This approach will give you the fastest of the three web interfaces. You may
+This approach will give you faster response than cgi-bin. You may
 investigate using ProxyPass or similar configuration in apache to have your
 tracker accessed through the same URL as other systems.
 
@@ -409,7 +412,7 @@
 
 `Mod_python`_ is an `Apache`_ module that embeds the Python interpreter
 within the server.  Running Roundup this way is much faster than all
-above options and, like `web server cgi-bin`_, allows to use HTTPS
+above options and, like `web server cgi-bin`_, allows you to use HTTPS
 protocol.  The drawback is that this setup is more complicated.
 
 The following instructions were tested on apache 2.0 with mod_python 3.1.
@@ -462,7 +465,7 @@
     timing display is disabled.
 
 In the following example we have two trackers set up in
-``/var/db/roundup/support`` and ``var/db/roundup/devel`` and accessed
+``/var/db/roundup/support`` and ``/var/db/roundup/devel`` and accessed
 as ``https://my.host/roundup/support/`` and ``https://my.host/roundup/devel/``
 respectively.  Having them share same parent directory allows us to
 reduce the number of configuration directives.  Support tracker has
@@ -536,7 +539,7 @@
 
 See `platform-specific notes`_ for steps that may be needed on your system.
 
-There are three supported ways to get emailed issues into the
+There are five supported ways to get emailed issues into the
 Roundup tracker.  You should pick ONE of the following, all
 of which will continue my example setup from above:
 
@@ -547,10 +550,10 @@
 "``|/usr/bin/python /usr/bin/roundup-mailgw <tracker_home>``"
 (substitute ``/usr/bin`` for wherever roundup-mailgw is installed).
 
-In some installations (e.g. RedHat 6.2 I think) you'll need to set up smrsh so
-sendmail will accept the pipe command. In that case, symlink
-``/etc/smrsh/roundup-mailgw`` to "``/usr/bin/roundup-mailgw``" and change
-the command to::
+In some installations (e.g. RedHat Linux and Fedora Core) you'll need to
+set up smrsh so sendmail will accept the pipe command. In that case,
+symlink ``/etc/smrsh/roundup-mailgw`` to "``/usr/bin/roundup-mailgw``"
+and change the command to::
 
     |roundup-mailgw /opt/roundup/trackers/support
  
@@ -622,8 +625,8 @@
   user, in this case, 'roundup'.
 
 * That if the ``schema.py`` file exists, then the tracker is ready for
-  use. Another option is to use the ``config.ini`` file, but this recently
-  changed (in 0.8) from ``config.py``.
+  use. Another option is to use the ``config.ini`` file (this changed
+  in 0.8 from ``config.py``).
 
 Macros for Roundup router/transport. Should be placed in the macros
 section of the Exim4 config::
@@ -746,6 +749,12 @@
 4. optionally has no login password so that nobody but the "root" user
    may actually login and play with the roundup setup.
 
+If you're using a Linux system (e.g. Fedora Core) with SELinux enabled,
+you will need to ensure that the db directory has a context that
+permits the web server to modify and create files. If you're using the
+mysql or postgresql backend you may also need to update your policy to
+allow the web server to access the database socket.
+
 
 Additional Language Codecs
 --------------------------

Modified: tracker/vendor/roundup/current/doc/user_guide.txt
==============================================================================
--- tracker/vendor/roundup/current/doc/user_guide.txt	(original)
+++ tracker/vendor/roundup/current/doc/user_guide.txt	Sun Jan 14 15:31:23 2007
@@ -2,7 +2,7 @@
 User Guide
 ==========
 
-:Version: $Revision: 1.34 $
+:Version: $Revision: 1.36 $
 
 .. contents::
 
@@ -21,7 +21,7 @@
 reports and features, the class is "issue", and for users the class is
 "user".
 
-Each item in the tracker has an id number that identifies it along with
+Each item in the tracker has an ID number that identifies it along with
 its item class. To identify a particular issue or user, we combine the
 class with the number to create a unique label, so that user 1 (who,
 incidentally, is *always* the "admin" user) is referred to as "user1".
@@ -261,26 +261,24 @@
 open (ie. not resolved) issues. This list has been generated by a bunch
 of controls `under the covers`_ but for now, you can see something like:
 
-.. img: images/index_logged_out.png
+.. image:: images/index_logged_out.png
 
-The screen is divided up into three sections:
+The screen is divided up into three sections. There's a title which tells
+you where you are, a sidebar which contains useful navigation tools and a
+body which usually displays either a list of items or a single item from
+the tracker.
 
-.. img: images/page_layout.png
+You may either register or log in. Registration takes you to:
 
-you may either register or log in. Registration takes you to:
+.. image:: images/registration.png
 
-.. img: images/registration.png
+Once you're logged in, the sidebar changes to:
 
-Once you're logged in, the screen changes slightly to:
+.. image:: images/index_logged_in.png
 
-.. img: images/index_logged_in.png
+You can now get to your "My Details" page:
 
-Note that the sidebar menu has changed slightly, so you can now get to
-your "My Details" page:
-
-.. img: images/my_details.png
-
-Note the new information on this page - the history.
+.. image:: images/my_details.png
 
 
 Display, edit or entry of an item
@@ -289,17 +287,12 @@
 Create a new issue with "create new" under the issue subheading. This
 will take you to:
 
-.. img: images/new_issue.png
-
-The `nosy list`_ is explained below. Enter some information and click
-"submit new entry" and you'll be rewarded with:
-
-.. img: images/new_issue_created.png
+.. image:: images/new_issue.png
 
-or, if you don't enter all the required information (or some other error
-occurs) you'll get something like:
+Editing an issue uses the same form, though now you'll see attached files
+and messages, and the issue history at the bottom of the page:
 
-.. img: images/new_issue_error.png
+.. image:: images/edit_issue.png
 
 
 Searching Page
@@ -731,8 +724,8 @@
 Using with the shell
 --------------------
 
-With version 0.6.0 or newer of roundup which supports: multiple
-designators to display and the -d, -S and -s flags.
+With version 0.6.0 or newer of roundup (which introduced support for
+multiple designators to display and the -d, -S and -s flags):
 
 To find all messages regarding chatting issues that contain the word
 "spam", for example, you could execute the following command from the

Modified: tracker/vendor/roundup/current/frontends/roundup.cgi
==============================================================================
--- tracker/vendor/roundup/current/frontends/roundup.cgi	(original)
+++ tracker/vendor/roundup/current/frontends/roundup.cgi	Sun Jan 14 15:31:23 2007
@@ -16,7 +16,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: roundup.cgi,v 1.1 2006/11/09 00:36:21 richard Exp $
+# $Id: roundup.cgi,v 1.2 2006/12/11 23:36:15 richard Exp $
 
 # python version check
 from roundup import version_check
@@ -129,6 +129,11 @@
         self.write("%s: %s\r\n" % (keyword, value))
     def end_headers(self):
         self.write("\r\n")
+    def start_response(self, headers, response):
+        self.send_response(response)
+        for key, value in headers:
+            self.send_header(key, value)
+        self.end_headers()
 
 #
 # Main CGI handler

Modified: tracker/vendor/roundup/current/locale/GNUmakefile
==============================================================================
--- tracker/vendor/roundup/current/locale/GNUmakefile	(original)
+++ tracker/vendor/roundup/current/locale/GNUmakefile	Sun Jan 14 15:31:23 2007
@@ -1,7 +1,7 @@
 # Extract translatable strings from Roundup sources,
 # update and compile all existing translations
 #
-# $Id: GNUmakefile,v 1.10 2006/03/04 09:04:29 a1s Exp $
+# $Id: GNUmakefile,v 1.11 2006/11/16 14:14:42 a1s Exp $
 
 # tool locations
 XPOT ?= xpot
@@ -12,7 +12,8 @@
 
 TEMPLATE=roundup.pot
 
-PACKAGES=$(shell find ../roundup -name '*.py'|sed -e 's,/[^/]*$$,,'|sort|uniq)
+PACKAGES=$(shell find ../roundup ../templates -name '*.py' \
+	 | sed -e 's,/[^/]*$$,,' | sort | uniq)
 SOURCES=$(PACKAGES:=/*.py)
 PO_FILES=$(wildcard *.po)
 MO_FILES=$(PO_FILES:.po=.mo)

Modified: tracker/vendor/roundup/current/locale/de.po
==============================================================================
--- tracker/vendor/roundup/current/locale/de.po	(original)
+++ tracker/vendor/roundup/current/locale/de.po	Sun Jan 14 15:31:23 2007
@@ -1,18 +1,19 @@
 # German message file for Roundup Issue Tracker
 # Tobias Herp <tobias.herp at gmx.de>, 2006
 # Initial work by Stefan Niederhauser <stefan.niederhauser at unibas.ch>, 2004.
+# updated by Toni Mueller <toni at debian.org>
 #
-# $Id: de.po,v 1.4 2006/09/18 01:14:23 tobias-herp Exp $
+# $Id: de.po,v 1.5 2006/12/18 03:51:44 richard Exp $
 #
 # roundup.pot revision 1.8
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Roundup 1.1.2\n"
+"Project-Id-Version: Roundup 1.2.1\n"
 "Report-Msgid-Bugs-To: roundup-devel at lists.sourceforge.net\n"
 "POT-Creation-Date: 2004-12-08 10:25+0200\n"
-"PO-Revision-Date: 2006-09-18 02:54Westeuropäische Normalzeit\n"
-"Last-Translator: Tobias Herp <tobias.herp at gmx.de>\n"
+"PO-Revision-Date: 2006-10-07 22:45Westeuropäische Normalzeit\n"
+"Last-Translator: Toni Mueller <toni at debian.org>\n"
 "Language-Team: German Translators <roundup-devel at lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
@@ -42,7 +43,7 @@
 "Problem: %(message)s\n"
 "\n"
 
-#: ../roundup/admin.py:112
+#: ../roundup/admin.py:113
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-admin [options] [<command> <arguments>]\n"
@@ -73,7 +74,7 @@
 "Optionen:\n"
 " -i <Instanzverzeichnis> -- Tracker-Instanz zur Administration auswählen\n"
 " -u                -- Benutzer[:Paßwort] für das Ausführen von Befehlen\n"
-" -d                -- Lange Bezeichner anzeigen statt Klassen-Ids\n"
+" -d                -- lange Bezeichner statt Klassen-Ids anzeigen\n"
 " -c                -- Komma-getrennte Listenausgabe (CSV).\n"
 "                      Analog zu '-S \",\"'.\n"
 " -S <Zeichenkette> -- Trennzeichen bei der Listenausgabe.\n"
@@ -88,7 +89,7 @@
 " roundup-admin -h\n"
 " roundup-admin help                       -- diese Kurzhilfe anzeigen\n"
 " roundup-admin help <Befehl>              -- Hilfe zu einem Befehl anzeigen\n"
-" roundup-admin help all                   -- Sämtliche Hilfe anzeigen\n"
+" roundup-admin help all                   -- sämtliche Hilfen anzeigen\n"
 
 #: ../roundup/admin.py:137
 msgid "Commands:"
@@ -183,11 +184,11 @@
 "   ausgegeben und können im vollständigen Format oder in einem Teilformat\n"
 "   eingeben werden (siehe unten).\n"
 " . Links zu anderen Einträgen werden mit dem Bezeichner dargestellt.\n"
-"   Bei der Eingabe wird entweder der Bezeichner, oder nur der Schlüssel\n"
+"   Bei der Eingabe wird entweder der Bezeichner oder nur der Schlüssel\n"
 "   angegeben.\n"
-" . Bei Mehrfach-Links werden die verlinkten Bezeichner mit Komma getrennt\n"
+" . Bei Mehrfach-Links werden die verlinkten Bezeichner mit Kommata getrennt\n"
 "   ausgegeben. Bei der Eingabe können Bezeichner oder Schlüssel\n"
-"   mit Kommas getrennt eingegeben werden.\n"
+"   mit Kommata getrennt eingegeben werden.\n"
 "\n"
 "Falls Eigenschaften Leerzeichen enthalten, müssen die Werte in\n"
 "\"Anführungszeichen\" eingeschlossen werden. Leerzeichen können auch mit\n"
@@ -249,7 +250,7 @@
 "        commands  -- Befehle auflisten\n"
 "        <command> -- Hilfe zu einem bestimmten Befehl\n"
 "        initopts  -- Optionen zur Initialisierung\n"
-"        all       -- Sämtlichen Hilfetext anzeigen\n"
+"        all       -- sämtlichen Hilfetext anzeigen\n"
 "        "
 
 #: ../roundup/admin.py:265
@@ -299,11 +300,11 @@
 "        (falls Sie keines mit TRACKER_HOME oder -i angegeben haben),\n"
 "        sowie eine Vorlage, den Datenbanktyp und das Administrations-\n"
 "        paßwort anzugeben.\n"
-"        Sie können die Vorlage, den Datenbanktyp und das Paßwort\n"
-"        auch in dieser Reihenfolge auf der Kommandozeile angegen.\n"
+"        Sie können auch die Vorlage, den Datenbanktyp und das Paßwort\n"
+"        in dieser Reihenfolge auf der Kommandozeile angegen.\n"
 "\n"
 "        Das letzte Argument erlaubt die Angabe von Konfigurations-Optionen.\n"
-"        So wird z. B. durch Angabe von\n"
+"        So wird zum Beispiel durch Angabe von\n"
 "           \"web_http_auth=no,rdbms_user=dinsdale\"\n"
 "        die Option http_auth in der Sektion [web] ausgeschaltet und der\n"
 "        Name des Datenbank-Benutzers in der Sektion [rdbms] geändert.\n"
@@ -357,7 +358,7 @@
 #, python-format
 msgid "Error in configuration settings: \"%s\""
 msgstr ""
-"Fehler in Konfiguration: \"%s\""
+"Fehler in der Konfiguration: \"%s\""
 
 #: ../roundup/admin.py:408
 #, python-format
@@ -408,7 +409,7 @@
 msgstr ""
 "Verwendung: genconfig <filename>\n"
 "        Schreibt eine neue Tracker-Konfiguration (im \".ini\"-Format) mit \n"
-"        Vorgabe-Werten in die Datei <filename>.\n"
+"        Standard-Werten in die Datei <filename>.\n"
 "        "
 
 #. password
@@ -432,7 +433,7 @@
 
 #: ../roundup/admin.py:460
 msgid "Admin Password: "
-msgstr "Admin-Paßwort: "
+msgstr "Administrator-Paßwort: "
 
 #: ../roundup/admin.py:461
 msgid "       Confirm: "
@@ -492,8 +493,8 @@
 #, python-format
 msgid "no such %(classname)s property \"%(propname)s\""
 msgstr ""
-"Die Eigenschaft \"%(propname)s\" ist nicht definiert für die Klasse \"%"
-"(classname)s\""
+"Die Eigenschaft \"%(propname)s\" ist für die Klasse \"%"
+"(classname)s\" nicht definiert"
 
 #: ../roundup/admin.py:569
 msgid ""
@@ -513,14 +514,14 @@
 "Verwendung: set Einträge Eigenschaft=Wert Eigenschaft=Wert ...\n"
 "        Bearbeitet den Eigenschaftswert eines oder mehrerer Einträge.\n"
 "\n"
-"        Für \"Einträge\" können Sie eine Klasse angeben, oder eine Liste\n"
-"        von einem oder mehreren kommagetrennten Bezeichnern aufführen\n"
+"        Für \"Einträge\" können Sie eine Klasse angeben oder eine Liste\n"
+"        von einem oder mehreren mit Kommata getrennten Bezeichnern aufführen\n"
 "        (\"Bezeichner[,Bezeichner]*\").\n"
 "\n"
 "        Der Wert der Eigenschaft wird für alle angegebenen Einträge gesetzt.\n"
 "        Wenn der Wert fehlt (Eigenschaft=), wird die Eigenschaft gelöscht.\n"
 "        Wenn die Eigenschaft ein Link/Multilink ist, werden die verlinkten\n"
-"        Einträge als kommagetrennte ID-Nummern angegeben (\"1,2,3\").\n"
+"        Einträge als mit Kommata getrennte ID-Nummern angegeben (\"1,2,3\").\n"
 "        "
 
 #: ../roundup/admin.py:623
@@ -557,9 +558,9 @@
 "        "
 msgstr ""
 "Verwendung: specification Klassenname\n"
-"        Gibt die Spezifikation der Klasseneigenschaften aus.\n"
+"        Gibt die Attribute der Klasse aus.\n"
 "\n"
-"        Listet sämtliche Eigenschaften der Klasse auf.\n"
+"        Zeigt sämtliche Eigenschaften der Klasse auf.\n"
 "        "
 
 #: ../roundup/admin.py:696
@@ -584,8 +585,8 @@
 "Verwendung: display Bezeichner[,Bezeichner]*\n"
 "        Zeigt alle Eigenschaften eines oder mehrerer Eintrage an.\n"
 "\n"
-"        Der Befehl listet sämtliche Eigenschaften und Ihre Werte des\n"
-"        Eintrags an.\n"
+"        Der Befehl zeigt die Eigenschaften und Ihre Werte des\n"
+"        gewählten Eintrags an.\n"
 "        "
 
 #: ../roundup/admin.py:725
@@ -607,7 +608,7 @@
 "Verwendung: create Klassenname Eigenschaft=Wert ...\n"
 "        Erstellt einen neuen Eintrag der angegebenen Klasse.\n"
 "\n"
-"        Ein neuer Eintrag der Klasse wird erstellt und die Eigenschaften\n"
+"        Ein neuer Eintrag der Klasse wird erstellt, und die Eigenschaften\n"
 "        werden mit den Werten initialisiert\n"
 "        "
 
@@ -654,14 +655,13 @@
 "        Listet sämtliche Einträge einer Klasse auf.\n"
 "\n"
 "        Es werden sämtliche Einträge der Klasse ausgegeben. Wird keine\n"
-"        Eigenschaft angegeben, so wird ein Bezeichner verwendet. Falls ein\n"
-"        Schlüsselfeld existiert, wird dieses ausgegeben, sonst ein Feld "
-"namens \n"
-"        \"name\" oder \"title\". Falls auch diese Felder nicht existieren, "
-"wird \n"
+"        Eigenschaft angegeben, so wird ein Bezeichner aus der folgenden\n"
+"        Liste generiert, mit absteigender Priorität:\n"
+"        Schlüsselfeld, ein Feld namens \"name\" oder \"title\". Falls\n"
+"        auch diese Felder nicht existieren, wird das \n"
 "        erste Feld alphabetisch sortiert angezeigt.\n"
 "\n"
-"        Mit den Optionen -c, -S or -s wird eine Liste von ID's ausgegeben,\n"
+"        Mit den Optionen -c, -S or -s wird eine Liste von IDs ausgegeben,\n"
 "        falls keine Eigenschaft angegeben wird. Sonst werden die Werte\n"
 "        dieser Eigenschaften sämtlicher Instanzen dieser Klasse "
 "aufgelistet.\n"
@@ -708,13 +708,13 @@
 "        "
 msgstr ""
 "Verwendung: table Klassenname [Eigenschaft[,Eigenschaft]*]\n"
-"        Listet die Einträge einer Klasse in tabelarischer Form.\n"
+"        Listet die Einträge einer Klasse in tabellarischer Form.\n"
 "\n"
-"        Gibt eine Liste sämtlicher Instanzen einer Klasse aus.\n"
+"        Dieser Befehl gibt eine Liste sämtlicher Instanzen einer Klasse aus.\n"
 "        Werden die Eigenschaften nicht explizit angegeben, so werden\n"
 "        alle angezeigt. Die Spaltenbreite wird automatisch nach dem \n"
 "        grössten Wert jeder Spalte berechnet, oder sie kann explizit\n"
-"        angegeben als \"Eigenschaft:Breite\"\n"
+"        als \"Eigenschaft:Breite\" angegeben werden.\n"
 "        Beispiel:\n"
 "\n"
 "          roundup> table priority id,name:10\n"
@@ -724,9 +724,8 @@
 "          3  usability\n"
 "          4  feature\n"
 "\n"
-"        Um die Spaltenbreite auf die Grösse des Spaltentitels zu "
-"bechränken,\n"
-"        lassen Sie die Breitenangabe hinter dem : weg.\n"
+"        Um die Spaltenbreite auf die Grösse des Spaltentitels zu bechränken,\n"
+"        lassen Sie die Breitenangabe hinter dem Doppelpunkt weg.\n"
 "        Beispiel:\n"
 "\n"
 "          roundup> table priority id,name:\n"
@@ -776,8 +775,7 @@
 "        Speichern der Datenbank-Änderungen.\n"
 "\n"
 "        Falls die Datenbank Transaktionen unterstützt, werden Änderungen\n"
-"        während einer Bearbeitungs-Session erst nach einem \"commit\" an "
-"die\n"
+"        während einer Bearbeitungs-Session erst nach einem \"commit\" an die\n"
 "        Datenbank übermittelt.\n"
 "\n"
 "        Einzelbefehle über die Kommandozeile werden sofort in die Datenbank\n"
@@ -892,8 +890,8 @@
 "          In dieser Datei wird der Bearbeitungs-Verlauf der Einträge\n"
 "          beschrieben.\n"
 "\n"
-"        Importierte Einträge übernehmen die ID's, welche in den Dateien\n"
-"        definiert sind. Existierende Einträge mit denselben ID's werden\n"
+"        Importierte Einträge übernehmen die IDs, welche in den Dateien\n"
+"        definiert sind. Existierende Einträge mit denselben IDs werden\n"
 "        überschrieben.\n"
 "        Die Einträge werden in die existierende Datenbank geschrieben.\n"
 "        Falls eine neue, leere Datenbank verwendet werden soll, so müssen\n"
@@ -956,7 +954,7 @@
 "Verwendung: reindex [Klasse|Bezeichner]*\n"
 "        Der Volltext-Index eines Trackers wird neu erstellt.\n"
 "\n"
-"        Der Volltext-Index wird neu generiert. Dieser Prozeß geschieht \n"
+"        Der Volltext-Index wird neu generiert. Dies geschieht \n"
 "        normalerweise automatisch.\n"
 "        "
 
@@ -1008,7 +1006,7 @@
 #: ../roundup/admin.py:1280
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
-msgstr ""
+msgstr " %(description)s (%(name)s für \"%(klass)s\": ausschließlich %(properties)s)"
 
 #: ../roundup/admin.py:1241
 #, python-format
@@ -1081,7 +1079,7 @@
 
 #: ../roundup/backends/rdbms_common.py:1588
 msgid "unlink"
-msgstr "link gelöscht"
+msgstr "Link gelöscht"
 
 #: ../roundup/backends/rdbms_common.py:1592
 msgid "link"
@@ -1103,8 +1101,8 @@
 #, python-format
 msgid "You do not have permission to %(action)s the %(classname)s class."
 msgstr ""
-"Sie sind nicht berechtigt, die Aktion %(action)s auf die Klasse%"
-"(classname)s anzuwenden."
+"Sie sind nicht berechtigt, die Aktion(en) %(action)s auf die Klasse"
+" %(classname)s anzuwenden."
 
 #: ../roundup/cgi/actions.py:89
 msgid "No type specified"
@@ -1112,7 +1110,7 @@
 
 #: ../roundup/cgi/actions.py:91
 msgid "No ID entered"
-msgstr "Keine ID spezifiziert"
+msgstr "keine ID spezifiziert"
 
 #: ../roundup/cgi/actions.py:97
 #, python-format
@@ -1131,17 +1129,17 @@
 # ../roundup/cgi/actions.py:174 :202
 #: ../roundup/cgi/actions.py:174 ../roundup/cgi/actions.py:202
 msgid "You do not have permission to edit queries"
-msgstr ""
+msgstr "Sie haben keine Berechtigung, Abfragen zu bearbeiten."
 
 # ../roundup/cgi/actions.py:180 :209
 #: ../roundup/cgi/actions.py:180 ../roundup/cgi/actions.py:209
 msgid "You do not have permission to store queries"
-msgstr ""
+msgstr "Sie haben keine Berechtigung, Abfragen zu speichern."
 
 #: ../roundup/cgi/actions.py:279
 #, python-format
 msgid "Not enough values on line %(line)s"
-msgstr "Nicht genügend Werte auf Zeile %(line)s"
+msgstr "Nicht genügend Werte in Zeile %(line)s"
 
 #: ../roundup/cgi/actions.py:326
 msgid "Items edited OK"
@@ -1186,8 +1184,8 @@
 "Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href="
 "\"%s%s\">their changes</a> in a new window."
 msgstr ""
-"Fehler: jemand anders hat dieses %s bearbeitet (%s). Sehen Sie "
-"<a target=\"new\" href=\"%s%s\">dessen Änderungen</a> in einem neuen Fenster."
+"Fehler: Jemand anders hat dieses %s bearbeitet (%s). Sehen Sie "
+"<a target=\"_new\" href=\"%s%s\">dessen Änderungen</a> in einem neuen Fenster."
 
 #: ../roundup/cgi/actions.py:530
 #, python-format
@@ -1251,11 +1249,11 @@
 
 #: ../roundup/cgi/actions.py:873 ../roundup/cgi/actions.py:877
 msgid "Invalid login"
-msgstr "Ungültiges Login"
+msgstr "Ungültiger Benutzername"
 
 #: ../roundup/cgi/actions.py:883
 msgid "You do not have permission to login"
-msgstr "Sie sind nicht berechtigt sich anzumelden"
+msgstr "Sie sind nicht berechtigt, sich anzumelden"
 
 #: ../roundup/cgi/cgitb.py:49
 #, python-format
@@ -1264,7 +1262,7 @@
 "<p><b>%(exc_type)s</b>: %(exc_value)s</p>\n"
 "<p class=\"help\">Debugging information follows</p>"
 msgstr ""
-"<h1>Templating-Fehler</h1>\n"
+"<h1>Fehler in einer Vorlage:</h1>\n"
 "<p><b>%(exc_type)s</b>: %(exc_value)s</p>\n"
 "<p class=\"help\">Es folgen Informationen zum Fehler:</p>"
 
@@ -1286,7 +1284,7 @@
 #: ../roundup/cgi/cgitb.py:76
 #, python-format
 msgid "A problem occurred in your template \"%s\"."
-msgstr "Ein Problem ist im Template \"%s\" aufgetreten."
+msgstr "Ein Problem ist in der Vorlage \"%s\" aufgetreten."
 
 #: ../roundup/cgi/cgitb.py:84
 #, python-format
@@ -1425,7 +1423,7 @@
 "Die Eigenschaft \"%(property)s\" muß für die Klasse \"%(class)s\" angegeben "
 "werden"
 msgstr[1] ""
-"Die Eigenschaften \"%(property)s\" müssen für die Klasse \"%(class)s\" "
+"Die Eigenschaften \"%(property)\" müssen für die Klasse \"%(class)s\" "
 "angegeben werden"
 
 #: ../roundup/cgi/form_parser.py:529
@@ -2104,7 +2102,7 @@
 
 #: ../roundup/scripts/roundup_server.py:278
 msgid "Can't run as root!"
-msgstr "Dieser Prozeß kann nicht unter dem Administrator (\"root\") laufen!"
+msgstr "Dieser Prozeß kann nicht unter dem Administrator-Konto (\"root\") laufen!"
 
 #: ../roundup/scripts/roundup_server.py:281
 msgid "WARNING: ignoring \"-u\" argument, not root"
@@ -2158,7 +2156,7 @@
 " -u <UID>      Startet den Roundup-Server mit dieser Benutzer-Nummer\n"
 " -g <GID>      Startet den Roundup-Server mit dieser Gruppen-Nummer\n"
 " -d <PIDDatei> Startet den Server als Hintergrundprozeß und schreibt\n"
-"               die Prozeß-ID in die Datei PIDDatei\n"
+"               die Prozeß-ID in die Datei PIDDatei.\n"
 "               Die Option -l muß dann auch angegeben werden."
 
 #: ../roundup/scripts/roundup_server.py:521
@@ -2390,9 +2388,9 @@
 "<p class=\"form-help\">Sie können hier die Einträge der Klasse \"${classname}\" "
 "bearbeiten. <strong>Hinweise:</strong></p>"
 "<ul>"
-"<li> Kommas, Zeilenumbrüche und "
+"<li> Kommata, Zeilenumbrüche und "
 "Anführungszeichen (\") mit Vorsicht verwenden:"
-"<ul><li> Kommas und Zeilenumbrüche "
+"<ul><li> Kommata und Zeilenumbrüche "
 "dürfen nur in Anführungszeichen (\") verwendet werden."
 "<li> Um Anführungszeichen in "
 "Werten zu verwenden, müssen sie verdoppelt werden (<q><tt>\"\"</tt></q>)</ul>"
@@ -2645,7 +2643,7 @@
 #: ../templates/classic/html/issue.item.html:123
 #: ../templates/classic/html/query.edit.html:30
 msgid "Edit"
-msgstr "Bearbeiten"
+msgstr "bearbeiten"
 
 #: ../templates/classic/html/issue.item.html:124
 msgid "Remove"
@@ -2688,15 +2686,15 @@
 
 #: ../templates/classic/html/issue.search.html:26
 msgid "Display"
-msgstr "Anzeigen"
+msgstr "anzeigen"
 
 #: ../templates/classic/html/issue.search.html:27
 msgid "Sort on"
-msgstr "Sortieren"
+msgstr "sortieren"
 
 #: ../templates/classic/html/issue.search.html:28
 msgid "Group on"
-msgstr "Gruppieren"
+msgstr "gruppieren"
 
 #: ../templates/classic/html/issue.search.html:32
 msgid "All text*:"
@@ -2901,15 +2899,15 @@
 #: ../templates/classic/html/page.html:41
 #: ../templates/classic/html/page.html:60
 msgid "Create New"
-msgstr "Neuer Eintrag"
+msgstr "neuer Eintrag"
 
 #: ../templates/classic/html/page.html:43
 msgid "Show Unassigned"
-msgstr "Nicht zugewiesen"
+msgstr "nicht zugewiesen"
 
 #: ../templates/classic/html/page.html:45
 msgid "Show All"
-msgstr "Alle anzeigen"
+msgstr "alle anzeigen"
 
 #: ../templates/classic/html/page.html:48
 msgid "Show issue:"
@@ -2922,7 +2920,7 @@
 
 #: ../templates/classic/html/page.html:64
 msgid "Edit Existing"
-msgstr "Bearbeiten"
+msgstr "bearbeiten"
 
 #: ../templates/classic/html/page.html:70
 #: ../templates/minimal/html/page.html:48
@@ -2948,19 +2946,19 @@
 #: ../templates/classic/html/page.html:89
 #: ../templates/minimal/html/page.html:30
 msgid "Login"
-msgstr "Anmelden"
+msgstr "anmelden"
 
 #: ../templates/classic/html/page.html:104
 #: ../templates/minimal/html/page.html:45
 msgid "Remember me?"
-msgstr "Dauerhaft anmelden?"
+msgstr "dauerhaft anmelden?"
 
 #: ../templates/classic/html/page.html:108
 #: ../templates/classic/html/user.register.html:63
 #: ../templates/minimal/html/page.html:50
 #: ../templates/minimal/html/user.register.html:58
 msgid "Register"
-msgstr "Registrieren"
+msgstr "registrieren"
 
 #: ../templates/classic/html/page.html:94
 msgid "Lost&nbsp;your&nbsp;login?"
@@ -2982,7 +2980,7 @@
 #: ../templates/classic/html/page.html:104
 #: ../templates/minimal/html/page.html:42
 msgid "Logout"
-msgstr "Abmelden"
+msgstr "abmelden"
 
 #: ../templates/classic/html/page.html:108
 msgid "Help"
@@ -3219,7 +3217,7 @@
 #: ../templates/minimal/html/user.item.html:58
 msgid "(to give the user more than one role, enter a comma,separated,list)"
 msgstr ""
-"<tt>Verwenden,Sie,Kommas</tt>, um einem Benutzer mehrere Rollen zuzuteilen"
+"<tt>Verwenden,Sie,Kommata</tt>, um einem Benutzer mehrere Rollen zuzuteilen"
 
 #: ../templates/classic/html/user.item.html:61
 #: ../templates/classic/html/user.register.html:41
@@ -3308,7 +3306,7 @@
 
 #: ../templates/classic/html/...:123
 msgid "No Sort or group"
-msgstr "Nicht sortieren/gruppieren"
+msgstr "nicht sortieren/gruppieren"
 
 #: ../templates/classic/html/issue.search.html:170
 msgid "sort descending"
@@ -3328,11 +3326,11 @@
 
 #: ../templates/classic(th)/html/issue.search.html:XXX
 msgid "Sort/Group Descending:"
-msgstr "Absteigend sortieren/gruppieren:"
+msgstr "absteigend sortieren/gruppieren:"
 
 #: ../templates/classic(th)/html/issue.search.html:XXX
 msgid "Paged Output:"
-msgstr "Seitenweise ausgeben:"
+msgstr "seitenweise ausgeben:"
 
 #: ../templates/classic(th)/html/issue.search.html:XXX
 msgid "Pagesize"

Modified: tracker/vendor/roundup/current/locale/es.po
==============================================================================
--- tracker/vendor/roundup/current/locale/es.po	(original)
+++ tracker/vendor/roundup/current/locale/es.po	Sun Jan 14 15:31:23 2007
@@ -1,15 +1,14 @@
-# Spanish message file for Roundup Issue Tracker
-#
-# $Id: es.po,v 1.1 2006/07/05 07:31:07 a1s Exp $
-#
-# roundup.pot revision 1.18
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR See Roundup README.txt
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Roundup 1.1.2\n"
+"Project-Id-Version: Roundup 1.3.1\n"
 "Report-Msgid-Bugs-To: roundup-devel at lists.sourceforge.net\n"
 "POT-Creation-Date: 2006-04-27 09:02+0300\n"
-"PO-Revision-Date: 2006-06-21 14:22:00-0300\n"
+"PO-Revision-Date: 2006-11-11 01:32:00-0300\n"
 "Last-Translator: Ramiro Morales <rm0 at gmx.net>\n"
 "Language-Team: Spanish Translators <roundup-devel at lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -69,24 +68,22 @@
 "\n"
 "Opciones:\n"
 " -i base de instancia  -- especifica el \"directorio base\" del issue "
-"tracker a administrar\n"
+"tracker\n"
+"                          a administrar\n"
 " -u                    -- usuario[:contraseña] a usarse para los comandos\n"
 " -d                    -- imprime designadores completos, no solamente "
 "números\n"
 "                          de identificación de clases\n"
-" -c                    -- separa los elementos con comas cuando se generan "
-"listas de\n"
-"                          salida.\n"
-"                          Equivalente a '-S \",\"'.\n"
-" -S <string>           -- separa los elementos con cadenas cuando se generan "
-"listas\n"
-"                          de salida\n"
+" -c                    -- separa los elementos con comas cuando se generan\n"
+"                          listados. Equivalente a '-S \",\"'.\n"
+" -S <string>           -- separa los elementos con cadenas string cuando se\n"
+"                          generan listados.\n"
 " -s                    -- separa los elementos con espacios cuando se "
-"generan listas\n"
-"                          de salida\n"
-"                          Equivalente a '-S \" \"'.\n"
-" -V                    -- ser verborrágico cuando se importen datos\n"
-" -v                    -- reporta las versiones de Roundup y Python (y termina)\n"
+"generan\n"
+"                          listados. Equivalente a '-S \" \"'.\n"
+" -V                    -- ser verborrágico cuando se importan datos\n"
+" -v                    -- reporta las versiones de Roundup y Python (y "
+"termina)\n"
 "\n"
 " Sólo puede especificarse una de las opciones -s, -c o -S.\n"
 "\n"
@@ -175,38 +172,35 @@
 "Command help:\n"
 msgstr ""
 "\n"
-"Todos los comandos (excepto ayuda) requieren un especificador de tracker. "
-"Este es\n"
-"simplemente la ruta al tracker roundup con el que se está trabajando. Un\n"
-"tracker roundup es donde roundup mantiene la base de datos y el archivo de\n"
+"Todos los comandos (excepto ayuda) requieren un especificador de tracker.\n"
+"Este es simplemente la ruta al tracker roundup con el que se está "
+"trabajando.\n"
+"Un tracker roundup es donde roundup mantiene la base de datos y el archivo "
+"de\n"
 "configuración que define un issue tracker. Puede pensarse en el mismo como "
 "el\n"
 "\"directorio personal\" del issue tracker. Puede especificarse en la "
 "variable\n"
 "de entorno TRACKER_HOME o en la línea de comandos como \"-i tracker\".\n"
 "\n"
-"Un designador es un nombre de clase y un id de nodo concatenados, ej. bug1, "
-"user10, ...\n"
+"Un designador es un nombre de clase y un id de nodo concatenados, por ej.\n"
+"bug1, user10, ...\n"
 "\n"
-"Los valores de propiedades se representan como cadenas en argumentos de "
-"comandos y en\n"
-"resultados visualizados:\n"
+"Los valores de propiedades se representan como cadenas en argumentos de\n"
+"comandos y en resultados visualizados:\n"
 " . Las cadenas son, ahem, cadenas.\n"
-" . Los valores de fechas se imprimen en el formato de fecha completo y en el "
-"huso\n"
-"   horario local y se aceptan en el formato completo o cualquiera de los\n"
+" . Los valores de fechas se imprimen en el formato de fecha completo y en "
+"el\n"
+"   huso horario local y se aceptan en el formato completo o cualquiera de "
+"los\n"
 "   formatos parciales descriptos mas abajo.\n"
-" . Los valores Link se imprimen como designadores de nodos. Cuando se pasan "
-"como\n"
-"   argumentos, se aceptan tanto los designadores de nodos como las cadenas "
-"clave.\n"
-" . Los valores Multilink se imprimen como listas de designadores de nodos "
-"unidos por\n"
-"   comas. Cuando se pasan como argumentos, se aceptan tanto los designadores "
-"de\n"
-"   nodos como las cadenas clave; tambien se aceptan una cadena vacía, un "
-"nodo\n"
-"   individual, o una lista de nodos unidos por comas.\n"
+" . Los valores Link se imprimen como designadores de nodos. Cuando se pasan\n"
+"   como argumentos, se aceptan tanto los designadores de nodos como las\n"
+"   cadenas clave.\n"
+" . Los valores Multilink se imprimen como listas de designadores de nodos\n"
+"   unidos por comas. Cuando se pasan como argumentos, se aceptan tanto los\n"
+"   designadores de nodos como las cadenas clave; tambien se aceptan una\n"
+"   cadena vacía, un nodo individual, o una lista de nodos unidos por comas.\n"
 "\n"
 "Cuando los valores de las propiedades deben contener espacios, simplemente\n"
 "escriba el valor entre comillas simples (') o dobles (\"). Un caracter "
@@ -223,8 +217,8 @@
 "           Roch\\'e Compaan  (2 unidades: Roch'e Compaan)\n"
 "           address=\"1 2 3\"  (1 unidad: address=1 2 3)\n"
 "           \\\\               (1 unidad: \\)\n"
-"           \\n\\r\\t           (1 unidad: una línea nueva, retorno de carro "
-"y tabulación)\n"
+"           \\n\\r\\t           (1 unidad: línea nueva, retorno de carro y\n"
+"                             tabulación)\n"
 "\n"
 "Cuando se especifican múltiples nodos a los comandos roundup get y roundup "
 "set,\n"
@@ -254,7 +248,7 @@
 "  \"8:47:11\" significa <Date yyyy-mm-dd.13:47:11>\n"
 "  \".\" significa \"right now\"\n"
 "\n"
-"Ayuda del comando:\n"
+"Ayuda sobre comandos:\n"
 
 #: ../roundup/admin.py:240
 #, python-format
@@ -272,14 +266,14 @@
 "        all       -- all available help\n"
 "        "
 msgstr ""
-"Uso: help tópico\n"
-"      Visualiza ayuda acerca del tópico.\n"
+"Uso:   help tópico\n"
+"        Visualiza ayuda acerca del tópico.\n"
 "\n"
-"      commands  -- lista los comandos\n"
-"      <comando> -- ayuda específica a un comando\n"
-"      initopts  -- opciones del comando init\n"
-"      all       -- toda la ayuda disponible\n"
-"      "
+"        commands  -- lista los comandos\n"
+"        <comando> -- ayuda específica a un comando\n"
+"        initopts  -- opciones del comando init\n"
+"        all       -- toda la ayuda disponible\n"
+"        "
 
 #: ../roundup/admin.py:268
 #, python-format
@@ -321,31 +315,37 @@
 "        See also initopts help.\n"
 "        "
 msgstr ""
-"Uso: install [plantilla [backend [ctraseña admin [clave=valor[,clave=valor]]]]]\n"
-"      Instala un nuevo tracker Roundup.\n"
+"Uso:   install [plantilla [backend [ctraseña adm [clave=val[,clave=val]]]]]\n"
+"        Instala un nuevo tracker Roundup.\n"
 "\n"
-"      El comando preguntará el directorio base del tracker\n"
-"      (si el mismo no se provee vía TRACKER_HOME o la opción -i).\n"
-"      La plantilla, el backend y la contraseña de admin pueden\n"
-"      especificarse en la línea de comandos como argumentos, en ese orden.\n"
-"\n"
-"      El último argumento de la línea de comandos permite especificar valores\n"
-"      iniciales para opciones de configuración. Por ejemplo, especificando\n"
-"      \"web_http_auth=no,rdbms_user=dinsdale\" tendrá mayor preponderancia\n"
-"      que las opciones http_auth en la sección [web] and user en la sección.\n"
-"      [rdbms].\n"
-"      Por favor enga el cuidado de no usar espacios en este argumento! (Rodee\n"
-"      el argumento completo en comillas si necesita usar espacios en los\n"
-"      valores de opciones).\n"
-"\n"
-"      Luego de este comando debe usarse el comando initialise con el objetivo\n"
-"      de inicializar la base de datos del tracker. Ud. puede editar los\n"
-"      contenidos iniciales de la base de datos del tracker antes de ejecutar\n"
-"      dicho comando editando la funcion init() del módulo dbinit.py del\n"
-"      tracker.\n"
+"        El comando preguntará el directorio base del tracker\n"
+"        (si el mismo no se provee vía TRACKER_HOME o la opción -i).\n"
+"        La plantilla, el backend y la contraseña de admin pueden\n"
+"        especificarse en la línea de comandos como argumentos, en ese "
+"orden.\n"
+"\n"
+"        El último argumento de la línea de comandos permite especificar "
+"valores\n"
+"        iniciales para opciones de configuración. Por ejemplo, "
+"especificando\n"
+"        \"web_http_auth=no,rdbms_user=dinsdale\" tendrá mayor "
+"preponderancia\n"
+"        que las opciones http_auth en la sección [web] y user en la\n"
+"        sección [rdbms]. Por favor tenga el cuidado de no usar espacios en\n"
+"        este argumento! (Rodee el argumento completo con comillas si "
+"necesita\n"
+"         usar espacios en los valores de opciones).\n"
+"\n"
+"        Luego de este comando debe usarse el comando initialise con el "
+"objetivo\n"
+"        de inicializar la base de datos del tracker. Puede editar los\n"
+"        contenidos iniciales de la base de datos del tracker antes de "
+"ejecutar\n"
+"        dicho comando editando la funcion init() del módulo dbinit.py del\n"
+"        tracker.\n"
 "\n"
-"      Vea también initopts help.\n"
-"      "
+"        Vea también initopts help.\n"
+"        "
 
 # ../roundup/admin.py:360 :442 :503 :582 :632 :688 :709 :737 :808 :875 :946
 # :994 :1016 :1043 :1106 :1173
@@ -441,11 +441,11 @@
 "        in <filename>.\n"
 "        "
 msgstr ""
-"Uso: genconfig <archivo>\n"
-"      Genera un nuevo archivo de configuración de tracker (en formato ini) "
-"con\n"
-"      valores por defecto en el archivo <archivo>.\n"
-"      "
+"Uso:   genconfig <archivo>\n"
+"        Genera un nuevo archivo de configuración de tracker (en formato "
+"ini)\n"
+"        con valores por defecto en el archivo <archivo>.\n"
+"        "
 
 #. password
 #: ../roundup/admin.py:471
@@ -458,14 +458,14 @@
 "        Execute the tracker's initialisation function dbinit.init()\n"
 "        "
 msgstr ""
-"Uso: initialise [contraseña-admin]\n"
-"      Inicializa un nuevo tracker Roundup.\n"
+"Uso:   initialise [contraseña-admin]\n"
+"        Inicializa un nuevo tracker Roundup.\n"
 "\n"
-"      Es en este paso cuando se configuran los detalles del usuario "
-"administrador.\n"
+"        Es en este paso cuando se configuran los detalles del usuario\n"
+"        administrador.\n"
 "\n"
-"      Ejecuta la función de inicialización dbinit.init() del tracker\n"
-"      "
+"        Ejecuta la función de inicialización dbinit.init() del tracker\n"
+"        "
 
 #: ../roundup/admin.py:485
 msgid "Admin Password: "
@@ -502,12 +502,12 @@
 "        by the designators.\n"
 "        "
 msgstr ""
-"Uso: get propiedad designador[,designador]*\n"
-"      Retorna la propiedad especificada de uno o mas designadores.\n"
+"Uso:   get propiedad designador[,designador]*\n"
+"        Retorna la propiedad especificada de uno o mas designadores.\n"
 "\n"
-"      Recupera el valor de la propiedad de los nodos especificados\n"
-"      por los designadores.\n"
-"      "
+"        Recupera el valor de la propiedad de los nodos especificados\n"
+"        por los designadores.\n"
+"        "
 
 # ../roundup/admin.py:536 :551
 #: ../roundup/admin.py:560 ../roundup/admin.py:575
@@ -544,22 +544,19 @@
 "        ids for the multilink as comma-separated numbers (ie \"1,2,3\").\n"
 "        "
 msgstr ""
-"Uso: set items propiedad=valor propiedad=valor ...\n"
-"      Establece las propiedades especificadas de uno o más ítems.\n"
+"Uso:   set items propiedad=valor propiedad=valor ...\n"
+"        Establece las propiedades especificadas de uno o más ítems.\n"
 "\n"
-"      Los ítems se especifican como una clase o como una lista de "
-"designadores\n"
-"      de ítems (\"designador[,designador,...]\") separados por comas.\n"
-"\n"
-"      Este comando establece valores de las propiedades para todos los\n"
-"      designadores especificados. Si los valores no se especifican "
-"(\"propiedad=\")\n"
-"      entonces la propiedad se elimina. Si la propiedad es del tipo "
-"multilink, deben\n"
-"      especificarse los identificadores asociados como números separados por "
-"comas\n"
-"      (\"1,2,3\").\n"
-"      "
+"        Los ítems se especifican como una clase o como una lista de\n"
+"        designadores de ítems (\"designador[,designador,...]\") separados\n"
+"        por comas.\n"
+"\n"
+"        Este comando establece valores de las propiedades para todos los\n"
+"        designadores especificados. Si los valores no se especifican\n"
+"        (\"propiedad=\") entonces la propiedad se elimina. Si la propiedad\n"
+"        es del tipo multilink, deben especificarse los identificadores\n"
+"        asociados como números separados por comas (\"1,2,3\").\n"
+"        "
 
 #: ../roundup/admin.py:648
 msgid ""
@@ -571,15 +568,16 @@
 "        value.\n"
 "        "
 msgstr ""
-"Uso: find nombreclase nombreprop=valor ...\n"
-"      Busca los nodos de la clase especificada que poseen un cierto valor de "
-"propiedad.\n"
-"\n"
-"      Busca los nodos de la clase especificada que poseen un cierto valor de "
-"propiedad.\n"
-"      El valor puede ser el identificador de nodo del nodo enlazado o su "
-"valor clave.\n"
-"      "
+"Uso:   find nombreclase nombreprop=valor ...\n"
+"        Busca los nodos de la clase especificada que poseen un cierto valor "
+"de\n"
+"        propiedad.\n"
+"\n"
+"        Busca los nodos de la clase especificada que poseen un cierto valor "
+"de\n"
+"        propiedad. El valor puede ser el identificador de nodo del nodo\n"
+"        enlazado o su valor clave.\n"
+"        "
 
 # ../roundup/admin.py:675 :828 :840 :894
 #: ../roundup/admin.py:701 ../roundup/admin.py:854 ../roundup/admin.py:866
@@ -596,11 +594,11 @@
 "        This lists the properties for a given class.\n"
 "        "
 msgstr ""
-"Uso: specification nombreclase\n"
-"      Muestra las propiedades para un nombre de clase.\n"
+"Uso:   especificación nombreclase\n"
+"        Muestra las propiedades para una clase nombreclase.\n"
 "\n"
-"      Visualiza las propiedades para una cierta clase.\n"
-"      "
+"        Visualiza las propiedades para una cierta clase.\n"
+"        "
 
 #: ../roundup/admin.py:723
 #, python-format
@@ -621,13 +619,12 @@
 "        node.\n"
 "        "
 msgstr ""
-"Uso: display designador[,designador]*\n"
-"      Muestra los valores de propiedeades para el/los nodo(s) especificados"
+"Uso:   display designador[,designador]*\n"
+"        Muestra los valores de propiedades para el/los nodo(s) especificado"
 "(s).\n"
-"\n"
-"      Lista las propiedades y sus valores asociados para el nodo "
+"        Lista las propiedades y sus valores asociados para el nodo "
 "especificado.\n"
-"      "
+"        "
 
 #: ../roundup/admin.py:752
 #, python-format
@@ -645,14 +642,13 @@
 "        command.\n"
 "        "
 msgstr ""
-"Uso: create nombreclase propiedad=valor ...\n"
-"      Crea una nueva entrada de una clase especificada.\n"
+"Uso:   create nombreclase propiedad=valor ...\n"
+"        Crea una nueva entrada de una clase especificada.\n"
 "\n"
-"      Crea una nueva entrada de la clase especificada usando los argumentos "
-"nombre=valor\n"
-"      provistos en la línea de comandos luego del comando \"create\" para "
-"establecer\n"
-"      valores de propiedad(es).      "
+"        Crea una nueva entrada de la clase especificada usando los "
+"argumentos\n"
+"        nombre=valor provistos en la línea de comandos luego del comando\n"
+"        \"create\" para establecer valores de propiedad(es).        "
 
 #: ../roundup/admin.py:782
 #, python-format
@@ -693,22 +689,20 @@
 "        for every class instance.\n"
 "        "
 msgstr ""
-"Uso: list nombreclase [propiedad]\n"
-"      Lista las instancias de una clase.\n"
+"Uso:   list nombreclase [propiedad]\n"
+"        Lista las instancias de una clase.\n"
 "\n"
-"      Lista todas las instancias de la clase especificada. Si no se\n"
-"      especifica la propiedad, se usará la propiedad \"etiqueta\". La "
-"propiedad\n"
-"      etiqueta es obtenida siguiendo el siguiente orden: \"name\", \"title"
-"\"\n"
-"      y luego la primera propiedad en orden alfabético.\n"
-"\n"
-"      Cuando se usa -c, -S o -s imprime una lista de ids de items si no se "
-"ha especificado\n"
-"      propiedad. Si se ha especificado propiedad, imprime una lista de dicha "
-"propiedad\n"
-"      para cada instancia de la clase.\n"
-"      "
+"        Lista todas las instancias de la clase especificada. Si no se\n"
+"        especifica la propiedad, se usará la propiedad \"etiqueta\". La\n"
+"        propiedad etiqueta es obtenida siguiendo el siguiente orden:\n"
+"        \"name\", \"title\" y luego la primera propiedad en orden\n"
+"        alfabético.\n"
+"\n"
+"        Cuando se usa -c, -S o -s imprime una lista de ids de items si no\n"
+"        se ha especificado propiedad. Si se ha especificado propiedad,\n"
+"        imprime una lista de dicha propiedad para cada instancia de la "
+"clase.\n"
+"        "
 
 #: ../roundup/admin.py:832
 msgid "Too many arguments supplied"
@@ -750,42 +744,38 @@
 "        will result in a the 4 character wide \"Name\" column.\n"
 "        "
 msgstr ""
-"Uso: table nombreclase [propiedad[,propiedad]*]\n"
-"      Lista las instancias de una clase en formato tabular.\n"
+"Uso:   table nombreclase [propiedad[,propiedad]*]\n"
+"        Lista las instancias de una clase en formato tabular.\n"
+"\n"
+"        Lista todas las instancias de la clase especificada. Si no se\n"
+"        especifican las propiedades, se visualizan todas las propiedades.\n"
+"        Por omisión, los anchos de las columnas son iguales a los anchos\n"
+"        de valores mayores respectivos. Es posible definir el ancho de\n"
+"        columna de una propiedad definiendo la misma en la\n"
+"        forma \"nombre:ancho\".\n"
+"        Por ejemplo::\n"
+"\n"
+"          roundup> table priority id,name:10\n"
+"          Id Name\n"
+"          1  fatal-bug\n"
+"          2  bug\n"
+"          3  usability\n"
+"          4  feature\n"
 "\n"
-"      Lista todas las instancias de la clase especificada. Si no se "
-"especifican\n"
-"      las propiedades, se visualizan todas las propiedades. Por omisión, los "
-"anchos\n"
-"      de las columnas son iguales a los anchos de valores mayores "
-"respectivos. Es\n"
-"      posible definir el ancho de columna de una propiedad definiendo la "
-"misma en la\n"
-"      forma \"nombre:ancho\".\n"
-"      Por ejemplo::\n"
-"\n"
-"        roundup> table priority id,name:10\n"
-"        Id Name\n"
-"        1  fatal-bug\n"
-"        2  bug\n"
-"        3  usability\n"
-"        4  feature\n"
-"\n"
-"      también, para obtener un ancho de columna igual al ancho de la "
-"etiqueta,\n"
-"      deje un : al final sin un valor de ancho de la propiedad. Por "
-"ejemplo::\n"
-"\n"
-"        roundup> table priority id,name:\n"
-"        Id Name\n"
-"        1  fata\n"
-"        2  bug\n"
-"        3  usab\n"
-"        4  feat\n"
-"\n"
-"      dará como resultado una columna \"Name\" con un ancho de 4 "
-"caracteres.\n"
-"      "
+"        También, para obtener un ancho de columna igual al ancho de la\n"
+"        etiqueta, deje un : al final sin un valor de ancho de la\n"
+"        propiedad. Por ejemplo::\n"
+"\n"
+"          roundup> table priority id,name:\n"
+"          Id Name\n"
+"          1  fata\n"
+"          2  bug\n"
+"          3  usab\n"
+"          4  feat\n"
+"\n"
+"        dará como resultado una columna \"Name\" con un ancho de 4\n"
+"        caracteres.\n"
+"        "
 
 #: ../roundup/admin.py:916
 #, python-format
@@ -801,12 +791,12 @@
 "designator.\n"
 "        "
 msgstr ""
-"Uso: history designador\n"
-"      Muestra las entradas en la historia de un designador.\n"
+"Uso:   history designador\n"
+"        Muestra las entradas en la historia de un designador.\n"
 "\n"
-"      Lista las entradas del journal para el nodo identificado por el "
-"designador.\n"
-"      "
+"        Lista las entradas del journal para el nodo identificado por el\n"
+"        designador.\n"
+"        "
 
 #: ../roundup/admin.py:987
 msgid ""
@@ -821,20 +811,17 @@
 "        they are successful.\n"
 "        "
 msgstr ""
-"Uso: commit\n"
-"      Almacena definitivamente cambios realizados a la base de datos "
-"durante\n"
-"      una sesión interactiva.\n"
-"\n"
-"      Los cambios realizados durante una sesión interactiva no son "
-"automáticamente\n"
-"      escritos en la base de datos - los mismos deben ser escritos usando "
-"este comando\n"
-"\n"
-"      Comandos individuales realizados desde la línea de comandos son "
-"automáticamente\n"
-"      escritos si resultan exitosos.\n"
-"      "
+"Uso:   commit\n"
+"        Almacena definitivamente cambios realizados a la base de datos\n"
+"        durante una sesión interactiva.\n"
+"\n"
+"        Los cambios realizados durante una sesión interactiva no son\n"
+"        automáticamente escritos en la base de datos - los mismos deben\n"
+"        ser escritos usando este comando\n"
+"\n"
+"        Los comandos individuales ejecutados desde la línea de comandos\n"
+"        son automáticamente escritos si resultan exitosos.\n"
+"        "
 
 #: ../roundup/admin.py:1001
 msgid ""
@@ -847,18 +834,16 @@
 "        immediately after would make no changes to the database.\n"
 "        "
 msgstr ""
-"Uso: rollback\n"
-"      Deshace todos los cambios que están pendientes de ser escritos\n"
-"      definitivamente en la base de datos.\n"
-"\n"
-"      Los cambios hechos durante una sesión interactiva no son "
-"automáticamente\n"
-"      escritos en la base de datos - los mismos deben ser grabados "
-"manualmente.\n"
-"      Este comando deshace todos dichos cambios, de manera que un comando "
-"commit\n"
-"      inmediatamente posterior no introduciría cambios en la base de datos.\n"
-"      "
+"Uso:   rollback\n"
+"        Deshace todos los cambios que están pendientes de ser escritos\n"
+"        definitivamente en la base de datos.\n"
+"\n"
+"        Los cambios hechos durante una sesión interactiva no son\n"
+"        automáticamente escritos en la base de datos - los mismos deben\n"
+"        ser grabados manualmente. Este comando deshace todos dichos\n"
+"        cambios, de manera que un comando commit inmediatamente posterior\n"
+"        no introduciría cambios en la base de datos.\n"
+"        "
 
 #: ../roundup/admin.py:1013
 msgid ""
@@ -869,13 +854,13 @@
 "        by the list or find commands, and its key value may be re-used.\n"
 "        "
 msgstr ""
-"Uso: retire designador[,designador]*\n"
-"      Retira el nodo especificado por designador.\n"
+"Uso:   retire designador[,designador]*\n"
+"        Retira el nodo especificado por designador.\n"
 "\n"
-"      Esta acción indica que un nodo particular no se obtendrá cuando se\n"
-"      usen los comandos list y find, y que su valor clave podrá ser "
-"reusado.\n"
-"      "
+"        Esta acción indica que un nodo particular no se obtendrá cuando\n"
+"        se usen los comandos list y find, y que su valor clave podrá ser\n"
+"        reusado.\n"
+"        "
 
 #: ../roundup/admin.py:1036
 msgid ""
@@ -885,12 +870,12 @@
 "        The given nodes will become available for users again.\n"
 "        "
 msgstr ""
-"Uso: restore designador[,designador]*\n"
-"      Restaura el nodo retirado especificado por designador.\n"
+"Uso:   restore designador[,designador]*\n"
+"        Restaura el nodo retirado especificado por designador.\n"
 "\n"
-"      Los nodos especificados volverán a estar nuevamente disponibles para "
-"los usuarios.\n"
-"      "
+"        Los nodos especificados volverán a estar nuevamente disponibles\n"
+"        para los usuarios.\n"
+"        "
 
 #. grab the directory to export to
 #: ../roundup/admin.py:1058
@@ -905,16 +890,16 @@
 "        destination directory.\n"
 "        "
 msgstr ""
-"Uso: export [clase[,clase]] export_dir\n"
-"      Exporta la base de datos a archivos de valores separados por comas.\n"
+"Uso:   export [clase[,clase]] dir_exportación\n"
+"        Exporta la base de datos a archivos de valores separados por comas.\n"
 "\n"
-"      Opcionalmente limita la exportación sólo a las clases especificadas.\n"
+"        Opcionalmente limita la exportación sólo a las clases\n"
+"        especificadas.\n"
 "\n"
-"      Esta acción exporta los datos actuales desde la base de datos a\n"
-"      archivos de valores separados por comas que se colocarán en el "
-"directorio\n"
-"      de destino especificado (export_dir).\n"
-"      "
+"        Esta acción exporta los datos actuales desde la base de datos a\n"
+"        archivos de valores separados por comas que se colocarán en el\n"
+"        directorio de destino especificado (dir_exportación).\n"
+"        "
 
 #: ../roundup/admin.py:1116
 msgid ""
@@ -938,33 +923,27 @@
 "        database (or, tediously, retire all the old data.)\n"
 "        "
 msgstr ""
-"Uso: import import_dir\n"
-"      Importa una base de datos desde el directorio conteniendo archivos "
-"CSV,\n"
-"      dos por cada clase a importar.\n"
-"\n"
-"      Los archivos usados en la importación son::\n"
-"\n"
-"      <clase>.csv\n"
-"        Este debe definir las mismas propiedades que la clase (esto incluye "
-"la\n"
-"        existencia de una línea \"encabezado\" con los nombre de dichas "
-"propiedades.)\n"
-"      <clase>-journals.csv\n"
-"        Este define los journals para los items que se están importando.\n"
-"\n"
-"        Los nodos importados tendrán los mismos id´s que los nodos según se "
-"encontraban\n"
-"        definidos en el arvhivo importado, por lo tanto reemplazarán todo "
-"contenido\n"
-"        preexistente.\n"
-"\n"
-"        Los nuevos nodos son agregados a la base de datos existente - si Ud. "
-"desea\n"
-"        crear una base de datos nueva usando los datos importados, entonces "
-"puede\n"
-"        crear una nueva base de datos (o, tediosamente, retirar toda los "
-"datos viejos.)\n"
+"Uso:   import dir_importación\n"
+"        Importa una base de datos desde el directorio conteniendo archivos\n"
+"        CSV, dos por cada clase a importar.\n"
+"\n"
+"        Los archivos usados en la importación son:\n"
+"\n"
+"        <clase>.csv\n"
+"          Este debe definir las mismas propiedades que la clase (esto\n"
+"          incluye la existencia de una línea \"encabezado\" con los nombre\n"
+"          de dichas propiedades.)\n"
+"        <clase>-journals.csv\n"
+"          Este define los journals para los items que se están importando.\n"
+"\n"
+"        Los nodos importados tendrán los mismos id´s que los nodos según\n"
+"        se encontraban definidos en el archivo importado, por lo tanto\n"
+"        reemplazarán todo contenido preexistente.\n"
+"\n"
+"        Los nuevos nodos son agregados a la base de datos existente - si\n"
+"        Ud. desea crear una base de datos nueva usando los datos\n"
+"        importados, entonces puede crear una nueva base de datos (o,\n"
+"        tediosamente, retirar toda los datos viejos.)\n"
 "        "
 
 #: ../roundup/admin.py:1189
@@ -988,24 +967,23 @@
 "\n"
 "        "
 msgstr ""
-"Uso: pack período |fecha\n"
+"Uso:   pack período | fecha\n"
 "\n"
-"      Elimina entradas de journal mas viejas que un período de tiempo\n"
-"      especificado o anteriores a cierta fecha.\n"
+"        Elimina entradas de journal mas viejas que un período de tiempo\n"
+"        especificado o anteriores a cierta fecha.\n"
 "\n"
-"      Un período se especifica usando los sufijos \"y\", \"m\", and \"d\". "
-"El\n"
-"      sufijo \"w\" (por \"week\") significa 7 días.\n"
+"        Un período se especifica usando los sufijos \"y\", \"m\", y \"d\".\n"
+"        El sufijo \"w\" (por \"week\") significa 7 días.\n"
 "\n"
-"            \"3y\" significa tres años\n"
-"            \"2y 1m\" significa dos años y un mes\n"
-"            \"1m 25d\" significa un mes y 25 días\n"
-"            \"2w 3d\" significa dos semanas y tres días\n"
+"              \"3y\" significa tres años\n"
+"              \"2y 1m\" significa dos años y un mes\n"
+"              \"1m 25d\" significa un mes y 25 días\n"
+"              \"2w 3d\" significa dos semanas y tres días\n"
 "\n"
-"      El formato de fecha es \"YYYY-MM-DD\" ej.:\n"
-"          2001-01-01\n"
+"        El formato de fecha es \"YYYY-MM-DD\" ej.:\n"
+"            2001-01-01\n"
 "\n"
-"      "
+"        "
 
 #: ../roundup/admin.py:1217
 msgid "Invalid format"
@@ -1020,12 +998,12 @@
 "        This will typically happen automatically.\n"
 "        "
 msgstr ""
-"Uso: reindex [nombreclase|designador]*\n"
-"      Regenera los índices de búsqueda de un tracker.\n"
+"Uso:   reindex [nombreclase|designador]*\n"
+"        Regenera los índices de búsqueda de un tracker.\n"
 "\n"
-"      Este comando regenerará los índices de búsqueda de un tracker.\n"
-"      Es un comando que por lo general se ejecuta automáticamente.\n"
-"      "
+"        Este comando regenerará los índices de búsqueda de un tracker.\n"
+"        Es un comando que por lo general se ejecuta automáticamente.\n"
+"        "
 
 #: ../roundup/admin.py:1241
 #, python-format
@@ -1038,9 +1016,9 @@
 "        Display the Permissions available to one or all Roles.\n"
 "        "
 msgstr ""
-"Uso: security [Nombre de rol]\n"
-"      Muestra los permisos disponibles para uno o todos los Roles.\n"
-"      "
+"Uso:   security [Nombre de rol]\n"
+"        Muestra los permisos disponibles para uno o todos los Roles.\n"
+"        "
 
 #: ../roundup/admin.py:1259
 #, python-format
@@ -1420,7 +1398,8 @@
 "<html><head><title>Ha ocurrido un error</title></head>\n"
 "<body><h1>Ha ocurrido un error</h1>\n"
 "<p>Se ha encontrado un problema procesando su requerimiento.\n"
-"Los administradores del tracker han sido notificados acerca del problema.</p>\n"
+"Los administradores del tracker han sido notificados acerca del problema.</"
+"p>\n"
 "</body></html>"
 
 #: ../roundup/cgi/client.py:308
@@ -1795,7 +1774,8 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 "\n"
-"El mensaje que envió a Roundup no contiene un asunto con el formato apropiado\n"
+"El mensaje que envió a Roundup no contiene un asunto con el formato "
+"apropiado\n"
 "El asunto debe contener un nombre de clase o designador para indicar para\n"
 "indicar el 'tópico' del mensaje. Por ejemplo:\n"
 "    Asunto: [issue] Este es un nuevo issue\n"
@@ -1819,8 +1799,8 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 "\n"
-"La clase que Ud. identificó en el Asunto (\"%(classname)s\") no existe "
-"en la base de\n"
+"La clase que Ud. identificó en el Asunto (\"%(classname)s\") no existe en la "
+"base de\n"
 "datos.\n"
 "\n"
 "Nombres válidos de clases son: %(validname)s\n"
@@ -1924,7 +1904,8 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 "\n"
-"Han habido problemas procesando la lista de argumentos del Asunto de su mensaje:\n"
+"Han habido problemas procesando la lista de argumentos del Asunto de su "
+"mensaje:\n"
 "- %(errors)s\n"
 "\n"
 "El Asunto que Ud. envió es: \"%(subject)s\"\n"
@@ -1936,8 +1917,10 @@
 "not find a text/plain part to use.\n"
 msgstr ""
 "\n"
-"Roundup requiere que el envío sea en texto plano. El parser de mensajes no ha\n"
-"podido localizar una parte MIME text/plain en su mensaje que pueda ser usada.\n"
+"Roundup requiere que el envío sea en texto plano. El parser de mensajes no "
+"ha\n"
+"podido localizar una parte MIME text/plain en su mensaje que pueda ser "
+"usada.\n"
 
 #: ../roundup/mailgw.py:964
 msgid "You are not permitted to create files."
@@ -1946,8 +1929,7 @@
 #: ../roundup/mailgw.py:978
 #, python-format
 msgid "You are not permitted to add files to %(classname)s."
-msgstr ""
-"Ud. no tiene permitido agregar archivos a %(classname)s."
+msgstr "Ud. no tiene permitido agregar archivos a %(classname)s."
 
 #: ../roundup/mailgw.py:996
 msgid "You are not permitted to create messages."
@@ -1967,13 +1949,14 @@
 #: ../roundup/mailgw.py:1012
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
-msgstr ""
-"Ud. no tiene permitido agregar mensajes a %(classname)s."
+msgstr "Ud. no tiene permitido agregar mensajes a %(classname)s."
 
 #: ../roundup/mailgw.py:1039
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
-msgstr "Ud. no tiene permitido editar la propiedad %(prop)s de la clase %(classname)s."
+msgstr ""
+"Ud. no tiene permitido editar la propiedad %(prop)s de la clase %(classname)"
+"s."
 
 #: ../roundup/mailgw.py:1047
 #, python-format
@@ -2147,8 +2130,8 @@
 "\n"
 "Opciones:\n"
 " -v: imprime version y sale\n"
-" -c: clase por omisión del item a crear (sinó se usará MAIL_DEFAULT_CLASS "
-"del tracker)\n"
+" -c: clase por omisión del item a crear (sinó se usará MAIL_DEFAULT_CLASS\n"
+"     del tracker)\n"
 " -C / -S: ver mas abajo\n"
 "\n"
 "La pasarela de correo de roundup puede ser invocada en una de cuatro "
@@ -2162,32 +2145,28 @@
 "\n"
 "También soporta los argumentos opcionales -C y -S que le permiten "
 "establecer\n"
-"campos para una clase creada por la pasarela de correo de Roundup roundup-"
-"mailgw.\n"
+"campos para una clase creada por la pasarela de correo de Roundup\n"
+"roundup-mailgw.\n"
 "La clase por omisión es msg, pero las otras clases: issue, file, user "
 "tambien\n"
 "pueden usarse. Las opciones -S y --set usan la notación\n"
 "propiedad=valor[;propiedad=valor] aceptada por el comando roundup de línea "
 "de\n"
-"comandos o los comandos que pueden ser pasados en el campo Asunto: de un "
-"mensaje\n"
-"de correo electrónico.\n"
+"comandos o los comandos que pueden ser pasados en el campo Asunto: de un\n"
+"mensaje de correo electrónico.\n"
 "\n"
-"También le permite establecer el tipo de mensaje basado en la dirección de "
+"También le permite establecer el tipo de mensaje basado en la dirección de\n"
 "correo usada.\n"
 "\n"
 "PIPE:\n"
-" En el primer caso, la pasarela de correo lee un mensaje desde la entrada "
-"estándar\n"
-" y lo envía al módulo roundup.mailgw.\n"
+" En el primer caso, la pasarela de correo lee un mensaje desde la entrada\n"
+" estándar y lo envía al módulo roundup.mailgw.\n"
 "\n"
 "UNIX mailbox:\n"
 " En el segundo caso, la pasarela lee todos los mensajes desde el archivo de\n"
-" spool de correo y envía los mismos de a uno al módulo roundup.mailgw. El "
-"archivo\n"
-" se vacía una vez que todos los mensajes han sido procesados exitosamente. "
-"El\n"
-" archivo se especifica como:\n"
+" spool de correo y envía los mismos de a uno al módulo roundup.mailgw. El\n"
+" archivo se vacía una vez que todos los mensajes han sido procesados\n"
+" exitosamente. El archivo se especifica como:\n"
 "   mailbox /ruta/al/mailbox\n"
 "\n"
 "POP:\n"
@@ -2206,11 +2185,11 @@
 "    apop nombreusuario:contraseña at servidor\n"
 "\n"
 "IMAP:\n"
-" Se conecta a un servidor IMAP. Esta forma soporta la misma notación que "
-"correo POP\n"
+" Se conecta a un servidor IMAP. Esta forma soporta la misma notación que\n"
+" correo POP\n"
 "    imap nombreusuario:contraseña at servidor\n"
-" También le permite especificar una casilla distinta a INBOX usando\n"
-" el siguiente formato:\n"
+" También le permite especificar una casilla distinta a INBOX usando el\n"
+" formato:\n"
 "    imap nombreusuario:contraseña at servidor casilla\n"
 "\n"
 "IMAPS:\n"
@@ -2965,16 +2944,16 @@
 #: ../templates/classic/html/issue.search.html:209
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
 msgstr ""
-"*: El campo \"Todo el texto\" busca en los cuerpos de los mensajes y "
-"los títulos de los issues"
+"*: El campo \"Todo el texto\" busca en los cuerpos de los mensajes y los "
+"títulos de los issues"
 
 #: ../templates/classic/html/issue.search.html:212
 msgid ""
 "**: If you supply a name, the query will be saved off and available as a "
 "link in the sidebar"
 msgstr ""
-"**: Si Ud. provee un nombre, la consulta será "
-"grabada y estará disponible como un enlace en la barra lateral"
+"**: Si Ud. provee un nombre, la consulta será grabada y estará disponible "
+"como un enlace en la barra lateral"
 
 #: ../templates/classic/html/keyword.item.html:3
 msgid "Keyword editing - ${tracker}"
@@ -3457,5 +3436,71 @@
 msgid "Hello,<br>${user}"
 msgstr "Hola,<br>${user}"
 
+# priority translations:
+#: ../templates/classic/initial_data.py:5
+#: ../templates/classic/html/page.html:246
+msgid "critical"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:6
+#: ../templates/classic/html/page.html:246
+msgid "urgent"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:7
+#: ../templates/classic/html/page.html:246
+msgid "bug"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:8
+#: ../templates/classic/html/page.html:246
+msgid "feature"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:9
+#: ../templates/classic/html/page.html:246
+msgid "wish"
+msgstr ""
+
+#: status translations: ../templates/classic/initial_data.py:12
+#: ../templates/classic/html/page.html:246
+msgid "unread"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:13
+#: ../templates/classic/html/page.html:246
+msgid "deferred"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:14
+#: ../templates/classic/html/page.html:246
+msgid "chatting"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:15
+#: ../templates/classic/html/page.html:246
+msgid "in-progress"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:16
+#: ../templates/classic/html/page.html:246
+msgid "need-eg"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:17
+#: ../templates/classic/html/page.html:246
+msgid "testing"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:18
+#: ../templates/classic/html/page.html:246
+msgid "done-cbb"
+msgstr ""
+
+#: ../templates/classic/initial_data.py:19
+#: ../templates/classic/html/page.html:246
+msgid "resolved"
+msgstr "resuelto"
+
 #~ msgid "User editing - ${tracker}"
 #~ msgstr "Edición de usuario - ${tracker}"

Added: tracker/vendor/roundup/current/locale/hu.po
==============================================================================
--- (empty file)
+++ tracker/vendor/roundup/current/locale/hu.po	Sun Jan 14 15:31:23 2007
@@ -0,0 +1,2862 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: v0.1\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2006-12-02 14:40+0100\n"
+"Last-Translator: Gulácsi Tamás <T.Gulacsi at unosoft.hu>\n"
+"Language-Team: UNO-SOFT <info at unosoft.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Hungarian\n"
+"X-Poedit-Country: Hungary\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+# ../roundup/admin.py:85 :981 :1030 :1052
+#: ../roundup/admin.py:85
+#: ../roundup/admin.py:981
+#: ../roundup/admin.py:1030
+#: ../roundup/admin.py:1052
+#, python-format
+msgid "no such class \"%(classname)s\""
+msgstr "nincs ilyen osztály \"%(classname)s\""
+
+# ../roundup/admin.py:95 :99
+#: ../roundup/admin.py:95
+#: ../roundup/admin.py:99
+#, python-format
+msgid "argument \"%(arg)s\" not propname=value"
+msgstr "\"%(arg)s\" argumentum nem név=érték alakú"
+
+#: ../roundup/admin.py:112
+#, python-format
+msgid ""
+"Problem: %(message)s\n"
+"\n"
+msgstr "Probléma: %(message)s\n"
+
+#: ../roundup/admin.py:113
+#, python-format
+msgid ""
+"%(message)sUsage: roundup-admin [options] [<command> <arguments>]\n"
+"\n"
+"Options:\n"
+" -i instance home  -- specify the issue tracker \"home directory\" to administer\n"
+" -u                -- the user[:password] to use for commands\n"
+" -d                -- print full designators not just class id numbers\n"
+" -c                -- when outputting lists of data, comma-separate them.\n"
+"                      Same as '-S \",\"'.\n"
+" -S <string>       -- when outputting lists of data, string-separate them\n"
+" -s                -- when outputting lists of data, space-separate them.\n"
+"                      Same as '-S \" \"'.\n"
+" -V                -- be verbose when importing\n"
+" -v                -- report Roundup and Python versions (and quit)\n"
+"\n"
+" Only one of -s, -c or -S can be specified.\n"
+"\n"
+"Help:\n"
+" roundup-admin -h\n"
+" roundup-admin help                       -- this help\n"
+" roundup-admin help <command>             -- command-specific help\n"
+" roundup-admin help all                   -- all available help\n"
+msgstr ""
+"%(message)sHasználat: roundup-admin [opciók] [<parancs><argumentumok>]\n"
+"\n"
+"Opciók:\n"
+" -i példány elérési út  -- add meg az adminisztrálni kívánt hibakövető \"könyvtárát\"\n"
+" -u                -- a parancsoknál használt felhasználónév[:jelszó]\n"
+" -d                -- írd ki a teljes nevet, ne csak az osztály azonosítót\n"
+" -c                -- adatlistáknál vesszővel válaszd el az elemeket.\n"
+"                      Ugyanaz mint '-S \",\"'.\n"
+" -S <szöveg>       -- adatlistáknál a megadott szöveggel válaszd el az elemeket\n"
+" -s                -- when outputting lists of data, space-separate them.\n"
+"                      Same as '-S \" \"'.\n"
+" -V                -- importálásnál legyél bőbeszédű\n"
+" -v                -- írd ki a Roundup és a Python verziószámokat (és lépj ki)\n"
+"\n"
+" -s, -c vagy -S közül egyszerre csak egy adható meg.\n"
+"\n"
+"segítség:\n"
+" roundup-admin -h\n"
+" roundup-admin help                       -- ez a segítség\n"
+" roundup-admin help <command>             -- parancs-specifikus segítség\n"
+" roundup-admin help all                   -- minden elérhető segítség\n"
+
+#: ../roundup/admin.py:140
+msgid "Commands:"
+msgstr "Parancsok:"
+
+#: ../roundup/admin.py:147
+msgid ""
+"Commands may be abbreviated as long as the abbreviation\n"
+"matches only one command, e.g. l == li == lis == list."
+msgstr "A parancsok rövidíthetők mindaddig, amíg csak egy parancsra illenek, pl. l == li == lis == list."
+
+#: ../roundup/admin.py:177
+msgid ""
+"\n"
+"All commands (except help) require a tracker specifier. This is just\n"
+"the path to the roundup tracker you're working with. A roundup tracker\n"
+"is where roundup keeps the database and configuration file that defines\n"
+"an issue tracker. It may be thought of as the issue tracker's \"home\n"
+"directory\". It may be specified in the environment variable TRACKER_HOME\n"
+"or on the command line as \"-i tracker\".\n"
+"\n"
+"A designator is a classname and a nodeid concatenated, eg. bug1, user10, ...\n"
+"\n"
+"Property values are represented as strings in command arguments and in the\n"
+"printed results:\n"
+" . Strings are, well, strings.\n"
+" . Date values are printed in the full date format in the local time zone,\n"
+"   and accepted in the full format or any of the partial formats explained\n"
+"   below.\n"
+" . Link values are printed as node designators. When given as an argument,\n"
+"   node designators and key strings are both accepted.\n"
+" . Multilink values are printed as lists of node designators joined\n"
+"   by commas.  When given as an argument, node designators and key\n"
+"   strings are both accepted; an empty string, a single node, or a list\n"
+"   of nodes joined by commas is accepted.\n"
+"\n"
+"When property values must contain spaces, just surround the value with\n"
+"quotes, either ' or \". A single space may also be backslash-quoted. If a\n"
+"value must contain a quote character, it must be backslash-quoted or inside\n"
+"quotes. Examples:\n"
+"           hello world      (2 tokens: hello, world)\n"
+"           \"hello world\"    (1 token: hello world)\n"
+"           \"Roch'e\" Compaan (2 tokens: Roch'e Compaan)\n"
+"           Roch\\'e Compaan  (2 tokens: Roch'e Compaan)\n"
+"           address=\"1 2 3\"  (1 token: address=1 2 3)\n"
+"           \\\\               (1 token: \\)\n"
+"           \\n"
+"\\r\\t           (1 token: a newline, carriage-return and tab)\n"
+"\n"
+"When multiple nodes are specified to the roundup get or roundup set\n"
+"commands, the specified properties are retrieved or set on all the listed\n"
+"nodes.\n"
+"\n"
+"When multiple results are returned by the roundup get or roundup find\n"
+"commands, they are printed one per line (default) or joined by commas (with\n"
+"the -c) option.\n"
+"\n"
+"Where the command changes data, a login name/password is required. The\n"
+"login may be specified as either \"name\" or \"name:password\".\n"
+" . ROUNDUP_LOGIN environment variable\n"
+" . the -u command-line option\n"
+"If either the name or password is not supplied, they are obtained from the\n"
+"command-line.\n"
+"\n"
+"Date format examples:\n"
+"  \"2000-04-17.03:45\" means <Date 2000-04-17.08:45:00>\n"
+"  \"2000-04-17\" means <Date 2000-04-17.00:00:00>\n"
+"  \"01-25\" means <Date yyyy-01-25.00:00:00>\n"
+"  \"08-13.22:13\" means <Date yyyy-08-14.03:13:00>\n"
+"  \"11-07.09:32:43\" means <Date yyyy-11-07.14:32:43>\n"
+"  \"14:25\" means <Date yyyy-mm-dd.19:25:00>\n"
+"  \"8:47:11\" means <Date yyyy-mm-dd.13:47:11>\n"
+"  \".\" means \"right now\"\n"
+"\n"
+"Command help:\n"
+msgstr ""
+
+#: ../roundup/admin.py:240
+#, python-format
+msgid "%s:"
+msgstr "%s:"
+
+#: ../roundup/admin.py:245
+msgid ""
+"Usage: help topic\n"
+"        Give help about topic.\n"
+"\n"
+"        commands  -- list commands\n"
+"        <command> -- help specific to a command\n"
+"        initopts  -- init command options\n"
+"        all       -- all available help\n"
+"        "
+msgstr ""
+"Használat: help téma\n"
+"        Segítséget ad a témáról.\n"
+"\n"
+"        commands  -- parancsok listája\n"
+"        <command> -- segítség adott programhoz\n"
+"        initopts  -- kezdő parancs opciók\n"
+"        all       -- minden elérhető segítség\n"
+"        "
+
+#: ../roundup/admin.py:268
+#, python-format
+msgid "Sorry, no help for \"%(topic)s\""
+msgstr "Elnézést, \"%(topic)s\" témához nincs help"
+
+# ../roundup/admin.py:340 :396
+#: ../roundup/admin.py:340
+#: ../roundup/admin.py:396
+msgid "Templates:"
+msgstr "Sablonok:"
+
+# ../roundup/admin.py:343 :407
+#: ../roundup/admin.py:343
+#: ../roundup/admin.py:407
+msgid "Back ends:"
+msgstr "Adatbázis hátterek:"
+
+#: ../roundup/admin.py:346
+msgid ""
+"Usage: install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"        Install a new Roundup tracker.\n"
+"\n"
+"        The command will prompt for the tracker home directory\n"
+"        (if not supplied through TRACKER_HOME or the -i option).\n"
+"        The template, backend and admin password may be specified\n"
+"        on the command-line as arguments, in that order.\n"
+"\n"
+"        The last command line argument allows to pass initial values\n"
+"        for config options.  For example, passing\n"
+"        \"web_http_auth=no,rdbms_user=dinsdale\" will override defaults\n"
+"        for options http_auth in section [web] and user in section [rdbms].\n"
+"        Please be careful to not use spaces in this argument! (Enclose\n"
+"        whole argument in quotes if you need spaces in option value).\n"
+"\n"
+"        The initialise command must be called after this command in order\n"
+"        to initialise the tracker's database. You may edit the tracker's\n"
+"        initial database contents before running that command by editing\n"
+"        the tracker's dbinit.py module init() function.\n"
+"\n"
+"        See also initopts help.\n"
+"        "
+msgstr ""
+
+# ../roundup/admin.py:369 :466 :527 :606 :656 :714 :735 :763 :834 :901 :972
+# :1020 :1042 :1069 :1136 :1207
+#: ../roundup/admin.py:369
+#: ../roundup/admin.py:466
+#: ../roundup/admin.py:527
+#: ../roundup/admin.py:606
+#: ../roundup/admin.py:656
+#: ../roundup/admin.py:714
+#: ../roundup/admin.py:735
+#: ../roundup/admin.py:763
+#: ../roundup/admin.py:834
+#: ../roundup/admin.py:901
+#: ../roundup/admin.py:972
+#: ../roundup/admin.py:1020
+#: ../roundup/admin.py:1042
+#: ../roundup/admin.py:1069
+#: ../roundup/admin.py:1136
+#: ../roundup/admin.py:1207
+msgid "Not enough arguments supplied"
+msgstr "Nincs megadva elég argumentum"
+
+#: ../roundup/admin.py:375
+#, python-format
+msgid "Instance home parent directory \"%(parent)s\" does not exist"
+msgstr "Példány könyvtár szülője (\"%(parent)s\") nem létezik"
+
+#: ../roundup/admin.py:383
+#, python-format
+msgid ""
+"WARNING: There appears to be a tracker in \"%(tracker_home)s\"!\n"
+"If you re-install it, you will lose all the data!\n"
+"Erase it? Y/N: "
+msgstr ""
+"FIGYELEM: Úgy tűnik, már létezik egy hibakövető a \"%(tracker_home)s\" könyvtárban!\n"
+"Ha újra installálod, minden adat elveszik!\n"
+"Töröljem? Y/N: "
+
+#: ../roundup/admin.py:398
+msgid "Select template [classic]: "
+msgstr "Sablon választása [classic]:"
+
+#: ../roundup/admin.py:409
+msgid "Select backend [anydbm]: "
+msgstr "Adatbázis háttér választása [anydbm]:"
+
+#: ../roundup/admin.py:419
+#, python-format
+msgid "Error in configuration settings: \"%s\""
+msgstr "Hiba a konfigurációs beállításokban: \"%s\""
+
+#: ../roundup/admin.py:428
+#, python-format
+msgid ""
+"\n"
+"---------------------------------------------------------------------------\n"
+" You should now edit the tracker configuration file:\n"
+"   %(config_file)s"
+msgstr ""
+"\n"
+"---------------------------------------------------------------------------\n"
+" Most kell szerkesztened a konfigurációs fájlt:\n"
+"   %(config_file)s"
+
+#: ../roundup/admin.py:438
+msgid " ... at a minimum, you must set following options:"
+msgstr " ... legkevesebb a következő opciókat kell beállítani:"
+
+#: ../roundup/admin.py:443
+#, python-format
+msgid ""
+"\n"
+" If you wish to modify the database schema,\n"
+" you should also edit the schema file:\n"
+"   %(database_config_file)s\n"
+" You may also change the database initialisation file:\n"
+"   %(database_init_file)s\n"
+" ... see the documentation on customizing for more information.\n"
+"\n"
+" You MUST run the \"roundup-admin initialise\" command once you've performed\n"
+" the above steps.\n"
+"---------------------------------------------------------------------------\n"
+msgstr ""
+
+#: ../roundup/admin.py:461
+msgid ""
+"Usage: genconfig <filename>\n"
+"        Generate a new tracker config file (ini style) with default values\n"
+"        in <filename>.\n"
+"        "
+msgstr ""
+"Használat: genconfig <fájlnév>\n"
+"        Új hibakövető konfigurációs fájl (ini stílusú) generálása alapértelmezett értékekkel\n"
+"        a <fájlnév> fájlba.\n"
+"        "
+
+#. password
+#: ../roundup/admin.py:471
+msgid ""
+"Usage: initialise [adminpw]\n"
+"        Initialise a new Roundup tracker.\n"
+"\n"
+"        The administrator details will be set at this step.\n"
+"\n"
+"        Execute the tracker's initialisation function dbinit.init()\n"
+"        "
+msgstr ""
+"Használat: initialise [adminpw]\n"
+"        Inicializál egy új Roundup hibakövetőt.\n"
+"\n"
+"        Az adminisztrátori részletek ebben a lépésben lesznek beállítva.\n"
+"\n"
+"        Végrehajtja az adatbázist inicializáló dbinit.init() rutint\n"
+"        "
+
+#: ../roundup/admin.py:485
+msgid "Admin Password: "
+msgstr "Adminisztrátori jelszó:"
+
+#: ../roundup/admin.py:486
+msgid "       Confirm: "
+msgstr "       Megerősítés: "
+
+#: ../roundup/admin.py:490
+msgid "Instance home does not exist"
+msgstr "A példány könyvtára nem létezik"
+
+#: ../roundup/admin.py:494
+msgid "Instance has not been installed"
+msgstr "A példány nem lett installálva"
+
+#: ../roundup/admin.py:499
+msgid ""
+"WARNING: The database is already initialised!\n"
+"If you re-initialise it, you will lose all the data!\n"
+"Erase it? Y/N: "
+msgstr ""
+"FIGYELEM: Az adatbázis már inicializált!\n"
+"Ha újrainicializálod, minden adat elveszik!\n"
+"Törlöd? Y/N:"
+
+#: ../roundup/admin.py:520
+msgid ""
+"Usage: get property designator[,designator]*\n"
+"        Get the given property of one or more designator(s).\n"
+"\n"
+"        Retrieves the property value of the nodes specified\n"
+"        by the designators.\n"
+"        "
+msgstr ""
+"Használat: get property designator[,designator]*\n"
+"        Visszaadja egy vagy több jelölő tulajdonságát.\n"
+"\n"
+"        Visszaadja az értékét a jelölő által\n"
+"        meghatározott csomópontnak.\n"
+"        "
+
+# ../roundup/admin.py:560 :575
+#: ../roundup/admin.py:560
+#: ../roundup/admin.py:575
+#, python-format
+msgid "property %s is not of type Multilink or Link so -d flag does not apply."
+msgstr ""
+
+# ../roundup/admin.py:583 :983 :1032 :1054
+#: ../roundup/admin.py:583
+#: ../roundup/admin.py:983
+#: ../roundup/admin.py:1032
+#: ../roundup/admin.py:1054
+#, python-format
+msgid "no such %(classname)s node \"%(nodeid)s\""
+msgstr ""
+
+#: ../roundup/admin.py:585
+#, python-format
+msgid "no such %(classname)s property \"%(propname)s\""
+msgstr ""
+
+#: ../roundup/admin.py:594
+msgid ""
+"Usage: set items property=value property=value ...\n"
+"        Set the given properties of one or more items(s).\n"
+"\n"
+"        The items are specified as a class or as a comma-separated\n"
+"        list of item designators (ie \"designator[,designator,...]\").\n"
+"\n"
+"        This command sets the properties to the values for all designators\n"
+"        given. If the value is missing (ie. \"property=\") then the property\n"
+"        is un-set. If the property is a multilink, you specify the linked\n"
+"        ids for the multilink as comma-separated numbers (ie \"1,2,3\").\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:648
+msgid ""
+"Usage: find classname propname=value ...\n"
+"        Find the nodes of the given class with a given link property value.\n"
+"\n"
+"        Find the nodes of the given class with a given link property value.\n"
+"        The value may be either the nodeid of the linked node, or its key\n"
+"        value.\n"
+"        "
+msgstr ""
+
+# ../roundup/admin.py:701 :854 :866 :920
+#: ../roundup/admin.py:701
+#: ../roundup/admin.py:854
+#: ../roundup/admin.py:866
+#: ../roundup/admin.py:920
+#, python-format
+msgid "%(classname)s has no property \"%(propname)s\""
+msgstr ""
+
+#: ../roundup/admin.py:708
+msgid ""
+"Usage: specification classname\n"
+"        Show the properties for a classname.\n"
+"\n"
+"        This lists the properties for a given class.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:723
+#, python-format
+msgid "%(key)s: %(value)s (key property)"
+msgstr ""
+
+#: ../roundup/admin.py:725
+#, python-format
+msgid "%(key)s: %(value)s"
+msgstr ""
+
+#: ../roundup/admin.py:728
+msgid ""
+"Usage: display designator[,designator]*\n"
+"        Show the property values for the given node(s).\n"
+"\n"
+"        This lists the properties and their associated values for the given\n"
+"        node.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:752
+#, python-format
+msgid "%(key)s: %(value)r"
+msgstr ""
+
+#: ../roundup/admin.py:755
+msgid ""
+"Usage: create classname property=value ...\n"
+"        Create a new entry of a given class.\n"
+"\n"
+"        This creates a new entry of the given class using the property\n"
+"        name=value arguments provided on the command line after the \"create\"\n"
+"        command.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:782
+#, python-format
+msgid "%(propname)s (Password): "
+msgstr ""
+
+#: ../roundup/admin.py:784
+#, python-format
+msgid "   %(propname)s (Again): "
+msgstr ""
+
+#: ../roundup/admin.py:786
+msgid "Sorry, try again..."
+msgstr ""
+
+#: ../roundup/admin.py:790
+#, python-format
+msgid "%(propname)s (%(proptype)s): "
+msgstr ""
+
+#: ../roundup/admin.py:808
+#, python-format
+msgid "you must provide the \"%(propname)s\" property."
+msgstr ""
+
+#: ../roundup/admin.py:819
+msgid ""
+"Usage: list classname [property]\n"
+"        List the instances of a class.\n"
+"\n"
+"        Lists all instances of the given class. If the property is not\n"
+"        specified, the  \"label\" property is used. The label property is\n"
+"        tried in order: the key, \"name\", \"title\" and then the first\n"
+"        property, alphabetically.\n"
+"\n"
+"        With -c, -S or -s print a list of item id's if no property\n"
+"        specified.  If property specified, print list of that property\n"
+"        for every class instance.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:832
+msgid "Too many arguments supplied"
+msgstr ""
+
+#: ../roundup/admin.py:868
+#, python-format
+msgid "%(nodeid)4s: %(value)s"
+msgstr ""
+
+#: ../roundup/admin.py:872
+msgid ""
+"Usage: table classname [property[,property]*]\n"
+"        List the instances of a class in tabular form.\n"
+"\n"
+"        Lists all instances of the given class. If the properties are not\n"
+"        specified, all properties are displayed. By default, the column\n"
+"        widths are the width of the largest value. The width may be\n"
+"        explicitly defined by defining the property as \"name:width\".\n"
+"        For example::\n"
+"\n"
+"          roundup> table priority id,name:10\n"
+"          Id Name\n"
+"          1  fatal-bug\n"
+"          2  bug\n"
+"          3  usability\n"
+"          4  feature\n"
+"\n"
+"        Also to make the width of the column the width of the label,\n"
+"        leave a trailing : without a width on the property. For example::\n"
+"\n"
+"          roundup> table priority id,name:\n"
+"          Id Name\n"
+"          1  fata\n"
+"          2  bug\n"
+"          3  usab\n"
+"          4  feat\n"
+"\n"
+"        will result in a the 4 character wide \"Name\" column.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:916
+#, python-format
+msgid "\"%(spec)s\" not name:width"
+msgstr ""
+
+#: ../roundup/admin.py:966
+msgid ""
+"Usage: history designator\n"
+"        Show the history entries of a designator.\n"
+"\n"
+"        Lists the journal entries for the node identified by the designator.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:987
+msgid ""
+"Usage: commit\n"
+"        Commit changes made to the database during an interactive session.\n"
+"\n"
+"        The changes made during an interactive session are not\n"
+"        automatically written to the database - they must be committed\n"
+"        using this command.\n"
+"\n"
+"        One-off commands on the command-line are automatically committed if\n"
+"        they are successful.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1001
+msgid ""
+"Usage: rollback\n"
+"        Undo all changes that are pending commit to the database.\n"
+"\n"
+"        The changes made during an interactive session are not\n"
+"        automatically written to the database - they must be committed\n"
+"        manually. This command undoes all those changes, so a commit\n"
+"        immediately after would make no changes to the database.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1013
+msgid ""
+"Usage: retire designator[,designator]*\n"
+"        Retire the node specified by designator.\n"
+"\n"
+"        This action indicates that a particular node is not to be retrieved\n"
+"        by the list or find commands, and its key value may be re-used.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1036
+msgid ""
+"Usage: restore designator[,designator]*\n"
+"        Restore the retired node specified by designator.\n"
+"\n"
+"        The given nodes will become available for users again.\n"
+"        "
+msgstr ""
+
+#. grab the directory to export to
+#: ../roundup/admin.py:1058
+msgid ""
+"Usage: export [class[,class]] export_dir\n"
+"        Export the database to colon-separated-value files.\n"
+"\n"
+"        Optionally limit the export to just the names classes.\n"
+"\n"
+"        This action exports the current data from the database into\n"
+"        colon-separated-value files that are placed in the nominated\n"
+"        destination directory.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1116
+msgid ""
+"Usage: import import_dir\n"
+"        Import a database from the directory containing CSV files,\n"
+"        two per class to import.\n"
+"\n"
+"        The files used in the import are:\n"
+"\n"
+"        <class>.csv\n"
+"          This must define the same properties as the class (including\n"
+"          having a \"header\" line with those property names.)\n"
+"        <class>-journals.csv\n"
+"          This defines the journals for the items being imported.\n"
+"\n"
+"        The imported nodes will have the same nodeid as defined in the\n"
+"        import file, thus replacing any existing content.\n"
+"\n"
+"        The new nodes are added to the existing database - if you want to\n"
+"        create a new database using the imported data, then create a new\n"
+"        database (or, tediously, retire all the old data.)\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1189
+msgid ""
+"Usage: pack period | date\n"
+"\n"
+"        Remove journal entries older than a period of time specified or\n"
+"        before a certain date.\n"
+"\n"
+"        A period is specified using the suffixes \"y\", \"m\", and \"d\". The\n"
+"        suffix \"w\" (for \"week\") means 7 days.\n"
+"\n"
+"              \"3y\" means three years\n"
+"              \"2y 1m\" means two years and one month\n"
+"              \"1m 25d\" means one month and 25 days\n"
+"              \"2w 3d\" means two weeks and three days\n"
+"\n"
+"        Date format is \"YYYY-MM-DD\" eg:\n"
+"            2001-01-01\n"
+"\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1217
+msgid "Invalid format"
+msgstr "Hibás formátum"
+
+#: ../roundup/admin.py:1227
+msgid ""
+"Usage: reindex [classname|designator]*\n"
+"        Re-generate a tracker's search indexes.\n"
+"\n"
+"        This will re-generate the search indexes for a tracker.\n"
+"        This will typically happen automatically.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1241
+#, python-format
+msgid "no such item \"%(designator)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1251
+msgid ""
+"Usage: security [Role name]\n"
+"        Display the Permissions available to one or all Roles.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1259
+#, python-format
+msgid "No such Role \"%(role)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1265
+#, python-format
+msgid "New Web users get the Roles \"%(role)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1267
+#, python-format
+msgid "New Web users get the Role \"%(role)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1270
+#, python-format
+msgid "New Email users get the Roles \"%(role)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1272
+#, python-format
+msgid "New Email users get the Role \"%(role)s\""
+msgstr ""
+
+#: ../roundup/admin.py:1275
+#, python-format
+msgid "Role \"%(name)s\":"
+msgstr ""
+
+#: ../roundup/admin.py:1280
+#, python-format
+msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
+msgstr ""
+
+#: ../roundup/admin.py:1283
+#, python-format
+msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
+msgstr ""
+
+#: ../roundup/admin.py:1286
+#, python-format
+msgid " %(description)s (%(name)s)"
+msgstr ""
+
+#: ../roundup/admin.py:1315
+#, python-format
+msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
+msgstr ""
+
+#: ../roundup/admin.py:1321
+#, python-format
+msgid "Multiple commands match \"%(command)s\": %(list)s"
+msgstr "Több parancs is illeszkedik a megadottra \"%(command)s\": %(list)s"
+
+#: ../roundup/admin.py:1328
+msgid "Enter tracker home: "
+msgstr "Add meg a hibakövető könyvtárát:"
+
+# ../roundup/admin.py:1335 :1341 :1361
+#: ../roundup/admin.py:1335
+#: ../roundup/admin.py:1341
+#: ../roundup/admin.py:1361
+#, python-format
+msgid "Error: %(message)s"
+msgstr "Hiba: %(message)s"
+
+#: ../roundup/admin.py:1349
+#, python-format
+msgid "Error: Couldn't open tracker: %(message)s"
+msgstr "Hiba: Nem tudtam megnyitni a hibakövetőt: %(message)s"
+
+#: ../roundup/admin.py:1374
+#, python-format
+msgid ""
+"Roundup %s ready for input.\n"
+"Type \"help\" for help."
+msgstr ""
+"Roundup %s fogadókész.\n"
+"Gépelj \"help\"-et a segítséghez."
+
+#: ../roundup/admin.py:1379
+msgid "Note: command history and editing not available"
+msgstr "Megjegyzés: a parancsok története és szerkesztése nem elérhető"
+
+#: ../roundup/admin.py:1383
+msgid "roundup> "
+msgstr "roundup> "
+
+#: ../roundup/admin.py:1385
+msgid "exit..."
+msgstr "kilépés..."
+
+#: ../roundup/admin.py:1395
+msgid "There are unsaved changes. Commit them (y/N)? "
+msgstr "Vannak nem mentett változtatások. Elmenti őket (y/N)? "
+
+#: ../roundup/backends/back_anydbm.py:2001
+#, python-format
+msgid "WARNING: invalid date tuple %r"
+msgstr "FIGYELEM: hibás dátum tuple %r"
+
+#: ../roundup/backends/rdbms_common.py:1434
+msgid "create"
+msgstr "létrehozás"
+
+#: ../roundup/backends/rdbms_common.py:1600
+msgid "unlink"
+msgstr "törlés"
+
+#: ../roundup/backends/rdbms_common.py:1604
+msgid "link"
+msgstr "kapcsolás"
+
+#: ../roundup/backends/rdbms_common.py:1724
+msgid "set"
+msgstr "beállítás"
+
+#: ../roundup/backends/rdbms_common.py:1748
+msgid "retired"
+msgstr "visszavonult"
+
+#: ../roundup/backends/rdbms_common.py:1778
+msgid "restored"
+msgstr "visszaállított"
+
+#: ../roundup/cgi/actions.py:58
+#, python-format
+msgid "You do not have permission to %(action)s the %(classname)s class."
+msgstr ""
+
+#: ../roundup/cgi/actions.py:89
+msgid "No type specified"
+msgstr "Típus nincs megadva"
+
+#: ../roundup/cgi/actions.py:91
+msgid "No ID entered"
+msgstr "Azonosító nincs megadva"
+
+#: ../roundup/cgi/actions.py:97
+#, python-format
+msgid "\"%(input)s\" is not an ID (%(classname)s ID required)"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:117
+msgid "You may not retire the admin or anonymous user"
+msgstr "Az admin és anonymous felhasználókat nem nyugdíjazhatod"
+
+#: ../roundup/cgi/actions.py:124
+#, python-format
+msgid "%(classname)s %(itemid)s has been retired"
+msgstr "%(classname)s %(itemid)s visszavonásra került"
+
+# ../roundup/cgi/actions.py:174 :202
+#: ../roundup/cgi/actions.py:174
+#: ../roundup/cgi/actions.py:202
+msgid "You do not have permission to edit queries"
+msgstr "Nincs jogod a lekérdezések szerkesztéséhez"
+
+# ../roundup/cgi/actions.py:180 :209
+#: ../roundup/cgi/actions.py:180
+#: ../roundup/cgi/actions.py:209
+msgid "You do not have permission to store queries"
+msgstr "Nincs jogod a lekérdezések tárolásához"
+
+#: ../roundup/cgi/actions.py:297
+#, python-format
+msgid "Not enough values on line %(line)s"
+msgstr "Nincs elég érték a(z) %(line)s soron"
+
+#: ../roundup/cgi/actions.py:344
+msgid "Items edited OK"
+msgstr "Az elemek sikeresen szerkesztve"
+
+#: ../roundup/cgi/actions.py:404
+#, python-format
+msgid "%(class)s %(id)s %(properties)s edited ok"
+msgstr "%(class)s %(id)s %(properties)s sikeresen szerkesztve"
+
+#: ../roundup/cgi/actions.py:407
+#, python-format
+msgid "%(class)s %(id)s - nothing changed"
+msgstr "%(class)s %(id)s - semmi sem váltzozott"
+
+#: ../roundup/cgi/actions.py:419
+#, python-format
+msgid "%(class)s %(id)s created"
+msgstr "%(class)s %(id)s létrehozva"
+
+#: ../roundup/cgi/actions.py:451
+#, python-format
+msgid "You do not have permission to edit %(class)s"
+msgstr "Nincs jogod szerkeszteni %(class)s-t"
+
+#: ../roundup/cgi/actions.py:463
+#, python-format
+msgid "You do not have permission to create %(class)s"
+msgstr "Nincs jogod létrehozni %(class)s-t"
+
+#: ../roundup/cgi/actions.py:487
+msgid "You do not have permission to edit user roles"
+msgstr "Nincs jogod szerkeszteni a felhasználói szerepköröket"
+
+#: ../roundup/cgi/actions.py:537
+#, python-format
+msgid "Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href=\"%s%s\">their changes</a> in a new window."
+msgstr "Szerkesztési hiba: valaki már szerkesztette %s (%s). Nézd meg a <a target=\"new\" href=\"%s%s\">változtatásait</a> egy új ablakban."
+
+#: ../roundup/cgi/actions.py:565
+#, python-format
+msgid "Edit Error: %s"
+msgstr "Szerkesztési hiba: %s"
+
+# ../roundup/cgi/actions.py:596 :607 :778 :797
+#: ../roundup/cgi/actions.py:596
+#: ../roundup/cgi/actions.py:607
+#: ../roundup/cgi/actions.py:778
+#: ../roundup/cgi/actions.py:797
+#, python-format
+msgid "Error: %s"
+msgstr "Hiba: %s"
+
+#: ../roundup/cgi/actions.py:633
+msgid ""
+"Invalid One Time Key!\n"
+"(a Mozilla bug may cause this message to show up erroneously, please check your email)"
+msgstr ""
+
+#: ../roundup/cgi/actions.py:675
+#, python-format
+msgid "Password reset and email sent to %s"
+msgstr "A jelszó törölve lett és emailt küldtünk %s-nek"
+
+#: ../roundup/cgi/actions.py:684
+msgid "Unknown username"
+msgstr "Ismeretlen felhasználónév"
+
+#: ../roundup/cgi/actions.py:692
+msgid "Unknown email address"
+msgstr "Ismeretlen email cím"
+
+#: ../roundup/cgi/actions.py:697
+msgid "You need to specify a username or address"
+msgstr "Meg kell adnond egy felhasználó nevet vagy címet"
+
+#: ../roundup/cgi/actions.py:722
+#, python-format
+msgid "Email sent to %s"
+msgstr "Email elküldve %s-nek"
+
+#: ../roundup/cgi/actions.py:741
+msgid "You are now registered, welcome!"
+msgstr "Regisztrálva lettél, isten hozott!"
+
+#: ../roundup/cgi/actions.py:786
+msgid "It is not permitted to supply roles at registration."
+msgstr "Szerepkörök nem adhatók meg regisztráláskor."
+
+#: ../roundup/cgi/actions.py:878
+msgid "You are logged out"
+msgstr "Kijelentkeztél"
+
+#: ../roundup/cgi/actions.py:895
+msgid "Username required"
+msgstr "A felhasználónév szükséges"
+
+# ../roundup/cgi/actions.py:930 :934
+#: ../roundup/cgi/actions.py:930
+#: ../roundup/cgi/actions.py:934
+msgid "Invalid login"
+msgstr "Hibás bejelentkezés"
+
+#: ../roundup/cgi/actions.py:940
+msgid "You do not have permission to login"
+msgstr "Nincs jogod bejelentkezni"
+
+#: ../roundup/cgi/cgitb.py:49
+#, python-format
+msgid ""
+"<h1>Templating Error</h1>\n"
+"<p><b>%(exc_type)s</b>: %(exc_value)s</p>\n"
+"<p class=\"help\">Debugging information follows</p>"
+msgstr ""
+"<h1>Template Hiba</h1>\n"
+"<p><b>%(exc_type)s</b>: %(exc_value)s</p>\n"
+"<p class=\"help\">Debug információk alább</p>"
+
+#: ../roundup/cgi/cgitb.py:64
+#, python-format
+msgid "<li>\"%(name)s\" (%(info)s)</li>"
+msgstr "<li>\"%(name)s\" (%(info)s)</li>"
+
+#: ../roundup/cgi/cgitb.py:67
+#, python-format
+msgid "<li>Looking for \"%(name)s\", current path:<ol>%(path)s</ol></li>"
+msgstr "<li>Keresett \"%(name)s\", aktuális elérési út:<ol>%(path)s</ol></li>"
+
+#: ../roundup/cgi/cgitb.py:71
+#, python-format
+msgid "<li>In %s</li>"
+msgstr "<li>%s-ban</li>"
+
+#: ../roundup/cgi/cgitb.py:76
+#, python-format
+msgid "A problem occurred in your template \"%s\"."
+msgstr "Probléma merült fel a(z) \"%s\"  template-el."
+
+#: ../roundup/cgi/cgitb.py:84
+#, python-format
+msgid ""
+"\n"
+"<li>While evaluating the %(info)r expression on line %(line)d\n"
+"<table class=\"otherinfo\" style=\"font-size: 90%%\">\n"
+" <tr><th colspan=\"2\" class=\"header\">Current variables:</th></tr>\n"
+" %(globals)s\n"
+" %(locals)s\n"
+"</table></li>\n"
+msgstr ""
+
+#: ../roundup/cgi/cgitb.py:103
+msgid "Full traceback:"
+msgstr "Teljes visszakövetés:"
+
+#: ../roundup/cgi/cgitb.py:116
+#, python-format
+msgid "<font size=+1><strong>%(exc_type)s</strong>: %(exc_value)s</font>"
+msgstr "<font size=+1><strong>%(exc_type)s</strong>: %(exc_value)s</font>"
+
+#: ../roundup/cgi/cgitb.py:120
+msgid "<p>A problem occurred while running a Python script. Here is the sequence of function calls leading up to the error, with the most recent (innermost) call first. The exception attributes are:"
+msgstr ""
+
+#: ../roundup/cgi/cgitb.py:129
+msgid "&lt;file is None - probably inside <tt>eval</tt> or <tt>exec</tt>&gt;"
+msgstr "&lt;file is None - probably inside <tt>eval</tt> or <tt>exec</tt>&gt;"
+
+#: ../roundup/cgi/cgitb.py:138
+#, python-format
+msgid "in <strong>%s</strong>"
+msgstr "<strong>%s</strong>-ban"
+
+# ../roundup/cgi/cgitb.py:172 :178
+#: ../roundup/cgi/cgitb.py:172
+#: ../roundup/cgi/cgitb.py:178
+msgid "<em>undefined</em>"
+msgstr "<em>nem definiált</em>"
+
+#: ../roundup/cgi/client.py:49
+msgid ""
+"<html><head><title>An error has occurred</title></head>\n"
+"<body><h1>An error has occurred</h1>\n"
+"<p>A problem was encountered processing your request.\n"
+"The tracker maintainers have been notified of the problem.</p>\n"
+"</body></html>"
+msgstr ""
+"<html><head><title>Hibat történt</title></head>\n"
+"<body><h1>Hiba történt</h1>\n"
+"<p>Probléma merült fel kérésének feldolgozása közben.\n"
+"A hibakövető karbantartóit értesítést kaptak a problémáról.</p>\n"
+"</body></html>"
+
+#: ../roundup/cgi/client.py:308
+msgid "Form Error: "
+msgstr "Å°rlap hiba:"
+
+#: ../roundup/cgi/client.py:363
+#, python-format
+msgid "Unrecognized charset: %r"
+msgstr "Ismeretlen karakterkészlet: %r"
+
+#: ../roundup/cgi/client.py:491
+msgid "Anonymous users are not allowed to use the web interface"
+msgstr "Anonim felhasználók nem használhatják a webes felületet"
+
+#: ../roundup/cgi/client.py:646
+msgid "You are not allowed to view this file."
+msgstr "Nem nézheted meg ezt a fájlt."
+
+#: ../roundup/cgi/client.py:738
+#, python-format
+msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
+msgstr "%(starttag)sEltelt idő: %(seconds)fs%(endtag)s\n"
+
+#: ../roundup/cgi/client.py:742
+#, python-format
+msgid "%(starttag)sCache hits: %(cache_hits)d, misses %(cache_misses)d. Loading items: %(get_items)f secs. Filtering: %(filtering)f secs.%(endtag)s\n"
+msgstr "%(starttag)sCache találatok: %(cache_hits)d, tévedés %(cache_misses)d. Elemek betöltése: %(get_items)f mp. Szűrés: %(filtering)f mp.%(endtag)s\n"
+
+#: ../roundup/cgi/form_parser.py:283
+#, python-format
+msgid "link \"%(key)s\" value \"%(value)s\" not a designator"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:290
+#, python-format
+msgid "%(class)s %(property)s is not a link or multilink property"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:312
+#, python-format
+msgid "You have submitted a %(action)s action for the property \"%(property)s\" which doesn't exist"
+msgstr ""
+
+# ../roundup/cgi/form_parser.py:331 :357
+#: ../roundup/cgi/form_parser.py:331
+#: ../roundup/cgi/form_parser.py:357
+#, python-format
+msgid "You have submitted more than one value for the %s property"
+msgstr ""
+
+# ../roundup/cgi/form_parser.py:354 :360
+#: ../roundup/cgi/form_parser.py:354
+#: ../roundup/cgi/form_parser.py:360
+msgid "Password and confirmation text do not match"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:395
+#, python-format
+msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:512
+#, python-format
+msgid "Required %(class)s property %(property)s not supplied"
+msgid_plural "Required %(class)s properties %(property)s not supplied"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/cgi/form_parser.py:535
+msgid "File is empty"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:72
+#, python-format
+msgid "You are not allowed to %(action)s items of class %(class)s"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:627
+msgid "(list)"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:696
+msgid "Submit New Entry"
+msgstr ""
+
+# ../roundup/cgi/templating.py:710 :829 :1236 :1257 :1304 :1327 :1361 :1400
+# :1453 :1470 :1549 :1569 :1587 :1619 :1629 :1683 :1875
+#: ../roundup/cgi/templating.py:710
+#: ../roundup/cgi/templating.py:829
+#: ../roundup/cgi/templating.py:1236
+#: ../roundup/cgi/templating.py:1257
+#: ../roundup/cgi/templating.py:1304
+#: ../roundup/cgi/templating.py:1327
+#: ../roundup/cgi/templating.py:1361
+#: ../roundup/cgi/templating.py:1400
+#: ../roundup/cgi/templating.py:1453
+#: ../roundup/cgi/templating.py:1470
+#: ../roundup/cgi/templating.py:1549
+#: ../roundup/cgi/templating.py:1569
+#: ../roundup/cgi/templating.py:1587
+#: ../roundup/cgi/templating.py:1619
+#: ../roundup/cgi/templating.py:1629
+#: ../roundup/cgi/templating.py:1683
+#: ../roundup/cgi/templating.py:1875
+msgid "[hidden]"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:711
+msgid "New node - no history"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:811
+msgid "Submit Changes"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:893
+msgid "<em>The indicated property no longer exists</em>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:894
+#, python-format
+msgid "<em>%s: %s</em>\n"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:907
+#, python-format
+msgid "The linked class %(classname)s no longer exists"
+msgstr ""
+
+# ../roundup/cgi/templating.py:940 :964
+#: ../roundup/cgi/templating.py:940
+#: ../roundup/cgi/templating.py:964
+msgid "<strike>The linked node no longer exists</strike>"
+msgstr ""
+
+# ../roundup/cgi/templating.py:1006 :1404 :1425 :1431
+#: ../roundup/cgi/templating.py:1006
+#: ../roundup/cgi/templating.py:1404
+#: ../roundup/cgi/templating.py:1425
+#: ../roundup/cgi/templating.py:1431
+msgid "No"
+msgstr "Nem"
+
+# ../roundup/cgi/templating.py:1006 :1404 :1423 :1428
+#: ../roundup/cgi/templating.py:1006
+#: ../roundup/cgi/templating.py:1404
+#: ../roundup/cgi/templating.py:1423
+#: ../roundup/cgi/templating.py:1428
+msgid "Yes"
+msgstr "Igen"
+
+#: ../roundup/cgi/templating.py:1017
+#, python-format
+msgid "%s: (no value)"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1029
+msgid "<strong><em>This event is not handled by the history display!</em></strong>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1041
+msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1050
+msgid "History"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1052
+msgid "<th>Date</th>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1053
+msgid "<th>User</th>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1054
+msgid "<th>Action</th>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1055
+msgid "<th>Args</th>"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1097
+#, python-format
+msgid "Copy of %(class)s %(id)s"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1331
+msgid "*encrypted*"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1514
+msgid "default value for DateHTMLProperty must be either DateHTMLProperty or string date representation."
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1674
+#, python-format
+msgid "Attempt to look up %(attr)s on a missing value"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1750
+#, python-format
+msgid "<option %svalue=\"-1\">- no selection -</option>"
+msgstr ""
+
+#: ../roundup/date.py:186
+msgid "Not a date spec: \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
+msgstr ""
+
+#: ../roundup/date.py:240
+#, python-format
+msgid "%r not a date / time spec \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
+msgstr ""
+
+#: ../roundup/date.py:538
+msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
+msgstr ""
+
+#: ../roundup/date.py:557
+msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
+msgstr ""
+
+#: ../roundup/date.py:694
+#, python-format
+msgid "%(number)s year"
+msgid_plural "%(number)s years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:698
+#, python-format
+msgid "%(number)s month"
+msgid_plural "%(number)s months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:702
+#, python-format
+msgid "%(number)s week"
+msgid_plural "%(number)s weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:706
+#, python-format
+msgid "%(number)s day"
+msgid_plural "%(number)s days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:710
+msgid "tomorrow"
+msgstr ""
+
+#: ../roundup/date.py:712
+msgid "yesterday"
+msgstr ""
+
+#: ../roundup/date.py:715
+#, python-format
+msgid "%(number)s hour"
+msgid_plural "%(number)s hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:719
+msgid "an hour"
+msgstr ""
+
+#: ../roundup/date.py:721
+msgid "1 1/2 hours"
+msgstr ""
+
+#: ../roundup/date.py:723
+#, python-format
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:727
+msgid "in a moment"
+msgstr ""
+
+#: ../roundup/date.py:729
+msgid "just now"
+msgstr ""
+
+#: ../roundup/date.py:732
+msgid "1 minute"
+msgstr ""
+
+#: ../roundup/date.py:735
+#, python-format
+msgid "%(number)s minute"
+msgid_plural "%(number)s minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:738
+msgid "1/2 an hour"
+msgstr ""
+
+#: ../roundup/date.py:740
+#, python-format
+msgid "%(number)s/4 hour"
+msgid_plural "%(number)s/4 hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../roundup/date.py:744
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#: ../roundup/date.py:746
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#: ../roundup/init.py:134
+#, python-format
+msgid ""
+"WARNING: directory '%s'\n"
+"\tcontains old-style template - ignored"
+msgstr ""
+
+#: ../roundup/mailgw.py:586
+msgid ""
+"\n"
+"Emails to Roundup trackers must include a Subject: line!\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:674
+#, python-format
+msgid ""
+"\n"
+"The message you sent to roundup did not contain a properly formed subject\n"
+"line. The subject must contain a class name or designator to indicate the\n"
+"'topic' of the message. For example:\n"
+"    Subject: [issue] This is a new issue\n"
+"      - this will create a new issue in the tracker with the title 'This is\n"
+"        a new issue'.\n"
+"    Subject: [issue1234] This is a followup to issue 1234\n"
+"      - this will append the message's contents to the existing issue 1234\n"
+"        in the tracker.\n"
+"\n"
+"Subject was: '%(subject)s'\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:705
+#, python-format
+msgid ""
+"\n"
+"The class name you identified in the subject line (\"%(classname)s\") does not exist in the\n"
+"database.\n"
+"\n"
+"Valid class names are: %(validname)s\n"
+"Subject was: \"%(subject)s\"\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:733
+#, python-format
+msgid ""
+"\n"
+"I cannot match your message to a node in the database - you need to either\n"
+"supply a full designator (with number, eg \"[issue123]\" or keep the\n"
+"previous subject title intact so I can match that.\n"
+"\n"
+"Subject was: \"%(subject)s\"\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:766
+#, python-format
+msgid ""
+"\n"
+"The node specified by the designator in the subject of your message\n"
+"(\"%(nodeid)s\") does not exist.\n"
+"\n"
+"Subject was: \"%(subject)s\"\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:794
+#, python-format
+msgid ""
+"\n"
+"The mail gateway is not properly set up. Please contact\n"
+"%(mailadmin)s and have them fix the incorrect class specified as:\n"
+"  %(current_class)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:817
+#, python-format
+msgid ""
+"\n"
+"The mail gateway is not properly set up. Please contact\n"
+"%(mailadmin)s and have them fix the incorrect properties:\n"
+"  %(errors)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:847
+#, python-format
+msgid ""
+"\n"
+"You are not a registered user.\n"
+"\n"
+"Unknown address: %(from_address)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:855
+msgid "You are not permitted to access this tracker."
+msgstr ""
+
+#: ../roundup/mailgw.py:862
+#, python-format
+msgid "You are not permitted to edit %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:866
+#, python-format
+msgid "You are not permitted to create %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:913
+#, python-format
+msgid ""
+"\n"
+"There were problems handling your subject line argument list:\n"
+"- %(errors)s\n"
+"\n"
+"Subject was: \"%(subject)s\"\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:942
+msgid ""
+"\n"
+"Roundup requires the submission to be plain text. The message parser could\n"
+"not find a text/plain part to use.\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:964
+msgid "You are not permitted to create files."
+msgstr ""
+
+#: ../roundup/mailgw.py:978
+#, python-format
+msgid "You are not permitted to add files to %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:996
+msgid "You are not permitted to create messages."
+msgstr ""
+
+#: ../roundup/mailgw.py:1004
+#, python-format
+msgid ""
+"\n"
+"Mail message was rejected by a detector.\n"
+"%(error)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:1012
+#, python-format
+msgid "You are not permitted to add messages to %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1039
+#, python-format
+msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
+msgstr ""
+
+#: ../roundup/mailgw.py:1047
+#, python-format
+msgid ""
+"\n"
+"There was a problem with the message you sent:\n"
+"   %(message)s\n"
+msgstr ""
+
+#: ../roundup/mailgw.py:1069
+msgid "not of form [arg=value,value,...;arg=value,value,...]"
+msgstr ""
+
+#: ../roundup/roundupdb.py:142
+msgid "files"
+msgstr ""
+
+#: ../roundup/roundupdb.py:142
+msgid "messages"
+msgstr ""
+
+#: ../roundup/roundupdb.py:142
+msgid "nosy"
+msgstr ""
+
+#: ../roundup/roundupdb.py:142
+msgid "superseder"
+msgstr ""
+
+#: ../roundup/roundupdb.py:142
+msgid "title"
+msgstr ""
+
+#: ../roundup/roundupdb.py:143
+msgid "assignedto"
+msgstr ""
+
+#: ../roundup/roundupdb.py:143
+msgid "priority"
+msgstr ""
+
+#: ../roundup/roundupdb.py:143
+msgid "status"
+msgstr ""
+
+#: ../roundup/roundupdb.py:143
+msgid "topic"
+msgstr "téma"
+
+#: ../roundup/roundupdb.py:146
+msgid "activity"
+msgstr ""
+
+#. following properties are common for all hyperdb classes
+#. they are listed here to keep things in one place
+#: ../roundup/roundupdb.py:146
+msgid "actor"
+msgstr ""
+
+#: ../roundup/roundupdb.py:146
+msgid "creation"
+msgstr ""
+
+#: ../roundup/roundupdb.py:146
+msgid "creator"
+msgstr ""
+
+#: ../roundup/roundupdb.py:304
+#, python-format
+msgid "New submission from %(authname)s%(authaddr)s:"
+msgstr ""
+
+#: ../roundup/roundupdb.py:307
+#, python-format
+msgid "%(authname)s%(authaddr)s added the comment:"
+msgstr ""
+
+#: ../roundup/roundupdb.py:310
+msgid "System message:"
+msgstr ""
+
+#: ../roundup/scripts/roundup_demo.py:32
+#, python-format
+msgid "Enter directory path to create demo tracker [%s]: "
+msgstr ""
+
+#: ../roundup/scripts/roundup_gettext.py:22
+#, python-format
+msgid "Usage: %(program)s <tracker home>"
+msgstr ""
+
+#: ../roundup/scripts/roundup_gettext.py:37
+#, python-format
+msgid "No tracker templates found in directory %s"
+msgstr ""
+
+#: ../roundup/scripts/roundup_mailgw.py:36
+#, python-format
+msgid ""
+"Usage: %(program)s [-v] [-c] [[-C class] -S field=value]* <instance home> [method]\n"
+"\n"
+"Options:\n"
+" -v: print version and exit\n"
+" -c: default class of item to create (else the tracker's MAIL_DEFAULT_CLASS)\n"
+" -C / -S: see below\n"
+"\n"
+"The roundup mail gateway may be called in one of four ways:\n"
+" . with an instance home as the only argument,\n"
+" . with both an instance home and a mail spool file,\n"
+" . with both an instance home and a POP/APOP server account, or\n"
+" . with both an instance home and a IMAP/IMAPS server account.\n"
+"\n"
+"It also supports optional -C and -S arguments that allows you to set a\n"
+"fields for a class created by the roundup-mailgw. The default class if\n"
+"not specified is msg, but the other classes: issue, file, user can\n"
+"also be used. The -S or --set options uses the same\n"
+"property=value[;property=value] notation accepted by the command line\n"
+"roundup command or the commands that can be given on the Subject line\n"
+"of an email message.\n"
+"\n"
+"It can let you set the type of the message on a per email address basis.\n"
+"\n"
+"PIPE:\n"
+" In the first case, the mail gateway reads a single message from the\n"
+" standard input and submits the message to the roundup.mailgw module.\n"
+"\n"
+"UNIX mailbox:\n"
+" In the second case, the gateway reads all messages from the mail spool\n"
+" file and submits each in turn to the roundup.mailgw module. The file is\n"
+" emptied once all messages have been successfully handled. The file is\n"
+" specified as:\n"
+"   mailbox /path/to/mailbox\n"
+"\n"
+"POP:\n"
+" In the third case, the gateway reads all messages from the POP server\n"
+" specified and submits each in turn to the roundup.mailgw module. The\n"
+" server is specified as:\n"
+"    pop username:password at server\n"
+" The username and password may be omitted:\n"
+"    pop username at server\n"
+"    pop server\n"
+" are both valid. The username and/or password will be prompted for if\n"
+" not supplied on the command-line.\n"
+"\n"
+"APOP:\n"
+" Same as POP, but using Authenticated POP:\n"
+"    apop username:password at server\n"
+"\n"
+"IMAP:\n"
+" Connect to an IMAP server. This supports the same notation as that of\n"
+" POP mail.\n"
+"    imap username:password at server\n"
+" It also allows you to specify a specific mailbox other than INBOX using\n"
+" this format:\n"
+"    imap username:password at server mailbox\n"
+"\n"
+"IMAPS:\n"
+" Connect to an IMAP server over ssl.\n"
+" This supports the same notation as IMAP.\n"
+"    imaps username:password at server [mailbox]\n"
+"\n"
+msgstr ""
+
+#: ../roundup/scripts/roundup_mailgw.py:147
+msgid "Error: not enough source specification information"
+msgstr "Hiba: nincs elég forrás specifikációs informácó"
+
+#: ../roundup/scripts/roundup_mailgw.py:163
+msgid "Error: pop specification not valid"
+msgstr "Hiba: a pop specifikáció nem valós"
+
+#: ../roundup/scripts/roundup_mailgw.py:170
+msgid "Error: apop specification not valid"
+msgstr "Hiba: az apop specifikáció nem valós"
+
+#: ../roundup/scripts/roundup_mailgw.py:184
+msgid "Error: The source must be either \"mailbox\", \"pop\", \"apop\", \"imap\" or \"imaps\""
+msgstr "Hiba: A forrás a következők egyike kell legyen: \"mailbox\", \"pop\", \"apop\", \"imap\" vagy \"imaps\""
+
+#: ../roundup/scripts/roundup_server.py:157
+msgid ""
+"<html><head><title>Roundup trackers index</title></head>\n"
+"<body><h1>Roundup trackers index</h1><ol>\n"
+msgstr ""
+"<html><head><title>Roundup hibakövetők listája</title></head>\n"
+"<body><h1>Roundup hibakövetők listája</h1><ol>\n"
+
+#: ../roundup/scripts/roundup_server.py:287
+#, python-format
+msgid "Error: %s: %s"
+msgstr "Hiba: %s: %s"
+
+#: ../roundup/scripts/roundup_server.py:297
+msgid "WARNING: ignoring \"-g\" argument, not root"
+msgstr "FIGYELEM: \"-g\" opciót figyelmen kívül hagyom, nem root"
+
+#: ../roundup/scripts/roundup_server.py:303
+msgid "Can't change groups - no grp module"
+msgstr "Nem lehet csoportot váltani - nincs meg a grp modul"
+
+#: ../roundup/scripts/roundup_server.py:312
+#, python-format
+msgid "Group %(group)s doesn't exist"
+msgstr "%(group)s csoport nem létezik"
+
+#: ../roundup/scripts/roundup_server.py:323
+msgid "Can't run as root!"
+msgstr "Nem futhat root-ként!"
+
+#: ../roundup/scripts/roundup_server.py:326
+msgid "WARNING: ignoring \"-u\" argument, not root"
+msgstr "FIGYELEM: \"-u\" opciót figyelmen kívül hagyom, nem root"
+
+#: ../roundup/scripts/roundup_server.py:331
+msgid "Can't change users - no pwd module"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:340
+#, python-format
+msgid "User %(user)s doesn't exist"
+msgstr "A(z) %(user)s felhasználó nem létezik"
+
+#: ../roundup/scripts/roundup_server.py:471
+#, python-format
+msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:494
+#, python-format
+msgid "Unable to bind to port %s, port already in use."
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:562
+msgid ""
+" -c <Command>  Windows Service options.\n"
+"               If you want to run the server as a Windows Service, you\n"
+"               must use configuration file to specify tracker homes.\n"
+"               Logfile option is required to run Roundup Tracker service.\n"
+"               Typing \"roundup-server -c help\" shows Windows Services\n"
+"               specifics."
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:569
+msgid ""
+" -u <UID>      runs the Roundup web server as this UID\n"
+" -g <GID>      runs the Roundup web server as this GID\n"
+" -d <PIDfile>  run the server in the background and write the server's PID\n"
+"               to the file indicated by PIDfile. The -l option *must* be\n"
+"               specified if -d is used."
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:576
+#, python-format
+msgid ""
+"%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
+"\n"
+"Options:\n"
+" -v            print the Roundup version number and exit\n"
+" -h            print this text and exit\n"
+" -S            create or update configuration file and exit\n"
+" -C <fname>    use configuration file <fname>\n"
+" -n <name>     set the host name of the Roundup web server instance\n"
+" -p <port>     set the port to listen on (default: %(port)s)\n"
+" -l <fname>    log to the file indicated by fname instead of stderr/stdout\n"
+" -N            log client machine names instead of IP addresses (much slower)\n"
+" -t <mode>     multiprocess mode (default: %(mp_def)s).\n"
+"               Allowed values: %(mp_types)s.\n"
+"%(os_part)s\n"
+"\n"
+"Long options:\n"
+" --version          print the Roundup version number and exit\n"
+" --help             print this text and exit\n"
+" --save-config      create or update configuration file and exit\n"
+" --config <fname>   use configuration file <fname>\n"
+" All settings of the [main] section of the configuration file\n"
+" also may be specified in form --<name>=<value>\n"
+"\n"
+"Examples:\n"
+"\n"
+" roundup-server -S -C /opt/roundup/etc/roundup-server.ini \\\n"
+"    -n localhost -p 8917 -l /var/log/roundup.log \\\n"
+"    support=/var/spool/roundup-trackers/support\n"
+"\n"
+" roundup-server -C /opt/roundup/etc/roundup-server.ini\n"
+"\n"
+" roundup-server support=/var/spool/roundup-trackers/support\n"
+"\n"
+" roundup-server -d /var/run/roundup.pid -l /var/log/roundup.log \\\n"
+"    support=/var/spool/roundup-trackers/support\n"
+"\n"
+"Configuration file format:\n"
+"   Roundup Server configuration file has common .ini file format.\n"
+"   Configuration file created with 'roundup-server -S' contains\n"
+"   detailed explanations for each option.  Please see that file\n"
+"   for option descriptions.\n"
+"\n"
+"How to use \"name=tracker home\":\n"
+"   These arguments set the tracker home(s) to use. The name is how the\n"
+"   tracker is identified in the URL (it's the first part of the URL path).\n"
+"   The tracker home is the directory that was identified when you did\n"
+"   \"roundup-admin init\". You may specify any number of these name=home\n"
+"   pairs on the command-line. Make sure the name part doesn't include\n"
+"   any url-unsafe characters like spaces, as these confuse IE.\n"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:723
+msgid "Instances must be name=home"
+msgstr ""
+
+#: ../roundup/scripts/roundup_server.py:737
+#, python-format
+msgid "Configuration saved to %s"
+msgstr "A konfiguráció elmentve %s"
+
+#: ../roundup/scripts/roundup_server.py:755
+msgid "Sorry, you can't run the server as a daemon on this Operating System"
+msgstr "Elnézést, ezen az operációs rendszeren nem indíthatod el démonként a szervert"
+
+#: ../roundup/scripts/roundup_server.py:767
+#, python-format
+msgid "Roundup server started on %(HOST)s:%(PORT)s"
+msgstr "Roundup server a %(HOST)s:%(PORT)s gépen"
+
+#: ../templates/classic/html/_generic.collision.html:4
+#: ../templates/minimal/html/_generic.collision.html:4
+msgid "${class} Edit Collision - ${tracker}"
+msgstr "${class} ütközés szerkesztése - ${tracker}"
+
+#: ../templates/classic/html/_generic.collision.html:7
+#: ../templates/minimal/html/_generic.collision.html:7
+msgid "${class} Edit Collision"
+msgstr "${class} ütközés szerkesztése"
+
+#: ../templates/classic/html/_generic.collision.html:14
+#: ../templates/minimal/html/_generic.collision.html:14
+msgid ""
+"\n"
+"  There has been a collision. Another user updated this node\n"
+"  while you were editing. Please <a href='${context}'>reload</a>\n"
+"  the node and review your edits.\n"
+msgstr ""
+
+#: ../templates/classic/html/_generic.help.html:9
+#: ../templates/minimal/html/_generic.help.html:9
+msgid "${property} help - ${tracker}"
+msgstr "${property} segítség - ${tracker}"
+
+#: ../templates/classic/html/_generic.help.html:31
+#: ../templates/minimal/html/_generic.help.html:31
+msgid " Cancel "
+msgstr "Mégse"
+
+#: ../templates/classic/html/_generic.help.html:34
+#: ../templates/minimal/html/_generic.help.html:34
+msgid " Apply "
+msgstr "Alkalmaz"
+
+#: ../templates/classic/html/_generic.help.html:41
+#: ../templates/classic/html/issue.index.html:73
+#: ../templates/minimal/html/_generic.help.html:41
+msgid "&lt;&lt; previous"
+msgstr "&lt;&lt; előző"
+
+#: ../templates/classic/html/_generic.help.html:53
+#: ../templates/classic/html/issue.index.html:81
+#: ../templates/minimal/html/_generic.help.html:53
+msgid "${start}..${end} out of ${total}"
+msgstr "${start}..${end}, összesen ${total}"
+
+#: ../templates/classic/html/_generic.help.html:57
+#: ../templates/classic/html/issue.index.html:84
+#: ../templates/minimal/html/_generic.help.html:57
+msgid "next &gt;&gt;"
+msgstr "következő &gt;&gt;"
+
+#: ../templates/classic/html/_generic.index.html:6
+#: ../templates/classic/html/_generic.item.html:4
+#: ../templates/minimal/html/_generic.index.html:6
+#: ../templates/minimal/html/_generic.item.html:4
+msgid "${class} editing - ${tracker}"
+msgstr "${class} szerkesztése - ${tracker}"
+
+#: ../templates/classic/html/_generic.index.html:9
+#: ../templates/classic/html/_generic.item.html:7
+#: ../templates/minimal/html/_generic.index.html:9
+#: ../templates/minimal/html/_generic.item.html:7
+msgid "${class} editing"
+msgstr "${class} szerkesztése"
+
+#: ../templates/classic/html/_generic.index.html:14
+#: ../templates/classic/html/_generic.item.html:12
+#: ../templates/classic/html/file.item.html:9
+#: ../templates/classic/html/issue.index.html:16
+#: ../templates/classic/html/issue.item.html:28
+#: ../templates/classic/html/msg.item.html:26
+#: ../templates/classic/html/user.index.html:9
+#: ../templates/classic/html/user.item.html:28
+#: ../templates/minimal/html/_generic.index.html:14
+#: ../templates/minimal/html/_generic.item.html:12
+#: ../templates/minimal/html/user.index.html:9
+#: ../templates/minimal/html/user.item.html:28
+#: ../templates/minimal/html/user.register.html:14
+msgid "You are not allowed to view this page."
+msgstr "Nem nézheted meg ezt az oldalt."
+
+#: ../templates/classic/html/_generic.index.html:22
+#: ../templates/minimal/html/_generic.index.html:22
+msgid "<p class=\"form-help\"> You may edit the contents of the ${classname} class using this form. Commas, newlines and double quotes (\") must be handled delicately. You may include commas and newlines by enclosing the values in double-quotes (\"). Double quotes themselves must be quoted by doubling (\"\"). </p> <p class=\"form-help\"> Multilink properties have their multiple values colon (\":\") separated (... ,\"one:two:three\", ...) </p> <p class=\"form-help\"> Remove entries by deleting their line. Add new entries by appending them to the table - put an X in the id column. </p>"
+msgstr ""
+
+#: ../templates/classic/html/_generic.index.html:44
+#: ../templates/minimal/html/_generic.index.html:44
+msgid "Edit Items"
+msgstr "Elemek szerkesztése"
+
+#: ../templates/classic/html/file.index.html:4
+msgid "List of files - ${tracker}"
+msgstr "Fájlok listája - ${tracker}"
+
+#: ../templates/classic/html/file.index.html:5
+msgid "List of files"
+msgstr "Fájlok listája"
+
+#: ../templates/classic/html/file.index.html:10
+msgid "Download"
+msgstr "Letöltés"
+
+#: ../templates/classic/html/file.index.html:11
+#: ../templates/classic/html/file.item.html:22
+msgid "Content Type"
+msgstr "Tartalom típus"
+
+#: ../templates/classic/html/file.index.html:12
+msgid "Uploaded By"
+msgstr "Feltöltve"
+
+#: ../templates/classic/html/file.index.html:13
+#: ../templates/classic/html/msg.item.html:43
+msgid "Date"
+msgstr "Dátum"
+
+#: ../templates/classic/html/file.item.html:2
+msgid "File display - ${tracker}"
+msgstr "Fájl megjelenítés - ${tracker}"
+
+#: ../templates/classic/html/file.item.html:4
+msgid "File display"
+msgstr "Fájl megjelenítés"
+
+#: ../templates/classic/html/file.item.html:18
+#: ../templates/classic/html/user.item.html:39
+#: ../templates/classic/html/user.register.html:17
+msgid "Name"
+msgstr "Név"
+
+#: ../templates/classic/html/file.item.html:40
+msgid "download"
+msgstr "letöltés"
+
+#: ../templates/classic/html/home.classlist.html:2
+#: ../templates/minimal/html/home.classlist.html:2
+msgid "List of classes - ${tracker}"
+msgstr "Osztályok listája - ${tracker}"
+
+#: ../templates/classic/html/home.classlist.html:4
+#: ../templates/minimal/html/home.classlist.html:4
+msgid "List of classes"
+msgstr "Osztályok listája"
+
+#: ../templates/classic/html/issue.index.html:7
+msgid "List of issues - ${tracker}"
+msgstr "Ügyek listája - ${tracker}"
+
+#: ../templates/classic/html/issue.index.html:11
+msgid "List of issues"
+msgstr "Ügyek listája"
+
+#: ../templates/classic/html/issue.index.html:22
+#: ../templates/classic/html/issue.item.html:44
+msgid "Priority"
+msgstr "Prioritás"
+
+#: ../templates/classic/html/issue.index.html:23
+msgid "ID"
+msgstr "Azonosító"
+
+#: ../templates/classic/html/issue.index.html:24
+msgid "Creation"
+msgstr "Létrehozás"
+
+#: ../templates/classic/html/issue.index.html:25
+msgid "Activity"
+msgstr "Aktivitás"
+
+#: ../templates/classic/html/issue.index.html:26
+msgid "Actor"
+msgstr "Hozzászóló"
+
+#: ../templates/classic/html/issue.index.html:27
+msgid "Topic"
+msgstr "Téma"
+
+#: ../templates/classic/html/issue.index.html:28
+#: ../templates/classic/html/issue.item.html:39
+msgid "Title"
+msgstr "Cím"
+
+#: ../templates/classic/html/issue.index.html:29
+#: ../templates/classic/html/issue.item.html:46
+msgid "Status"
+msgstr "Állapt"
+
+#: ../templates/classic/html/issue.index.html:30
+msgid "Creator"
+msgstr "Készítő"
+
+#: ../templates/classic/html/issue.index.html:31
+msgid "Assigned&nbsp;To"
+msgstr "Hozzárendelve"
+
+#: ../templates/classic/html/issue.index.html:97
+msgid "Download as CSV"
+msgstr "Letöltés CSV-ként"
+
+#: ../templates/classic/html/issue.index.html:105
+msgid "Sort on:"
+msgstr "Rendezés:"
+
+#: ../templates/classic/html/issue.index.html:108
+#: ../templates/classic/html/issue.index.html:125
+msgid "- nothing -"
+msgstr "- semmi -"
+
+#: ../templates/classic/html/issue.index.html:116
+#: ../templates/classic/html/issue.index.html:133
+msgid "Descending:"
+msgstr "Csökkenőleg:"
+
+#: ../templates/classic/html/issue.index.html:122
+msgid "Group on:"
+msgstr "Csoportosítás:"
+
+#: ../templates/classic/html/issue.index.html:139
+msgid "Redisplay"
+msgstr "Megjelenítés újra"
+
+#: ../templates/classic/html/issue.item.html:7
+msgid "Issue ${id}: ${title} - ${tracker}"
+msgstr "${id}. ügy: ${title} - ${tracker}"
+
+#: ../templates/classic/html/issue.item.html:10
+msgid "New Issue - ${tracker}"
+msgstr "Új bejelentés - ${tracker}"
+
+#: ../templates/classic/html/issue.item.html:14
+msgid "New Issue"
+msgstr "Új bejelentés"
+
+#: ../templates/classic/html/issue.item.html:16
+msgid "New Issue Editing"
+msgstr "Új bejelentés szerkesztése"
+
+#: ../templates/classic/html/issue.item.html:19
+msgid "Issue${id}"
+msgstr "${id}. ügy"
+
+#: ../templates/classic/html/issue.item.html:22
+msgid "Issue${id} Editing"
+msgstr "${id}. ügy szerkesztése"
+
+#: ../templates/classic/html/issue.item.html:51
+msgid "Superseder"
+msgstr "Helyettesítő"
+
+#: ../templates/classic/html/issue.item.html:56
+msgid "View: ${link}"
+msgstr "Mitasd: ${link}"
+
+#: ../templates/classic/html/issue.item.html:60
+msgid "Nosy List"
+msgstr "Kíváncsiak listája"
+
+#: ../templates/classic/html/issue.item.html:69
+msgid "Assigned To"
+msgstr "Kiosztva"
+
+#: ../templates/classic/html/issue.item.html:71
+msgid "Topics"
+msgstr "Témák:"
+
+#: ../templates/classic/html/issue.item.html:79
+msgid "Change Note"
+msgstr "Megjegyzés módosítása"
+
+#: ../templates/classic/html/issue.item.html:87
+msgid "File"
+msgstr "Fájl"
+
+#: ../templates/classic/html/issue.item.html:99
+msgid "Make a copy"
+msgstr "Másolat készítése"
+
+#: ../templates/classic/html/issue.item.html:107
+#: ../templates/classic/html/user.item.html:106
+#: ../templates/classic/html/user.register.html:69
+#: ../templates/minimal/html/user.item.html:86
+msgid "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required\">highlighted</th> <td>&nbsp;fields are required.</td> </tr> </table>"
+msgstr "<table class=\"form\"> <tr> <td>Megjegyzés:&nbsp;</td> <th class=\"required\">a kiemelt</th> <td>&nbsp;mezők szükségesek.</td> </tr> </table>"
+
+#: ../templates/classic/html/issue.item.html:121
+msgid "Created on <b>${creation}</b> by <b>${creator}</b>, last changed <b>${activity}</b> by <b>${actor}</b>."
+msgstr "<b>${creation}</b> készítette <b>${creator}</b>, utoljára <b>${actor}</b> módosította <b>${activity}</b>-kor."
+
+#: ../templates/classic/html/issue.item.html:125
+#: ../templates/classic/html/msg.item.html:56
+msgid "Files"
+msgstr "Fájlok"
+
+#: ../templates/classic/html/issue.item.html:127
+#: ../templates/classic/html/msg.item.html:58
+msgid "File name"
+msgstr "Fájl neve"
+
+#: ../templates/classic/html/issue.item.html:128
+#: ../templates/classic/html/msg.item.html:59
+msgid "Uploaded"
+msgstr "Feltöltve"
+
+#: ../templates/classic/html/issue.item.html:129
+msgid "Type"
+msgstr "Típus"
+
+#: ../templates/classic/html/issue.item.html:130
+#: ../templates/classic/html/query.edit.html:30
+msgid "Edit"
+msgstr "Szerkesztés"
+
+#: ../templates/classic/html/issue.item.html:131
+msgid "Remove"
+msgstr "Eldobás"
+
+#: ../templates/classic/html/issue.item.html:151
+#: ../templates/classic/html/issue.item.html:172
+#: ../templates/classic/html/query.edit.html:50
+msgid "remove"
+msgstr "eldobás"
+
+#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/msg.index.html:9
+msgid "Messages"
+msgstr "Ãœzenetek"
+
+#: ../templates/classic/html/issue.item.html:162
+msgid "msg${id} (view)"
+msgstr "${id}. üzenet (view)"
+
+#: ../templates/classic/html/issue.item.html:163
+msgid "Author: ${author}"
+msgstr "Szerző: ${author}"
+
+#: ../templates/classic/html/issue.item.html:165
+msgid "Date: ${date}"
+msgstr "Dátum: ${date}"
+
+#: ../templates/classic/html/issue.search.html:2
+msgid "Issue searching - ${tracker}"
+msgstr "Bejelentés keresése - ${tracker}"
+
+#: ../templates/classic/html/issue.search.html:4
+msgid "Issue searching"
+msgstr "Bejelentés keresése"
+
+#: ../templates/classic/html/issue.search.html:25
+msgid "Filter on"
+msgstr "Szűrés"
+
+#: ../templates/classic/html/issue.search.html:26
+msgid "Display"
+msgstr "Megjelenítés"
+
+#: ../templates/classic/html/issue.search.html:27
+msgid "Sort on"
+msgstr "Rendezés"
+
+#: ../templates/classic/html/issue.search.html:28
+msgid "Group on"
+msgstr "Csoportosítás"
+
+#: ../templates/classic/html/issue.search.html:32
+msgid "All text*:"
+msgstr "Minden szöveg*:"
+
+#: ../templates/classic/html/issue.search.html:40
+msgid "Title:"
+msgstr "Cím:"
+
+#: ../templates/classic/html/issue.search.html:50
+msgid "Topic:"
+msgstr "Téma:"
+
+#: ../templates/classic/html/issue.search.html:58
+msgid "ID:"
+msgstr "Azonosító:"
+
+#: ../templates/classic/html/issue.search.html:66
+msgid "Creation Date:"
+msgstr "Készítés dátuma:"
+
+#: ../templates/classic/html/issue.search.html:77
+msgid "Creator:"
+msgstr "Készítő:"
+
+#: ../templates/classic/html/issue.search.html:79
+msgid "created by me"
+msgstr "én készítettem"
+
+#: ../templates/classic/html/issue.search.html:88
+msgid "Activity:"
+msgstr "Aktivitás:"
+
+#: ../templates/classic/html/issue.search.html:99
+msgid "Actor:"
+msgstr "Hozzászóló:"
+
+#: ../templates/classic/html/issue.search.html:101
+msgid "done by me"
+msgstr "én tettem"
+
+#: ../templates/classic/html/issue.search.html:112
+msgid "Priority:"
+msgstr "Prioritás:"
+
+#: ../templates/classic/html/issue.search.html:114
+#: ../templates/classic/html/issue.search.html:130
+msgid "not selected"
+msgstr "nem kijelölt"
+
+#: ../templates/classic/html/issue.search.html:125
+msgid "Status:"
+msgstr "Állapot:"
+
+#: ../templates/classic/html/issue.search.html:128
+msgid "not resolved"
+msgstr "nem megoldott"
+
+#: ../templates/classic/html/issue.search.html:143
+msgid "Assigned to:"
+msgstr "Kiadva:"
+
+#: ../templates/classic/html/issue.search.html:146
+msgid "assigned to me"
+msgstr "nekem adva"
+
+#: ../templates/classic/html/issue.search.html:148
+msgid "unassigned"
+msgstr "gazdátlan"
+
+#: ../templates/classic/html/issue.search.html:158
+msgid "No Sort or group:"
+msgstr "Ne rendezd vagy csoportosítsd:"
+
+#: ../templates/classic/html/issue.search.html:166
+msgid "Pagesize:"
+msgstr "Oldalméret:"
+
+#: ../templates/classic/html/issue.search.html:172
+msgid "Start With:"
+msgstr "Kezdés:"
+
+#: ../templates/classic/html/issue.search.html:178
+msgid "Sort Descending:"
+msgstr "Csökkenőleg rendzve:"
+
+#: ../templates/classic/html/issue.search.html:185
+msgid "Group Descending:"
+msgstr "Csoport csökkenőleg:"
+
+#: ../templates/classic/html/issue.search.html:192
+msgid "Query name**:"
+msgstr "Lekérdezés neve**:"
+
+#: ../templates/classic/html/issue.search.html:204
+#: ../templates/classic/html/page.html:31
+#: ../templates/classic/html/page.html:60
+#: ../templates/minimal/html/page.html:31
+msgid "Search"
+msgstr "Keresés"
+
+#: ../templates/classic/html/issue.search.html:209
+msgid "*: The \"all text\" field will look in message bodies and issue titles"
+msgstr "*: The \"all text\" field will look in message bodies and issue titles"
+
+#: ../templates/classic/html/issue.search.html:212
+msgid "**: If you supply a name, the query will be saved off and available as a link in the sidebar"
+msgstr "**: Ha megadsz egy nevet, a lekérdezést elmentjük és az oldalsávon elérhető lesz"
+
+#: ../templates/classic/html/keyword.item.html:3
+msgid "Keyword editing - ${tracker}"
+msgstr "Kulcsszó szerkesztése - ${tracker}"
+
+#: ../templates/classic/html/keyword.item.html:5
+msgid "Keyword editing"
+msgstr "Kulcsszó szerkesztése"
+
+#: ../templates/classic/html/keyword.item.html:11
+msgid "Existing Keywords"
+msgstr "Létező kulcsszavak"
+
+#: ../templates/classic/html/keyword.item.html:20
+msgid "To edit an existing keyword (for spelling or typing errors), click on its entry above."
+msgstr "Meglévő kulcsszó szerkesztéséhez (helyesírási hibák) kattints a fenti elemre."
+
+#: ../templates/classic/html/keyword.item.html:27
+msgid "To create a new keyword, enter it below and click \"Submit New Entry\"."
+msgstr "Új kulcsszó létrehozásához add meg alább és kattints az \"Új elem küldése\" gombra."
+
+#: ../templates/classic/html/keyword.item.html:37
+msgid "Keyword"
+msgstr "Kulcsszó"
+
+#: ../templates/classic/html/msg.index.html:3
+msgid "List of messages - ${tracker}"
+msgstr "Üzenetek listája - ${tracker}"
+
+#: ../templates/classic/html/msg.index.html:5
+msgid "Message listing"
+msgstr "Üzenetek listázása"
+
+#: ../templates/classic/html/msg.item.html:6
+msgid "Message ${id} - ${tracker}"
+msgstr "${id}. üzenet  - ${tracker}"
+
+#: ../templates/classic/html/msg.item.html:9
+msgid "New Message - ${tracker}"
+msgstr "Új üzenet - ${tracker}"
+
+#: ../templates/classic/html/msg.item.html:13
+msgid "New Message"
+msgstr "Új üzenet"
+
+#: ../templates/classic/html/msg.item.html:15
+msgid "New Message Editing"
+msgstr "Új üzenet szerkesztése"
+
+#: ../templates/classic/html/msg.item.html:18
+msgid "Message${id}"
+msgstr "${id}. üzenet"
+
+#: ../templates/classic/html/msg.item.html:21
+msgid "Message${id} Editing"
+msgstr "${id}. üzenet szerkesztése"
+
+#: ../templates/classic/html/msg.item.html:33
+msgid "Author"
+msgstr "Szerző"
+
+#: ../templates/classic/html/msg.item.html:38
+msgid "Recipients"
+msgstr "Címzettek"
+
+#: ../templates/classic/html/msg.item.html:49
+msgid "Content"
+msgstr "Tartalom"
+
+#: ../templates/classic/html/page.html:41
+msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
+msgstr "<b>Te lekérdezéseid</b> (<a href=\"query?@template=edit\">szerkesztés</a>)"
+
+#: ../templates/classic/html/page.html:52
+msgid "Issues"
+msgstr "Témák"
+
+#: ../templates/classic/html/page.html:54
+#: ../templates/classic/html/page.html:74
+msgid "Create New"
+msgstr "Új létrehozása"
+
+#: ../templates/classic/html/page.html:56
+msgid "Show Unassigned"
+msgstr "Gazdátlanok mutatása"
+
+#: ../templates/classic/html/page.html:58
+msgid "Show All"
+msgstr "Mutasd mind"
+
+#: ../templates/classic/html/page.html:61
+msgid "Show issue:"
+msgstr "Téma mutatása:"
+
+#: ../templates/classic/html/page.html:72
+msgid "Keywords"
+msgstr "Kulcsszavak"
+
+#: ../templates/classic/html/page.html:78
+msgid "Edit Existing"
+msgstr "Meglévők szerkesztése"
+
+#: ../templates/classic/html/page.html:84
+#: ../templates/minimal/html/page.html:65
+msgid "Administration"
+msgstr "Adminisztráció"
+
+#: ../templates/classic/html/page.html:86
+#: ../templates/minimal/html/page.html:66
+msgid "Class List"
+msgstr "Osztálzok listája"
+
+#: ../templates/classic/html/page.html:90
+#: ../templates/minimal/html/page.html:68
+msgid "User List"
+msgstr "Felhasználók listája"
+
+#: ../templates/classic/html/page.html:92
+#: ../templates/minimal/html/page.html:71
+msgid "Add User"
+msgstr "Felhasználó hozzáadása"
+
+#: ../templates/classic/html/page.html:99
+#: ../templates/classic/html/page.html:105
+#: ../templates/minimal/html/page.html:46
+msgid "Login"
+msgstr "Bejelentkezés"
+
+#: ../templates/classic/html/page.html:104
+#: ../templates/minimal/html/page.html:45
+msgid "Remember me?"
+msgstr "Emlékezzek rád?"
+
+#: ../templates/classic/html/page.html:108
+#: ../templates/classic/html/user.register.html:63
+#: ../templates/minimal/html/page.html:50
+#: ../templates/minimal/html/user.register.html:58
+msgid "Register"
+msgstr "Regisztrálás"
+
+#: ../templates/classic/html/page.html:111
+msgid "Lost&nbsp;your&nbsp;login?"
+msgstr "Elveszett&nbsp;a&nbsp;jelszavad?"
+
+#: ../templates/classic/html/page.html:116
+msgid "Hello, ${user}"
+msgstr "Helló, ${user}"
+
+#: ../templates/classic/html/page.html:118
+msgid "Your Issues"
+msgstr "Témáid"
+
+#: ../templates/classic/html/page.html:119
+#: ../templates/minimal/html/page.html:57
+msgid "Your Details"
+msgstr "Adataid"
+
+#: ../templates/classic/html/page.html:121
+#: ../templates/minimal/html/page.html:59
+msgid "Logout"
+msgstr "Kijelentkezés"
+
+#: ../templates/classic/html/page.html:125
+msgid "Help"
+msgstr "Segítség"
+
+#: ../templates/classic/html/page.html:126
+msgid "Roundup docs"
+msgstr "Roundup dokumentáció"
+
+#: ../templates/classic/html/page.html:136
+#: ../templates/minimal/html/page.html:81
+msgid "clear this message"
+msgstr "üzenet törlése"
+
+#: ../templates/classic/html/page.html:181
+msgid "don't care"
+msgstr "ne törődj vele"
+
+#: ../templates/classic/html/page.html:183
+msgid "------------"
+msgstr "------------"
+
+#: ../templates/classic/html/page.html:210
+msgid "no value"
+msgstr "nincs érték"
+
+#: ../templates/classic/html/query.edit.html:4
+msgid "\"Your Queries\" Editing - ${tracker}"
+msgstr "\"Te lekérdezéseid\" szerkesztése - ${tracker}"
+
+#: ../templates/classic/html/query.edit.html:6
+msgid "\"Your Queries\" Editing"
+msgstr "\"Te lekérdezéseid\" szerkesztése"
+
+#: ../templates/classic/html/query.edit.html:11
+msgid "You are not allowed to edit queries."
+msgstr "Nem szerkeszthetsz lekérdezéseket."
+
+#: ../templates/classic/html/query.edit.html:28
+msgid "Query"
+msgstr "Lekérdezés"
+
+#: ../templates/classic/html/query.edit.html:29
+msgid "Include in \"Your Queries\""
+msgstr "Bevesz a \"Te lekérdezéseid\" közé"
+
+#: ../templates/classic/html/query.edit.html:31
+msgid "Private to you?"
+msgstr "Csak neked?"
+
+#: ../templates/classic/html/query.edit.html:44
+msgid "leave out"
+msgstr "kihagy"
+
+#: ../templates/classic/html/query.edit.html:45
+msgid "include"
+msgstr "bevesz"
+
+#: ../templates/classic/html/query.edit.html:49
+msgid "leave in"
+msgstr "bent hagy"
+
+#: ../templates/classic/html/query.edit.html:54
+msgid "[query is retired]"
+msgstr "[lekérdezés visszavonva]"
+
+#: ../templates/classic/html/query.edit.html:67
+#: ../templates/classic/html/query.edit.html:92
+msgid "edit"
+msgstr "szerkesztés"
+
+#: ../templates/classic/html/query.edit.html:71
+msgid "yes"
+msgstr "igen"
+
+#: ../templates/classic/html/query.edit.html:73
+msgid "no"
+msgstr "nem"
+
+#: ../templates/classic/html/query.edit.html:79
+msgid "Delete"
+msgstr "Törlés"
+
+#: ../templates/classic/html/query.edit.html:94
+msgid "[not yours to edit]"
+msgstr "[nem a tied hogy szerkeszd]"
+
+#: ../templates/classic/html/query.edit.html:102
+msgid "Save Selection"
+msgstr "Kijelölés mentése"
+
+#: ../templates/classic/html/user.forgotten.html:3
+msgid "Password reset request - ${tracker}"
+msgstr "Jelszó törlés kérése - ${tracker}"
+
+#: ../templates/classic/html/user.forgotten.html:5
+msgid "Password reset request"
+msgstr "Jelszó törlés kérése"
+
+#: ../templates/classic/html/user.forgotten.html:9
+msgid "You have two options if you have forgotten your password. If you know the email address you registered with, enter it below."
+msgstr "Két lehetőséged van, ha elfelejtetted a jelszavad. Ha tudod a regisztrációs jelszavad, add meg alább."
+
+#: ../templates/classic/html/user.forgotten.html:16
+msgid "Email Address:"
+msgstr "Email cím:"
+
+#: ../templates/classic/html/user.forgotten.html:24
+#: ../templates/classic/html/user.forgotten.html:34
+msgid "Request password reset"
+msgstr "Kérj jelszó törlést."
+
+#: ../templates/classic/html/user.forgotten.html:30
+msgid "Or, if you know your username, then enter it below."
+msgstr "Vagy, ha ismered a felhasználó nevet, add meg alább."
+
+#: ../templates/classic/html/user.forgotten.html:33
+msgid "Username:"
+msgstr "Felhasználó név:"
+
+#: ../templates/classic/html/user.forgotten.html:39
+msgid "A confirmation email will be sent to you - please follow the instructions within it to complete the reset process."
+msgstr "Egy megerősítő emailt küldünk neked - kérlek kövesd a benne foglaltakat hogy befejezhesd a törlést."
+
+#: ../templates/classic/html/user.index.html:3
+#: ../templates/minimal/html/user.index.html:3
+msgid "User listing - ${tracker}"
+msgstr "Felhasználók listája - ${tracker}"
+
+#: ../templates/classic/html/user.index.html:5
+#: ../templates/minimal/html/user.index.html:5
+msgid "User listing"
+msgstr "Felhasználók listája"
+
+#: ../templates/classic/html/user.index.html:14
+#: ../templates/minimal/html/user.index.html:14
+msgid "Username"
+msgstr "Felhasználónév"
+
+#: ../templates/classic/html/user.index.html:15
+msgid "Real name"
+msgstr "Valódi név"
+
+#: ../templates/classic/html/user.index.html:16
+#: ../templates/classic/html/user.item.html:70
+#: ../templates/classic/html/user.register.html:45
+msgid "Organisation"
+msgstr "Szervezet"
+
+#: ../templates/classic/html/user.index.html:17
+#: ../templates/minimal/html/user.index.html:15
+msgid "Email address"
+msgstr "Email cím"
+
+#: ../templates/classic/html/user.index.html:18
+msgid "Phone number"
+msgstr "Telefonszám"
+
+#: ../templates/classic/html/user.index.html:19
+msgid "Retire"
+msgstr "Visszavonulás"
+
+#: ../templates/classic/html/user.index.html:32
+msgid "retire"
+msgstr "visszavonulás"
+
+#: ../templates/classic/html/user.item.html:7
+#: ../templates/minimal/html/user.item.html:7
+msgid "User ${id}: ${title} - ${tracker}"
+msgstr "${id}. felhasználó: ${title} - ${tracker}"
+
+#: ../templates/classic/html/user.item.html:10
+#: ../templates/minimal/html/user.item.html:10
+msgid "New User - ${tracker}"
+msgstr "Új felhasználó - ${tracker}"
+
+#: ../templates/classic/html/user.item.html:14
+#: ../templates/minimal/html/user.item.html:14
+msgid "New User"
+msgstr "Új felhasználó"
+
+#: ../templates/classic/html/user.item.html:16
+#: ../templates/minimal/html/user.item.html:16
+msgid "New User Editing"
+msgstr "Új felhasználó szerkesztése"
+
+#: ../templates/classic/html/user.item.html:19
+#: ../templates/minimal/html/user.item.html:19
+msgid "User${id}"
+msgstr "${id}. felhasználó"
+
+#: ../templates/classic/html/user.item.html:22
+#: ../templates/minimal/html/user.item.html:22
+msgid "User${id} Editing"
+msgstr "${id}. felhasználó szerkesztése"
+
+#: ../templates/classic/html/user.item.html:43
+#: ../templates/classic/html/user.register.html:21
+#: ../templates/minimal/html/user.item.html:40
+#: ../templates/minimal/html/user.register.html:26
+msgid "Login Name"
+msgstr "Bejelentkezési név"
+
+#: ../templates/classic/html/user.item.html:47
+#: ../templates/classic/html/user.register.html:25
+#: ../templates/minimal/html/user.item.html:44
+#: ../templates/minimal/html/user.register.html:30
+msgid "Login Password"
+msgstr "Bejelentkezési jelszó"
+
+#: ../templates/classic/html/user.item.html:51
+#: ../templates/classic/html/user.register.html:29
+#: ../templates/minimal/html/user.item.html:48
+#: ../templates/minimal/html/user.register.html:34
+msgid "Confirm Password"
+msgstr "Jelszó megerősítése"
+
+#: ../templates/classic/html/user.item.html:55
+#: ../templates/classic/html/user.register.html:33
+#: ../templates/minimal/html/user.item.html:52
+#: ../templates/minimal/html/user.register.html:38
+msgid "Roles"
+msgstr "Szerepkörök"
+
+#: ../templates/classic/html/user.item.html:61
+#: ../templates/minimal/html/user.item.html:58
+msgid "(to give the user more than one role, enter a comma,separated,list)"
+msgstr "(egynél több szerepkör megadásához vesszővel,elválasztott,listát,adj,meg)"
+
+#: ../templates/classic/html/user.item.html:66
+#: ../templates/classic/html/user.register.html:41
+msgid "Phone"
+msgstr "Telefon"
+
+#: ../templates/classic/html/user.item.html:74
+msgid "Timezone"
+msgstr "Időzóna"
+
+#: ../templates/classic/html/user.item.html:78
+msgid "(this is a numeric hour offset, the default is ${zone})"
+msgstr "(ez egy numerikus óra eltolás, ${zone} az alapértelmezett)"
+
+#: ../templates/classic/html/user.item.html:83
+#: ../templates/classic/html/user.register.html:49
+#: ../templates/minimal/html/user.item.html:63
+#: ../templates/minimal/html/user.register.html:46
+msgid "E-mail address"
+msgstr "E-mail címek"
+
+#: ../templates/classic/html/user.item.html:91
+#: ../templates/classic/html/user.register.html:53
+#: ../templates/minimal/html/user.item.html:71
+#: ../templates/minimal/html/user.register.html:50
+msgid "Alternate E-mail addresses<br>One address per line"
+msgstr "Alternatív e-mail címek <br>soronként egy cím "
+
+#: ../templates/classic/html/user.register.html:4
+#: ../templates/classic/html/user.register.html:7
+#: ../templates/minimal/html/user.register.html:4
+#: ../templates/minimal/html/user.register.html:7
+msgid "Registering with ${tracker}"
+msgstr "Regisztrálás a következőnél: ${tracker}"
+
+#: ../templates/classic/html/user.rego_progress.html:4
+#: ../templates/minimal/html/user.rego_progress.html:4
+msgid "Registration in progress - ${tracker}"
+msgstr "Regisztráció folyamatban - ${tracker}"
+
+#: ../templates/classic/html/user.rego_progress.html:6
+#: ../templates/minimal/html/user.rego_progress.html:6
+msgid "Registration in progress..."
+msgstr "Regisztráció folyamatban..."
+
+#: ../templates/classic/html/user.rego_progress.html:10
+#: ../templates/minimal/html/user.rego_progress.html:10
+msgid "You will shortly receive an email to confirm your registration. To complete the registration process, visit the link indicated in the email."
+msgstr "Rövidesen kapni fog egy e-mailt a regisztrációjának megerősítésére.. A regisztrálás befejezéséhet kérem kövesse a levélben lévő linket.."
+
+#: ../templates/minimal/html/home.html:2
+msgid "Tracker home - ${tracker}"
+msgstr "Hibakövető - ${tracker}"
+
+#: ../templates/minimal/html/home.html:4
+msgid "Tracker home"
+msgstr "Hibakövető otthona"
+
+#: ../templates/minimal/html/home.html:16
+msgid "Please select from one of the menu options on the left."
+msgstr "Kérem válasson a bal oldali menüből."
+
+#: ../templates/minimal/html/home.html:19
+msgid "Please log in or register."
+msgstr "Kérem jelentkezzen be vagy regisztráljon."
+
+#: ../templates/minimal/html/page.html:55
+msgid "Hello,<br>${user}"
+msgstr "Helló, <br>${user}"
+
+# priority translations:
+#: ../templates/classic/initial_data.py:5
+#: ../templates/classic/html/page.html:246
+msgid "critical"
+msgstr "kritikus"
+
+#: ../templates/classic/initial_data.py:6
+#: ../templates/classic/html/page.html:246
+msgid "urgent"
+msgstr "sürgős"
+
+#: ../templates/classic/initial_data.py:7
+#: ../templates/classic/html/page.html:246
+msgid "bug"
+msgstr "hiba"
+
+#: ../templates/classic/initial_data.py:8
+#: ../templates/classic/html/page.html:246
+msgid "feature"
+msgstr "szolgáltatás"
+
+#: ../templates/classic/initial_data.py:9
+#: ../templates/classic/html/page.html:246
+msgid "wish"
+msgstr "óhaj"
+
+# status translations:
+#: status ../templates/classic/initial_data.py:12
+#: ../templates/classic/html/page.html:246
+msgid "unread"
+msgstr "nem olvasott"
+
+#: ../templates/classic/initial_data.py:13
+#: ../templates/classic/html/page.html:246
+msgid "deferred"
+msgstr "elutasítva"
+
+#: ../templates/classic/initial_data.py:14
+#: ../templates/classic/html/page.html:246
+msgid "chatting"
+msgstr "megbeszélés"
+
+#: ../templates/classic/initial_data.py:15
+#: ../templates/classic/html/page.html:246
+msgid "in-progress"
+msgstr "folyamatban"
+
+#: ../templates/classic/initial_data.py:16
+#: ../templates/classic/html/page.html:246
+msgid "need-eg"
+msgstr "megerősítésre vár"
+
+#: ../templates/classic/initial_data.py:17
+#: ../templates/classic/html/page.html:246
+msgid "testing"
+msgstr "tesztelés"
+
+#: ../templates/classic/initial_data.py:18
+#: ../templates/classic/html/page.html:246
+msgid "done-cbb"
+msgstr "elkészült"
+
+#: ../templates/classic/initial_data.py:19
+#: ../templates/classic/html/page.html:246
+msgid "resolved"
+msgstr "megoldva"
+

Modified: tracker/vendor/roundup/current/locale/lt.po
==============================================================================
--- tracker/vendor/roundup/current/locale/lt.po	(original)
+++ tracker/vendor/roundup/current/locale/lt.po	Sun Jan 14 15:31:23 2007
@@ -1,16 +1,16 @@
 # Lithuanian message file for Roundup Issue Tracker
 # Aiste Kesminaite <aiste at pov.lt>, 2005
 #
-# $Id: lt.po,v 1.6 2006/06/30 07:06:29 a1s Exp $
+# $Id: lt.po,v 1.7 2006/11/23 05:23:26 a1s Exp $
 #
-# roundup.pot revision 1.18
+# roundup.pot revision 1.20
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: roundup-1.1.2\n"
 "Report-Msgid-Bugs-To: roundup-devel at lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-04-27 09:02+0300\n"
-"PO-Revision-Date: 2006-06-29 16:24+0300\n"
+"POT-Creation-Date: 2006-11-16 16:24+0200\n"
+"PO-Revision-Date: 2006-11-22 20:17+0300\n"
 "Last-Translator: Nerijus Baliunas <nerijus at users.sourceforge.net>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -23,6 +23,8 @@
 #: ../roundup/admin.py:981
 #: ../roundup/admin.py:1030
 #: ../roundup/admin.py:1052
+#: ../roundup/admin.py:85:981
+#: :1030:1052
 #, python-format
 msgid "no such class \"%(classname)s\""
 msgstr "nÄ—ra klasÄ—s \"%(classname)s\""
@@ -30,6 +32,7 @@
 # ../roundup/admin.py:95 :99
 #: ../roundup/admin.py:95
 #: ../roundup/admin.py:99
+#: ../roundup/admin.py:95:99
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr "argumentas \"%(arg)s\" nėra parinktis=reikšmė formato"
@@ -268,27 +271,29 @@
 # ../roundup/admin.py:338 :387
 #: ../roundup/admin.py:340
 #: ../roundup/admin.py:396
+#: ../roundup/admin.py:340:396
 msgid "Templates:"
 msgstr "Å ablonai:"
 
 # ../roundup/admin.py:341 :398
 #: ../roundup/admin.py:343
 #: ../roundup/admin.py:407
+#: ../roundup/admin.py:343:407
 msgid "Back ends:"
 msgstr "Duomenų saugyklos:"
 
 #: ../roundup/admin.py:346
 msgid ""
-"Usage: install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
 "\n"
 "        The command will prompt for the tracker home directory\n"
 "        (if not supplied through TRACKER_HOME or the -i option).\n"
-"        The template, backend and admin password may be specified\n"
-"        on the command-line as arguments, in that order.\n"
+"        The template and backend may be specified on the command-line\n"
+"        as arguments, in that order.\n"
 "\n"
-"        The last command line argument allows to pass initial values\n"
-"        for config options.  For example, passing\n"
+"        Command line arguments following the backend allows you to\n"
+"        pass initial values for config options.  For example, passing\n"
 "        \"web_http_auth=no,rdbms_user=dinsdale\" will override defaults\n"
 "        for options http_auth in section [web] and user in section [rdbms].\n"
 "        Please be careful to not use spaces in this argument! (Enclose\n"
@@ -302,27 +307,27 @@
 "        See also initopts help.\n"
 "        "
 msgstr ""
-"Naudojimas: install [šablonas [saugykla [administratoriaus slaptažodis [raktas=reikšmė[,raktas=reikšmė]]]]]\n"
-"            Įdiegti naują Roundup kreipinių valdymo sistemą.\n"
+"Naudojimas: install [šablonas [saugykla [raktas=reikšmė[,raktas=reikšmė]]]]\n"
+"        Įdiegti naują Roundup kreipinių valdymo sistemą.\n"
 "\n"
-"            Ši komanda paprašys tracker'io namų direktorijos (jei nepaduota\n"
-"            per TRACKER_HOME ar -i parinktį). Šablonas, duomenų saugykla ir\n"
-"            administratoriaus slaptažodis gali būti nurodyti kaip\n"
-"            argumentai komandinėje eilutėje būtent šia tvarka.\n"
-"\n"
-"            Paskutinis komandinÄ—s eilutÄ—s argumentas priskiria pradines\n"
-"            reikšmes konfigūracijos parinktims.  Pavyzdžiui, nurodydami\n"
-"            \"web_http_auth=no,rdbms_user=dinsdale\" pakeisite http_auth\n"
-"            sekcijoje [web] ir user sekcijoje [rdbms] parinkčių reikšmes\n"
-"            pagal nutylėjimą. Nenaudokite tarpų šiame argumente (visą\n"
-"            argumentą rašykite kabutėse, jei parinkties reikšmėje yra tarpų).\n"
-"\n"
-"            Inicializavimo komanda turi būti pateikta po šios komandos tam,\n"
-"            kad inicializuotųsi tracker'io duomenų bazė. Jūs galite pakeisti\n"
-"            pradinį tracker'io duomenų bazės turinį prieš paleisdami šią\n"
-"            komandÄ…, pakeisdami tracker'io dbinit.py modulio init() funkcijÄ….\n"
+"        Ši komanda paprašys tracker'io namų direktorijos (jei nepaduota\n"
+"        per TRACKER_HOME ar -i parinktį). Šablonas, duomenų saugykla ir\n"
+"        administratoriaus slaptažodis gali būti nurodyti kaip\n"
+"        argumentai komandinėje eilutėje būtent šia tvarka.\n"
+"\n"
+"        Paskutinis komandinÄ—s eilutÄ—s argumentas priskiria pradines\n"
+"        reikšmes konfigūracijos parinktims.  Pavyzdžiui, nurodydami\n"
+"        \"web_http_auth=no,rdbms_user=dinsdale\" pakeisite http_auth\n"
+"        sekcijoje [web] ir user sekcijoje [rdbms] parinkčių reikšmes\n"
+"        pagal nutylėjimą. Nenaudokite tarpų šiame argumente (visą\n"
+"        argumentą rašykite kabutėse, jei parinkties reikšmėje yra tarpų).\n"
+"\n"
+"        Inicializavimo komanda turi būti pateikta po šios komandos tam,\n"
+"        kad inicializuotųsi tracker'io duomenų bazė. Jūs galite pakeisti\n"
+"        pradinį tracker'io duomenų bazės turinį prieš paleisdami šią\n"
+"        komandÄ…, pakeisdami tracker'io dbinit.py modulio init() funkcijÄ….\n"
 "\n"
-"            Taip pat pažiūrėkite initopts pagalbą.\n"
+"        Taip pat pažiūrėkite initopts pagalbą.\n"
 "        "
 
 # ../roundup/admin.py:360 :447 :508 :587 :637 :695 :716 :744 :815 :882 :953
@@ -340,9 +345,17 @@
 #: ../roundup/admin.py:972
 #: ../roundup/admin.py:1020
 #: ../roundup/admin.py:1042
-#: ../roundup/admin.py:1069
-#: ../roundup/admin.py:1136
-#: ../roundup/admin.py:1207
+#: ../roundup/admin.py:1072
+#: ../roundup/admin.py:1171
+#: ../roundup/admin.py:1243
+#: ../roundup/admin.py:369:466
+#: :1020:1042
+#: :1072:1171
+#: :1243
+#: :527:606
+#: :656:714
+#: :735:763
+#: :834:901:972
 msgid "Not enough arguments supplied"
 msgstr "Paduota nepakankamai argumentų"
 
@@ -495,6 +508,7 @@
 # ../roundup/admin.py:541 :556
 #: ../roundup/admin.py:560
 #: ../roundup/admin.py:575
+#: ../roundup/admin.py:560:575
 #, python-format
 msgid "property %s is not of type Multilink or Link so -d flag does not apply."
 msgstr ""
@@ -506,6 +520,8 @@
 #: ../roundup/admin.py:983
 #: ../roundup/admin.py:1032
 #: ../roundup/admin.py:1054
+#: ../roundup/admin.py:583:983
+#: :1032:1054
 #, python-format
 msgid "no such %(classname)s node \"%(nodeid)s\""
 msgstr "nÄ—ra tokio %(classname)s elemento \"%(nodeid)s\""
@@ -567,6 +583,8 @@
 #: ../roundup/admin.py:854
 #: ../roundup/admin.py:866
 #: ../roundup/admin.py:920
+#: ../roundup/admin.py:701:854
+#: :866:920
 #, python-format
 msgid "%(classname)s has no property \"%(propname)s\""
 msgstr "%(classname)s neturi parinkties \"%(propname)s\""
@@ -855,28 +873,61 @@
 #. grab the directory to export to
 #: ../roundup/admin.py:1058
 msgid ""
-"Usage: export [class[,class]] export_dir\n"
+"Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
+"        To exclude the files (e.g. for the msg or file class),\n"
+"        use the exporttables command.\n"
 "\n"
-"        Optionally limit the export to just the names classes.\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
 "\n"
 "        This action exports the current data from the database into\n"
 "        colon-separated-value files that are placed in the nominated\n"
 "        destination directory.\n"
 "        "
 msgstr ""
-"Naudojimas: export [klasÄ—[,klasÄ—]] eksporto_direktorija\n"
-"            Eksportuoti duomenų bazę kaip kableliais atskirtų reikšmių \n"
-"            failÄ….\n"
+"Naudojimas: export [[-]klasÄ—[,klasÄ—]] eksporto_direktorija\n"
+"        Eksportuoti duomenų bazę kaip kableliais atskirtų reikšmių failą.\n"
+"        Norėdami neįtraukti failų (pvz. msg ar file klasių), naudokite\n"
+"        exporttables komandÄ….\n"
+"\n"
+"        Galima apriboti eksportą tik tam tikromis klasėmis arba neįtraukti\n"
+"        tam tikrų klasių, jei pirmas argumentas prasideda '-'.\n"
+"\n"
+"         Ši komanda eksportuoja dabartinius duomenis iš duomenų bazės\n"
+"        į kableliais atskirtų reikšmių failus, kurie išsaugomi nurodytoje\n"
+"        direktorijoje.\n"
+"        "
+
+#: ../roundup/admin.py:1136
+msgid ""
+"Usage: exporttables [[-]class[,class]] export_dir\n"
+"        Export the database to colon-separated-value files, excluding the\n"
+"        files below $TRACKER_HOME/db/files/ (which can be archived separately).\n"
+"        To include the files, use the export command.\n"
 "\n"
-"            Galima apriboti eksportą tik vardų klasėmis.\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
 "\n"
-"            Ši komanda eksportuoja dabartinius duomenis iš duomenų bazės\n"
-"            į kableliais atskirtų reikšmių failus, kurie išsaugomi \n"
-"            nurodytoje direktorijoje.\n"
+"        This action exports the current data from the database into\n"
+"        colon-separated-value files that are placed in the nominated\n"
+"        destination directory.\n"
+"        "
+msgstr ""
+"Naudojimas: exporttables [[-]klasÄ—[,klasÄ—]] eksporto_direktorija\n"
+"        Eksportuoti duomenų bazę kaip kableliais atskirtų reikšmių failą,\n"
+"        neįtraukiant $TRACKER_HOME/db/files/ failų (jie gali būti archyvuojami\n"
+"        atskirai). Norėdami įtraukti failus, naudokite export komandą.\n"
+"\n"
+"        Galima apriboti eksportą tik tam tikromis klasėmis arba neįtraukti\n"
+"        tam tikrų klasių, jei pirmas argumentas prasideda '-'.\n"
+"\n"
+"        Ši komanda eksportuoja dabartinius duomenis iš duomenų bazės\n"
+"        į kableliais atskirtų reikšmių failus, kurie išsaugomi nurodytoje\n"
+"        direktorijoje.\n"
 "        "
 
-#: ../roundup/admin.py:1116
+#: ../roundup/admin.py:1151
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -921,7 +972,7 @@
 "            veiksmas).\n"
 "        "
 
-#: ../roundup/admin.py:1189
+#: ../roundup/admin.py:1225
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -959,11 +1010,11 @@
 "\n"
 "        "
 
-#: ../roundup/admin.py:1217
+#: ../roundup/admin.py:1253
 msgid "Invalid format"
 msgstr "Netinkamas formatas"
 
-#: ../roundup/admin.py:1227
+#: ../roundup/admin.py:1263
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -979,12 +1030,12 @@
 "            Paprastai tai įvyksta automatiškai.\n"
 "        "
 
-#: ../roundup/admin.py:1241
+#: ../roundup/admin.py:1277
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr "nÄ—ra elemento \"%(designator)s\""
 
-#: ../roundup/admin.py:1251
+#: ../roundup/admin.py:1287
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
@@ -994,81 +1045,82 @@
 "            Parodo vienos ar kelių rolių permisijas.\n"
 "        "
 
-#: ../roundup/admin.py:1259
+#: ../roundup/admin.py:1295
 #, python-format
 msgid "No such Role \"%(role)s\""
 msgstr "NÄ—ra tokios rolÄ—s \"%(role)s\""
 
-#: ../roundup/admin.py:1265
+#: ../roundup/admin.py:1301
 #, python-format
 msgid "New Web users get the Roles \"%(role)s\""
 msgstr "Naujiems web vartotojams suteikiamos rolÄ—s \"%(role)s\""
 
-#: ../roundup/admin.py:1267
+#: ../roundup/admin.py:1303
 #, python-format
 msgid "New Web users get the Role \"%(role)s\""
 msgstr "Naujiems web vartotojams suteikiama rolÄ— \"%(role)s\""
 
-#: ../roundup/admin.py:1270
+#: ../roundup/admin.py:1306
 #, python-format
 msgid "New Email users get the Roles \"%(role)s\""
 msgstr "Naujiems vartotojams per el. paštą suteikiamos rolės \"%(role)s\""
 
-#: ../roundup/admin.py:1272
+#: ../roundup/admin.py:1308
 #, python-format
 msgid "New Email users get the Role \"%(role)s\""
 msgstr "Naujiems vartotojams per el. paštą suteikiama rolė \"%(role)s\""
 
-#: ../roundup/admin.py:1275
+#: ../roundup/admin.py:1311
 #, python-format
 msgid "Role \"%(name)s\":"
 msgstr "RolÄ— \"%(name)s\":"
 
-#: ../roundup/admin.py:1280
+#: ../roundup/admin.py:1316
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
 msgstr " %(description)s (%(name)s skirta tik \"%(klass)s\": %(properties)s)"
 
-#: ../roundup/admin.py:1283
+#: ../roundup/admin.py:1319
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
 msgstr " %(description)s (%(name)s skirta tik \"%(klass)s\")"
 
-#: ../roundup/admin.py:1286
+#: ../roundup/admin.py:1322
 #, python-format
 msgid " %(description)s (%(name)s)"
 msgstr " %(description)s (%(name)s)"
 
-#: ../roundup/admin.py:1315
+#: ../roundup/admin.py:1351
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr ""
 "Nežinoma komanda \"%(command)s\" (įveskite \"help commands\" komandų\n"
 "sąrašui gauti)"
 
-#: ../roundup/admin.py:1321
+#: ../roundup/admin.py:1357
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr "Kelios komandos atitinka \"%(command)s\": %(list)s"
 
-#: ../roundup/admin.py:1328
+#: ../roundup/admin.py:1364
 msgid "Enter tracker home: "
 msgstr "Įveskite tracker'io namų direktoriją: "
 
 # ../roundup/admin.py:1312 :1318 :1338
-#: ../roundup/admin.py:1335
-#: ../roundup/admin.py:1341
-#: ../roundup/admin.py:1361
+#: ../roundup/admin.py:1371
+#: ../roundup/admin.py:1377
+#: ../roundup/admin.py:1397
+#: ../roundup/admin.py:1371:1377:1397
 #, python-format
 msgid "Error: %(message)s"
 msgstr "Klaida: %(message)s"
 
-#: ../roundup/admin.py:1349
+#: ../roundup/admin.py:1385
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr "Klaida: Negaliu atidaryti tracker'io: %(message)s"
 
-#: ../roundup/admin.py:1374
+#: ../roundup/admin.py:1410
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
@@ -1077,48 +1129,48 @@
 "Roundup %s pasiruošęs priimti duomenis.\n"
 "Norėdami iškviesti pagalbą įveskite \"help\"."
 
-#: ../roundup/admin.py:1379
+#: ../roundup/admin.py:1415
 msgid "Note: command history and editing not available"
 msgstr "Pastaba: komandų archyvas ir redagavimas neprieinami"
 
-#: ../roundup/admin.py:1383
+#: ../roundup/admin.py:1419
 msgid "roundup> "
 msgstr "roundup> "
 
-#: ../roundup/admin.py:1385
+#: ../roundup/admin.py:1421
 msgid "exit..."
 msgstr "išeiti..."
 
-#: ../roundup/admin.py:1395
+#: ../roundup/admin.py:1431
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr "Yra neišsaugotų pakeitimų. Išsaugoti juos (y/N)? "
 
-#: ../roundup/backends/back_anydbm.py:2001
+#: ../roundup/backends/back_anydbm.py:2000
 #, python-format
 msgid "WARNING: invalid date tuple %r"
 msgstr "PERSPÄ–JIMAS: netinkamas datos tuple'as %r"
 
-#: ../roundup/backends/rdbms_common.py:1434
+#: ../roundup/backends/rdbms_common.py:1442
 msgid "create"
 msgstr "sukurti"
 
-#: ../roundup/backends/rdbms_common.py:1600
+#: ../roundup/backends/rdbms_common.py:1608
 msgid "unlink"
 msgstr "atsieti"
 
-#: ../roundup/backends/rdbms_common.py:1604
+#: ../roundup/backends/rdbms_common.py:1612
 msgid "link"
 msgstr "susieti"
 
-#: ../roundup/backends/rdbms_common.py:1724
+#: ../roundup/backends/rdbms_common.py:1732
 msgid "set"
 msgstr "nustatyti"
 
-#: ../roundup/backends/rdbms_common.py:1748
+#: ../roundup/backends/rdbms_common.py:1756
 msgid "retired"
 msgstr "deaktyvuotas"
 
-#: ../roundup/backends/rdbms_common.py:1778
+#: ../roundup/backends/rdbms_common.py:1786
 msgid "restored"
 msgstr "aktyvuotas"
 
@@ -1152,73 +1204,77 @@
 # ../roundup/cgi/actions.py:163 :191
 #: ../roundup/cgi/actions.py:174
 #: ../roundup/cgi/actions.py:202
+#: ../roundup/cgi/actions.py:174:202
 msgid "You do not have permission to edit queries"
 msgstr "Neturite leidimo redaguoti užklausas"
 
 # ../roundup/cgi/actions.py:169 :197
 #: ../roundup/cgi/actions.py:180
 #: ../roundup/cgi/actions.py:209
+#: ../roundup/cgi/actions.py:180:209
 msgid "You do not have permission to store queries"
 msgstr "Neturite leidimo išsaugoti užklausas"
 
-#: ../roundup/cgi/actions.py:297
+#: ../roundup/cgi/actions.py:298
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr "Nepakanka reikšmių eilutėje %(line)s"
 
-#: ../roundup/cgi/actions.py:344
+#: ../roundup/cgi/actions.py:345
 msgid "Items edited OK"
 msgstr "Elementų pakeitimai išsaugoti"
 
-#: ../roundup/cgi/actions.py:404
+#: ../roundup/cgi/actions.py:405
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr "%(class)s %(id)s %(properties)s pakeitimai išsaugoti"
 
-#: ../roundup/cgi/actions.py:407
+#: ../roundup/cgi/actions.py:408
 #, python-format
 msgid "%(class)s %(id)s - nothing changed"
 msgstr "%(class)s %(id)s - niekas nepakeista"
 
-#: ../roundup/cgi/actions.py:419
+#: ../roundup/cgi/actions.py:420
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr "sukurta %(class)s %(id)s"
 
-#: ../roundup/cgi/actions.py:451
+#: ../roundup/cgi/actions.py:452
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr "Neturite leidimo redaguoti %(class)s"
 
-#: ../roundup/cgi/actions.py:463
+#: ../roundup/cgi/actions.py:464
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr "Neturite leidimo sukurti %(class)s"
 
-#: ../roundup/cgi/actions.py:487
+#: ../roundup/cgi/actions.py:488
 msgid "You do not have permission to edit user roles"
 msgstr "Neturite leidimo redaguoti vartotojų roles"
 
-#: ../roundup/cgi/actions.py:537
+#: ../roundup/cgi/actions.py:538
 #, python-format
 msgid "Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href=\"%s%s\">their changes</a> in a new window."
 msgstr "Redagavimo klaida: kitas vartotojas redagavo %s (%s). Peržiūrėkite <a target=\"new\" href=\"%s%s\">jų pakeitimus</a> naujame lange."
 
-#: ../roundup/cgi/actions.py:565
+#: ../roundup/cgi/actions.py:566
 #, python-format
 msgid "Edit Error: %s"
 msgstr "Redagavimo klaida: %s"
 
 # ../roundup/cgi/actions.py:579 :590 :761 :780
-#: ../roundup/cgi/actions.py:596
-#: ../roundup/cgi/actions.py:607
-#: ../roundup/cgi/actions.py:778
-#: ../roundup/cgi/actions.py:797
+#: ../roundup/cgi/actions.py:597
+#: ../roundup/cgi/actions.py:608
+#: ../roundup/cgi/actions.py:779
+#: ../roundup/cgi/actions.py:798
+#: ../roundup/cgi/actions.py:597:608
+#: :779:798
 #, python-format
 msgid "Error: %s"
 msgstr "Klaida: %s"
 
-#: ../roundup/cgi/actions.py:633
+#: ../roundup/cgi/actions.py:634
 msgid ""
 "Invalid One Time Key!\n"
 "(a Mozilla bug may cause this message to show up erroneously, please check your email)"
@@ -1226,51 +1282,52 @@
 "Netinkamas One Time Key!\n"
 "(šį pranešimą gali neteisingai sukelti Mozilla klaida, patikrinkite savo paštą.)"
 
-#: ../roundup/cgi/actions.py:675
+#: ../roundup/cgi/actions.py:676
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr "Slaptažodis atstatytas ir el. laiškas išsiųstas %s"
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:685
 msgid "Unknown username"
 msgstr "Nežinomas vartotojo vardas"
 
-#: ../roundup/cgi/actions.py:692
+#: ../roundup/cgi/actions.py:693
 msgid "Unknown email address"
 msgstr "Nežinomas el. pašto adresas"
 
-#: ../roundup/cgi/actions.py:697
+#: ../roundup/cgi/actions.py:698
 msgid "You need to specify a username or address"
 msgstr "Privalote nurodyti vartotojo vardą ar el. pašto adresą"
 
-#: ../roundup/cgi/actions.py:722
+#: ../roundup/cgi/actions.py:723
 #, python-format
 msgid "Email sent to %s"
 msgstr "El. laiškas išsiųstas %s"
 
-#: ../roundup/cgi/actions.py:741
+#: ../roundup/cgi/actions.py:742
 msgid "You are now registered, welcome!"
 msgstr "Jūs esate užregistruotas, sveiki prisijungę!"
 
-#: ../roundup/cgi/actions.py:786
+#: ../roundup/cgi/actions.py:787
 msgid "It is not permitted to supply roles at registration."
 msgstr "Negalima pateikti rolių registracijos metu."
 
-#: ../roundup/cgi/actions.py:878
+#: ../roundup/cgi/actions.py:879
 msgid "You are logged out"
 msgstr "JÅ«s atsijungÄ—te"
 
-#: ../roundup/cgi/actions.py:895
+#: ../roundup/cgi/actions.py:896
 msgid "Username required"
 msgstr "Reikalingas vartotojo vardas"
 
 # ../roundup/cgi/actions.py:897 :901
-#: ../roundup/cgi/actions.py:930
-#: ../roundup/cgi/actions.py:934
+#: ../roundup/cgi/actions.py:931
+#: ../roundup/cgi/actions.py:935
+#: ../roundup/cgi/actions.py:931:935
 msgid "Invalid login"
-msgstr "Neteisingas vartotojo vardas"
+msgstr "Neteisingas vartotojo vardas ar slaptažodis"
 
-#: ../roundup/cgi/actions.py:940
+#: ../roundup/cgi/actions.py:941
 msgid "You do not have permission to login"
 msgstr "Neturite prisijungimo teisių"
 
@@ -1349,6 +1406,7 @@
 # ../roundup/cgi/cgitb.py:172 :178
 #: ../roundup/cgi/cgitb.py:172
 #: ../roundup/cgi/cgitb.py:178
+#: ../roundup/cgi/cgitb.py:172:178
 msgid "<em>undefined</em>"
 msgstr "<em>neapibrėžta</em>"
 
@@ -1366,67 +1424,74 @@
 "Apie klaidą pranešėme tracker'io administratoriui.</p>\n"
 "</body></html>"
 
-#: ../roundup/cgi/client.py:308
+#: ../roundup/cgi/client.py:326
 msgid "Form Error: "
 msgstr "Formos klaida: "
 
-#: ../roundup/cgi/client.py:363
+#: ../roundup/cgi/client.py:381
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr "Neatpažinta koduotė: %r"
 
-#: ../roundup/cgi/client.py:491
+#: ../roundup/cgi/client.py:509
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr "Anoniminiai vartotojai neturi teisių naudoti web interfeisą"
 
-#: ../roundup/cgi/client.py:646
+#: ../roundup/cgi/client.py:664
 msgid "You are not allowed to view this file."
 msgstr "Jūs neturite teisių žiūrėti šį failą."
 
-#: ../roundup/cgi/client.py:738
+#: ../roundup/cgi/client.py:758
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr "%(starttag)sPraėjęs laikas: %(seconds)fs%(endtag)s\n"
 
-#: ../roundup/cgi/client.py:742
+#: ../roundup/cgi/client.py:762
 #, python-format
 msgid "%(starttag)sCache hits: %(cache_hits)d, misses %(cache_misses)d. Loading items: %(get_items)f secs. Filtering: %(filtering)f secs.%(endtag)s\n"
 msgstr "%(starttag)sAtmintinės atitikimai: %(cache_hits)d, neatitikimai %(cache_misses)d. Įkeliami elementai: %(get_items)f sek. Filtruojama: %(filtering)f sek.%(endtag)s\n"
 
 #: ../roundup/cgi/form_parser.py:283
 #, python-format
-msgid "link \"%(key)s\" value \"%(value)s\" not a designator"
-msgstr "sąsajos \"%(key)s\" reikšmė \"%(value)s\" nėra dezignatorius"
+msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
+msgstr "sąsajos \"%(key)s\" reikšmė \"%(entry)s\" nėra dezignatorius"
 
-#: ../roundup/cgi/form_parser.py:290
+#: ../roundup/cgi/form_parser.py:301
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr "%(class)s %(property)s nÄ—ra sÄ…sajos ar multisÄ…sajos parinktis"
 
-#: ../roundup/cgi/form_parser.py:312
+#: ../roundup/cgi/form_parser.py:313
+#, python-format
+msgid "The form action claims to require property \"%(property)s\" which doesn't exist"
+msgstr "Formos veiksmas reikalauja parinkties \"%(property)s\", kuri neegzistuoja"
+
+#: ../roundup/cgi/form_parser.py:335
 #, python-format
 msgid "You have submitted a %(action)s action for the property \"%(property)s\" which doesn't exist"
 msgstr "Jūs pateikėte %(action)s komandą parinkčiai \"%(property)s\", kuri neegzistuoja"
 
 # ../roundup/cgi/form_parser.py:331 :357
-#: ../roundup/cgi/form_parser.py:331
-#: ../roundup/cgi/form_parser.py:357
+#: ../roundup/cgi/form_parser.py:354
+#: ../roundup/cgi/form_parser.py:380
+#: ../roundup/cgi/form_parser.py:354:380
 #, python-format
 msgid "You have submitted more than one value for the %s property"
 msgstr "Jūs pateikėte daugiau nei vieną reikšmę parinkčiai %s"
 
 # ../roundup/cgi/form_parser.py:354 :360
-#: ../roundup/cgi/form_parser.py:354
-#: ../roundup/cgi/form_parser.py:360
+#: ../roundup/cgi/form_parser.py:377
+#: ../roundup/cgi/form_parser.py:383
+#: ../roundup/cgi/form_parser.py:377:383
 msgid "Password and confirmation text do not match"
 msgstr "Slaptažodis ir patvirtinimo tekstas neatitinka"
 
-#: ../roundup/cgi/form_parser.py:395
+#: ../roundup/cgi/form_parser.py:418
 #, python-format
 msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
 msgstr "parinkties \"%(propname)s\": \"%(value)s\" nėra sąraše"
 
-#: ../roundup/cgi/form_parser.py:512
+#: ../roundup/cgi/form_parser.py:535
 #, python-format
 msgid "Required %(class)s property %(property)s not supplied"
 msgid_plural "Required %(class)s properties %(property)s not supplied"
@@ -1434,163 +1499,176 @@
 msgstr[1] "Reikalingos %(class)s parinktys %(property)s nepateiktos"
 msgstr[2] "Reikalingos %(class)s parinktys %(property)s nepateiktos"
 
-#: ../roundup/cgi/form_parser.py:535
+#: ../roundup/cgi/form_parser.py:558
 msgid "File is empty"
 msgstr "Failas tuščias"
 
-#: ../roundup/cgi/templating.py:72
+#: ../roundup/cgi/templating.py:73
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr "JÅ«s negalite atlikti komandos %(action)s su klasÄ—s %(class)s elementais"
 
-#: ../roundup/cgi/templating.py:627
+#: ../roundup/cgi/templating.py:643
 msgid "(list)"
 msgstr "(list)"
 
-#: ../roundup/cgi/templating.py:696
+#: ../roundup/cgi/templating.py:712
 msgid "Submit New Entry"
 msgstr "Įvesti naują įrašą"
 
 # ../roundup/cgi/templating.py:700 :819 :1193 :1214 :1258 :1280 :1314 :1353
 # :1404 :1421 :1497 :1517 :1530 :1547 :1557 :1607 :1794
-#: ../roundup/cgi/templating.py:710
-#: ../roundup/cgi/templating.py:829
-#: ../roundup/cgi/templating.py:1236
-#: ../roundup/cgi/templating.py:1257
-#: ../roundup/cgi/templating.py:1304
-#: ../roundup/cgi/templating.py:1327
-#: ../roundup/cgi/templating.py:1361
-#: ../roundup/cgi/templating.py:1400
-#: ../roundup/cgi/templating.py:1453
-#: ../roundup/cgi/templating.py:1470
-#: ../roundup/cgi/templating.py:1549
-#: ../roundup/cgi/templating.py:1569
-#: ../roundup/cgi/templating.py:1587
-#: ../roundup/cgi/templating.py:1619
-#: ../roundup/cgi/templating.py:1629
-#: ../roundup/cgi/templating.py:1683
-#: ../roundup/cgi/templating.py:1875
+#: ../roundup/cgi/templating.py:726
+#: ../roundup/cgi/templating.py:860
+#: ../roundup/cgi/templating.py:1267
+#: ../roundup/cgi/templating.py:1296
+#: ../roundup/cgi/templating.py:1316
+#: ../roundup/cgi/templating.py:1365
+#: ../roundup/cgi/templating.py:1388
+#: ../roundup/cgi/templating.py:1424
+#: ../roundup/cgi/templating.py:1463
+#: ../roundup/cgi/templating.py:1516
+#: ../roundup/cgi/templating.py:1533
+#: ../roundup/cgi/templating.py:1618
+#: ../roundup/cgi/templating.py:1638
+#: ../roundup/cgi/templating.py:1656
+#: ../roundup/cgi/templating.py:1688
+#: ../roundup/cgi/templating.py:1698
+#: ../roundup/cgi/templating.py:1752
+#: ../roundup/cgi/templating.py:1945
+#: ../roundup/cgi/templating.py:726:860
+#: :1267:1296
+#: :1316:1365
+#: :1388:1424
+#: :1463:1516
+#: :1533:1618
+#: :1638:1656
+#: :1688:1698
+#: :1752:1945
 msgid "[hidden]"
 msgstr "[paslÄ—pta]"
 
-#: ../roundup/cgi/templating.py:711
+#: ../roundup/cgi/templating.py:727
 msgid "New node - no history"
 msgstr "Naujas elementas -- nÄ—ra istorijos"
 
-#: ../roundup/cgi/templating.py:811
+#: ../roundup/cgi/templating.py:842
 msgid "Submit Changes"
 msgstr "IÅ¡saugoti pakeitimus"
 
-#: ../roundup/cgi/templating.py:893
+#: ../roundup/cgi/templating.py:924
 msgid "<em>The indicated property no longer exists</em>"
 msgstr "<em>Nurodytos parinkties nÄ—ra</em>"
 
-#: ../roundup/cgi/templating.py:894
+#: ../roundup/cgi/templating.py:925
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr "<em>%s: %s</em>\n"
 
-#: ../roundup/cgi/templating.py:907
+#: ../roundup/cgi/templating.py:938
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr "Susietos klasÄ—s %(classname)s nebÄ—ra"
 
 # ../roundup/cgi/templating.py:930 :951
-#: ../roundup/cgi/templating.py:940
-#: ../roundup/cgi/templating.py:964
+#: ../roundup/cgi/templating.py:971
+#: ../roundup/cgi/templating.py:995
+#: ../roundup/cgi/templating.py:971:995
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr "<strike>Susieto elemento nebÄ—ra</strike>"
 
-# ../roundup/cgi/templating.py:993 :1357 :1378 :1384
-#: ../roundup/cgi/templating.py:1006
-#: ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1425
-#: ../roundup/cgi/templating.py:1431
-msgid "No"
-msgstr "Ne"
-
-# ../roundup/cgi/templating.py:993 :1357 :1376 :1381
-#: ../roundup/cgi/templating.py:1006
-#: ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1423
-#: ../roundup/cgi/templating.py:1428
-msgid "Yes"
-msgstr "Taip"
-
-#: ../roundup/cgi/templating.py:1017
+#: ../roundup/cgi/templating.py:1048
 #, python-format
 msgid "%s: (no value)"
 msgstr "%s: (no value)"
 
-#: ../roundup/cgi/templating.py:1029
+#: ../roundup/cgi/templating.py:1060
 msgid "<strong><em>This event is not handled by the history display!</em></strong>"
 msgstr "<strong><em>Šis įvykis nėra rodomas archyve!</em></strong>"
 
-#: ../roundup/cgi/templating.py:1041
+#: ../roundup/cgi/templating.py:1072
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr "<tr><td colspan=4><strong>Pastaba:</strong></td></tr>"
 
-#: ../roundup/cgi/templating.py:1050
+#: ../roundup/cgi/templating.py:1081
 msgid "History"
 msgstr "Archyvas"
 
-#: ../roundup/cgi/templating.py:1052
+#: ../roundup/cgi/templating.py:1083
 msgid "<th>Date</th>"
 msgstr "<th>Data</th>"
 
-#: ../roundup/cgi/templating.py:1053
+#: ../roundup/cgi/templating.py:1084
 msgid "<th>User</th>"
 msgstr "<th>Vartotojas</th>"
 
-#: ../roundup/cgi/templating.py:1054
+#: ../roundup/cgi/templating.py:1085
 msgid "<th>Action</th>"
 msgstr "<th>Veiksmas</th>"
 
-#: ../roundup/cgi/templating.py:1055
+#: ../roundup/cgi/templating.py:1086
 msgid "<th>Args</th>"
 msgstr "<th>Argumentai</th>"
 
-#: ../roundup/cgi/templating.py:1097
+#: ../roundup/cgi/templating.py:1128
 #, python-format
 msgid "Copy of %(class)s %(id)s"
 msgstr "%(class)s %(id)s kopija"
 
-#: ../roundup/cgi/templating.py:1331
+#: ../roundup/cgi/templating.py:1392
 msgid "*encrypted*"
 msgstr "*užkoduota*"
 
-#: ../roundup/cgi/templating.py:1514
+# ../roundup/cgi/templating.py:993 :1357 :1378 :1384
+#: ../roundup/cgi/templating.py:1467
+#: ../roundup/cgi/templating.py:1488
+#: ../roundup/cgi/templating.py:1494
+#: ../roundup/cgi/templating.py:1037:1467
+#: :1488:1494
+msgid "No"
+msgstr "Ne"
+
+# ../roundup/cgi/templating.py:993 :1357 :1376 :1381
+#: ../roundup/cgi/templating.py:1467
+#: ../roundup/cgi/templating.py:1486
+#: ../roundup/cgi/templating.py:1491
+#: ../roundup/cgi/templating.py:1037:1467
+#: :1486:1491
+msgid "Yes"
+msgstr "Taip"
+
+#: ../roundup/cgi/templating.py:1580
 msgid "default value for DateHTMLProperty must be either DateHTMLProperty or string date representation."
 msgstr "standartinė DateHTMLProperty reikšmė turi būti arba DateHTMLProperty arba datos reprezentacija kaip simbolių eilutės."
 
-#: ../roundup/cgi/templating.py:1674
+#: ../roundup/cgi/templating.py:1743
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr "Bandėte pažiūrėti %(attr)s neegzistuojančiai reikšmei"
 
-#: ../roundup/cgi/templating.py:1750
+#: ../roundup/cgi/templating.py:1820
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr "<option %svalue=\"-1\">- nepasirinkta -</option>"
 
-#: ../roundup/date.py:186
+#: ../roundup/date.py:301
 msgid "Not a date spec: \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr "Ne data, nurodykite: „yyyy-mm-dd“, „mm-dd“, „HH:MM“, „HH:MM:SS“ ar „yyyy-mm-dd.HH:MM:SS.SSS“"
 
-#: ../roundup/date.py:240
+#: ../roundup/date.py:363
 #, python-format
 msgid "%r not a date / time spec \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr "%r ne data / datos formatas „yyyy-mm-dd“, „mm-dd“, „HH:MM“, „HH:MM:SS“ ar „yyyy-mm-dd.HH:MM:SS.SSS“"
 
-#: ../roundup/date.py:538
+#: ../roundup/date.py:662
 msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
 msgstr "Ne intervalas, nurodyti: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [datos formatas]"
 
-#: ../roundup/date.py:557
+#: ../roundup/date.py:681
 msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
 msgstr "Ne intervalas, formatas: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
 
-#: ../roundup/date.py:694
+#: ../roundup/date.py:818
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
@@ -1598,7 +1676,7 @@
 msgstr[1] "%(number)s metus"
 msgstr[2] "%(number)s metų"
 
-#: ../roundup/date.py:698
+#: ../roundup/date.py:822
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
@@ -1606,7 +1684,7 @@
 msgstr[1] "%(number)s mÄ—nesius"
 msgstr[2] "%(number)s mėnesių"
 
-#: ../roundup/date.py:702
+#: ../roundup/date.py:826
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
@@ -1614,7 +1692,7 @@
 msgstr[1] "%(number)s savaites"
 msgstr[2] "%(number)s savaičių"
 
-#: ../roundup/date.py:706
+#: ../roundup/date.py:830
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
@@ -1622,15 +1700,15 @@
 msgstr[1] "%(number)s dienas"
 msgstr[2] "%(number)s dienų"
 
-#: ../roundup/date.py:710
+#: ../roundup/date.py:834
 msgid "tomorrow"
 msgstr "rytoj"
 
-#: ../roundup/date.py:712
+#: ../roundup/date.py:836
 msgid "yesterday"
 msgstr "vakar"
 
-#: ../roundup/date.py:715
+#: ../roundup/date.py:839
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
@@ -1638,15 +1716,15 @@
 msgstr[1] "%(number)s valandas"
 msgstr[2] "%(number)s valandų"
 
-#: ../roundup/date.py:719
+#: ../roundup/date.py:843
 msgid "an hour"
 msgstr "valandÄ…"
 
-#: ../roundup/date.py:721
+#: ../roundup/date.py:845
 msgid "1 1/2 hours"
 msgstr "1 1/2 valandos"
 
-#: ../roundup/date.py:723
+#: ../roundup/date.py:847
 #, python-format
 msgid "1 %(number)s/4 hours"
 msgid_plural "1 %(number)s/4 hours"
@@ -1654,19 +1732,19 @@
 msgstr[1] "1 %(number)s/4 valandos"
 msgstr[2] "1 %(number)s/4 valandos"
 
-#: ../roundup/date.py:727
+#: ../roundup/date.py:851
 msgid "in a moment"
 msgstr "už minutės"
 
-#: ../roundup/date.py:729
+#: ../roundup/date.py:853
 msgid "just now"
 msgstr "kÄ… tik"
 
-#: ../roundup/date.py:732
+#: ../roundup/date.py:856
 msgid "1 minute"
 msgstr "1 minutÄ™"
 
-#: ../roundup/date.py:735
+#: ../roundup/date.py:859
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
@@ -1674,11 +1752,11 @@
 msgstr[1] "%(number)s minutes"
 msgstr[2] "%(number)s minučių"
 
-#: ../roundup/date.py:738
+#: ../roundup/date.py:862
 msgid "1/2 an hour"
 msgstr "1/2 valandos"
 
-#: ../roundup/date.py:740
+#: ../roundup/date.py:864
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
@@ -1686,12 +1764,12 @@
 msgstr[1] "%(number)s/4 valandos"
 msgstr[2] "%(number)s/4 valandos"
 
-#: ../roundup/date.py:744
+#: ../roundup/date.py:868
 #, python-format
 msgid "%s ago"
 msgstr "prieš %s"
 
-#: ../roundup/date.py:746
+#: ../roundup/date.py:870
 #, python-format
 msgid "in %s"
 msgstr "po %s"
@@ -1705,7 +1783,7 @@
 "PERSPÄ–JIMAS: direktorijoje '%s'\n"
 "\tseno tipo Å¡ablonas, praleistas"
 
-#: ../roundup/mailgw.py:586
+#: ../roundup/mailgw.py:574
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
@@ -1713,7 +1791,7 @@
 "\n"
 "Laiškai Roundup'o tracker'iams privalo turėti temos (Subject:) eilutę!\n"
 
-#: ../roundup/mailgw.py:674
+#: ../roundup/mailgw.py:664
 #, python-format
 msgid ""
 "\n"
@@ -1739,7 +1817,7 @@
 "\n"
 "Tema buvo: '%(subject)s'\n"
 
-#: ../roundup/mailgw.py:705
+#: ../roundup/mailgw.py:695
 #, python-format
 msgid ""
 "\n"
@@ -1756,7 +1834,7 @@
 "Teisingi klasių vardai yra: %(validname)s\n"
 "Tema buvo: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:733
+#: ../roundup/mailgw.py:730
 #, python-format
 msgid ""
 "\n"
@@ -1773,7 +1851,7 @@
 "\n"
 "Tema buvo: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:766
+#: ../roundup/mailgw.py:763
 #, python-format
 msgid ""
 "\n"
@@ -1788,7 +1866,7 @@
 "\n"
 "Tema buvo: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:794
+#: ../roundup/mailgw.py:791
 #, python-format
 msgid ""
 "\n"
@@ -1801,7 +1879,7 @@
 "%(mailadmin)s, kad pataisytų neteisingą klasės pavadinimą:\n"
 "  %(current_class)s\n"
 
-#: ../roundup/mailgw.py:817
+#: ../roundup/mailgw.py:814
 #, python-format
 msgid ""
 "\n"
@@ -1814,7 +1892,7 @@
 "%(mailadmin)s, kad pataisytų neteisingus atributus:\n"
 "  %(errors)s\n"
 
-#: ../roundup/mailgw.py:847
+#: ../roundup/mailgw.py:844
 #, python-format
 msgid ""
 "\n"
@@ -1827,21 +1905,21 @@
 "\n"
 "Nežinomas adresas: %(from_address)s\n"
 
-#: ../roundup/mailgw.py:855
+#: ../roundup/mailgw.py:852
 msgid "You are not permitted to access this tracker."
 msgstr "Neturite teisių naudotis šiuo tracker'iu."
 
-#: ../roundup/mailgw.py:862
+#: ../roundup/mailgw.py:859
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr "Neturite leidimo redaguoti %(classname)s."
 
-#: ../roundup/mailgw.py:866
+#: ../roundup/mailgw.py:863
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr "Neturite leidimo sukurti %(classname)s."
 
-#: ../roundup/mailgw.py:913
+#: ../roundup/mailgw.py:910
 #, python-format
 msgid ""
 "\n"
@@ -1856,7 +1934,7 @@
 "\n"
 "Tema buvo: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:942
+#: ../roundup/mailgw.py:938
 msgid ""
 "\n"
 "Roundup requires the submission to be plain text. The message parser could\n"
@@ -1866,20 +1944,20 @@
 "Roundup'ui reikia, kad laiškas būtų tekstinis. Laiškų analizatorius nerado\n"
 "text/plain dalies.\n"
 
-#: ../roundup/mailgw.py:964
+#: ../roundup/mailgw.py:960
 msgid "You are not permitted to create files."
 msgstr "Neturite teisių sukurti failą."
 
-#: ../roundup/mailgw.py:978
+#: ../roundup/mailgw.py:974
 #, python-format
 msgid "You are not permitted to add files to %(classname)s."
 msgstr "Neturite leidimo pridėti failų prie %(classname)s."
 
-#: ../roundup/mailgw.py:996
+#: ../roundup/mailgw.py:992
 msgid "You are not permitted to create messages."
 msgstr "Neturite leidimo sukurti pranešimų."
 
-#: ../roundup/mailgw.py:1004
+#: ../roundup/mailgw.py:1000
 #, python-format
 msgid ""
 "\n"
@@ -1890,17 +1968,17 @@
 "Detektorius atmetė jūsų laišką.\n"
 "%(error)s\n"
 
-#: ../roundup/mailgw.py:1012
+#: ../roundup/mailgw.py:1008
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr "Neturite leidimo pridėti pranešimų prie %(classname)s."
 
-#: ../roundup/mailgw.py:1039
+#: ../roundup/mailgw.py:1035
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr "Neturite leidimo redaguoti %(classname)s parinkties %(prop)s."
 
-#: ../roundup/mailgw.py:1047
+#: ../roundup/mailgw.py:1043
 #, python-format
 msgid ""
 "\n"
@@ -1910,78 +1988,93 @@
 "\n"
 "Jūsų laiške %(message)s yra klaidų.\n"
 
-#: ../roundup/mailgw.py:1069
+#: ../roundup/mailgw.py:1065
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr "ne tokios formos: [arg=reikšmė,reikšmė,...;arg=reikšmė,reikšmė,...]"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "files"
 msgstr "failai"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "messages"
 msgstr "pranešimai"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "nosy"
 msgstr "informuoti"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "superseder"
 msgstr "pirmtakas"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "title"
 msgstr "antraštė"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "assignedto"
 msgstr "priskirta"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "priority"
 msgstr "prioritetas"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "status"
 msgstr "statusas"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "topic"
 msgstr "tema"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "activity"
 msgstr "veiksmas"
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "actor"
 msgstr "veikÄ—jas"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creation"
 msgstr "sukūrimas"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creator"
 msgstr "kūrėjas"
 
-#: ../roundup/roundupdb.py:304
+#: ../roundup/roundupdb.py:308
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr "Nauja pateiktis nuo %(authname)s%(authaddr)s:"
 
-#: ../roundup/roundupdb.py:307
+#: ../roundup/roundupdb.py:311
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr "%(authname)s%(authaddr)s parašė komentarą:"
 
-#: ../roundup/roundupdb.py:310
+#: ../roundup/roundupdb.py:314
 msgid "System message:"
 msgstr "Sistemos pranešimas:"
 
+#: ../roundup/roundupdb.py:597
+#, python-format
+msgid ""
+"\n"
+"Now:\n"
+"%s\n"
+"Was:\n"
+"%s"
+msgstr ""
+"\n"
+"Dabar:\n"
+"%s\n"
+"Buvo:\n"
+"%s"
+
 #: ../roundup/scripts/roundup_demo.py:32
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
@@ -2000,7 +2093,7 @@
 #: ../roundup/scripts/roundup_mailgw.py:36
 #, python-format
 msgid ""
-"Usage: %(program)s [-v] [-c] [[-C class] -S field=value]* <instance home> [method]\n"
+"Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* <instance home> [method]\n"
 "\n"
 "Options:\n"
 " -v: print version and exit\n"
@@ -2063,10 +2156,10 @@
 "    imaps username:password at server [mailbox]\n"
 "\n"
 msgstr ""
-"Naudojimas: %(program)s [-v] [-c] [[-C klasė] -S laukas=reikšmė]* <namų direktorija> [metodas]\n"
+"Naudojimas: %(program)s [-v] [-c klasė] [[-C klasė] -S laukas=reikšmė]* <namų direktorija> [metodas]\n"
 "\n"
 "Parinktys:\n"
-" -v: išspausdinti vesiją ir baigti\n"
+" -v: išspausdinti versiją ir baigti\n"
 " -c: stadartinÄ— kuriamo elemento klasÄ— (arba tracker'io MAIL_DEFAULT_CLASS)\n"
 " -C / -S: žiūrėti žemiau\n"
 "\n"
@@ -2078,9 +2171,9 @@
 "\n"
 "Ši komanda taipogi palaiko neprivalomus -C ir -S argumentus, kurie leidžia\n"
 "nustatyti laukus klasei, sukurtai roundup-mailgw. StandartinÄ— klasÄ—, jei\n"
-"kitaip nenurodyta yra msg, tačiau kitos klasės: issue, file, user taip pat\n"
+"kitaip nenurodyta, yra msg, tačiau kitos klasės: issue, file, user taip pat\n"
 "gali būti naudojamos. -S ar --set parinktys naudoja tą pačią\n"
-"parinktis=reikšmė[;pariktis=reikšmė] notaciją, priimamą roundup komandinės\n"
+"parinktis=reikšmė[;parinktis=reikšmė] notaciją, priimamą roundup komandinės\n"
 "eilutės komandos ar komandų, kurios gali būti duodamos el. pašto Temos\n"
 "eilutÄ—je.\n"
 "\n"
@@ -2151,52 +2244,52 @@
 "<html><head><title>Roundup tracker'io indeksas</title></head>\n"
 "<body><h1>Roundup tracker'io indeksas</h1><ol>\n"
 
-#: ../roundup/scripts/roundup_server.py:287
+#: ../roundup/scripts/roundup_server.py:293
 #, python-format
 msgid "Error: %s: %s"
 msgstr "Klaida: %s: %s"
 
-#: ../roundup/scripts/roundup_server.py:297
+#: ../roundup/scripts/roundup_server.py:303
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr "PERSPĖJIMAS: \"-g\" argumentas ignoruojamas, nėra root teisių"
 
-#: ../roundup/scripts/roundup_server.py:303
+#: ../roundup/scripts/roundup_server.py:309
 msgid "Can't change groups - no grp module"
 msgstr "Negaliu pakeisti grupių -- nėra grp modulio"
 
-#: ../roundup/scripts/roundup_server.py:312
+#: ../roundup/scripts/roundup_server.py:318
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr "GrupÄ—s %(group)s nÄ—ra"
 
-#: ../roundup/scripts/roundup_server.py:323
+#: ../roundup/scripts/roundup_server.py:329
 msgid "Can't run as root!"
 msgstr "Negaliu paleisti root teisÄ—mis!"
 
-#: ../roundup/scripts/roundup_server.py:326
+#: ../roundup/scripts/roundup_server.py:332
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr "PERSPĖJIMAS: \"-u\" argumentas ignoruojamas, nėra root teisių"
 
-#: ../roundup/scripts/roundup_server.py:331
+#: ../roundup/scripts/roundup_server.py:338
 msgid "Can't change users - no pwd module"
 msgstr "Negaliu pakesiti vartotojų - nėra pwd modulio"
 
-#: ../roundup/scripts/roundup_server.py:340
+#: ../roundup/scripts/roundup_server.py:347
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr "Vartotojo %(user)s nÄ—ra"
 
-#: ../roundup/scripts/roundup_server.py:471
+#: ../roundup/scripts/roundup_server.py:478
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr "Multiprocesinė aplinka \"%s\" neprieinama, perjungiu į vienprocesinę"
 
-#: ../roundup/scripts/roundup_server.py:494
+#: ../roundup/scripts/roundup_server.py:501
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr "Negaliu prijungti prie jungties %s, jungtis jau naudojama."
 
-#: ../roundup/scripts/roundup_server.py:562
+#: ../roundup/scripts/roundup_server.py:569
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -2213,7 +2306,7 @@
 "               Įvedę \"roundup-server -c help\" pamatysite Windows Services\n"
 "               specifikÄ…."
 
-#: ../roundup/scripts/roundup_server.py:569
+#: ../roundup/scripts/roundup_server.py:576
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -2227,7 +2320,7 @@
 "               nurodytą PIDfaile. Parinktis -l *privalo* būti nurodyta\n"
 "               jei naudojama -d."
 
-#: ../roundup/scripts/roundup_server.py:576
+#: ../roundup/scripts/roundup_server.py:583
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -2333,20 +2426,20 @@
 "   nesupras.\n"
 "\n"
 
-#: ../roundup/scripts/roundup_server.py:723
+#: ../roundup/scripts/roundup_server.py:730
 msgid "Instances must be name=home"
 msgstr "Egzempliorius turi būti nurodomas taip: vardas=namų_direktorija"
 
-#: ../roundup/scripts/roundup_server.py:737
+#: ../roundup/scripts/roundup_server.py:744
 #, python-format
 msgid "Configuration saved to %s"
 msgstr "Konfigūracija išsaugota %s"
 
-#: ../roundup/scripts/roundup_server.py:755
+#: ../roundup/scripts/roundup_server.py:762
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr "JÅ«s negalite paleisti serverio kaip daemon'o Å¡ioje operacinÄ—je sistemoje"
 
-#: ../roundup/scripts/roundup_server.py:767
+#: ../roundup/scripts/roundup_server.py:774
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr "Roundup serveris paleistas ant %(HOST)s:%(PORT)s"
@@ -2374,35 +2467,70 @@
 "  kol jūs redagavote. <a href='${context}'>Perkraukite</a>\n"
 "  elementą ir peržiūrėkite savo pakeitimus.\n"
 
-#: ../templates/classic/html/_generic.help.html:9
-#: ../templates/minimal/html/_generic.help.html:9
-msgid "${property} help - ${tracker}"
-msgstr "${property} pagalba - ${tracker}"
+#: ../templates/classic/html/_generic.help-empty.html:6
+msgid "Please specify your search parameters!"
+msgstr "Prašome nurodyti paieškos parametrus!"
+
+#: ../templates/classic/html/_generic.help-list.html:20
+#: ../templates/classic/html/_generic.index.html:14
+#: ../templates/classic/html/_generic.item.html:12
+#: ../templates/classic/html/file.item.html:9
+#: ../templates/classic/html/issue.index.html:16
+#: ../templates/classic/html/issue.item.html:28
+#: ../templates/classic/html/msg.item.html:26
+#: ../templates/classic/html/user.index.html:9
+#: ../templates/classic/html/user.item.html:35
+#: ../templates/minimal/html/_generic.index.html:14
+#: ../templates/minimal/html/_generic.item.html:12
+#: ../templates/minimal/html/user.index.html:9
+#: ../templates/minimal/html/user.item.html:35
+#: ../templates/minimal/html/user.register.html:14
+msgid "You are not allowed to view this page."
+msgstr "Jūs neturite teisių peržiūrėti šį puslapį."
+
+#: ../templates/classic/html/_generic.help-list.html:34
+msgid "1..25 out of 50"
+msgstr "1..25 iš 50"
+
+#: ../templates/classic/html/_generic.help-search.html:9
+msgid "Generic template ${template} or version for class ${classname} is not yet implemented"
+msgstr "Bendras šablonas ${template} arba versija klasei ${classname} nėra paruošta"
 
+#: ../templates/classic/html/_generic.help-submit.html:57
 #: ../templates/classic/html/_generic.help.html:31
 #: ../templates/minimal/html/_generic.help.html:31
 msgid " Cancel "
 msgstr " Atšaukti "
 
+#: ../templates/classic/html/_generic.help-submit.html:63
 #: ../templates/classic/html/_generic.help.html:34
 #: ../templates/minimal/html/_generic.help.html:34
 msgid " Apply "
 msgstr " Vykdyti "
 
+#: ../templates/classic/html/_generic.help.html:9
+#: ../templates/classic/html/user.help.html:13
+#: ../templates/minimal/html/_generic.help.html:9
+msgid "${property} help - ${tracker}"
+msgstr "${property} pagalba - ${tracker}"
+
 #: ../templates/classic/html/_generic.help.html:41
-#: ../templates/classic/html/issue.index.html:73
+#: ../templates/classic/html/help.html:21
+#: ../templates/classic/html/issue.index.html:80
 #: ../templates/minimal/html/_generic.help.html:41
 msgid "&lt;&lt; previous"
 msgstr "&lt;&lt; pirmesnis"
 
 #: ../templates/classic/html/_generic.help.html:53
-#: ../templates/classic/html/issue.index.html:81
+#: ../templates/classic/html/help.html:28
+#: ../templates/classic/html/issue.index.html:88
 #: ../templates/minimal/html/_generic.help.html:53
 msgid "${start}..${end} out of ${total}"
 msgstr "${start}..${end} iš ${total}"
 
 #: ../templates/classic/html/_generic.help.html:57
-#: ../templates/classic/html/issue.index.html:84
+#: ../templates/classic/html/help.html:32
+#: ../templates/classic/html/issue.index.html:91
 #: ../templates/minimal/html/_generic.help.html:57
 msgid "next &gt;&gt;"
 msgstr "kitas &gt;&gt;"
@@ -2421,29 +2549,28 @@
 msgid "${class} editing"
 msgstr "${class} redagavimas"
 
-#: ../templates/classic/html/_generic.index.html:14
-#: ../templates/classic/html/_generic.item.html:12
-#: ../templates/classic/html/file.item.html:9
-#: ../templates/classic/html/issue.index.html:16
-#: ../templates/classic/html/issue.item.html:28
-#: ../templates/classic/html/msg.item.html:26
-#: ../templates/classic/html/user.index.html:9
-#: ../templates/classic/html/user.item.html:28
-#: ../templates/minimal/html/_generic.index.html:14
-#: ../templates/minimal/html/_generic.item.html:12
-#: ../templates/minimal/html/user.index.html:9
-#: ../templates/minimal/html/user.item.html:28
-#: ../templates/minimal/html/user.register.html:14
-msgid "You are not allowed to view this page."
-msgstr "Jūs neturite teisių peržiūrėti šį puslapį."
+#: ../templates/classic/html/_generic.index.html:19
+#: ../templates/classic/html/_generic.item.html:16
+#: ../templates/classic/html/file.item.html:13
+#: ../templates/classic/html/issue.index.html:20
+#: ../templates/classic/html/issue.item.html:32
+#: ../templates/classic/html/msg.item.html:30
+#: ../templates/classic/html/user.index.html:13
+#: ../templates/classic/html/user.item.html:39
+#: ../templates/minimal/html/_generic.index.html:19
+#: ../templates/minimal/html/_generic.item.html:17
+#: ../templates/minimal/html/user.index.html:13
+#: ../templates/minimal/html/user.register.html:17
+msgid "Please login with your username and password."
+msgstr "Prašome įvesti Jums priskirtą vardą ir slaptažodį."
 
-#: ../templates/classic/html/_generic.index.html:22
-#: ../templates/minimal/html/_generic.index.html:22
+#: ../templates/classic/html/_generic.index.html:28
+#: ../templates/minimal/html/_generic.index.html:28
 msgid "<p class=\"form-help\"> You may edit the contents of the ${classname} class using this form. Commas, newlines and double quotes (\") must be handled delicately. You may include commas and newlines by enclosing the values in double-quotes (\"). Double quotes themselves must be quoted by doubling (\"\"). </p> <p class=\"form-help\"> Multilink properties have their multiple values colon (\":\") separated (... ,\"one:two:three\", ...) </p> <p class=\"form-help\"> Remove entries by deleting their line. Add new entries by appending them to the table - put an X in the id column. </p>"
 msgstr "<p class=\"form-help\"> Jūs galite redaguoti ${classname} klasės turinį naudodami šią formą. Su kableliais, naujomis eilutėmis ir dvigubomis kabutėmis (\") turi būti elgiamasi atsargiai. Jūs galite naudoti kablelius ir naujas eilutes užkomentuodami reikšmes dvigubomis kabutėmis (\"). Dvigubos kabutės turi būti užkomentuotos dvigubinant (\"\"). </p> <p class=\"form-help\"> Daugiasąsajėse parinktyse reikšmės atskirtos dvitaškiu (\":\") (... ,\"one:two:three\", ...) </p> <p class=\"form-help\"> Įrašai ištrinami ištrinant jų eilutę. Nauji įrašai pridedami prijungiant juos prie lentelės - įrašykite X id stulpelyje. </p>"
 
-#: ../templates/classic/html/_generic.index.html:44
-#: ../templates/minimal/html/_generic.index.html:44
+#: ../templates/classic/html/_generic.index.html:50
+#: ../templates/minimal/html/_generic.index.html:50
 msgid "Edit Items"
 msgstr "Redaguoti elementus"
 
@@ -2460,7 +2587,7 @@
 msgstr "Parsisiųsti"
 
 #: ../templates/classic/html/file.index.html:11
-#: ../templates/classic/html/file.item.html:22
+#: ../templates/classic/html/file.item.html:27
 msgid "Content Type"
 msgstr "Turinio tipas"
 
@@ -2469,7 +2596,7 @@
 msgstr "Nusiųsta iki"
 
 #: ../templates/classic/html/file.index.html:13
-#: ../templates/classic/html/msg.item.html:43
+#: ../templates/classic/html/msg.item.html:48
 msgid "Date"
 msgstr "Data"
 
@@ -2481,13 +2608,12 @@
 msgid "File display"
 msgstr "Failų pateikimas"
 
-#: ../templates/classic/html/file.item.html:18
-#: ../templates/classic/html/user.item.html:39
+#: ../templates/classic/html/file.item.html:23
 #: ../templates/classic/html/user.register.html:17
 msgid "Name"
 msgstr "Vardas"
 
-#: ../templates/classic/html/file.item.html:40
+#: ../templates/classic/html/file.item.html:45
 msgid "download"
 msgstr "parsisiųsti"
 
@@ -2501,80 +2627,77 @@
 msgid "List of classes"
 msgstr "Klasių sąrašas"
 
-#: ../templates/classic/html/issue.index.html:7
-msgid "List of issues - ${tracker}"
-msgstr "Kreipinių sąrašas - ${tracker}"
-
-#: ../templates/classic/html/issue.index.html:11
+#: ../templates/classic/html/issue.index.html:4
+#: ../templates/classic/html/issue.index.html:10
 msgid "List of issues"
 msgstr "Kreipinių sąrašas"
 
-#: ../templates/classic/html/issue.index.html:22
-#: ../templates/classic/html/issue.item.html:44
+#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.item.html:49
 msgid "Priority"
 msgstr "Prioritetas"
 
-#: ../templates/classic/html/issue.index.html:23
+#: ../templates/classic/html/issue.index.html:28
 msgid "ID"
 msgstr "ID"
 
-#: ../templates/classic/html/issue.index.html:24
+#: ../templates/classic/html/issue.index.html:29
 msgid "Creation"
 msgstr "Sukūrimas"
 
-#: ../templates/classic/html/issue.index.html:25
+#: ../templates/classic/html/issue.index.html:30
 msgid "Activity"
 msgstr "Veikla"
 
-#: ../templates/classic/html/issue.index.html:26
+#: ../templates/classic/html/issue.index.html:31
 msgid "Actor"
 msgstr "VeikÄ—jas"
 
-#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.index.html:32
 msgid "Topic"
 msgstr "Tema"
 
-#: ../templates/classic/html/issue.index.html:28
-#: ../templates/classic/html/issue.item.html:39
+#: ../templates/classic/html/issue.index.html:33
+#: ../templates/classic/html/issue.item.html:44
 msgid "Title"
 msgstr "Pavadinimas"
 
-#: ../templates/classic/html/issue.index.html:29
-#: ../templates/classic/html/issue.item.html:46
+#: ../templates/classic/html/issue.index.html:34
+#: ../templates/classic/html/issue.item.html:51
 msgid "Status"
 msgstr "Statusas"
 
-#: ../templates/classic/html/issue.index.html:30
+#: ../templates/classic/html/issue.index.html:35
 msgid "Creator"
 msgstr "Sukūrėjas"
 
-#: ../templates/classic/html/issue.index.html:31
+#: ../templates/classic/html/issue.index.html:36
 msgid "Assigned&nbsp;To"
 msgstr "Priskirta"
 
-#: ../templates/classic/html/issue.index.html:97
+#: ../templates/classic/html/issue.index.html:104
 msgid "Download as CSV"
 msgstr "Parsisiųsti kaip CSV"
 
-#: ../templates/classic/html/issue.index.html:105
+#: ../templates/classic/html/issue.index.html:114
 msgid "Sort on:"
 msgstr "Išrūšiuoti pagal:"
 
-#: ../templates/classic/html/issue.index.html:108
-#: ../templates/classic/html/issue.index.html:125
+#: ../templates/classic/html/issue.index.html:118
+#: ../templates/classic/html/issue.index.html:139
 msgid "- nothing -"
 msgstr "- nieko -"
 
-#: ../templates/classic/html/issue.index.html:116
-#: ../templates/classic/html/issue.index.html:133
+#: ../templates/classic/html/issue.index.html:126
+#: ../templates/classic/html/issue.index.html:147
 msgid "Descending:"
 msgstr "Mažėjančia tvarka:"
 
-#: ../templates/classic/html/issue.index.html:122
+#: ../templates/classic/html/issue.index.html:135
 msgid "Group on:"
 msgstr "Grupuoti pagal:"
 
-#: ../templates/classic/html/issue.index.html:139
+#: ../templates/classic/html/issue.index.html:154
 msgid "Redisplay"
 msgstr "Perpaišyti vaizdą"
 
@@ -2602,97 +2725,97 @@
 msgid "Issue${id} Editing"
 msgstr "Kreipinio${id} redagavimas"
 
-#: ../templates/classic/html/issue.item.html:51
+#: ../templates/classic/html/issue.item.html:56
 msgid "Superseder"
 msgstr "Pirmtakas"
 
-#: ../templates/classic/html/issue.item.html:56
-msgid "View: ${link}"
-msgstr "Žiūrėti: ${link}"
+#: ../templates/classic/html/issue.item.html:61
+msgid "View:"
+msgstr "Rodyti:"
 
-#: ../templates/classic/html/issue.item.html:60
+#: ../templates/classic/html/issue.item.html:67
 msgid "Nosy List"
 msgstr "Sąrašas informuoti"
 
-#: ../templates/classic/html/issue.item.html:69
+#: ../templates/classic/html/issue.item.html:76
 msgid "Assigned To"
 msgstr "Priskirta"
 
-#: ../templates/classic/html/issue.item.html:71
+#: ../templates/classic/html/issue.item.html:78
 msgid "Topics"
 msgstr "Temos"
 
-#: ../templates/classic/html/issue.item.html:79
+#: ../templates/classic/html/issue.item.html:86
 msgid "Change Note"
 msgstr "Pakeitimų pastabos"
 
-#: ../templates/classic/html/issue.item.html:87
+#: ../templates/classic/html/issue.item.html:94
 msgid "File"
 msgstr "Failas"
 
-#: ../templates/classic/html/issue.item.html:99
+#: ../templates/classic/html/issue.item.html:106
 msgid "Make a copy"
 msgstr "Kopijuoti"
 
-#: ../templates/classic/html/issue.item.html:107
-#: ../templates/classic/html/user.item.html:106
+#: ../templates/classic/html/issue.item.html:114
+#: ../templates/classic/html/user.item.html:152
 #: ../templates/classic/html/user.register.html:69
-#: ../templates/minimal/html/user.item.html:86
+#: ../templates/minimal/html/user.item.html:147
 msgid "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required\">highlighted</th> <td>&nbsp;fields are required.</td> </tr> </table>"
 msgstr "<table class=\"form\"> <tr> <td>Pastaba:&nbsp;</td> <th class=\"required\">pažymėti</th> <td>&nbsp;laukai yra privalomi.</td> </tr> </table>"
 
-#: ../templates/classic/html/issue.item.html:121
+#: ../templates/classic/html/issue.item.html:128
 msgid "Created on <b>${creation}</b> by <b>${creator}</b>, last changed <b>${activity}</b> by <b>${actor}</b>."
 msgstr "Sukurta <b>${creation}</b> <b>${creator}</b>, paskutinį kartą keista <b>${activity}</b> <b>${actor}</b>."
 
-#: ../templates/classic/html/issue.item.html:125
-#: ../templates/classic/html/msg.item.html:56
+#: ../templates/classic/html/issue.item.html:132
+#: ../templates/classic/html/msg.item.html:61
 msgid "Files"
 msgstr "Failai"
 
-#: ../templates/classic/html/issue.item.html:127
-#: ../templates/classic/html/msg.item.html:58
+#: ../templates/classic/html/issue.item.html:134
+#: ../templates/classic/html/msg.item.html:63
 msgid "File name"
 msgstr "Failo vardas"
 
-#: ../templates/classic/html/issue.item.html:128
-#: ../templates/classic/html/msg.item.html:59
+#: ../templates/classic/html/issue.item.html:135
+#: ../templates/classic/html/msg.item.html:64
 msgid "Uploaded"
 msgstr "Nusiųsta"
 
-#: ../templates/classic/html/issue.item.html:129
+#: ../templates/classic/html/issue.item.html:136
 msgid "Type"
 msgstr "Tipas"
 
-#: ../templates/classic/html/issue.item.html:130
+#: ../templates/classic/html/issue.item.html:137
 #: ../templates/classic/html/query.edit.html:30
 msgid "Edit"
 msgstr "Redaguoti"
 
-#: ../templates/classic/html/issue.item.html:131
+#: ../templates/classic/html/issue.item.html:138
 msgid "Remove"
 msgstr "Pašalinti"
 
-#: ../templates/classic/html/issue.item.html:151
-#: ../templates/classic/html/issue.item.html:172
+#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:179
 #: ../templates/classic/html/query.edit.html:50
 msgid "remove"
 msgstr "pašalinti"
 
-#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:165
 #: ../templates/classic/html/msg.index.html:9
 msgid "Messages"
 msgstr "Pranešimai"
 
-#: ../templates/classic/html/issue.item.html:162
+#: ../templates/classic/html/issue.item.html:169
 msgid "msg${id} (view)"
 msgstr "msg${id} (view)"
 
-#: ../templates/classic/html/issue.item.html:163
+#: ../templates/classic/html/issue.item.html:170
 msgid "Author: ${author}"
 msgstr "Autorius: ${author}"
 
-#: ../templates/classic/html/issue.item.html:165
+#: ../templates/classic/html/issue.item.html:172
 msgid "Date: ${date}"
 msgstr "Data: ${date}"
 
@@ -2704,127 +2827,129 @@
 msgid "Issue searching"
 msgstr "Kreipinių paieška"
 
-#: ../templates/classic/html/issue.search.html:25
+#: ../templates/classic/html/issue.search.html:31
 msgid "Filter on"
 msgstr "Filtruoti pagal"
 
-#: ../templates/classic/html/issue.search.html:26
+#: ../templates/classic/html/issue.search.html:32
 msgid "Display"
 msgstr "Parodyti"
 
-#: ../templates/classic/html/issue.search.html:27
+#: ../templates/classic/html/issue.search.html:33
 msgid "Sort on"
 msgstr "RÅ«Å¡iuoti pagal"
 
-#: ../templates/classic/html/issue.search.html:28
+#: ../templates/classic/html/issue.search.html:34
 msgid "Group on"
 msgstr "Grupuoti pagal"
 
-#: ../templates/classic/html/issue.search.html:32
+#: ../templates/classic/html/issue.search.html:38
 msgid "All text*:"
 msgstr "Visas tekstas*:"
 
-#: ../templates/classic/html/issue.search.html:40
+#: ../templates/classic/html/issue.search.html:46
 msgid "Title:"
 msgstr "Pavadinimas:"
 
-#: ../templates/classic/html/issue.search.html:50
+#: ../templates/classic/html/issue.search.html:56
 msgid "Topic:"
 msgstr "Tema:"
 
-#: ../templates/classic/html/issue.search.html:58
+#: ../templates/classic/html/issue.search.html:64
 msgid "ID:"
 msgstr "ID:"
 
-#: ../templates/classic/html/issue.search.html:66
+#: ../templates/classic/html/issue.search.html:72
 msgid "Creation Date:"
 msgstr "Sukūrimo data:"
 
-#: ../templates/classic/html/issue.search.html:77
+#: ../templates/classic/html/issue.search.html:83
 msgid "Creator:"
 msgstr "KÅ«rÄ—jas:"
 
-#: ../templates/classic/html/issue.search.html:79
+#: ../templates/classic/html/issue.search.html:85
 msgid "created by me"
 msgstr "mano sukurta"
 
-#: ../templates/classic/html/issue.search.html:88
+#: ../templates/classic/html/issue.search.html:94
 msgid "Activity:"
 msgstr "Veikla:"
 
-#: ../templates/classic/html/issue.search.html:99
+#: ../templates/classic/html/issue.search.html:105
 msgid "Actor:"
 msgstr "VeikÄ—jas:"
 
-#: ../templates/classic/html/issue.search.html:101
+#: ../templates/classic/html/issue.search.html:107
 msgid "done by me"
 msgstr "mano atlikta"
 
-#: ../templates/classic/html/issue.search.html:112
+#: ../templates/classic/html/issue.search.html:118
 msgid "Priority:"
 msgstr "Prioritetas:"
 
-#: ../templates/classic/html/issue.search.html:114
-#: ../templates/classic/html/issue.search.html:130
+#: ../templates/classic/html/issue.search.html:120
+#: ../templates/classic/html/issue.search.html:136
 msgid "not selected"
 msgstr "nepasirinkta"
 
-#: ../templates/classic/html/issue.search.html:125
+#: ../templates/classic/html/issue.search.html:131
 msgid "Status:"
 msgstr "Statusas:"
 
-#: ../templates/classic/html/issue.search.html:128
+#: ../templates/classic/html/issue.search.html:134
 msgid "not resolved"
 msgstr "neišspręsta"
 
-#: ../templates/classic/html/issue.search.html:143
+#: ../templates/classic/html/issue.search.html:149
 msgid "Assigned to:"
 msgstr "Priskirta:"
 
-#: ../templates/classic/html/issue.search.html:146
+#: ../templates/classic/html/issue.search.html:152
 msgid "assigned to me"
 msgstr "priskirta man"
 
-#: ../templates/classic/html/issue.search.html:148
+#: ../templates/classic/html/issue.search.html:154
 msgid "unassigned"
 msgstr "nepriskirta"
 
-#: ../templates/classic/html/issue.search.html:158
+#: ../templates/classic/html/issue.search.html:164
 msgid "No Sort or group:"
 msgstr "Nėra rūšiavimo ar grupavimo:"
 
-#: ../templates/classic/html/issue.search.html:166
+#: ../templates/classic/html/issue.search.html:172
 msgid "Pagesize:"
 msgstr "Puslapio dydis:"
 
-#: ../templates/classic/html/issue.search.html:172
+#: ../templates/classic/html/issue.search.html:178
 msgid "Start With:"
 msgstr "PradÄ—ti nuo:"
 
-#: ../templates/classic/html/issue.search.html:178
+#: ../templates/classic/html/issue.search.html:184
 msgid "Sort Descending:"
 msgstr "Rūšiuoti mažėjančia tvarka:"
 
-#: ../templates/classic/html/issue.search.html:185
+#: ../templates/classic/html/issue.search.html:191
 msgid "Group Descending:"
 msgstr "Grupuoti mažėjančia tvarka:"
 
-#: ../templates/classic/html/issue.search.html:192
+#: ../templates/classic/html/issue.search.html:198
 msgid "Query name**:"
 msgstr "Užklausos vardas**:"
 
-#: ../templates/classic/html/issue.search.html:204
-#: ../templates/classic/html/page.html:31
-#: ../templates/classic/html/page.html:60
-#: ../templates/minimal/html/page.html:31
+#: ../templates/classic/html/issue.search.html:210
+#: ../templates/classic/html/page.html:43
+#: ../templates/classic/html/page.html:92
+#: ../templates/classic/html/user.help-search.html:69
+#: ../templates/minimal/html/page.html:43
+#: ../templates/minimal/html/page.html:91
 msgid "Search"
 msgstr "Paieška"
 
-#: ../templates/classic/html/issue.search.html:209
+#: ../templates/classic/html/issue.search.html:215
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
 msgstr "*: Laukas „visas tekstas“ iššoks pranešimų tekste ir kreipinių pavadinimuose"
 
-#: ../templates/classic/html/issue.search.html:212
+#: ../templates/classic/html/issue.search.html:218
 msgid "**: If you supply a name, the query will be saved off and available as a link in the sidebar"
 msgstr "**: Jei jūs pateiksite vardą, užklausa bus išsaugota ir prieinama kaip nuoroda šoninėje juostoje"
 
@@ -2884,133 +3009,158 @@
 msgid "Message${id} Editing"
 msgstr "Pranešimo${id} redagavimas"
 
-#: ../templates/classic/html/msg.item.html:33
+#: ../templates/classic/html/msg.item.html:38
 msgid "Author"
 msgstr "Autorius"
 
-#: ../templates/classic/html/msg.item.html:38
+#: ../templates/classic/html/msg.item.html:43
 msgid "Recipients"
 msgstr "GavÄ—jai"
 
-#: ../templates/classic/html/msg.item.html:49
+#: ../templates/classic/html/msg.item.html:54
 msgid "Content"
 msgstr "Turinys"
 
-#: ../templates/classic/html/page.html:41
+#: ../templates/classic/html/page.html:54
+#: ../templates/minimal/html/page.html:53
 msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
 msgstr "<b>Jūsų užklausos</b> (<a href=\"query?@template=edit\">redaguoti</a>)"
 
-#: ../templates/classic/html/page.html:52
+#: ../templates/classic/html/page.html:65
+#: ../templates/minimal/html/page.html:64
 msgid "Issues"
 msgstr "Kreipiniai"
 
-#: ../templates/classic/html/page.html:54
-#: ../templates/classic/html/page.html:74
+#: ../templates/classic/html/page.html:67
+#: ../templates/classic/html/page.html:105
+#: ../templates/minimal/html/page.html:66
+#: ../templates/minimal/html/page.html:104
 msgid "Create New"
 msgstr "Sukurti naujÄ…"
 
-#: ../templates/classic/html/page.html:56
+#: ../templates/classic/html/page.html:69
+#: ../templates/minimal/html/page.html:68
 msgid "Show Unassigned"
 msgstr "Rodyti nepriskirtus"
 
-#: ../templates/classic/html/page.html:58
+#: ../templates/classic/html/page.html:81
+#: ../templates/minimal/html/page.html:80
 msgid "Show All"
 msgstr "Rodyti visus"
 
-#: ../templates/classic/html/page.html:61
+#: ../templates/classic/html/page.html:93
+#: ../templates/minimal/html/page.html:92
 msgid "Show issue:"
 msgstr "Rodyti kreipinį:"
 
-#: ../templates/classic/html/page.html:72
+#: ../templates/classic/html/page.html:103
+#: ../templates/minimal/html/page.html:102
 msgid "Keywords"
 msgstr "Raktiniai žodžiai"
 
-#: ../templates/classic/html/page.html:78
+#: ../templates/classic/html/page.html:108
+#: ../templates/minimal/html/page.html:107
 msgid "Edit Existing"
 msgstr "Redaguoti esamus"
 
-#: ../templates/classic/html/page.html:84
-#: ../templates/minimal/html/page.html:65
+#: ../templates/classic/html/page.html:114
+#: ../templates/minimal/html/page.html:113
 msgid "Administration"
 msgstr "Administravimas"
 
-#: ../templates/classic/html/page.html:86
-#: ../templates/minimal/html/page.html:66
+#: ../templates/classic/html/page.html:116
+#: ../templates/minimal/html/page.html:115
 msgid "Class List"
 msgstr "Klasių sąrašas"
 
-#: ../templates/classic/html/page.html:90
-#: ../templates/minimal/html/page.html:68
+#: ../templates/classic/html/page.html:120
+#: ../templates/minimal/html/page.html:119
 msgid "User List"
 msgstr "Vartotojų sąrašas"
 
-#: ../templates/classic/html/page.html:92
-#: ../templates/minimal/html/page.html:71
+#: ../templates/classic/html/page.html:122
+#: ../templates/minimal/html/page.html:121
 msgid "Add User"
 msgstr "PridÄ—ti vartotojÄ…"
 
-#: ../templates/classic/html/page.html:99
-#: ../templates/classic/html/page.html:105
-#: ../templates/minimal/html/page.html:46
+#: ../templates/classic/html/page.html:129
+#: ../templates/classic/html/page.html:135
+#: ../templates/minimal/html/page.html:128
+#: ../templates/minimal/html/page.html:134
 msgid "Login"
 msgstr "Prisijungti"
 
-#: ../templates/classic/html/page.html:104
-#: ../templates/minimal/html/page.html:45
+#: ../templates/classic/html/page.html:134
+#: ../templates/minimal/html/page.html:133
 msgid "Remember me?"
 msgstr "Prisiminti mane?"
 
-#: ../templates/classic/html/page.html:108
+#: ../templates/classic/html/page.html:138
 #: ../templates/classic/html/user.register.html:63
-#: ../templates/minimal/html/page.html:50
-#: ../templates/minimal/html/user.register.html:58
+#: ../templates/minimal/html/page.html:137
+#: ../templates/minimal/html/user.register.html:61
 msgid "Register"
 msgstr "Užsiregistruoti"
 
-#: ../templates/classic/html/page.html:111
+#: ../templates/classic/html/page.html:141
+#: ../templates/minimal/html/page.html:140
 msgid "Lost&nbsp;your&nbsp;login?"
 msgstr "Pamiršote&nbsp;savo&nbsp;vartotojo&nbsp;vardą?"
 
-#: ../templates/classic/html/page.html:116
+#: ../templates/classic/html/page.html:146
+#: ../templates/minimal/html/page.html:145
 msgid "Hello, ${user}"
 msgstr "Sveiki, ${user}"
 
-#: ../templates/classic/html/page.html:118
+#: ../templates/classic/html/page.html:148
 msgid "Your Issues"
 msgstr "Jūsų kreipiniai"
 
-#: ../templates/classic/html/page.html:119
-#: ../templates/minimal/html/page.html:57
+#: ../templates/classic/html/page.html:160
+#: ../templates/minimal/html/page.html:147
 msgid "Your Details"
 msgstr "SmulkesnÄ— informacija apie jus"
 
-#: ../templates/classic/html/page.html:121
-#: ../templates/minimal/html/page.html:59
+#: ../templates/classic/html/page.html:162
+#: ../templates/minimal/html/page.html:149
 msgid "Logout"
 msgstr "Atsijungti"
 
-#: ../templates/classic/html/page.html:125
+#: ../templates/classic/html/page.html:166
+#: ../templates/minimal/html/page.html:153
 msgid "Help"
 msgstr "Pagalba"
 
-#: ../templates/classic/html/page.html:126
+#: ../templates/classic/html/page.html:167
+#: ../templates/minimal/html/page.html:154
 msgid "Roundup docs"
 msgstr "Roundup dokumentacija"
 
-#: ../templates/classic/html/page.html:136
-#: ../templates/minimal/html/page.html:81
+#: ../templates/classic/html/page.html:177
+#: ../templates/minimal/html/page.html:164
 msgid "clear this message"
 msgstr "išvalyti šį pranešimą"
 
-#: ../templates/classic/html/page.html:181
+#: ../templates/classic/html/page.html:241
+#: ../templates/classic/html/page.html:256
+#: ../templates/classic/html/page.html:270
+#: ../templates/minimal/html/page.html:228
+#: ../templates/minimal/html/page.html:243
+#: ../templates/minimal/html/page.html:257
 msgid "don't care"
 msgstr "nesvarbu"
 
-#: ../templates/classic/html/page.html:183
+#: ../templates/classic/html/page.html:243
+#: ../templates/classic/html/page.html:258
+#: ../templates/classic/html/page.html:271
+#: ../templates/minimal/html/page.html:230
+#: ../templates/minimal/html/page.html:245
+#: ../templates/minimal/html/page.html:258
 msgid "------------"
 msgstr "------------"
 
-#: ../templates/classic/html/page.html:210
+#: ../templates/classic/html/page.html:299
+#: ../templates/minimal/html/page.html:286
 msgid "no value"
 msgstr "nėra reikšmės"
 
@@ -3112,6 +3262,14 @@
 msgid "A confirmation email will be sent to you - please follow the instructions within it to complete the reset process."
 msgstr "Jums bus išsiųstas patvirtinimo el. laiškas - sekite jame duotas instrukcijas, kad pabaigtumėte atstatymo procesą "
 
+#: ../templates/classic/html/user.help-search.html:73
+msgid "Pagesize"
+msgstr "Puslapio dydis"
+
+#: ../templates/classic/html/user.help.html:43
+msgid "Your browser is not capable of using frames; you should be redirected immediately, or visit ${link}."
+msgstr "Jūsų naršyklė nepalaiko rėmelių (frames); būsite nukreipti dabar arba paspauskite ${link}."
+
 #: ../templates/classic/html/user.index.html:3
 #: ../templates/minimal/html/user.index.html:3
 msgid "User listing - ${tracker}"
@@ -3122,125 +3280,88 @@
 msgid "User listing"
 msgstr "Vartotojų sąrašas"
 
-#: ../templates/classic/html/user.index.html:14
-#: ../templates/minimal/html/user.index.html:14
+#: ../templates/classic/html/user.index.html:19
+#: ../templates/minimal/html/user.index.html:19
 msgid "Username"
 msgstr "Vartotojo vardas"
 
-#: ../templates/classic/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:20
 msgid "Real name"
 msgstr "Tikras vardas"
 
-#: ../templates/classic/html/user.index.html:16
-#: ../templates/classic/html/user.item.html:70
+#: ../templates/classic/html/user.index.html:21
 #: ../templates/classic/html/user.register.html:45
 msgid "Organisation"
 msgstr "Organizacija"
 
-#: ../templates/classic/html/user.index.html:17
-#: ../templates/minimal/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:22
+#: ../templates/minimal/html/user.index.html:20
 msgid "Email address"
 msgstr "El. pašto adresas"
 
-#: ../templates/classic/html/user.index.html:18
+#: ../templates/classic/html/user.index.html:23
 msgid "Phone number"
 msgstr "Telefono numeris"
 
-#: ../templates/classic/html/user.index.html:19
+#: ../templates/classic/html/user.index.html:24
 msgid "Retire"
 msgstr "Deaktyvuoti"
 
-#: ../templates/classic/html/user.index.html:32
+#: ../templates/classic/html/user.index.html:37
 msgid "retire"
 msgstr "deaktyvuoti"
 
-#: ../templates/classic/html/user.item.html:7
-#: ../templates/minimal/html/user.item.html:7
+#: ../templates/classic/html/user.item.html:9
+#: ../templates/minimal/html/user.item.html:9
 msgid "User ${id}: ${title} - ${tracker}"
 msgstr "Vartotojas ${id}: ${title} - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:10
-#: ../templates/minimal/html/user.item.html:10
+#: ../templates/classic/html/user.item.html:12
+#: ../templates/minimal/html/user.item.html:12
 msgid "New User - ${tracker}"
 msgstr "Naujas vartotojas - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:14
-#: ../templates/minimal/html/user.item.html:14
+#: ../templates/classic/html/user.item.html:21
+#: ../templates/minimal/html/user.item.html:21
 msgid "New User"
 msgstr "Naujas vartotojas"
 
-#: ../templates/classic/html/user.item.html:16
-#: ../templates/minimal/html/user.item.html:16
+#: ../templates/classic/html/user.item.html:23
+#: ../templates/minimal/html/user.item.html:23
 msgid "New User Editing"
 msgstr "Naujo vartotojo redagavimas"
 
-#: ../templates/classic/html/user.item.html:19
-#: ../templates/minimal/html/user.item.html:19
+#: ../templates/classic/html/user.item.html:26
+#: ../templates/minimal/html/user.item.html:26
 msgid "User${id}"
 msgstr "Vartotojas${id}"
 
-#: ../templates/classic/html/user.item.html:22
-#: ../templates/minimal/html/user.item.html:22
+#: ../templates/classic/html/user.item.html:29
+#: ../templates/minimal/html/user.item.html:29
 msgid "User${id} Editing"
 msgstr "Vartotojo${id} redagavimas"
 
-#: ../templates/classic/html/user.item.html:43
-#: ../templates/classic/html/user.register.html:21
-#: ../templates/minimal/html/user.item.html:40
-#: ../templates/minimal/html/user.register.html:26
-msgid "Login Name"
-msgstr "Prisijungimo vardas"
-
-#: ../templates/classic/html/user.item.html:47
-#: ../templates/classic/html/user.register.html:25
-#: ../templates/minimal/html/user.item.html:44
-#: ../templates/minimal/html/user.register.html:30
-msgid "Login Password"
-msgstr "Prisijungimo slaptažodis"
-
-#: ../templates/classic/html/user.item.html:51
-#: ../templates/classic/html/user.register.html:29
-#: ../templates/minimal/html/user.item.html:48
-#: ../templates/minimal/html/user.register.html:34
-msgid "Confirm Password"
-msgstr "Patvirtinti slaptažodį"
-
-#: ../templates/classic/html/user.item.html:55
+#: ../templates/classic/html/user.item.html:79
 #: ../templates/classic/html/user.register.html:33
-#: ../templates/minimal/html/user.item.html:52
-#: ../templates/minimal/html/user.register.html:38
+#: ../templates/minimal/html/user.item.html:74
+#: ../templates/minimal/html/user.register.html:41
 msgid "Roles"
 msgstr "RolÄ—s"
 
-#: ../templates/classic/html/user.item.html:61
-#: ../templates/minimal/html/user.item.html:58
+#: ../templates/classic/html/user.item.html:87
+#: ../templates/minimal/html/user.item.html:82
 msgid "(to give the user more than one role, enter a comma,separated,list)"
 msgstr "(jei norite vartotojui priskirti daugiau nei vieną rolę, įveskite kableliais,atskirtą,sąrašą)"
 
-#: ../templates/classic/html/user.item.html:66
-#: ../templates/classic/html/user.register.html:41
-msgid "Phone"
-msgstr "Telefonas"
-
-#: ../templates/classic/html/user.item.html:74
-msgid "Timezone"
-msgstr "Laiko zona"
-
-#: ../templates/classic/html/user.item.html:78
+#: ../templates/classic/html/user.item.html:108
+#: ../templates/minimal/html/user.item.html:103
 msgid "(this is a numeric hour offset, the default is ${zone})"
 msgstr "(tai yra skaitinis valandų poslinkis, standartas yra ${zone})"
 
-#: ../templates/classic/html/user.item.html:83
-#: ../templates/classic/html/user.register.html:49
-#: ../templates/minimal/html/user.item.html:63
-#: ../templates/minimal/html/user.register.html:46
-msgid "E-mail address"
-msgstr "El. pašto adresas"
-
-#: ../templates/classic/html/user.item.html:91
+#: ../templates/classic/html/user.item.html:129
 #: ../templates/classic/html/user.register.html:53
-#: ../templates/minimal/html/user.item.html:71
-#: ../templates/minimal/html/user.register.html:50
+#: ../templates/minimal/html/user.item.html:124
+#: ../templates/minimal/html/user.register.html:53
 msgid "Alternate E-mail addresses<br>One address per line"
 msgstr "Alternatyvūs el. pašto adresai<br>Vienas adresas eilutėje"
 
@@ -3251,6 +3372,30 @@
 msgid "Registering with ${tracker}"
 msgstr "Registruotis į ${tracker}"
 
+#: ../templates/classic/html/user.register.html:21
+#: ../templates/minimal/html/user.register.html:29
+msgid "Login Name"
+msgstr "Prisijungimo vardas"
+
+#: ../templates/classic/html/user.register.html:25
+#: ../templates/minimal/html/user.register.html:33
+msgid "Login Password"
+msgstr "Prisijungimo slaptažodis"
+
+#: ../templates/classic/html/user.register.html:29
+#: ../templates/minimal/html/user.register.html:37
+msgid "Confirm Password"
+msgstr "Patvirtinti slaptažodį"
+
+#: ../templates/classic/html/user.register.html:41
+msgid "Phone"
+msgstr "Telefonas"
+
+#: ../templates/classic/html/user.register.html:49
+#: ../templates/minimal/html/user.register.html:49
+msgid "E-mail address"
+msgstr "El. pašto adresas"
+
 #: ../templates/classic/html/user.rego_progress.html:4
 #: ../templates/minimal/html/user.rego_progress.html:4
 msgid "Registration in progress - ${tracker}"
@@ -3266,6 +3411,58 @@
 msgid "You will shortly receive an email to confirm your registration. To complete the registration process, visit the link indicated in the email."
 msgstr "Netrukus jūs gausite el. laišką su jūsų registracijos patvirtinimu. kad pabaigtumėte registracijoc procesą, sekite nuorodą atsiųstame laiške."
 
+#: ../templates/classic/initial_data.py:5
+msgid "critical"
+msgstr "kritinis"
+
+#: ../templates/classic/initial_data.py:6
+msgid "urgent"
+msgstr "skubus"
+
+#: ../templates/classic/initial_data.py:7
+msgid "bug"
+msgstr "klaida"
+
+#: ../templates/classic/initial_data.py:8
+msgid "feature"
+msgstr "nauja savybÄ—"
+
+#: ../templates/classic/initial_data.py:9
+msgid "wish"
+msgstr "pageidavimas"
+
+#: ../templates/classic/initial_data.py:12
+msgid "unread"
+msgstr "neskaityta"
+
+#: ../templates/classic/initial_data.py:13
+msgid "deferred"
+msgstr "atidÄ—ta"
+
+#: ../templates/classic/initial_data.py:14
+msgid "chatting"
+msgstr "vyksta pokalbis"
+
+#: ../templates/classic/initial_data.py:15
+msgid "need-eg"
+msgstr "reikia pvz."
+
+#: ../templates/classic/initial_data.py:16
+msgid "in-progress"
+msgstr "eigoje"
+
+#: ../templates/classic/initial_data.py:17
+msgid "testing"
+msgstr "testuojama"
+
+#: ../templates/classic/initial_data.py:18
+msgid "done-cbb"
+msgstr "atlikta - galėtų būti geriau"
+
+#: ../templates/classic/initial_data.py:19
+msgid "resolved"
+msgstr "išspręsta"
+
 #: ../templates/minimal/html/home.html:2
 msgid "Tracker home - ${tracker}"
 msgstr "Tracker'io namų direktorija - ${tracker}"
@@ -3281,8 +3478,3 @@
 #: ../templates/minimal/html/home.html:19
 msgid "Please log in or register."
 msgstr "Prisijunkite ar užsiregistruokite."
-
-#: ../templates/minimal/html/page.html:55
-msgid "Hello,<br>${user}"
-msgstr "Sveiki,<br>${user}"
-

Modified: tracker/vendor/roundup/current/locale/roundup.pot
==============================================================================
--- tracker/vendor/roundup/current/locale/roundup.pot	(original)
+++ tracker/vendor/roundup/current/locale/roundup.pot	Sun Jan 14 15:31:23 2007
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: roundup-devel at lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-04-27 09:02+0300\n"
+"POT-Creation-Date: 2006-12-18 13:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -17,15 +17,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-# ../roundup/admin.py:85 :981 :1030 :1052
 #: ../roundup/admin.py:85 ../roundup/admin.py:981 ../roundup/admin.py:1030
-#: ../roundup/admin.py:1052
+#: ../roundup/admin.py:1052 ../roundup/admin.py:85:981 :1030:1052
 #, python-format
 msgid "no such class \"%(classname)s\""
 msgstr ""
 
-# ../roundup/admin.py:95 :99
-#: ../roundup/admin.py:95 ../roundup/admin.py:99
+#: ../roundup/admin.py:95 ../roundup/admin.py:99 ../roundup/admin.py:95:99
 #, python-format
 msgid "argument \"%(arg)s\" not propname=value"
 msgstr ""
@@ -161,28 +159,26 @@
 msgid "Sorry, no help for \"%(topic)s\""
 msgstr ""
 
-# ../roundup/admin.py:340 :396
-#: ../roundup/admin.py:340 ../roundup/admin.py:396
+#: ../roundup/admin.py:340 ../roundup/admin.py:396 ../roundup/admin.py:340:396
 msgid "Templates:"
 msgstr ""
 
-# ../roundup/admin.py:343 :407
-#: ../roundup/admin.py:343 ../roundup/admin.py:407
+#: ../roundup/admin.py:343 ../roundup/admin.py:407 ../roundup/admin.py:343:407
 msgid "Back ends:"
 msgstr ""
 
 #: ../roundup/admin.py:346
 msgid ""
-"Usage: install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
 "\n"
 "        The command will prompt for the tracker home directory\n"
 "        (if not supplied through TRACKER_HOME or the -i option).\n"
-"        The template, backend and admin password may be specified\n"
-"        on the command-line as arguments, in that order.\n"
+"        The template and backend may be specified on the command-line\n"
+"        as arguments, in that order.\n"
 "\n"
-"        The last command line argument allows to pass initial values\n"
-"        for config options.  For example, passing\n"
+"        Command line arguments following the backend allows you to\n"
+"        pass initial values for config options.  For example, passing\n"
 "        \"web_http_auth=no,rdbms_user=dinsdale\" will override defaults\n"
 "        for options http_auth in section [web] and user in section [rdbms].\n"
 "        Please be careful to not use spaces in this argument! (Enclose\n"
@@ -197,14 +193,13 @@
 "        "
 msgstr ""
 
-# ../roundup/admin.py:369 :466 :527 :606 :656 :714 :735 :763 :834 :901 :972
-# :1020 :1042 :1069 :1136 :1207
 #: ../roundup/admin.py:369 ../roundup/admin.py:466 ../roundup/admin.py:527
 #: ../roundup/admin.py:606 ../roundup/admin.py:656 ../roundup/admin.py:714
 #: ../roundup/admin.py:735 ../roundup/admin.py:763 ../roundup/admin.py:834
 #: ../roundup/admin.py:901 ../roundup/admin.py:972 ../roundup/admin.py:1020
-#: ../roundup/admin.py:1042 ../roundup/admin.py:1069 ../roundup/admin.py:1136
-#: ../roundup/admin.py:1207
+#: ../roundup/admin.py:1042 ../roundup/admin.py:1072 ../roundup/admin.py:1171
+#: ../roundup/admin.py:1243 ../roundup/admin.py:369:466 :1020:1042 :1072:1171
+#: :1243 :527:606 :656:714 :735:763 :834:901 :972
 msgid "Not enough arguments supplied"
 msgstr ""
 
@@ -316,15 +311,13 @@
 "        "
 msgstr ""
 
-# ../roundup/admin.py:560 :575
-#: ../roundup/admin.py:560 ../roundup/admin.py:575
+#: ../roundup/admin.py:560 ../roundup/admin.py:575 ../roundup/admin.py:560:575
 #, python-format
 msgid "property %s is not of type Multilink or Link so -d flag does not apply."
 msgstr ""
 
-# ../roundup/admin.py:583 :983 :1032 :1054
 #: ../roundup/admin.py:583 ../roundup/admin.py:983 ../roundup/admin.py:1032
-#: ../roundup/admin.py:1054
+#: ../roundup/admin.py:1054 ../roundup/admin.py:583:983 :1032:1054
 #, python-format
 msgid "no such %(classname)s node \"%(nodeid)s\""
 msgstr ""
@@ -360,9 +353,8 @@
 "        "
 msgstr ""
 
-# ../roundup/admin.py:701 :854 :866 :920
 #: ../roundup/admin.py:701 ../roundup/admin.py:854 ../roundup/admin.py:866
-#: ../roundup/admin.py:920
+#: ../roundup/admin.py:920 ../roundup/admin.py:701:854 :866:920
 #, python-format
 msgid "%(classname)s has no property \"%(propname)s\""
 msgstr ""
@@ -556,10 +548,13 @@
 #. grab the directory to export to
 #: ../roundup/admin.py:1058
 msgid ""
-"Usage: export [class[,class]] export_dir\n"
+"Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
+"        To exclude the files (e.g. for the msg or file class),\n"
+"        use the exporttables command.\n"
 "\n"
-"        Optionally limit the export to just the names classes.\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
 "\n"
 "        This action exports the current data from the database into\n"
 "        colon-separated-value files that are placed in the nominated\n"
@@ -567,7 +562,24 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1116
+#: ../roundup/admin.py:1136
+msgid ""
+"Usage: exporttables [[-]class[,class]] export_dir\n"
+"        Export the database to colon-separated-value files, excluding the\n"
+"        files below $TRACKER_HOME/db/files/ (which can be archived "
+"separately).\n"
+"        To include the files, use the export command.\n"
+"\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
+"\n"
+"        This action exports the current data from the database into\n"
+"        colon-separated-value files that are placed in the nominated\n"
+"        destination directory.\n"
+"        "
+msgstr ""
+
+#: ../roundup/admin.py:1151
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -590,7 +602,7 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1189
+#: ../roundup/admin.py:1225
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -612,11 +624,11 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1217
+#: ../roundup/admin.py:1253
 msgid "Invalid format"
 msgstr ""
 
-#: ../roundup/admin.py:1227
+#: ../roundup/admin.py:1263
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -626,137 +638,137 @@
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1241
+#: ../roundup/admin.py:1277
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1251
+#: ../roundup/admin.py:1287
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
 "        "
 msgstr ""
 
-#: ../roundup/admin.py:1259
+#: ../roundup/admin.py:1295
 #, python-format
 msgid "No such Role \"%(role)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1265
+#: ../roundup/admin.py:1301
 #, python-format
 msgid "New Web users get the Roles \"%(role)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1267
+#: ../roundup/admin.py:1303
 #, python-format
 msgid "New Web users get the Role \"%(role)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1270
+#: ../roundup/admin.py:1306
 #, python-format
 msgid "New Email users get the Roles \"%(role)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1272
+#: ../roundup/admin.py:1308
 #, python-format
 msgid "New Email users get the Role \"%(role)s\""
 msgstr ""
 
-#: ../roundup/admin.py:1275
+#: ../roundup/admin.py:1311
 #, python-format
 msgid "Role \"%(name)s\":"
 msgstr ""
 
-#: ../roundup/admin.py:1280
+#: ../roundup/admin.py:1316
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
 msgstr ""
 
-#: ../roundup/admin.py:1283
+#: ../roundup/admin.py:1319
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
 msgstr ""
 
-#: ../roundup/admin.py:1286
+#: ../roundup/admin.py:1322
 #, python-format
 msgid " %(description)s (%(name)s)"
 msgstr ""
 
-#: ../roundup/admin.py:1315
+#: ../roundup/admin.py:1351
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr ""
 
-#: ../roundup/admin.py:1321
+#: ../roundup/admin.py:1357
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr ""
 
-#: ../roundup/admin.py:1328
+#: ../roundup/admin.py:1364
 msgid "Enter tracker home: "
 msgstr ""
 
-# ../roundup/admin.py:1335 :1341 :1361
-#: ../roundup/admin.py:1335 ../roundup/admin.py:1341 ../roundup/admin.py:1361
+#: ../roundup/admin.py:1371 ../roundup/admin.py:1377 ../roundup/admin.py:1397
+#: ../roundup/admin.py:1371:1377 :1397
 #, python-format
 msgid "Error: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1349
+#: ../roundup/admin.py:1385
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr ""
 
-#: ../roundup/admin.py:1374
+#: ../roundup/admin.py:1410
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
 "Type \"help\" for help."
 msgstr ""
 
-#: ../roundup/admin.py:1379
+#: ../roundup/admin.py:1415
 msgid "Note: command history and editing not available"
 msgstr ""
 
-#: ../roundup/admin.py:1383
+#: ../roundup/admin.py:1419
 msgid "roundup> "
 msgstr ""
 
-#: ../roundup/admin.py:1385
+#: ../roundup/admin.py:1421
 msgid "exit..."
 msgstr ""
 
-#: ../roundup/admin.py:1395
+#: ../roundup/admin.py:1431
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr ""
 
-#: ../roundup/backends/back_anydbm.py:2001
+#: ../roundup/backends/back_anydbm.py:2000
 #, python-format
 msgid "WARNING: invalid date tuple %r"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1434
+#: ../roundup/backends/rdbms_common.py:1442
 msgid "create"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1600
+#: ../roundup/backends/rdbms_common.py:1608
 msgid "unlink"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1604
+#: ../roundup/backends/rdbms_common.py:1612
 msgid "link"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1724
+#: ../roundup/backends/rdbms_common.py:1732
 msgid "set"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1748
+#: ../roundup/backends/rdbms_common.py:1756
 msgid "retired"
 msgstr ""
 
-#: ../roundup/backends/rdbms_common.py:1778
+#: ../roundup/backends/rdbms_common.py:1786
 msgid "restored"
 msgstr ""
 
@@ -787,124 +799,124 @@
 msgid "%(classname)s %(itemid)s has been retired"
 msgstr ""
 
-# ../roundup/cgi/actions.py:174 :202
 #: ../roundup/cgi/actions.py:174 ../roundup/cgi/actions.py:202
+#: ../roundup/cgi/actions.py:174:202
 msgid "You do not have permission to edit queries"
 msgstr ""
 
-# ../roundup/cgi/actions.py:180 :209
 #: ../roundup/cgi/actions.py:180 ../roundup/cgi/actions.py:209
+#: ../roundup/cgi/actions.py:180:209
 msgid "You do not have permission to store queries"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:297
+#: ../roundup/cgi/actions.py:298
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:344
+#: ../roundup/cgi/actions.py:345
 msgid "Items edited OK"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:404
+#: ../roundup/cgi/actions.py:405
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:407
+#: ../roundup/cgi/actions.py:408
 #, python-format
 msgid "%(class)s %(id)s - nothing changed"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:419
+#: ../roundup/cgi/actions.py:420
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:451
+#: ../roundup/cgi/actions.py:452
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:463
+#: ../roundup/cgi/actions.py:464
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:487
+#: ../roundup/cgi/actions.py:488
 msgid "You do not have permission to edit user roles"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:537
+#: ../roundup/cgi/actions.py:538
 #, python-format
 msgid ""
 "Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href="
 "\"%s%s\">their changes</a> in a new window."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:565
+#: ../roundup/cgi/actions.py:566
 #, python-format
 msgid "Edit Error: %s"
 msgstr ""
 
-# ../roundup/cgi/actions.py:596 :607 :778 :797
-#: ../roundup/cgi/actions.py:596 ../roundup/cgi/actions.py:607
-#: ../roundup/cgi/actions.py:778 ../roundup/cgi/actions.py:797
+#: ../roundup/cgi/actions.py:597 ../roundup/cgi/actions.py:608
+#: ../roundup/cgi/actions.py:779 ../roundup/cgi/actions.py:798
+#: ../roundup/cgi/actions.py:597:608 :779:798
 #, python-format
 msgid "Error: %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:633
+#: ../roundup/cgi/actions.py:634
 msgid ""
 "Invalid One Time Key!\n"
 "(a Mozilla bug may cause this message to show up erroneously, please check "
 "your email)"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:675
+#: ../roundup/cgi/actions.py:676
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:685
 msgid "Unknown username"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:692
+#: ../roundup/cgi/actions.py:693
 msgid "Unknown email address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:697
+#: ../roundup/cgi/actions.py:698
 msgid "You need to specify a username or address"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:722
+#: ../roundup/cgi/actions.py:723
 #, python-format
 msgid "Email sent to %s"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:741
+#: ../roundup/cgi/actions.py:742
 msgid "You are now registered, welcome!"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:786
+#: ../roundup/cgi/actions.py:787
 msgid "It is not permitted to supply roles at registration."
 msgstr ""
 
-#: ../roundup/cgi/actions.py:878
+#: ../roundup/cgi/actions.py:879
 msgid "You are logged out"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:895
+#: ../roundup/cgi/actions.py:896
 msgid "Username required"
 msgstr ""
 
-# ../roundup/cgi/actions.py:930 :934
-#: ../roundup/cgi/actions.py:930 ../roundup/cgi/actions.py:934
+#: ../roundup/cgi/actions.py:931 ../roundup/cgi/actions.py:935
+#: ../roundup/cgi/actions.py:931:935
 msgid "Invalid login"
 msgstr ""
 
-#: ../roundup/cgi/actions.py:940
+#: ../roundup/cgi/actions.py:941
 msgid "You do not have permission to login"
 msgstr ""
 
@@ -973,8 +985,8 @@
 msgid "in <strong>%s</strong>"
 msgstr ""
 
-# ../roundup/cgi/cgitb.py:172 :178
 #: ../roundup/cgi/cgitb.py:172 ../roundup/cgi/cgitb.py:178
+#: ../roundup/cgi/cgitb.py:172:178
 msgid "<em>undefined</em>"
 msgstr ""
 
@@ -987,29 +999,29 @@
 "</body></html>"
 msgstr ""
 
-#: ../roundup/cgi/client.py:308
+#: ../roundup/cgi/client.py:326
 msgid "Form Error: "
 msgstr ""
 
-#: ../roundup/cgi/client.py:363
+#: ../roundup/cgi/client.py:381
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr ""
 
-#: ../roundup/cgi/client.py:491
+#: ../roundup/cgi/client.py:509
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr ""
 
-#: ../roundup/cgi/client.py:646
+#: ../roundup/cgi/client.py:664
 msgid "You are not allowed to view this file."
 msgstr ""
 
-#: ../roundup/cgi/client.py:738
+#: ../roundup/cgi/client.py:758
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr ""
 
-#: ../roundup/cgi/client.py:742
+#: ../roundup/cgi/client.py:762
 #, python-format
 msgid ""
 "%(starttag)sCache hits: %(cache_hits)d, misses %(cache_misses)d. Loading "
@@ -1018,289 +1030,296 @@
 
 #: ../roundup/cgi/form_parser.py:283
 #, python-format
-msgid "link \"%(key)s\" value \"%(value)s\" not a designator"
+msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:290
+#: ../roundup/cgi/form_parser.py:301
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:312
+#: ../roundup/cgi/form_parser.py:313
+#, python-format
+msgid ""
+"The form action claims to require property \"%(property)s\" which doesn't "
+"exist"
+msgstr ""
+
+#: ../roundup/cgi/form_parser.py:335
 #, python-format
 msgid ""
 "You have submitted a %(action)s action for the property \"%(property)s\" "
 "which doesn't exist"
 msgstr ""
 
-# ../roundup/cgi/form_parser.py:331 :357
-#: ../roundup/cgi/form_parser.py:331 ../roundup/cgi/form_parser.py:357
+#: ../roundup/cgi/form_parser.py:354 ../roundup/cgi/form_parser.py:380
+#: ../roundup/cgi/form_parser.py:354:380
 #, python-format
 msgid "You have submitted more than one value for the %s property"
 msgstr ""
 
-# ../roundup/cgi/form_parser.py:354 :360
-#: ../roundup/cgi/form_parser.py:354 ../roundup/cgi/form_parser.py:360
+#: ../roundup/cgi/form_parser.py:377 ../roundup/cgi/form_parser.py:383
+#: ../roundup/cgi/form_parser.py:377:383
 msgid "Password and confirmation text do not match"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:395
+#: ../roundup/cgi/form_parser.py:418
 #, python-format
 msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
 msgstr ""
 
-#: ../roundup/cgi/form_parser.py:512
+#: ../roundup/cgi/form_parser.py:551
 #, python-format
 msgid "Required %(class)s property %(property)s not supplied"
 msgid_plural "Required %(class)s properties %(property)s not supplied"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/cgi/form_parser.py:535
+#: ../roundup/cgi/form_parser.py:574
 msgid "File is empty"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:72
+#: ../roundup/cgi/templating.py:73
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:627
+#: ../roundup/cgi/templating.py:645
 msgid "(list)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:696
+#: ../roundup/cgi/templating.py:714
 msgid "Submit New Entry"
 msgstr ""
 
-# ../roundup/cgi/templating.py:710 :829 :1236 :1257 :1304 :1327 :1361 :1400
-# :1453 :1470 :1549 :1569 :1587 :1619 :1629 :1683 :1875
-#: ../roundup/cgi/templating.py:710 ../roundup/cgi/templating.py:829
-#: ../roundup/cgi/templating.py:1236 ../roundup/cgi/templating.py:1257
-#: ../roundup/cgi/templating.py:1304 ../roundup/cgi/templating.py:1327
-#: ../roundup/cgi/templating.py:1361 ../roundup/cgi/templating.py:1400
-#: ../roundup/cgi/templating.py:1453 ../roundup/cgi/templating.py:1470
-#: ../roundup/cgi/templating.py:1549 ../roundup/cgi/templating.py:1569
-#: ../roundup/cgi/templating.py:1587 ../roundup/cgi/templating.py:1619
-#: ../roundup/cgi/templating.py:1629 ../roundup/cgi/templating.py:1683
-#: ../roundup/cgi/templating.py:1875
+#: ../roundup/cgi/templating.py:728 ../roundup/cgi/templating.py:862
+#: ../roundup/cgi/templating.py:1269 ../roundup/cgi/templating.py:1298
+#: ../roundup/cgi/templating.py:1318 ../roundup/cgi/templating.py:1364
+#: ../roundup/cgi/templating.py:1387 ../roundup/cgi/templating.py:1423
+#: ../roundup/cgi/templating.py:1460 ../roundup/cgi/templating.py:1513
+#: ../roundup/cgi/templating.py:1530 ../roundup/cgi/templating.py:1614
+#: ../roundup/cgi/templating.py:1634 ../roundup/cgi/templating.py:1652
+#: ../roundup/cgi/templating.py:1684 ../roundup/cgi/templating.py:1694
+#: ../roundup/cgi/templating.py:1746 ../roundup/cgi/templating.py:1935
+#: ../roundup/cgi/templating.py:728:862 :1269:1298 :1318:1364 :1387:1423
+#: :1460:1513 :1530:1614 :1634:1652 :1684:1694 :1746:1935
 msgid "[hidden]"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:711
+#: ../roundup/cgi/templating.py:729
 msgid "New node - no history"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:811
+#: ../roundup/cgi/templating.py:844
 msgid "Submit Changes"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:893
+#: ../roundup/cgi/templating.py:926
 msgid "<em>The indicated property no longer exists</em>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:894
+#: ../roundup/cgi/templating.py:927
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:907
+#: ../roundup/cgi/templating.py:940
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr ""
 
-# ../roundup/cgi/templating.py:940 :964
-#: ../roundup/cgi/templating.py:940 ../roundup/cgi/templating.py:964
+#: ../roundup/cgi/templating.py:973 ../roundup/cgi/templating.py:997
+#: ../roundup/cgi/templating.py:973:997
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr ""
 
-# ../roundup/cgi/templating.py:1006 :1404 :1425 :1431
-#: ../roundup/cgi/templating.py:1006 ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1425 ../roundup/cgi/templating.py:1431
-msgid "No"
-msgstr ""
-
-# ../roundup/cgi/templating.py:1006 :1404 :1423 :1428
-#: ../roundup/cgi/templating.py:1006 ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1423 ../roundup/cgi/templating.py:1428
-msgid "Yes"
-msgstr ""
-
-#: ../roundup/cgi/templating.py:1017
+#: ../roundup/cgi/templating.py:1050
 #, python-format
 msgid "%s: (no value)"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1029
+#: ../roundup/cgi/templating.py:1062
 msgid ""
 "<strong><em>This event is not handled by the history display!</em></strong>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1041
+#: ../roundup/cgi/templating.py:1074
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1050
+#: ../roundup/cgi/templating.py:1083
 msgid "History"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1052
+#: ../roundup/cgi/templating.py:1085
 msgid "<th>Date</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1053
+#: ../roundup/cgi/templating.py:1086
 msgid "<th>User</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1054
+#: ../roundup/cgi/templating.py:1087
 msgid "<th>Action</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1055
+#: ../roundup/cgi/templating.py:1088
 msgid "<th>Args</th>"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1097
+#: ../roundup/cgi/templating.py:1130
 #, python-format
 msgid "Copy of %(class)s %(id)s"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1331
+#: ../roundup/cgi/templating.py:1391
 msgid "*encrypted*"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1514
+#: ../roundup/cgi/templating.py:1464 ../roundup/cgi/templating.py:1485
+#: ../roundup/cgi/templating.py:1491 ../roundup/cgi/templating.py:1039:1464
+#: :1485:1491
+msgid "No"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1464 ../roundup/cgi/templating.py:1483
+#: ../roundup/cgi/templating.py:1488 ../roundup/cgi/templating.py:1039:1464
+#: :1483:1488
+msgid "Yes"
+msgstr ""
+
+#: ../roundup/cgi/templating.py:1577
 msgid ""
 "default value for DateHTMLProperty must be either DateHTMLProperty or string "
 "date representation."
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1674
+#: ../roundup/cgi/templating.py:1737
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:1750
+#: ../roundup/cgi/templating.py:1810
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr ""
 
-#: ../roundup/date.py:186
+#: ../roundup/date.py:301
 msgid ""
 "Not a date spec: \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-"
 "mm-dd.HH:MM:SS.SSS\""
 msgstr ""
 
-#: ../roundup/date.py:240
+#: ../roundup/date.py:363
 #, python-format
 msgid ""
 "%r not a date / time spec \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" "
 "or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr ""
 
-#: ../roundup/date.py:538
+#: ../roundup/date.py:662
 msgid ""
 "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
 msgstr ""
 
-#: ../roundup/date.py:557
+#: ../roundup/date.py:681
 msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
 msgstr ""
 
-#: ../roundup/date.py:694
+#: ../roundup/date.py:818
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:698
+#: ../roundup/date.py:822
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:702
+#: ../roundup/date.py:826
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:706
+#: ../roundup/date.py:830
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:710
+#: ../roundup/date.py:834
 msgid "tomorrow"
 msgstr ""
 
-#: ../roundup/date.py:712
+#: ../roundup/date.py:836
 msgid "yesterday"
 msgstr ""
 
-#: ../roundup/date.py:715
+#: ../roundup/date.py:839
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:719
+#: ../roundup/date.py:843
 msgid "an hour"
 msgstr ""
 
-#: ../roundup/date.py:721
+#: ../roundup/date.py:845
 msgid "1 1/2 hours"
 msgstr ""
 
-#: ../roundup/date.py:723
+#: ../roundup/date.py:847
 #, python-format
 msgid "1 %(number)s/4 hours"
 msgid_plural "1 %(number)s/4 hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:727
+#: ../roundup/date.py:851
 msgid "in a moment"
 msgstr ""
 
-#: ../roundup/date.py:729
+#: ../roundup/date.py:853
 msgid "just now"
 msgstr ""
 
-#: ../roundup/date.py:732
+#: ../roundup/date.py:856
 msgid "1 minute"
 msgstr ""
 
-#: ../roundup/date.py:735
+#: ../roundup/date.py:859
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:738
+#: ../roundup/date.py:862
 msgid "1/2 an hour"
 msgstr ""
 
-#: ../roundup/date.py:740
+#: ../roundup/date.py:864
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../roundup/date.py:744
+#: ../roundup/date.py:868
 #, python-format
 msgid "%s ago"
 msgstr ""
 
-#: ../roundup/date.py:746
+#: ../roundup/date.py:870
 #, python-format
 msgid "in %s"
 msgstr ""
@@ -1312,13 +1331,13 @@
 "\tcontains old-style template - ignored"
 msgstr ""
 
-#: ../roundup/mailgw.py:586
+#: ../roundup/mailgw.py:583
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:674
+#: ../roundup/mailgw.py:673
 #, python-format
 msgid ""
 "\n"
@@ -1335,7 +1354,7 @@
 "Subject was: '%(subject)s'\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:705
+#: ../roundup/mailgw.py:704
 #, python-format
 msgid ""
 "\n"
@@ -1347,7 +1366,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:733
+#: ../roundup/mailgw.py:739
 #, python-format
 msgid ""
 "\n"
@@ -1358,7 +1377,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:766
+#: ../roundup/mailgw.py:772
 #, python-format
 msgid ""
 "\n"
@@ -1368,7 +1387,7 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:794
+#: ../roundup/mailgw.py:800
 #, python-format
 msgid ""
 "\n"
@@ -1377,7 +1396,7 @@
 "  %(current_class)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:817
+#: ../roundup/mailgw.py:823
 #, python-format
 msgid ""
 "\n"
@@ -1386,7 +1405,7 @@
 "  %(errors)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:847
+#: ../roundup/mailgw.py:853
 #, python-format
 msgid ""
 "\n"
@@ -1395,21 +1414,21 @@
 "Unknown address: %(from_address)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:855
+#: ../roundup/mailgw.py:861
 msgid "You are not permitted to access this tracker."
 msgstr ""
 
-#: ../roundup/mailgw.py:862
+#: ../roundup/mailgw.py:868
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:866
+#: ../roundup/mailgw.py:872
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:913
+#: ../roundup/mailgw.py:919
 #, python-format
 msgid ""
 "\n"
@@ -1419,27 +1438,27 @@
 "Subject was: \"%(subject)s\"\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:942
+#: ../roundup/mailgw.py:947
 msgid ""
 "\n"
 "Roundup requires the submission to be plain text. The message parser could\n"
 "not find a text/plain part to use.\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:964
+#: ../roundup/mailgw.py:969
 msgid "You are not permitted to create files."
 msgstr ""
 
-#: ../roundup/mailgw.py:978
+#: ../roundup/mailgw.py:983
 #, python-format
 msgid "You are not permitted to add files to %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:996
+#: ../roundup/mailgw.py:1001
 msgid "You are not permitted to create messages."
 msgstr ""
 
-#: ../roundup/mailgw.py:1004
+#: ../roundup/mailgw.py:1009
 #, python-format
 msgid ""
 "\n"
@@ -1447,17 +1466,17 @@
 "%(error)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1012
+#: ../roundup/mailgw.py:1017
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1039
+#: ../roundup/mailgw.py:1044
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr ""
 
-#: ../roundup/mailgw.py:1047
+#: ../roundup/mailgw.py:1052
 #, python-format
 msgid ""
 "\n"
@@ -1465,78 +1484,88 @@
 "   %(message)s\n"
 msgstr ""
 
-#: ../roundup/mailgw.py:1069
+#: ../roundup/mailgw.py:1074
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr ""
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "files"
 msgstr ""
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "messages"
 msgstr ""
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "nosy"
 msgstr ""
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "superseder"
 msgstr ""
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "title"
 msgstr ""
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "assignedto"
 msgstr ""
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "priority"
 msgstr ""
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "status"
 msgstr ""
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "topic"
 msgstr ""
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "activity"
 msgstr ""
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "actor"
 msgstr ""
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creation"
 msgstr ""
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creator"
 msgstr ""
 
-#: ../roundup/roundupdb.py:304
+#: ../roundup/roundupdb.py:308
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:307
+#: ../roundup/roundupdb.py:311
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr ""
 
-#: ../roundup/roundupdb.py:310
+#: ../roundup/roundupdb.py:314
 msgid "System message:"
 msgstr ""
 
+#: ../roundup/roundupdb.py:597
+#, python-format
+msgid ""
+"\n"
+"Now:\n"
+"%(new)s\n"
+"Was:\n"
+"%(old)s"
+msgstr ""
+
 #: ../roundup/scripts/roundup_demo.py:32
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
@@ -1555,8 +1584,8 @@
 #: ../roundup/scripts/roundup_mailgw.py:36
 #, python-format
 msgid ""
-"Usage: %(program)s [-v] [-c] [[-C class] -S field=value]* <instance home> "
-"[method]\n"
+"Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* <instance "
+"home> [method]\n"
 "\n"
 "Options:\n"
 " -v: print version and exit\n"
@@ -1601,6 +1630,10 @@
 " are both valid. The username and/or password will be prompted for if\n"
 " not supplied on the command-line.\n"
 "\n"
+"POPS:\n"
+" Connect to a POP server over ssl. This requires python 2.4 or later.\n"
+" This supports the same notation as POP.\n"
+"\n"
 "APOP:\n"
 " Same as POP, but using Authenticated POP:\n"
 "    apop username:password at server\n"
@@ -1620,19 +1653,23 @@
 "\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:147
+#: ../roundup/scripts/roundup_mailgw.py:151
 msgid "Error: not enough source specification information"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:163
-msgid "Error: pop specification not valid"
+#: ../roundup/scripts/roundup_mailgw.py:167
+msgid "Error: a later version of python is required"
 msgstr ""
 
 #: ../roundup/scripts/roundup_mailgw.py:170
+msgid "Error: pop specification not valid"
+msgstr ""
+
+#: ../roundup/scripts/roundup_mailgw.py:177
 msgid "Error: apop specification not valid"
 msgstr ""
 
-#: ../roundup/scripts/roundup_mailgw.py:184
+#: ../roundup/scripts/roundup_mailgw.py:189
 msgid ""
 "Error: The source must be either \"mailbox\", \"pop\", \"apop\", \"imap\" or "
 "\"imaps\""
@@ -1644,52 +1681,52 @@
 "<body><h1>Roundup trackers index</h1><ol>\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:287
+#: ../roundup/scripts/roundup_server.py:293
 #, python-format
 msgid "Error: %s: %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:297
+#: ../roundup/scripts/roundup_server.py:303
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:303
+#: ../roundup/scripts/roundup_server.py:309
 msgid "Can't change groups - no grp module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:312
+#: ../roundup/scripts/roundup_server.py:318
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:323
+#: ../roundup/scripts/roundup_server.py:329
 msgid "Can't run as root!"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:326
+#: ../roundup/scripts/roundup_server.py:332
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:331
+#: ../roundup/scripts/roundup_server.py:338
 msgid "Can't change users - no pwd module"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:340
+#: ../roundup/scripts/roundup_server.py:347
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:471
+#: ../roundup/scripts/roundup_server.py:481
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:494
+#: ../roundup/scripts/roundup_server.py:504
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:562
+#: ../roundup/scripts/roundup_server.py:572
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -1699,7 +1736,7 @@
 "               specifics."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:569
+#: ../roundup/scripts/roundup_server.py:579
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -1708,7 +1745,7 @@
 "               specified if -d is used."
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:576
+#: ../roundup/scripts/roundup_server.py:586
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -1763,20 +1800,20 @@
 "   any url-unsafe characters like spaces, as these confuse IE.\n"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:723
+#: ../roundup/scripts/roundup_server.py:741
 msgid "Instances must be name=home"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:737
+#: ../roundup/scripts/roundup_server.py:755
 #, python-format
 msgid "Configuration saved to %s"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:755
+#: ../roundup/scripts/roundup_server.py:773
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr ""
 
-#: ../roundup/scripts/roundup_server.py:767
+#: ../roundup/scripts/roundup_server.py:788
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr ""
@@ -1800,35 +1837,72 @@
 "  the node and review your edits.\n"
 msgstr ""
 
-#: ../templates/classic/html/_generic.help.html:9
-#: ../templates/minimal/html/_generic.help.html:9
-msgid "${property} help - ${tracker}"
+#: ../templates/classic/html/_generic.help-empty.html:6
+msgid "Please specify your search parameters!"
+msgstr ""
+
+#: ../templates/classic/html/_generic.help-list.html:20
+#: ../templates/classic/html/_generic.index.html:14
+#: ../templates/classic/html/_generic.item.html:12
+#: ../templates/classic/html/file.item.html:9
+#: ../templates/classic/html/issue.index.html:16
+#: ../templates/classic/html/issue.item.html:28
+#: ../templates/classic/html/msg.item.html:26
+#: ../templates/classic/html/user.index.html:9
+#: ../templates/classic/html/user.item.html:35
+#: ../templates/minimal/html/_generic.index.html:14
+#: ../templates/minimal/html/_generic.item.html:12
+#: ../templates/minimal/html/user.index.html:9
+#: ../templates/minimal/html/user.item.html:35
+#: ../templates/minimal/html/user.register.html:14
+msgid "You are not allowed to view this page."
 msgstr ""
 
+#: ../templates/classic/html/_generic.help-list.html:34
+msgid "1..25 out of 50"
+msgstr ""
+
+#: ../templates/classic/html/_generic.help-search.html:9
+msgid ""
+"Generic template ${template} or version for class ${classname} is not yet "
+"implemented"
+msgstr ""
+
+#: ../templates/classic/html/_generic.help-submit.html:57
 #: ../templates/classic/html/_generic.help.html:31
 #: ../templates/minimal/html/_generic.help.html:31
 msgid " Cancel "
 msgstr ""
 
+#: ../templates/classic/html/_generic.help-submit.html:63
 #: ../templates/classic/html/_generic.help.html:34
 #: ../templates/minimal/html/_generic.help.html:34
 msgid " Apply "
 msgstr ""
 
+#: ../templates/classic/html/_generic.help.html:9
+#: ../templates/classic/html/user.help.html:13
+#: ../templates/minimal/html/_generic.help.html:9
+msgid "${property} help - ${tracker}"
+msgstr ""
+
 #: ../templates/classic/html/_generic.help.html:41
-#: ../templates/classic/html/issue.index.html:73
+#: ../templates/classic/html/help.html:21
+#: ../templates/classic/html/issue.index.html:80
 #: ../templates/minimal/html/_generic.help.html:41
 msgid "&lt;&lt; previous"
 msgstr ""
 
 #: ../templates/classic/html/_generic.help.html:53
-#: ../templates/classic/html/issue.index.html:81
+#: ../templates/classic/html/help.html:28
+#: ../templates/classic/html/issue.index.html:88
 #: ../templates/minimal/html/_generic.help.html:53
 msgid "${start}..${end} out of ${total}"
 msgstr ""
 
 #: ../templates/classic/html/_generic.help.html:57
-#: ../templates/classic/html/issue.index.html:84
+#: ../templates/classic/html/help.html:32
+#: ../templates/classic/html/issue.index.html:91
 #: ../templates/minimal/html/_generic.help.html:57
 msgid "next &gt;&gt;"
 msgstr ""
@@ -1847,24 +1921,23 @@
 msgid "${class} editing"
 msgstr ""
 
-#: ../templates/classic/html/_generic.index.html:14
-#: ../templates/classic/html/_generic.item.html:12
-#: ../templates/classic/html/file.item.html:9
-#: ../templates/classic/html/issue.index.html:16
-#: ../templates/classic/html/issue.item.html:28
-#: ../templates/classic/html/msg.item.html:26
-#: ../templates/classic/html/user.index.html:9
-#: ../templates/classic/html/user.item.html:28
-#: ../templates/minimal/html/_generic.index.html:14
-#: ../templates/minimal/html/_generic.item.html:12
-#: ../templates/minimal/html/user.index.html:9
-#: ../templates/minimal/html/user.item.html:28
-#: ../templates/minimal/html/user.register.html:14
-msgid "You are not allowed to view this page."
+#: ../templates/classic/html/_generic.index.html:19
+#: ../templates/classic/html/_generic.item.html:16
+#: ../templates/classic/html/file.item.html:13
+#: ../templates/classic/html/issue.index.html:20
+#: ../templates/classic/html/issue.item.html:32
+#: ../templates/classic/html/msg.item.html:30
+#: ../templates/classic/html/user.index.html:13
+#: ../templates/classic/html/user.item.html:39
+#: ../templates/minimal/html/_generic.index.html:19
+#: ../templates/minimal/html/_generic.item.html:17
+#: ../templates/minimal/html/user.index.html:13
+#: ../templates/minimal/html/user.register.html:17
+msgid "Please login with your username and password."
 msgstr ""
 
-#: ../templates/classic/html/_generic.index.html:22
-#: ../templates/minimal/html/_generic.index.html:22
+#: ../templates/classic/html/_generic.index.html:28
+#: ../templates/minimal/html/_generic.index.html:28
 msgid ""
 "<p class=\"form-help\"> You may edit the contents of the ${classname} class "
 "using this form. Commas, newlines and double quotes (\") must be handled "
@@ -1876,8 +1949,8 @@
 "appending them to the table - put an X in the id column. </p>"
 msgstr ""
 
-#: ../templates/classic/html/_generic.index.html:44
-#: ../templates/minimal/html/_generic.index.html:44
+#: ../templates/classic/html/_generic.index.html:50
+#: ../templates/minimal/html/_generic.index.html:50
 msgid "Edit Items"
 msgstr ""
 
@@ -1894,7 +1967,7 @@
 msgstr ""
 
 #: ../templates/classic/html/file.index.html:11
-#: ../templates/classic/html/file.item.html:22
+#: ../templates/classic/html/file.item.html:27
 msgid "Content Type"
 msgstr ""
 
@@ -1903,7 +1976,7 @@
 msgstr ""
 
 #: ../templates/classic/html/file.index.html:13
-#: ../templates/classic/html/msg.item.html:43
+#: ../templates/classic/html/msg.item.html:48
 msgid "Date"
 msgstr ""
 
@@ -1915,13 +1988,12 @@
 msgid "File display"
 msgstr ""
 
-#: ../templates/classic/html/file.item.html:18
-#: ../templates/classic/html/user.item.html:39
+#: ../templates/classic/html/file.item.html:23
 #: ../templates/classic/html/user.register.html:17
 msgid "Name"
 msgstr ""
 
-#: ../templates/classic/html/file.item.html:40
+#: ../templates/classic/html/file.item.html:45
 msgid "download"
 msgstr ""
 
@@ -1935,80 +2007,77 @@
 msgid "List of classes"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:7
-msgid "List of issues - ${tracker}"
-msgstr ""
-
-#: ../templates/classic/html/issue.index.html:11
+#: ../templates/classic/html/issue.index.html:4
+#: ../templates/classic/html/issue.index.html:10
 msgid "List of issues"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:22
-#: ../templates/classic/html/issue.item.html:44
+#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.item.html:49
 msgid "Priority"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:23
+#: ../templates/classic/html/issue.index.html:28
 msgid "ID"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:24
+#: ../templates/classic/html/issue.index.html:29
 msgid "Creation"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:25
+#: ../templates/classic/html/issue.index.html:30
 msgid "Activity"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:26
+#: ../templates/classic/html/issue.index.html:31
 msgid "Actor"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.index.html:32
 msgid "Topic"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:28
-#: ../templates/classic/html/issue.item.html:39
+#: ../templates/classic/html/issue.index.html:33
+#: ../templates/classic/html/issue.item.html:44
 msgid "Title"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:29
-#: ../templates/classic/html/issue.item.html:46
+#: ../templates/classic/html/issue.index.html:34
+#: ../templates/classic/html/issue.item.html:51
 msgid "Status"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:30
+#: ../templates/classic/html/issue.index.html:35
 msgid "Creator"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:31
+#: ../templates/classic/html/issue.index.html:36
 msgid "Assigned&nbsp;To"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:97
+#: ../templates/classic/html/issue.index.html:104
 msgid "Download as CSV"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:105
+#: ../templates/classic/html/issue.index.html:114
 msgid "Sort on:"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:108
-#: ../templates/classic/html/issue.index.html:125
+#: ../templates/classic/html/issue.index.html:118
+#: ../templates/classic/html/issue.index.html:139
 msgid "- nothing -"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:116
-#: ../templates/classic/html/issue.index.html:133
+#: ../templates/classic/html/issue.index.html:126
+#: ../templates/classic/html/issue.index.html:147
 msgid "Descending:"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:122
+#: ../templates/classic/html/issue.index.html:135
 msgid "Group on:"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:139
+#: ../templates/classic/html/issue.index.html:154
 msgid "Redisplay"
 msgstr ""
 
@@ -2036,101 +2105,101 @@
 msgid "Issue${id} Editing"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:51
+#: ../templates/classic/html/issue.item.html:56
 msgid "Superseder"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:56
-msgid "View: ${link}"
+#: ../templates/classic/html/issue.item.html:61
+msgid "View:"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:60
+#: ../templates/classic/html/issue.item.html:67
 msgid "Nosy List"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:69
+#: ../templates/classic/html/issue.item.html:76
 msgid "Assigned To"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:71
+#: ../templates/classic/html/issue.item.html:78
 msgid "Topics"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:79
+#: ../templates/classic/html/issue.item.html:86
 msgid "Change Note"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:87
+#: ../templates/classic/html/issue.item.html:94
 msgid "File"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:99
+#: ../templates/classic/html/issue.item.html:106
 msgid "Make a copy"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:107
-#: ../templates/classic/html/user.item.html:106
+#: ../templates/classic/html/issue.item.html:114
+#: ../templates/classic/html/user.item.html:152
 #: ../templates/classic/html/user.register.html:69
-#: ../templates/minimal/html/user.item.html:86
+#: ../templates/minimal/html/user.item.html:147
 msgid ""
 "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required"
 "\">highlighted</th> <td>&nbsp;fields are required.</td> </tr> </table>"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:121
+#: ../templates/classic/html/issue.item.html:128
 msgid ""
 "Created on <b>${creation}</b> by <b>${creator}</b>, last changed <b>"
 "${activity}</b> by <b>${actor}</b>."
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:125
-#: ../templates/classic/html/msg.item.html:56
+#: ../templates/classic/html/issue.item.html:132
+#: ../templates/classic/html/msg.item.html:61
 msgid "Files"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:127
-#: ../templates/classic/html/msg.item.html:58
+#: ../templates/classic/html/issue.item.html:134
+#: ../templates/classic/html/msg.item.html:63
 msgid "File name"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:128
-#: ../templates/classic/html/msg.item.html:59
+#: ../templates/classic/html/issue.item.html:135
+#: ../templates/classic/html/msg.item.html:64
 msgid "Uploaded"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:129
+#: ../templates/classic/html/issue.item.html:136
 msgid "Type"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:130
+#: ../templates/classic/html/issue.item.html:137
 #: ../templates/classic/html/query.edit.html:30
 msgid "Edit"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:131
+#: ../templates/classic/html/issue.item.html:138
 msgid "Remove"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:151
-#: ../templates/classic/html/issue.item.html:172
+#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:179
 #: ../templates/classic/html/query.edit.html:50
 msgid "remove"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:165
 #: ../templates/classic/html/msg.index.html:9
 msgid "Messages"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:162
+#: ../templates/classic/html/issue.item.html:169
 msgid "msg${id} (view)"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:163
+#: ../templates/classic/html/issue.item.html:170
 msgid "Author: ${author}"
 msgstr ""
 
-#: ../templates/classic/html/issue.item.html:165
+#: ../templates/classic/html/issue.item.html:172
 msgid "Date: ${date}"
 msgstr ""
 
@@ -2142,127 +2211,129 @@
 msgid "Issue searching"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:25
+#: ../templates/classic/html/issue.search.html:31
 msgid "Filter on"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:26
+#: ../templates/classic/html/issue.search.html:32
 msgid "Display"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:27
+#: ../templates/classic/html/issue.search.html:33
 msgid "Sort on"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:28
+#: ../templates/classic/html/issue.search.html:34
 msgid "Group on"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:32
+#: ../templates/classic/html/issue.search.html:38
 msgid "All text*:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:40
+#: ../templates/classic/html/issue.search.html:46
 msgid "Title:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:50
+#: ../templates/classic/html/issue.search.html:56
 msgid "Topic:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:58
+#: ../templates/classic/html/issue.search.html:64
 msgid "ID:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:66
+#: ../templates/classic/html/issue.search.html:72
 msgid "Creation Date:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:77
+#: ../templates/classic/html/issue.search.html:83
 msgid "Creator:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:79
+#: ../templates/classic/html/issue.search.html:85
 msgid "created by me"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:88
+#: ../templates/classic/html/issue.search.html:94
 msgid "Activity:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:99
+#: ../templates/classic/html/issue.search.html:105
 msgid "Actor:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:101
+#: ../templates/classic/html/issue.search.html:107
 msgid "done by me"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:112
+#: ../templates/classic/html/issue.search.html:118
 msgid "Priority:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:114
-#: ../templates/classic/html/issue.search.html:130
+#: ../templates/classic/html/issue.search.html:120
+#: ../templates/classic/html/issue.search.html:136
 msgid "not selected"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:125
+#: ../templates/classic/html/issue.search.html:131
 msgid "Status:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:128
+#: ../templates/classic/html/issue.search.html:134
 msgid "not resolved"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:143
+#: ../templates/classic/html/issue.search.html:149
 msgid "Assigned to:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:146
+#: ../templates/classic/html/issue.search.html:152
 msgid "assigned to me"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:148
+#: ../templates/classic/html/issue.search.html:154
 msgid "unassigned"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:158
+#: ../templates/classic/html/issue.search.html:164
 msgid "No Sort or group:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:166
+#: ../templates/classic/html/issue.search.html:172
 msgid "Pagesize:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:172
+#: ../templates/classic/html/issue.search.html:178
 msgid "Start With:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:178
+#: ../templates/classic/html/issue.search.html:184
 msgid "Sort Descending:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:185
+#: ../templates/classic/html/issue.search.html:191
 msgid "Group Descending:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:192
+#: ../templates/classic/html/issue.search.html:198
 msgid "Query name**:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:204
-#: ../templates/classic/html/page.html:31
-#: ../templates/classic/html/page.html:60
-#: ../templates/minimal/html/page.html:31
+#: ../templates/classic/html/issue.search.html:210
+#: ../templates/classic/html/page.html:43
+#: ../templates/classic/html/page.html:92
+#: ../templates/classic/html/user.help-search.html:69
+#: ../templates/minimal/html/page.html:43
+#: ../templates/minimal/html/page.html:91
 msgid "Search"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:209
+#: ../templates/classic/html/issue.search.html:215
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:212
+#: ../templates/classic/html/issue.search.html:218
 msgid ""
 "**: If you supply a name, the query will be saved off and available as a link "
 "in the sidebar"
@@ -2326,133 +2397,158 @@
 msgid "Message${id} Editing"
 msgstr ""
 
-#: ../templates/classic/html/msg.item.html:33
+#: ../templates/classic/html/msg.item.html:38
 msgid "Author"
 msgstr ""
 
-#: ../templates/classic/html/msg.item.html:38
+#: ../templates/classic/html/msg.item.html:43
 msgid "Recipients"
 msgstr ""
 
-#: ../templates/classic/html/msg.item.html:49
+#: ../templates/classic/html/msg.item.html:54
 msgid "Content"
 msgstr ""
 
-#: ../templates/classic/html/page.html:41
+#: ../templates/classic/html/page.html:54
+#: ../templates/minimal/html/page.html:53
 msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
 msgstr ""
 
-#: ../templates/classic/html/page.html:52
+#: ../templates/classic/html/page.html:65
+#: ../templates/minimal/html/page.html:64
 msgid "Issues"
 msgstr ""
 
-#: ../templates/classic/html/page.html:54
-#: ../templates/classic/html/page.html:74
+#: ../templates/classic/html/page.html:67
+#: ../templates/classic/html/page.html:105
+#: ../templates/minimal/html/page.html:66
+#: ../templates/minimal/html/page.html:104
 msgid "Create New"
 msgstr ""
 
-#: ../templates/classic/html/page.html:56
+#: ../templates/classic/html/page.html:69
+#: ../templates/minimal/html/page.html:68
 msgid "Show Unassigned"
 msgstr ""
 
-#: ../templates/classic/html/page.html:58
+#: ../templates/classic/html/page.html:81
+#: ../templates/minimal/html/page.html:80
 msgid "Show All"
 msgstr ""
 
-#: ../templates/classic/html/page.html:61
+#: ../templates/classic/html/page.html:93
+#: ../templates/minimal/html/page.html:92
 msgid "Show issue:"
 msgstr ""
 
-#: ../templates/classic/html/page.html:72
+#: ../templates/classic/html/page.html:103
+#: ../templates/minimal/html/page.html:102
 msgid "Keywords"
 msgstr ""
 
-#: ../templates/classic/html/page.html:78
+#: ../templates/classic/html/page.html:108
+#: ../templates/minimal/html/page.html:107
 msgid "Edit Existing"
 msgstr ""
 
-#: ../templates/classic/html/page.html:84
-#: ../templates/minimal/html/page.html:65
+#: ../templates/classic/html/page.html:114
+#: ../templates/minimal/html/page.html:113
 msgid "Administration"
 msgstr ""
 
-#: ../templates/classic/html/page.html:86
-#: ../templates/minimal/html/page.html:66
+#: ../templates/classic/html/page.html:116
+#: ../templates/minimal/html/page.html:115
 msgid "Class List"
 msgstr ""
 
-#: ../templates/classic/html/page.html:90
-#: ../templates/minimal/html/page.html:68
+#: ../templates/classic/html/page.html:120
+#: ../templates/minimal/html/page.html:119
 msgid "User List"
 msgstr ""
 
-#: ../templates/classic/html/page.html:92
-#: ../templates/minimal/html/page.html:71
+#: ../templates/classic/html/page.html:122
+#: ../templates/minimal/html/page.html:121
 msgid "Add User"
 msgstr ""
 
-#: ../templates/classic/html/page.html:99
-#: ../templates/classic/html/page.html:105
-#: ../templates/minimal/html/page.html:46
+#: ../templates/classic/html/page.html:129
+#: ../templates/classic/html/page.html:135
+#: ../templates/minimal/html/page.html:128
+#: ../templates/minimal/html/page.html:134
 msgid "Login"
 msgstr ""
 
-#: ../templates/classic/html/page.html:104
-#: ../templates/minimal/html/page.html:45
+#: ../templates/classic/html/page.html:134
+#: ../templates/minimal/html/page.html:133
 msgid "Remember me?"
 msgstr ""
 
-#: ../templates/classic/html/page.html:108
+#: ../templates/classic/html/page.html:138
 #: ../templates/classic/html/user.register.html:63
-#: ../templates/minimal/html/page.html:50
-#: ../templates/minimal/html/user.register.html:58
+#: ../templates/minimal/html/page.html:137
+#: ../templates/minimal/html/user.register.html:61
 msgid "Register"
 msgstr ""
 
-#: ../templates/classic/html/page.html:111
+#: ../templates/classic/html/page.html:141
+#: ../templates/minimal/html/page.html:140
 msgid "Lost&nbsp;your&nbsp;login?"
 msgstr ""
 
-#: ../templates/classic/html/page.html:116
+#: ../templates/classic/html/page.html:146
+#: ../templates/minimal/html/page.html:145
 msgid "Hello, ${user}"
 msgstr ""
 
-#: ../templates/classic/html/page.html:118
+#: ../templates/classic/html/page.html:148
 msgid "Your Issues"
 msgstr ""
 
-#: ../templates/classic/html/page.html:119
-#: ../templates/minimal/html/page.html:57
+#: ../templates/classic/html/page.html:160
+#: ../templates/minimal/html/page.html:147
 msgid "Your Details"
 msgstr ""
 
-#: ../templates/classic/html/page.html:121
-#: ../templates/minimal/html/page.html:59
+#: ../templates/classic/html/page.html:162
+#: ../templates/minimal/html/page.html:149
 msgid "Logout"
 msgstr ""
 
-#: ../templates/classic/html/page.html:125
+#: ../templates/classic/html/page.html:166
+#: ../templates/minimal/html/page.html:153
 msgid "Help"
 msgstr ""
 
-#: ../templates/classic/html/page.html:126
+#: ../templates/classic/html/page.html:167
+#: ../templates/minimal/html/page.html:154
 msgid "Roundup docs"
 msgstr ""
 
-#: ../templates/classic/html/page.html:136
-#: ../templates/minimal/html/page.html:81
+#: ../templates/classic/html/page.html:177
+#: ../templates/minimal/html/page.html:164
 msgid "clear this message"
 msgstr ""
 
-#: ../templates/classic/html/page.html:181
+#: ../templates/classic/html/page.html:241
+#: ../templates/classic/html/page.html:256
+#: ../templates/classic/html/page.html:270
+#: ../templates/minimal/html/page.html:228
+#: ../templates/minimal/html/page.html:243
+#: ../templates/minimal/html/page.html:257
 msgid "don't care"
 msgstr ""
 
-#: ../templates/classic/html/page.html:183
+#: ../templates/classic/html/page.html:243
+#: ../templates/classic/html/page.html:258
+#: ../templates/classic/html/page.html:271
+#: ../templates/minimal/html/page.html:230
+#: ../templates/minimal/html/page.html:245
+#: ../templates/minimal/html/page.html:258
 msgid "------------"
 msgstr ""
 
-#: ../templates/classic/html/page.html:210
+#: ../templates/classic/html/page.html:299
+#: ../templates/minimal/html/page.html:286
 msgid "no value"
 msgstr ""
 
@@ -2558,6 +2654,16 @@
 "within it to complete the reset process."
 msgstr ""
 
+#: ../templates/classic/html/user.help-search.html:73
+msgid "Pagesize"
+msgstr ""
+
+#: ../templates/classic/html/user.help.html:43
+msgid ""
+"Your browser is not capable of using frames; you should be redirected "
+"immediately, or visit ${link}."
+msgstr ""
+
 #: ../templates/classic/html/user.index.html:3
 #: ../templates/minimal/html/user.index.html:3
 msgid "User listing - ${tracker}"
@@ -2568,125 +2674,88 @@
 msgid "User listing"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:14
-#: ../templates/minimal/html/user.index.html:14
+#: ../templates/classic/html/user.index.html:19
+#: ../templates/minimal/html/user.index.html:19
 msgid "Username"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:20
 msgid "Real name"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:16
-#: ../templates/classic/html/user.item.html:70
+#: ../templates/classic/html/user.index.html:21
 #: ../templates/classic/html/user.register.html:45
 msgid "Organisation"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:17
-#: ../templates/minimal/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:22
+#: ../templates/minimal/html/user.index.html:20
 msgid "Email address"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:18
+#: ../templates/classic/html/user.index.html:23
 msgid "Phone number"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:19
+#: ../templates/classic/html/user.index.html:24
 msgid "Retire"
 msgstr ""
 
-#: ../templates/classic/html/user.index.html:32
+#: ../templates/classic/html/user.index.html:37
 msgid "retire"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:7
-#: ../templates/minimal/html/user.item.html:7
+#: ../templates/classic/html/user.item.html:9
+#: ../templates/minimal/html/user.item.html:9
 msgid "User ${id}: ${title} - ${tracker}"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:10
-#: ../templates/minimal/html/user.item.html:10
+#: ../templates/classic/html/user.item.html:12
+#: ../templates/minimal/html/user.item.html:12
 msgid "New User - ${tracker}"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:14
-#: ../templates/minimal/html/user.item.html:14
+#: ../templates/classic/html/user.item.html:21
+#: ../templates/minimal/html/user.item.html:21
 msgid "New User"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:16
-#: ../templates/minimal/html/user.item.html:16
+#: ../templates/classic/html/user.item.html:23
+#: ../templates/minimal/html/user.item.html:23
 msgid "New User Editing"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:19
-#: ../templates/minimal/html/user.item.html:19
+#: ../templates/classic/html/user.item.html:26
+#: ../templates/minimal/html/user.item.html:26
 msgid "User${id}"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:22
-#: ../templates/minimal/html/user.item.html:22
+#: ../templates/classic/html/user.item.html:29
+#: ../templates/minimal/html/user.item.html:29
 msgid "User${id} Editing"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:43
-#: ../templates/classic/html/user.register.html:21
-#: ../templates/minimal/html/user.item.html:40
-#: ../templates/minimal/html/user.register.html:26
-msgid "Login Name"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:47
-#: ../templates/classic/html/user.register.html:25
-#: ../templates/minimal/html/user.item.html:44
-#: ../templates/minimal/html/user.register.html:30
-msgid "Login Password"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:51
-#: ../templates/classic/html/user.register.html:29
-#: ../templates/minimal/html/user.item.html:48
-#: ../templates/minimal/html/user.register.html:34
-msgid "Confirm Password"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:55
+#: ../templates/classic/html/user.item.html:79
 #: ../templates/classic/html/user.register.html:33
-#: ../templates/minimal/html/user.item.html:52
-#: ../templates/minimal/html/user.register.html:38
+#: ../templates/minimal/html/user.item.html:74
+#: ../templates/minimal/html/user.register.html:41
 msgid "Roles"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:61
-#: ../templates/minimal/html/user.item.html:58
+#: ../templates/classic/html/user.item.html:87
+#: ../templates/minimal/html/user.item.html:82
 msgid "(to give the user more than one role, enter a comma,separated,list)"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:66
-#: ../templates/classic/html/user.register.html:41
-msgid "Phone"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:74
-msgid "Timezone"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:78
+#: ../templates/classic/html/user.item.html:108
+#: ../templates/minimal/html/user.item.html:103
 msgid "(this is a numeric hour offset, the default is ${zone})"
 msgstr ""
 
-#: ../templates/classic/html/user.item.html:83
-#: ../templates/classic/html/user.register.html:49
-#: ../templates/minimal/html/user.item.html:63
-#: ../templates/minimal/html/user.register.html:46
-msgid "E-mail address"
-msgstr ""
-
-#: ../templates/classic/html/user.item.html:91
+#: ../templates/classic/html/user.item.html:129
 #: ../templates/classic/html/user.register.html:53
-#: ../templates/minimal/html/user.item.html:71
-#: ../templates/minimal/html/user.register.html:50
+#: ../templates/minimal/html/user.item.html:124
+#: ../templates/minimal/html/user.register.html:53
 msgid "Alternate E-mail addresses<br>One address per line"
 msgstr ""
 
@@ -2697,6 +2766,30 @@
 msgid "Registering with ${tracker}"
 msgstr ""
 
+#: ../templates/classic/html/user.register.html:21
+#: ../templates/minimal/html/user.register.html:29
+msgid "Login Name"
+msgstr ""
+
+#: ../templates/classic/html/user.register.html:25
+#: ../templates/minimal/html/user.register.html:33
+msgid "Login Password"
+msgstr ""
+
+#: ../templates/classic/html/user.register.html:29
+#: ../templates/minimal/html/user.register.html:37
+msgid "Confirm Password"
+msgstr ""
+
+#: ../templates/classic/html/user.register.html:41
+msgid "Phone"
+msgstr ""
+
+#: ../templates/classic/html/user.register.html:49
+#: ../templates/minimal/html/user.register.html:49
+msgid "E-mail address"
+msgstr ""
+
 #: ../templates/classic/html/user.rego_progress.html:4
 #: ../templates/minimal/html/user.rego_progress.html:4
 msgid "Registration in progress - ${tracker}"
@@ -2714,90 +2807,70 @@
 "the registration process, visit the link indicated in the email."
 msgstr ""
 
-#: ../templates/minimal/html/home.html:2
-msgid "Tracker home - ${tracker}"
-msgstr ""
-
-#: ../templates/minimal/html/home.html:4
-msgid "Tracker home"
-msgstr ""
-
-#: ../templates/minimal/html/home.html:16
-msgid "Please select from one of the menu options on the left."
-msgstr ""
-
-#: ../templates/minimal/html/home.html:19
-msgid "Please log in or register."
-msgstr ""
-
-#: ../templates/minimal/html/page.html:55
-msgid "Hello,<br>${user}"
-msgstr ""
-
-# priority translations:
 #: ../templates/classic/initial_data.py:5
-#: ../templates/classic/html/page.html:246
 msgid "critical"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:6
-#: ../templates/classic/html/page.html:246
 msgid "urgent"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:7
-#: ../templates/classic/html/page.html:246
 msgid "bug"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:8
-#: ../templates/classic/html/page.html:246
 msgid "feature"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:9
-#: ../templates/classic/html/page.html:246
 msgid "wish"
 msgstr ""
 
-#: status translations:
 #: ../templates/classic/initial_data.py:12
-#: ../templates/classic/html/page.html:246
 msgid "unread"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:13
-#: ../templates/classic/html/page.html:246
 msgid "deferred"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:14
-#: ../templates/classic/html/page.html:246
 msgid "chatting"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:15
-#: ../templates/classic/html/page.html:246
-msgid "in-progress"
+msgid "need-eg"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:16
-#: ../templates/classic/html/page.html:246
-msgid "need-eg"
+msgid "in-progress"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:17
-#: ../templates/classic/html/page.html:246
 msgid "testing"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:18
-#: ../templates/classic/html/page.html:246
 msgid "done-cbb"
 msgstr ""
 
 #: ../templates/classic/initial_data.py:19
-#: ../templates/classic/html/page.html:246
 msgid "resolved"
 msgstr ""
 
+#: ../templates/minimal/html/home.html:2
+msgid "Tracker home - ${tracker}"
+msgstr ""
+
+#: ../templates/minimal/html/home.html:4
+msgid "Tracker home"
+msgstr ""
+
+#: ../templates/minimal/html/home.html:16
+msgid "Please select from one of the menu options on the left."
+msgstr ""
+
+#: ../templates/minimal/html/home.html:19
+msgid "Please log in or register."
+msgstr ""

Modified: tracker/vendor/roundup/current/locale/ru.po
==============================================================================
--- tracker/vendor/roundup/current/locale/ru.po	(original)
+++ tracker/vendor/roundup/current/locale/ru.po	Sun Jan 14 15:31:23 2007
@@ -1,16 +1,16 @@
 # Russian message file for Roundup Issue Tracker
 # alexander smishlajev <alex at tycobka.lv>, 2004
 #
-# $Id: ru.po,v 1.14 2006/05/20 07:43:17 a1s Exp $
+# $Id: ru.po,v 1.15 2006/12/18 12:10:10 a1s Exp $
 #
-# roundup.pot revision 1.18
+# roundup.pot revision 1.22
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Roundup 1.1.2\n"
+"Project-Id-Version: Roundup 1.3.2\n"
 "Report-Msgid-Bugs-To: roundup-devel at lists.sourceforge.net\n"
 "POT-Creation-Date: 2006-04-27 09:02+0300\n"
-"PO-Revision-Date: 2006-05-20 10:37+0200\n"
+"PO-Revision-Date: 2006-12-18 13:38+0200\n"
 "Last-Translator: alexander smishlajev <alex at tycobka.lv>\n"
 "Language-Team: Russian\n"
 "MIME-Version: 1.0\n"
@@ -278,16 +278,16 @@
 
 #: ../roundup/admin.py:346
 msgid ""
-"Usage: install [template [backend [admin password [key=val[,key=val]]]]]\n"
+"Usage: install [template [backend [key=val[,key=val]]]]\n"
 "        Install a new Roundup tracker.\n"
 "\n"
 "        The command will prompt for the tracker home directory\n"
 "        (if not supplied through TRACKER_HOME or the -i option).\n"
-"        The template, backend and admin password may be specified\n"
-"        on the command-line as arguments, in that order.\n"
+"        The template and backend may be specified on the command-line\n"
+"        as arguments, in that order.\n"
 "\n"
-"        The last command line argument allows to pass initial values\n"
-"        for config options.  For example, passing\n"
+"        Command line arguments following the backend allows you to\n"
+"        pass initial values for config options.  For example, passing\n"
 "        \"web_http_auth=no,rdbms_user=dinsdale\" will override defaults\n"
 "        for options http_auth in section [web] and user in section [rdbms].\n"
 "        Please be careful to not use spaces in this argument! (Enclose\n"
@@ -301,19 +301,19 @@
 "        See also initopts help.\n"
 "        "
 msgstr ""
-"÷ÙÚÏ×: install [ÛÁÂÌÏÎ [ÓÅÒ×ÅÒ [ÐÁÒÏÌØ [ËÌÀÞ=ÚÎÁÞÅÎÉÅ[,ËÌÀÞ=ÚÎÁÞÅÎÉÅ]]]]]\n"
+"÷ÙÚÏ×: install [ÛÁÂÌÏÎ [ÓÅÒ×ÅÒ [ËÌÀÞ=ÚÎÁÞÅÎÉÅ[,ËÌÀÞ=ÚÎÁÞÅÎÉÅ]]]]\n"
 "        õÓÔÁÎÏ×ÉÔØ ÎÏ×ÙÊ ÔÒÅËÅÒ Roundup.\n"
 "\n"
 "        ÷ÁÍ ÎÁÄÏ ÂÕÄÅÔ ÕËÁÚÁÔØ \"ÄÏÍÁÛÎÉÊ ËÁÔÁÌÏÇ\" ÔÒÅËÅÒÁ (ÅÓÌÉ ÏÎ\n"
 "        ÎÅ ÚÁÄÁÎ ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ TRACKER_HOME ÉÌÉ ËÌÀÞÏÍ ËÏÍÁÎÄÎÏÊ\n"
-"        ÓÔÒÏËÉ '-i').  ûÁÂÌÏÎ ÔÒÅËÅÒÁ, ÔÉÐ ÂÁÚÙ ÄÁÎÎÙÈ É ÐÁÒÏÌØ\n"
-"        ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ ÍÏÖÎÏ ÕËÁÚÁÔØ × ÐÁÒÁÍÅÔÒÁÈ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ\n"
-"        ÉÌÉ ××ÅÓÔÉ × ÏÔ×ÅÔ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÐÏÄÓËÁÚËÉ ÐÒÏÇÒÁÍÍÙ.\n"
-"\n"
-"        ðÏÓÌÅÄÎÉÊ ÐÁÒÁÍÅÔÒ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÐÏÚ×ÏÌÑÅÔ ÚÁÄÁÔØ ÎÁÞÁÌØÎÙÅ\n"
-"        ÚÎÁÞÅÎÉÑ ÄÌÑ ÆÁÊÌÁ ËÏÎÆÉÇÕÒÁÃÉÉ Roundup.  îÁÐÒÉÍÅÒ, ÓÔÒÏËÁ\n"
-"        \"web_http_auth=no,rdbms_user=dinsdale\" ÚÁÍÅÎÉÔ ÚÎÁÞÅÎÉÅ\n"
-"        ÐÁÒÁÍÅÔÒÁ http_auth × ÓÅËÃÉÉ [web] É ÐÁÒÁÍÅÔÒÁ user × ÓÅËÃÉÉ\n"
+"        ÓÔÒÏËÉ '-i').  ûÁÂÌÏÎ ÔÒÅËÅÒÁ É ÔÉÐ ÂÁÚÙ ÄÁÎÎÙÈ ÍÏÖÎÏ ÕËÁÚÁÔØ\n"
+"        × ÐÁÒÁÍÅÔÒÁÈ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÉÌÉ ××ÅÓÔÉ × ÏÔ×ÅÔ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ\n"
+"        ÐÏÄÓËÁÚËÉ ÐÒÏÇÒÁÍÍÙ.\n"
+"\n"
+"        ðÁÒÁÍÅÔÒÙ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÓÌÅÄÕÀÝÉÅ ÚÁ ÔÉÐÏÍ ÓÅÒ×ÅÒÁ ÂÁÚÙ ÄÁÎÎÙÈ,\n"
+"        ÐÏÚ×ÏÌÑÀÔ ÚÁÄÁÔØ ÎÁÞÁÌØÎÙÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÆÁÊÌÁ ËÏÎÆÉÇÕÒÁÃÉÉ Roundup.\n"
+"        îÁÐÒÉÍÅÒ, ÓÔÒÏËÁ \"web_http_auth=no,rdbms_user=dinsdale\" ÚÁÍÅÎÉÔ\n"
+"        ÚÎÁÞÅÎÉÅ ÐÁÒÁÍÅÔÒÁ http_auth × ÓÅËÃÉÉ [web] É ÐÁÒÁÍÅÔÒÁ user × ÓÅËÃÉÉ\n"
 "        [rdbms].  âÕÄØÔÅ ×ÎÉÍÁÔÅÌØÎÙ: ÎÁÓÔÒÏÊËÉ ÎÕÖÎÏ ÕËÁÚÙ×ÁÔØ ÐÏÄÒÑÄ,\n"
 "        ÂÅÚ ÐÒÏÂÅÌÏ×.  åÓÌÉ ÚÎÁÞÅÎÉÅ ÐÁÒÁÍÅÔÒÁ ÎÁÓÔÒÏÊËÉ Roundup ÄÏÌÖÎÏ\n"
 "        ÓÏÄÅÒÖÁÔØ ÐÒÏÂÅÌ, ÚÁËÌÀÞÉÔÅ ×ÅÓØ ÐÁÒÁÍÅÔÒ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ\n"
@@ -340,9 +340,9 @@
 #: ../roundup/admin.py:972
 #: ../roundup/admin.py:1020
 #: ../roundup/admin.py:1042
-#: ../roundup/admin.py:1069
-#: ../roundup/admin.py:1136
-#: ../roundup/admin.py:1207
+#: ../roundup/admin.py:1072
+#: ../roundup/admin.py:1171
+#: ../roundup/admin.py:1243
 msgid "Not enough arguments supplied"
 msgstr "îÅÄÏÓÔÁÔÏÞÎÏ ÁÒÇÕÍÅÎÔÏ×"
 
@@ -852,30 +852,75 @@
 #. grab the directory to export to
 #: ../roundup/admin.py:1058
 msgid ""
-"Usage: export [class[,class]] export_dir\n"
+"Usage: export [[-]class[,class]] export_dir\n"
 "        Export the database to colon-separated-value files.\n"
+"        To exclude the files (e.g. for the msg or file class),\n"
+"        use the exporttables command.\n"
 "\n"
-"        Optionally limit the export to just the names classes.\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
 "\n"
 "        This action exports the current data from the database into\n"
 "        colon-separated-value files that are placed in the nominated\n"
 "        destination directory.\n"
 "        "
 msgstr ""
-"÷ÙÚÏ×: export [ËÌÁÓÓ[,ËÌÁÓÓ]] ËÁÔÁÌÏÇ\n"
+"÷ÙÚÏ×: export [[-]ËÌÁÓÓ[,ËÌÁÓÓ]] ËÁÔÁÌÏÇ\n"
 "        üËÓÐÏÒÔÉÒÏ×ÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ × ÔÅËÓÔÏ×ÙÅ ÆÁÊÌÙ.\n"
 "\n"
-"        åÓÌÉ ÓÐÉÓÏË ËÌÁÓÓÏ× ÎÅ ÚÁÄÁÎ, ÜËÓÐÏÒÔÉÒÕÀÔÓÑ ×ÓÅ ËÌÁÓÓÙ\n"
-"        ÂÁÚÙ ÄÁÎÎÙÈ.\n"
+"        ðÅÒ×ÙÊ (ÎÅÏÂÑÚÁÔÅÌØÎÙÊ) ÐÁÒÁÍÅÔÒ ÜÔÏÊ ËÏÍÁÎÄÙ ÚÁÄÁÅÔ ÓÐÉÓÏË ËÌÁÓÓÏ×,\n"
+"        ËÏÔÏÒÙÅ ÎÕÖÎÏ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ, ÉÌÉ, ÅÓÌÉ ÏÎ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÚÎÁËÁ\n"
+"        \"ÍÉÎÕÓ\", - ÓÐÉÓÏË ËÌÁÓÓÏ×, ËÏÔÏÒÙÅ ÎÕÖÎÏ ÉÓËÌÀÞÉÔØ ÉÚ ÜËÓÐÏÒÔÁ.\n"
+"        åÓÌÉ ÓÐÉÓÏË ËÌÁÓÓÏ× ÎÅ ÚÁÄÁÎ, ÜËÓÐÏÒÔÉÒÕÀÔÓÑ ×ÓÅ ËÌÁÓÓÙ ÂÁÚÙ ÄÁÎÎÙÈ.\n"
+"\n"
+"        üÔÁ ËÏÍÁÎÄÁ ÜËÓÐÏÒÔÉÒÕÅÔ ÄÁÎÎÙÅ ÉÚ ÂÁÚÙ ÔÒÅËÅÒÁ × ÔÅËÓÔÏ×ÙÅ ÆÁÊÌÙ\n"
+"        × ÕËÁÚÁÎÎÏÍ ËÁÔÁÌÏÇÅ.  äÌÑ ËÁÖÄÏÇÏ ÜËÓÐÏÒÔÉÒÕÅÍÏÇÏ ËÌÁÓÓÁ ÓÏÚÄÁÅÔÓÑ\n"
+"        ÏÔÄÅÌØÎÙÊ ÜËÓÐÏÒÔÎÙÊ ÆÁÊÌ.  äÌÑ ËÁÖÄÏÇÏ ÏÂßÅËÔÁ ËÌÁÓÓÁ ÓÏÚÄÁÅÔÓÑ\n"
+"        ÓÔÒÏËÁ ÜËÓÐÏÒÔÎÏÇÏ ÆÁÊÌÁ.  úÎÁÞÅÎÉÑ ÁÔÒÉÂÕÔÏ× ÒÁÚÄÅÌÑÀÔÓÑ\n"
+"        Ä×ÏÅÔÏÞÉÑÍÉ.\n"
+"\n"
+"        ëÏÍÁÎÄÁ export ËÏÐÉÒÕÅÔ × ËÁÔÁÌÏÇ ÜËÓÐÏÒÔÁ ÆÁÊÌÙ ÄÁÎÎÙÈ,\n"
+"        ÒÁÓÐÏÌÏÖÅÎÎÙÅ × $TRACKER_HOME/db/files/.  äÌÑ ÜËÓÐÏÒÔÁ ÔÏÌØËÏ\n"
+"        ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ ÂÅÚ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÆÁÊÌÏ× ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ\n"
+"        exporttables.\n"
+"        "
+
+#: ../roundup/admin.py:1136
+msgid ""
+"Usage: exporttables [[-]class[,class]] export_dir\n"
+"        Export the database to colon-separated-value files, excluding the\n"
+"        files below $TRACKER_HOME/db/files/ (which can be archived separately).\n"
+"        To include the files, use the export command.\n"
+"\n"
+"        Optionally limit the export to just the named classes\n"
+"        or exclude the named classes, if the 1st argument starts with '-'.\n"
+"\n"
+"        This action exports the current data from the database into\n"
+"        colon-separated-value files that are placed in the nominated\n"
+"        destination directory.\n"
+"        "
+msgstr ""
+"÷ÙÚÏ×: exporttables [[-]ËÌÁÓÓ[,ËÌÁÓÓ]] ËÁÔÁÌÏÇ\n"
+"        üËÓÐÏÒÔÉÒÏ×ÁÔØ ÓÏÄÅÒÖÉÍÏÅ ÂÁÚÙ ÄÁÎÎÙÈ × ÔÅËÓÔÏ×ÙÅ ÆÁÊÌÙ.\n"
+"\n"
+"        ðÅÒ×ÙÊ (ÎÅÏÂÑÚÁÔÅÌØÎÙÊ) ÐÁÒÁÍÅÔÒ ÜÔÏÊ ËÏÍÁÎÄÙ ÚÁÄÁÅÔ ÓÐÉÓÏË ËÌÁÓÓÏ×,\n"
+"        ËÏÔÏÒÙÅ ÎÕÖÎÏ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ, ÉÌÉ, ÅÓÌÉ ÏÎ ÎÁÞÉÎÁÅÔÓÑ ÓÏ ÚÎÁËÁ\n"
+"        \"ÍÉÎÕÓ\", - ÓÐÉÓÏË ËÌÁÓÓÏ×, ËÏÔÏÒÙÅ ÎÕÖÎÏ ÉÓËÌÀÞÉÔØ ÉÚ ÜËÓÐÏÒÔÁ.\n"
+"        åÓÌÉ ÓÐÉÓÏË ËÌÁÓÓÏ× ÎÅ ÚÁÄÁÎ, ÜËÓÐÏÒÔÉÒÕÀÔÓÑ ×ÓÅ ËÌÁÓÓÙ ÂÁÚÙ ÄÁÎÎÙÈ.\n"
 "\n"
 "        üÔÁ ËÏÍÁÎÄÁ ÜËÓÐÏÒÔÉÒÕÅÔ ÄÁÎÎÙÅ ÉÚ ÂÁÚÙ ÔÒÅËÅÒÁ × ÔÅËÓÔÏ×ÙÅ ÆÁÊÌÙ\n"
 "        × ÕËÁÚÁÎÎÏÍ ËÁÔÁÌÏÇÅ.  äÌÑ ËÁÖÄÏÇÏ ÜËÓÐÏÒÔÉÒÕÅÍÏÇÏ ËÌÁÓÓÁ ÓÏÚÄÁÅÔÓÑ\n"
 "        ÏÔÄÅÌØÎÙÊ ÜËÓÐÏÒÔÎÙÊ ÆÁÊÌ.  äÌÑ ËÁÖÄÏÇÏ ÏÂßÅËÔÁ ËÌÁÓÓÁ ÓÏÚÄÁÅÔÓÑ\n"
 "        ÓÔÒÏËÁ ÜËÓÐÏÒÔÎÏÇÏ ÆÁÊÌÁ.  úÎÁÞÅÎÉÑ ÁÔÒÉÂÕÔÏ× ÒÁÚÄÅÌÑÀÔÓÑ\n"
 "        Ä×ÏÅÔÏÞÉÑÍÉ.\n"
+"\n"
+"        ëÏÍÁÎÄÁ exporttables ÎÅ ËÏÐÉÒÕÅÔ × ËÁÔÁÌÏÇ ÜËÓÐÏÒÔÁ ÆÁÊÌÙ ÄÁÎÎÙÈ,\n"
+"        ÒÁÓÐÏÌÏÖÅÎÎÙÅ × $TRACKER_HOME/db/files/ (ÜÔÉ ÆÁÊÌÙ ÍÏÖÎÏ ÐÏÔÏÍ\n"
+"        ÓËÏÐÉÒÏ×ÁÔØ ÏÔÄÅÌØÎÏ).  äÌÑ ÔÏÇÏ ÞÔÏÂÙ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ\n"
+"        ÐÏÌÎÏÓÔØÀ, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ export.\n"
 "        "
 
-#: ../roundup/admin.py:1116
+#: ../roundup/admin.py:1151
 msgid ""
 "Usage: import import_dir\n"
 "        Import a database from the directory containing CSV files,\n"
@@ -919,7 +964,7 @@
 "        ÉÚ ÓÕÝÅÓÔ×ÕÀÝÅÊ ÂÁÚÙ ×ÓÅ ÏÂßÅËÔÙ).\n"
 "        "
 
-#: ../roundup/admin.py:1189
+#: ../roundup/admin.py:1225
 msgid ""
 "Usage: pack period | date\n"
 "\n"
@@ -958,11 +1003,11 @@
 "\n"
 "        "
 
-#: ../roundup/admin.py:1217
+#: ../roundup/admin.py:1253
 msgid "Invalid format"
 msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ"
 
-#: ../roundup/admin.py:1227
+#: ../roundup/admin.py:1263
 msgid ""
 "Usage: reindex [classname|designator]*\n"
 "        Re-generate a tracker's search indexes.\n"
@@ -978,12 +1023,12 @@
 "        ÄÁÎÎÙÈ.  ïÂÙÞÎÏ ÐÏÓÔÒÏÅÎÉÅ ÉÎÄÅËÓÏ× ÐÒÏÉÓÈÏÄÉÔ Á×ÔÏÍÁÔÉÞÅÓËÉ.\n"
 "        "
 
-#: ../roundup/admin.py:1241
+#: ../roundup/admin.py:1277
 #, python-format
 msgid "no such item \"%(designator)s\""
 msgstr "ÏÂßÅËÔ \"%(designator)s\" ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
-#: ../roundup/admin.py:1251
+#: ../roundup/admin.py:1287
 msgid ""
 "Usage: security [Role name]\n"
 "        Display the Permissions available to one or all Roles.\n"
@@ -994,78 +1039,78 @@
 "        ÒÏÌÑÍ.\n"
 "        "
 
-#: ../roundup/admin.py:1259
+#: ../roundup/admin.py:1295
 #, python-format
 msgid "No such Role \"%(role)s\""
 msgstr "òÏÌØ \"%(role)s\" ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
-#: ../roundup/admin.py:1265
+#: ../roundup/admin.py:1301
 #, python-format
 msgid "New Web users get the Roles \"%(role)s\""
 msgstr "îÏ×ÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ web ÐÏÌÕÞÁÀÔ ÒÏÌÉ \"%(role)s\""
 
-#: ../roundup/admin.py:1267
+#: ../roundup/admin.py:1303
 #, python-format
 msgid "New Web users get the Role \"%(role)s\""
 msgstr "îÏ×ÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ web ÐÏÌÕÞÁÀÔ ÒÏÌØ \"%(role)s\""
 
-#: ../roundup/admin.py:1270
+#: ../roundup/admin.py:1306
 #, python-format
 msgid "New Email users get the Roles \"%(role)s\""
 msgstr "îÏ×ÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ email ÐÏÌÕÞÁÀÔ ÒÏÌÉ \"%(role)s\""
 
-#: ../roundup/admin.py:1272
+#: ../roundup/admin.py:1308
 #, python-format
 msgid "New Email users get the Role \"%(role)s\""
 msgstr "îÏ×ÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ email ÐÏÌÕÞÁÀÔ ÒÏÌØ \"%(role)s\""
 
-#: ../roundup/admin.py:1275
+#: ../roundup/admin.py:1311
 #, python-format
 msgid "Role \"%(name)s\":"
 msgstr "òÏÌØ \"%(name)s\":"
 
-#: ../roundup/admin.py:1280
+#: ../roundup/admin.py:1316
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\": %(properties)s only)"
 msgstr " %(description)s (%(name)s ÄÌÑ ËÌÁÓÓÁ \"%(klass)s\": ÔÏÌØËÏ Ó×ÏÊÓÔ×Á %(properties)s)"
 
-#: ../roundup/admin.py:1283
+#: ../roundup/admin.py:1319
 #, python-format
 msgid " %(description)s (%(name)s for \"%(klass)s\" only)"
 msgstr " %(description)s (%(name)s ÔÏÌØËÏ ÄÌÑ ËÌÁÓÓÁ \"%(klass)s\")"
 
-#: ../roundup/admin.py:1286
+#: ../roundup/admin.py:1322
 #, python-format
 msgid " %(description)s (%(name)s)"
 msgstr ""
 
-#: ../roundup/admin.py:1315
+#: ../roundup/admin.py:1351
 #, python-format
 msgid "Unknown command \"%(command)s\" (\"help commands\" for a list)"
 msgstr "ëÏÍÁÎÄÁ \"%(command)s\" ÎÅÉÚ×ÅÓÔÎÁ. (\"help commands\" ×ÙÄÁÅÔ ÓÐÉÓÏË ËÏÍÁÎÄ)"
 
-#: ../roundup/admin.py:1321
+#: ../roundup/admin.py:1357
 #, python-format
 msgid "Multiple commands match \"%(command)s\": %(list)s"
 msgstr "\"%(command)s\" ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÎÅÓËÏÌØËÉÍ ËÏÍÁÎÄÁÍ: %(list)s"
 
-#: ../roundup/admin.py:1328
+#: ../roundup/admin.py:1364
 msgid "Enter tracker home: "
 msgstr "äÏÍÁÛÎÉÊ ËÁÔÁÌÏÇ ÔÒÅËÅÒÁ: "
 
-#: ../roundup/admin.py:1335
-#: ../roundup/admin.py:1341
-#: ../roundup/admin.py:1361
+#: ../roundup/admin.py:1371
+#: ../roundup/admin.py:1377
+#: ../roundup/admin.py:1397
 #, python-format
 msgid "Error: %(message)s"
 msgstr "ïÛÉÂËÁ: %(message)s"
 
-#: ../roundup/admin.py:1349
+#: ../roundup/admin.py:1385
 #, python-format
 msgid "Error: Couldn't open tracker: %(message)s"
 msgstr "ïÛÉÂËÁ: ôÒÅËÅÒ ÎÅ ÏÔËÒÙ×ÁÅÔÓÑ: %(message)s"
 
-#: ../roundup/admin.py:1374
+#: ../roundup/admin.py:1410
 #, python-format
 msgid ""
 "Roundup %s ready for input.\n"
@@ -1074,48 +1119,48 @@
 "Roundup %s Ë ×ÁÛÉÍ ÕÓÌÕÇÁÍ.\n"
 "÷×ÅÄÉÔÅ \"help\" ÄÌÑ ÓÐÒÁ×ËÉ."
 
-#: ../roundup/admin.py:1379
+#: ../roundup/admin.py:1415
 msgid "Note: command history and editing not available"
 msgstr "ðÒÉÍÅÞÁÎÉÅ: ÒÁÂÏÔÁÅÔ ÒÅÄÁËÔÏÒ É ÉÓÔÏÒÉÑ ËÏÍÁÎÄ"
 
-#: ../roundup/admin.py:1383
+#: ../roundup/admin.py:1419
 msgid "roundup> "
 msgstr ""
 
-#: ../roundup/admin.py:1385
+#: ../roundup/admin.py:1421
 msgid "exit..."
 msgstr "ÐÒÉÈÏÄÉÔÅ Ë ÎÁÍ ÅÝÅ..."
 
-#: ../roundup/admin.py:1395
+#: ../roundup/admin.py:1431
 msgid "There are unsaved changes. Commit them (y/N)? "
 msgstr "ïÊ, ÔÕÔ ÎÅÓÏÈÒÁÎÅÎÎÙÅ ÉÚÍÅÎÅÎÉÑ. úÁÐÉÓÁÔØ × ÂÁÚÕ ÄÁÎÎÙÈ (y/N)? "
 
-#: ../roundup/backends/back_anydbm.py:2001
+#: ../roundup/backends/back_anydbm.py:2000
 #, python-format
 msgid "WARNING: invalid date tuple %r"
 msgstr "÷îéíáîéå! îÅ×ÅÒÎÁÑ ÄÁÔÁ: %r"
 
-#: ../roundup/backends/rdbms_common.py:1434
+#: ../roundup/backends/rdbms_common.py:1442
 msgid "create"
 msgstr "ÓÏÚÄÁÎÉÅ"
 
-#: ../roundup/backends/rdbms_common.py:1600
+#: ../roundup/backends/rdbms_common.py:1608
 msgid "unlink"
 msgstr "ÏÔ×ÑÚËÁ"
 
-#: ../roundup/backends/rdbms_common.py:1604
+#: ../roundup/backends/rdbms_common.py:1612
 msgid "link"
 msgstr "ÐÒÉ×ÑÚËÁ"
 
-#: ../roundup/backends/rdbms_common.py:1724
+#: ../roundup/backends/rdbms_common.py:1732
 msgid "set"
 msgstr "ÕÓÔÁÎÏ×ËÁ"
 
-#: ../roundup/backends/rdbms_common.py:1748
+#: ../roundup/backends/rdbms_common.py:1756
 msgid "retired"
 msgstr "ÚÁÐÒÅÝÅÎÉÅ"
 
-#: ../roundup/backends/rdbms_common.py:1778
+#: ../roundup/backends/rdbms_common.py:1786
 msgid "restored"
 msgstr "×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ"
 
@@ -1156,63 +1201,63 @@
 msgid "You do not have permission to store queries"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÓÏÈÒÁÎÅÎÉÅ ÚÁÐÒÏÓÏ×"
 
-#: ../roundup/cgi/actions.py:297
+#: ../roundup/cgi/actions.py:298
 #, python-format
 msgid "Not enough values on line %(line)s"
 msgstr "÷ ÓÔÒÏËÅ %(line)s ÎÅ È×ÁÔÁÅÔ ÚÎÁÞÅÎÉÊ"
 
-#: ../roundup/cgi/actions.py:344
+#: ../roundup/cgi/actions.py:345
 msgid "Items edited OK"
 msgstr "ïÂßÅËÔÙ ÉÚÍÅÎÅÎÙ ÕÓÐÅÛÎÏ"
 
-#: ../roundup/cgi/actions.py:404
+#: ../roundup/cgi/actions.py:405
 #, python-format
 msgid "%(class)s %(id)s %(properties)s edited ok"
 msgstr "éÚÍÅÎÅÎÙ ÁÔÒÉÂÕÔÙ %(properties)s ÏÂßÅËÔÁ %(class)s %(id)s"
 
-#: ../roundup/cgi/actions.py:407
+#: ../roundup/cgi/actions.py:408
 #, python-format
 msgid "%(class)s %(id)s - nothing changed"
 msgstr "%(class)s %(id)s - ÎÅÔ ÉÚÍÅÎÅÎÉÊ"
 
-#: ../roundup/cgi/actions.py:419
+#: ../roundup/cgi/actions.py:420
 #, python-format
 msgid "%(class)s %(id)s created"
 msgstr "%(class)s %(id)s ÓÏÚÄÁÎ"
 
-#: ../roundup/cgi/actions.py:451
+#: ../roundup/cgi/actions.py:452
 #, python-format
 msgid "You do not have permission to edit %(class)s"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÒÅÄÁËÔÉÒÏ×ÁÔØ %(class)s"
 
-#: ../roundup/cgi/actions.py:463
+#: ../roundup/cgi/actions.py:464
 #, python-format
 msgid "You do not have permission to create %(class)s"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÓÏÚÄÁ×ÁÔØ %(class)s"
 
-#: ../roundup/cgi/actions.py:487
+#: ../roundup/cgi/actions.py:488
 msgid "You do not have permission to edit user roles"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÉÚÍÅÎÅÎÉÅ ÒÏÌÅÊ ÐÏÌØÚÏ×ÁÔÅÌÅÊ"
 
-#: ../roundup/cgi/actions.py:537
+#: ../roundup/cgi/actions.py:538
 #, python-format
 msgid "Edit Error: someone else has edited this %s (%s). View <a target=\"new\" href=\"%s%s\">their changes</a> in a new window."
 msgstr "ïÛÉÂËÁ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ: %s (%s) ÉÚÍÅÎÉÌ ÄÒÕÇÏÊ ÐÏÌØÚÏ×ÁÔÅÌØ. <a target=\"new\" href=\"%s%s\">ðÒÏÓÍÏÔÒÅÔØ ÜÔÉ ÉÚÍÅÎÅÎÉÑ</a> × ÄÒÕÇÏÍ ÏËÎÅ."
 
-#: ../roundup/cgi/actions.py:565
+#: ../roundup/cgi/actions.py:566
 #, python-format
 msgid "Edit Error: %s"
 msgstr "ïÛÉÂËÁ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ: %s"
 
-#: ../roundup/cgi/actions.py:596
-#: ../roundup/cgi/actions.py:607
-#: ../roundup/cgi/actions.py:778
-#: ../roundup/cgi/actions.py:797
+#: ../roundup/cgi/actions.py:597
+#: ../roundup/cgi/actions.py:608
+#: ../roundup/cgi/actions.py:779
+#: ../roundup/cgi/actions.py:798
 #, python-format
 msgid "Error: %s"
 msgstr "ïÛÉÂËÁ: %s"
 
-#: ../roundup/cgi/actions.py:633
+#: ../roundup/cgi/actions.py:634
 msgid ""
 "Invalid One Time Key!\n"
 "(a Mozilla bug may cause this message to show up erroneously, please check your email)"
@@ -1220,50 +1265,50 @@
 "ëÌÀÞ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÎÅÐÒÁ×ÉÌÅÎ!\n"
 "(éÚ-ÚÁ ÏÛÉÂËÉ × ÂÒÁÕÚÅÒÅ Mozilla ÜÔÏ ÓÏÏÂÝÅÎÉÅ ÍÏÖÅÔ ÂÙÔØ ÎÅ×ÅÒÎÙÍ. ðÒÏ×ÅÒØÔÅ ×ÁÛÕ ÐÏÞÔÕ, ÐÏÖÁÌÕÊÓÔÁ.)"
 
-#: ../roundup/cgi/actions.py:675
+#: ../roundup/cgi/actions.py:676
 #, python-format
 msgid "Password reset and email sent to %s"
 msgstr "ðÁÒÏÌØ ÓÂÒÏÛÅÎ.  ðÏ ÁÄÒÅÓÕ %s ÏÔÐÒÁ×ÌÅÎÏ ÐÉÓØÍÏ."
 
-#: ../roundup/cgi/actions.py:684
+#: ../roundup/cgi/actions.py:685
 msgid "Unknown username"
 msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: ../roundup/cgi/actions.py:692
+#: ../roundup/cgi/actions.py:693
 msgid "Unknown email address"
 msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÁÄÒÅÓ email"
 
-#: ../roundup/cgi/actions.py:697
+#: ../roundup/cgi/actions.py:698
 msgid "You need to specify a username or address"
 msgstr "÷Ù ÄÏÌÖÎÙ ÕËÁÚÁÔØ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÉÌÉ ÁÄÒÅÓ email"
 
-#: ../roundup/cgi/actions.py:722
+#: ../roundup/cgi/actions.py:723
 #, python-format
 msgid "Email sent to %s"
 msgstr "ðÉÓØÍÏ ÏÔÐÒÁ×ÌÅÎÏ ÎÁ %s"
 
-#: ../roundup/cgi/actions.py:741
+#: ../roundup/cgi/actions.py:742
 msgid "You are now registered, welcome!"
 msgstr "÷Ù ÚÁÒÅÇÉÓÔÒÉÒÏ×ÁÎÙ.  äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ!"
 
-#: ../roundup/cgi/actions.py:786
+#: ../roundup/cgi/actions.py:787
 msgid "It is not permitted to supply roles at registration."
 msgstr "îÅÌØÚÑ ÕËÁÚÙ×ÁÔØ ÒÏÌÉ ÐÒÉ ÒÅÇÉÓÔÒÁÃÉÉ"
 
-#: ../roundup/cgi/actions.py:878
+#: ../roundup/cgi/actions.py:879
 msgid "You are logged out"
 msgstr "óÅÁÎÓ ÒÁÂÏÔÙ ÚÁ×ÅÒÛÅÎ"
 
-#: ../roundup/cgi/actions.py:895
+#: ../roundup/cgi/actions.py:896
 msgid "Username required"
 msgstr "îÅ ÕËÁÚÁÎÏ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: ../roundup/cgi/actions.py:930
-#: ../roundup/cgi/actions.py:934
+#: ../roundup/cgi/actions.py:931
+#: ../roundup/cgi/actions.py:935
 msgid "Invalid login"
 msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÐÁÒÏÌØ ÉÌÉ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ."
 
-#: ../roundup/cgi/actions.py:940
+#: ../roundup/cgi/actions.py:941
 msgid "You do not have permission to login"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÒÁÂÏÔÕ Ó ÓÉÓÔÅÍÏÊ"
 
@@ -1358,66 +1403,71 @@
 "áÄÍÉÎÉÓÔÒÁÔÏÒÕ ÔÒÅËÅÒÁ ÏÔÏÓÌÁÎÏ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ.</p>\n"
 "</body></html>"
 
-#: ../roundup/cgi/client.py:308
+#: ../roundup/cgi/client.py:326
 msgid "Form Error: "
 msgstr "ïÛÉÂËÁ ÆÏÒÍÙ: "
 
-#: ../roundup/cgi/client.py:363
+#: ../roundup/cgi/client.py:381
 #, python-format
 msgid "Unrecognized charset: %r"
 msgstr "ëÏÄÉÒÏ×ËÁ %r ÎÅ ÒÁÓÐÏÚÎÁÎÁ"
 
-#: ../roundup/cgi/client.py:491
+#: ../roundup/cgi/client.py:509
 msgid "Anonymous users are not allowed to use the web interface"
 msgstr "áÎÏÎÉÍÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÑÍ ÎÅ ÒÁÚÒÅÛÅÎÏ ÐÏÌØÚÏ×ÁÔØÓÑ ×ÅÂ-ÉÎÔÅÒÆÅÊÓÏÍ."
 
-#: ../roundup/cgi/client.py:646
+#: ../roundup/cgi/client.py:664
 msgid "You are not allowed to view this file."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÐÒÏÓÍÏÔÒ ÜÔÏÇÏ ÆÁÊÌÁ."
 
-#: ../roundup/cgi/client.py:738
+#: ../roundup/cgi/client.py:758
 #, python-format
 msgid "%(starttag)sTime elapsed: %(seconds)fs%(endtag)s\n"
 msgstr "%(starttag)súÁÔÒÁÞÅÎÎÏÅ ×ÒÅÍÑ: %(seconds)fs%(endtag)s\n"
 
-#: ../roundup/cgi/client.py:742
+#: ../roundup/cgi/client.py:762
 #, python-format
 msgid "%(starttag)sCache hits: %(cache_hits)d, misses %(cache_misses)d. Loading items: %(get_items)f secs. Filtering: %(filtering)f secs.%(endtag)s\n"
 msgstr "%(starttag)sëÅÛÉÒÏ×ÁÎÎÙÅ ÜÌÅÍÅÎÔÙ: %(cache_hits)d, ×ÙÞÉÓÌÅÎÎÙÅ: %(cache_misses)d. úÁÇÒÕÚËÁ ÏÂßÅËÔÏ×: %(get_items)f ÓÅË. æÉÌØÔÒÁÃÉÑ: %(filtering)f ÓÅË.%(endtag)s\n"
 
 #: ../roundup/cgi/form_parser.py:283
 #, python-format
-msgid "link \"%(key)s\" value \"%(value)s\" not a designator"
-msgstr "úÎÁÞÅÎÉÅ \"%(value)s ÓÓÙÌËÉ \"%(key)s\" ÎÅ ÕËÁÚÙ×ÁÅÔ ÎÁ ÏÂßÅËÔ"
+msgid "link \"%(key)s\" value \"%(entry)s\" not a designator"
+msgstr "ÚÎÁÞÅÎÉÅ \"%(entry)s ÓÓÙÌËÉ \"%(key)s\" ÎÅ ÕËÁÚÙ×ÁÅÔ ÎÁ ÏÂßÅËÔ"
 
-#: ../roundup/cgi/form_parser.py:290
+#: ../roundup/cgi/form_parser.py:301
 #, python-format
 msgid "%(class)s %(property)s is not a link or multilink property"
 msgstr "áÔÒÉÂÕÔ %(property)s ËÌÁÓÓÁ %(class)s ÎÅ Ñ×ÌÑÅÔÓÑ ÓÓÙÌÏÞÎÙÍ"
 
-#: ../roundup/cgi/form_parser.py:312
+#: ../roundup/cgi/form_parser.py:313
+#, python-format
+msgid "The form action claims to require property \"%(property)s\" which doesn't exist"
+msgstr "äÌÑ ×ÙÐÏÌÎÅÎÉÑ ÜÔÏÇÏ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÅÔÓÑ ÚÁÐÏÌÎÉÔØ ÁÔÒÉÂÕÔ \"%(property)s\", ÎÏ ÜÔÏÔ ÁÔÒÉÂÕÔ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ."
+
+#: ../roundup/cgi/form_parser.py:335
 #, python-format
 msgid "You have submitted a %(action)s action for the property \"%(property)s\" which doesn't exist"
 msgstr "÷Ù ÚÁÐÒÏÓÉÌÉ ÄÅÊÓÔ×ÉÅ \"%(action)s\" ÄÌÑ ÁÔÒÉÂÕÔÁ \"%(property)s\", ËÏÔÏÒÙÊ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
-#: ../roundup/cgi/form_parser.py:331
-#: ../roundup/cgi/form_parser.py:357
+#: ../roundup/cgi/form_parser.py:354
+#: ../roundup/cgi/form_parser.py:380
 #, python-format
 msgid "You have submitted more than one value for the %s property"
 msgstr "÷Ù ××ÅÌÉ ÎÅÓËÏÌØËÏ ÚÎÁÞÅÎÉÊ ÄÌÑ ÁÔÒÉÂÕÔÁ %s"
 
 # ../roundup/cgi/form_parser.py:354 :360
-#: ../roundup/cgi/form_parser.py:354
-#: ../roundup/cgi/form_parser.py:360
+#: ../roundup/cgi/form_parser.py:377
+#: ../roundup/cgi/form_parser.py:383
 msgid "Password and confirmation text do not match"
 msgstr "ðÁÒÏÌÉ ÎÅ ÓÏ×ÐÁÌÉ"
 
-#: ../roundup/cgi/form_parser.py:395
+#: ../roundup/cgi/form_parser.py:418
 #, python-format
 msgid "property \"%(propname)s\": \"%(value)s\" not currently in list"
 msgstr "ÁÔÒÉÂÕÔ \"%(propname)s\": ÚÎÁÞÅÎÉÅ \"%(value)s\" ÏÔÓÕÔÓÔ×ÕÅÔ × ÓÐÉÓËÅ"
 
-#: ../roundup/cgi/form_parser.py:512
+#: ../roundup/cgi/form_parser.py:551
 #, python-format
 msgid "Required %(class)s property %(property)s not supplied"
 msgid_plural "Required %(class)s properties %(property)s not supplied"
@@ -1425,161 +1475,162 @@
 msgstr[1] "ïÂÑÚÁÔÅÌØÎÙÅ ÁÔÒÉÂÕÔÙ %(property)s ËÌÁÓÓÁ %(class)s ÎÅ ÚÁÐÏÌÎÅÎÙ"
 msgstr[2] "ïÂÑÚÁÔÅÌØÎÙÅ ÁÔÒÉÂÕÔÙ %(property)s ËÌÁÓÓÁ %(class)s ÎÅ ÚÁÐÏÌÎÅÎÙ"
 
-#: ../roundup/cgi/form_parser.py:535
+#: ../roundup/cgi/form_parser.py:574
 msgid "File is empty"
 msgstr "æÁÊÌ ÐÕÓÔ"
 
-#: ../roundup/cgi/templating.py:72
+#: ../roundup/cgi/templating.py:73
 #, python-format
 msgid "You are not allowed to %(action)s items of class %(class)s"
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ %(action)s ÄÌÑ ËÌÁÓÓÁ %(class)s"
 
-#: ../roundup/cgi/templating.py:627
+#: ../roundup/cgi/templating.py:645
 msgid "(list)"
 msgstr "(ÓÐÉÓÏË)"
 
-#: ../roundup/cgi/templating.py:696
+#: ../roundup/cgi/templating.py:714
 msgid "Submit New Entry"
 msgstr "äÏÂÁ×ÉÔØ"
 
 # ../roundup/cgi/templating.py:673 :792 :1166 :1187 :1231 :1253 :1287 :1326
 # :1377 :1394 :1470 :1490 :1503 :1520 :1530 :1580 :1755
-#: ../roundup/cgi/templating.py:710
-#: ../roundup/cgi/templating.py:829
-#: ../roundup/cgi/templating.py:1236
-#: ../roundup/cgi/templating.py:1257
-#: ../roundup/cgi/templating.py:1304
-#: ../roundup/cgi/templating.py:1327
-#: ../roundup/cgi/templating.py:1361
-#: ../roundup/cgi/templating.py:1400
-#: ../roundup/cgi/templating.py:1453
-#: ../roundup/cgi/templating.py:1470
-#: ../roundup/cgi/templating.py:1549
-#: ../roundup/cgi/templating.py:1569
-#: ../roundup/cgi/templating.py:1587
-#: ../roundup/cgi/templating.py:1619
-#: ../roundup/cgi/templating.py:1629
-#: ../roundup/cgi/templating.py:1683
-#: ../roundup/cgi/templating.py:1875
+#: ../roundup/cgi/templating.py:728
+#: ../roundup/cgi/templating.py:862
+#: ../roundup/cgi/templating.py:1269
+#: ../roundup/cgi/templating.py:1298
+#: ../roundup/cgi/templating.py:1318
+#: ../roundup/cgi/templating.py:1364
+#: ../roundup/cgi/templating.py:1387
+#: ../roundup/cgi/templating.py:1423
+#: ../roundup/cgi/templating.py:1460
+#: ../roundup/cgi/templating.py:1513
+#: ../roundup/cgi/templating.py:1530
+#: ../roundup/cgi/templating.py:1614
+#: ../roundup/cgi/templating.py:1634
+#: ../roundup/cgi/templating.py:1652
+#: ../roundup/cgi/templating.py:1684
+#: ../roundup/cgi/templating.py:1694
+#: ../roundup/cgi/templating.py:1746
+#: ../roundup/cgi/templating.py:1935
 msgid "[hidden]"
 msgstr "[ÎÅÄÏÓÔÕÐÎÏ]"
 
-#: ../roundup/cgi/templating.py:711
+#: ../roundup/cgi/templating.py:729
 msgid "New node - no history"
 msgstr "îÏ×ÁÑ ËÁÒÔÏÞËÁ - ÎÅÔ ÉÓÔÏÒÉÉ"
 
-#: ../roundup/cgi/templating.py:811
+#: ../roundup/cgi/templating.py:844
 msgid "Submit Changes"
 msgstr "éÚÍÅÎÉÔØ"
 
-#: ../roundup/cgi/templating.py:893
+#: ../roundup/cgi/templating.py:926
 msgid "<em>The indicated property no longer exists</em>"
 msgstr "<em>õËÁÚÁÎÎÙÊ ÁÔÒÉÂÕÔ ÕÖÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ.</em>"
 
-#: ../roundup/cgi/templating.py:894
+#: ../roundup/cgi/templating.py:927
 #, python-format
 msgid "<em>%s: %s</em>\n"
 msgstr ""
 
-#: ../roundup/cgi/templating.py:907
+#: ../roundup/cgi/templating.py:940
 #, python-format
 msgid "The linked class %(classname)s no longer exists"
 msgstr "ó×ÑÚÑÎÎÙÊ ËÌÁÓÓ %(classname)s ÕÖÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
 # :823
-#: ../roundup/cgi/templating.py:940
-#: ../roundup/cgi/templating.py:964
+#: ../roundup/cgi/templating.py:973
+#: ../roundup/cgi/templating.py:997
 msgid "<strike>The linked node no longer exists</strike>"
 msgstr "<strike>ó×ÑÚÁÎÎÙÊ ÏÂßÅËÔ ÕÖÅ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ</strike>"
 
-#: ../roundup/cgi/templating.py:1006
-#: ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1425
-#: ../roundup/cgi/templating.py:1431
-msgid "No"
-msgstr "îÅÔ"
-
-#: ../roundup/cgi/templating.py:1006
-#: ../roundup/cgi/templating.py:1404
-#: ../roundup/cgi/templating.py:1423
-#: ../roundup/cgi/templating.py:1428
-msgid "Yes"
-msgstr "äÁ"
-
-#: ../roundup/cgi/templating.py:1017
+#: ../roundup/cgi/templating.py:1050
 #, python-format
 msgid "%s: (no value)"
 msgstr "%s: (ÎÅÔ ÚÎÁÞÅÎÉÑ)"
 
-#: ../roundup/cgi/templating.py:1029
+#: ../roundup/cgi/templating.py:1062
 msgid "<strong><em>This event is not handled by the history display!</em></strong>"
 msgstr "<strong><em>îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÓÏÂÙÔÉÑ!</em></strong>"
 
-#: ../roundup/cgi/templating.py:1041
+#: ../roundup/cgi/templating.py:1074
 msgid "<tr><td colspan=4><strong>Note:</strong></td></tr>"
 msgstr "<tr><td colspan=4><strong>ðÒÉÍÅÞÁÎÉÅ:</strong></td></tr>"
 
-#: ../roundup/cgi/templating.py:1050
+#: ../roundup/cgi/templating.py:1083
 msgid "History"
 msgstr "éÓÔÏÒÉÑ"
 
-#: ../roundup/cgi/templating.py:1052
+#: ../roundup/cgi/templating.py:1085
 msgid "<th>Date</th>"
 msgstr "<th>äÁÔÁ</th>"
 
-#: ../roundup/cgi/templating.py:1053
+#: ../roundup/cgi/templating.py:1086
 msgid "<th>User</th>"
 msgstr "<th>ðÏÌØÚÏ×ÁÔÅÌØ</th>"
 
-#: ../roundup/cgi/templating.py:1054
+#: ../roundup/cgi/templating.py:1087
 msgid "<th>Action</th>"
 msgstr "<th>äÅÊÓÔ×ÉÅ</th>"
 
-#: ../roundup/cgi/templating.py:1055
+#: ../roundup/cgi/templating.py:1088
 msgid "<th>Args</th>"
 msgstr "<th>ðÁÒÁÍÅÔÒÙ</th>"
 
-#: ../roundup/cgi/templating.py:1097
+#: ../roundup/cgi/templating.py:1130
 #, python-format
 msgid "Copy of %(class)s %(id)s"
 msgstr "ëÏÐÉÑ: %(class)s %(id)s"
 
-#: ../roundup/cgi/templating.py:1331
+#: ../roundup/cgi/templating.py:1391
 msgid "*encrypted*"
 msgstr "*ÚÁÛÉÆÒÏ×ÁÎ*"
 
-#: ../roundup/cgi/templating.py:1514
+#: ../roundup/cgi/templating.py:1464
+#: ../roundup/cgi/templating.py:1485
+#: ../roundup/cgi/templating.py:1491
+#: ../roundup/cgi/templating.py:1039
+msgid "No"
+msgstr "îÅÔ"
+
+#: ../roundup/cgi/templating.py:1464
+#: ../roundup/cgi/templating.py:1483
+#: ../roundup/cgi/templating.py:1488
+#: ../roundup/cgi/templating.py:1039
+msgid "Yes"
+msgstr "äÁ"
+
+#: ../roundup/cgi/templating.py:1577
 msgid "default value for DateHTMLProperty must be either DateHTMLProperty or string date representation."
 msgstr "ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ ÄÌÑ DateHTMLProperty ÄÏÌÖÎÏ ÂÙÔØ ÏÂßÅËÔÏÍ DateHTMLProperty ÉÌÉ ÓÔÒÏËÏ×ÙÍ ÐÒÅÄÓÔÁ×ÌÅÎÉÅÍ ÄÁÔÙ."
 
-#: ../roundup/cgi/templating.py:1674
+#: ../roundup/cgi/templating.py:1737
 #, python-format
 msgid "Attempt to look up %(attr)s on a missing value"
 msgstr "ðÏÐÙÔËÁ ÐÏÌÕÞÉÔØ ÁÔÒÉÂÕÔ \"%(attr)s\" ÎÅÓÕÝÅÓÔ×ÕÀÝÅÇÏ ÏÂßÅËÔÁ"
 
-#: ../roundup/cgi/templating.py:1750
+#: ../roundup/cgi/templating.py:1810
 #, python-format
 msgid "<option %svalue=\"-1\">- no selection -</option>"
 msgstr "<option %svalue=\"-1\">- ÎÅ ÕËÁÚÁÎÏ -</option>"
 
-#: ../roundup/date.py:186
+#: ../roundup/date.py:301
 msgid "Not a date spec: \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr "äÁÔÁ ÄÏÌÖÎÁ ÂÙÔØ × ÆÏÒÍÁÔÅ \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" ÉÌÉ \"yyyy-mm-dd.HH:MM:SS.SSS\""
 
-#: ../roundup/date.py:240
+#: ../roundup/date.py:363
 #, python-format
 msgid "%r not a date / time spec \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" or \"yyyy-mm-dd.HH:MM:SS.SSS\""
 msgstr "îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÁÔÙ/×ÒÅÍÅÎÉ: %r.  äÁÔÁ ÄÏÌÖÎÁ ÂÙÔØ × ÆÏÒÍÁÔÅ \"yyyy-mm-dd\", \"mm-dd\", \"HH:MM\", \"HH:MM:SS\" ÉÌÉ \"yyyy-mm-dd.HH:MM:SS.SSS\""
 
-#: ../roundup/date.py:538
+#: ../roundup/date.py:662
 msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [date spec]"
 msgstr "éÎÔÅÒ×ÁÌ ÄÏÌÖÅÎ ÂÙÔØ × ÆÏÒÍÁÔÅ [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS] [ÄÁÔÁ]"
 
-#: ../roundup/date.py:557
+#: ../roundup/date.py:681
 msgid "Not an interval spec: [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
 msgstr "éÎÔÅÒ×ÁÌ ÄÏÌÖÅÎ ÂÙÔØ × ÆÏÒÍÁÔÅ [+-] [#y] [#m] [#w] [#d] [[[H]H:MM]:SS]"
 
-#: ../roundup/date.py:694
+#: ../roundup/date.py:818
 #, python-format
 msgid "%(number)s year"
 msgid_plural "%(number)s years"
@@ -1587,7 +1638,7 @@
 msgstr[1] "%(number)s ÇÏÄÁ"
 msgstr[2] "%(number)s ÌÅÔ"
 
-#: ../roundup/date.py:698
+#: ../roundup/date.py:822
 #, python-format
 msgid "%(number)s month"
 msgid_plural "%(number)s months"
@@ -1595,7 +1646,7 @@
 msgstr[1] "%(number)s ÍÅÓÑÃÁ"
 msgstr[2] "%(number)s ÍÅÓÑÃÅ×"
 
-#: ../roundup/date.py:702
+#: ../roundup/date.py:826
 #, python-format
 msgid "%(number)s week"
 msgid_plural "%(number)s weeks"
@@ -1603,7 +1654,7 @@
 msgstr[1] "%(number)s ÎÅÄÅÌÉ"
 msgstr[2] "%(number)s ÎÅÄÅÌØ"
 
-#: ../roundup/date.py:706
+#: ../roundup/date.py:830
 #, python-format
 msgid "%(number)s day"
 msgid_plural "%(number)s days"
@@ -1611,15 +1662,15 @@
 msgstr[1] "%(number)s ÄÎÑ"
 msgstr[2] "%(number)s ÄÎÅÊ"
 
-#: ../roundup/date.py:710
+#: ../roundup/date.py:834
 msgid "tomorrow"
 msgstr "ÚÁ×ÔÒÁ"
 
-#: ../roundup/date.py:712
+#: ../roundup/date.py:836
 msgid "yesterday"
 msgstr "×ÞÅÒÁ"
 
-#: ../roundup/date.py:715
+#: ../roundup/date.py:839
 #, python-format
 msgid "%(number)s hour"
 msgid_plural "%(number)s hours"
@@ -1627,16 +1678,16 @@
 msgstr[1] "%(number)s ÞÁÓÁ"
 msgstr[2] "%(number)s ÞÁÓÏ×"
 
-#: ../roundup/date.py:719
+#: ../roundup/date.py:843
 msgid "an hour"
 msgstr "ÞÁÓ"
 
-#: ../roundup/date.py:721
+#: ../roundup/date.py:845
 msgid "1 1/2 hours"
 msgstr "ÐÏÌÔÏÒÁ ÞÁÓÁ"
 
 # third form ain't used
-#: ../roundup/date.py:723
+#: ../roundup/date.py:847
 #, python-format
 msgid "1 %(number)s/4 hours"
 msgid_plural "1 %(number)s/4 hours"
@@ -1644,21 +1695,21 @@
 msgstr[1] "ÞÁÓ É %(number)s ÞÅÔ×ÅÒÔÉ"
 msgstr[2] "ÞÁÓ É %(number)s ÞÅÔ×ÅÒÔÅÊ"
 
-#: ../roundup/date.py:727
+#: ../roundup/date.py:851
 msgid "in a moment"
 msgstr "ÓÅÊÞÁÓ"
 
-#: ../roundup/date.py:729
+#: ../roundup/date.py:853
 msgid "just now"
 msgstr "ÔÏÌØËÏ ÞÔÏ"
 
 # ÉÓÐÏÌØÚÕÅÔÓÑ × ×ÙÒÁÖÅÎÉÑÈ "ÞÅÒÅÚ ÍÉÎÕÔÕ" ÉÌÉ "ÍÉÎÕÔÕ ÎÁÚÁÄ"
-#: ../roundup/date.py:732
+#: ../roundup/date.py:856
 msgid "1 minute"
 msgstr "ÍÉÎÕÔÕ"
 
 # ÉÓÐÏÌØÚÕÅÔÓÑ × ×ÙÒÁÖÅÎÉÑÈ "ÞÅÒÅÚ 2 ÍÉÎÕÔÙ" ÉÌÉ "2 ÍÉÎÕÔÙ ÎÁÚÁÄ"
-#: ../roundup/date.py:735
+#: ../roundup/date.py:859
 #, python-format
 msgid "%(number)s minute"
 msgid_plural "%(number)s minutes"
@@ -1666,11 +1717,11 @@
 msgstr[1] "%(number)s ÍÉÎÕÔÙ"
 msgstr[2] "%(number)s ÍÉÎÕÔ"
 
-#: ../roundup/date.py:738
+#: ../roundup/date.py:862
 msgid "1/2 an hour"
 msgstr "ÐÏÌÞÁÓÁ"
 
-#: ../roundup/date.py:740
+#: ../roundup/date.py:864
 #, python-format
 msgid "%(number)s/4 hour"
 msgid_plural "%(number)s/4 hours"
@@ -1678,12 +1729,12 @@
 msgstr[1] "%(number)s ÞÅÔ×ÅÒÔÉ ÞÁÓÁ"
 msgstr[2] "%(number)s ÞÅÔ×ÅÒÔÅÊ ÞÁÓÁ"
 
-#: ../roundup/date.py:744
+#: ../roundup/date.py:868
 #, python-format
 msgid "%s ago"
 msgstr "%s ÎÁÚÁÄ"
 
-#: ../roundup/date.py:746
+#: ../roundup/date.py:870
 #, python-format
 msgid "in %s"
 msgstr "ÞÅÒÅÚ %s"
@@ -1697,7 +1748,7 @@
 "÷îéíáîéå! ëÁÔÁÌÏÇ '%s'\n"
 "\tÓÏÄÅÒÖÉÔ ÛÁÂÌÏÎ ÓÔÁÒÏÇÏ ÏÂÒÁÚÃÁ - ÐÒÏÐÕÝÅÎ"
 
-#: ../roundup/mailgw.py:586
+#: ../roundup/mailgw.py:583
 msgid ""
 "\n"
 "Emails to Roundup trackers must include a Subject: line!\n"
@@ -1705,7 +1756,7 @@
 "\n"
 "÷ ÐÉÓØÍÁÈ ÄÌÑ ÔÒÅËÅÒÁ Roundup ÄÏÌÖÎÁ ÂÙÔØ ÕËÁÚÁÎÁ ÔÅÍÁ ÓÏÏÂÝÅÎÉÑ (Subject).\n"
 
-#: ../roundup/mailgw.py:674
+#: ../roundup/mailgw.py:673
 #, python-format
 msgid ""
 "\n"
@@ -1734,7 +1785,7 @@
 "        1234, ËÏÔÏÒÁÑ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ × ÔÒÅËÅÒÅ.\n"
 "ôÅÍÁ ×ÁÛÅÇÏ ÐÉÓØÍÁ: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:705
+#: ../roundup/mailgw.py:704
 #, python-format
 msgid ""
 "\n"
@@ -1751,7 +1802,7 @@
 "éÍÅÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÈ ËÌÁÓÓÏ×: %(validname)s\n"
 "ôÅÍÁ ×ÁÛÅÇÏ ÐÉÓØÍÁ: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:733
+#: ../roundup/mailgw.py:739
 #, python-format
 msgid ""
 "\n"
@@ -1770,7 +1821,7 @@
 "\n"
 "ôÅÍÁ ×ÁÛÅÇÏ ÐÉÓØÍÁ: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:766
+#: ../roundup/mailgw.py:772
 #, python-format
 msgid ""
 "\n"
@@ -1784,7 +1835,7 @@
 "\n"
 "ôÅÍÁ ×ÁÛÅÇÏ ÐÉÓØÍÁ: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:794
+#: ../roundup/mailgw.py:800
 #, python-format
 msgid ""
 "\n"
@@ -1798,7 +1849,7 @@
 "Ï ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÉÓÁÎÎÏÍ ËÌÁÓÓÅ:\n"
 "  %(current_class)s\n"
 
-#: ../roundup/mailgw.py:817
+#: ../roundup/mailgw.py:823
 #, python-format
 msgid ""
 "\n"
@@ -1812,7 +1863,7 @@
 "Ï ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÉÓÁÎÎÙÈ ÁÔÒÉÂÕÔÁÈ:\n"
 "  %(errors)s\n"
 
-#: ../roundup/mailgw.py:847
+#: ../roundup/mailgw.py:853
 #, python-format
 msgid ""
 "\n"
@@ -1825,21 +1876,21 @@
 "\n"
 "îÅÉÚ×ÅÓÔÎÙÊ ÁÄÒÅÓ: %(from_address)s\n"
 
-#: ../roundup/mailgw.py:855
+#: ../roundup/mailgw.py:861
 msgid "You are not permitted to access this tracker."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÄÏÓÔÕÐ Ë ÜÔÏÍÕ ÔÒÅËÅÒÕ."
 
-#: ../roundup/mailgw.py:862
+#: ../roundup/mailgw.py:868
 #, python-format
 msgid "You are not permitted to edit %(classname)s."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÒÅÄÁËÔÉÒÏ×ÁÔØ %(classname)s"
 
-#: ../roundup/mailgw.py:866
+#: ../roundup/mailgw.py:872
 #, python-format
 msgid "You are not permitted to create %(classname)s."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÓÏÚÄÁ×ÁÔØ ÏÂßÅËÔÙ %(classname)s"
 
-#: ../roundup/mailgw.py:913
+#: ../roundup/mailgw.py:919
 #, python-format
 msgid ""
 "\n"
@@ -1854,7 +1905,7 @@
 "\n"
 "ôÅÍÁ ÐÉÓØÍÁ: \"%(subject)s\"\n"
 
-#: ../roundup/mailgw.py:942
+#: ../roundup/mailgw.py:947
 msgid ""
 "\n"
 "Roundup requires the submission to be plain text. The message parser could\n"
@@ -1864,20 +1915,20 @@
 "óÏÏÂÝÅÎÉÑ ÄÌÑ Roundup ÄÏÌÖÎÙ ÂÙÔØ × ÔÅËÓÔÏ×ÏÍ ÆÏÒÍÁÔÅ.\n"
 "÷ ×ÁÛÅÍ ÓÏÏÂÝÅÎÉÉ ÎÅ ÎÁÊÄÅÎÁ ÞÁÓÔØ ÆÏÒÍÁÔÁ text/plain.\n"
 
-#: ../roundup/mailgw.py:964
+#: ../roundup/mailgw.py:969
 msgid "You are not permitted to create files."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÓÏÚÄÁÎÉÅ ÆÁÊÌÏ×."
 
-#: ../roundup/mailgw.py:978
+#: ../roundup/mailgw.py:983
 #, python-format
 msgid "You are not permitted to add files to %(classname)s."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÄÏÂÁ×ÌÑÔØ ÆÁÊÌÙ ÄÌÑ ËÌÁÓÓÁ %(classname)s."
 
-#: ../roundup/mailgw.py:996
+#: ../roundup/mailgw.py:1001
 msgid "You are not permitted to create messages."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÓÏÚÄÁÎÉÅ ÓÏÏÂÝÅÎÉÊ"
 
-#: ../roundup/mailgw.py:1004
+#: ../roundup/mailgw.py:1009
 #, python-format
 msgid ""
 "\n"
@@ -1888,17 +1939,17 @@
 "óÏÏÂÝÅÎÉÅ ÏÔÂÒÏÛÅÎÏ ÄÅÔÅËÔÏÒÏÍ.\n"
 "%(error)s\n"
 
-#: ../roundup/mailgw.py:1012
+#: ../roundup/mailgw.py:1017
 #, python-format
 msgid "You are not permitted to add messages to %(classname)s."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÄÏÂÁ×ÌÑÔØ ÓÏÏÂÝÅÎÉÑ ÄÌÑ ËÌÁÓÓÁ %(classname)s."
 
-#: ../roundup/mailgw.py:1039
+#: ../roundup/mailgw.py:1044
 #, python-format
 msgid "You are not permitted to edit property %(prop)s of class %(classname)s."
 msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÉÚÍÅÎÑÔØ ÁÔÒÉÂÕÔ %(prop)s ËÌÁÓÓÁ %(classname)s"
 
-#: ../roundup/mailgw.py:1047
+#: ../roundup/mailgw.py:1052
 #, python-format
 msgid ""
 "\n"
@@ -1909,78 +1960,93 @@
 "ðÒÉ ÏÂÒÁÂÏÔËÅ ×ÁÛÅÇÏ ÓÏÏÂÝÅÎÉÑ ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ:\n"
 "   %(message)s\n"
 
-#: ../roundup/mailgw.py:1069
+#: ../roundup/mailgw.py:1074
 msgid "not of form [arg=value,value,...;arg=value,value,...]"
 msgstr "ÁÒÇÕÍÅÎÔÙ ÄÏÌÖÎÙ ÂÙÔØ × ÆÏÒÍÁÔÅ [ÉÍÑ=ÚÎÁÞÅÎÉÅ,ÚÎÁÞÅÎÉÅ,...;ÉÍÑ=ÚÎÁÞÅÎÉÅ,ÚÎÁÞÅÎÉÅ,...]"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "files"
 msgstr "ÆÁÊÌÙ"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "messages"
 msgstr "ÓÏÏÂÝÅÎÉÑ"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "nosy"
 msgstr "ÉÚ×ÅÝÅÎÉÑ"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "superseder"
 msgstr "ÚÁÍÅÝÅÎÉÅ"
 
-#: ../roundup/roundupdb.py:142
+#: ../roundup/roundupdb.py:146
 msgid "title"
 msgstr "ÚÁÇÌÁ×ÉÅ"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "assignedto"
 msgstr "ÉÓÐÏÌÎÉÔÅÌØ"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "priority"
 msgstr "ÐÒÉÏÒÉÔÅÔ"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "status"
 msgstr "ÓÔÁÔÕÓ"
 
-#: ../roundup/roundupdb.py:143
+#: ../roundup/roundupdb.py:147
 msgid "topic"
 msgstr "ÔÅÍÁ"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "activity"
 msgstr "ÄÅÊÓÔ×ÉÅ"
 
 #. following properties are common for all hyperdb classes
 #. they are listed here to keep things in one place
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "actor"
 msgstr "×ÙÐÏÌÎÉÌ"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creation"
 msgstr "ÄÁÔÁ ÓÏÚÄÁÎÉÑ"
 
-#: ../roundup/roundupdb.py:146
+#: ../roundup/roundupdb.py:150
 msgid "creator"
 msgstr "Á×ÔÏÒ"
 
-#: ../roundup/roundupdb.py:304
+#: ../roundup/roundupdb.py:308
 #, python-format
 msgid "New submission from %(authname)s%(authaddr)s:"
 msgstr "îÏ×ÏÅ ÐÏÓÔÕÐÌÅÎÉÅ ÏÔ %(authname)s%(authaddr)s:"
 
-#: ../roundup/roundupdb.py:307
+#: ../roundup/roundupdb.py:311
 #, python-format
 msgid "%(authname)s%(authaddr)s added the comment:"
 msgstr "%(authname)s%(authaddr)s ÄÏÂÁ×ÉÌ ÚÁÍÅÞÁÎÉÅ:"
 
-#: ../roundup/roundupdb.py:310
+#: ../roundup/roundupdb.py:314
 msgid "System message:"
 msgstr "óÏÏÂÝÅÎÉÅ ÓÉÓÔÅÍÙ:"
 
+#: ../roundup/roundupdb.py:597
+#, python-format
+msgid ""
+"\n"
+"Now:\n"
+"%(new)s\n"
+"Was:\n"
+"%(old)s"
+msgstr ""
+"\n"
+"âÙÌÏ:\n"
+"%(old)s\n"
+"óÔÁÌÏ:\n"
+"%(new)s"
+
 #: ../roundup/scripts/roundup_demo.py:32
 #, python-format
 msgid "Enter directory path to create demo tracker [%s]: "
@@ -1999,7 +2065,7 @@
 #: ../roundup/scripts/roundup_mailgw.py:36
 #, python-format
 msgid ""
-"Usage: %(program)s [-v] [-c] [[-C class] -S field=value]* <instance home> [method]\n"
+"Usage: %(program)s [-v] [-c class] [[-C class] -S field=value]* <instance home> [method]\n"
 "\n"
 "Options:\n"
 " -v: print version and exit\n"
@@ -2044,6 +2110,10 @@
 " are both valid. The username and/or password will be prompted for if\n"
 " not supplied on the command-line.\n"
 "\n"
+"POPS:\n"
+" Connect to a POP server over ssl. This requires python 2.4 or later.\n"
+" This supports the same notation as POP.\n"
+"\n"
 "APOP:\n"
 " Same as POP, but using Authenticated POP:\n"
 "    apop username:password at server\n"
@@ -2062,7 +2132,7 @@
 "    imaps username:password at server [mailbox]\n"
 "\n"
 msgstr ""
-"÷ÙÚÏ×: %(program)s [-v] [-c] [[-C ËÌÁÓÓ] -S ÐÏÌÅ=ÚÎÁÞÅÎÉÅ]* <ËÁÔÁÌÏÇ ÔÒÅËÅÒÁ> [ÐÏÞÔÏ×ÙÊ ÑÝÉË]\n"
+"÷ÙÚÏ×: %(program)s [-v] [-c ËÌÁÓÓ] [[-C ËÌÁÓÓ] -S ÐÏÌÅ=ÚÎÁÞÅÎÉÅ]* <ËÁÔÁÌÏÇ ÔÒÅËÅÒÁ> [ÐÏÞÔÏ×ÙÊ ÑÝÉË]\n"
 "\n"
 "ëÌÀÞÉ:\n"
 " -v: ÐÏËÁÚÁÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
@@ -2112,6 +2182,11 @@
 "    pop server\n"
 " åÓÌÉ ÉÍÑ ÉÌÉ ÐÁÒÏÌØ ÎÅ ÕËÁÚÁÎÙ, ÐÒÏÇÒÁÍÍÁ ÐÏÐÒÏÓÉÔ ××ÅÓÔÉ ÉÈ Ó ÔÅÒÍÉÎÁÌÁ.\n"
 "\n"
+"POPS:\n"
+" óÏÅÄÉÎÅÎÉÅ Ó POP3-ÓÅÒ×ÅÒÏÍ ÞÅÒÅÚ SSL.  äÌÑ ÜÔÏÇÏ ÓÏÅÄÉÎÅÎÉÑ ÔÒÅÂÕÅÔÓÑ\n"
+" python 2.4 ÉÌÉ ÂÏÌÅÅ ÎÏ×ÙÊ.  óÅÒ×ÅÒ, ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ É ÐÁÒÏÌØ ÕËÁÚÙ×ÁÀÔÓÑ\n"
+" ÔÁË ÖÅ, ËÁË É ÄÌÑ ÏÂÙÞÎÏÇÏ ÓÅÒ×ÅÒÁ POP.\n"
+"\n"
 "APOP:\n"
 " ôÏ ÖÅ, ÞÔÏ É POP, ÎÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÐÒÏÔÏËÏÌÁ Authenticated POP:\n"
 "    apop username:password at server\n"
@@ -2130,19 +2205,23 @@
 "    imaps username:password at server [mailbox]\n"
 "\n"
 
-#: ../roundup/scripts/roundup_mailgw.py:147
+#: ../roundup/scripts/roundup_mailgw.py:151
 msgid "Error: not enough source specification information"
 msgstr "ïÛÉÂËÁ: ÎÅ ÕËÁÚÁÎ ÐÕÔØ Ë ÐÏÞÔÏ×ÏÍÕ ÑÝÉËÕ"
 
-#: ../roundup/scripts/roundup_mailgw.py:163
+#: ../roundup/scripts/roundup_mailgw.py:167
+msgid "Error: a later version of python is required"
+msgstr "ïÛÉÂËÁ: ÔÒÅÂÕÅÔÓÑ ÂÏÌÅÅ ÎÏ×ÁÑ ×ÅÒÓÉÑ Python"
+
+#: ../roundup/scripts/roundup_mailgw.py:170
 msgid "Error: pop specification not valid"
 msgstr "ïÛÉÂËÁ: ÎÅÐÒÁ×ÉÌØÎÙÊ ÁÄÒÅÓ pop-ÓÅÒ×ÅÒÁ"
 
-#: ../roundup/scripts/roundup_mailgw.py:170
+#: ../roundup/scripts/roundup_mailgw.py:177
 msgid "Error: apop specification not valid"
 msgstr "ïÛÉÂËÁ: ÎÅÐÒÁ×ÉÌØÎÙÊ ÁÄÒÅÓ apop-ÓÅÒ×ÅÒÁ"
 
-#: ../roundup/scripts/roundup_mailgw.py:184
+#: ../roundup/scripts/roundup_mailgw.py:189
 msgid "Error: The source must be either \"mailbox\", \"pop\", \"apop\", \"imap\" or \"imaps\""
 msgstr "ïÛÉÂËÁ: ôÉÐ ÐÏÞÔÏ×ÏÇÏ ÑÝÉËÁ ÄÏÌÖÅÎ ÂÙÔØ \"mailbox\", \"pop\", \"apop\", \"imap\" ÉÌÉ \"imaps\""
 
@@ -2154,52 +2233,52 @@
 "<html><head><title>óÐÉÓÏË ÔÒÅËÅÒÏ× Roundup</title></head>\n"
 "<body><h1>óÐÉÓÏË ÔÒÅËÅÒÏ× Roundup</h1><ol>\n"
 
-#: ../roundup/scripts/roundup_server.py:287
+#: ../roundup/scripts/roundup_server.py:293
 #, python-format
 msgid "Error: %s: %s"
 msgstr "ïÛÉÂËÁ: %s: %s"
 
-#: ../roundup/scripts/roundup_server.py:297
+#: ../roundup/scripts/roundup_server.py:303
 msgid "WARNING: ignoring \"-g\" argument, not root"
 msgstr "÷îéíáîéå: ÐÁÒÁÍÅÔÒ \"-g\" ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ, ÏÎ ÒÁÚÒÅÛÅÎ ÔÏÌØËÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ root"
 
-#: ../roundup/scripts/roundup_server.py:303
+#: ../roundup/scripts/roundup_server.py:309
 msgid "Can't change groups - no grp module"
 msgstr "ðÏÄÍÅÎÁ ÇÒÕÐÐÙ ÎÅ×ÏÚÍÏÖÎÁ - ÎÕÖÅÎ ÍÏÄÕÌØ grp"
 
-#: ../roundup/scripts/roundup_server.py:312
+#: ../roundup/scripts/roundup_server.py:318
 #, python-format
 msgid "Group %(group)s doesn't exist"
 msgstr "çÒÕÐÐÁ %(group)s ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
-#: ../roundup/scripts/roundup_server.py:323
+#: ../roundup/scripts/roundup_server.py:329
 msgid "Can't run as root!"
 msgstr "úÁÐÕÓË ÓÅÒ×ÅÒÁ Ó ÐÏÌÎÏÍÏÞÉÑÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑ root ÚÁÐÒÅÝÅÎ!"
 
-#: ../roundup/scripts/roundup_server.py:326
+#: ../roundup/scripts/roundup_server.py:332
 msgid "WARNING: ignoring \"-u\" argument, not root"
 msgstr "÷îéíáîéå: ÐÁÒÁÍÅÔÒ \"-u\" ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ, ÏÎ ÒÁÚÒÅÛÅÎ ÔÏÌØËÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ root"
 
-#: ../roundup/scripts/roundup_server.py:331
+#: ../roundup/scripts/roundup_server.py:338
 msgid "Can't change users - no pwd module"
 msgstr "ðÏÄÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÑ ÎÅ×ÏÚÍÏÖÎÁ - ÎÕÖÅÎ ÍÏÄÕÌØ pwd"
 
-#: ../roundup/scripts/roundup_server.py:340
+#: ../roundup/scripts/roundup_server.py:347
 #, python-format
 msgid "User %(user)s doesn't exist"
 msgstr "ðÏÌØÚÏ×ÁÔÅÌØ %(user)s ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
 
-#: ../roundup/scripts/roundup_server.py:471
+#: ../roundup/scripts/roundup_server.py:481
 #, python-format
 msgid "Multiprocess mode \"%s\" is not available, switching to single-process"
 msgstr "òÅÖÉÍ \"%s\" ÎÅÄÏÓÔÕÐÅÎ, ÐÅÒÅËÌÀÞÁÅÍÓÑ × ÏÄÎÏÚÁÄÁÞÎÙÊ ÒÅÖÉÍ"
 
-#: ../roundup/scripts/roundup_server.py:494
+#: ../roundup/scripts/roundup_server.py:504
 #, python-format
 msgid "Unable to bind to port %s, port already in use."
 msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÓÅÒ×ÅÒ ÎÁ ÐÏÒÔÕ %s, ÐÏÒÔ ÕÖÅ ÚÁÎÑÔ."
 
-#: ../roundup/scripts/roundup_server.py:562
+#: ../roundup/scripts/roundup_server.py:572
 msgid ""
 " -c <Command>  Windows Service options.\n"
 "               If you want to run the server as a Windows Service, you\n"
@@ -2216,7 +2295,7 @@
 "               ÆÁÊÌ ÐÒÏÔÏËÏÌÁ.  ëÏÍÁÎÄÁ 'roundup-server -c help'\n"
 "               ×ÙÄÁÅÔ ÓÐÒÁ×ËÕ Ï ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÓÅÒ×ÉÓÁ Windows."
 
-#: ../roundup/scripts/roundup_server.py:569
+#: ../roundup/scripts/roundup_server.py:579
 msgid ""
 " -u <UID>      runs the Roundup web server as this UID\n"
 " -g <GID>      runs the Roundup web server as this GID\n"
@@ -2230,7 +2309,7 @@
 "               É ÚÁÐÕÓÔÉÔØ ÓÅÒ×ÅÒ × ÆÏÎÏ×ÏÍ ÒÅÖÉÍÅ.  åÓÌÉ ÕËÁÚÁÎÏ \"-d\",\n"
 "               ÆÁÊÌ ÐÒÏÔÏËÏÌÁ *ÏÂÑÚÁÔÅÌØÎÏ* ÄÏÌÖÅÎ ÂÙÔØ ÚÁÄÁÎ ËÌÀÞÏÍ \"-l\""
 
-#: ../roundup/scripts/roundup_server.py:576
+#: ../roundup/scripts/roundup_server.py:586
 #, python-format
 msgid ""
 "%(message)sUsage: roundup-server [options] [name=tracker home]*\n"
@@ -2337,20 +2416,20 @@
 "   ÎÅ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ × URL (ÐÒÏÂÅÌÙ, ÒÕÓÓËÉÅ ÂÕË×Ù É ÐÒÏÞ.),\n"
 "   ÐÏÔÏÍÕ ÞÔÏ ÔÁËÉÅ ÉÍÅÎÁ ÓÂÉ×ÁÀÔ Ó ÔÏÌËÕ ÎÅËÏÔÏÒÙÅ ÂÒÁÕÚÅÒÙ ÔÉÐÁ IE.\n"
 
-#: ../roundup/scripts/roundup_server.py:723
+#: ../roundup/scripts/roundup_server.py:741
 msgid "Instances must be name=home"
 msgstr "óÐÉÓÏË ÔÒÅËÅÒÏ× ÄÏÌÖÅÎ ÂÙÔØ × ÆÏÒÍÁÔÅ ÉÍÑ=ËÁÔÁÌÏÇ"
 
-#: ../roundup/scripts/roundup_server.py:737
+#: ../roundup/scripts/roundup_server.py:755
 #, python-format
 msgid "Configuration saved to %s"
 msgstr "ëÏÎÆÉÇÕÒÁÃÉÑ ÚÁÐÉÓÁÎÁ × %s"
 
-#: ../roundup/scripts/roundup_server.py:755
+#: ../roundup/scripts/roundup_server.py:773
 msgid "Sorry, you can't run the server as a daemon on this Operating System"
 msgstr "éÚ×ÉÎÉÔÅ, × ÜÔÏÊ ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÅ ÒÁÂÏÔÁ × ÆÏÎÏ×ÏÍ ÒÅÖÉÍÅ ÎÅ×ÏÚÍÏÖÎÁ"
 
-#: ../roundup/scripts/roundup_server.py:767
+#: ../roundup/scripts/roundup_server.py:788
 #, python-format
 msgid "Roundup server started on %(HOST)s:%(PORT)s"
 msgstr "óÅÒ×ÅÒ Roundup ÇÏÔÏ× Ë ÒÁÂÏÔÅ ÐÏ ÁÄÒÅÓÕ %(HOST)s:%(PORT)s"
@@ -2379,35 +2458,70 @@
 "  <a href='${context}>ðÅÒÅÞÉÔÁÊÔÅ</a> ÆÏÒÍÕ É ×ÎÅÓÉÔÅ ÉÚÍÅÎÅÎÉÑ\n"
 "  ÚÁÎÏ×Ï, ÐÏÖÁÌÕÊÓÔÁ.\n"
 
-#: ../templates/classic/html/_generic.help.html:9
-#: ../templates/minimal/html/_generic.help.html:9
-msgid "${property} help - ${tracker}"
-msgstr "óÐÒÁ×ËÁ ÐÏ ÐÏÌÀ \"${property}\" - ${tracker}"
+#: ../templates/classic/html/_generic.help-empty.html:6
+msgid "Please specify your search parameters!"
+msgstr "îÅ ÚÁÄÁÎÙ ÐÁÒÁÍÅÔÒÙ ÐÏÉÓËÁ."
 
+#: ../templates/classic/html/_generic.help-list.html:20
+#: ../templates/classic/html/_generic.index.html:14
+#: ../templates/classic/html/_generic.item.html:12
+#: ../templates/classic/html/file.item.html:9
+#: ../templates/classic/html/issue.index.html:16
+#: ../templates/classic/html/issue.item.html:28
+#: ../templates/classic/html/msg.item.html:26
+#: ../templates/classic/html/user.index.html:9
+#: ../templates/classic/html/user.item.html:35
+#: ../templates/minimal/html/_generic.index.html:14
+#: ../templates/minimal/html/_generic.item.html:12
+#: ../templates/minimal/html/user.index.html:9
+#: ../templates/minimal/html/user.item.html:35
+#: ../templates/minimal/html/user.register.html:14
+msgid "You are not allowed to view this page."
+msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÐÒÏÓÍÏÔÒ ÜÔÏÊ ÓÔÒÁÎÉÃÙ."
+
+#: ../templates/classic/html/_generic.help-list.html:34
+msgid "1..25 out of 50"
+msgstr "1..25 ÉÚ 50"
+
+#: ../templates/classic/html/_generic.help-search.html:9
+msgid "Generic template ${template} or version for class ${classname} is not yet implemented"
+msgstr "îÅ ÎÁÊÄÅÎ ÏÂÝÉÊ ÛÁÂÌÏÎ ${template} ÉÌÉ ÅÇÏ ×ÅÒÓÉÑ ÄÌÑ ËÌÁÓÓÁ ${classname}."
+
+#: ../templates/classic/html/_generic.help-submit.html:57
 #: ../templates/classic/html/_generic.help.html:31
 #: ../templates/minimal/html/_generic.help.html:31
 msgid " Cancel "
 msgstr " ïÔÍÅÎÉÔØ "
 
+#: ../templates/classic/html/_generic.help-submit.html:63
 #: ../templates/classic/html/_generic.help.html:34
 #: ../templates/minimal/html/_generic.help.html:34
 msgid " Apply "
 msgstr " ðÒÉÍÅÎÉÔØ "
 
+#: ../templates/classic/html/_generic.help.html:9
+#: ../templates/classic/html/user.help.html:13
+#: ../templates/minimal/html/_generic.help.html:9
+msgid "${property} help - ${tracker}"
+msgstr "óÐÒÁ×ËÁ ÐÏ ÐÏÌÀ \"${property}\" - ${tracker}"
+
 #: ../templates/classic/html/_generic.help.html:41
-#: ../templates/classic/html/issue.index.html:73
+#: ../templates/classic/html/help.html:21
+#: ../templates/classic/html/issue.index.html:80
 #: ../templates/minimal/html/_generic.help.html:41
 msgid "&lt;&lt; previous"
 msgstr "&lt;&lt; ÐÒÅÄÙÄÕÝÉÅ"
 
 #: ../templates/classic/html/_generic.help.html:53
-#: ../templates/classic/html/issue.index.html:81
+#: ../templates/classic/html/help.html:28
+#: ../templates/classic/html/issue.index.html:88
 #: ../templates/minimal/html/_generic.help.html:53
 msgid "${start}..${end} out of ${total}"
 msgstr "${start}..${end} ÉÚ ${total}"
 
 #: ../templates/classic/html/_generic.help.html:57
-#: ../templates/classic/html/issue.index.html:84
+#: ../templates/classic/html/help.html:32
+#: ../templates/classic/html/issue.index.html:91
 #: ../templates/minimal/html/_generic.help.html:57
 msgid "next &gt;&gt;"
 msgstr "ÓÌÅÄÕÀÝÉÅ &gt;&gt;"
@@ -2426,29 +2540,28 @@
 msgid "${class} editing"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÎÉÅ ${class}"
 
-#: ../templates/classic/html/_generic.index.html:14
-#: ../templates/classic/html/_generic.item.html:12
-#: ../templates/classic/html/file.item.html:9
-#: ../templates/classic/html/issue.index.html:16
-#: ../templates/classic/html/issue.item.html:28
-#: ../templates/classic/html/msg.item.html:26
-#: ../templates/classic/html/user.index.html:9
-#: ../templates/classic/html/user.item.html:28
-#: ../templates/minimal/html/_generic.index.html:14
-#: ../templates/minimal/html/_generic.item.html:12
-#: ../templates/minimal/html/user.index.html:9
-#: ../templates/minimal/html/user.item.html:28
-#: ../templates/minimal/html/user.register.html:14
-msgid "You are not allowed to view this page."
-msgstr "õ ×ÁÓ ÎÅÔ ÒÁÚÒÅÛÅÎÉÑ ÎÁ ÐÒÏÓÍÏÔÒ ÜÔÏÊ ÓÔÒÁÎÉÃÙ."
+#: ../templates/classic/html/_generic.index.html:19
+#: ../templates/classic/html/_generic.item.html:16
+#: ../templates/classic/html/file.item.html:13
+#: ../templates/classic/html/issue.index.html:20
+#: ../templates/classic/html/issue.item.html:32
+#: ../templates/classic/html/msg.item.html:30
+#: ../templates/classic/html/user.index.html:13
+#: ../templates/classic/html/user.item.html:39
+#: ../templates/minimal/html/_generic.index.html:19
+#: ../templates/minimal/html/_generic.item.html:17
+#: ../templates/minimal/html/user.index.html:13
+#: ../templates/minimal/html/user.register.html:17
+msgid "Please login with your username and password."
+msgstr "õËÁÖÉÔÅ ÉÍÑ ÐÏÌØÚÏ×ÁÔÅÌÑ É ÐÁÒÏÌØ ÄÌÑ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ."
 
-#: ../templates/classic/html/_generic.index.html:22
-#: ../templates/minimal/html/_generic.index.html:22
+#: ../templates/classic/html/_generic.index.html:28
+#: ../templates/minimal/html/_generic.index.html:28
 msgid "<p class=\"form-help\"> You may edit the contents of the ${classname} class using this form. Commas, newlines and double quotes (\") must be handled delicately. You may include commas and newlines by enclosing the values in double-quotes (\"). Double quotes themselves must be quoted by doubling (\"\"). </p> <p class=\"form-help\"> Multilink properties have their multiple values colon (\":\") separated (... ,\"one:two:three\", ...) </p> <p class=\"form-help\"> Remove entries by deleting their line. Add new entries by appending them to the table - put an X in the id column. </p>"
 msgstr "<p class=\"form-help\"> ðÒÉ ÐÏÍÏÝÉ ÜÔÏÊ ÆÏÒÍÙ ×Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÓÏÄÅÒÖÉÍÏÅ ËÌÁÓÓÁ ${classname}. âÕÄØÔÅ ÏÓÔÏÒÏÖÎÙ Ó ÚÁÐÑÔÙÍÉ, ÐÅÒÅ×ÏÄÁÍÉ ÓÔÒÏË É Ä×ÏÊÎÙÍÉ ËÁ×ÙÞËÁÍÉ (\"). úÎÁÞÅÎÉÑ, ÓÏÄÅÒÖÁÝÉÅ ÚÁÐÑÔÙÅ É ÐÅÒÅ×ÏÄÙ ÓÔÒÏË, ÄÏÌÖÎÙ ÂÙÔØ ÚÁËÌÀÞÅÎÙ × Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ (\"). ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ × ÚÎÁÞÅÎÉÑÈ ÄÏÌÖÎÙ ÂÙÔØ ÕÄ×ÏÅÎÙ (\"\"). </p> <p class=\"form-help\"> úÎÁÞÅÎÉÑ ÍÎÏÖÅÓÔ×ÅÎÎÙÈ ÓÓÙÌÏË (multilink properties) ÒÁÚÄÅÌÑÀÔÓÑ Ä×ÏÅÔÏÞÉÅÍ (... ,\"ÒÁÚ:Ä×Á:ÔÒÉ\", ...) </p> <p class=\"form-help\"> äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÕÎÉÞÔÏÖÉÔØ ÚÁÐÉÓØ, ÕÄÁÌÉÔÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ ÓÔÒÏËÕ.  îÏ×ÙÅ ÚÁÐÉÓÉ ÄÏÐÉÓÙ×ÁÀÔÓÑ × ËÏÎÅà ÔÁÂÌÉÃÙ. ÷ÍÅÓÔÏ ÉÄÅÎÔÉÆÉËÁÔÏÒÁ (id) ÎÏ×ÙÈ ÚÁÐÉÓÅÊ ÎÕÖÎÏ ×ÐÉÓÙ×ÁÔØ ÌÁÔÉÎÓËÕÀ ÂÕË×Õ \"X\". </p>"
 
-#: ../templates/classic/html/_generic.index.html:44
-#: ../templates/minimal/html/_generic.index.html:44
+#: ../templates/classic/html/_generic.index.html:50
+#: ../templates/minimal/html/_generic.index.html:50
 msgid "Edit Items"
 msgstr "éÚÍÅÎÉÔØ"
 
@@ -2465,7 +2578,7 @@
 msgstr "óËÁÞÁÔØ"
 
 #: ../templates/classic/html/file.index.html:11
-#: ../templates/classic/html/file.item.html:22
+#: ../templates/classic/html/file.item.html:27
 msgid "Content Type"
 msgstr "ôÉÐ ÆÁÊÌÁ"
 
@@ -2474,7 +2587,7 @@
 msgstr "úÁÇÒÕÚÉÌ"
 
 #: ../templates/classic/html/file.index.html:13
-#: ../templates/classic/html/msg.item.html:43
+#: ../templates/classic/html/msg.item.html:48
 msgid "Date"
 msgstr "äÁÔÁ"
 
@@ -2486,13 +2599,12 @@
 msgid "File display"
 msgstr "ðÒÏÓÍÏÔÒ ÆÁÊÌÁ"
 
-#: ../templates/classic/html/file.item.html:18
-#: ../templates/classic/html/user.item.html:39
+#: ../templates/classic/html/file.item.html:23
 #: ../templates/classic/html/user.register.html:17
 msgid "Name"
 msgstr "éÍÑ"
 
-#: ../templates/classic/html/file.item.html:40
+#: ../templates/classic/html/file.item.html:45
 msgid "download"
 msgstr "ÓËÁÞÁÔØ"
 
@@ -2506,80 +2618,77 @@
 msgid "List of classes"
 msgstr "óÐÉÓÏË ËÌÁÓÓÏ×"
 
-#: ../templates/classic/html/issue.index.html:7
-msgid "List of issues - ${tracker}"
-msgstr "óÐÉÓÏË ÚÁÄÁÞ - ${tracker}"
-
-#: ../templates/classic/html/issue.index.html:11
+#: ../templates/classic/html/issue.index.html:4
+#: ../templates/classic/html/issue.index.html:10
 msgid "List of issues"
 msgstr "óÐÉÓÏË ÚÁÄÁÞ"
 
-#: ../templates/classic/html/issue.index.html:22
-#: ../templates/classic/html/issue.item.html:44
+#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.item.html:49
 msgid "Priority"
 msgstr "ðÒÉÏÒÉÔÅÔ"
 
-#: ../templates/classic/html/issue.index.html:23
+#: ../templates/classic/html/issue.index.html:28
 msgid "ID"
 msgstr ""
 
-#: ../templates/classic/html/issue.index.html:24
+#: ../templates/classic/html/issue.index.html:29
 msgid "Creation"
 msgstr "äÁÔÁ ÓÏÚÄÁÎÉÑ"
 
-#: ../templates/classic/html/issue.index.html:25
+#: ../templates/classic/html/issue.index.html:30
 msgid "Activity"
 msgstr "äÅÊÓÔ×ÉÅ"
 
-#: ../templates/classic/html/issue.index.html:26
+#: ../templates/classic/html/issue.index.html:31
 msgid "Actor"
 msgstr "÷ÙÐÏÌÎÉÌ"
 
-#: ../templates/classic/html/issue.index.html:27
+#: ../templates/classic/html/issue.index.html:32
 msgid "Topic"
 msgstr "ôÅÍÁ"
 
-#: ../templates/classic/html/issue.index.html:28
-#: ../templates/classic/html/issue.item.html:39
+#: ../templates/classic/html/issue.index.html:33
+#: ../templates/classic/html/issue.item.html:44
 msgid "Title"
 msgstr "úÁÇÌÁ×ÉÅ"
 
-#: ../templates/classic/html/issue.index.html:29
-#: ../templates/classic/html/issue.item.html:46
+#: ../templates/classic/html/issue.index.html:34
+#: ../templates/classic/html/issue.item.html:51
 msgid "Status"
 msgstr "óÔÁÔÕÓ"
 
-#: ../templates/classic/html/issue.index.html:30
+#: ../templates/classic/html/issue.index.html:35
 msgid "Creator"
 msgstr "á×ÔÏÒ"
 
-#: ../templates/classic/html/issue.index.html:31
+#: ../templates/classic/html/issue.index.html:36
 msgid "Assigned&nbsp;To"
 msgstr "éÓÐÏÌÎÉÔÅÌØ"
 
-#: ../templates/classic/html/issue.index.html:97
+#: ../templates/classic/html/issue.index.html:104
 msgid "Download as CSV"
 msgstr "óËÁÞÁÔØ CSV"
 
-#: ../templates/classic/html/issue.index.html:105
+#: ../templates/classic/html/issue.index.html:114
 msgid "Sort on:"
 msgstr "óÏÒÔÉÒÏ×ËÁ:"
 
-#: ../templates/classic/html/issue.index.html:108
-#: ../templates/classic/html/issue.index.html:125
+#: ../templates/classic/html/issue.index.html:118
+#: ../templates/classic/html/issue.index.html:139
 msgid "- nothing -"
 msgstr "- ÎÅÔ -"
 
-#: ../templates/classic/html/issue.index.html:116
-#: ../templates/classic/html/issue.index.html:133
+#: ../templates/classic/html/issue.index.html:126
+#: ../templates/classic/html/issue.index.html:147
 msgid "Descending:"
 msgstr "ðÏ ÕÂÙ×ÁÎÉÀ:"
 
-#: ../templates/classic/html/issue.index.html:122
+#: ../templates/classic/html/issue.index.html:135
 msgid "Group on:"
 msgstr "çÒÕÐÐÉÒÏ×ËÁ:"
 
-#: ../templates/classic/html/issue.index.html:139
+#: ../templates/classic/html/issue.index.html:154
 msgid "Redisplay"
 msgstr "ïÂÎÏ×ÉÔØ"
 
@@ -2607,97 +2716,97 @@
 msgid "Issue${id} Editing"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÎÉÅ ÚÁÄÁÞÉ ${id}"
 
-#: ../templates/classic/html/issue.item.html:51
+#: ../templates/classic/html/issue.item.html:56
 msgid "Superseder"
 msgstr "úÁÍÅÝÅÎÉÅ"
 
-#: ../templates/classic/html/issue.item.html:56
-msgid "View: ${link}"
-msgstr "ðÒÏÓÍÏÔÒ: ${link}"
+#: ../templates/classic/html/issue.item.html:61
+msgid "View:"
+msgstr "ðÒÏÓÍÏÔÒ:"
 
-#: ../templates/classic/html/issue.item.html:60
+#: ../templates/classic/html/issue.item.html:67
 msgid "Nosy List"
 msgstr "òÁÓÓÙÌËÁ ÉÚ×ÅÝÅÎÉÊ"
 
-#: ../templates/classic/html/issue.item.html:69
+#: ../templates/classic/html/issue.item.html:76
 msgid "Assigned To"
 msgstr "éÓÐÏÌÎÉÔÅÌØ"
 
-#: ../templates/classic/html/issue.item.html:71
+#: ../templates/classic/html/issue.item.html:78
 msgid "Topics"
 msgstr "ôÅÍÙ"
 
-#: ../templates/classic/html/issue.item.html:79
+#: ../templates/classic/html/issue.item.html:86
 msgid "Change Note"
 msgstr "úÁÍÅÔËÉ"
 
-#: ../templates/classic/html/issue.item.html:87
+#: ../templates/classic/html/issue.item.html:94
 msgid "File"
 msgstr "æÁÊÌ"
 
-#: ../templates/classic/html/issue.item.html:99
+#: ../templates/classic/html/issue.item.html:106
 msgid "Make a copy"
 msgstr "óËÏÐÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/issue.item.html:107
-#: ../templates/classic/html/user.item.html:106
+#: ../templates/classic/html/issue.item.html:114
+#: ../templates/classic/html/user.item.html:152
 #: ../templates/classic/html/user.register.html:69
-#: ../templates/minimal/html/user.item.html:86
+#: ../templates/minimal/html/user.item.html:147
 msgid "<table class=\"form\"> <tr> <td>Note:&nbsp;</td> <th class=\"required\">highlighted</th> <td>&nbsp;fields are required.</td> </tr> </table>"
 msgstr "<table class=\"form\"> <tr> <td>ðÒÉÍÅÞÁÎÉÅ:&nbsp;</td><th class=\"required\">×ÙÄÅÌÅÎÎÙÅ</th><td>&nbsp;ÐÏÌÑ ÄÏÌÖÎÙ ÂÙÔØ ÚÁÐÏÌÎÅÎÙ.</td> </tr> </table>"
 
-#: ../templates/classic/html/issue.item.html:121
+#: ../templates/classic/html/issue.item.html:128
 msgid "Created on <b>${creation}</b> by <b>${creator}</b>, last changed <b>${activity}</b> by <b>${actor}</b>."
 msgstr "óÏÚÄÁÎÏ <b>${creation}</b> ÐÏÌØÚÏ×ÁÔÅÌÅÍ <b>${creator}</b>, ÐÏÓÌÅÄÎÅÅ ÉÚÍÅÎÅÎÉÅ <b>${activity}</b>, ÐÏÌØÚÏ×ÁÔÅÌØ <b>${actor}</b>."
 
-#: ../templates/classic/html/issue.item.html:125
-#: ../templates/classic/html/msg.item.html:56
+#: ../templates/classic/html/issue.item.html:132
+#: ../templates/classic/html/msg.item.html:61
 msgid "Files"
 msgstr "æÁÊÌÙ"
 
-#: ../templates/classic/html/issue.item.html:127
-#: ../templates/classic/html/msg.item.html:58
+#: ../templates/classic/html/issue.item.html:134
+#: ../templates/classic/html/msg.item.html:63
 msgid "File name"
 msgstr "éÍÑ ÆÁÊÌÁ"
 
-#: ../templates/classic/html/issue.item.html:128
-#: ../templates/classic/html/msg.item.html:59
+#: ../templates/classic/html/issue.item.html:135
+#: ../templates/classic/html/msg.item.html:64
 msgid "Uploaded"
 msgstr "úÁÇÒÕÖÅÎ"
 
-#: ../templates/classic/html/issue.item.html:129
+#: ../templates/classic/html/issue.item.html:136
 msgid "Type"
 msgstr "ôÉÐ"
 
-#: ../templates/classic/html/issue.item.html:130
+#: ../templates/classic/html/issue.item.html:137
 #: ../templates/classic/html/query.edit.html:30
 msgid "Edit"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/issue.item.html:131
+#: ../templates/classic/html/issue.item.html:138
 msgid "Remove"
 msgstr "õÄÁÌÉÔØ"
 
-#: ../templates/classic/html/issue.item.html:151
-#: ../templates/classic/html/issue.item.html:172
+#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:179
 #: ../templates/classic/html/query.edit.html:50
 msgid "remove"
 msgstr "ÕÄÁÌÉÔØ"
 
-#: ../templates/classic/html/issue.item.html:158
+#: ../templates/classic/html/issue.item.html:165
 #: ../templates/classic/html/msg.index.html:9
 msgid "Messages"
 msgstr "óÏÏÂÝÅÎÉÑ"
 
-#: ../templates/classic/html/issue.item.html:162
+#: ../templates/classic/html/issue.item.html:169
 msgid "msg${id} (view)"
 msgstr "msg${id} (ÐÒÏÓÍÏÔÒ)"
 
-#: ../templates/classic/html/issue.item.html:163
+#: ../templates/classic/html/issue.item.html:170
 msgid "Author: ${author}"
 msgstr "á×ÔÏÒ: ${author}"
 
-#: ../templates/classic/html/issue.item.html:165
+#: ../templates/classic/html/issue.item.html:172
 msgid "Date: ${date}"
 msgstr "äÁÔÁ: ${date}"
 
@@ -2709,127 +2818,129 @@
 msgid "Issue searching"
 msgstr "ðÏÉÓË"
 
-#: ../templates/classic/html/issue.search.html:25
+#: ../templates/classic/html/issue.search.html:31
 msgid "Filter on"
 msgstr "þÔÏ ÉÓËÁÔØ"
 
-#: ../templates/classic/html/issue.search.html:26
+#: ../templates/classic/html/issue.search.html:32
 msgid "Display"
 msgstr "ðÏËÁÚÁÔØ"
 
-#: ../templates/classic/html/issue.search.html:27
+#: ../templates/classic/html/issue.search.html:33
 msgid "Sort on"
 msgstr "óÏÒÔÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/issue.search.html:28
+#: ../templates/classic/html/issue.search.html:34
 msgid "Group on"
 msgstr "çÒÕÐÐÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/issue.search.html:32
+#: ../templates/classic/html/issue.search.html:38
 msgid "All text*:"
 msgstr "×Ï ×ÓÅÍ ÔÅËÓÔÅ*:"
 
-#: ../templates/classic/html/issue.search.html:40
+#: ../templates/classic/html/issue.search.html:46
 msgid "Title:"
 msgstr "× ÚÁÇÏÌÏ×ËÅ:"
 
-#: ../templates/classic/html/issue.search.html:50
+#: ../templates/classic/html/issue.search.html:56
 msgid "Topic:"
 msgstr "ôÅÍÁ:"
 
-#: ../templates/classic/html/issue.search.html:58
+#: ../templates/classic/html/issue.search.html:64
 msgid "ID:"
 msgstr ""
 
-#: ../templates/classic/html/issue.search.html:66
+#: ../templates/classic/html/issue.search.html:72
 msgid "Creation Date:"
 msgstr "äÁÔÁ ÓÏÚÄÁÎÉÑ:"
 
-#: ../templates/classic/html/issue.search.html:77
+#: ../templates/classic/html/issue.search.html:83
 msgid "Creator:"
 msgstr "á×ÔÏÒ:"
 
-#: ../templates/classic/html/issue.search.html:79
+#: ../templates/classic/html/issue.search.html:85
 msgid "created by me"
 msgstr "ÓÏÚÄÁÎÏ ÍÎÏÊ"
 
-#: ../templates/classic/html/issue.search.html:88
+#: ../templates/classic/html/issue.search.html:94
 msgid "Activity:"
 msgstr "äÅÊÓÔ×ÉÅ:"
 
-#: ../templates/classic/html/issue.search.html:99
+#: ../templates/classic/html/issue.search.html:105
 msgid "Actor:"
 msgstr "÷ÙÐÏÌÎÉÌ:"
 
-#: ../templates/classic/html/issue.search.html:101
+#: ../templates/classic/html/issue.search.html:107
 msgid "done by me"
 msgstr "×ÙÐÏÌÎÅÎÏ ÍÎÏÊ"
 
-#: ../templates/classic/html/issue.search.html:112
+#: ../templates/classic/html/issue.search.html:118
 msgid "Priority:"
 msgstr "ðÒÉÏÒÉÔÅÔ:"
 
-#: ../templates/classic/html/issue.search.html:114
-#: ../templates/classic/html/issue.search.html:130
+#: ../templates/classic/html/issue.search.html:120
+#: ../templates/classic/html/issue.search.html:136
 msgid "not selected"
 msgstr "ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
 
-#: ../templates/classic/html/issue.search.html:125
+#: ../templates/classic/html/issue.search.html:131
 msgid "Status:"
 msgstr "óÔÁÔÕÓ:"
 
-#: ../templates/classic/html/issue.search.html:128
+#: ../templates/classic/html/issue.search.html:134
 msgid "not resolved"
 msgstr "ÎÅ ÚÁËÒÙÔ"
 
-#: ../templates/classic/html/issue.search.html:143
+#: ../templates/classic/html/issue.search.html:149
 msgid "Assigned to:"
 msgstr "éÓÐÏÌÎÉÔÅÌØ:"
 
-#: ../templates/classic/html/issue.search.html:146
+#: ../templates/classic/html/issue.search.html:152
 msgid "assigned to me"
 msgstr "ÐÏÒÕÞÅÎÏ ÍÎÅ"
 
-#: ../templates/classic/html/issue.search.html:148
+#: ../templates/classic/html/issue.search.html:154
 msgid "unassigned"
 msgstr "ÎÅÎÁÚÎÁÞÅÎÏ"
 
-#: ../templates/classic/html/issue.search.html:158
+#: ../templates/classic/html/issue.search.html:164
 msgid "No Sort or group:"
 msgstr "îÅ ÓÏÒÔÉÒÏ×ÁÔØ / ÎÅ ÇÒÕÐÐÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/issue.search.html:166
+#: ../templates/classic/html/issue.search.html:172
 msgid "Pagesize:"
 msgstr "òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ:"
 
-#: ../templates/classic/html/issue.search.html:172
+#: ../templates/classic/html/issue.search.html:178
 msgid "Start With:"
 msgstr "îÁÞÁÔØ Ó:"
 
-#: ../templates/classic/html/issue.search.html:178
+#: ../templates/classic/html/issue.search.html:184
 msgid "Sort Descending:"
 msgstr "óÏÒÔÉÒÏ×ÁÔØ ÐÏ ÕÂÙ×ÁÎÉÀ:"
 
-#: ../templates/classic/html/issue.search.html:185
+#: ../templates/classic/html/issue.search.html:191
 msgid "Group Descending:"
 msgstr "çÒÕÐÐÉÒÏ×ÁÔØ ÐÏ ÕÂÙ×ÁÎÉÀ"
 
-#: ../templates/classic/html/issue.search.html:192
+#: ../templates/classic/html/issue.search.html:198
 msgid "Query name**:"
 msgstr "éÍÑ ÚÁÐÒÏÓÁ**:"
 
-#: ../templates/classic/html/issue.search.html:204
-#: ../templates/classic/html/page.html:31
-#: ../templates/classic/html/page.html:60
-#: ../templates/minimal/html/page.html:31
+#: ../templates/classic/html/issue.search.html:210
+#: ../templates/classic/html/page.html:43
+#: ../templates/classic/html/page.html:92
+#: ../templates/classic/html/user.help-search.html:69
+#: ../templates/minimal/html/page.html:43
+#: ../templates/minimal/html/page.html:91
 msgid "Search"
 msgstr "ðÏÉÓË"
 
-#: ../templates/classic/html/issue.search.html:209
+#: ../templates/classic/html/issue.search.html:215
 msgid "*: The \"all text\" field will look in message bodies and issue titles"
 msgstr "*: ðÏÉÓË ÐÏ ×ÓÅÍÕ ÔÅËÓÔÕ ÉÝÅÔ ××ÅÄÅÎÎÕÀ ÓÔÒÏËÕ × ÚÁÇÏÌÏ×ËÁÈ É × ÔÅÌÅ ÓÏÏÂÝÅÎÉÊ."
 
-#: ../templates/classic/html/issue.search.html:212
+#: ../templates/classic/html/issue.search.html:218
 msgid "**: If you supply a name, the query will be saved off and available as a link in the sidebar"
 msgstr "**: åÓÌÉ ÕËÁÚÁÎÏ ÉÍÑ, ÚÁÐÒÏÓ ÂÕÄÅÔ ÓÏÈÒÁÎÅÎ ÐÏÄ ÜÔÉÍ ÉÍÅÎÅÍ É ÐÏÑ×ÉÔÓÑ × ÓÐÉÓËÅ ÚÁÐÒÏÓÏ× × ÍÅÎÀ."
 
@@ -2889,133 +3000,158 @@
 msgid "Message${id} Editing"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÎÉÅ ÓÏÏÂÝÅÎÉÑ ${id}"
 
-#: ../templates/classic/html/msg.item.html:33
+#: ../templates/classic/html/msg.item.html:38
 msgid "Author"
 msgstr "á×ÔÏÒ"
 
-#: ../templates/classic/html/msg.item.html:38
+#: ../templates/classic/html/msg.item.html:43
 msgid "Recipients"
 msgstr "áÄÒÅÓÁÔÙ"
 
-#: ../templates/classic/html/msg.item.html:49
+#: ../templates/classic/html/msg.item.html:54
 msgid "Content"
 msgstr "óÏÄÅÒÖÁÎÉÅ"
 
-#: ../templates/classic/html/page.html:41
+#: ../templates/classic/html/page.html:54
+#: ../templates/minimal/html/page.html:53
 msgid "<b>Your Queries</b> (<a href=\"query?@template=edit\">edit</a>)"
 msgstr "<b>÷ÁÛÉ ÚÁÐÒÏÓÙ</b> (<a href=\"query?@template=edit\">ÒÅÄÁËÔÏÒ</a>)"
 
-#: ../templates/classic/html/page.html:52
+#: ../templates/classic/html/page.html:65
+#: ../templates/minimal/html/page.html:64
 msgid "Issues"
 msgstr "úÁÄÁÞÉ"
 
-#: ../templates/classic/html/page.html:54
-#: ../templates/classic/html/page.html:74
+#: ../templates/classic/html/page.html:67
+#: ../templates/classic/html/page.html:105
+#: ../templates/minimal/html/page.html:66
+#: ../templates/minimal/html/page.html:104
 msgid "Create New"
 msgstr "äÏÂÁ×ÉÔØ"
 
-#: ../templates/classic/html/page.html:56
+#: ../templates/classic/html/page.html:69
+#: ../templates/minimal/html/page.html:68
 msgid "Show Unassigned"
 msgstr "îÅÎÁÚÎÁÞÅÎÎÙÅ"
 
-#: ../templates/classic/html/page.html:58
+#: ../templates/classic/html/page.html:81
+#: ../templates/minimal/html/page.html:80
 msgid "Show All"
 msgstr "ðÏËÁÚÁÔØ ×ÓÅ"
 
-#: ../templates/classic/html/page.html:61
+#: ../templates/classic/html/page.html:93
+#: ../templates/minimal/html/page.html:92
 msgid "Show issue:"
 msgstr "ðÏËÁÚÁÔØ:"
 
-#: ../templates/classic/html/page.html:72
+#: ../templates/classic/html/page.html:103
+#: ../templates/minimal/html/page.html:102
 msgid "Keywords"
 msgstr "ëÌÀÞÅ×ÙÅ&nbsp;ÓÌÏ×Á"
 
-#: ../templates/classic/html/page.html:78
+#: ../templates/classic/html/page.html:108
+#: ../templates/minimal/html/page.html:107
 msgid "Edit Existing"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÔØ"
 
-#: ../templates/classic/html/page.html:84
-#: ../templates/minimal/html/page.html:65
+#: ../templates/classic/html/page.html:114
+#: ../templates/minimal/html/page.html:113
 msgid "Administration"
 msgstr "áÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÅ"
 
-#: ../templates/classic/html/page.html:86
-#: ../templates/minimal/html/page.html:66
+#: ../templates/classic/html/page.html:116
+#: ../templates/minimal/html/page.html:115
 msgid "Class List"
 msgstr "óÐÉÓÏË ËÌÁÓÓÏ×"
 
-#: ../templates/classic/html/page.html:90
-#: ../templates/minimal/html/page.html:68
+#: ../templates/classic/html/page.html:120
+#: ../templates/minimal/html/page.html:119
 msgid "User List"
 msgstr "óÐÉÓÏË ÐÏÌØÚÏ×ÁÔÅÌÅÊ"
 
-#: ../templates/classic/html/page.html:92
-#: ../templates/minimal/html/page.html:71
+#: ../templates/classic/html/page.html:122
+#: ../templates/minimal/html/page.html:121
 msgid "Add User"
 msgstr "äÏÂÁ×ÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: ../templates/classic/html/page.html:99
-#: ../templates/classic/html/page.html:105
-#: ../templates/minimal/html/page.html:46
+#: ../templates/classic/html/page.html:129
+#: ../templates/classic/html/page.html:135
+#: ../templates/minimal/html/page.html:128
+#: ../templates/minimal/html/page.html:134
 msgid "Login"
 msgstr "÷ÈÏÄ"
 
-#: ../templates/classic/html/page.html:104
-#: ../templates/minimal/html/page.html:45
+#: ../templates/classic/html/page.html:134
+#: ../templates/minimal/html/page.html:133
 msgid "Remember me?"
 msgstr "úÁÐÏÍÎÉÔØ"
 
-#: ../templates/classic/html/page.html:108
+#: ../templates/classic/html/page.html:138
 #: ../templates/classic/html/user.register.html:63
-#: ../templates/minimal/html/page.html:50
-#: ../templates/minimal/html/user.register.html:58
+#: ../templates/minimal/html/page.html:137
+#: ../templates/minimal/html/user.register.html:61
 msgid "Register"
 msgstr "úÁÒÅÇÉÓÔÒÉÒÏ×ÁÔØÓÑ"
 
-#: ../templates/classic/html/page.html:111
+#: ../templates/classic/html/page.html:141
+#: ../templates/minimal/html/page.html:140
 msgid "Lost&nbsp;your&nbsp;login?"
 msgstr "úÁÂÙÌÉ&nbsp;ÐÁÒÏÌØ?"
 
-#: ../templates/classic/html/page.html:116
+#: ../templates/classic/html/page.html:146
+#: ../templates/minimal/html/page.html:145
 msgid "Hello, ${user}"
 msgstr "úÄÒÁ×ÓÔ×ÕÊÔÅ, ${user}!"
 
-#: ../templates/classic/html/page.html:118
+#: ../templates/classic/html/page.html:148
 msgid "Your Issues"
 msgstr "úÁÄÁÞÉ"
 
-#: ../templates/classic/html/page.html:119
-#: ../templates/minimal/html/page.html:57
+#: ../templates/classic/html/page.html:160
+#: ../templates/minimal/html/page.html:147
 msgid "Your Details"
 msgstr "õÞÅÔÎÁÑ ËÁÒÔÏÞËÁ"
 
-#: ../templates/classic/html/page.html:121
-#: ../templates/minimal/html/page.html:59
+#: ../templates/classic/html/page.html:162
+#: ../templates/minimal/html/page.html:149
 msgid "Logout"
 msgstr "÷ÙÈÏÄ"
 
-#: ../templates/classic/html/page.html:125
+#: ../templates/classic/html/page.html:166
+#: ../templates/minimal/html/page.html:153
 msgid "Help"
 msgstr "ðÏÍÏÝØ"
 
-#: ../templates/classic/html/page.html:126
+#: ../templates/classic/html/page.html:167
+#: ../templates/minimal/html/page.html:154
 msgid "Roundup docs"
 msgstr "äÏËÕÍÅÎÔÁÃÉÑ Roundup"
 
-#: ../templates/classic/html/page.html:136
-#: ../templates/minimal/html/page.html:81
+#: ../templates/classic/html/page.html:177
+#: ../templates/minimal/html/page.html:164
 msgid "clear this message"
 msgstr "ÓÂÒÏÓÉÔØ ÜÔÏ ÓÏÏÂÝÅÎÉÅ"
 
-#: ../templates/classic/html/page.html:181
+#: ../templates/classic/html/page.html:241
+#: ../templates/classic/html/page.html:256
+#: ../templates/classic/html/page.html:270
+#: ../templates/minimal/html/page.html:228
+#: ../templates/minimal/html/page.html:243
+#: ../templates/minimal/html/page.html:257
 msgid "don't care"
 msgstr "ÎÅ×ÁÖÎÏ"
 
-#: ../templates/classic/html/page.html:183
+#: ../templates/classic/html/page.html:243
+#: ../templates/classic/html/page.html:258
+#: ../templates/classic/html/page.html:271
+#: ../templates/minimal/html/page.html:230
+#: ../templates/minimal/html/page.html:245
+#: ../templates/minimal/html/page.html:258
 msgid "------------"
 msgstr ""
 
-#: ../templates/classic/html/page.html:210
+#: ../templates/classic/html/page.html:299
+#: ../templates/minimal/html/page.html:286
 msgid "no value"
 msgstr "ÎÅÔ ÚÎÁÞÅÎÉÑ"
 
@@ -3117,6 +3253,14 @@
 msgid "A confirmation email will be sent to you - please follow the instructions within it to complete the reset process."
 msgstr "äÌÑ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ ÜÔÏÊ ÏÐÅÒÁÃÉÉ ×ÁÍ ÂÕÄÅÔ ÐÏÓÌÁÎÏ ÓÏÏÂÝÅÎÉÅ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ. ÷ ÜÔÏÍ ÐÉÓØÍÅ ÂÕÄÅÔ ÎÁÐÉÓÁÎÏ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÏÞÉÓÔÉÔØ ÐÁÒÏÌØ Roundup."
 
+#: ../templates/classic/html/user.help-search.html:73
+msgid "Pagesize"
+msgstr "òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ"
+
+#: ../templates/classic/html/user.help.html:43
+msgid "Your browser is not capable of using frames; you should be redirected immediately, or visit ${link}."
+msgstr "÷ÁÛ ÂÒÁÕÚÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÆÒÅÊÍÙ; ÐÅÒÅÊÄÉÔÅ ÎÁ ÓÔÒÁÎÉÃÕ ${link}."
+
 #: ../templates/classic/html/user.index.html:3
 #: ../templates/minimal/html/user.index.html:3
 msgid "User listing - ${tracker}"
@@ -3127,125 +3271,88 @@
 msgid "User listing"
 msgstr "óÐÉÓÏË ÐÏÌØÚÏ×ÁÔÅÌÅÊ"
 
-#: ../templates/classic/html/user.index.html:14
-#: ../templates/minimal/html/user.index.html:14
+#: ../templates/classic/html/user.index.html:19
+#: ../templates/minimal/html/user.index.html:19
 msgid "Username"
 msgstr "ðÏÌØÚÏ×ÁÔÅÌØ"
 
-#: ../templates/classic/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:20
 msgid "Real name"
 msgstr "éÍÑ, ÆÁÍÉÌÉÑ"
 
-#: ../templates/classic/html/user.index.html:16
-#: ../templates/classic/html/user.item.html:70
+#: ../templates/classic/html/user.index.html:21
 #: ../templates/classic/html/user.register.html:45
 msgid "Organisation"
 msgstr "ïÒÇÁÎÉÚÁÃÉÑ"
 
-#: ../templates/classic/html/user.index.html:17
-#: ../templates/minimal/html/user.index.html:15
+#: ../templates/classic/html/user.index.html:22
+#: ../templates/minimal/html/user.index.html:20
 msgid "Email address"
 msgstr "áÄÒÅÓ email"
 
-#: ../templates/classic/html/user.index.html:18
+#: ../templates/classic/html/user.index.html:23
 msgid "Phone number"
 msgstr "ôÅÌÅÆÏÎ"
 
-#: ../templates/classic/html/user.index.html:19
+#: ../templates/classic/html/user.index.html:24
 msgid "Retire"
 msgstr "õ×ÏÌÉÔØ"
 
-#: ../templates/classic/html/user.index.html:32
+#: ../templates/classic/html/user.index.html:37
 msgid "retire"
 msgstr "Õ×ÏÌÉÔØ"
 
-#: ../templates/classic/html/user.item.html:7
-#: ../templates/minimal/html/user.item.html:7
+#: ../templates/classic/html/user.item.html:9
+#: ../templates/minimal/html/user.item.html:9
 msgid "User ${id}: ${title} - ${tracker}"
 msgstr "ðÏÌØÚÏ×ÁÔÅÌØ ${id}: ${title} - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:10
-#: ../templates/minimal/html/user.item.html:10
+#: ../templates/classic/html/user.item.html:12
+#: ../templates/minimal/html/user.item.html:12
 msgid "New User - ${tracker}"
 msgstr "îÏ×ÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ - ${tracker}"
 
-#: ../templates/classic/html/user.item.html:14
-#: ../templates/minimal/html/user.item.html:14
+#: ../templates/classic/html/user.item.html:21
+#: ../templates/minimal/html/user.item.html:21
 msgid "New User"
 msgstr "îÏ×ÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ"
 
-#: ../templates/classic/html/user.item.html:16
-#: ../templates/minimal/html/user.item.html:16
+#: ../templates/classic/html/user.item.html:23
+#: ../templates/minimal/html/user.item.html:23
 msgid "New User Editing"
 msgstr "òÅÇÉÓÔÒÁÃÉÑ ÎÏ×ÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ"
 
-#: ../templates/classic/html/user.item.html:19
-#: ../templates/minimal/html/user.item.html:19
+#: ../templates/classic/html/user.item.html:26
+#: ../templates/minimal/html/user.item.html:26
 msgid "User${id}"
 msgstr "ðÏÌØÚÏ×ÁÔÅÌØ ${id}"
 
-#: ../templates/classic/html/user.item.html:22
-#: ../templates/minimal/html/user.item.html:22
+#: ../templates/classic/html/user.item.html:29
+#: ../templates/minimal/html/user.item.html:29
 msgid "User${id} Editing"
 msgstr "òÅÄÁËÔÉÒÏ×ÁÎÉÅ ËÁÒÔÏÞËÉ ÐÏÌØÚÏ×ÁÔÅÌÑ ${id}"
 
-#: ../templates/classic/html/user.item.html:43
-#: ../templates/classic/html/user.register.html:21
-#: ../templates/minimal/html/user.item.html:40
-#: ../templates/minimal/html/user.register.html:26
-msgid "Login Name"
-msgstr "õÞÅÔÎÏÅ ÉÍÑ"
-
-#: ../templates/classic/html/user.item.html:47
-#: ../templates/classic/html/user.register.html:25
-#: ../templates/minimal/html/user.item.html:44
-#: ../templates/minimal/html/user.register.html:30
-msgid "Login Password"
-msgstr "ðÁÒÏÌØ"
-
-#: ../templates/classic/html/user.item.html:51
-#: ../templates/classic/html/user.register.html:29
-#: ../templates/minimal/html/user.item.html:48
-#: ../templates/minimal/html/user.register.html:34
-msgid "Confirm Password"
-msgstr "(ÅÝÅ ÒÁÚ)"
-
-#: ../templates/classic/html/user.item.html:55
+#: ../templates/classic/html/user.item.html:79
 #: ../templates/classic/html/user.register.html:33
-#: ../templates/minimal/html/user.item.html:52
-#: ../templates/minimal/html/user.register.html:38
+#: ../templates/minimal/html/user.item.html:74
+#: ../templates/minimal/html/user.register.html:41
 msgid "Roles"
 msgstr "òÏÌÉ"
 
-#: ../templates/classic/html/user.item.html:61
-#: ../templates/minimal/html/user.item.html:58
+#: ../templates/classic/html/user.item.html:87
+#: ../templates/minimal/html/user.item.html:82
 msgid "(to give the user more than one role, enter a comma,separated,list)"
 msgstr "(ÅÓÌÉ ÒÏÌÅÊ ÎÅÓËÏÌØËÏ, ÐÅÒÅÞÉÓÌÉÔÅ ÉÈ ÞÅÒÅÚ ÚÁÐÑÔÕÀ)"
 
-#: ../templates/classic/html/user.item.html:66
-#: ../templates/classic/html/user.register.html:41
-msgid "Phone"
-msgstr "ôÅÌÅÆÏÎ"
-
-#: ../templates/classic/html/user.item.html:74
-msgid "Timezone"
-msgstr "þÁÓÏ×ÏÊ ÐÏÑÓ"
-
-#: ../templates/classic/html/user.item.html:78
+#: ../templates/classic/html/user.item.html:108
+#: ../templates/minimal/html/user.item.html:103
 msgid "(this is a numeric hour offset, the default is ${zone})"
 msgstr "(ÞÉÓÌÏ - ÒÁÚÎÉÃÁ ÍÅÖÄÕ ÍÅÓÔÎÙÍ É ÇÒÉÎ×ÉÞÓËÉÍ ×ÒÅÍÅÎÅÍ, ÐÏ ÕÍÏÌÞÁÎÉÀ - ${zone})"
 
-#: ../templates/classic/html/user.item.html:83
-#: ../templates/classic/html/user.register.html:49
-#: ../templates/minimal/html/user.item.html:63
-#: ../templates/minimal/html/user.register.html:46
-msgid "E-mail address"
-msgstr "áÄÒÅÓ email"
-
-#: ../templates/classic/html/user.item.html:91
+#: ../templates/classic/html/user.item.html:129
 #: ../templates/classic/html/user.register.html:53
-#: ../templates/minimal/html/user.item.html:71
-#: ../templates/minimal/html/user.register.html:50
+#: ../templates/minimal/html/user.item.html:124
+#: ../templates/minimal/html/user.register.html:53
 msgid "Alternate E-mail addresses<br>One address per line"
 msgstr "äÏÐÏÌÎÉÔÅÌØÎÙÅ ÁÄÒÅÓÁ email<br />ðÏ ÏÄÎÏÍÕ ÁÄÒÅÓÕ × ÓÔÒÏËÅ"
 
@@ -3256,6 +3363,30 @@
 msgid "Registering with ${tracker}"
 msgstr "òÅÇÉÓÔÒÁÃÉÑ × ${tracker}"
 
+#: ../templates/classic/html/user.register.html:21
+#: ../templates/minimal/html/user.register.html:29
+msgid "Login Name"
+msgstr "õÞÅÔÎÏÅ ÉÍÑ"
+
+#: ../templates/classic/html/user.register.html:25
+#: ../templates/minimal/html/user.register.html:33
+msgid "Login Password"
+msgstr "ðÁÒÏÌØ"
+
+#: ../templates/classic/html/user.register.html:29
+#: ../templates/minimal/html/user.register.html:37
+msgid "Confirm Password"
+msgstr "(ÅÝÅ ÒÁÚ)"
+
+#: ../templates/classic/html/user.register.html:41
+msgid "Phone"
+msgstr "ôÅÌÅÆÏÎ"
+
+#: ../templates/classic/html/user.register.html:49
+#: ../templates/minimal/html/user.register.html:49
+msgid "E-mail address"
+msgstr "áÄÒÅÓ email"
+
 #: ../templates/classic/html/user.rego_progress.html:4
 #: ../templates/minimal/html/user.rego_progress.html:4
 msgid "Registration in progress - ${tracker}"
@@ -3271,6 +3402,58 @@
 msgid "You will shortly receive an email to confirm your registration. To complete the registration process, visit the link indicated in the email."
 msgstr "óËÏÒÏ ×Ù ÐÏÌÕÞÉÔÅ ÐÉÓØÍÏ Ó ÐÏÄÔ×ÅÒÖÄÅÎÉÅÍ ×ÁÛÅÊ ÒÅÇÉÓÔÒÁÃÉÉ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÚÁËÏÎÞÉÔØ ÒÅÇÉÓÔÒÁÃÉÀ, ×ÙÚÏ×ÉÔÅ ÕËÁÚÁÎÎÕÀ × ÐÉÓØÍÅ ÓÓÙÌËÕ."
 
+#: ../templates/classic/initial_data.py:5
+msgid "critical"
+msgstr "ËÒÉÔÉÞÅÓËÉÊ"
+
+#: ../templates/classic/initial_data.py:6
+msgid "urgent"
+msgstr "ÓÒÏÞÎÙÊ"
+
+#: ../templates/classic/initial_data.py:7
+msgid "bug"
+msgstr "ÏÛÉÂËÁ"
+
+#: ../templates/classic/initial_data.py:8
+msgid "feature"
+msgstr "ÒÁÚ×ÉÔÉÅ"
+
+#: ../templates/classic/initial_data.py:9
+msgid "wish"
+msgstr "ÐÏÖÅÌÁÎÉÅ"
+
+#: ../templates/classic/initial_data.py:12
+msgid "unread"
+msgstr "ÎÏ×ÙÊ"
+
+#: ../templates/classic/initial_data.py:13
+msgid "deferred"
+msgstr "ÏÔÌÏÖÅÎ"
+
+#: ../templates/classic/initial_data.py:14
+msgid "chatting"
+msgstr "ÏÂÓÕÖÄÅÎÉÅ"
+
+#: ../templates/classic/initial_data.py:15
+msgid "need-eg"
+msgstr "ÎÕÖÅÎ ÐÒÉÍÅÒ"
+
+#: ../templates/classic/initial_data.py:16
+msgid "in-progress"
+msgstr "× ÒÁÂÏÔÅ"
+
+#: ../templates/classic/initial_data.py:17
+msgid "testing"
+msgstr "ÔÅÓÔÉÒÏ×ÁÎÉÅ"
+
+#: ../templates/classic/initial_data.py:18
+msgid "done-cbb"
+msgstr "ÓÄÅÌÁÎÏ; ÍÏÖÎÏ ÕÌÕÞÛÉÔØ"
+
+#: ../templates/classic/initial_data.py:19
+msgid "resolved"
+msgstr "ÓÄÅÌÁÎÏ"
+
 #: ../templates/minimal/html/home.html:2
 msgid "Tracker home - ${tracker}"
 msgstr "ãÅÎÔÒ ÕÐÒÁ×ÌÅÎÉÑ ÚÁÄÁÎÉÑÍÉ - ${tracker}"
@@ -3287,7 +3470,3 @@
 msgid "Please log in or register."
 msgstr "ðÏÖÁÌÕÊÓÔÁ, ×ÈÏÄÉÔÅ ÉÌÉ ÚÁÒÅÇÉÓÔÒÉÒÕÊÔÅÓØ"
 
-#: ../templates/minimal/html/page.html:55
-msgid "Hello,<br>${user}"
-msgstr "ðÒÉ×ÅÔ,<br>${user}"
-

Modified: tracker/vendor/roundup/current/roundup/__init__.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/__init__.py	(original)
+++ tracker/vendor/roundup/current/roundup/__init__.py	Sun Jan 14 15:31:23 2007
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: __init__.py,v 1.43 2006/11/09 05:38:54 richard Exp $
+# $Id: __init__.py,v 1.45 2006/12/19 03:03:37 richard Exp $
 
 '''Roundup - issue tracking for knowledge workers.
 
@@ -68,6 +68,6 @@
 '''
 __docformat__ = 'restructuredtext'
 
-__version__ = '1.3.0'
+__version__ = '1.3.2'
 
 # vim: set filetype=python ts=4 sw=4 et si

Modified: tracker/vendor/roundup/current/roundup/backends/back_sqlite.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/backends/back_sqlite.py	(original)
+++ tracker/vendor/roundup/current/roundup/backends/back_sqlite.py	Sun Jan 14 15:31:23 2007
@@ -1,4 +1,4 @@
-# $Id: back_sqlite.py,v 1.48 2006/10/10 03:55:31 richard Exp $
+# $Id: back_sqlite.py,v 1.50 2006/12/19 03:01:37 richard Exp $
 '''Implements a backend for SQLite.
 
 See https://pysqlite.sourceforge.net/ for pysqlite info
@@ -20,6 +20,9 @@
 except ImportError:
     try:
         from pysqlite2 import dbapi2 as sqlite
+        if sqlite.version_info < (2,1,0):
+            raise ValueError('pysqlite2 minimum version is 2.1.0+ '
+                '- %s found'%sqlite.version)
         sqlite_version = 2
     except ImportError:
         import sqlite3 as sqlite
@@ -61,7 +64,7 @@
         hyperdb.Multilink : lambda x: x,    # used in journal marshalling
     }
     sql_to_hyperdb_value = {
-        hyperdb.String : str,
+        hyperdb.String : lambda x: isinstance(x, unicode) and x.encode('utf8') or str(x),
         hyperdb.Date   : lambda x: date.Date(str(x)),
         hyperdb.Link   : str, # XXX numeric ids
         hyperdb.Interval  : date.Interval,

Modified: tracker/vendor/roundup/current/roundup/backends/indexer_common.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/backends/indexer_common.py	(original)
+++ tracker/vendor/roundup/current/roundup/backends/indexer_common.py	Sun Jan 14 15:31:23 2007
@@ -1,4 +1,4 @@
-#$Id: indexer_common.py,v 1.7 2006/10/04 01:12:00 richard Exp $
+#$Id: indexer_common.py,v 1.8 2006/11/11 03:01:54 richard Exp $
 import re, sets
 
 from roundup import hyperdb
@@ -41,14 +41,16 @@
         designator_propname = {}
         for nm, propclass in klass.getprops().items():
             if _isLink(propclass):
-                designator_propname[propclass.classname] = nm
+                designator_propname.setdefault(propclass.classname,
+                    []).append(nm)
 
         # build a dictionary of nodes and their associated messages
         # and files
         nodeids = {}      # this is the answer
         propspec = {}     # used to do the klass.find
-        for propname in designator_propname.values():
-            propspec[propname] = {}   # used as a set (value doesn't matter)
+        for l in designator_propname.values():
+            for propname in l:
+                propspec[propname] = {}  # used as a set (value doesn't matter)
 
         # don't unpack hits entries as sqlite3's Row can't be unpacked :(
         for entry in hits:
@@ -70,14 +72,14 @@
                 continue
 
             # it's a linked class - set up to do the klass.find
-            linkprop = designator_propname[classname]   # eg, msg -> messages
-            propspec[linkprop][nodeid] = 1
+            for linkprop in designator_propname[classname]:
+                propspec[linkprop][nodeid] = 1
 
         # retain only the meaningful entries
         for propname, idset in propspec.items():
             if not idset:
                 del propspec[propname]
-        
+
         # klass.find tells me the klass nodeids the linked nodes relate to
         for resid in klass.find(**propspec):
             resid = str(resid)

Modified: tracker/vendor/roundup/current/roundup/cgi/TranslationService.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/cgi/TranslationService.py	(original)
+++ tracker/vendor/roundup/current/roundup/cgi/TranslationService.py	Sun Jan 14 15:31:23 2007
@@ -13,8 +13,8 @@
 #   translate(domain, msgid, mapping, context, target_language, default)
 #
 
-__version__ = "$Revision: 1.2 $"[11:-2]
-__date__ = "$Date: 2004/10/23 14:04:23 $"[7:-2]
+__version__ = "$Revision: 1.3 $"[11:-2]
+__date__ = "$Date: 2006/12/02 23:41:28 $"[7:-2]
 
 from roundup import i18n
 from roundup.cgi.PageTemplates import Expressions, PathIterator, TALES
@@ -45,9 +45,15 @@
     pass
 
 class NullTranslationService(TranslationServiceMixin,
-    i18n.RoundupNullTranslations
-):
-    pass
+        i18n.RoundupNullTranslations):
+    def ugettext(self, message):
+        if self._fallback:
+            return self._fallback.ugettext(message)
+        # Sometimes the untranslatable message is a UTF-8 encoded string
+        # (thanks to PageTemplate's internals).
+        if not isinstance(message, unicode):
+            return unicode(message, 'utf8')
+        return message
 
 ### TAL patching
 #

Modified: tracker/vendor/roundup/current/roundup/cgi/client.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/cgi/client.py	(original)
+++ tracker/vendor/roundup/current/roundup/cgi/client.py	Sun Jan 14 15:31:23 2007
@@ -1,4 +1,4 @@
-# $Id: client.py,v 1.228 2006/11/09 00:36:21 richard Exp $
+# $Id: client.py,v 1.229 2006/11/15 06:27:15 a1s Exp $
 
 """WWW request handler (also used in the stand-alone server).
 """
@@ -109,6 +109,24 @@
     # columns, sort, sortdir, filter, group, groupdir, search_text,
     # pagesize, startwith
 
+    # list of network error codes that shouldn't be reported to tracker admin
+    # (error descriptions from FreeBSD intro(2))
+    IGNORE_NET_ERRORS = (
+        # A write on a pipe, socket or FIFO for which there is
+        # no process to read the data.
+        errno.EPIPE,
+        # A connection was forcibly closed by a peer.
+        # This normally results from a loss of the connection
+        # on the remote socket due to a timeout or a reboot.
+        errno.ECONNRESET,
+        # Software caused connection abort.  A connection abort
+        # was caused internal to your host machine.
+        errno.ECONNABORTED,
+        # A connect or send request failed because the connected party
+        # did not properly respond after a period of time.
+        errno.ETIMEDOUT,
+    )
+
     def __init__(self, instance, request, env, form=None, translator=None):
         # re-seed the random number generator
         random.seed()
@@ -819,16 +837,25 @@
                 raise ValueError, 'No such action "%s"'%action_name
         return action_klass
 
+    def _socket_op(self, call, *args, **kwargs):
+        """Execute socket-related operation, catch common network errors
+
+        Parameters:
+            call: a callable to execute
+            args, kwargs: call arguments
+
+        """
+        try:
+            call(*args, **kwargs)
+        except socket.error, err:
+            if err.errno not in self.IGNORE_NET_ERRORS:
+                raise
+
     def write(self, content):
         if not self.headers_done:
             self.header()
         if self.env['REQUEST_METHOD'] != 'HEAD':
-            try:
-                self.request.wfile.write(content)
-            except socket.error, error:
-                # the end-user has gone away
-                if error.errno != errno.EPIPE:
-                    raise
+            self._socket_op(self.request.wfile.write, content)
 
     def write_html(self, content):
         if not self.headers_done:
@@ -847,12 +874,7 @@
             content = content.encode(self.charset, 'xmlcharrefreplace')
 
         # and write
-        try:
-            self.request.wfile.write(content)
-        except socket.error, error:
-            # the end-user has gone away
-            if error.errno != errno.EPIPE:
-                raise
+        self._socket_op(self.request.wfile.write, content)
 
     def setHeader(self, header, value):
         '''Override a header to be returned to the user's browser.
@@ -881,7 +903,7 @@
                 cookie += " expires=%s;"%Cookie._getdate(expire)
             headers.append(('Set-Cookie', cookie))
 
-        self.request.start_response(headers, response)
+        self._socket_op(self.request.start_response, headers, response)
 
         self.headers_done = 1
         if self.debug:

Modified: tracker/vendor/roundup/current/roundup/cgi/form_parser.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/cgi/form_parser.py	(original)
+++ tracker/vendor/roundup/current/roundup/cgi/form_parser.py	Sun Jan 14 15:31:23 2007
@@ -465,7 +465,10 @@
                     raise FormError, msg
 
             # register that we got this property
-            if value:
+            if isinstance(proptype, hyperdb.Multilink):
+                if value != []:
+                    got_props[this][propname] = 1
+            elif value is not None:
                 got_props[this][propname] = 1
 
             # get the old value
@@ -526,6 +529,19 @@
                 if got.has_key(entry):
                     required.remove(entry)
 
+            # If a user doesn't have edit permission for a given property,
+            # but the property is already set in the database, we don't
+            # require a value.
+            if not (create or nodeid is None):
+                for entry in required[:]:
+                    if not self.db.security.hasPermission('Edit',
+                                                          self.client.userid,
+                                                          self.classname,
+                                                          entry):
+                        cl = self.db.classes[self.classname]
+                        if cl.get(nodeid, entry) is not None:
+                            required.remove(entry)
+            
             # any required values not present?
             if not required:
                 continue

Modified: tracker/vendor/roundup/current/roundup/cgi/templating.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/cgi/templating.py	(original)
+++ tracker/vendor/roundup/current/roundup/cgi/templating.py	Sun Jan 14 15:31:23 2007
@@ -410,12 +410,14 @@
 def input_html4(**attrs):
     """Generate an 'input' (html4) element with given attributes"""
     _set_input_default_args(attrs) 
-    return '<input %s>'%' '.join(['%s="%s"'%item for item in attrs.items()])
+    return '<input %s>'%' '.join(['%s="%s"'%(k,cgi.escape(str(v), True))
+        for k,v in attrs.items()])
 
 def input_xhtml(**attrs):
     """Generate an 'input' (xhtml) element with given attributes"""
     _set_input_default_args(attrs)
-    return '<input %s/>'%' '.join(['%s="%s"'%item for item in attrs.items()])
+    return '<input %s/>'%' '.join(['%s="%s"'%(k,cgi.escape(str(v), True))
+        for k,v in attrs.items()])
 
 class HTMLInputMixin:
     ''' requires a _client property '''
@@ -534,7 +536,7 @@
                     value = []
                 else:
                     value = None
-            return htmlklass(self._client, self._classname, '', prop, item,
+            return htmlklass(self._client, self._classname, None, prop, item,
                 value, self._anonymous)
 
         # no good
@@ -719,7 +721,7 @@
 
         return self.input(type="hidden", name="@action", value="new") + \
             '\n' + \
-            self.input(type="submit", name="submit", value=self._(label))
+            self.input(type="submit", name="submit_button", value=self._(label))
 
     def history(self):
         if not self.is_view_ok():
@@ -847,7 +849,7 @@
         return self.input(type="hidden", name="@lastactivity",
             value=self.activity.local(0)) + '\n' + \
             self.input(type="hidden", name="@action", value="edit") + '\n' + \
-            self.input(type="submit", name="submit", value=self._(label))
+            self.input(type="submit", name="submit_button", value=self._(label))
 
     def journal(self, direction='descending'):
         ''' Return a list of HTMLJournalEntry instances.
@@ -1328,12 +1330,9 @@
         if not self.is_edit_ok():
             return self.plain()
 
-        if self._value is None:
+        value = self._value
+        if value is None:
             value = ''
-        else:
-            value = cgi.escape(str(self._value))
-
-        value = '&quot;'.join(value.split('"'))
 
         kwargs.setdefault("size", 30)
         kwargs.update({"name": self._formname, "value": value})
@@ -1436,13 +1435,11 @@
         if not self.is_edit_ok():
             return self.plain()
 
-        if self._value is None:
+        value = self._value
+        if value is None:
             value = ''
-        else:
-            value = cgi.escape(str(self._value))
 
-        value = '&quot;'.join(value.split('"'))
-        return self.input(name=self._formname,value=value,size=size)
+        return self.input(name=self._formname, value=value, size=size)
 
     def __int__(self):
         ''' Return an int of me
@@ -1582,7 +1579,7 @@
                         'or string date representation.')
         elif isinstance(value, str) or isinstance(value, unicode):
             # most likely erroneous input to be passed back to user
-            value = cgi.escape(str(value), 1)
+            if isinstance(value, unicode): value = value.encode('utf8')
             return self.input(name=self._formname, value=value, size=size)
         else:
             raw_value = value
@@ -1603,7 +1600,6 @@
             if format is not self._marker:
                 value = value.pretty(format)
 
-        value = cgi.escape(str(value), 1)
         s = self.input(name=self._formname, value=value, size=size)
         if popcal:
             s += self.popcal()
@@ -1707,13 +1703,11 @@
         if not self.is_edit_ok():
             return self.plain()
 
-        if self._value is None:
+        value = self._value
+        if value is None:
             value = ''
-        else:
-            value = cgi.escape(str(self._value))
 
-        value = '&quot;'.join(value.split('"'))
-        return self.input(name=self._formname,value=value,size=size)
+        return self.input(name=self._formname, value=value, size=size)
 
 class LinkHTMLProperty(HTMLProperty):
     ''' Link HTMLProperty
@@ -1778,11 +1772,7 @@
                 value = linkcl.get(self._value, k)
             else:
                 value = self._value
-            value = cgi.escape(str(value))
-            value = '&quot;'.join(value.split('"'))
-        return self.input(name=self._formname,
-                          value=value,
-                          size=size)
+        return self.input(name=self._formname, value=value, size=size)
 
     def menu(self, size=None, height=None, showid=0, additional=[], value=None,
             sort_on=None, **conditions):
@@ -1973,8 +1963,8 @@
         if not showid:
             k = linkcl.labelprop(1)
             value = lookupKeys(linkcl, k, value)
-        value = cgi.escape(','.join(value))
-        return self.input(name=self._formname,size=size,value=value)
+        value = ','.join(value)
+        return self.input(name=self._formname, size=size, value=value)
 
     def menu(self, size=None, height=None, showid=0, additional=[],
              value=None, sort_on=None, **conditions):
@@ -2051,7 +2041,7 @@
                 lab = lab + ' (%s)'%', '.join(m)
 
             # and generate
-            lab = cgi.escape(lab)
+            lab = cgi.escape(self._(lab))
             l.append('<option %svalue="%s">%s</option>'%(s, optionid,
                 lab))
         l.append('</select>')
@@ -2328,9 +2318,10 @@
         ''' return the current index args as form elements '''
         l = []
         sc = self.special_char
-        s = self.input(type="hidden",name="%s",value="%s")
+        def add(k, v):
+            l.append(self.input(type="hidden", name=k, value=v))
         if columns and self.columns:
-            l.append(s%(sc+'columns', ','.join(self.columns)))
+            add(sc+'columns', ','.join(self.columns))
         if sort:
             val = []
             for dir, attr in self.sort:
@@ -2338,7 +2329,7 @@
                     val.append('-'+attr)
                 else:
                     val.append(attr)
-            l.append(s%(sc+'sort', ','.join (val)))
+            add(sc+'sort', ','.join (val))
         if group:
             val = []
             for dir, attr in self.group:
@@ -2346,23 +2337,23 @@
                     val.append('-'+attr)
                 else:
                     val.append(attr)
-            l.append(s%(sc+'group', ','.join (val)))
+            add(sc+'group', ','.join (val))
         if filter and self.filter:
-            l.append(s%(sc+'filter', ','.join(self.filter)))
+            add(sc+'filter', ','.join(self.filter))
         if self.classname and filterspec:
             props = self.client.db.getclass(self.classname).getprops()
             for k,v in self.filterspec.items():
                 if type(v) == type([]):
                     if isinstance(props[k], hyperdb.String):
-                        l.append(s%(k, ' '.join(v)))
+                        add(k, ' '.join(v))
                     else:
-                        l.append(s%(k, ','.join(v)))
+                        add(k, ','.join(v))
                 else:
-                    l.append(s%(k, v))
+                    add(k, v)
         if search_text and self.search_text:
-            l.append(s%(sc+'search_text', self.search_text))
-        l.append(s%(sc+'pagesize', self.pagesize))
-        l.append(s%(sc+'startwith', self.startwith))
+            add(sc+'search_text', self.search_text)
+        add(sc+'pagesize', self.pagesize)
+        add(sc+'startwith', self.startwith)
         return '\n'.join(l)
 
     def indexargs_url(self, url, args):

Modified: tracker/vendor/roundup/current/roundup/configuration.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/configuration.py	(original)
+++ tracker/vendor/roundup/current/roundup/configuration.py	Sun Jan 14 15:31:23 2007
@@ -1,6 +1,6 @@
 # Roundup Issue Tracker configuration support
 #
-# $Id: configuration.py,v 1.36 2006/10/05 23:14:52 richard Exp $
+# $Id: configuration.py,v 1.39 2006/12/18 06:06:03 richard Exp $
 #
 __docformat__ = "restructuredtext"
 
@@ -19,9 +19,7 @@
 ### Exceptions
 
 class ConfigurationError(Exception):
-
-    # without this, pychecker complains about missing class attribute...
-    args = ()
+    pass
 
 class NoConfigError(ConfigurationError):
 

Modified: tracker/vendor/roundup/current/roundup/instance.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/instance.py	(original)
+++ tracker/vendor/roundup/current/roundup/instance.py	Sun Jan 14 15:31:23 2007
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: instance.py,v 1.33 2004/11/29 02:55:46 richard Exp $
+# $Id: instance.py,v 1.37 2006/12/11 23:36:15 richard Exp $
 
 '''Tracker handling (open tracker).
 
@@ -24,6 +24,7 @@
 __docformat__ = 'restructuredtext'
 
 import os
+import sys
 from roundup import configuration, mailgw
 from roundup import hyperdb, backends
 from roundup.cgi import client, templating
@@ -52,6 +53,9 @@
         self.templates = templating.Templates(self.config["TEMPLATES"])
         self.backend = backends.get_backend(self.get_backend_name())
         if self.optimize:
+            libdir = os.path.join(self.tracker_home, 'lib')
+            if os.path.isdir(libdir):
+                sys.path.insert(1, libdir)
             self.templates.precompileTemplates()
             # initialize tracker extensions
             for extension in self.get_extensions('extensions'):
@@ -67,6 +71,8 @@
             self.detectors = self.get_extensions('detectors')
             # db_open is set to True after first open()
             self.db_open = 0
+            if libdir in sys.path:
+                sys.path.remove(libdir)
 
     def get_backend_name(self):
         o = __builtins__['open']
@@ -102,12 +108,17 @@
             # use preloaded detectors
             detectors = self.detectors
         else:
+            libdir = os.path.join(self.tracker_home, 'lib')
+            if os.path.isdir(libdir):
+                sys.path.insert(1, libdir)
             # execute the schema file
             self._load_python('schema.py', vars)
             # reload extensions and detectors
             for extension in self.get_extensions('extensions'):
                 extension(self)
             detectors = self.get_extensions('detectors')
+            if libdir in sys.path:
+                sys.path.remove(libdir)
         db = vars['db']
         # apply the detectors
         for detector in detectors:
@@ -142,12 +153,14 @@
         extensions = []
         dirpath = os.path.join(self.tracker_home, dirname)
         if os.path.isdir(dirpath):
+            sys.path.insert(1, dirpath)
             for name in os.listdir(dirpath):
                 if not name.endswith('.py'):
                     continue
                 vars = {}
                 self._load_python(os.path.join(dirname, name), vars)
                 extensions.append(vars['init'])
+            sys.path.remove(dirpath)
         return extensions
 
     def init(self, adminpw):

Modified: tracker/vendor/roundup/current/roundup/mailgw.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/mailgw.py	(original)
+++ tracker/vendor/roundup/current/roundup/mailgw.py	Sun Jan 14 15:31:23 2007
@@ -72,7 +72,7 @@
 an exception, the original message is bounced back to the sender with the
 explanatory message given in the exception.
 
-$Id: mailgw.py,v 1.178 2006/10/05 23:08:20 richard Exp $
+$Id: mailgw.py,v 1.180 2006/12/19 01:13:31 richard Exp $
 """
 __docformat__ = 'restructuredtext'
 
@@ -428,12 +428,17 @@
         return 0
 
 
-    def do_apop(self, server, user='', password=''):
+    def do_apop(self, server, user='', password='', ssl=False):
         ''' Do authentication POP
         '''
-        self.do_pop(server, user, password, apop=1)
+        self._do_pop(server, user, password, True, ssl)
 
-    def do_pop(self, server, user='', password='', apop=0):
+    def do_pop(self, server, user='', password='', ssl=False):
+        ''' Do plain POP
+        '''
+        self._do_pop(server, user, password, False, ssl)
+
+    def _do_pop(self, server, user, password, apop, ssl):
         '''Read a series of messages from the specified POP server.
         '''
         import getpass, poplib, socket
@@ -449,7 +454,11 @@
 
         # open a connection to the server and retrieve all messages
         try:
-            server = poplib.POP3(server)
+            if ssl:
+                klass = poplib.POP3_SSL
+            else:
+                klass = poplib.POP3
+            server = klass(server)
         except socket.error:
             self.logger.exception('POP server error')
             return 1
@@ -616,7 +625,7 @@
         delim_close = re.escape(close)
         if delim_close in '[(': delim_close = '\\' + delim_close
         subject_re = r'''
-        (?P<refwd>\s*\W?\s*(fw|fwd|re|aw)\W\s*)*\s*   # Re:
+        (?P<refwd>\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W\s*)*\s*   # Re:
         (?P<quote>")?                                 # Leading "
         (%s(?P<classname>[^\d\s]+)                    # [issue..
            (?P<nodeid>\d+)?                           # ..1234]

Modified: tracker/vendor/roundup/current/roundup/roundupdb.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/roundupdb.py	(original)
+++ tracker/vendor/roundup/current/roundup/roundupdb.py	Sun Jan 14 15:31:23 2007
@@ -16,7 +16,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: roundupdb.py,v 1.126 2006/11/09 01:13:56 richard Exp $
+# $Id: roundupdb.py,v 1.128 2006/12/18 11:34:41 a1s Exp $
 
 """Extending hyperdb with types specific to issue-tracking.
 """
@@ -594,7 +594,8 @@
                 if '\n' in change:
                     value = self.indentChangeNoteValue(str(value))
                     oldvalue = self.indentChangeNoteValue(str(oldvalue))
-                    change = '\nNow:\n%s\nWas:\n%s'%(value, oldvalue)
+                    change = _('\nNow:\n%(new)s\nWas:\n%(old)s') % {
+                        "new": value, "old": oldvalue}
             m.append('%s: %s'%(propname, change))
         if m:
             m.insert(0, '----------')

Modified: tracker/vendor/roundup/current/roundup/scripts/roundup_mailgw.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/scripts/roundup_mailgw.py	(original)
+++ tracker/vendor/roundup/current/roundup/scripts/roundup_mailgw.py	Sun Jan 14 15:31:23 2007
@@ -14,7 +14,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: roundup_mailgw.py,v 1.22 2006/07/15 10:08:01 schlatterbeck Exp $
+# $Id: roundup_mailgw.py,v 1.23 2006/12/13 23:32:39 richard Exp $
 
 """Command-line script stub that calls the roundup.mailgw.
 """
@@ -78,6 +78,10 @@
  are both valid. The username and/or password will be prompted for if
  not supplied on the command-line.
 
+POPS:
+ Connect to a POP server over ssl. This requires python 2.4 or later.
+ This supports the same notation as POP.
+
 APOP:
  Same as POP, but using Authenticated POP:
     apop username:password at server
@@ -154,12 +158,15 @@
 
         if source == 'mailbox':
             return handler.do_mailbox(specification)
-        elif source == 'pop':
+        elif source == 'pop' or source == 'pops':
             m = re.match(r'((?P<user>[^:]+)(:(?P<pass>.+))?@)?(?P<server>.+)',
                 specification)
             if m:
+                ssl = source.endswith('s')
+                if ssl and sys.version_info<(2,4):
+                    return usage(argv, _('Error: a later version of python is required'))
                 return handler.do_pop(m.group('server'), m.group('user'),
-                    m.group('pass'))
+                    m.group('pass'),ssl)
             return usage(argv, _('Error: pop specification not valid'))
         elif source == 'apop':
             m = re.match(r'((?P<user>[^:]+)(:(?P<pass>.+))?@)?(?P<server>.+)',
@@ -172,9 +179,7 @@
             m = re.match(r'((?P<user>[^:]+)(:(?P<pass>.+))?@)?(?P<server>.+)',
                 specification)
             if m:
-                ssl = 0
-                if source == 'imaps':
-                    ssl = 1
+                ssl = source.endswith('s')
                 mailbox = ''
                 if len(args) > 3:
                     mailbox = args[3]

Modified: tracker/vendor/roundup/current/roundup/scripts/roundup_server.py
==============================================================================
--- tracker/vendor/roundup/current/roundup/scripts/roundup_server.py	(original)
+++ tracker/vendor/roundup/current/roundup/scripts/roundup_server.py	Sun Jan 14 15:31:23 2007
@@ -17,7 +17,7 @@
 
 """Command-line script that runs a server over roundup.cgi.client.
 
-$Id: roundup_server.py,v 1.85 2006/11/09 00:36:21 richard Exp $
+$Id: roundup_server.py,v 1.87 2006/12/18 05:56:49 a1s Exp $
 """
 __docformat__ = 'restructuredtext'
 
@@ -378,6 +378,8 @@
                 "In order to use this option, "
                 "the server must be run initially as root.\n"
                 "Availability: Unix."),
+            (configuration.BooleanOption, "nodaemon", "no",
+                "don't fork (this overrides the pidfile mechanism)'"),
             (configuration.BooleanOption, "log_hostnames", "no",
                 "Log client machine names instead of IP addresses "
                 "(much slower)"),
@@ -408,6 +410,7 @@
         "user": "u:",
         "logfile": "l:",
         "pidfile": "d:",
+        "nodaemon": "D",
         "log_hostnames": "N",
         "multiprocess": "t:",
     }
@@ -638,6 +641,14 @@
 }
 
 
+def writepidfile(pidfile):
+    ''' Write a pidfile (only). Do not daemonize. '''
+    pid = os.getpid()
+    if pid:
+        pidfile = open(pidfile, 'w')
+        pidfile.write(str(pid))
+        pidfile.close()
+
 def daemonize(pidfile):
     ''' Turn this process into a daemon.
         - make sure the sys.std(in|out|err) are completely cut off
@@ -763,7 +774,10 @@
                 " on this Operating System")
             sys.exit(0)
         else:
-            daemonize(config["PIDFILE"])
+            if config['NODAEMON']:
+                writepidfile(config["PIDFILE"])
+            else:
+                daemonize(config["PIDFILE"])
 
     # create the server
     httpd = config.get_server()

Modified: tracker/vendor/roundup/current/scripts/README.txt
==============================================================================
--- tracker/vendor/roundup/current/scripts/README.txt	(original)
+++ tracker/vendor/roundup/current/scripts/README.txt	Sun Jan 14 15:31:23 2007
@@ -8,6 +8,10 @@
  Generate an email that lists outstanding issues. Send in both plain text
  and HTML formats.
 
+weekly-report
+ Generate a simple report outlining the activity in one tracker for the
+ most recent week.
+
 schema_diagram.py
  Generate a schema diagram for a roundup tracker. It generates a 'dot file'
  that is then fed into the 'dot' tool (http://www.graphviz.org) to generate

Added: tracker/vendor/roundup/current/scripts/weekly-report
==============================================================================
--- (empty file)
+++ tracker/vendor/roundup/current/scripts/weekly-report	Sun Jan 14 15:31:23 2007
@@ -0,0 +1,58 @@
+#! /usr/bin/env python2.3
+
+# This script generates a simple report outlining the activity in one
+# tracker for the most recent week.
+
+# This script is free software, you may redistribute it
+# and/or modify under the same terms as Python.
+
+import sys, math
+from roundup import instance, date
+
+# open the instance
+if len(sys.argv) != 2:
+    print 'You need to specify an instance home dir'
+instance_home = sys.argv[1]
+instance = instance.open(instance_home)
+db = instance.open('admin')
+
+old = date.Date('-1w')
+
+created = []
+summary = {}
+messages = []
+
+# loop through all the recently-active issues
+for issue_id in db.issue.filter(None, {'activity': '-1w;'}):
+    num = 0
+    for x,ts,userid,action,data in db.issue.history(issue_id):
+        if ts < old: continue
+        if action == 'create':
+            created.append(issue_id)
+        elif action == 'set' and data.has_key('messages'):
+            num += 1
+    summary.setdefault(db.issue.get(issue_id, 'status'), []).append(issue_id)
+    messages.append((num, issue_id))
+
+#print 'STATUS SUMMARY:'
+#for k,v in summary.items():
+#    print k, len(v)
+
+print '\nCREATED:'
+print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
+    for id in created])
+
+print '\nRESOLVED:'
+resolved_id = db.status.lookup('resolved')
+print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
+    for id in summary.get(resolved_id, [])])
+
+print '\nTOP TEN MOST DISCUSSED:'
+messages.sort()
+messages.reverse()
+nmax = messages[0][0]
+fmt = '%%%dd - %%s: %%s'%(int(math.log(nmax, 10)) + 1)
+print '\n'.join([fmt%(num, id, db.issue.get(id, 'title'))
+    for num, id in messages[:10]])
+
+# vim: set filetype=python ts=4 sw=4 et si

Modified: tracker/vendor/roundup/current/setup.py
==============================================================================
--- tracker/vendor/roundup/current/setup.py	(original)
+++ tracker/vendor/roundup/current/setup.py	Sun Jan 14 15:31:23 2007
@@ -16,7 +16,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: setup.py,v 1.92 2006/11/09 05:38:54 richard Exp $
+# $Id: setup.py,v 1.96 2006/12/19 03:03:36 richard Exp $
 
 from distutils.core import setup, Extension
 from distutils.util import get_platform
@@ -300,7 +300,7 @@
         'roundup.scripts',
     ]
     installdatafiles = [
-        ('share/roundup/cgi-bin', ['cgi-bin/roundup.cgi']),
+        ('share/roundup/cgi-bin', ['frontends/roundup.cgi']),
     ]
     py_modules = ['roundup.demo',]
 
@@ -344,25 +344,28 @@
             " with command-line, web and e-mail interfaces. Highly"
             " customisable.",
         'long_description':
-'''Roundup is a simple-to-use and -install issue-tracking system with
-command-line, web and e-mail interfaces. It is based on the winning design
-from Ka-Ping Yee in the Software Carpentry "Track" design competition.
+'''In this release
+===============
+
+Fixed in 1.3.2:
+
+- relax rules for required fields in form_parser.py (sf bug 1599740)
+- documentation cleanup from Luke Ross (sf patch 1594860)
+- updated Spanish translation from Ramiro Morales (sf patch 1594718)
+- handle 8-bit untranslateable messages in tracker templates
+- handling of required for boolean False and numeric 0 (sf bug 1608200)
+- removed bogus args attr of ConfigurationError (sf bug 1608056)
+- implemented start_response in roundup.cgi (sf bug 1604304)
+- clarified windows service documentation (sf patch 1597713)
+- HTMLClass fixed to work with new item permissions check (sf bug 1602983)
+- support POP over SSL (sf patch 1597703)
+- clean up input field generation and quoting of values (sf bug 1615616)
+- allow use of roundup-server pidfile without forking (sf bug 1614753)
+- allow translation of status/priority menu options (sf bug 1613976)
 
 New Features in 1.3.0:
-- WSGI support via roundup.cgi.wsgi_handler
 
-Fixed in 1.3.0:
-- sqlite module detection was broken for python 2.5 compiled without sqlite
-  support
-- fixed support for pysqlite2 (version 2.1.0 is the minimum version
-  supported)
-- roundup-server called setuid when run by non-root user
-- fix sort/group direction checkbox in issue.index.html (sf bug 1593025)
-- fix error detection for non-EN locales of postgres (sf bug 1592249)
-- fix email change note rendering of multiline properties (sf patch 1575223)
-- fix sidebar search links (sf patch 1574467)
-- nicer "permission required" messages (sf patch 1558183)
-- fix unstable ordering of detectors (sf bug 1585378)
+- WSGI support via roundup.cgi.wsgi_handler
 
 If you're upgrading from an older version of Roundup you *must* follow
 the "Software Upgrade" guidelines given in the maintenance documentation.
@@ -373,14 +376,11 @@
 
     roundup-demo
 
-Release info and download page:
-     http://cheeseshop.python.org/pypi/roundup
-Source and documentation is available at the website:
+Documentation is available at the website:
      http://roundup.sourceforge.net/
 Mailing lists - the place to ask questions:
      http://sourceforge.net/mail/?group_id=31577
 
-
 About Roundup
 =============
 
@@ -408,7 +408,6 @@
 It comes with two issue tracker templates (a classic bug/feature tracker and
 a minimal skeleton) and five database back-ends (anydbm, sqlite, metakit,
 mysql and postgresql).
-
 ''',
         'author': "Richard Jones",
         'author_email': "richard at users.sourceforge.net",

Modified: tracker/vendor/roundup/current/templates/classic/html/page.html
==============================================================================
--- tracker/vendor/roundup/current/templates/classic/html/page.html	(original)
+++ tracker/vendor/roundup/current/templates/classic/html/page.html	Sun Jan 14 15:31:23 2007
@@ -38,8 +38,10 @@
 	      value="id,activity,title,creator,assignedto,status"/>
        <input type="hidden" name="@sort" value="activity"/>
        <input type="hidden" name="@group" value="priority"/>
-       <input id="search-text" name="@search_text" size="10"/>
-       <input type="submit" id="submit" name="submit" value="Search" i18n:attributes="value" tal:attributes="value request/search_text" />
+       <input id="search-text" name="@search_text" size="10"
+              tal:attributes="value request/search_text | default" />
+       <input type="submit" id="submit" name="submit" value="Search"
+              i18n:attributes="value" />
      </form>
   </div>
  </td>

Modified: tracker/vendor/roundup/current/templates/classic/html/user.help-search.html
==============================================================================
--- tracker/vendor/roundup/current/templates/classic/html/user.help-search.html	(original)
+++ tracker/vendor/roundup/current/templates/classic/html/user.help-search.html	Sun Jan 14 15:31:23 2007
@@ -52,7 +52,7 @@
 
 <tr tal:define="name string:roles;
                 onchange string:this.form.submit();
-                label string:Rollen:"
+                label string:Roles:"
                 >
   <th metal:use-macro="th_label">role</th>
   <td metal:use-macro="search_select_roles">

Modified: tracker/vendor/roundup/current/templates/classic/initial_data.py
==============================================================================
--- tracker/vendor/roundup/current/templates/classic/initial_data.py	(original)
+++ tracker/vendor/roundup/current/templates/classic/initial_data.py	Sun Jan 14 15:31:23 2007
@@ -2,21 +2,21 @@
 # TRACKER INITIAL PRIORITY AND STATUS VALUES
 #
 pri = db.getclass('priority')
-pri.create(name="critical", order="1")
-pri.create(name="urgent", order="2")
-pri.create(name="bug", order="3")
-pri.create(name="feature", order="4")
-pri.create(name="wish", order="5")
+pri.create(name=''"critical", order="1")
+pri.create(name=''"urgent", order="2")
+pri.create(name=''"bug", order="3")
+pri.create(name=''"feature", order="4")
+pri.create(name=''"wish", order="5")
 
 stat = db.getclass('status')
-stat.create(name="unread", order="1")
-stat.create(name="deferred", order="2")
-stat.create(name="chatting", order="3")
-stat.create(name="need-eg", order="4")
-stat.create(name="in-progress", order="5")
-stat.create(name="testing", order="6")
-stat.create(name="done-cbb", order="7")
-stat.create(name="resolved", order="8")
+stat.create(name=''"unread", order="1")
+stat.create(name=''"deferred", order="2")
+stat.create(name=''"chatting", order="3")
+stat.create(name=''"need-eg", order="4")
+stat.create(name=''"in-progress", order="5")
+stat.create(name=''"testing", order="6")
+stat.create(name=''"done-cbb", order="7")
+stat.create(name=''"resolved", order="8")
 
 # create the two default users
 user = db.getclass('user')

Modified: tracker/vendor/roundup/current/templates/minimal/html/page.html
==============================================================================
--- tracker/vendor/roundup/current/templates/minimal/html/page.html	(original)
+++ tracker/vendor/roundup/current/templates/minimal/html/page.html	Sun Jan 14 15:31:23 2007
@@ -38,8 +38,9 @@
 	      value="id,activity,title,creator,assignedto,status"/>
        <input type="hidden" name="@sort" value="activity"/>
        <input type="hidden" name="@group" value="priority"/>
-       <input id="search-text" name="@search_text" size="10"/>
-       <input type="submit" id="submit" name="submit" value="Search" i18n:attributes="value" tal:attributes="value request/search_text" />
+       <input id="search-text" name="@search_text" size="10"
+              tal:attributes="value request/search_text"/>
+       <input type="submit" id="submit" name="submit" value="Search" i18n:attributes="value" />
      </form>
   </div>
  </td>

Modified: tracker/vendor/roundup/current/test/db_test_base.py
==============================================================================
--- tracker/vendor/roundup/current/test/db_test_base.py	(original)
+++ tracker/vendor/roundup/current/test/db_test_base.py	Sun Jan 14 15:31:23 2007
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: db_test_base.py,v 1.80 2006/11/09 05:44:51 richard Exp $
+# $Id: db_test_base.py,v 1.82 2006/11/11 03:21:12 richard Exp $
 
 import unittest, os, shutil, errno, imp, sys, time, pprint, sets
 
@@ -78,7 +78,7 @@
     issue = module.IssueClass(db, "issue", title=String(indexme="yes"),
         status=Link("status"), nosy=Multilink("user"), deadline=Date(),
         foo=Interval(), files=Multilink("file"), assignedto=Link('user'),
-        priority=Link('priority'))
+        priority=Link('priority'), spam=Multilink('msg'))
     stuff = module.Class(db, "stuff", stuff=String())
     session = module.Class(db, 'session', title=String())
     msg = module.FileClass(db, "msg", date=Date(),
@@ -202,6 +202,18 @@
             if commit: self.db.commit()
             self.assertEqual(self.db.file.get(nid, 'content'), 'eggs')
 
+    def testStringUnicode(self):
+        # test set & retrieve
+        ustr = u'\xe4\xf6\xfc\u20ac'.encode('utf8')
+        nid = self.db.issue.create(title=ustr, status='1')
+        self.assertEqual(self.db.issue.get(nid, 'title'), ustr)
+
+        # change and make sure we retrieve the correct value
+        ustr2 = u'change \u20ac change'.encode('utf8')
+        self.db.issue.set(nid, title=ustr2)
+        self.db.commit()
+        self.assertEqual(self.db.issue.get(nid, 'title'), ustr2)
+
     # Link
     def testLinkChange(self):
         self.assertRaises(IndexError, self.db.issue.create, title="spam",
@@ -772,6 +784,20 @@
         # unindexed stopword
         self.assertEquals(self.db.indexer.search(['the'], self.db.issue), {})
 
+    def testIndexerSearchMulti(self):
+        m1 = self.db.msg.create(content="one two")
+        m2 = self.db.msg.create(content="two three")
+        i1 = self.db.issue.create(messages=[m1])
+        i2 = self.db.issue.create(spam=[m2])
+        self.db.commit()
+        self.assertEquals(self.db.indexer.search([], self.db.issue), {})
+        self.assertEquals(self.db.indexer.search(['one'], self.db.issue),
+            {i1: {'messages': [m1]}})
+        self.assertEquals(self.db.indexer.search(['two'], self.db.issue),
+            {i1: {'messages': [m1]}, i2: {'spam': [m2]}})
+        self.assertEquals(self.db.indexer.search(['three'], self.db.issue),
+            {i2: {'spam': [m2]}})
+
     def testReindexingChange(self):
         search = self.db.indexer.search
         issue = self.db.issue
@@ -1542,7 +1568,7 @@
         keys.sort()
         self.assertEqual(keys, ['activity', 'actor', 'assignedto', 'creation',
             'creator', 'deadline', 'files', 'fixer', 'foo', 'id', 'messages',
-            'nosy', 'priority', 'status', 'superseder', 'title'])
+            'nosy', 'priority', 'spam', 'status', 'superseder', 'title'])
         self.assertEqual(self.db.issue.get('1', "fixer"), None)
 
     def testRemoveProperty(self):
@@ -1556,7 +1582,7 @@
         keys.sort()
         self.assertEqual(keys, ['activity', 'actor', 'assignedto', 'creation',
             'creator', 'deadline', 'files', 'foo', 'id', 'messages',
-            'nosy', 'priority', 'status', 'superseder'])
+            'nosy', 'priority', 'spam', 'status', 'superseder'])
         self.assertEqual(self.db.issue.list(), ['1'])
 
     def testAddRemoveProperty(self):
@@ -1571,7 +1597,7 @@
         keys.sort()
         self.assertEqual(keys, ['activity', 'actor', 'assignedto', 'creation',
             'creator', 'deadline', 'files', 'fixer', 'foo', 'id', 'messages',
-            'nosy', 'priority', 'status', 'superseder'])
+            'nosy', 'priority', 'spam', 'status', 'superseder'])
         self.assertEqual(self.db.issue.list(), ['1'])
 
 class ROTest(MyTestCase):

Modified: tracker/vendor/roundup/current/test/test_cgi.py
==============================================================================
--- tracker/vendor/roundup/current/test/test_cgi.py	(original)
+++ tracker/vendor/roundup/current/test/test_cgi.py	Sun Jan 14 15:31:23 2007
@@ -8,7 +8,7 @@
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# $Id: test_cgi.py,v 1.28 2006/08/11 00:18:59 richard Exp $
+# $Id: test_cgi.py,v 1.29 2006/12/11 23:36:15 richard Exp $
 
 import unittest, os, shutil, errno, sys, difflib, cgi, re
 
@@ -412,6 +412,14 @@
         self.assertEqual(self.parseForm({'boolean': ' '}, 'test', nodeid),
             ({('test', nodeid): {'boolean': None}}, []))
 
+    def testRequiredBoolean(self):
+        self.assertRaises(FormError, self.parseForm, {'boolean': '',
+            ':required': 'boolean'})
+        try:
+            self.parseForm({'boolean': 'no', ':required': 'boolean'})
+        except FormError:
+            self.fail('boolean "no" raised "required missing"')
+
     #
     # Number
     #
@@ -460,6 +468,14 @@
         self.assertEqual(self.parseForm({'number': ' '}, 'test', nodeid),
             ({('test', nodeid): {'number': None}}, []))
 
+    def testRequiredNumber(self):
+        self.assertRaises(FormError, self.parseForm, {'number': '',
+            ':required': 'number'})
+        try:
+            self.parseForm({'number': '0', ':required': 'number'})
+        except FormError:
+            self.fail('number "no" raised "required missing"')
+
     #
     # Date
     #


More information about the Python-checkins mailing list