--- /dev/null
+Copyright 2001-2002, Robert E. Coyle <robertecoyle@hotmail.com>
+Copyright 2001-2009 The Horde Project. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HORDE PROJECT
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- /dev/null
+What is Whups?
+==============
+
+:Last update: $Date: 2008/09/02 16:13:13 $
+:Revision: $Revision: 1.10 $
+:Contact: horde@lists.horde.org
+
+.. contents:: Contents
+.. section-numbering::
+
+Whups is a Horde ticket-tracking application. It is very flexible in design,
+and can be used for help-desk requests, tracking sofware development, and
+anything else that needs to track a set of requests and their status.
+
+This software is OSI Certified Open Source Software. OSI Certified is a
+certification mark of the `Open Source Initiative`_.
+
+.. _`Open Source Initiative`: http://www.opensource.org/
+
+
+Features
+--------
+
+Currently Whups supports the following features:
+
+* Support for multiple "Queues" (aka Projects).
+* Custom ticket types, states, priorities, attributes per Queue.
+* Create, update, assign, close tickets.
+* Search for tickets matching specific criteria.
+* A complex query building for building and saving/storing custom searches.
+* Guest access (in addition to login access).
+* E-mail notification of changes to tickets.
+* Ticket creation and updating through e-mail messages.
+* Permissions support.
+
+
+Terminology
+-----------
+
+Queues
+ Project name (or other major category name). This is the top level
+ structure.
+
+Types
+ Project Type, each Type has the following components:
+
+ States
+ State (Stage) of the current item. For example: new, open, closed,
+ resolved, etc.
+
+ Priorities
+ Priority of the current item. For example: Critical, High, Low, Normal,
+ Urgent, etc. Could also be abstracted (Red, Yellow, Green; 1, 2, 3; etc)
+
+ Attributes
+ From a large set of attribute types, an arbitrary number of attributes can
+ be added, including attribute names, descriptions, whether they are
+ required etc.
+
+ Form Replies
+ Reply texts for updating tickets, used for automatically filling ticket
+ comments with stock phrases.
+
+Responsible Users
+ Users responsible for a queue. These can be anyone, but should be Horde
+ users. Notifications only work with Horde users who have identities with an
+ email address set.
+
+Versions
+ Allows you to track multiple versions of the same project. Can be used for
+ actual versions (CVS HEAD, 1.0, etc), development cycles (planning,
+ prototyping, production), etc.
+
+Tickets
+ This is an "Instance" of a Type.
+
+
+Obtaining Whups
+------------------
+
+Further information on Whups and the latest version can be obtained at
+
+ http://www.horde.org/whups/
+
+
+Documentation
+-------------
+
+The following documentation is available in the Whups distribution:
+
+:README_: This file
+:LICENSE_: Copyright and license information
+:`docs/CHANGES`_: Changes by release
+:`docs/CREDITS`_: Project developers
+:`docs/INSTALL`_: Installation instructions and notes
+:`docs/TODO`_: Development TODO list
+
+
+Installation
+------------
+
+Instructions for installing Whups can be found in the file INSTALL_ in the
+``docs/`` directory of the Whups distribution.
+
+
+Assistance
+----------
+
+If you encounter problems with Whups, help is available!
+
+The Horde Frequently Asked Questions List (FAQ), available on the Web at
+
+ http://www.horde.org/faq/
+
+The Horde Project runs a number of mailing lists, for individual applications
+and for issues relating to the project as a whole. Information, archives, and
+subscription information can be found at
+
+ http://www.horde.org/mail/
+
+Lastly, Horde developers, contributors and users also make occasional
+appearances on IRC, on the channel #horde on the freenode Network
+(irc.freenode.net).
+
+
+Licensing
+---------
+
+For licensing and copyright information, please see the file LICENSE_ in the
+Whups distribution.
+
+Thanks,
+
+The Whups team
+
+
+.. _README: ?f=README.html
+.. _LICENSE: http://www.horde.org/licenses/bsdl.php
+.. _docs/CHANGES: ?f=CHANGES.html
+.. _docs/CREDITS: ?f=CREDITS.html
+.. _INSTALL:
+.. _docs/INSTALL: ?f=INSTALL.html
+.. _docs/TODO: ?f=TODO.html
--- /dev/null
+<?php
+/**
+ * $Horde: whups/admin/index.php,v 1.27 2009-11-27 00:12:53 mrubinsk Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+@define('WHUPS_BASE', dirname(dirname(__FILE__)));
+require_once WHUPS_BASE . '/lib/base.php';
+
+if (!Horde_Auth::isAdmin('whups:admin')) {
+ Horde::authenticationFailureRedirect();
+}
+
+// Set up the page config vars.
+$showExtraForm = null;
+
+// Setup vars with all relevant info.
+$vars = Horde_Variables::getDefaultVariables();
+if (!$vars->exists('action')) {
+ $vars->set('action', 'queue');
+}
+
+// Admin actions.
+$adminurl = Horde::selfUrl(false, false);
+$tabs = new Horde_Ui_Tabs('action', $vars);
+$tabs->addTab(_("_Edit Queues"), $adminurl, 'queue');
+$tabs->addTab(_("Edit _Types"), $adminurl, 'type');
+$tabs->addTab(_("Queue/Type Matri_x"), $adminurl, 'mtmatrix');
+$tabs->addTab(_("Sen_d Reminders"), $adminurl, 'reminders');
+
+$renderer = new Horde_Form_Renderer();
+
+// start the page
+function _open($isopened = false)
+{
+ global $vars;
+ static $opened;
+
+ if ($isopened) {
+ return $opened;
+ }
+
+ if (is_null($opened)) {
+ global $registry, $prefs, $browser, $conf, $notification, $title, $tabs;
+
+ $opened = true;
+ $title = _("Administration");
+ require WHUPS_TEMPLATES . '/common-header.inc';
+ require WHUPS_TEMPLATES . '/menu.inc';
+ echo $tabs->render($vars->get('action'));
+ }
+}
+
+function _editStateForms()
+{
+ global $vars, $renderer, $adminurl;
+ _open();
+ $form1 = new EditStateStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new DefaultStateForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form3 = new AddStateForm($vars);
+ $form3->renderActive($renderer, $vars, $adminurl, 'post');
+}
+
+function _editPriorityForms()
+{
+ global $vars, $renderer, $adminurl;
+ _open();
+ $form1 = new EditPriorityStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new DefaultPriorityForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form3 = new AddPriorityForm($vars);
+ $form3->renderActive($renderer, $vars, $adminurl, 'post');
+}
+
+switch ($vars->get('formname')) {
+case 'addtypestep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form1 = new AddTypeStep1Form($vars);
+ if ($form1->validate($vars)) {
+ // First, add the type
+ $tid = $whups_driver->addType($vars->get('name'),
+ $vars->get('description'));
+ if (is_a($tid, 'PEAR_Error')) {
+ Horde::fatal($tid, __FILE__, __LINE__);
+ }
+
+ _open();
+ $vars->add('type', $tid);
+ $form2 = new EditTypeStep2Form($vars);
+ $form2->title = 'addtypestep2form';
+ $form2->open($renderer, $vars, $adminurl, 'post');
+
+ // render the stage 1 form readonly
+ $form1->preserve($vars);
+ $renderer->beginInactive(sprintf(_("Add Type %s"), _("- Stage 1")));
+ $renderer->renderFormInactive($form1, $vars);
+ $renderer->end();
+
+ // render the second stage form
+ $renderer->beginActive(sprintf(_("Add Type %s"), _("- Stage 2")));
+ $renderer->renderFormActive($form2, $vars);
+ $renderer->submit();
+ $renderer->end();
+
+ $form2->close($renderer);
+ } else {
+ _open();
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addtypestep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form1 = new AddTypeStep1Form($vars);
+ $form2 = new EditTypeStep2Form($vars);
+ $form2->_name = 'addtypestep2form';
+ break;
+
+case 'edittypestep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form1 = new EditTypeStep1Form($vars);
+ $vars->set('action', 'type');
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Type"):
+ _open();
+ $form2 = new EditTypeStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Type"):
+ _open();
+ $form2 = new DeleteTypeForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Clone Type"):
+ _open();
+ $form2 = new CloneTypeForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ _open();
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'clonetypeform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form = new CloneTypeForm($vars);
+ if ($form->validate($vars)) {
+ // Create a new type and copy all attributes of the clone master to
+ // the new type.
+ $tid = $vars->get('type');
+ $type = $whups_driver->getType($tid);
+ $states = $whups_driver->getAllStateInfo($tid);
+ $priorities = $whups_driver->getAllPriorityInfo($tid);
+ $attributes = $whups_driver->getAttributeInfoFortype($tid);
+
+ // Create the new type.
+ $nid = $ntype = $whups_driver->addType($vars->get('name'),
+ $vars->get('description'));
+
+ // Add the states.
+ foreach ($states as $s) {
+ $whups_driver->addState($nid, $s['state_name'],
+ $s['state_description'],
+ $s['state_category']);
+ }
+
+ // Add the priorities.
+ foreach ($priorities as $p) {
+ $whups_driver->addPriority($nid, $p['priority_name'],
+ $p['priority_description']);
+ }
+
+ // Add attributes.
+ foreach ($attributes as $a) {
+ $whups_driver->addAttributeDesc($nid, $a['attribute_name'],
+ $a['attribute_description']);
+ }
+
+ $notification->push(sprintf(_("Successfully Cloned %s to %s."),
+ $type['name'], $vars->get('name')),
+ 'horde.success');
+ header('Location: ' . Horde::applicationUrl('admin/?action=type', true));
+ exit;
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'edittypeform':
+case 'edittypestep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form = new EditTypeStep2Form($vars);
+ if ($vars->get('formname') == 'edittypestep2form' &&
+ $form->validate($vars)) {
+ $result = $whups_driver->updateType($vars->get('type'),
+ $vars->get('name'),
+ $vars->get('description'));
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push(_("There was an error modifying the type:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ } else {
+ $notification->push(sprintf(_("The type \"%s\" has been modified."),
+ $vars->get('name')),
+ 'horde.success');
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'createdefaultstates':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $type = $vars->get('type');
+ foreach ($conf['states'] as $state) {
+ if ($state['active'] == 'active') {
+ $whups_driver->addState($type, $state['name'],
+ $state['desc'], $state['category']);
+ }
+ }
+
+ _open();
+ $form = new EditTypeStep2Form($vars);
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+case 'createdefaultpriorities':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $type = $vars->get('type');
+ foreach ($conf['priorities'] as $priority) {
+ if ($priority['active'] == 'active') {
+ $whups_driver->addPriority($type, $priority['name'],
+ $priority['desc']);
+ }
+ }
+
+ _open();
+ $form = new EditTypeStep2Form($vars);
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+case 'deletetypeform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ $form = new DeleteTypeForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteType($vars->get('type'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The type has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error deleting the type:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The type was not deleted."),
+ 'horde.message');
+ }
+ $vars->set('action', 'type');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addqueueform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Queue.php';
+ $form = new AddQueueForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->addQueue($vars->get('name'),
+ $vars->get('description'),
+ $vars->get('slug'),
+ $vars->get('email'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(
+ sprintf(_("The queue \"%s\" has been created."),
+ $vars->get('name')),
+ 'horde.success');
+
+ _open();
+ $vars->set('queue', $result);
+ $form2 = new EditQueueStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ $notification->push(_("There was an error creating the queue:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editqueuestep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Queue.php';
+ $form1 = new EditQueueStep1Form($vars);
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Queue"):
+ _open();
+ $form2 = new EditQueueStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Queue"):
+ _open();
+ $form2 = new DeleteQueueForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ _open();
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editqueueform':
+case 'editqueuestep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Queue.php';
+ $form = new EditQueueStep2Form($vars);
+
+ if ($vars->get('formname') == 'editqueuestep2form' &&
+ $form->validate($vars)) {
+ $result = $whups_driver->updateQueue($vars->get('queue'),
+ $vars->get('name'),
+ $vars->get('description'),
+ $vars->get('types'),
+ $vars->get('versioned'),
+ $vars->get('slug'),
+ $vars->get('email'),
+ $vars->get('default'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The queue has been modified."),
+ 'horde.success');
+ if (!$perms->exists('whups:queues:' . $vars->get('queue') . ':update')) {
+ $p = &$perms->newPermission('whups:queues:'
+ . $vars->get('queue') . ':update');
+ $perms->addPermission($p);
+ }
+ if (!$perms->exists('whups:queues:' . $vars->get('queue') . ':assign')) {
+ $p = &$perms->newPermission('whups:queues:'
+ . $vars->get('queue') . ':assign');
+ $perms->addPermission($p);
+ }
+
+ _open();
+ $form->renderInactive($renderer, $vars);
+ } else {
+ $notification->push(_("There was an error editing the queue:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deletequeueform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Queue.php';
+ $form = new DeleteQueueForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteQueue($vars->get('queue'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push( _("The queue has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error deleting the queue:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The queue was not deleted."),
+ 'horde.message');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addstateform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/State.php';
+ $vars->set('action', 'type');
+ $form = new AddStateForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->addState($vars->get('type'),
+ $vars->get('name'),
+ $vars->get('description'),
+ $vars->get('category'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $typename = $whups_driver->getType($vars->get('type'));
+ $typename = $typename['name'];
+ $notification->push(
+ sprintf(_("The state \"%s\" has been added to %s."),
+ $vars->get('name'), $typename),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error creating the state:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ _editStateForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editstatestep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/State.php';
+ $vars->set('action', 'type');
+ if (!$vars->get('submitbutton')) {
+ _editStateForms();
+ } else {
+ _open();
+ $form1 = new EditStateStep1Form($vars);
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit State"):
+ $form2 = new EditStateStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete State"):
+ $form2 = new DeleteStateForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ }
+ break;
+
+case 'editstatestep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/State.php';
+ $vars->set('action', 'type');
+ $form = new EditStateStep2Form($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->updateState($vars->get('state'),
+ $vars->get('name'),
+ $vars->get('description'),
+ $vars->get('category'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The state has been modified."),
+ 'horde.success');
+ _open();
+ $form->renderInactive($renderer, $vars);
+ } else {
+ $notification->push(_("There was an error editing the state:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ _editStateForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'defaultstateform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/State.php';
+ $vars->set('action', 'type');
+ $form = new DefaultStateForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->setDefaultState($vars->get('type'),
+ $vars->get('state'));
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push(
+ _("There was an error setting the default state:") . ' '
+ . $result->getMessage(),
+ 'horde.error');
+ } else {
+ $notification->push(_("The default state has been set."),
+ 'horde.success');
+ }
+
+ _editStateForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deletestateform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/State.php';
+ $vars->set('action', 'type');
+ $form = new DeleteStateForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteState($vars->get('state'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The state has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error deleting the state:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The state was not deleted."),
+ 'horde.message');
+ }
+
+ _editStateForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addpriorityform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Priority.php';
+ $vars->set('action', 'type');
+ $form = new AddPriorityForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->addPriority($vars->get('type'),
+ $vars->get('name'),
+ $vars->get('description'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $typename = $whups_driver->getType($vars->get('type'));
+ $typename = $typename['name'];
+ $notification->push(
+ sprintf(_("The priority \"%s\" has been added to %s."),
+ $vars->get('name'), $typename),
+ 'horde.success');
+ } else {
+ $notification->push(
+ _("There was an error creating the priority:") . ' '
+ . $result->getMessage(),
+ 'horde.error');
+ }
+
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ _editPriorityForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editprioritystep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Priority.php';
+ $vars->set('action', 'type');
+ if (!$vars->get('submitbutton')) {
+ _editPriorityForms();
+ } else {
+ _open();
+ $form1 = new EditPriorityStep1Form($vars);
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Priority"):
+ $form2 = new EditPriorityStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Priority"):
+ $form2 = new DeletePriorityForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ }
+ break;
+
+case 'editprioritystep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Priority.php';
+ $vars->set('action', 'type');
+ $form = new EditPriorityStep2Form($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->updatePriority($vars->get('priority'),
+ $vars->get('name'),
+ $vars->get('description'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The priority has been modified."),
+ 'horde.success');
+
+ _open();
+ $form->renderInactive($renderer, $vars);
+ } else {
+ $notification->push(_("There was an error editing the priority:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+
+ _editPriorityForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'defaultpriorityform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Priority.php';
+ $vars->set('action', 'type');
+ $form = new DefaultPriorityForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->setDefaultPriority($vars->get('type'),
+ $vars->get('priority'));
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push(
+ _("There was an error setting the default priority:") . ' '
+ . $result->getMessage(),
+ 'horde.error');
+ } else {
+ $notification->push(_("The default priority has been set."),
+ 'horde.success');
+ }
+
+ _editPriorityForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deletepriorityform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Priority.php';
+ $vars->set('action', 'type');
+ $form = new DeletePriorityForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deletePriority($vars->get('priority'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The priority has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(
+ _("There was an error deleting the priority:") . ' '
+ . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The priority was not deleted."),
+ 'horde.message');
+ }
+
+ _editPriorityForms();
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'adduserform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/User.php';
+ $form = new AddUserForm($vars);
+ if ($form->validate($vars)) {
+ $info = $whups_driver->getQueue($vars->get('queue'));
+ $result = $whups_driver->addQueueUser($vars->get('queue'),
+ $vars->get('user'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $user = $vars->get('user');
+ if (is_array($user)) {
+ $userinfo = array();
+ foreach ($user as $userID) {
+ $userinfo[] = Whups::formatUser($userID);
+ }
+ $userinfo = implode(', ', $userinfo);
+ } else {
+ $userinfo = Whups::formatUser($user);
+ }
+ $notification->push(
+ sprintf(_("%s added to those responsible for \"%s\""),
+ $userinfo, $info['name']),
+ 'horde.success');
+ } else {
+ $notification->push(
+ sprintf(_("There was an error adding \"%s\" to the responsible list for \"%s\":"),
+ Whups::formatUser($vars->get('user')),
+ $info['name'])
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ }
+
+ _open();
+ $form1 = new EditUserStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $vars = new Horde_Variables(array('queue' => $vars->get('queue')));
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+case 'edituserform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/User.php';
+ $form1 = new EditUserStep1Form($vars);
+ $form2 = new AddUserForm($vars);
+
+ _open();
+
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+
+ $vars = new Horde_Variables(array('queue' => $vars->get('queue')));
+ $form2 = new AddUserForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+case 'edituserstep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/User.php';
+ $form = new EditUserStep1Form($vars);
+ if ($form->validate($vars)) {
+ $info = $whups_driver->getQueue($vars->get('queue'));
+ $result = $whups_driver->removeQueueUser($vars->get('queue'),
+ $vars->get('user'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(
+ sprintf(_("\"%s\" is no longer among those responsible for \"%s\""),
+ Whups::formatUser($vars->get('user')), $info['name']),
+ 'horde.success');
+ } else {
+ $notification->push(
+ sprintf(_("There was an error removing \"%s\" from the responsible list for \"%s\":"),
+ Whups::formatUser($vars->get('user')), $info['name'])
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ }
+
+ _open();
+ $vars = new Horde_Variables(array('queue' => $vars->get('queue')));
+ $form = new EditUserStep1Form($vars);
+ $form->renderActive($renderer, $vars, $adminurl, 'get');
+ $form1 = new AddUserForm($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'get');
+ break;
+
+case 'addversionform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Version.php';
+ $form = new AddVersionForm($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->addVersion($vars->get('queue'),
+ $vars->get('name'),
+ $vars->get('description'),
+ $vars->get('active') == 'on');
+ if (!is_a($result, 'PEAR_Error')) {
+ $queuename = $whups_driver->getQueue($vars->get('queue'));
+ $queuename = $queuename['name'];
+ $notification->push(
+ sprintf(_("The version \"%s\" has been added to %s."),
+ $vars->get('name'), $queuename),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error creating the version:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ _open();
+ $vars = new Horde_Variables(array('queue' => $vars->get('queue')));
+ $form1 = new EditVersionStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ $form2 = new AddVersionForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editversionstep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Version.php';
+ $form1 = new EditVersionStep1Form($vars);
+
+ _open();
+
+ if (!$vars->get('submitbutton')) {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+
+ $form2 = new AddVersionForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Version"):
+ $form2 = new EditVersionStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Version"):
+ $form2 = new DeleteVersionForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ }
+ break;
+
+case 'editversionstep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Version.php';
+ $form = new EditVersionStep2Form($vars);
+ if ($form->validate($vars)) {
+ $result = $whups_driver->updateVersion($vars->get('version'),
+ $vars->get('name'),
+ $vars->get('description'),
+ $vars->get('active') == 'on');
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The version has been modified."),
+ 'horde.success');
+
+ _open();
+ $form->renderInactive($renderer, $vars);
+ } else {
+ $notification->push(_("There was an error editing the version:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ _open();
+ $vars = new Horde_Variables(array('queue' => $vars->get('queue')));
+ $form1 = new EditVersionStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ $form2 = new AddVersionForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deleteversionform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Version.php';
+ $form = new DeleteVersionForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteVersion($vars->get('version'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The version has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(_("There was an error deleting the version:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The version was not deleted."),
+ 'horde.message');
+ }
+
+ _open();
+ $form1 = new EditVersionStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ $form2 = new AddVersionForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addattributedescform':
+case 'addattributedescform_reload':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Attribute.php';
+ $form = new AddAttributeDescForm($vars);
+ $vars->set('action', 'type');
+ if ($vars->get('formname') == 'addattributedescform' &&
+ $form->validate($vars)) {
+ $result = $whups_driver->addAttributeDesc(
+ $vars->get('type'),
+ $vars->get('attribute_name'),
+ $vars->get('attribute_description'),
+ $vars->get('attribute_type'),
+ $vars->get('attribute_params'),
+ $vars->get('attribute_required'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $typename = $whups_driver->getType($vars->get('type'));
+ $typename = $typename['name'];
+ $notification->push(
+ sprintf(_("The attribute \"%s\" has been added to %s."),
+ $vars->get('attribute_name'), $typename),
+ 'horde.success');
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ } else {
+ $notification->push(_("There was an error creating the attribute:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ _open();
+ $form1 = new EditAttributeDescStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new AddAttributeDescForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editattributedescstep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Attribute.php';
+ $form1 = new EditAttributeDescStep1Form($vars);
+ $vars->set('action', 'type');
+ _open();
+ if (!$vars->get('submitbutton')) {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+
+ $form2 = new AddAttributeDescForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Attribute"):
+ $form2 = new EditAttributeDescStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Attribute"):
+ $form2 = new DeleteAttributeDescForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ }
+ break;
+
+case 'editattributedescstep2form':
+case 'editattributedescstep2form_reload':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Attribute.php';
+ $form = new EditAttributeDescStep2Form($vars);
+ $vars->set('action', 'type');
+ if ($vars->get('formname') == 'editattributedescstep2form' &&
+ $form->validate($vars)) {
+ $form->getInfo($vars, $info);
+ $result = $whups_driver->updateAttributeDesc(
+ $info['attribute'],
+ $info['attribute_name'],
+ $info['attribute_description'],
+ $info['attribute_type'],
+ $info['attribute_params'],
+ $info['attribute_required']);
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push( _("The attribute has been modified."),
+ 'horde.success');
+
+ _open();
+ $form->renderInactive($renderer, $vars);
+ echo '<br />';
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ } else {
+ $notification->push(_("There was an error editing the attribute:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+
+ _open();
+ $form1 = new EditAttributeDescStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new AddAttributeDescForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deleteattributedescform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Attribute.php';
+ $form = new DeleteAttributeDescForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteAttributeDesc($vars->get('attribute'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The attribute has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(
+ _("There was an error deleting the attribute:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The attribute was not deleted."),
+ 'horde.message');
+ }
+
+ _open();
+ $form1 = new EditAttributeDescStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ $form2 = new AddAttributeDescForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'addreplyform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Reply.php';
+ $form = new AddReplyForm($vars);
+ $vars->set('action', 'type');
+ if ($form->validate($vars)) {
+ $result = $whups_driver->addReply(
+ $vars->get('type'),
+ $vars->get('reply_name'),
+ $vars->get('reply_text'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $typename = $whups_driver->getType($vars->get('type'));
+ $typename = $typename['name'];
+ $notification->push(
+ sprintf(_("The form reply \"%s\" has been added to %s."),
+ $vars->get('reply_name'), $typename),
+ 'horde.success');
+ _open();
+ $vars->set('reply', $result);
+ $form = new EditReplyStep2Form($vars);
+ $form->renderInactive($renderer, $vars);
+ } else {
+ $notification->push(_("There was an error creating the form reply:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'editreplystep1form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Reply.php';
+ $form1 = new EditReplyStep1Form($vars);
+ $vars->set('action', 'type');
+ _open();
+ if (!$vars->get('submitbutton')) {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+
+ $form2 = new AddReplyForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ if ($form1->validate($vars)) {
+ switch ($vars->get('submitbutton')) {
+ case _("Edit Form Reply"):
+ $form2 = new EditReplyStep2Form($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+
+ case _("Delete Form Reply"):
+ $form2 = new DeleteReplyForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ break;
+ }
+ } else {
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ }
+ break;
+
+case 'editreplystep2form':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Reply.php';
+ $form = new EditReplyStep2Form($vars);
+ $vars->set('action', 'type');
+ if ($vars->get('formname') == 'editreplystep2form' &&
+ $form->validate($vars)) {
+ $result = $whups_driver->updateReply(
+ $vars->get('reply'),
+ $vars->get('reply_name'),
+ $vars->get('reply_text'));
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push(_("There was an error editing the form reply:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ } else {
+ $notification->push( _("The form reply has been modified."),
+ 'horde.success');
+ _open();
+ $form->renderInactive($renderer, $vars);
+ echo '<br />';
+ $vars = new Horde_Variables(array('type' => $vars->get('type')));
+ }
+
+ _open();
+ $form1 = new EditReplyStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new AddReplyForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'deletereplyform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Reply.php';
+ $form = new DeleteReplyForm($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $result = $whups_driver->deleteReply($vars->get('reply'));
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(_("The form reply has been deleted."),
+ 'horde.success');
+ } else {
+ $notification->push(
+ _("There was an error deleting the form reply:")
+ . ' ' . $result->getMessage(),
+ 'horde.error');
+ }
+ } else {
+ $notification->push(_("The form reply was not deleted."),
+ 'horde.message');
+ }
+
+ _open();
+ $form1 = new EditReplyStep1Form($vars);
+ $form1->renderActive($renderer, $vars, $adminurl, 'post');
+ echo '<br />';
+ $form2 = new AddReplyForm($vars);
+ $form2->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'sendreminderform':
+ require_once WHUPS_BASE . '/lib/Forms/Admin.php';
+ $form = new SendReminderForm($vars);
+ if ($form->validate($vars)) {
+ $result = Whups::sendReminders($vars);
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ } else {
+ $notification->push(_("Reminders were sent."), 'horde.success');
+ }
+ } else {
+ _open();
+ $form->renderActive($renderer, $vars, $adminurl, 'post');
+ }
+ break;
+
+case 'mtmatrix':
+ $vars->set('action', 'mtmatrix');
+ $queues = $whups_driver->getQueues();
+ $types = $whups_driver->getAllTypes();
+ $matrix = $vars->get('matrix');
+
+ // Validate data.
+ $pairs = array();
+ if (!empty($matrix)) {
+ foreach ($matrix as $mid => $mtypes) {
+ if (isset($queues[$mid])) {
+ foreach ($mtypes as $tid => $on) {
+ if (isset($types[$tid])) {
+ $pairs[] = array($mid, $tid);
+ }
+ }
+ }
+ }
+ }
+
+ $result = $whups_driver->updateTypesQueues($pairs);
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(_("Associations updated successfully."),
+ 'horde.success');
+ }
+ break;
+}
+
+if (!_open(true)) {
+ // Check for actions.
+ switch ($vars->get('action')) {
+ case 'type':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Type.php';
+ if (count($whups_driver->getAllTypes())) {
+ $main1 = new EditTypeStep1Form($vars);
+ }
+ $main2 = new AddTypeStep1Form($vars);
+ break;
+
+ case 'reminders':
+ require_once WHUPS_BASE . '/lib/Forms/Admin.php';
+ $main1 = new SendReminderForm($vars);
+ break;
+
+ case 'mtmatrix':
+ _open();
+ $queues = $whups_driver->getQueues();
+ $types = $whups_driver->getAllTypes();
+ $tlink = Horde::applicationUrl('admin/?formname=edittypeform');
+ $mlink = Horde::applicationUrl('admin/?formname=editqueueform');
+ require WHUPS_TEMPLATES . '/admin/mtmatrix.inc';
+ break;
+
+ case 'queue':
+ require_once WHUPS_BASE . '/lib/Forms/Admin/Queue.php';
+ if (count($whups_driver->getQueues())) {
+ $main1 = new EditQueueStep1Form($vars);
+ }
+ if ($registry->hasMethod('tickets/listQueues') == $registry->getApp()) {
+ $main2 = new AddQueueForm($vars);
+ }
+ break;
+ }
+
+ _open();
+ if (isset($main1)) {
+ $main1->renderActive($renderer, $vars, $adminurl, 'get');
+ }
+ if (isset($main1) && isset($main2)) {
+ echo '<br />';
+ }
+ if (isset($main2)) {
+ $main2->renderActive($renderer, $vars, $adminurl, 'get');
+ }
+}
+
+_open();
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+conf.php
+conf.bak.php
+create_email*.txt
+hooks.php
+menu.php
+mime_drivers.php
+notify_email*.txt
+prefs.php
+reminders.php
+templates.php
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
+// $Horde: whups/config/conf.xml,v 1.38 2008/06/24 22:49:56 jan Exp $
+$conf['tickets']['params']['driverconfig'] = 'horde';
+$conf['tickets']['driver'] = 'sql';
+$conf['guests']['captcha'] = false;
+$conf['mail']['reply'] = false;
+$conf['mail']['include_headers'] = false;
+$conf['mail']['commenthistory'] = 'new';
+$conf['mail']['incl_resp'] = true;
+$conf['mail']['server_name'] = '127.0.0.1';
+$conf['mail']['server_port'] = 80;
+$conf['prefs']['autolink_terms'] = 'bug|ticket|issue';
+$conf['prefs']['assign_all_groups'] = false;
+$conf['menu']['apps'] = array();
+$conf['states']['1']['name'] = 'Unconfirmed';
+$conf['states']['1']['desc'] = 'A ticket has been reported but not yet analyzed';
+$conf['states']['1']['category'] = 'unconfirmed';
+$conf['states']['1']['active'] = 'active';
+$conf['states']['2']['name'] = 'Accepted';
+$conf['states']['2']['desc'] = 'The ticket has been analyzed and accepted as valid.';
+$conf['states']['2']['category'] = 'new';
+$conf['states']['2']['active'] = 'active';
+$conf['states']['3']['name'] = 'Assigned';
+$conf['states']['3']['desc'] = 'Someone has accepted responsibility for the ticket.';
+$conf['states']['3']['category'] = 'assigned';
+$conf['states']['3']['active'] = 'active';
+$conf['states']['4']['name'] = 'Resolved';
+$conf['states']['4']['desc'] = 'The ticket has been resolved.';
+$conf['states']['4']['category'] = 'resolved';
+$conf['states']['4']['active'] = 'active';
+$conf['states']['5']['name'] = 'Canceled';
+$conf['states']['5']['desc'] = 'The ticket is no longer valid for one reason or another.';
+$conf['states']['5']['category'] = 'resolved';
+$conf['states']['5']['active'] = 'active';
+$conf['states']['6']['active'] = 'inactive';
+$conf['states']['7']['active'] = 'inactive';
+$conf['states']['8']['active'] = 'inactive';
+$conf['priorities']['1']['name'] = '1. Low';
+$conf['priorities']['1']['desc'] = 'This is a very low priority ticket';
+$conf['priorities']['1']['active'] = 'active';
+$conf['priorities']['2']['name'] = '2. Medium';
+$conf['priorities']['2']['desc'] = 'This is an important task, but not urgent.';
+$conf['priorities']['2']['active'] = 'active';
+$conf['priorities']['3']['name'] = '3. High';
+$conf['priorities']['3']['desc'] = 'This ticket is very urgent';
+$conf['priorities']['3']['active'] = 'active';
+$conf['priorities']['4']['active'] = 'inactive';
+$conf['priorities']['5']['active'] = 'inactive';
+$conf['priorities']['6']['active'] = 'inactive';
+$conf['hooks']['update'] = false;
+$conf['hooks']['group_fields'] = false;
+/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
--- /dev/null
+<?xml version="1.0"?>
+<!-- $Horde: whups/config/conf.xml,v 1.39 2009/08/27 09:25:27 jan Exp $ -->
+<configuration>
+ <configtab name="tickets" desc="Tickets Driver Settings">
+ <configsection name="tickets">
+ <configswitch name="driver" desc="What storage driver should we use?">sql
+ <case name="sql" desc="SQL">
+ <configsection name="params">
+ <configsql switchname="driverconfig"/>
+ </configsection>
+ </case>
+ </configswitch>
+ </configsection>
+ </configtab>
+
+ <configtab name="guests" desc="Guest Settings">
+ <configsection name="guests">
+ <configswitch name="captcha" quote="false" desc="Require guests to enter a
+ verification string with each transaction to protect against spam? (Requires
+ Horde 3.1)">false
+ <case name="false" desc="No"/>
+ <case name="true" desc="Yes">
+ <configstring name="figlet_font" desc="The path to a Figlet
+ (http://www.figlet.org/) font
+ file">/usr/share/games/figlet/fonts/big.flf</configstring>
+ </case>
+ </configswitch>
+ </configsection>
+ </configtab>
+
+ <configtab name="mail" desc="Email Settings">
+ <configsection name="mail">
+ <configstring name="from_addr" required="false" desc="What email address
+ should be used to send ticket email? If this is left empty, email will come
+ from the user who updated the ticket, as long as we can find an email
+ address for them. You can specify individual email addresses in the queue
+ administration that will override this setting."/>
+ <configstring name="always_copy" required="false" desc="Should we always
+ send ticket email to one or more addresses? Listeners for the ticket will
+ always get email as configured below; this is for archiving purposes or for
+ a tracking list, etc. Seperate multiple email addresses with commas. It is
+ possible to send to queue specific mail addresses by using the placeholder
+ '<@>' which will be replaced by the queue name."/>
+ <configboolean name="reply" desc="Can users reply to ticket emails? If you
+ entered an email address above, and have configured it to accept ticket
+ email, enable this. Otherwise, or if you're not sure, leave it
+ disabled." required="false">false</configboolean>
+ <configboolean name="include_headers" desc="When generating new tickets or
+ adding ticket comments from email messages, should we include the basic
+ email headers into the ticket comment?"
+ required="false">false</configboolean>
+ <configenum name="commenthistory" desc="When someone adds a comment to a
+ ticket, how should we send the comments?">new
+ <values>
+ <value desc="Only the new comment">new</value>
+ <value desc="All comments, oldest comments first">chronological</value>
+ <value desc="All comments, most recent comments
+ first">revchronological</value>
+ </values>
+ </configenum>
+ <configboolean name="incl_resp" desc="Should all users responsible for a
+ queue continue to receive email once a ticket is
+ assigned?" required="false">true</configboolean>
+ <configstring name="server_name" desc="What server name should be used to
+ create ticket links if using
+ scripts/mail-filter.php?">127.0.0.1</configstring>
+ <configinteger name="server_port" desc="What server port should be used to
+ create ticket links if using
+ scripts/mail-filter.php?">80</configinteger>
+ <configstring name="username" desc="What user should be used to create
+ tickets if using scripts/mail-filter.php?" required="false" />
+ </configsection>
+ </configtab>
+
+ <configtab name="prefs" desc="User Preference Attributes and Menu">
+ <configsection name="prefs">
+ <configheader>User Preference Attributes</configheader>
+ <configstring name="autolink_terms" desc="Users can opt to automatically
+ link to other tickets referenced in comments. The regex option allows you
+ to specify one or more phrases to match against along with a number
+ (i.e. Ticket 101). Note the search is NOT case sensitive. Separate more
+ than one term with '|'.">bug|ticket|issue</configstring>
+ <configboolean name="assign_all_groups" desc="Allow assignment to any
+ group? Assignment of bugs to groups can be limited to groups that users are
+ members of by disabling this option" required="false">false</configboolean>
+ </configsection>
+ <configsection name="menu">
+ <configheader>Menu Settings</configheader>
+ <configmultienum name="apps" desc="Select any applications that should be
+ linked in Whups' menu">
+ <values>
+ <configspecial name="list-horde-apps" />
+ </values>
+ </configmultienum>
+ </configsection>
+ </configtab>
+
+ <configtab name="defaults" desc="Default States">
+ <configsection name="states">
+ <configsection name="1">
+ <configswitch name="active" desc="1st state">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="1. State
+ name">Unconfirmed</configstring>
+ <configstring name="desc" desc="Description for this state">A ticket has been reported but not yet analyzed</configstring>
+ <configenum name="category" desc="Category for this new
+ state">unconfirmed
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="2">
+ <configswitch name="active" desc="2nd state">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="2. State name">Accepted</configstring>
+ <configstring name="desc" desc="Description for this state">The ticket has been analyzed and accepted as valid.</configstring>
+ <configenum name="category" desc="Category for this new state">new
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="3">
+ <configswitch name="active" desc="3rd state">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="3. State name">Assigned</configstring>
+ <configstring name="desc" desc="Description for this state">Someone has accepted responsibility for the ticket.</configstring>
+ <configenum name="category" desc="Category for this new state">assigned
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="4">
+ <configswitch name="active" desc="4th state">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="4. State name">Resolved</configstring>
+ <configstring name="desc" desc="Description for this state">The ticket has been resolved.</configstring>
+ <configenum name="category" desc="Category for this new state">resolved
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="5">
+ <configswitch name="active" desc="5th state">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="5. State name">Canceled</configstring>
+ <configstring name="desc" desc="Description for this state">The ticket is no longer valid for one reason or another.</configstring>
+ <configenum name="category" desc="Category for this new state">resolved
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="6">
+ <configswitch name="active" desc="6th state">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="6. state name"/>
+ <configstring name="desc" desc="Description for this
+ state"/>
+ <configenum name="category" desc="Category for this new state">
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="7">
+ <configswitch name="active" desc="7th state">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="7. state name"/>
+ <configstring name="desc" desc="Description for this
+ state"/>
+ <configenum name="category" desc="Category for this new state">
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="8">
+ <configswitch name="active" desc="8th state">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="8. state name"/>
+ <configstring name="desc" desc="Description for this
+ state"/>
+ <configenum name="category" desc="Category for this new state">
+ <values>
+ <value desc="--"/>
+ <value desc="Unconfirmed">unconfirmed</value>
+ <value desc="New">new</value>
+ <value desc="Assigned">assigned</value>
+ <value desc="Resolved">resolved</value>
+ </values>
+ </configenum>
+ </configcase>
+ </configswitch>
+ </configsection>
+ </configsection>
+ </configtab>
+
+ <configtab name="priorities" desc="Default Priorities">
+ <configsection name="priorities">
+ <configsection name="1">
+ <configswitch name="active" desc="1st priority">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="1. Priority name">1. Low</configstring>
+ <configstring name="desc" desc="Description for this priority">This is a very low priority ticket</configstring>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="2">
+ <configswitch name="active" desc="2nd priority">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="2. Priority
+ name">2. Medium</configstring>
+ <configstring name="desc" desc="Description for this priority">This is an important task, but not urgent.</configstring>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="3">
+ <configswitch name="active" desc="3rd priority">active
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="3. Priority name">3. High</configstring>
+ <configstring name="desc" desc="Description for this priority">This ticket is very urgent</configstring>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="4">
+ <configswitch name="active" desc="4th priority">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="4. Priority name"/>
+ <configstring name="desc" desc="Description for this
+ priority"/>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="5">
+ <configswitch name="active" desc="5th priority">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="5. Priority name"/>
+ <configstring name="desc" desc="Description for this
+ priority"/>
+ </configcase>
+ </configswitch>
+ </configsection>
+ <configsection name="6">
+ <configswitch name="active" desc="6th priority">inactive
+ <configcase name="inactive" desc="Inactive" />
+ <configcase name="active" desc="Active">
+ <configstring name="name" desc="6. Priority name"/>
+ <configstring name="desc" desc="Description for this
+ priority"/>
+ </configcase>
+ </configswitch>
+ </configsection>
+ </configsection>
+ </configtab>
+</configuration>
--- /dev/null
+@@dont_reply@@@@ticket_url@@
+@@table@@@@comment@@
--- /dev/null
+@@dont_reply@@@@ticket_url@@
+@@table@@@@comment@@
--- /dev/null
+<?php
+/**
+ * Whups Hooks configuration file.
+ *
+ * THE HOOKS PROVIDED IN THIS FILE ARE EXAMPLES ONLY. DO NOT ENABLE THEM
+ * BLINDLY IF YOU DO NOT KNOW WHAT YOU ARE DOING. YOU HAVE TO CUSTOMIZE THEM
+ * TO MATCH YOUR SPECIFIC NEEDS AND SYSTEM ENVIRONMENT.
+ *
+ * For more information please see the horde/config/hooks.php.dist file.
+ *
+ * $Horde: whups/config/hooks.php.dist,v 1.8 2009/08/27 09:25:27 jan Exp $
+ */
+
+class Whups_Hooks
+{
+ /**
+ * This is an example hook that customizes the grouping of ticket fields.
+ *
+ * It splits all fields into two groups, one for custom attribute fields
+ * and one for the regular fields. Additionally, it moves the 'queue'
+ * field at the top of the regular fields list.
+ */
+// public function group_fields($type, $fields)
+// {
+// $common_fields = $attributes = array();
+// foreach ($fields as $field) {
+// if (substr($field, 0, 10) == 'attribute_') {
+// $attributes[] = $field;
+// } elseif ($field == 'queue') {
+// array_unshift($common_fields, $field);
+// } else {
+// $common_fields[] = $field;
+// }
+// }
+// return array('Common Fields' => $common_fields,
+// 'Attributes' => $attributes);
+// }
+
+ /**
+ * This is an example hook that intercepts ticket changes.
+ *
+ * If a comment has been added to a closed ticket, it will re-open the
+ * ticket, setting the state to "assigned". You might want to use numeric
+ * ids for the 'to' item in a real life hook.
+ */
+// public function ticket_update($ticket, $changes)
+// {
+// /* We only want to change the ticket state if it is closed, a comment
+// * has been added, and the state hasn't been changed already. */
+// if (!empty($changes['comment']) &&
+// empty($changes['state']) &&
+// $ticket->get('state_category') == 'resolved') {
+// /* Pick the first state from the state category 'assigned'. */
+// $states = $GLOBALS['whups_driver']->getStates($ticket->get('type'),
+// 'assigned');
+// /* These three item have to exist in a change set. */
+// $changes['state'] = array(
+// 'to' => key($states),
+// 'from' => $ticket->get('state'),
+// 'from_name' => $ticket->get('state_name'));
+// }
+//
+// return $changes;
+// }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/menu.php.dist,v 1.1 2002/11/18 03:49:59 chuck Exp $
+ *
+ * This file lets you extend Whups' menu with your own items.
+ *
+ * To add a new menu item, simply add a new entry to the $_menu array.
+ * Valid attributes for a new menu item are:
+ *
+ * 'url' The URL value for the menu item.
+ * 'text' The text to accompany the menu item.
+ *
+ * These attributes are optional:
+ *
+ * 'icon' The filename of an icon to use for the menu item.
+ * 'icon_path' The path to the icon if it doesn't exist in the graphics/
+ * directory.
+ * 'target' The "target" of the link (e.g. '_top', '_blank').
+ * 'onclick' Any JavaScript to execute on the "onclick" event.
+ *
+ * Here's an example entry:
+ *
+ * $_menu[] = array(
+ * 'url' => 'http://www.example.com/',
+ * 'text' => 'Example, Inc.',
+ * 'icon' => 'example.gif',
+ * 'icon_path' => 'http://www.example.com/images/',
+ * 'target' => '_blank',
+ * 'onclick' => ''
+ * );
+ *
+ * You can also add a "separator" (a spacer) between menu items. To add a
+ * separator, simply add a new string to the $_menu array set to the text
+ * 'separator'. It should look like this:
+ *
+ * $_menu[] = 'separator';
+ */
+
+$_menu = array();
+
+/* Add your custom entries below this line. */
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/mime_drivers.php.dist,v 1.4 2005/03/14 13:27:10 jan Exp $
+ *
+ * Decide which output drivers you want to activate for the Whups application.
+ * Settings in this file override settings in horde/config/mime_drivers.php.
+ *
+ * The available drivers are:
+ * --------------------------
+ * zip ZIP attachments
+ */
+$mime_drivers_map['whups']['registered'] = array('zip');
+
+/**
+ * If you want to specifically override any MIME type to be handled by
+ * a specific driver, then enter it here. Normally, this is safe to
+ * leave, but it's useful when multiple drivers handle the same MIME
+ * type, and you want to specify exactly which one should handle it.
+ */
+$mime_drivers_map['whups']['overrides'] = array();
+
+/**
+ * Driver specific settings. See horde/config/mime_drivers.php for
+ * the format.
+ */
+
+$mime_drivers['horde']['enscript']['handles'][] = 'text/html';
+
+/**
+ * Zip File Attachments settings
+ */
+$mime_drivers['whups']['zip']['inline'] = false;
+$mime_drivers['whups']['zip']['handles'] = array(
+ 'x-extension/zip',
+ 'application/zip',
+ 'application/x-compressed',
+ 'application/x-zip-compressed');
+$mime_drivers['whups']['zip']['icons'] = array(
+ 'default' => 'compressed.png');
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/mime_drivers.php.dist,v 1.4 2005/03/14 13:27:10 jan Exp $
+ *
+ * Decide which output drivers you want to activate for the Whups application.
+ * Settings in this file override settings in horde/config/mime_drivers.php.
+ *
+ * The available drivers are:
+ * --------------------------
+ * zip ZIP attachments
+ */
+$mime_drivers_map['whups']['registered'] = array('zip');
+
+/**
+ * If you want to specifically override any MIME type to be handled by
+ * a specific driver, then enter it here. Normally, this is safe to
+ * leave, but it's useful when multiple drivers handle the same MIME
+ * type, and you want to specify exactly which one should handle it.
+ */
+$mime_drivers_map['whups']['overrides'] = array();
+
+/**
+ * Driver specific settings. See horde/config/mime_drivers.php for
+ * the format.
+ */
+
+$mime_drivers['horde']['enscript']['handles'][] = 'text/html';
+
+/**
+ * Zip File Attachments settings
+ */
+$mime_drivers['whups']['zip']['inline'] = false;
+$mime_drivers['whups']['zip']['handles'] = array(
+ 'x-extension/zip',
+ 'application/zip',
+ 'application/x-compressed',
+ 'application/x-zip-compressed');
+$mime_drivers['whups']['zip']['icons'] = array(
+ 'default' => 'compressed.png');
--- /dev/null
+@@dont_reply@@@@ticket_url@@
+@@table@@@@comment@@
--- /dev/null
+@@dont_reply@@@@ticket_url@@
+@@table@@@@comment@@
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/prefs.php.dist,v 1.29 2008/06/06 15:09:44 jan Exp $
+ *
+ * See horde/config/prefs.php for documentation on the structure of this file.
+ */
+
+$prefGroups['display'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Display Options"),
+ 'desc' => _("Change display options such as how search results are sorted."),
+ 'members' => array('sortby', 'sortdir', 'comment_sort_dir', 'whups_default_view', 'summary_show_requested', 'summary_show_ticket_numbers', 'report_time_format', 'autolink_tickets')
+);
+
+$prefGroups['notification'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Notification Options"),
+ 'desc' => _("Change options for email notifications of ticket activity."),
+ 'members' => array('email_others_only', 'email_comments_only'));
+
+if ($GLOBALS['registry']->hasMethod('contacts/sources')) {
+ $prefGroups['addressbooks'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Address Books"),
+ 'desc' => _("Select address book sources for adding and searching for addresses."),
+ 'members' => array('sourceselect'),
+ );
+}
+
+
+// the layout of the bugs portal.
+$_prefs['mybugs_layout'] = array(
+ 'value' => 'a:0:{}',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit'
+);
+
+// user preferred sorting column
+$_prefs['sortby'] = array(
+ 'value' => 'id',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array('id' => _("Id"),
+ 'summary' => _("Summary"),
+ 'state_name' => _("State"),
+ 'type_name' => _("Type"),
+ 'priority_name' => _("Priority"),
+ 'queue_name' => _("Queue"),
+ 'version_name' => _("Version"),
+ 'timestamp' => _("Created"),
+ 'date_assigned' => _("Assigned"),
+ 'date_resolved' => _("Resolved")),
+ 'desc' => _("Default sorting criteria:")
+);
+
+// user preferred sorting direction
+$_prefs['sortdir'] = array(
+ 'value' => 0,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array(0 => _("Ascending"),
+ 1 => _("Descending")),
+ 'desc' => _("Default sorting direction:")
+);
+
+// default view
+$_prefs['whups_default_view'] = array(
+ 'value' => 'mybugs',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array('mybugs' => _("My Tickets"),
+ 'search' => _("Search Tickets"),
+ 'ticket/create' => _("Create Ticket")),
+ 'desc' => _("Select the view to display after login:")
+);
+
+// show requested tickets in the horde summary?
+$_prefs['summary_show_requested'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Show tickets you have requested in the summary view?"));
+
+// show ticket ids in the horde summary?
+$_prefs['summary_show_ticket_numbers'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Show ticket IDs in the summary view?")
+);
+
+// Allow custom time/date formats in reports
+$_prefs['report_time_format'] = array(
+ 'value' => '%m/%d/%y',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array('%a %d %B' => _("Weekday Day Month"),
+ '%c' => _("Weekday Day Month HH:MM:SS TZ"),
+ '%m/%d/%y' => _("MM/DD/YY"),
+ '%m/%d/%y %H:%M:%S' => _("MM/DD/YY HH:MM:SS")),
+ 'desc' => _("Date/Time format for search results")
+);
+
+// Skip notification of changes you added?
+$_prefs['email_others_only'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Only notify me of ticket changes from other users?")
+);
+
+// Skip notification without comments?
+$_prefs['email_comments_only'] = array(
+ 'value' => 0,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Only notify me of ticket changes with comments?")
+);
+
+// AutoLink to tickets references in comments
+$_prefs['autolink_tickets'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Autolink to other tickets in comments?")
+);
+
+// Show ticket comments in ascending or descending order?
+$_prefs['comment_sort_dir'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'desc' => _("Show comments in chronological order, or most recent first?"),
+ 'enum' => array(0 => _("Chronological (oldest first)"),
+ 1 => _("Most recent first"))
+);
+
+// address book selection widget
+$_prefs['sourceselect'] = array('type' => 'special');
+
+// address book(s) to use when expanding addresses
+// You can provide default values this way (note the \t and the double quotes):
+// 'value' => "source_one\tsource_two"
+// refer to turba/config/sources.php for possible source values
+$_prefs['search_sources'] = array(
+ 'value' => "",
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit',
+);
+
+// field(s) to use when expanding addresses
+// This depends on the search_sources preference if you want to provide
+// default values:
+// 'value' => "source_one\tfield_one\tfield_two\nsource_two\tfield_three"
+// will search the fields 'field_one' and 'field_two' in source_one and
+// 'field_three' in source_two.
+// refer to turba/config/sources.php for possible source and field values
+$_prefs['search_fields'] = array(
+ 'value' => "",
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit',
+);
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/prefs.php.dist,v 1.30 2008/12/20 17:34:22 chuck Exp $
+ *
+ * See horde/config/prefs.php for documentation on the structure of this file.
+ */
+
+$prefGroups['display'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Display Options"),
+ 'desc' => _("Change display options such as how search results are sorted."),
+ 'members' => array('sortby', 'sortdir', 'comment_sort_dir', 'whups_default_view', 'summary_show_requested', 'summary_show_ticket_numbers', 'report_time_format', 'autolink_tickets')
+);
+
+$prefGroups['notification'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Notification Options"),
+ 'desc' => _("Change options for email notifications of ticket activity."),
+ 'members' => array('email_others_only', 'email_comments_only'));
+
+if ($GLOBALS['registry']->hasMethod('contacts/sources')) {
+ $prefGroups['addressbooks'] = array(
+ 'column' => _("General Options"),
+ 'label' => _("Address Books"),
+ 'desc' => _("Select address book sources for adding and searching for addresses."),
+ 'members' => array('sourceselect'),
+ );
+}
+
+
+// the layout of the bugs portal.
+$_prefs['mybugs_layout'] = array(
+ 'value' => 'a:0:{}',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit'
+);
+
+// user preferred sorting column
+$_prefs['sortby'] = array(
+ 'value' => 'id',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array('id' => _("Id"),
+ 'summary' => _("Summary"),
+ 'state_name' => _("State"),
+ 'type_name' => _("Type"),
+ 'priority_name' => _("Priority"),
+ 'queue_name' => _("Queue"),
+ 'version_name' => _("Version"),
+ 'timestamp' => _("Created"),
+ 'date_assigned' => _("Assigned"),
+ 'date_resolved' => _("Resolved")),
+ 'desc' => _("Default sorting criteria:")
+);
+
+// user preferred sorting direction
+$_prefs['sortdir'] = array(
+ 'value' => 0,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array(0 => _("Ascending"),
+ 1 => _("Descending")),
+ 'desc' => _("Default sorting direction:")
+);
+
+// default view
+$_prefs['whups_default_view'] = array(
+ 'value' => 'mybugs',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array('mybugs' => _("My Tickets"),
+ 'search' => _("Search Tickets"),
+ 'ticket/create' => _("Create Ticket")),
+ 'desc' => _("Select the view to display after login:")
+);
+
+// show requested tickets in the horde summary?
+$_prefs['summary_show_requested'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Show tickets you have requested in the summary view?"),
+);
+
+// show ticket ids in the horde summary?
+$_prefs['summary_show_ticket_numbers'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Show ticket IDs in the summary view?"),
+);
+
+// Allow custom time/date formats in reports
+$_prefs['report_time_format'] = array(
+ 'value' => '%m/%d/%y',
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'enum' => array(
+ '%a %d %B' => _("Weekday Day Month"),
+ '%c' => _("Weekday Day Month HH:MM:SS TZ"),
+ '%m/%d/%y' => _("MM/DD/YY"),
+ '%m/%d/%y %H:%M:%S' => _("MM/DD/YY HH:MM:SS"),
+ '%d/%m/%y' => _("DD/MM/YY"),
+ '%d/%m/%y %H:%M:%S' => _("DD/MM/YY HH:MM:SS"),
+ '%y/%m/%d' => _("YY/MM/DD"),
+ '%y/%m/%d %H:%M:%S' => _("YY/MM/DD HH:MM:SS"),
+ ),
+ 'desc' => _("Date/Time format for search results"),
+);
+
+// Skip notification of changes you added?
+$_prefs['email_others_only'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Only notify me of ticket changes from other users?"),
+);
+
+// Skip notification without comments?
+$_prefs['email_comments_only'] = array(
+ 'value' => 0,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Only notify me of ticket changes with comments?")
+);
+
+// AutoLink to tickets references in comments
+$_prefs['autolink_tickets'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'checkbox',
+ 'desc' => _("Autolink to other tickets in comments?")
+);
+
+// Show ticket comments in ascending or descending order?
+$_prefs['comment_sort_dir'] = array(
+ 'value' => 1,
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'enum',
+ 'desc' => _("Show comments in chronological order, or most recent first?"),
+ 'enum' => array(0 => _("Chronological (oldest first)"),
+ 1 => _("Most recent first"))
+);
+
+// address book selection widget
+$_prefs['sourceselect'] = array('type' => 'special');
+
+// address book(s) to use when expanding addresses
+// You can provide default values this way (note the \t and the double quotes):
+// 'value' => "source_one\tsource_two"
+// refer to turba/config/sources.php for possible source values
+$_prefs['search_sources'] = array(
+ 'value' => "",
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit',
+);
+
+// field(s) to use when expanding addresses
+// This depends on the search_sources preference if you want to provide
+// default values:
+// 'value' => "source_one\tfield_one\tfield_two\nsource_two\tfield_three"
+// will search the fields 'field_one' and 'field_two' in source_one and
+// 'field_three' in source_two.
+// refer to turba/config/sources.php for possible source and field values
+$_prefs['search_fields'] = array(
+ 'value' => "",
+ 'locked' => false,
+ 'shared' => false,
+ 'type' => 'implicit',
+);
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/reminders.php.dist,v 1.2 2004/05/15 14:03:22 chuck Exp $
+ *
+ * This file defines reminders sent automatically by Whups (if you
+ * schedule scripts/reminders.php in your crontab).
+ *
+ * Hopefully rule definition will migrate to a database in the future,
+ * for easy configuration through the web interface.
+ *
+ * You can add as many reminder rules as you like. Each one is defined
+ * by an array with the following indices:
+ *
+ * 'frequency' => A cron-style date specification defining how often
+ * the rule will be triggered. For example,
+ * '* 30 11 1-31&Mon *' would run any second, at half
+ * past the hour of 11, every Monday in the month, every
+ * month.
+ *
+ * 'server_name' => The hostname that reminder emails will be sent
+ * from. Necessary since $_SERVER['SERVER_NAME'] is
+ * not present when running from cron. You can ignore
+ * this if you've set an explicit server name in
+ * horde's conf.php in $conf['server']['name'].
+ *
+ * 'queue' => Which Whups queue are we looking at?
+ *
+ * 'unassigned' => What email address should we send notification of
+ * unassigned tickets to? Can be set to false or any
+ * empty value if no email is necessary.
+ *
+ * 'category' => An array of states to send reminders for. Any of
+ * 'unconfirmed', 'new', 'assigned', and 'resolved',
+ * though I doubt you'll want to send reminders for
+ * resolved tickets.
+ */
+
+$reminders = array();
+
+// Here's an example entry that will send reminders for queue number 1
+// every Monday at 5am, for everything but resolved tickets.
+$reminders[] = array('frequency' => '* 0 5 1-31&Mon *',
+ 'server_name' => 'www.example.com',
+ 'queue' => 1,
+ 'unassigned' => false,
+ 'category' => array('unconfirmed', 'new', 'assigned'));
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/templates.php.dist,v 1.12 2005/04/12 21:17:58 chuck Exp $
+ *
+ * This file defines the templates used in various parts of Whups.
+ *
+ * Hopefully this will all migrate to a database in the future, but
+ * for now, this is it.
+ *
+ * More docs coming as this gets fleshed out and used more.
+ */
+
+$_templates['html-simple'] = array(
+ 'type' => 'searchresults',
+ 'filename' => 'report.html',
+ 'name' => _("Simple HTML Report"),
+ 'sortby' => array('type_name', 'timestamp'),
+ 'sortdir' => array(0, 1),
+ 'template' => '<table>
+<tr>
+ <th>#</th>
+ <th>Type</th>
+ <th>Owners</th>
+ <th>Open Date</th>
+ <th>Description</th>
+</tr>
+
+<loop:tickets>
+<tr>
+ <td><a href="<tag:tickets.link />"><tag:tickets.id /></a></td>
+ <td><tag:tickets.type_name /></td>
+ <td><tag:tickets.owner_name /></td>
+ <td><tag:tickets.date_created /></td>
+ <td><tag:tickets.summary /></td>
+</tr>
+</loop:tickets>
+
+</table>'
+);
+
+$_templates['csv'] = array(
+ 'type' => 'searchresults',
+ 'name' => _("Comma Separated Values (CSV file)"),
+ 'filename' => 'report.csv',
+ 'callback' => '_csvQuote',
+ 'template' => 'ID,Summary,State,Type,Priority,Queue,Version,Owners,Created,Assigned,Resolved<loop:tickets>
+<tag:tickets.id />,<tag:tickets.summary />,<tag:tickets.state_name />,<tag:tickets.type_name />,<tag:tickets.priority_name />,<tag:tickets.queue_name />,<tag:tickets.version_name />,<tag:tickets.owner_name />,<tag:tickets.date_created />,<tag:tickets.date_assigned />,<tag:tickets.date_resolved />
+</loop:tickets>
+'
+);
+
+if (!function_exists('_csvQuote')) {
+ function _csvQuote(&$data, $key)
+ {
+ if (strpos($data, ',') !== false) {
+ $data = '"' . str_replace('"', '\"', $data) . '"';
+ }
+ }
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/config/templates.php.dist,v 1.12 2005/04/12 21:17:58 chuck Exp $
+ *
+ * This file defines the templates used in various parts of Whups.
+ *
+ * Hopefully this will all migrate to a database in the future, but
+ * for now, this is it.
+ *
+ * More docs coming as this gets fleshed out and used more.
+ */
+
+$_templates['html-simple'] = array(
+ 'type' => 'searchresults',
+ 'filename' => 'report.html',
+ 'name' => _("Simple HTML Report"),
+ 'sortby' => array('type_name', 'timestamp'),
+ 'sortdir' => array(0, 1),
+ 'template' => '<table>
+<tr>
+ <th>#</th>
+ <th>Type</th>
+ <th>Owners</th>
+ <th>Open Date</th>
+ <th>Description</th>
+</tr>
+
+<loop:tickets>
+<tr>
+ <td><a href="<tag:tickets.link />"><tag:tickets.id /></a></td>
+ <td><tag:tickets.type_name /></td>
+ <td><tag:tickets.owner_name /></td>
+ <td><tag:tickets.date_created /></td>
+ <td><tag:tickets.summary /></td>
+</tr>
+</loop:tickets>
+
+</table>'
+);
+
+$_templates['csv'] = array(
+ 'type' => 'searchresults',
+ 'name' => _("Comma Separated Values (CSV file)"),
+ 'filename' => 'report.csv',
+ 'callback' => '_csvQuote',
+ 'template' => 'ID,Summary,State,Type,Priority,Queue,Version,Owners,Created,Assigned,Resolved<loop:tickets>
+<tag:tickets.id />,<tag:tickets.summary />,<tag:tickets.state_name />,<tag:tickets.type_name />,<tag:tickets.priority_name />,<tag:tickets.queue_name />,<tag:tickets.version_name />,<tag:tickets.owner_name />,<tag:tickets.date_created />,<tag:tickets.date_assigned />,<tag:tickets.date_resolved />
+</loop:tickets>
+'
+);
+
+if (!function_exists('_csvQuote')) {
+ function _csvQuote(&$data, $key)
+ {
+ if (strpos($data, ',') !== false) {
+ $data = '"' . str_replace('"', '\"', $data) . '"';
+ }
+ }
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/data.php,v 1.33 2009/07/08 18:30:05 slusarz Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+define('WHUPS_BASE', dirname(__FILE__));
+require_once WHUPS_BASE . '/lib/base.php';
+require_once 'Horde/Template.php';
+require WHUPS_BASE . '/config/templates.php';
+
+if (!Horde_Auth::getAuth()) {
+ header('Location: ' . Horde::applicationUrl('search.php', true));
+ exit;
+}
+
+$tpl = Horde_Util::getFormData('template');
+
+if (empty($_templates[$tpl])) {
+ Horde::fatal(_("The requested template does not exist."), __FILE__, __LINE__);
+}
+if ($_templates[$tpl]['type'] != 'searchresults') {
+ Horde::fatal(_("This is not a search results template."), __FILE__, __LINE__);
+}
+
+// Fetch all unresolved tickets assigned to the current user.
+$info = array('id' => explode(',', Horde_Util::getFormData('ids')));
+$tickets = $whups_driver->getTicketsByProperties($info);
+foreach ($tickets as $id => $info) {
+ $tickets[$id]['#'] = $id + 1;
+ $tickets[$id]['link'] = Whups::urlFor('ticket', $info['id'], true, -1);
+ $tickets[$id]['date_created'] = strftime('%x', $info['timestamp']);
+ $tickets[$id]['owners'] = Whups::getOwners($info['id']);
+ $tickets[$id]['owner_name'] = Whups::getOwners($info['id'], false, true);
+ $tickets[$id]['owner_email'] = Whups::getOwners($info['id'], true, false);
+ if (!empty($info['date_assigned'])) {
+ $tickets[$id]['date_assigned'] = strftime('%x', $info['date_assigned']);
+ }
+ if (!empty($info['date_resolved'])) {
+ $tickets[$id]['date_resolved'] = strftime('%x', $info['date_resolved']);
+ }
+
+ // If the template has a callback function defined for data
+ // filtering, call it now.
+ if (!empty($_templates[$tpl]['callback'])) {
+ array_walk($tickets[$id], $_templates[$tpl]['callback']);
+ }
+}
+
+Whups::sortTickets($tickets,
+ isset($_templates[$tpl]['sortby']) ? $_templates[$tpl]['sortby'] : null,
+ isset($_templates[$tpl]['sortdir']) ? $_templates[$tpl]['sortdir'] : null);
+
+$template = new Horde_Template();
+$template->set('tickets', $tickets);
+$template->set('now', strftime('%x'));
+$template->set('values', Whups::getSearchResultColumns(null, true));
+
+$browser->downloadHeaders(isset($_templates[$tpl]['filename']) ? $_templates[$tpl]['filename'] : 'report.html');
+echo $template->parse($_templates[$tpl]['template']);
--- /dev/null
+--------
+v2.0-cvs
+--------
+
+
+
+
+----------
+v1.0.2-cvs
+----------
+
+
+
+
+------
+v1.0.1
+------
+
+[jan] Fix Oracle SQL scripts.
+[jan] Render private comments for everyone, but hide the comment text.
+[jan] Add flag to disable old versions.
+[jan] Apply simple markup highlighting on comments.
+[jan] Save queue email addresses when editing queues (horde@hatzidakis.org,
+ Bug #7905).
+[jan] Fix charset conversion of comments added with mail-filter.php
+ (thomas@gelf.net, Bug #7730).
+[cjh] Show version changes in the ticket history.
+[jan] Use all credentials and mailer settings when sending mails.
+[cjh] Allow changing the queue version from the Update screen.
+[cjh] Add more date formats to the report_time_format preference
+ (b5b5b5b5@centrum.sk, Request #7793).
+[jan] Escape SQL wildcards in string queries.
+[cjh] Enforce queue permissions in ticket-listing blocks (Bug #7614).
+[cjh] Ensure the DB library is explicitly loaded (Bug #7647).
+[jan] Add Turkish translation (Akif Dinc <akif@dinc.org>).
+[jan] Fix linking to queries if URL rewriting is turned off.
+
+
+----
+v1.0
+----
+
+[jan] Change group field in shares table to work with LDAP groups (Bug #6883).
+[jan] Fix rendering attribute criteria in the query tree.
+[jan] Generate a valid Message-ID.
+[mjr] Fix an issue with searching on installations with a single queue that
+ was causing all existing tickets in the queue to be displayed on entering
+ the search page.
+
+
+--------
+v1.0-RC2
+--------
+
+[jan] Add date search criteria (Duck <duck@obala.net>, Request #7274).
+[cjh] Add an RSS feed of search results (Duck <duck@obala.net>, Request #7259).
+[jan] Group statistics by ticket type.
+[jan] Add Precedence and Auto-Submitted headers to notification messages
+ (Request #7082).
+[jan] Add In-Reply-To header to notification messages (Request #7103).
+[jan] Add button to save searches as queries (Request #5921).
+[jan] Add query slugs and RSS feeds (Request #5924).
+[jan] Implement editing of query elements.
+[mjr] Fix saving of queries.
+
+
+--------
+v1.0-RC1
+--------
+
+[jan] Remove attributes hooks.
+[jan] Add form replies.
+[jan] Add support for queue-specific notification messages.
+[jan] Add email address per queue for ticket notifications.
+[jan] Use highlightquotes filter for quoted comments.
+[jan] Send notification messages in flowed text format (requires Horde 3.2.1).
+[jan] Allow to specify field types and parameters for attributes.
+[jan] Add a hook that is called if a ticket is being updated, for automatic
+ ticket changes.
+[jan] Add auto-completion to retrieve requesters from the address book.
+[jan] Add per-queue permission to manually set the ticket requester.
+[jan] Deal with queue vs. admin permissions more consistently.
+[jan] Add configuration option whether to include email headers in comments.
+[cjh] Improve resource usage in datatree_to_sql share migration script
+ (Bug #6740).
+[cjh] Add an upgrade script for the new SQL share driver (Request #6109).
+[jan] Add preference to only receive notifications if a comment has been added.
+[jan] Send personalized ticket notification messages.
+[jan] Add addAttachment API method.
+[jan] Add message templates for email notifications.
+[jan] Sequentially number comments (Request #4895).
+[jan] Unset resolved date when un-resolving tickets (Bug #6310).
+[jan] Add mail sender as requester when using the --default-auth argument with
+ scripts/mail-filter.php.
+[jan] Notify watchers that have just been added by email.
+[jan] Add attributes search to query builder.
+[jan] Rename API methods get_assigned_ticket_ids, get_requested_ticket_ids,
+ get_schema, add_tickets, and set_ticket_attributes.
+[jan] Add --guess-queue argument to mail-filter.php.
+[cjh] Use pretty URLs if Horde is configured for them (Request #5922).
+[jan] Add configuration for default types, states, and priorities.
+[mjr] Attribute values now show correctly in initial ticket notifications.
+[jan] Add a hook to customize field grouping in the ticket views.
+[cjh] Combine Type and Category selects in search form (php@ideacode.com,
+ Request #4928).
+[jan] Show attribute changes in ticket history.
+[jan] Allow scripts/mail-filter.php to process attachments.
+[jan] Add ability to read messages from a mailbox to scripts/mail-filter.php.
+[cjh] Don't re-use old attachment names even if the attachment has since been
+ deleted (Bug #4472).
+[cjh] Store the guest user associated with transactions that only add an
+ attachment, with no comment text (Bug #2890).
+[cjh] Include attribute values in ticket emails, including "diffs" for changes
+ (Bug #1083).
+[cjh] When creating a ticket, preserve attachments uploaded in step 3 when
+ step 4 is used to assign the ticket (Bug #2514).
+[cjh] When replying to a restricted comment, default to the same restriction
+ (Request #4902).
+[cjh] Support split read and write databases (<duck@obala.net>, Request #5926).
+[jan] Add Lithuanian translation (Vilius Sumskas <vilius@lnk.lt>).
+[cjh] Add an addComment API method.
+[jan] Add OpenSearch interface for direct ticket access through browser bars.
+[jan] Move all Whups-specific hook examples from Horde's config/ directory.
+[cjh] Rename whups_tickets_listeners to whups_ticket_listeners for consistency.
+[cjh] Add a tree menu block (Jakob Schroeter <js@camaya.net>).
+[cjh] On the search screen, only show types that are associated with queues
+ that are available/active (tinu@humbapa.ch, Request #4107).
+[jan] Add Polish translation (Tadeusz Lesiecki <lesiecki@tmtsystem.pl>, Piotr
+ Tarnowski <drfugazi@drfugazi.eu.org>).
+[jan] Add Ukrainian translation (Andriy Kopystyansky <anri@polynet.lviv.ua>).
+[cjh] Ensure that a due date in a prior year doesn't make the EditTicketForm
+ invalid (Bug #4763).
+[cjh] Remove saved searches (Request #4897).
+[cjh] Calculate ticket date attributes when they change instead of on every
+ access (php@ideacode.com, Request #4893).
+[cjh] Queries are now managed as shares, but the serialized bits are stored
+ and managed by Whups in their own dedicated table.
+[jan] Allow guest access to query page.
+[cjh] Smarter word wrapping in string representations of tickets
+ (Request #4510).
+[cjh] Add a Queue Summary block showing queues with the number of open
+ tickets in each (Request #4628).
+[cjh] Combine the People tab with the Update tab.
+[cjh] Allow changing ticket queues as long as the user has DELETE permissions
+ on the current queue and EDIT permissions on the new queue
+ (tmerritt@email.arizona.edu, Request #4268).
+[cjh] Add hours and minutes to due dates.
+[cjh] Always use Summary for the ticket summary field label.
+[jan] Add Slovenian translation (Duck <duck@obala.net>).
+[cjh] Show the requester in search results (rodion (at) nezna (dot) com,
+ Bug #2820).
+[cjh] Show either the Comment or Update tabs depending on permissions,
+ but not both.
+[cjh] Report the last-updated date for tickets (Bug #2396).
+[cjh] Tickets now have an optional due date field.
+[cjh] New updateTicket API call (Ben Klang <ben@alkaloid.net>, Bug #4101).
+[cjh] Check permissions when setting ticket attributes through an API call
+ (Ben Klang <ben@alkaloid.net>, Bug #4098).
+[cjh] If guests can add tickets but not view them, don't tell them adding
+ failed (Bug #3630).
+[cjh] Add Unassigned Tickets Horde_Block (Request #766).
+[mas] Fix sorting in summary page to better handle dates. (Bug #2930)
+[cjh] Add CAPTCHA support to the Add Comment and Create Ticket forms.
+[cjh] Deliver RSS feeds in a way that supports USM
+ (http://www.kbcafe.com/rss/usm.html, Request #2593).
+[cjh] processMail() now ignores emails that were generated by Whups
+ (Bug #3398).
+[ben] Better support for MS-SQL.
+[jan] Add Norwegian (Bokmal) translation (Torbjorn Grindhaug
+ <grindhaug@gmail.com>).
+[cjh] "My Bugs" page is now a Horde_Block layout (Request #3202).
+[cjh] Fix permissions checking for ticket comments when an admin user is the
+ one making the comment (Bug #2673).
+[cjh] Delete searches by getvars string, not by name (Bug #3197).
+[jan] Allow to assign tickets to foreign groups
+ (ronny.adsetts@amazinginternet.com, Request #2477).
+[cjh] Add support for dynamic re-sorting of search results, including saving
+ the sort preferences on any changes.
+[mas] Protect against HTML tags in the search results summary.
+[jan] Allow other applications to provide versions.
+[jan] Simplify UI for query editor and allow to search for versions.
+[jan] Allow to send notification mails to queue-specific addresses (Marcus
+ Boerger <helly@php.net>).
+[jan] Allow other applications to provide queues.
+[cjh] Add *-id arguments for type, priority, state, and queue to
+ mail-filter.php (Bug #2347).
+[cjh] Add a link to return to the list of search results, along with the
+ previous/next links (Bug #1751).
+[cjh] Fix the Quicksearch links.
+[cjh] mail-filter.php now handles replies as well (Bug #280).
+[cjh] Use the date_format preference for displaying TicketDetailsForm
+ as well (Bug #2151).
+[jan] Add Russian translation (Illya Belov <belov@iop.irkps.ru>).
+[mas] Add ability to search by ticket requester.
+[mas] Change any output of <b> and <i> tags to <strong> and <em> for better
+ accessibility support.
+[cjh] Add links to Update/Comment from individual transactions, which quote
+ that transaction's comment text (Bug #823).
+[cjh] Add explicit permissions for assigning and updating tickets
+ (tmerritt@email.arizona.edu, Bug #1955).
+[jan] Strike-through links to resolved tickets.
+[jan] Make server name and port in mail-filter.php configurable (Bug #2004).
+[cjh] Honor creator permissions on tickets (tmerritt@email.arizona.edu,
+ Bug #1945).
+[cjh] Implement ticket watchers (tmerritt@email.arizona.edu, Bug #867).
+[cjh] Enforce permissions on queues in reports, let guests see reports
+ if they have permissions (Bug #1812).
+[cjh] Allow export templates to define a callback function for filtering
+ data. Includes an example for properly quoting CSV data (Bug #1774).
+[jan] Use bind variables in the SQL driver (Bug #1701).
+[cjh] Queries are stored as Horde_Share objects with full permissions.
+ (Bug #1481).
+[cjh] Delete queue permissions when deleting a queue (Bug #1462).
+[jan] Add MIME viewer for ZIP files.
+[cjh] Queries can now be deleted (Bug #1193).
+[cjh] Preserve the current search criteria when re-sorting results (Bug #1024).
+[cjh] Link to ticket RSS feeds on all ticket display pages.
+[cjh] Allow administrators to delete attachments (Bug #1252).
+[cjh] Allow uploading an attachment when initially creating a ticket.
+[cjh] Fix group-restricted comments (Bug #1225).
+[jan] Add Brazilian Portuguese translation (Daniel V. Hoisel
+ <daniel@maxlinux.com.br>).
+[cjh] Whups_Mail::processMail needs to use Whups_Ticket for ticket creation
+ to trigger email notifications, etc (Bug #1134).
+[cjh] Allow inserting explicit Type filters into Query Builder queries
+ (Bug #434).
+[cjh] Force users to choose a queue when creating tickets with the goal
+ of cutting down on misfiled tickets (Bug #588).
+[cjh] Remove the Attachment tab, as it currently serves no purpose beyond
+ the Comment tab (Bug #868).
+[cjh] Add a numeric log_value_num field for faster logs table comparisons
+ and for compatibility with databases that can't cast strings into
+ integer comparisons (Oracle, etc) (rvs (at) angara (dot) ru).
+[jan] Add Finnish translation (Leena Heino <liinu@uta.fi>).
+[jan] Add Spanish translation (Manuel Perez Ayala <mperaya@alcazaba.unex.es>).
+[cjh] The way ticket histories are stored and retrieved has been completely
+ revamped to be quicker, more robust, and more complete.
+[cjh] Add a 'summary' search option in the basic search form (Bug #269).
+[cjh] Queue is now a valid query builder criterion.
+[cjh] Add previous/next navigation when there's a current list of search
+ results to navigate through.
+[cjh] Changing a ticket's queue now also allows setting a queue version.
+[cjh] Group ticket histories by transaction, not by individual change.
+[cjh] Show users their saved queries as well as saved searches.
+[jan] Add Simplified Chinese translation (Liaobin <liaobin@jite.net>).
+[cjh] Add a basic "Update" screen for changing summary, state, priority,
+ and adding attachments/comments, all at once.
+[cjh] Finish renaming "module" to "queue" throughout the data and SQL.
+[cjh] Add $conf['mail']['always_copy'] to allow Whups to always copy
+ a specific email address on ticket mail.
+[cjh] Mail can be configured to come from a single email address now,
+ making it easier to allow Whups to post ticket email to a
+ mailing list, etc.
+[cjh] Add a "DO NOT REPLY" note to generated emails if Whups isn't
+ configured to handle replies to ticket mail.
+[cjh] Advertise permissions through the API.
+[jan] Add Dutch translation (Stefan de Konink <skinkie@xs4all.nl>).
+[cjh] Make ticket owners available in search results again.
+[jan] Allow uploading of attachments.
+[cjh] Allow assigning tickets to groups.
+[cjh] Add Set Type action to the details page (Bo Daley <bo@tilda.com.au>).
+[cjh] Allow clearing of all or individual searches (Bo Daley <bo@tilda.com.au>).
+[cjh] Start of a reminder-sending daemon.
+[cjh] Allow assignment of a ticket to multiple users.
+[cjh] Queue/Type matrix is now functional and allows very quick editing
+ of which ticket types are associated with each module.
+[jan] Add Romanian translation (Eugen Hoanca <eugenh@urban-grafx.ro>).
+[cjh] Allow much more flexible configuration of who gets email on
+ various actions (Bo Daley <bo@tilda.com.au>).
+[cjh] Whups can now send out simple reminders.
+[cjh] By giving users the 'whups:admin' permission, people can administer
+ individual queues in Whups, or just Whups as opposed to all of Horde.
+[cjh] Allow multiple levels of sorting (first by date, then type, etc).
+[cjh] Phrases in ticket comments can now be linked to the ticket in question
+ automatically (Mike Baptiste <mike@msbnetworks.net>).
+[cjh] Use Horde_Template to generate configurable reports from
+ search result sets.
+[cjh] Add a New Ticket link in the summary screen
+ (Brian Keifer <brian@valinor.net>).
+[cjh] Add a preference for not showing requested tickets in the summary
+ screen (Brian Keifer <brian@valinor.net>).
+[cjh] Prevent guest users from assigning tickets and make them enter
+ the ticket password to change state/priority.
+[cjh] Guest users can now add tickets and add comments to tickets when
+ they have permissions to do so.
+[cjh] We can now retrieve much more flexible datasets, such as the
+ average time it takes to resolve a ticket by developer,
+ requester, module, etc.
+[cjh] Add a flexible set of stats, such as the average time a ticket
+ is unresolved.
+[cjh] Add a much more flexible set of graphs, and a "My Bugs"
+ section for ticket summaries.
+[cjh] Search results can now specify the results title header.
+[cjh] Reports currently lacks pretty graphs, but now shows more useful
+ information - all assigned and requested tickets.
+[cjh] Fix usage of Variables:: class.
+[jan] Add Traditional Chinese translation (David Chang <david@thbuo.gov.tw>).
+[jan] Add Bulgarian translation (Miroslav Pendev <miro@cybershade.us>).
+[cjh] Better enforcement of permissions on modules, especially
+ during searches.
+[cjh] Add options for how many comments are sent in bug emails,
+ and in what order.
+[cjh] Make sure that comments mailed to users don't include private
+ comments they aren't authorized to see.
+[cjh] Clean up the format of generated emails to be much clearer.
+[cjh] All email notification triggers now work.
+[cjh] Add a standard Horde menu.
+[cjh] Add an Options screen.
+[cjh] Fix the Query Builder.
+[cjh] Whups now uses the Horde FormSprocket:: API for all form handling.
+[cjh] Ticket search results are now fully sortable, and a user preference.
+[jan] Add French translation (Thierry Thomas).
+[cjh] Use users' identities for showing names of requester, owner, etc.
+[cjh] Include assigned and resolved dates in the search results view.
+[cjh] Include date created, assigned, and resolved in the details view.
+[cjh] Don't show resolved tickets in the summary.
+[cjh] Require permission (whups:hiddenComments, at level Edit) to make
+ comments specific to a group.
+[cjh] Display comments which are restricted differently.
+[cjh] Add the ability to restrict viewing of a comment to a Group.
+[cjh] Improve the reporting data that gets saved by a lot.
+[jan] Add Czech translation.
+[cjh] Fix some non-portable SQL.
+[cjh] Add the option to keep track of different versions for a module.
+[cjh] Fix problems when there are no types associated with a module.
+[cjh] Default select lists which have only one value to that value. In
+ some cases this allows for auto-filling of forms (creating tickets).
+[cjh] Include session ID in forms/links.
+[cjh] Only show users queues which they have permissions for.
+[cjh] Add a link from the edit queue section to edit the permissions on
+ that module.
+[cjh] Add managing of which users can have tickets assigned to them, on a
+ per-module basis.
+[cjh] Remove the sample data, as it poses sequence problems and isn't needed
+ now that the administration interface works.
+[cjh] Don't create the sequence tables in whups.sql; PEAR needs to create
+ them itself to get implementation-specific details right.
+[cjh] Administration interface - adding, deleting, and editing of modules,
+ types, states, and priorities all work now.
+[jon] Adapt to the new Horde::img() syntax.
+[cjh] Types can now map to multiple modules, instead of either one or global.
+ This is a much more flexible setup, and actually allows re-use of types.
+[cjh] Added a SetType for collections of on/off values (a checkbox set).
+[cjh] Use $registry->get() in place of other $registry->get
+ functions.
+[cjh] Use WHUPS_TEMPLATES for template paths.
+[jon] Enable the "portability" option in the SQL driver.
+[jan] Remove the standard value for the language preference. The language to
+ fall back to should be set Horde wide in lang.php instead.
+[cjh] Add API method and implementation for adding modules.
+[rec] Add query builder, many UI improvements, more horde-style design.
+[cjh] Apply patches from Alex L. for assignment, users, etc.
+[avsm] Replace $conf['paths'] with the $registry equivalents.
+[cjh] Convert short tags (<?) to <?php.
+[cjh] Make all copyright notices refer to BSD license.
+[cjh] Added initial CHANGES file.
--- /dev/null
+========================
+ Whups Development Team
+========================
+
+
+Core Developers
+===============
+
+Robert E. Coyle <robertecoyle@hotmail.com>
+
+- Initial codebase
+- Query builder
+
+Chuck Hagenbuch <chuck@horde.org>
+
+- Horde cleanup
+- Reports generation
+- Administration GUI
+
+Jan Schneider <jan@horde.org>
+
+- Attachments
+- E-mail support
+- Form replies
+- Stuff
+
+
+Localization
+============
+
+====================== ===============================================
+Brazilian Portuguese Daniel V. Hoisel <daniel@maxlinux.com.br>
+Bulgarian Miroslav Pendev <miro@cybershade.us>
+Chinese (Simplified) Liaobin <liaobin@jite.net>
+Chinese (Traditional) David Chang <david@tmv.gov.tw>
+Czech Pavel Chytil <pavel@chytil.tk>
+ Václav Hůla <ax@natur.cuni.cz>
+Dutch Stefan de Konink <skinkie@xs4all.nl>
+ Han Spruyt <han.spruyt@ijsselgroep.nl>
+Finnish Leena Heino <liinu@uta.fi>
+French Thierry Thomas <thierry@pompo.net>
+Italian Fabio Pedretti <fabio.pedretti@ing.unibs.it>
+Lithuanian Vilius Šumskas <vilius@lnk.lt>
+Norwegian (Bokmal) Torbjorn Grindhaug <grindhaug@gmail.com>
+Polish Tadeusz Lesiecki <lesiecki@tmtsystem.pl>
+ Piotr Tarnowski <drfugazi@drfugazi.eu.org>
+Romanian Eugen Hoanca <eugenh@urban-grafx.ro>
+Russian Illya Belov <belov@iop.irkps.ru>
+ Alexey Zakharov <themech@tut.by>
+Slovenian Duck <duck@obala.net>
+Spanish Manuel Perez Ayala <mperaya@alcazaba.unex.es>
+Turkish Akif Dinc <akif@dinc.org>
+Ukrainian Andriy Kopystyansky <anri@polynet.lviv.ua>
+====================== ===============================================
--- /dev/null
+======================
+ Installing Whups 1.0
+======================
+
+:Last update: $Date: 2008/08/28 09:39:33 $
+:Revision: $Revision: 1.25 $
+:Contact: dev@lists.horde.org
+
+.. contents:: Contents
+.. section-numbering::
+
+This document contains instructions for installing the Whups web-based
+ticket-tracking application on your system.
+
+For information on the capabilities and features of Whups, see the file
+README_ in the top-level directory of the Whups distribution.
+
+
+Obtaining Whups
+===============
+
+Whups can be obtained from the Horde website and FTP server, at
+
+ http://www.horde.org/whups/
+
+ ftp://ftp.horde.org/pub/whups/
+
+Or use the mirror closest to you:
+
+ http://www.horde.org/mirrors.php
+
+Bleeding-edge development versions of Whups are available via CVS; see the
+file `horde/docs/HACKING`_ in the Horde distribution, or the website
+http://www.horde.org/source/, for information on accessing the Horde CVS
+repository.
+
+
+Prerequisites
+=============
+
+To function properly, Whups **requires** the following:
+
+1. A working Horde installation.
+
+ Whups runs within the `Horde Application Framework`_, a set of common
+ tools for Web applications written in PHP. You must install Horde before
+ installing Whups.
+
+ .. Important:: Whups 1.0 requires version 3.2+ of the Horde Framework -
+ earlier versions of Horde will **not** work.
+
+ .. _`Horde Application Framework`: http://www.horde.org/horde/
+
+ The Horde Framework can be obtained from the Horde website and FTP server,
+ at
+
+ http://www.horde.org/horde/
+
+ ftp://ftp.horde.org/pub/horde/
+
+ Many of Whups's prerequisites are also Horde prerequisites.
+
+ .. Important:: Be sure to have completed all of the steps in the
+ `horde/docs/INSTALL`_ file for the Horde Framework before
+ installing Whups.
+
+2. The following PHP capabilities:
+
+ a. SQL support
+
+ Whups stores its data in an SQL database. Build PHP with whichever SQL
+ driver you require; see the`horde/docs/INSTALL`_ file for details.
+
+
+Installing Whups
+================
+
+Whups is written in PHP, and must be installed in a web-accessible directory.
+The precise location of this directory will differ from system to system.
+Conventionally, Whups is installed directly underneath Horde in the web
+server's document tree.
+
+Since Whups is written in PHP, there is no compilation necessary; simply
+expand the distribution where you want it to reside and rename the root
+directory of the distribution to whatever you wish to appear in the URL. For
+example, with the Apache web server's default document root of
+``/usr/local/apache/htdocs``, you would type::
+
+ cd /usr/local/apache/htdocs/horde
+ tar zxvf /path/to/whups-h3-x.y.z.tar.gz
+ mv whups-h3-x.y.z whups
+
+and would then find Whups at the URL::
+
+ http://your-server/horde/whups/
+
+
+Configuring Whups
+=================
+
+1. Configuring Horde for Whups
+
+ a. Register the application
+
+ In ``horde/config/registry.php``, find the ``applications['whups']``
+ stanza. The default settings here should be okay, but you can change
+ them if desired. If you have changed the location of Whups relative to
+ Horde, either in the URL, in the filesystem or both, you must update the
+ ``fileroot`` and ``webroot`` settings to their correct values.
+
+2. Creating the database table
+
+ The specific steps to create the Whups database table depend on which
+ database you've chosen to use.
+
+ First, look in ``scripts/drivers/`` to see if a script already exists for
+ your database type. If so, you should be able to simply execute that script
+ as superuser in your database.
+
+ If such a script does not exist, you'll need to build your own, using the
+ file ``whups.sql`` as a starting point. If you need assistance in creating
+ databases, you may wish to let us know on the Whups mailing list.
+
+3. Configuring Whups
+
+ To configure Whups, change to the ``config/`` directory of the installed
+ distribution, and make copies of all of the configuration ``dist`` files
+ without the ``dist`` suffix::
+
+ cd config/
+ for foo in *.dist; do cp $foo `basename $foo .dist`; done
+
+ Or on Windows::
+
+ copy *.dist *.
+
+ Documentation on the format and purpose of those files can be found in each
+ file. You may edit these files if you wish to customize Whups's appearance
+ and behavior. With one exception (``reminders.php``, in case you want to
+ automatically sent out reminders about open tickets) the defaults will be
+ correct for most sites.
+
+ The ``create_email.txt`` and ``notify_email.txt`` files define how outgoing
+ email notifications about new respectively updated tickets look like. If
+ using non-ascii character in this file, it has to saved with UTF-8
+ encoding. The following placeholders are available:
+
+ :@@ticket_url@@: The link to the ticket page.
+ :@@table@@: The ticket summary table.
+ :@@comment@@: The last user comment if any, including leading
+ linebreaks.
+ :@@dont_reply@@: The message telling users to not reply, if enabled in
+ the configuration, including trailing line breaks.
+ :@@date@@: The current date.
+ :@@full_name@@: The full name of the notification recipient.
+ :@@auth_name@@: The full name of the user that updated the ticket.
+
+ You can also specify queue-specific notification messages by creating
+ seperate files with the following naming convention: ``create_email_X.txt``
+ will be used for ticket creation emails for queue "X";
+ ``notify_email_Y.txt`` will be used for notification emails for queue "Y".
+
+ You must login to Horde as a Horde Administrator to finish the
+ configuration of Whups. Use the Horde ``Administration`` menu item to get
+ to the administration page, and then click on the ``Configuration`` icon to
+ get the configuration page. Select ``Tickets`` from the selection list of
+ applications. Fill in or change any configuration values as needed. When
+ done click on ``Generate Tickets Configuration`` to generate the
+ ``conf.php`` file. If your web server doesn't have write permissions to the
+ Whups configuration directory or file, it will not be able to write the
+ file. In this case, go back to ``Configuration`` and choose one of the
+ other methods to create the configuration file ``whups/config/conf.php``.
+
+ If you would like the ability to create and update tickets via
+ email, you will need to set up ``whups/scripts/mail-filter.php`` to
+ receive email from the appropriate addresses. This script takes a
+ number of arguments; see the script for more details. A typical
+ setup might be::
+
+ bugs |/path/to/horde/whups/scripts/mail-filter.php --queue-name=Bugs --type-name=Bug --state-name=New --priority-name=Low
+
+ This will take in mail to the ``bugs`` address at your domain, and
+ create new tickets in the ``Bugs`` queue, with a type of ``Bug``, a
+ state of ``New``, and ``Low`` priority. Note that this must be a
+ valid combination of queue/type/state/priority names in your Whups
+ installation. If an email references an existing ticket (ticket
+ numbers are recognized in the subject line) it will be updated
+ instead.
+
+ Note for international users: Whups uses GNU gettext to provide local
+ translations of text displayed by applications; the translations are found
+ in the ``po/`` directory. If a translation is not yet available for your
+ locale (and you wish to create one), see the ``horde/po/README`` file, or
+ if you're having trouble using a provided translation, please see the
+ `horde/docs/TRANSLATIONS`_ file for instructions.
+
+4. Testing Whups
+
+ Use Whups to create your base data, create tickets, and modify
+ tickets. Test at least the following:
+
+ - Creating a new project (queue)
+ - Creating ticket types, states, priorities for a project
+ - Adding a ticket
+ - Assigning a ticket
+ - Closing a ticket
+
+5. Creating tickets from email messages
+
+ Whups provides functionality that can be used to create and update tickets
+ from email messages. One part of this functionality is the
+ ``mail-filter.php`` in the ``whups/scripts/`` directory. It can either be
+ installed inside the mail chain, or run as a standalone script against an
+ IMAP or POP3 server. It provides a list of all available command line
+ arguments if called with the ``--help`` argument: ``./mail-filter.php
+ --help``.
+
+ If you use the arguments starting with ``--mail``, the script will login to
+ the provided IMAP or POP3 server and process all messages in the specified
+ folder. Any successfully processed messages will be deleted. An error
+ message will be displayed for any failed messages. Using the script in this
+ mode makes most sense when run regularly, e.g. by a cron job or the Windows
+ task planner.
+
+ You can also install the script inside the mail chain. In this mode, the
+ script expects a single email message from standard input. A common
+ scenario would be to pipe all messages to a certain email address through
+ this script, e.g. through the forwarding or alias mechanism. An example
+ entry in ``/etc/alias`` could look like this::
+
+ bugs:"|/pathtohorde/whups/scripts/mail-filter.php -q 'Test Queue' -t mytype -p '1. Low' -s Unconfirmed"
+
+ Even though this example uses "names" for the arguments, it's preferred to
+ use IDs, because those doesn't cause any problems with spaces, or non-ascii
+ characters.
+
+ The script tries to determine the ticket number from the message, if a
+ ticket number hasn't been specified with the ``--ticket``
+ argument. Currently it searches for strings looking like "[Bug #1]" in the
+ message subject. If a ticket number cannot be determined by any means, or
+ if a ticket with that number doesn't exist, a new ticket is created.
+
+ The (Horde) user that will be used to create or update the ticket, will
+ also be determined by investigating the message. The email address used in
+ the ``From:`` header of the message will be looked up by searching all
+ identities of all users in the authentication backend. This only works if
+ the authentication backend is capable of listing users. If a user cannot be
+ determined this way, the user provided by the ``--default--auth`` argument,
+ if any, is used. Finally, if none has been provided, the user specified in
+ Whups' configuration (``$conf[mail][username]``) will be used. If there
+ still hasn't been a user determined at this point, the ticket will be
+ updated or created by the "guest" user, using the email address of the
+ ``From:`` header. This only works if guest access has been granted to both
+ Whups, and the queue specified with the ``--queue-name`` or ``--queue-id``
+ parameters.
+
+ Finally, you might want to to enable the setting in Whups' configuration,
+ below the "Email Settings" tab, that allows users to reply to ticket
+ emails. This setting removes the warning from the generated ticket emails
+ to *not* reply to those emails. And you should of course make sure that you
+ specify the correct email address here for the generated messages. It
+ should the address that you use for the mail pipe, or the IMAP/POP3 account
+ when calling ``mail-filter.php``.
+
+
+Obtaining Support
+=================
+
+If you encounter problems with Whups, help is available!
+
+The Horde Frequently Asked Questions List (FAQ), available on the Web at
+
+ http://www.horde.org/faq/
+
+The Horde Project runs a number of mailing lists, for individual applications
+and for issues relating to the project as a whole. Information, archives, and
+subscription information can be found at
+
+ http://www.horde.org/mail/
+
+Lastly, Horde developers, contributors and users may also be found on IRC,
+on the channel #horde on the Freenode Network (irc.freenode.net).
+
+Please keep in mind that Whups is free software written by volunteers.
+For information on reasonable support expectations, please read
+
+ http://www.horde.org/support.php
+
+Thanks for using Whups!
+
+The Whups team
+
+
+.. _README: ?f=README.html
+.. _`horde/docs/HACKING`: ../../horde/docs/?f=HACKING.html
+.. _`horde/docs/INSTALL`: ../../horde/docs/?f=INSTALL.html
+.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/?f=TRANSLATIONS.html
--- /dev/null
+<?php
+/**
+ * Release focus. Possible values:
+ * 0 - N/A
+ * 1 - Initial freshmeat announcement
+ * 2 - Documentation
+ * 3 - Code cleanup
+ * 4 - Minor feature enhancements
+ * 5 - Major feature enhancements
+ * 6 - Minor bugfixes
+ * 7 - Major bugfixes
+ * 8 - Minor security fixes
+ * 9 - Major security fixes
+ */
+$this->notes['fm']['focus'] = 4;
+
+/* Mailing list release notes. */
+$this->notes['ml']['changes'] = <<<ML
+The Horde Team is pleased to announce the second release candidate of the Whups
+Ticket Tracking System version H3 (1.0-RC2).
+
+Whups is a Horde ticket-tracking application. It is very flexible in design,
+and can be used for help-desk requests, tracking sofware development, and
+anything else that needs to track a set of requests and their status.
+
+Barring any problems, this code will be released as Whups H3 (1.0).
+Testing is requested and comments are encouraged.
+New and updated translations would also be great.
+
+Major changes compared to the Whups H3 (1.0-RC1) version are:
+ * Added date search criteria.
+ * Implemented editing for query elements.
+ * Allow to save searches as queries.
+ * Added feeds for searches and queries.
+ML;
+
+/* Freshmeat release notes, not more than 600 characters. */
+$this->notes['fm']['changes'] = <<<FM
+FM;
+
+$this->notes['name'] = 'Whups';
+$this->notes['list'] = 'horde';
+$this->notes['fm']['project'] = 'whups';
+$this->notes['fm']['branch'] = 'Default';
--- /dev/null
+=============================
+ Whups Development TODO List
+=============================
+
+:Last update: $Date: 2007/04/22 04:51:55 $
+:Revision: $Revision: 1.16 $
+:Contact: dev@lists.horde.org
+
+- Ability to take/steal tickets from other users in the list UI.
+
+- Ability to merge a ticket with another ticket (instead of marking as
+ duplicate). Histories of two tickets should be merged.
+
+- Better permissions integration.
+
+- Possible integration with other Horde queues (nag/turba/hermes), including
+ api support between them.
+
+- docs and help files...
+
+- Additional "work flow" support.
+
+- Handle attachments in Whups_Mail
+
+- States/Priorities (or whole types?) cloning:
+
+ | > What if we had a "clone" feature? When editing states/priorities, just
+ | > being able to clone the states/priorities from another type into this
+ | > type?
+ |
+ | I now think that this would be a good idea. It's almost the same as
+ | Gary's template patch, but it should work in a slightly different way
+ | to better fit the workflow direction.
+ |
+ | When we have state transitions, it's more important that a type
+ | doesn't change as tickets flow through it because that could cause
+ | tickets to become inconsistent. However, it's very likely that as the
+ | type is being used, people see some way of making it fit the model
+ | more accurately. In that case, probably the best way to fix it is to
+ | copy the existing type into a new one. You can then modify the new
+ | type however you see fit then 'publish' the type and start creating
+ | tickets in it. Published types can't be altered.
+ |
+ | With the type templates, you could only copy particular types into new
+ | ones, instead of any type that you need to.
+ |
+ | However, with the templates, type were created as 'just a template',
+ | ie. one that shouldn't have tickets created. This can be quite
+ | useful, but instead of using an underscore prefix to identify it, I'd
+ | prefer to have a 'published' field in the table to represent types
+ | that can have tickets in it. A template could then be a normal,
+ | unpublished, type.
+
+- For project scheduling:
+ http://www.joelonsoftware.com/articles/fog0000000245.html
--- /dev/null
+=================
+ Upgrading Whups
+=================
+
+:Last update: $Date: 2009/09/07 09:56:43 $
+:Revision: $Revision: 1.1 $
+:Contact: horde@lists.horde.org
+
+
+These are instructions to upgrade from earlier Whups versions. Please backup
+your existing data before running any of the steps described below. You can't
+use the updated data with your old Whups version anymore.
+
+
+Upgrading Whups from 1.0 to 1.0.1
+=================================
+
+SQL Backends
+------------
+
+A field to store whether a version is still active has been added to the
+default SQL table layout.
+
+Execute the provided SQL script to update your data to the new Whups version,
+e.g.::
+
+ mysql --user=root --password=<MySQL-root-password> <db name> < scripts/upgrades/1.0_to_1.0.1.sql
--- /dev/null
+## This file should be reviewed prior to inclusion in your lighttpd
+## configuration. Specifically, if you have whups somewhere other than
+## /horde/whups you will need to edit the following rules to match your server
+## configuration.
+
+## This file should be included in your lighttpd.conf file with the "include"
+## directive. Example:
+## include "path/to/lighttpd-whups.conf"
+## The exact path you use will of course depend on your specific configuration.
+
+url.rewrite-once += (
+ "^/horde/whups/queue/([0-9]+)/?(?:\?(.*))?$" => "/horde/whups/queue/index.php?id=$1&$2",
+ "^/horde/whups/queue/([0-9]+)/rss/?(?:\?(.*))?$" => "/horde/whups/queue/rss.php?id=$1&$2",
+ "^/horde/whups/queue/(a-zA-Z0-9_]+)/?(?:\?(.*))?$" => "/horde/whups/queue/index.php?slug=$1&$2",
+ "^/horde/whups/queue/(a-zA-Z0-9_]+)/rss/?(?:\?(.*))?$" => "/horde/whups/queue/rss.php?id=$1&2",
+ "^/horde/whups/ticket/([0-9]+)/?(?:\?(.*))?$" => "/horde/whups/ticket/index.php?id=$1&$2",
+ "^/horde/whups/ticket/([0-9]+)/rss/?(?:\?(.*))?$" => "/horde/whups/ticket/rss.php?id=$1&$2",
+ "^/horde/whups/ticket/([0-9]+)/([a-z]+)(\.php)?(?:\?(.*))?$" => "/horde/whups/ticket/$2.php?id=$1&$3"
+)
--- /dev/null
+<?php
+/**
+ * $Horde: whups/index.php,v 1.30 2009/01/06 18:02:33 jan Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+define('WHUPS_BASE', dirname(__FILE__));
+$whups_configured = (is_readable(WHUPS_BASE . '/config/conf.php') &&
+ is_readable(WHUPS_BASE . '/config/create_email.txt') &&
+ is_readable(WHUPS_BASE . '/config/mime_drivers.php') &&
+ is_readable(WHUPS_BASE . '/config/notify_email.txt') &&
+ is_readable(WHUPS_BASE . '/config/prefs.php') &&
+ is_readable(WHUPS_BASE . '/config/templates.php'));
+
+if (!$whups_configured) {
+ require WHUPS_BASE . '/../lib/Test.php';
+ Horde_Test::configFilesMissing('Whups', WHUPS_BASE,
+ array('conf.php', 'mime_drivers.php', 'prefs.php'),
+ array('templates.php' => 'This file defines the templates that various parts of Whups use to format data.',
+ 'create_email.txt' => 'This is the template for ticket creation emails',
+ 'notify_email.txt' => 'This is the template for ticket notification emails',
+ ));
+}
+
+require_once WHUPS_BASE . '/lib/base.php';
+require basename($prefs->getValue('whups_default_view') . '.php');
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/Ajax/Imple/ContactAutoCompleter.php,v 1.1 2009-11-11 00:47:04 mrubinsk Exp $
+ *
+ * Copyright 2005-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Michael Slusarz <slusarz@horde.org>
+ * @package Whups
+ */
+
+class Whups_Ajax_Imple_ContactAutoCompleter extends Horde_Ajax_Imple_AutoCompleter
+{
+
+ /**
+ * Attach the Imple object to a javascript event.
+ */
+ protected function _attach($js_params)
+ {
+ $js_params['indicator'] = $this->_params['triggerId'] . '_loading_img';
+
+ $ret = array(
+ 'params' => $js_params,
+ 'raw_params' => array(
+ 'onSelect' => 'function (v) { if (!v.endsWith(";")) { v += ","; } return v + " "; }',
+ 'onType' => 'function (e) { return e.include("<") ? "" : e; }'
+ )
+ );
+
+ $ret['ajax'] = 'ContactAutoCompleter';
+
+ return $ret;
+ }
+
+ /**
+ * TODO
+ *
+ * @param array $args TODO
+ *
+ * @return string TODO
+ */
+ public function handle($args, $post)
+ {
+ // Avoid errors if 'input' isn't set and short-circuit empty searches.
+ if (empty($args['input']) ||
+ !($input = Horde_Util::getPost($args['input']))) {
+ return array();
+ }
+
+ return array_map('htmlspecialchars', self::expandAddresses($input));
+ }
+
+ /**
+ * Uses the Registry to expand names and return error information for
+ * any address that is either not valid or fails to expand. This function
+ * will not search if the address string is empty.
+ *
+ * @param string $addrString The name(s) or address(es) to expand.
+ * @param array $options Additional options:
+ * <pre>
+ * 'levenshtein' - (boolean) If true, will sort the results using the
+ * PHP levenshtein() scoring function.
+ * </pre>
+ *
+ * @return array All matching addresses.
+ */
+ static public function expandAddresses($addrString, $options = array())
+ {
+ if (!preg_match('|[^\s]|', $addrString)) {
+ return array();
+ }
+
+ $addrString = reset(array_filter(array_map('trim', Horde_Mime_Address::explode($addrString, ',;'))));
+ $addr_list = self::getAddressList($addrString);
+
+ if (empty($options['levenshtein'])) {
+ return $addr_list;
+ }
+
+ $sort_list = array();
+ foreach ($addr_list as $val) {
+ $sort_list[$val] = levenshtein($addrString, $val);
+ }
+ asort($sort_list, SORT_NUMERIC);
+
+ return array_keys($sort_list);
+ }
+
+ /**
+ * Uses the Registry to expand names and return error information for
+ * any address that is either not valid or fails to expand.
+ *
+ * @param string $search The term to search by.
+ *
+ * @return array All matching addresses.
+ */
+ static public function getAddressList($search = '')
+ {
+ $sparams = self::getAddressSearchParams();
+ try {
+ $res = $GLOBALS['registry']->call('contacts/search', array($search, $sparams['sources'], $sparams['fields'], false));
+ } catch (Horde_Exception $e) {
+ Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+
+ if (!count($res)) {
+ return array();
+ }
+
+ /* The first key of the result will be the search term. The matching
+ * entries are stored underneath this key. */
+ $search = array();
+ foreach (reset($res) as $val) {
+ if (!empty($val['email'])) {
+ if (strpos($val['email'], ',') !== false) {
+ $search[] = Horde_Mime_Address::encode($val['name'], 'personal') . ': ' . $val['email'] . ';';
+ } else {
+ $mbox_host = explode('@', $val['email']);
+ if (isset($mbox_host[1])) {
+ $search[] = Horde_Mime_Address::writeAddress($mbox_host[0], $mbox_host[1], $val['name']);
+ }
+ }
+ }
+ }
+
+ return $search;
+ }
+
+ /**
+ * Determines parameters needed to do an address search
+ *
+ * @return array An array with two keys: 'sources' and 'fields'.
+ */
+ static public function getAddressSearchParams()
+ {
+ $src = explode("\t", $GLOBALS['prefs']->getValue('search_sources'));
+ if ((count($src) == 1) && empty($src[0])) {
+ $src = array();
+ }
+
+ $fields = array();
+ if (($val = $GLOBALS['prefs']->getValue('search_fields'))) {
+ $field_arr = explode("\n", $val);
+ foreach ($field_arr as $field) {
+ $field = trim($field);
+ if (!empty($field)) {
+ $tmp = explode("\t", $field);
+ if (count($tmp) > 1) {
+ $source = array_splice($tmp, 0, 1);
+ $fields[$source[0]] = $tmp;
+ }
+ }
+ }
+ }
+
+ return array('sources' => $src, 'fields' => $fields);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Whups external API interface.
+ *
+ * This file defines Whups' external API interface. Other applications
+ * can interact with Whups through this API.
+ *
+ * $Horde: whups/lib/Api.php,v 1.6 2009-11-27 02:50:40 mrubinsk Exp $
+ *
+ * @package Whups
+ */
+class Whups_Api extends Horde_Registry_Api
+{
+ /**
+ * Browse through Whups' object tree.
+ *
+ * @param string $path The level of the tree to browse.
+ *
+ * @return array The contents of $path
+ */
+ public function browse($path = '')
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver, $registry;
+
+ if (substr($path, 0, 5) == 'whups') {
+ $path = substr($path, 5);
+ }
+ $path = trim($path, '/');
+
+ if (empty($path)) {
+ $results = array(
+ 'whups/queue' => array(
+ 'name' => _("Queues"),
+ 'icon' => $registry->getImageDir() . '/whups.png',
+ 'browseable' => count(
+ Whups::permissionsFilter($whups_driver->getQueues(),
+ 'queue', Horde_Perms::READ))));
+ } else {
+ $path = explode('/', $path);
+ Horde::logMessage(var_export($path, true), __FILE__, __LINE__);
+ $results = array();
+
+ switch ($path[0]) {
+ case 'queue':
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(),
+ 'queue', Horde_Perms::SHOW);
+ if (count($path) == 1) {
+ foreach ($queues as $queue => $name) {
+ $results['whups/queue/' . $queue] = array(
+ 'name' => $name,
+ 'browseable' => true);
+ }
+ } else {
+ if (!Whups::hasPermission($queues[$path[1]], 'queue',
+ Horde_Perms::READ)) {
+ return PEAR::raiseError('permission denied');
+ }
+
+ $tickets = $whups_driver->getTicketsByProperties(
+ array('queue' => $path[1]));
+ foreach ($tickets as $ticket) {
+ $results['whups/queue/' . $path[1] . '/' . $ticket['id']] = array(
+ 'name' => $ticket['summary'],
+ 'browseable' => false);
+ }
+ }
+ break;
+ }
+ }
+
+ return $results;
+ }
+
+ /**
+ * Create a new queue.
+ *
+ * @param string $name The queue's name.
+ *
+ * @return integer The new queue id.
+ */
+ public function addQueue($name)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ if (Horde_Auth::isAdmin('whups:admin')) {
+ return $GLOBALS['whups_driver']->addQueue($name, '');
+ } else {
+ return PEAR::raiseError('You must be an administrator to perform this action.');
+ }
+ }
+
+ /**
+ * Return the ids of all open tickets assigned to the current user.
+ *
+ * @return array Array of ticket ids.
+ */
+ public function getAssignedTicketIds()
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ $info = array('owner' => 'user:' . Horde_Auth::getAuth(), 'nores' => true);
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+ $result = array();
+ foreach ($tickets as $ticket) {
+ $result[] = $ticket['id'];
+ }
+ return $result;
+ }
+
+ /**
+ * Return the ids of all open tickets that the current user created.
+ *
+ * @return array Array of ticket ids.
+ */
+ public function getRequestedTicketIds()
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ $info = array('requester' => Horde_Auth::getAuth(), 'nores' => true);
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+ $result = array();
+ foreach ($tickets as $ticket) {
+ $result[] = (int) $ticket['id'];
+ }
+ return $result;
+ }
+
+ /**
+ * Create a new ticket.
+ *
+ * @param array $ticket_info An array of form variables representing all of the
+ * data collected by CreateStep1Form, CreateStep2Form, CreateStep3Form, and
+ * optionally CreateStep4Form.
+ *
+ * @return integer The new ticket id.
+ */
+ public function addTicket($ticket_info)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ require_once dirname(__FILE__) . '/Forms/CreateTicket.php';
+ require_once dirname(__FILE__) . '/Ticket.php';
+ global $whups_driver;
+
+ if (!is_array($ticket_info)) {
+ return PEAR::raiseError('Invalid arguments');
+ }
+
+ $vars = new Horde_Variables($ticket_info);
+
+ $form1 = new CreateStep1Form($vars);
+ $form2 = new CreateStep2Form($vars);
+ $form3 = new CreateStep3Form($vars);
+
+ // FIXME: This is an almighty hack, but we can't have form
+ // tokens in rpc calls.
+ $form1->useToken(false);
+ $form2->useToken(false);
+ $form3->useToken(false);
+
+ // Complain if we've been given bad parameters.
+ if (!$form1->validate($vars, true)) {
+ $f1 = var_export($form1->_errors, true);
+ return PEAR::raiseError("Invalid arguments ($f1)");
+ }
+ if (!$form2->validate($vars, true)) {
+ $f2 = var_export($form2->_errors, true);
+ return PEAR::raiseError("Invalid arguments ($f2)");
+ }
+ if (!$form3->validate($vars, true)) {
+ $f3 = var_export($form3->_errors, true);
+ return PEAR::raiseError("Invalid arguments ($f3)");
+ }
+
+ $form1->getInfo($vars, $info);
+ $form2->getInfo($vars, $info);
+ $form3->getInfo($vars, $info);
+
+ // More checks if we're assigning the ticket at create-time.
+ if (Horde_Auth::getAuth() && $whups_driver->isCategory('assigned', $vars->get('state'))) {
+ $form4 = new CreateStep4Form($vars);
+ }
+ if (Auth::getAuth() && $whups_driver->isCategory('assigned', $vars->get('state'))) {
+ $form4 = new CreateStep4Form($vars);
+ $form4->useToken(false);
+ if (!$form4->validate($vars, true)) {
+ return PEAR::raiseError('Invalid arguments (' . var_export($form4->_errors, true) . ')');
+ }
+
+ $form4->getInfo($vars, $info);
+ }
+
+ $ticket = Whups_Ticket::newTicket($info, Horde_Auth::getAuth());
+ if (is_a($ticket, 'PEAR_Error')) {
+ return $ticket;
+ } else {
+ return $ticket->getId();
+ }
+ }
+
+ /**
+ * Update a ticket's properties.
+ *
+ * @param integer $ticket_id The id of the id to changes.
+ * @param array $ticket_info The attributes to set, from the EditTicketForm.
+ *
+ * @return boolean True
+ */
+ public function updateTicket($ticket_id, $ticket_info)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ require_once dirname(__FILE__) . '/Ticket.php';
+ require_once dirname(__FILE__) . '/Forms/EditTicket.php';
+ global $whups_driver;
+
+ // Cast as an int for safety.
+ $ticket = Whups_Ticket::makeTicket((int)$ticket_id);
+ if (is_a($ticket, 'PEAR_Error')) {
+ // The ticket is either invalid or we don't have permission to
+ // read it.
+ return $ticket;
+ }
+
+ // Check that we have permission to update the ticket
+ if (!Horde_Auth::getAuth() ||
+ !Whups::hasPermission($ticket->get('queue'), 'queue', 'update')) {
+ return PEAR::raiseError(_('You do not have permission to update this ticket.'));
+ }
+
+ // Populate $vars with existing ticket details.
+ $vars = new Horde_Variables();
+ $ticket->setDetails($vars);
+
+ // Copy new ticket details in.
+ foreach ($ticket_info as $detail => $newval) {
+ $vars->set($detail, $newval);
+ }
+
+ // Create and populate the EditTicketForm for validation. API calls can't
+ // use form tokens and aren't the result of the EditTicketForm being
+ // submitted.
+ $editform = new EditTicketForm($vars, null, $ticket);
+ $editform->useToken(false);
+ $editform->setSubmitted(true);
+
+ // Attempt to validate and update the ticket.
+ if (!$editform->validate($vars)) {
+ $form_errors = var_export($editform->_errors, true);
+ return PEAR::raiseError(sprintf(_("Invalid ticket data supplied: %s"), $form_errors));
+ }
+
+ $editform->getInfo($vars, $info);
+
+ $ticket->change('summary', $info['summary']);
+ $ticket->change('state', $info['state']);
+ $ticket->change('priority', $info['priority']);
+ if (!empty($info['newcomment'])) {
+ $ticket->change('comment', $info['newcomment']);
+ }
+
+ // Update attributes.
+ $whups_driver->setAttributes($info);
+
+ // Add attachment if one was uploaded.
+ if (!empty($info['newattachment']['name'])) {
+ $ticket->change('attachment',
+ array('name' => $info['newattachment']['name'],
+ 'tmp_name' => $info['newattachment']['tmp_name']));
+ }
+
+ // If there was a new comment and permissions were specified on
+ // it, set them.
+ if (!empty($info['group'])) {
+ $ticket->change('comment-perms', $info['group']);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Ticket updated successfully
+ return true;
+ }
+
+ /**
+ * Add a comment to a ticket.
+ *
+ * @param integer $ticket_id The id of the ticket to comment on.
+ * @param string $comment The comment text to add.
+ * @param string $group (optional) Restrict this comment to a specific group.
+ *
+ * @return boolean True
+ */
+ public function addComment($ticket_id, $comment, $group = null)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ require_once WHUPS_BASE . '/lib/Ticket.php';
+
+ $ticket_id = (int)$ticket_id;
+ if (empty($ticket_id)) {
+ return PEAR::raiseError('Invalid ticket id');
+ }
+
+ $ticket = Whups_Ticket::makeTicket($ticket_id);
+ if (is_a($ticket, 'PEAR_Error')) {
+ return $ticket;
+ }
+
+ if (empty($comment)) {
+ return PEAR::raiseError('Empty comments are not allowed');
+ }
+
+ // Add comment.
+ $ticket->change('comment', $comment);
+
+ // Add comment permissions, if specified.
+ // @TODO: validate the user is allowed to specify this group
+ if (!empty($group)) {
+ $ticket->change('comment-perms', $group);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Adds an attachment to a ticket.
+ *
+ * @param integer $ticket_id The ticket number.
+ * @param string $name The name of the attachment.
+ * @param string $data The attachment data.
+ *
+ * @return mixed True on success or PEAR_Error on failure.
+ */
+ public function addAttachment($ticket_id, $name, $data)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ require_once WHUPS_BASE . '/lib/Ticket.php';
+
+ $ticket_id = (int)$ticket_id;
+ if (empty($ticket_id)) {
+ return PEAR::raiseError(_("Invalid Ticket Id"));
+ }
+
+ $ticket = Whups_Ticket::makeTicket($ticket_id);
+ if (is_a($ticket, 'PEAR_Error')) {
+ return $ticket;
+ }
+
+ if (!strlen($name) || !strlen($data)) {
+ return PEAR::raiseError(_("Empty attachment"));
+ }
+
+ $tmp_name = Horde_Util::getTempFile('whups', true, $GLOBALS['conf']['tmpdir']);
+ $fp = fopen($tmp_name, 'wb');
+ fwrite($fp, $data);
+ fclose($fp);
+
+ $ticket->change('attachment',
+ array('name' => $name, 'tmp_name' => $tmp_name));
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Set attributes for a ticket
+ *
+ * @TODO fold this into the updateTicket method
+ */
+ public function setTicketAttributes($info)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ if (!isset($info['ticket_id']) || !isset($info['attributes'])) {
+ return PEAR::raiseError(_("Invalid arguments: Must supply a ticket number and new attributes."));
+ }
+
+ $ticket = $whups_driver->getTicketDetails($info['ticket_id']);
+ if (is_a($ticket, "PEAR_Error")) {
+ // Either the ticket doesn't exist or the caller didn't have
+ // permission.
+ return $ticket;
+ }
+
+ // Convert the RPC parameters into what we'd expect if we were
+ // posting the EditAttributes form.
+ $ainfo = array();
+ foreach ($info['attributes'] as $attrib) {
+ if (!isset($attrib['id']) || !isset($attrib['value'])) {
+ return PEAR::raiseError(_("Invalid argument: Missing attribute name or value."));
+ }
+
+ $ainfo['a' . $attrib['id']] = $attrib['value'];
+ }
+
+ $ainfo['id'] = $info['ticket_id'];
+
+ return $whups_driver->setAttributes($ainfo);
+ }
+
+ /**
+ * Get the types that Whups items can be listed as.
+ *
+ * @return array Array of list types.
+ */
+ public function getListTypes()
+ {
+ return array('taskHash' => true);
+ }
+
+ /**
+ * Get a list of items from whups as type $type.
+ *
+ * @param string $type The list type to use (@see getListTypes). Currently supported: 'taskHash'
+ *
+ * @return array An array of tickets.
+ */
+ public function listAs($type)
+ {
+ switch ($type) {
+ case 'taskHash':
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+ $info = array('owner' => 'user:' . Horde_Auth::getAuth(),
+ 'nores' => true);
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+ $result = array();
+ foreach ($tickets as $ticket) {
+ $view_link = Whups::urlFor('ticket', $ticket['id'], true);
+ $delete_link = Whups::urlFor('ticket_action', array('delete', $ticket['id']), true);
+ $complete_link = Whups::urlFor('ticket_action', array('update', $ticket['id']), true);
+
+ $result['whups/' . $ticket['id']] = array(
+ 'task_id' => $ticket['id'],
+ 'priority' => $ticket['priority_name'],
+ 'tasklist_id' => '**EXTERNAL**',
+ 'completed' => ($ticket['state_category'] == 'resolved'),
+ 'name' => '[#' . $ticket['id'] . '] ' . $ticket['summary'],
+ 'desc' => null,
+ 'due' => null,
+ 'category' => null,
+ 'view_link' => $view_link,
+ 'delete_link' => $delete_link,
+ 'edit_link' => $view_link,
+ 'complete_link' => $complete_link
+ );
+ }
+ break;
+
+ default:
+ $result = array();
+ break;
+ }
+
+ return $result;
+ }
+
+ /**
+ * Return a list of queues that the current user has read permissions for
+ *
+ * @return array Array of queue details
+ */
+ public function listQueues()
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ return Whups::permissionsFilter($GLOBALS['whups_driver']->getQueuesInternal(), 'queue', Horde_Perms::SHOW);
+ }
+
+ /**
+ * Get details for a queue
+ *
+ * @param array | integer $queue Either an array of queue ids or a single queue id.
+ *
+ * @return array An array of queue information (or an array of arrays, if multiple queues were passed).
+ */
+ public function getQueueDetails($queue)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ if (is_array($queue)) {
+ $queues = Whups::permissionsFilter($queue, 'queue_id');
+ $details = array();
+ foreach ($queues as $id) {
+ $details[$id] = $GLOBALS['whups_driver']->getQueueInternal($id);
+ }
+ return $details;
+ }
+
+ $queues = Whups::permissionsFilter(array($queue), 'queue_id');
+ if ($queues) {
+ return $GLOBALS['whups_driver']->getQueueInternal($queue);
+ }
+
+ return array();
+ }
+
+ /**
+ * List the versions associated with a queue
+ *
+ * @param integer $queue The queue id to get versions for.
+ *
+ * @return array Array of queue versions
+ */
+ public function listVersions($queue)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+
+ $queues = Whups::permissionsFilter(array($queue), 'queue_id');
+ if (!$queues) {
+ return array();
+ }
+
+ $versions = array();
+ $version_list = $GLOBALS['whups_driver']->getVersionInfoInternal($queue);
+ foreach ($version_list as $version) {
+ $versions[] = array('id' => $version['version_id'],
+ 'name' => $version['version_name'],
+ 'description' => $version['version_description'],
+ 'active' => !empty($version['version_active']),
+ 'readonly' => false);
+ }
+
+ usort($versions, array($this, '_sortVersions'));
+
+ return $versions;
+ }
+
+ private function _sortVersions($a, $b)
+ {
+ $a_number = (string)(int)$a['name'][0] === $a['name'][0];
+ $b_number = (string)(int)$b['name'][0] === $b['name'][0];
+
+ if ($a_number && $b_number) {
+ return version_compare($b['name'], $a['name']);
+ }
+ if (!$a_number && !$b_number) {
+ return strcoll($b['name'], $a['name']);
+ }
+ return $a_number ? 1 : -1;
+ }
+
+ /**
+ * Add a version to a queue
+ *
+ * @param integer $queue The queue id to add the version to.
+ * @param string $name The name of the new version.
+ * @param string $description The descriptive text for the new version.
+ * @param boolean $active Whether the version is still active.
+ */
+ public function addVersion($queue, $name, $description, $active = true)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ return $GLOBALS['whups_driver']->addVersion($queue, $name, $description, $active);
+ }
+
+ /**
+ * Return the details for a queue version
+ *
+ * @param integer $version_id The version to fetch
+ *
+ * @return array Array of version details
+ */
+ public function getVersionDetails($version_id)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ return $GLOBALS['whups_driver']->getVersionInternal($version_id);
+ }
+
+ /**
+ * Get the all tickets for a queue, optionally with a specific state.
+ *
+ * @param integer $queue_id The queue to get tickets for
+ * @param string $state The state filter, if any.
+ *
+ * @return array Array of tickets
+ */
+ public function getTicketDetails($queue_id, $state = null)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ $info['queue_id'] = $queue_id;
+ if (!empty($state)) {
+ $info['category'] = $state;
+ }
+ $tickets = $whups_driver->getTicketsByProperties($info);
+
+ for ($i = 0; $i < count($tickets); $i++) {
+ $view_link = Whups::urlFor('ticket', $tickets[$i]['id'], true);
+ $delete_link = Whups::urlFor('ticket_action', array('delete', $tickets[$i]['id']), true);
+ $complete_link = Whups::urlFor('ticket_action', array('update', $tickets[$i]['id']), true);
+
+ $tickets[$i] = array(
+ 'ticket_id' => $tickets[$i]['id'],
+ 'completed' => ($tickets[$i]['state_category'] == 'resolved'),
+ 'assigned' => ($tickets[$i]['state_category'] == 'assigned'),
+ 'name' => $tickets[$i]['queue_name'] . ' #' .
+ $tickets[$i]['id'] . ' - ' . $tickets[$i]['summary'],
+ 'state' => $tickets[$i]['state_name'],
+ 'type' => $tickets[$i]['type_name'],
+ 'priority' => $tickets[$i]['priority_name'],
+ 'desc' => null,
+ 'due' => null,
+ 'category' => null,
+ 'view_link' => $view_link,
+ 'delete_link' => $delete_link,
+ 'edit_link' => $view_link,
+ 'complete_link' => $complete_link
+ );
+ }
+
+ return $tickets;
+ }
+
+ /**
+ * Permissions available from Whups
+ *
+ * @return array Permissions tree
+ */
+ public function perms()
+ {
+ }
+
+ /**
+ * List cost objects
+ *
+ * @param array $criteria The list criteria
+ *
+ * @return array Tickets (as cost objects) matching $criteria
+ */
+ public function listCostObjects($criteria)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ $info = array();
+ if (!empty($criteria['user'])) {
+ $info['owner'] = 'user:' . Horde_Auth::getAuth();
+ }
+ if (!empty($criteria['active'])) {
+ $info['nores'] = true;
+ }
+ if (!empty($criteria['id'])) {
+ $info['id'] = $criteria['id'];
+ }
+
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+ $result = array();
+ foreach ($tickets as $ticket) {
+ $result[$ticket['id']] = array('id' => $ticket['id'],
+ 'active' => ($ticket['state_category'] != 'resolved'),
+ 'name' => sprintf(_("Ticket %s - %s"),
+ $ticket['id'],
+ $ticket['summary']));
+
+ /* If the user has an estimate attribute, use that for cost object
+ * hour estimates. */
+ $attributes = $whups_driver->getTicketAttributesWithNames($ticket['id']);
+ if (!is_a($attributes, 'PEAR_Error')) {
+ foreach ($attributes as $k => $v) {
+ if (strtolower($k) == _("estimated time")) {
+ if (!empty($v)) {
+ $result[$ticket['id']]['estimate'] = (double) $v;
+ }
+ }
+ }
+ }
+ }
+ ksort($result);
+ if (count($result) == 0) {
+ return array();
+ } else {
+ return array(array('category' => _("Tickets"),
+ 'objects' => array_values($result)));
+ }
+ }
+
+ /**
+ * List the ways that tickets can be treated as time objects
+ *
+ * @return array Array of time object types
+ */
+ public function listTimeObjectCategories()
+ {
+ return array('created' => _("My tickets by creation date"),
+ 'assigned' => _("My tickets by assignment date"),
+ 'due' => _("My tickets by due date"),
+ 'resolved' => _("My tickets by resolution date"));
+ }
+
+ /**
+ * Lists tickets with due dates as time objects.
+ *
+ * @param array $categories The time categories (from listTimeObjectCategories) to list.
+ * @param mixed $start The start date of the period.
+ * @param mixed $end The end date of the period.
+ */
+ public function listTimeObjects($categories, $start, $end)
+ {
+ require_once dirname(__FILE__) . '/base.php';
+ require_once WHUPS_BASE . '/lib/Ticket.php';
+ global $whups_driver;
+
+ $start = new Horde_Date($start);
+ $start_ts = $start->timestamp();
+ $end = new Horde_Date($end);
+ $end_ts = $end->timestamp();
+
+ $criteria['owner'] = Whups::getOwnerCriteria(Horde_Auth::getAuth());
+
+ /* @TODO Use $categories */
+ $category = 'due';
+ switch ($category) {
+ case 'assigned':
+ $label = _("Assigned");
+ $criteria['ass'] = true;
+ break;
+
+ case 'created':
+ $label = _("Created");
+ break;
+
+ case 'due':
+ $label = _("Due");
+ $criteria['nores'] = true;
+ break;
+
+ case 'resolved':
+ $label = _("Resolved");
+ $criteria['res'] = true;
+ break;
+ }
+
+ $tickets = $whups_driver->getTicketsByProperties($criteria);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ($tickets as $ticket) {
+ switch ($category) {
+ case 'assigned':
+ $t_start = $ticket['date_assigned'];
+ break;
+
+ case 'created':
+ $t_start = $ticket['timestamp'];
+ break;
+
+ case 'due':
+ if (empty($ticket['due'])) {
+ continue 2;
+ }
+ $t_start = $ticket['due'];
+ break;
+
+ case 'resolved':
+ $t_start = $ticket['date_resolved'];
+ break;
+ }
+
+ if ($t_start + 1 < $start_ts || $t_start > $end_ts) {
+ continue;
+ }
+ $t = new Whups_Ticket($ticket['id'], $ticket);
+ $objects[$ticket['id']] = array(
+ 'title' => sprintf('%s: [#%s] %s', $label, $ticket['id'], $ticket['summary']),
+ 'description' => $t->toString(),
+ 'id' => $ticket['id'],
+ 'start' => date('Y-m-d\TH:i:s', $t_start),
+ 'end' => date('Y-m-d\TH:i:s', $t_start + 1),
+ 'params' => array('id' => $ticket['id']),
+ 'link' => Whups::urlFor('ticket', $ticket['id'], true));
+ }
+
+ return $objects;
+ }
+
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Whups application API.
+ *
+ * @package Whups
+ */
+class Whups_Application extends Horde_Registry_Application
+{
+ public $version = 'H3 (2.0-cvs)';
+
+ /**
+ * Returns a list of available permissions.
+ *
+ * @return array An array describing all available permissions.
+ */
+ public function perms()
+ {
+ static $perms = array();
+ if (!empty($perms)) {
+ return $perms;
+ }
+
+ require_once dirname(__FILE__) . '/base.php';
+ global $whups_driver;
+
+ /* Available Whups permissions. */
+ $perms['tree']['whups']['admin'] = false;
+ $perms['title']['whups:admin'] = _("Administration");
+
+ $perms['tree']['whups']['hiddenComments'] = false;
+ $perms['title']['whups:hiddenComments'] = _("Hidden Comments");
+
+ $perms['tree']['whups']['queues'] = array();
+ $perms['title']['whups:queues'] = _("Queues");
+
+ /* Loop through queues and add their titles. */
+ $queues = $whups_driver->getQueues();
+ foreach ($queues as $id => $name) {
+ $perms['tree']['whups']['queues'][$id] = false;
+ $perms['title']['whups:queues:' . $id] = $name;
+
+ $perms['tree']['whups']['queues'][$id]['update'] = false;
+ $perms['title']['whups:queues:' . $id . ':update'] = _("Update");
+ $perms['type']['whups:queues:' . $id . ':update'] = 'boolean';
+ $perms['params']['whups:queues:' . $id . ':update'] = array();
+
+ $perms['tree']['whups']['queues'][$id]['assign'] = false;
+ $perms['title']['whups:queues:' . $id . ':assign'] = _("Assign");
+ $perms['type']['whups:queues:' . $id . ':assign'] = 'boolean';
+ $perms['params']['whups:queues:' . $id . ':assign'] = array();
+
+ $perms['tree']['whups']['queues'][$id]['requester'] = false;
+ $perms['title']['whups:queues:' . $id . ':requester'] = _("Set Requester");
+ $perms['type']['whups:queues:' . $id . ':requester'] = 'boolean';
+ $perms['params']['whups:queues:' . $id . ':requester'] = array();
+ }
+
+ $perms['tree']['whups']['replies'] = array();
+ $perms['title']['whups:replies'] = _("Form Replies");
+
+ /* Loop through type and replies and add their titles. */
+ foreach ($whups_driver->getAllTypes() as $type_id => $type_name) {
+ foreach ($whups_driver->getReplies($type_id) as $reply_id => $reply) {
+ $perms['tree']['whups']['replies'][$reply_id] = false;
+ $perms['title']['whups:replies:' . $reply_id] = $type_name . ': ' . $reply['reply_name'];
+ }
+ }
+
+ return $perms;
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("My Queries");
+
+/**
+ * Horde_Block_Whups_myqueries:: Implementation of the Horde_Block API
+ * to show the current user's queries.
+ *
+ * $Horde: whups/lib/Block/myqueries.php,v 1.20 2009/07/08 18:30:06 slusarz Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_myqueries extends Horde_Block {
+
+ var $_app = 'whups';
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ return _("My Queries");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ require_once WHUPS_BASE . '/lib/Query.php';
+ require_once WHUPS_BASE . '/lib/View.php';
+
+ $qManager = new Whups_QueryManager();
+ $queries = $qManager->listQueries(Horde_Auth::getAuth(), true);
+ if (is_a($queries, 'PEAR_Error')) {
+ return $queries;
+ }
+ $myqueries = Whups_View::factory('SavedQueries',
+ array('results' => $queries));
+
+ $html = Horde_Util::bufferOutput(array($myqueries, 'html'), false);
+ if ($html) {
+ return $html;
+ }
+ return '<p><em>' . _("No queries have been saved.") . '</em></p>';
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("My Requests");
+
+/**
+ * Horde_Block_Whups_myrequests:: Implementation of the Horde_Block API
+ * to display a summary of the current user's requested tickets.
+ *
+ * $Horde: whups/lib/Block/myrequests.php,v 1.14 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_myrequests extends Horde_Block {
+
+ var $_app = 'whups';
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ return _("My Requests");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ global $whups_driver, $prefs;
+
+ $queue_ids = array_keys(Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ));
+ $info = array('requester' => Horde_Auth::getAuth(),
+ 'notowner' => 'user:' . Horde_Auth::getAuth(),
+ 'nores' => true,
+ 'queue' => $queue_ids);
+ $requests = $whups_driver->getTicketsByProperties($info);
+ if (is_a($requests, 'PEAR_Error')) {
+ return $requests;
+ }
+
+ if (!$requests) {
+ return '<p><em>' . _("You have no open requests.") . '</em></p>';
+ }
+
+ $html = '<thead><tr>';
+ $sortby = $prefs->getValue('sortby');
+ $sortdirclass = ' class="' . ($prefs->getValue('sortdir') ? 'sortup' : 'sortdown') . '"';
+ foreach (Whups::getSearchResultColumns('block') as $name => $column) {
+ $html .= '<th' . ($sortby == $column ? $sortdirclass : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ Whups::sortTickets($requests);
+ foreach ($requests as $ticket) {
+ $link = Horde::link(Whups::urlFor('ticket', $ticket['id'], true));
+ $html .= '<tr><td>' . $link . htmlspecialchars($ticket['id']) . '</a></td>' .
+ '<td>' . $link . htmlspecialchars($ticket['summary']) . '</a></td>' .
+ '<td>' . htmlspecialchars($ticket['priority_name']) . '</td>' .
+ '<td>' . htmlspecialchars($ticket['state_name']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_myrequests" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("My Tickets");
+
+/**
+ * Horde_Block_Whups_mytickets:: Implementation of the Horde_Block API
+ * to display a summary of the current user's assigned tickets.
+ *
+ * $Horde: whups/lib/Block/mytickets.php,v 1.12 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_mytickets extends Horde_Block {
+
+ var $_app = 'whups';
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ return _("My Tickets");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ global $whups_driver, $prefs;
+
+ $queue_ids = array_keys(Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ));
+ $info = array('owner' => Whups::getOwnerCriteria(Horde_Auth::getAuth()),
+ 'nores' => true,
+ 'queue' => $queue_ids);
+ $assigned = $whups_driver->getTicketsByProperties($info);
+ if (is_a($assigned, 'PEAR_Error')) {
+ return $assigned;
+ }
+
+ if (!$assigned) {
+ return '<p><em>' . _("No tickets are assigned to you.") . '</em></p>';
+ }
+
+ $html = '<thead><tr>';
+ $sortby = $prefs->getValue('sortby');
+ $sortdirclass = ' class="' . ($prefs->getValue('sortdir') ? 'sortup' : 'sortdown') . '"';
+ foreach (Whups::getSearchResultColumns('block') as $name => $column) {
+ $html .= '<th' . ($sortby == $column ? $sortdirclass : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ Whups::sortTickets($assigned);
+ foreach ($assigned as $ticket) {
+ $link = Horde::link(Whups::urlFor('ticket', $ticket['id'], true));
+ $html .= '<tr><td>' . $link . htmlspecialchars($ticket['id']) . '</a></td>' .
+ '<td>' . $link . htmlspecialchars($ticket['summary']) . '</a></td>' .
+ '<td>' . htmlspecialchars($ticket['priority_name']) . '</td>' .
+ '<td>' . htmlspecialchars($ticket['state_name']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_mytickets" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("Query Results");
+
+/**
+ * Horde_Block_Whups_query:: Display the results of a saved Query in a
+ * block.
+ *
+ * $Horde: whups/lib/Block/query.php,v 1.10 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_query extends Horde_Block {
+
+ var $_app = 'whups';
+
+ function _params()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ require_once WHUPS_BASE . '/lib/Query.php';
+
+ $qManager = new Whups_QueryManager();
+ $qDefault = null;
+ $qParams = $qManager->listQueries(Horde_Auth::getAuth());
+ if (count($qParams)) {
+ $qType = 'enum';
+ } else {
+ $qDefault = _("You have no saved queries.");
+ $qType = 'error';
+ }
+
+ return array('query' => array('type' => $qType,
+ 'name' => _("Query to run"),
+ 'default' => $qDefault,
+ 'values' => $qParams));
+ }
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ if (($query = $this->_getQuery()) && $query->name) {
+ return Horde::link(Whups::urlFor('query', empty($query->slug) ? array('id' => $query->id) : array('slug' => $query->slug)))
+ . htmlspecialchars($query->name) . '</a>';
+ }
+ return _("Query Results");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content.
+ */
+ function _content()
+ {
+ global $whups_driver, $prefs;
+
+ if (!($query = $this->_getQuery())) {
+ return '<p><em>' . _("No query to run") . '</em></p>';
+ }
+
+ $vars = Horde_Variables::getDefaultVariables();
+ $tickets = $whups_driver->executeQuery($query, $vars);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+
+ $html = '<thead><tr>';
+ $sortby = $prefs->getValue('sortby');
+ $sortdirclass = ' class="' . ($prefs->getValue('sortdir') ? 'sortup' : 'sortdown') . '"';
+ foreach (Whups::getSearchResultColumns('block') as $name => $column) {
+ $html .= '<th' . ($sortby == $column ? $sortdirclass : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ Whups::sortTickets($tickets);
+ foreach ($tickets as $ticket) {
+ $link = Horde::link(Whups::urlFor('ticket', $ticket['id'], true));
+ $html .= '<tr><td>' . $link . htmlspecialchars($ticket['id']) . '</a></td>' .
+ '<td>' . $link . htmlspecialchars($ticket['summary']) . '</a></td>' .
+ '<td>' . htmlspecialchars($ticket['priority_name']) . '</td>' .
+ '<td>' . htmlspecialchars($ticket['state_name']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_query_' . $query->id . '" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+ function _getQuery()
+ {
+ if (empty($this->_params['query'])) {
+ return false;
+ }
+
+ require_once dirname(__FILE__) . '/../base.php';
+ require_once WHUPS_BASE . '/lib/Query.php';
+
+ $qManager = new Whups_QueryManager();
+ $query = $qManager->getQuery($this->_params['query']);
+ if (is_a($query, 'PEAR_Error')) {
+ return false;
+ }
+ if (!$query->hasPermission(Horde_Auth::getAuth(), Horde_Perms::READ)) {
+ return false;
+ }
+
+ return $query;
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("Queue Contents");
+
+/**
+ * Horde_Block_Whups_queuecontents:: Show the open tickets in a queue.
+ *
+ * $Horde: whups/lib/Block/queuecontents.php,v 1.5 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_queuecontents extends Horde_Block {
+
+ var $_app = 'whups';
+
+ function _params()
+ {
+ global $whups_driver;
+ require_once dirname(__FILE__) . '/../base.php';
+
+ $qParams = array();
+ $qDefault = null;
+ $qParams = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ);
+ if (!$qParams) {
+ $qDefault = _("No queues available.");
+ $qType = 'error';
+ } else {
+ $qType = 'enum';
+ }
+
+ return array('queue' => array('type' => $qType,
+ 'name' => _("Queue"),
+ 'default' => $qDefault,
+ 'values' => $qParams,
+ ),
+ );
+ }
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ if ($queue = $this->_getQueue()) {
+ return sprintf(_("Open Tickets in %s"), htmlspecialchars($queue['name']));
+ }
+ return _("Queue Contents");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ global $whups_driver, $prefs;
+
+ if (!($queue = $this->_getQueue())) {
+ return '<p><em>' . _("No tickets in queue.") . '</em></p>';
+ }
+
+ $info = array('queue' => $this->_params['queue'],
+ 'nores' => true);
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ return $tickets;
+ }
+
+ if (!$tickets) {
+ return '<p><em>' . _("No tickets in queue.") . '</em></p>';
+ }
+
+ $html = '<thead><tr>';
+ $sortby = $prefs->getValue('sortby');
+ $sortdirclass = ' class="' . ($prefs->getValue('sortdir') ? 'sortup' : 'sortdown') . '"';
+ foreach (Whups::getSearchResultColumns('block') as $name => $column) {
+ $html .= '<th' . ($sortby == $column ? $sortdirclass : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ Whups::sortTickets($tickets);
+ foreach ($tickets as $ticket) {
+ $link = Horde::link(Whups::urlFor('ticket', $ticket['id'], true));
+ $html .= '<tr><td>' . $link . htmlspecialchars($ticket['id']) . '</a></td>' .
+ '<td>' . $link . htmlspecialchars($ticket['summary']) . '</a></td>' .
+ '<td>' . htmlspecialchars($ticket['priority_name']) . '</td>' .
+ '<td>' . htmlspecialchars($ticket['state_name']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_queue_' . htmlspecialchars($this->_params['queue']) . '" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+ function _getQueue()
+ {
+ global $whups_driver;
+ require_once dirname(__FILE__) . '/../base.php';
+
+ if (empty($this->_params['queue'])) {
+ return false;
+ }
+ if (!Whups::permissionsFilter(array($this->_params['queue']), 'queue', Horde_Perms::READ)) {
+ return false;
+ }
+ $queue = $whups_driver->getQueue($this->_params['queue']);
+ if (is_a($queue, 'PEAR_Error')) {
+ return false;
+ }
+ return $queue;
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("Queue Summary");
+
+/**
+ * Horde_Block_Whups_queuesummary:: Show a summary of all available queues
+ * and their number of open tickets.
+ *
+ * $Horde: whups/lib/Block/queuesummary.php,v 1.7 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_queuesummary extends Horde_Block {
+
+ var $_app = 'whups';
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ return _("Queue Summary");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ global $whups_driver;
+
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ);
+ $qsummary = $whups_driver->getQueueSummary(array_keys($queues));
+ if (is_a($qsummary, 'PEAR_Error')) {
+ return $qsummary;
+ }
+
+ if (!$qsummary) {
+ return '<p><em>' . _("There are no open tickets.") . '</em></p>';
+ }
+
+ $html = '<thead><tr>';
+ $sortby = 'queue_name';
+ foreach (array('queue_name' => _("Queue"), 'open_tickets' => _("Open Tickets")) as $column => $name) {
+ $html .= '<th' . ($sortby == $column ? ' class="sortdown"' : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ foreach ($qsummary as $queue) {
+ $html .= '<tr><td>' . Horde::link(Whups::urlFor('queue', $queue, true), $queue['description']) . htmlspecialchars($queue['name']) . '</a></td>' .
+ '<td>' . htmlspecialchars($queue['open_tickets']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_queuesummary" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("Menu List");
+$block_type = 'tree';
+
+/**
+ * $Horde: whups/lib/Block/tree_menu.php,v 1.2 2007/08/09 04:01:02 chuck Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_whups_tree_menu extends Horde_Block {
+
+ var $_app = 'whups';
+
+ function _buildTree(&$tree, $indent = 0, $parent = null)
+ {
+ global $registry;
+
+ $tree->addNode($parent . '__new',
+ $parent,
+ _("New Ticket"),
+ $indent + 1,
+ false,
+ array('icon' => 'create.png',
+ 'icondir' => $registry->getImageDir(),
+ 'url' => Horde::applicationUrl('ticket/create.php')));
+
+ $tree->addNode($parent . '__search',
+ $parent,
+ _("Search"),
+ $indent + 1,
+ false,
+ array('icon' => 'search.png',
+ 'icondir' => $registry->getImageDir('horde'),
+ 'url' => Horde::applicationUrl('search.php')));
+ }
+
+}
--- /dev/null
+<?php
+
+$block_name = _("Unassigned Tickets");
+
+/**
+ * Horde_Block_Whups_unassigned:: Implementation of the Horde_Block API
+ * to display a summary of unassigned tickets.
+ *
+ * $Horde: whups/lib/Block/unassigned.php,v 1.9 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Horde_Block
+ */
+class Horde_Block_Whups_unassigned extends Horde_Block {
+
+ var $_app = 'whups';
+
+ /**
+ * The title to go in this block.
+ *
+ * @return string The title text.
+ */
+ function _title()
+ {
+ return _("Unassigned Tickets");
+ }
+
+ /**
+ * The content to go in this block.
+ *
+ * @return string The content
+ */
+ function _content()
+ {
+ require_once dirname(__FILE__) . '/../base.php';
+ global $whups_driver, $prefs;
+
+ $queue_ids = array_keys(Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ));
+ $info = array('notowner' => true,
+ 'nores' => true,
+ 'queue' => $queue_ids);
+ $unassigned = $whups_driver->getTicketsByProperties($info);
+ if (is_a($unassigned, 'PEAR_Error')) {
+ return $unassigned;
+ }
+
+ if (!$unassigned) {
+ return '<p><em>' . _("No tickets are unassigned!") . '</em></p>';
+ }
+
+ $html = '<thead><tr>';
+ $sortby = $prefs->getValue('sortby');
+ $sortdirclass = ' class="' . ($prefs->getValue('sortdir') ? 'sortup' : 'sortdown') . '"';
+ foreach (Whups::getSearchResultColumns('block') as $name => $column) {
+ $html .= '<th' . ($sortby == $column ? $sortdirclass : '') . '>' . $name . '</th>';
+ }
+ $html .= '</tr></thead><tbody>';
+
+ Whups::sortTickets($unassigned);
+ foreach ($unassigned as $ticket) {
+ $link = Horde::link(Whups::urlFor('ticket', $ticket['id'], true));
+ $html .= '<tr><td>' . $link . htmlspecialchars($ticket['id']) . '</a></td>' .
+ '<td>' . $link . htmlspecialchars($ticket['summary']) . '</a></td>' .
+ '<td>' . htmlspecialchars($ticket['priority_name']) . '</td>' .
+ '<td>' . htmlspecialchars($ticket['state_name']) . '</td></tr>';
+ }
+
+ Horde::addScriptFile('tables.js', 'horde', true);
+ return '<table id="whups_block_mytickets" cellspacing="0" class="tickets striped sortable">' . $html . '</tbody></table>';
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Base class for Whups' storage backend.
+ *
+ * $Horde: whups/lib/Driver.php,v 1.216 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @todo Needs updating to include method stubs for all required methods, to
+ * indicate what methods need to be implemented by other backends.
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+class Whups_Driver {
+
+ /**
+ * @var array
+ */
+ var $_params;
+
+ /**
+ */
+ function Whups_Driver($params)
+ {
+ $this->_params = $params;
+ }
+
+ /**
+ */
+ function setAttributes($info, &$ticket)
+ {
+ $ticket_id = $ticket->getId();
+
+ foreach ($info as $name => $value) {
+ if (substr($name, 0, 10) == 'attribute_' &&
+ $ticket->get($name) != $value) {
+ $attribute_id = (int)substr($name, 10);
+ $ticket->change($name, $value);
+ $this->_setAttributeValue($ticket_id, $attribute_id, $value);
+ $this->updateLog($ticket_id, Horde_Auth::getAuth(), array('attribute' => $attribute_id . ':' . $value));
+ }
+ }
+ }
+
+ /**
+ * @param integer $ticket_id
+ */
+ function getHistory($ticket_id)
+ {
+ $rows = $this->_getHistory($ticket_id);
+ if (is_a($rows, 'PEAR_Error')) {
+ return $rows;
+ }
+
+ $attributes = array();
+ foreach ($rows as $row) {
+ if ($row['log_type'] == 'attribute' &&
+ strpos($row['log_value'], ':')) {
+ $attributes[(int)$row['log_value']] = $row['attribute_name'];
+ }
+ }
+
+ $history = array();
+ foreach ($rows as $row) {
+ $label = null;
+ $value = $row['log_value'];
+ $transaction = $row['transaction_id'];
+
+ $history[$transaction]['timestamp'] = $row['timestamp'];
+ $history[$transaction]['user_id'] = $row['user_id'];
+ $history[$transaction]['ticket_id'] = $row['ticket_id'];
+
+ switch ($row['log_type']) {
+ case 'comment':
+ $history[$transaction]['comment'] = $row['comment_text'];
+ $history[$transaction]['changes'][] = array(
+ 'type' => $row['log_type'],
+ 'value' => $row['log_value'],
+ 'comment' => $row['comment_text']);
+ continue 2;
+
+ case 'queue':
+ $label = $row['queue_name'];
+ break;
+
+ case 'version':
+ $label = $row['version_name'];
+ break;
+
+ case 'type':
+ $label = $row['type_name'];
+ break;
+
+ case 'state':
+ $label = $row['state_name'];
+ break;
+
+ case 'priority':
+ $label = $row['priority_name'];
+ break;
+
+ case 'attribute':
+ continue 2;
+
+ case 'due':
+ $label = $row['log_value_num'];
+ break;
+
+ default:
+ if (strpos($row['log_type'], 'attribute_') === 0) {
+ $attribute = substr($row['log_type'], 10);
+ if (isset($attributes[$attribute])) {
+ $label = $attributes[$attribute];
+ } else {
+ $label = sprintf(_("Attribute %d"), $attribute);
+ }
+ $history[$transaction]['changes'][] = array(
+ 'type' => 'attribute',
+ 'value' => $value,
+ 'label' => $label);
+ continue 2;
+ }
+ break;
+ }
+
+ $history[$transaction]['changes'][] = array(
+ 'type' => $row['log_type'],
+ 'value' => $value,
+ 'label' => $label);
+ }
+
+ return $history;
+ }
+
+ /**
+ */
+ function getQueue($queueId)
+ {
+ return $GLOBALS['registry']->call('tickets/getQueueDetails',
+ array($queueId));
+ }
+
+ /**
+ */
+ function getQueues()
+ {
+ return $GLOBALS['registry']->call('tickets/listQueues');
+ }
+
+ /**
+ */
+ function getVersionInfo($queue)
+ {
+ return $GLOBALS['registry']->call('tickets/listVersions',
+ array($queue));
+ }
+
+ /**
+ * Returns a hash of versions suitable for select lists.
+ */
+ function getVersions($queue, $all = false)
+ {
+ if (empty($queue)) {
+ return array();
+ }
+
+ $versioninfo = $this->getVersionInfo($queue);
+ if (is_a($versioninfo, 'PEAR_Error')) {
+ return $versioninfo;
+ }
+
+ $versions = array();
+ $old_versions = false;
+ foreach ($versioninfo as $vinfo) {
+ if (!$all && !$vinfo['active']) {
+ $old_versions = $vinfo['id'];
+ continue;
+ }
+ $versions[$vinfo['id']] = $vinfo['name'];
+ if (!empty($vinfo['description'])) {
+ $versions[$vinfo['id']] .= ': ' . $vinfo['description'];
+ }
+ if ($all && !$vinfo['active']) {
+ $versions[$vinfo['id']] .= ' ' . _("(inactive)");
+ }
+ }
+
+ if ($old_versions) {
+ $versions[$old_versions] = _("Older? Please update first!");
+ }
+
+ return $versions;
+ }
+
+ /**
+ */
+ function getVersion($version)
+ {
+ return $GLOBALS['registry']->call('tickets/getVersionDetails',
+ array($version));
+ }
+
+ /**
+ */
+ function getCategories()
+ {
+ return array('unconfirmed' => _("Unconfirmed"),
+ 'new' => _("New"),
+ 'assigned' => _("Assigned"),
+ 'resolved' => _("Resolved"));
+ }
+
+ /**
+ * Returns the attributes for a specific ticket type.
+ *
+ * This method will check if external attributes need to be fetched from
+ * hooks or whether to use the standard ones defined within Whups.
+ *
+ * @params integer $type The ticket type.
+ *
+ * @return array List of attributes.
+ */
+ function getAttributesForType($type = null)
+ {
+ $attributes = $this->_getAttributesForType($type);
+ if (is_a($attributes, 'PEAR_Error')) {
+ return $attributes;
+ }
+
+ foreach ($attributes as $id => $attribute) {
+ $attributes[$id] = array(
+ 'human_name' => $attribute['attribute_name'],
+ 'type' => $attribute['attribute_type'],
+ 'required' => $attribute['attribute_required'],
+ 'readonly' => false,
+ 'desc' => $attribute['attribute_description'],
+ 'params' => $attribute['attribute_params']);
+ }
+ return $attributes;
+ }
+
+ /**
+ * Returns the attributes for a specific ticket.
+ *
+ * This method will check if external attributes need to be fetched from
+ * hooks or whether to use the standard ones defined within Whups.
+ *
+ * @params integer $ticket_id The ticket ID.
+ *
+ * @return array List of attributes.
+ */
+ function getAllTicketAttributesWithNames($ticket_id)
+ {
+ $ta = $this->_getAllTicketAttributesWithNames($ticket_id);
+ if (is_a($ta, 'PEAR_Error')) {
+ return $ta;
+ }
+
+ $attributes = array();
+ foreach ($ta as $id => $attribute) {
+ $attributes[$attribute['attribute_id']] = array(
+ 'id' => $attribute['attribute_id'],
+ 'human_name' => $attribute['attribute_name'],
+ 'type' => $attribute['attribute_type'],
+ 'required' => $attribute['attribute_required'],
+ 'readonly' => false,
+ 'desc' => $attribute['attribute_description'],
+ 'params' => $attribute['attribute_params'],
+ 'value' => $attribute['attribute_value']);
+ }
+ return $attributes;
+ }
+
+ /**
+ * Deletes a queue.
+ *
+ * Should be called by driver subclasses after successful removal from the
+ * backend. Takes only care of cleaning up queue permissions.
+ *
+ * @param integer $queueId The id of the queue being deleted.
+ */
+ function deleteQueue($queueId)
+ {
+ $perm = &$GLOBALS['perms']->getPermission("whups:queues:$queueId");
+ if (is_a($perm, 'PEAR_Error')) {
+ return;
+ }
+
+ return $GLOBALS['perms']->removePermission($perm, true);
+ }
+
+ /**
+ * Deletes a form reply.
+ *
+ * Should be called by driver subclasses after successful removal from the
+ * backend. Takes only care of cleaning up reply permissions.
+ *
+ * @param integer $reply The id of the form reply being deleted.
+ */
+ function deleteReply($reply)
+ {
+ $perm = &$GLOBALS['perms']->getPermission("whups:replies:$reply");
+ if (is_a($perm, 'PEAR_Error')) {
+ return;
+ }
+
+ return $GLOBALS['perms']->removePermission($perm, true);
+ }
+
+ /**
+ */
+ function filterTicketsByState($tickets, $state_category = array())
+ {
+ /* Take a list of tickets and return only those of the specified
+ * state_category. */
+ $tickets_filtered = array();
+ foreach ($tickets as $ticket) {
+ foreach ($state_category as $state) {
+ if ($ticket['state_category'] == $state) {
+ $tickets_filtered[] = $ticket;
+ }
+ }
+ }
+
+ return $tickets_filtered;
+ }
+
+ /**
+ * Sends email notifications to a list of recipients.
+ *
+ * We do some ugly work in here to make sure that no one gets comments
+ * mailed to them that they shouldn't see (because of group permissions).
+ *
+ * @param integer $ticket_id The ticket id.
+ * @param array $recipients The list of recipients.
+ * @param string $subject The email subject.
+ * @param string $message The email message text.
+ * @param string $from The email sender.
+ * @param boolean $reminder Whether this is reminder email (no ticket
+ * changes).
+ * @param integer $queue_id The queue id.
+ * @param boolean $is_new Whether a ticket has been created, if
+ * notifying about a ticket.
+ */
+ function mail($ticket_id, $recipients, $subject, $message, $from,
+ $reminder, $queue_id = null, $is_new = false)
+ {
+ global $conf, $registry, $prefs;
+
+ /* Set up recipients and message headers. */
+ if (!is_array($recipients)) {
+ $recipients = array($recipients);
+ }
+
+ $mail = new Horde_Mime_Mail();
+ $mail->addHeader('X-Whups-Generated', 1);
+ $mail->addHeader('User-Agent', 'Whups ' . $registry->getVersion());
+ $mail->addHeader('Precedence', 'bulk');
+ $mail->addHeader('Auto-Submitted', $reminder ? 'auto-generated' : 'auto-replied');
+
+ $mail_always = null;
+ if (!$reminder && !empty($conf['mail']['always_copy'])) {
+ $mail_always = $conf['mail']['always_copy'];
+ if (strpos($mail_always, '<@>') !== false) {
+ $ticket = Whups_Ticket::makeTicket($ticket_id);
+ if (!is_a($ticket, 'PEAR_Error')) {
+ $mail_always = str_replace('<@>', $ticket->get('queue_name'), $mail_always);
+ } else {
+ $mail_always = null;
+ }
+ }
+ if ($mail_always) {
+ $recipients[] = $mail_always;
+ }
+ }
+
+ if ($queue_id) {
+ $queue = $this->getQueue($queue_id);
+ } else {
+ $queue = null;
+ }
+
+ if ($queue && !empty($queue['email'])) {
+ $mail->addHeader('From', $queue['email']);
+ } elseif (!empty($conf['mail']['from_addr'])) {
+ $mail->addHeader('From', $conf['mail']['from_addr']);
+ } else {
+ $mail->addHeader('From', Whups::formatUser($from), Horde_Nls::getCharset());
+ }
+
+ $subject = (is_null($ticket_id)
+ ? ''
+ : '[' . $registry->get('name') . ' #' . $ticket_id . '] ')
+ . $subject;
+ $mail->addHeader('Subject', $subject, Horde_Nls::getCharset());
+
+ /* Get our array of comments, sorted in the appropriate order. */
+ if (!is_null($ticket_id)) {
+ $comments = $this->getHistory($ticket_id);
+ if ($conf['mail']['commenthistory'] == 'new' && count($comments)) {
+ $comments = array_pop($comments);
+ $comments = array($comments);
+ } elseif ($conf['mail']['commenthistory'] != 'chronological') {
+ $comments = array_reverse($comments);
+ }
+ } else {
+ $comments = array();
+ }
+
+ /* Don't notify any email address more than once. */
+ $seen_email_addresses = array();
+
+ foreach ($recipients as $user) {
+ if ($user == $from && $user == Horde_Auth::getAuth() &&
+ $prefs->getValue('email_others_only')) {
+ continue;
+ }
+
+ /* Make sure to check permissions as a guest for the 'always_copy'
+ * address, and as the recipient for all others. */
+ $to = $full_name = '';
+ if (!empty($mail_always) && $user == $mail_always) {
+ $mycomments = Whups::permissionsFilter(
+ $comments, 'comment', Horde_Perms::READ, '');
+ $to = $mail_always;
+ } else {
+ $details = Whups::getUserAttributes($user);
+ if (!empty($details['email'])) {
+ $to = Whups::formatUser($details);
+ $mycomments = Whups::permissionsFilter(
+ $comments, 'comment', Horde_Perms::READ, $details['user']);
+ }
+ $full_name = $details['name'];
+ }
+
+ /* We may have no recipients due to users excluding themselves
+ * from self notifies. */
+ if (!$to) {
+ continue;
+ }
+
+ $formattedComment = $this->formatComments($mycomments);
+ if (empty($formattedComment) && $prefs->getValue('email_comments_only')) {
+ continue;
+ }
+
+ $addr_arr = Horde_Mime_Address::parseAddressList($to);
+ if (!is_a($addr_arr, 'PEAR_Error') && isset($addr_arr[0])) {
+ $bare_address = strtolower($addr_arr[0]['mailbox'] . '@' . $addr_arr[0]['host']);
+ if (!empty($seen_email_addresses[$bare_address])) {
+ continue;
+ }
+ $seen_email_addresses[$bare_address] = true;
+
+ if (empty($full_name) && isset($addr_arr[0]['personal'])) {
+ $full_name = $addr_arr[0]['personal'];
+ }
+ }
+
+ // use email address as fallback
+ if (empty($full_name)) {
+ $full_name = $to;
+ }
+
+ $body = str_replace(
+ array('@@comment@@', '@@full_name@@'),
+ array("\n\n" . $formattedComment, $full_name),
+ $message);
+ $mail->setBody($body, Horde_Nls::getCharset());
+
+ $mail->addHeader('Message-ID', Horde_Mime::generateMessageId());
+ if ($ticket_id) {
+ $message_id = '<whups-' . $ticket_id . '-' . md5($user) . '@' . $conf['server']['name'] . '>';
+ if ($is_new) {
+ $mail->addHeader('Message-ID', $message_id);
+ } else {
+ $mail->addHeader('In-Reply-To', $message_id);
+ $mail->addHeader('References', $message_id);
+ }
+ }
+
+ $mail->clearRecipients();
+ $mail->addHeader('To', $to, Horde_Nls::getCharset());
+
+ try {
+ $mail->send(Horde::getMailerConfig(), true);
+ $entry = sprintf('%s Message sent to %s from "%s"',
+ $_SERVER['REMOTE_ADDR'], $to,
+ Horde_Auth::getAuth());
+ Horde::logMessage($entry, __FILE__, __LINE__, PEAR_LOG_INFO);
+ } catch (Horde_Mime_Exception $e) {
+ Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_ERR);
+ }
+ }
+ }
+
+ /**
+ * Converts a changeset array to a plain text comment snippet.
+ *
+ * @param array $comments A changeset list.
+ *
+ * @return string The formatted comment text, if any.
+ */
+ function formatComments($comments)
+ {
+ $text = '';
+ foreach ($comments as $comment) {
+ if (empty($comment['comment_text'])) {
+ continue;
+ }
+ $text .= "\n"
+ . sprintf(_("%s (%s) wrote:"),
+ Whups::formatUser($comment['user_id']),
+ Horde_Form_Type_date::getFormattedTime(
+ $comment['timestamp'], '%Y-%m-%d %H:%M', false))
+ . "\n\n" . $comment['comment_text'] . "\n\n\n";
+ }
+
+ return $text;
+ }
+
+ /**
+ * Attempts to return a concrete Whups_Driver instance based on $driver.
+ *
+ * @param string $driver The type of concrete Driver subclass to return.
+ * @param array $params A hash containing any additional configuration or
+ * connection parameters a subclass might need.
+ *
+ * @return Whups_Driver The newly created concrete Whups_Driver instance.
+ */
+ function factory($driver = null, $params = null)
+ {
+ if (is_null($driver)) {
+ $driver = $GLOBALS['conf']['tickets']['driver'];
+ }
+
+ $driver = basename($driver);
+ $class = 'Whups_Driver_' . $driver;
+ if (!class_exists($class)) {
+ include dirname(__FILE__) . '/Driver/' . $driver . '.php';
+ }
+ if (class_exists($class)) {
+ if (is_null($params)) {
+ $params = Horde::getDriverConfig('tickets', $driver);
+ }
+ return new $class($params);
+ } else {
+ return PEAR::raiseError(sprintf(_("No such backend \"%s\" found"), $driver));
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Whups_Driver_sql class - implements a Whups backend for the
+ * PEAR::DB abstraction layer.
+ *
+ * $Horde: whups/lib/Driver/sql.php,v 1.319 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+class Whups_Driver_sql extends Whups_Driver {
+
+ /**
+ * The database connection object.
+ *
+ * @var DB
+ */
+ var $_db;
+
+ /**
+ * Handle for the current database connection, used for writing. Defaults
+ * to the same handle as $_db if a separate write database is not required.
+ *
+ * @var DB
+ */
+ var $_write_db;
+
+ /**
+ * A mapping of attributes from generic Whups names to DB backend fields.
+ *
+ * @var array
+ */
+ var $_map = array('id' => 'ticket_id',
+ 'summary' => 'ticket_summary',
+ 'requester' => 'user_id_requester',
+ 'queue' => 'queue_id',
+ 'version' => 'version_id',
+ 'type' => 'type_id',
+ 'state' => 'state_id',
+ 'priority' => 'priority_id',
+ 'timestamp' => 'ticket_timestamp',
+ 'due' => 'ticket_due',
+ 'date_updated' => 'date_updated',
+ 'date_assigned' => 'date_assigned',
+ 'date_resolved' => 'date_resolved',
+ );
+
+ /**
+ * Adds a new queue to the backend.
+ *
+ * @params string $name The queue name.
+ * @params string $description The queue description.
+ * @params string $slug The queue slug.
+ * @params string $email The queue email address.
+ *
+ * @return mixed The new queue_id || PEAR_Error
+ */
+ function addQueue($name, $description, $slug = '', $email = '')
+ {
+ // Get a new unique id.
+ $new_id = $this->_write_db->nextId('whups_queues');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ // Check for slug uniqueness
+ if (!empty($slug)) {
+ $query = 'SELECT count(queue_slug) FROM whups_queues '
+ . 'WHERE queue_slug = ?';
+ $result = $this->_db->getOne($query, $slug);
+ if ($result > 0) {
+ return PEAR::raiseError(_("That queue slug is already taken. Please select another."));
+ }
+ }
+ $query = 'INSERT INTO whups_queues '
+ . '(queue_id, queue_name, queue_description, queue_slug, queue_email) '
+ . 'VALUES (?, ?, ?, ?, ?)';
+ $values = array(
+ $new_id,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $slug,
+ $email);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addQueue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ function addType($name, $description)
+ {
+ // Get a new unique id.
+ $new_id = $this->_write_db->nextId('whups_types');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_types' .
+ ' (type_id, type_name, type_description) VALUES (?, ?, ?)';
+ $values = array($new_id,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']));
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ function addState($typeId, $name, $description, $category)
+ {
+ // Get a new state id.
+ $new_id = $this->_write_db->nextId('whups_states');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_states (state_id, type_id, state_name, '
+ . 'state_description, state_category) VALUES (?, ?, ?, ?, ?)';
+ $values = array($new_id,
+ $typeId,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($category, Horde_Nls::getCharset(),
+ $this->_params['charset']));
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ function addPriority($typeId, $name, $description)
+ {
+ // Get a new priority id.
+ $new_id = $this->_write_db->nextId('whups_priorities');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_priorities (priority_id, type_id, '
+ . 'priority_name, priority_description) VALUES (?, ?, ?, ?)';
+ $values = array($new_id,
+ $typeId,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']));
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addPriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ /**
+ * Adds a new version to the specified queue.
+ *
+ * @param integer $queueId The queueId to add the version to.
+ * @param string $name The name of the new version.
+ * @param string $description The descriptive text for the new version.
+ * @param boolean $active Whether the version is still active.
+ *
+ * @return mixed The new version id || PEAR_Error
+ */
+ function addVersion($queueId, $name, $description, $active)
+ {
+ // Get a new version id.
+ $new_id = $this->_write_db->nextId('whups_versions');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_versions (version_id, queue_id, '
+ . 'version_name, version_description, version_active) VALUES (?, ?, ?, ?, ?)';
+ $values = array((int)$new_id,
+ (int)$queueId,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ (int)$active);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addVersion(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ /**
+ * Adds a form reply to the backend.
+ *
+ * @param integer $type The ticket type id for which to add the new reply.
+ * @param string $name The reply name.
+ * @param string $text The reply text.
+ *
+ * @return integer The id of the new form reply.
+ */
+ function addReply($type, $name, $text)
+ {
+ // Get a new reply id.
+ $new_id = $this->_write_db->nextId('whups_replies');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_replies (type_id, reply_id, '
+ . 'reply_name, reply_text) VALUES (?, ?, ?, ?)';
+ $values = array($type,
+ $new_id,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($text, Horde_Nls::getCharset(),
+ $this->_params['charset']));
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addReply(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ function addTicket(&$info, $requester)
+ {
+ $type = $info['type'];
+ $state = $info['state'];
+ $priority = $info['priority'];
+ $queue = $info['queue'];
+ $summary = $info['summary'];
+ $version = isset($info['version']) ? $info['version'] : null;
+ $due = isset($info['due']) ? $info['due'] : null;
+ $comment = $info['comment'];
+ $attributes = isset($info['attributes']) ? $info['attributes'] : array();
+
+ // Get the new unique ids for this ticket and the initial comment.
+ $ticketId = $this->_write_db->nextId('whups_tickets');
+ if (is_a($ticketId, 'PEAR_Error')) {
+ Horde::logMessage($ticketId, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $ticketId;
+ }
+
+ if (!empty($info['user_email'])) {
+ $requester = $ticketId * -1;
+ }
+
+ // Create the ticket.
+ $query = 'INSERT INTO whups_tickets (ticket_id, ticket_summary, '
+ . 'user_id_requester, type_id, state_id, priority_id, queue_id, '
+ . 'ticket_timestamp, ticket_due, version_id)'
+ . ' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
+ $values = array($ticketId,
+ Horde_String::convertCharset($summary, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $requester,
+ $type,
+ $state,
+ $priority,
+ $queue,
+ time(),
+ $due,
+ $version);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addTicket(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ if ($requester < 0) {
+ $query = 'INSERT INTO whups_guests (guest_id, guest_email) '
+ . 'VALUES (?, ?)';
+ $values = array((string)$requester, $info['user_email']);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addTicket(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ $commentId = $this->addComment(
+ $ticketId, $comment, $requester,
+ isset($info['user_email']) ? $info['user_email'] : null);
+ if (is_a($commentId, 'PEAR_Error')) {
+ Horde::logMessage($commentId, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $commentId;
+ }
+
+ $transaction = $this->updateLog($ticketId,
+ $requester,
+ array('state' => $state,
+ 'priority' => $priority,
+ 'type' => $type,
+ 'summary' => $summary,
+ 'due' => $due,
+ 'comment' => $commentId,
+ 'queue' => $queue));
+ if (is_a($transaction, 'PEAR_Error')) {
+ Horde::logMessage($transaction, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $transaction;
+ }
+
+ // Store the last-transaction id in the ticket's info for later use if
+ // needed.
+ $info['last-transaction'] = $transaction;
+
+ // Assign the ticket, if requested.
+ $owners = array_merge(
+ isset($info['owners']) ? $info['owners'] : array(),
+ isset($info['group_owners']) ? $info['group_owners'] : array());
+ foreach ($owners as $owner) {
+ $this->addTicketOwner($ticketId, $owner);
+ $result = $this->updateLog($ticketId, $requester,
+ array('assign' => $owner),
+ $transaction);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ // Add any supplied attributes for this ticket.
+ foreach ($attributes as $attribute_id => $attribute_value) {
+ $result = $this->_setAttributeValue($ticketId,
+ $attribute_id,
+ $attribute_value);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ $this->updateLog(
+ $ticketId, $requester,
+ array('attribute' => $attribute_id . ':' . $attribute_value,
+ 'attribute_' . $attribute_id => $attribute_value),
+ $transaction);
+ }
+
+ return $ticketId;
+ }
+
+ function addComment($ticket_id, $comment, $creator, $creator_email = null)
+ {
+ $id = $this->_write_db->nextId('whups_comments');
+ if (is_a($id, 'PEAR_Error')) {
+ Horde::logMessage($id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $id;
+ }
+
+ if (empty($creator) || $creator < 0) {
+ $creator = '-' . $id . '_comment';
+ }
+
+ // Add the row.
+ $result = $this->_write_db->query('INSERT INTO whups_comments (comment_id, ticket_id, user_id_creator, comment_text, comment_timestamp)' .
+ ' VALUES (?, ?, ?, ?, ?)',
+ array((int)$id,
+ (int)$ticket_id,
+ $creator,
+ Horde_String::convertCharset($comment, Horde_Nls::getCharset(), $this->_params['charset']),
+ time()));
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ if ($creator < 0 && !empty($creator_email)) {
+ $query = 'INSERT INTO whups_guests (guest_id, guest_email)'
+ . ' VALUES (?, ?)';
+ $values = array((string)$creator, $creator_email);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addComment(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ return $id;
+ }
+
+ /**
+ * Update any details of a ticket that are stored in the main
+ * whups_tickets table. Does not update the ticket log (so that it can be
+ * used for things low-level enough to not show up there. In general, you
+ * should *always* update the log; Whups_Ticket::commit() will take care
+ * of this in most cases).
+ *
+ * @param integer $ticketId The id of the ticket to update.
+ * @param array $attributes The array of attributes (key => value) to
+ * change.
+ *
+ * @return boolean|PEAR_Error True or an error object.
+ */
+ function updateTicket($ticketId, $attributes)
+ {
+ if (!count($attributes)) {
+ return true;
+ }
+
+ $query = '';
+ $values = array();
+ foreach ($attributes as $field => $value) {
+ if (empty($this->_map[$field])) {
+ continue;
+ }
+
+ $query .= $this->_map[$field] . ' = ?, ';
+ $values[] = Horde_String::convertCharset($value, Horde_Nls::getCharset(), $this->_params['charset']);
+ }
+
+ /* Don't try to execute an empty query (if we didn't find any updates
+ * to make). */
+ if (empty($query)) {
+ return;
+ }
+
+ $query = 'UPDATE whups_tickets SET ' . substr($query, 0, -2) . ' WHERE ticket_id = ?';
+ $values[] = (int)$ticketId;
+
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateTicket(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function addTicketOwner($ticketId, $owner)
+ {
+ return $this->_write_db->query('INSERT INTO whups_ticket_owners (ticket_id, ticket_owner) VALUES (?, ?)',
+ array($ticketId, $owner));
+ }
+
+ function deleteTicketOwner($ticketId, $owner)
+ {
+ return $this->_write_db->query('DELETE FROM whups_ticket_owners WHERE ticket_owner = ? AND ticket_id = ?',
+ array($owner, $ticketId));
+ }
+
+ function deleteTicket($info)
+ {
+ global $conf;
+
+ $id = (int)$info['id'];
+
+ $tables = array('whups_ticket_listeners',
+ 'whups_logs',
+ 'whups_comments',
+ 'whups_tickets',
+ 'whups_attributes');
+
+ if (!empty($conf['vfs']['type'])) {
+ require_once 'VFS.php';
+ $vfs = &VFS::singleton($conf['vfs']['type'], Horde::getDriverConfig('vfs'));
+ if (is_a($vfs, 'PEAR_Error')) {
+ return $vfs;
+ } else {
+ if ($vfs->isFolder(WHUPS_VFS_ATTACH_PATH, $id)) {
+ $result = $vfs->deleteFolder(WHUPS_VFS_ATTACH_PATH, $id, true);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+ }
+ }
+ }
+
+ // Attempt to clean up everything.
+ foreach ($tables as $table) {
+ $query = 'DELETE FROM ' . $table . ' WHERE ticket_id = ?';
+ $values = array($id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteTicket(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ return true;
+ }
+
+ function executeQuery($query, $vars, $get_details = true, $munge = true)
+ {
+ $this->jtables = array();
+ $this->joins = array();
+
+ $where = $query->reduce($this, '_clauseFromQuery', $vars);
+ if (!$where) {
+ $GLOBALS['notification']->push(_("No query to run"), 'horde.message');
+ return array();
+ }
+
+ if ($this->joins) {
+ $joins = implode(' ', $this->joins);
+ } else {
+ $joins = '';
+ }
+
+ $sql = "SELECT whups_tickets.ticket_id, 1 FROM whups_tickets $joins "
+ . "WHERE $where";
+
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::executeQuery(): query="%s"', $sql),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $ids = $this->_db->getAssoc($sql);
+ if (is_a($ids, 'PEAR_Error')) {
+ Horde::logMessage($ids, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $GLOBALS['notification']->push($ids, 'horde.error');
+ return array();
+ }
+ $ids = array_keys($this->_db->getAssoc($sql));
+
+ if (!count($ids)) {
+ return array();
+ }
+
+ if ($get_details) {
+ $ids = $this->getTicketsByProperties(array('id' => $ids), $munge);
+ }
+
+ return $ids;
+ }
+
+ function _clauseFromQuery($args, $type, $criterion, $cvalue, $operator, $value)
+ {
+ switch ($type) {
+ case QUERY_TYPE_AND:
+ return $this->_concatClauses($args, 'AND');
+
+ case QUERY_TYPE_OR:
+ return $this->_concatClauses($args, 'OR');
+
+ case QUERY_TYPE_NOT:
+ return $this->_notClause($args);
+
+ case QUERY_TYPE_CRITERION:
+ return $this->_criterionClause($criterion, $cvalue, $operator, $value);
+ }
+ }
+
+ function _concatClauses($args, $conjunction)
+ {
+ $count = count($args);
+
+ if ($count == 0) {
+ $result = '';
+ } elseif ($count == 1) {
+ $result = $args[0];
+ } else {
+ $result = '(' . $args[0] . ')';
+
+ for ($i = 1; $i < $count; $i++) {
+ if ($args[$i] != '') {
+ $result .= ' ' . $conjunction . ' (' . $args[$i] . ')';
+ }
+ }
+ }
+
+ return $result;
+ }
+
+ function _notClause($args)
+ {
+ if (count($args) == 0) {
+ return '';
+ }
+
+ // TODO: put in a sanity check: count($args) should be 1
+ // always.
+ return 'NOT (' . $args[0] . ')';
+ }
+
+ function _criterionClause($criterion, $cvalue, $operator, $value)
+ {
+ $func = '';
+ $funcend = '';
+
+ switch ($operator) {
+ case OPERATOR_GREATER: $op = '>'; break;
+ case OPERATOR_LESS: $op = '<'; break;
+ case OPERATOR_EQUAL: $op = '='; break;
+ case OPERATOR_PATTERN: $op = 'LIKE'; break;
+
+ case OPERATOR_CI_SUBSTRING:
+ $value = '%' . str_replace(array('%', '_'), array('\%', '\_'), $value) . '%';
+ if ($this->_db->phptype == 'pgsql') {
+ $op = 'ILIKE';
+ } else {
+ $op = 'LIKE';
+ $func = 'LOWER(';
+ $funcend = ')';
+ }
+ break;
+
+ case OPERATOR_CS_SUBSTRING:
+ // FIXME: Does not work in Postgres.
+ $func = 'LOCATE(' . $this->_write_db->quote($value) . ', ';
+ $funcend = ')';
+ $op = '>';
+ $value = 0;
+ break;
+
+ case OPERATOR_WORD:
+ // TODO: There might be a better way to avoid missing
+ // words at the start and end of the text field.
+ if ($this->_db->phptype == 'pgsql') {
+ $func = "' ' || ";
+ $funcend = " || ' '";
+ } else {
+ $func = "CONCAT(' ', CONCAT(";
+ $funcend = ", ' '))";
+ }
+ $op = 'LIKE';
+ $value = '%' . str_replace(array('%', '_'), array('\%', '\_'), $value) . '%';
+ break;
+ }
+
+ $qvalue = $this->_write_db->quote($value);
+ $done = false;
+ $text = '';
+
+ switch ($criterion) {
+ case CRITERION_ID:
+ $text = "{$func}whups_tickets.ticket_id{$funcend}";
+ break;
+
+ case CRITERION_QUEUE:
+ $text = "{$func}whups_tickets.queue_id{$funcend}";
+ break;
+
+ case CRITERION_VERSION:
+ $text = "{$func}whups_tickets.version_id{$funcend}";
+ break;
+
+ case CRITERION_TYPE:
+ $text = "{$func}whups_tickets.type_id{$funcend}";
+ break;
+
+ case CRITERION_STATE:
+ $text = "{$func}whups_tickets.state_id{$funcend}";
+ break;
+
+ case CRITERION_PRIORITY:
+ $text = "{$func}whups_tickets.priority_id{$funcend}";
+ break;
+
+ case CRITERION_SUMMARY:
+ $text = "{$func}whups_tickets.ticket_summary{$funcend}";
+ break;
+
+ case CRITERION_TIMESTAMP:
+ $text = "{$func}whups_tickets.ticket_timestamp{$funcend}";
+ break;
+
+ case CRITERION_UPDATED:
+ $text = "{$func}whups_tickets.date_updated{$funcend}";
+ break;
+
+ case CRITERION_RESOLVED:
+ $text = "{$func}whups_tickets.date_resolved{$funcend}";
+ break;
+
+ case CRITERION_ASSIGNED:
+ $text = "{$func}whups_tickets.date_assigned{$funcend}";
+ break;
+
+ case CRITERION_DUE:
+ $text = "{$func}whups_tickets.ticket_due{$funcend}";
+ break;
+
+ case CRITERION_ATTRIBUTE:
+ $cvalue = (int)$cvalue;
+
+ if (!isset($this->jtables['whups_attributes'])) {
+ $this->jtables['whups_attributes'] = 1;
+ }
+ $v = $this->jtables['whups_attributes']++;
+
+ $this->joins[] = "LEFT JOIN whups_attributes wa$v ON (whups_tickets.ticket_id = wa$v.ticket_id AND wa$v.attribute_id = $cvalue)";
+ $text = "{$func}wa$v.attribute_value{$funcend} $op $qvalue";
+ $done = true;
+ break;
+
+ case CRITERION_OWNERS:
+ if (!isset($this->jtables['whups_ticket_owners'])) {
+ $this->jtables['whups_ticket_owners'] = 1;
+ }
+ $v = $this->jtables['whups_ticket_owners']++;
+
+ $this->joins[] = "LEFT JOIN whups_ticket_owners wto$v ON whups_tickets.ticket_id = wto$v.ticket_id";
+ $qvalue = $this->_write_db->quote('user:' . $value);
+ $text = "{$func}wto$v.ticket_owner{$funcend} $op $qvalue";
+ $done = true;
+ break;
+
+ case CRITERION_REQUESTER:
+ if (!isset($this->jtables['whups_guests'])) {
+ $this->jtables['whups_guests'] = 1;
+ }
+ $v = $this->jtables['whups_guests']++;
+
+ $this->joins[] = "LEFT JOIN whups_guests wg$v ON whups_tickets.user_id_requester = wg$v.guest_id";
+ $text = "{$func}whups_tickets.user_id_requester{$funcend} $op $qvalue OR {$func}wg$v.guest_email{$funcend} $op $qvalue";
+ $done = true;
+ break;
+
+ case CRITERION_GROUPS:
+ if (!isset($this->jtables['whups_ticket_owners'])) {
+ $this->jtables['whups_ticket_owners'] = 1;
+ }
+ $v = $this->jtables['whups_ticket_owners']++;
+
+ $this->joins[] = "LEFT JOIN whups_ticket_owners wto$v ON whups_tickets.ticket_id = wto$v.ticket_id";
+ $qvalue = $this->_write_db->quote('group:' . $value);
+ $text = "{$func}wto$v.ticket_owner{$funcend} $op $qvalue";
+ $done = true;
+ break;
+
+ case CRITERION_ADDED_COMMENT:
+ if (!isset($this->jtables['whups_comments'])) {
+ $this->jtables['whups_comments'] = 1;
+ }
+ $v = $this->jtables['whups_comments']++;
+
+ $this->joins[] = "LEFT JOIN whups_comments wc$v ON (whups_tickets.ticket_id = wc$v.ticket_id)";
+ $text = "{$func}wc$v.user_id_creator{$funcend} $op $qvalue";
+ $done = true;
+ break;
+
+ case CRITERION_COMMENT:
+ if (!isset($this->jtables['whups_comments'])) {
+ $this->jtables['whups_comments'] = 1;
+ }
+ $v = $this->jtables['whups_comments']++;
+
+ $this->joins[] = "LEFT JOIN whups_comments wc$v ON (whups_tickets.ticket_id = wc$v.ticket_id)";
+ $text = "{$func}wc$v.comment_text{$funcend} $op $qvalue";
+ $done = true;
+ break;
+ }
+
+ if ($done == false) {
+ $text .= " $op $qvalue";
+ }
+
+ return $text;
+ }
+
+ function getTicketsByProperties($info, $munge = true, $perowner = false)
+ {
+ // Search conditions.
+ $where = $this->_generateWhere(
+ 'whups_tickets',
+ array('ticket_id', 'type_id', 'state_id', 'priority_id', 'queue_id'),
+ $info, 'integer');
+
+ $where2 = $this->_generateWhere(
+ 'whups_tickets', array('user_id_requester'), $info, 'string');
+
+ if (empty($where)) {
+ $where = $where2;
+ } elseif (!empty($where2)) {
+ $where .= ' AND ' . $where2;
+ }
+
+ // Add summary filter if present.
+ if (!empty($info['summary'])) {
+ $where = $this->_addWhere(
+ $where, 1,
+ 'LOWER(whups_tickets.ticket_summary) LIKE '
+ . $this->_write_db->quote('%' . Horde_String::lower($info['summary']) . '%'));
+ }
+
+ // Add date fields.
+ if (!empty($info['ticket_timestamp'])) {
+ $where = $this->_addDateWhere($where, $info['ticket_timestamp'], 'ticket_timestamp');
+ }
+ if (!empty($info['date_updated'])) {
+ $where = $this->_addDateWhere($where, $info['date_updated'], 'date_updated');
+ }
+ if (!empty($info['date_assigned'])) {
+ $where = $this->_addDateWhere($where, $info['date_assigned'], 'date_assigned');
+ }
+ if (!empty($info['date_resolved'])) {
+ $where = $this->_addDateWhere($where, $info['date_resolved'], 'date_resolved');
+ }
+ if (!empty($info['ticket_due'])) {
+ $where = $this->_addDateWhere($where, $info['ticket_due'], 'ticket_due');
+ }
+
+ $fields = array('ticket_id AS id',
+ 'ticket_summary AS summary',
+ 'user_id_requester',
+ 'state_id AS state',
+ 'type_id AS type',
+ 'priority_id AS priority',
+ 'queue_id AS queue',
+ 'date_updated',
+ 'date_assigned',
+ 'date_resolved',
+ 'version_id AS version');
+
+ $fields = $this->_prefixTableToColumns('whups_tickets', $fields)
+ . ', whups_tickets.ticket_timestamp AS timestamp, whups_tickets.ticket_due AS due';
+ $tables = 'whups_tickets';
+ $join = '';
+ $groupby = 'whups_tickets.ticket_id, whups_tickets.ticket_summary, whups_tickets.user_id_requester, whups_tickets.state_id, whups_tickets.type_id, whups_tickets.priority_id, whups_tickets.queue_id, whups_tickets.ticket_timestamp, whups_tickets.ticket_due, whups_tickets.date_updated, whups_tickets.date_assigned, whups_tickets.date_resolved';
+
+ // State filters.
+ if (isset($info['category'])) {
+ if (is_array($info['category'])) {
+ $cat = '';
+ foreach ($info['category'] as $category) {
+ if (!empty($cat)) {
+ $cat .= ' OR ';
+ }
+ $cat .= 'whups_states.state_category = '
+ . $this->_write_db->quote($category);
+ }
+ $cat = ' AND (' . $cat . ')';
+ } else {
+ $cat = isset($info['category'])
+ ? ' AND whups_states.state_category = '
+ . $this->_write_db->quote($info['category'])
+ : '';
+ }
+ } else {
+ $cat = '';
+ }
+
+ // Type filters.
+ if (isset($info['type_id'])) {
+ if (is_array($info['type_id'])) {
+ $t = array();
+ foreach ($info['type_id'] as $type) {
+ $t[] = 'whups_tickets.type_id = '
+ . $this->_write_db->quote($type);
+ }
+ $t = ' AND (' . implode(' OR ', $t) . ')';
+ } else {
+ $t = isset($info['type_id'])
+ ? ' AND whups_tickets.type_id = '
+ . $this->_write_db->quote($info['type_id'])
+ : '';
+ }
+
+ $this->_addWhere($where, $t, $t);
+ }
+
+ $nouc = isset($info['nouc'])
+ ? " AND whups_states.state_category <> 'unconfirmed'" : '';
+ $nores = isset($info['nores'])
+ ? " AND whups_states.state_category <> 'resolved'" : '';
+ $nonew = isset($info['nonew'])
+ ? " AND whups_states.state_category <> 'new'" : '';
+ $noass = isset($info['noass'])
+ ? " AND whups_states.state_category <> 'assigned'" : '';
+
+ $uc = isset($info['uc'])
+ ? " AND whups_states.state_category = 'unconfirmed'" : '';
+ $res = isset($info['res'])
+ ? " AND whups_states.state_category = 'resolved'" : '';
+ $new = isset($info['new'])
+ ? " AND whups_states.state_category = 'new'" : '';
+ $ass = isset($info['ass'])
+ ? " AND whups_states.state_category = 'assigned'" : '';
+
+ // If there are any state filters, add them in.
+ if ($nouc || $nores || $nonew || $noass ||
+ $uc || $res || $new || $ass || $cat) {
+ $where = $this->_addWhere($where, 1, "(whups_tickets.type_id = whups_states.type_id AND whups_tickets.state_id = whups_states.state_id$nouc$nores$nonew$noass$uc$res$new$ass$cat)");
+ }
+
+ // Initialize join clauses.
+ $join = '';
+
+ // Handle owner properties.
+ if (isset($info['owner'])) {
+ $join .= ' INNER JOIN whups_ticket_owners ON whups_tickets.ticket_id = whups_ticket_owners.ticket_id AND ';
+ if (is_array($info['owner'])) {
+ $clauses = array();
+ foreach ($info['owner'] as $owner) {
+ $clauses[] = 'whups_ticket_owners.ticket_owner = '
+ . $this->_write_db->quote($owner);
+ }
+ $join .= '(' . implode(' OR ', $clauses) . ')';
+ } else {
+ $join .= 'whups_ticket_owners.ticket_owner = '
+ . $this->_write_db->quote($info['owner']);
+ }
+ }
+ if (isset($info['notowner'])) {
+ if ($info['notowner'] === true) {
+ // Filter for tickets with no owner.
+ $join .= ' LEFT JOIN whups_ticket_owners ON whups_tickets.ticket_id = whups_ticket_owners.ticket_id AND whups_ticket_owners.ticket_owner IS NOT NULL';
+ } else {
+ $join .= ' LEFT JOIN whups_ticket_owners ON whups_tickets.ticket_id = whups_ticket_owners.ticket_id AND whups_ticket_owners.ticket_owner = ' . $this->_write_db->quote($info['notowner']);
+ }
+ $where = $this->_addWhere($where, 1,
+ 'whups_ticket_owners.ticket_id IS NULL');
+ }
+
+ if ($munge) {
+ $myqueues = $GLOBALS['registry']->hasMethod('tickets/listQueues') == $GLOBALS['registry']->getApp();
+ $myversions = $GLOBALS['registry']->hasMethod('tickets/listVersions') == $GLOBALS['registry']->getApp();
+ $fields = "$fields, " .
+ 'whups_types.type_name AS type_name, ' .
+ 'whups_states.state_name AS state_name, ' .
+ 'whups_states.state_category AS state_category, ' .
+ 'whups_priorities.priority_name AS priority_name';
+
+ $join .=
+ ' INNER JOIN whups_types ON whups_tickets.type_id = whups_types.type_id' .
+ ' INNER JOIN whups_states ON whups_tickets.state_id = whups_states.state_id' .
+ ' INNER JOIN whups_priorities ON whups_tickets.priority_id = whups_priorities.priority_id' .
+ ' INNER JOIN whups_states state2 ON whups_tickets.type_id = state2.type_id';
+
+ $groupby .= ', whups_types.type_name, whups_states.state_name, whups_states.state_category';
+ if ($myversions) {
+ $versions = array();
+ $fields .= ', whups_versions.version_name AS version_name'
+ . ', whups_versions.version_description AS version_description'
+ . ', whups_versions.version_active AS version_active';
+ $join .= ' LEFT JOIN whups_versions ON whups_tickets.version_id = whups_versions.version_id';
+ $groupby .= ', whups_versions.version_name, whups_versions.version_description, whups_versions.version_active, whups_tickets.version_id';
+ }
+ if ($myqueues) {
+ $queues = array();
+ $fields .= ', whups_queues.queue_name AS queue_name';
+ $join .= ' INNER JOIN whups_queues ON whups_tickets.queue_id = whups_queues.queue_id';
+ $groupby .= ', whups_queues.queue_name';
+ }
+ $groupby .= ', whups_priorities.priority_name';
+ }
+
+ if ($perowner) {
+ $join .= ' LEFT JOIN whups_ticket_owners ON whups_tickets.ticket_id = whups_ticket_owners.ticket_id';
+ $fields .= ', whups_ticket_owners.ticket_owner AS owner';
+ $groupby .= ', whups_ticket_owners.ticket_owner';
+ }
+
+ $query = "SELECT $fields FROM $tables$join "
+ . (!empty($where) ? "WHERE $where " : '')
+ . 'GROUP BY ' . $groupby;
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTicketsByProperties(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ if (!count($info)) {
+ return array();
+ }
+
+ $info = Horde_String::convertCharset($info, $this->_params['charset']);
+
+ $tickets = array();
+ foreach ($info as $ticket) {
+ if ($munge) {
+ if (!$myqueues) {
+ if (!isset($queues[$ticket['queue']])) {
+ $queues[$ticket['queue']] = $GLOBALS['registry']->call(
+ 'tickets/getQueueDetails',
+ array($ticket['queue']));
+ }
+ $ticket['queue_name'] = $queues[$ticket['queue']]['name'];
+ if (isset($queues[$ticket['queue']]['link'])) {
+ $ticket['queue_link'] = $queues[$ticket['queue']]['link'];
+ }
+ }
+ if (!$myversions) {
+ if (!isset($versions[$ticket['version']])) {
+ $versions[$ticket['version']] = $GLOBALS['registry']->call(
+ 'tickets/getVersionDetails',
+ array($ticket['version']));
+ }
+ $ticket['version_name'] = $versions[$ticket['version']]['name'];
+ if (isset($versions[$ticket['version']]['link'])) {
+ $ticket['version_link'] = $versions[$ticket['version']]['link'];
+ }
+ }
+ }
+ $tickets[$ticket['id']] = $ticket;
+ }
+
+ $owners = $this->getOwners(array_keys($tickets));
+ if (is_a($owners, 'PEAR_Error')) {
+ return $owners;
+ }
+ foreach ($owners as $row) {
+ if (empty($tickets[$row['id']]['owners'])) {
+ $tickets[$row['id']]['owners'] = array();
+ }
+ $tickets[$row['id']]['owners'][] = $row['owner'];
+ }
+
+ $attributes = $this->getTicketAttributesWithNames(array_keys($tickets));
+ foreach ($attributes as $row) {
+ $attribute_id = 'attribute_' . $row['attribute_id'];
+ $tickets[$row['id']][$attribute_id] = $row['attribute_value'];
+ $tickets[$row['id']][$attribute_id . '_name'] = $row['attribute_name'];
+ }
+ return array_values($tickets);
+ }
+
+ function getTicketDetails($ticket, $checkPerms = true)
+ {
+ $result = $this->getTicketsByProperties(array('id' => $ticket));
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ } elseif (!isset($result[0])) {
+ return PEAR::raiseError(sprintf(_("Ticket %s was not found."),
+ $ticket));
+ } else {
+ $queues = Whups::permissionsFilter(
+ $this->getQueues(), 'queue', Horde_Perms::READ, Horde_Auth::getAuth(),
+ $result[0]['user_id_requester']);
+ if ($checkPerms &&
+ !in_array($result[0]['queue'], array_flip($queues))) {
+ return PEAR::raiseError(
+ sprintf(_("You do not have permission to access this ticket (%s)."),
+ $ticket),
+ 0);
+ }
+ }
+
+ return $result[0];
+ }
+
+ function getTicketState($ticket_id)
+ {
+ $query = 'SELECT whups_tickets.state_id, whups_states.state_category '
+ . 'FROM whups_tickets INNER JOIN whups_states '
+ . 'ON whups_tickets.state_id = whups_states.state_id '
+ . 'WHERE ticket_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTicketState(): query="%s"; values="%s"',
+ $query, $ticket_id),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $state = $this->_db->getRow($query, array($ticket_id),
+ DB_FETCHMODE_ASSOC);
+ if (is_a($state, 'PEAR_Error')) {
+ Horde::logMessage($state, __FILE__, __LINE__, PEAR_LOG_ERR);
+ }
+ return $state;
+ }
+
+ function getGuestEmail($guest_id)
+ {
+ static $guestCache;
+
+ if (!isset($guestCache[$guest_id])) {
+ $query = 'SELECT guest_email FROM whups_guests WHERE guest_id = ?';
+ $values = array($guest_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getGuestEmail(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_db->getOne($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+ $guestCache[$guest_id] = Horde_String::convertCharset(
+ $result, $this->_params['charset']);
+ }
+ return $guestCache[$guest_id];
+ }
+
+ function _getHistory($ticket_id)
+ {
+ $where = 'whups_logs.ticket_id = ' . (int)$ticket_id;
+ $join = 'LEFT JOIN whups_comments
+ ON whups_logs.log_type = \'comment\'
+ AND whups_logs.log_value_num = whups_comments.comment_id
+ LEFT JOIN whups_versions
+ ON whups_logs.log_type = \'version\'
+ AND whups_logs.log_value_num = whups_versions.version_id
+ LEFT JOIN whups_states
+ ON whups_logs.log_type = \'state\'
+ AND whups_logs.log_value_num = whups_states.state_id
+ LEFT JOIN whups_priorities
+ ON whups_logs.log_type = \'priority\'
+ AND whups_logs.log_value_num = whups_priorities.priority_id
+ LEFT JOIN whups_types
+ ON whups_logs.log_type = \'type\'
+ AND whups_logs.log_value_num = whups_types.type_id
+ LEFT JOIN whups_attributes_desc
+ ON whups_logs.log_type = \'attribute\'
+ AND whups_logs.log_value_num = whups_attributes_desc.attribute_id';
+
+ $fields = $this->_prefixTableToColumns('whups_comments',
+ array('comment_text'))
+ . ', whups_logs.log_timestamp AS timestamp, whups_logs.ticket_id'
+ . ', whups_logs.log_type, whups_logs.log_value'
+ . ', whups_logs.log_value_num, whups_logs.log_id'
+ . ', whups_logs.transaction_id, whups_logs.user_id'
+ . ', whups_priorities.priority_name, whups_states.state_name, whups_versions.version_name'
+ . ', whups_types.type_name, whups_attributes_desc.attribute_name';
+
+ $query = "SELECT $fields FROM whups_logs $join WHERE $where "
+ . "ORDER BY whups_logs.transaction_id";
+ Horde::logMessage(sprintf('Whups_Driver_sql::_getHistory(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $history = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
+ if (is_a($history, 'PEAR_Error')) {
+ Horde::logMessage($history, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $history;
+ }
+
+ $history = Horde_String::convertCharset($history, $this->_params['charset']);
+ for ($i = 0, $iMax = count($history); $i < $iMax; ++$i) {
+ if ($history[$i]['log_type'] == 'queue') {
+ $queue = $this->getQueue($history[$i]['log_value_num']);
+ $history[$i]['queue_name'] = $queue ? $queue['name'] : null;
+ }
+ }
+
+ return $history;
+ }
+
+ /**
+ * Return a list of queues with open tickets, and the number of
+ * open tickets in each.
+ *
+ * @param array $queues Array of queue ids to summarize.
+ */
+ function getQueueSummary($queue_ids)
+ {
+ $qstring = (int)array_shift($queue_ids);
+ while ($queue_ids) {
+ $qstring .= ', ' . (int)array_shift($queue_ids);
+ }
+
+ $sql = 'SELECT q.queue_id AS id, q.queue_slug AS slug, '
+ . 'q.queue_name AS name, q.queue_description AS description, '
+ . 'COUNT(t.ticket_id) AS open_tickets '
+ . 'FROM whups_queues q LEFT JOIN whups_tickets t '
+ . 'ON q.queue_id = t.queue_id '
+ . 'INNER JOIN whups_states s '
+ . 'ON (t.state_id = s.state_id AND s.state_category != \'resolved\') '
+ . 'WHERE q.queue_id IN (' . $qstring . ') '
+ . 'GROUP BY q.queue_id, q.queue_slug, q.queue_name, '
+ . 'q.queue_description ORDER BY q.queue_name';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getQueueSummary(): query="%s"', $sql),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $queues = $this->_db->getAll($sql, null, DB_FETCHMODE_ASSOC);
+ if (is_a($queues, 'PEAR_Error')) {
+ Horde::logMessage($queues, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $queues;
+ }
+
+ return Horde_String::convertCharset($queues, $this->_params['charset']);
+ }
+
+ function getQueueInternal($queueId)
+ {
+ static $queues;
+
+ if (isset($queues[$queueId])) {
+ return $queues[$queueId];
+ }
+
+ $query = 'SELECT queue_id, queue_name, queue_description, '
+ . 'queue_versioned, queue_slug, queue_email '
+ . 'FROM whups_queues WHERE queue_id = ?';
+ $values = array((int)$queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getQueueInternal(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $queue = $this->_db->getRow($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($queue, 'PEAR_Error')) {
+ Horde::logMessage($queue, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $queue;
+ } elseif (!$queue) {
+ return false;
+ }
+
+ $queue = Horde_String::convertCharset($queue, $this->_params['charset']);
+ $queues[$queueId] = array('id' => (int)$queue['queue_id'],
+ 'name' => $queue['queue_name'],
+ 'description' => $queue['queue_description'],
+ 'versioned' => (bool)$queue['queue_versioned'],
+ 'slug' => $queue['queue_slug'],
+ 'email' => $queue['queue_email'],
+ 'readonly' => false);
+
+ return $queues[$queueId];
+ }
+
+ function getQueueBySlugInternal($slug)
+ {
+ $query = 'SELECT queue_id, queue_name, queue_description, '
+ . 'queue_versioned, queue_slug FROM whups_queues WHERE '
+ . 'queue_slug = ?';
+ $values = array((string)$slug);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getQueueInternal(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $queue = $this->_db->getAll($query, $values);
+ if (is_a($queue, 'PEAR_Error')) {
+ Horde::logMessage($queue, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $queue;
+ } elseif (!count($queue)) {
+ return $queue;
+ }
+
+ $queue = Horde_String::convertCharset($queue, $this->_params['charset']);
+ $queue = $queue[0];
+ return array('id' => $queue[0],
+ 'name' => $queue[1],
+ 'description' => $queue[2],
+ 'versioned' => $queue[3],
+ 'slug' => $queue[4],
+ 'readonly' => false);
+ }
+
+ function getQueuesInternal()
+ {
+ static $internals;
+
+ if ($internals) {
+ return $internals;
+ }
+
+ $query = 'SELECT queue_id, queue_name FROM whups_queues '
+ . 'ORDER BY queue_name';
+ Horde::logMessage(sprintf('Whups_Driver_sql::getQueues(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $queues = $this->_db->getAssoc($query);
+ if (is_a($queues, 'PEAR_Error')) {
+ Horde::logMessage($queues, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+
+ $internals = Horde_String::convertCharset($queues, $this->_params['charset']);
+ return $internals;
+ }
+
+ function updateQueue($queueId, $name, $description, $types, $versioned,
+ $slug = '', $email = '', $default = null)
+ {
+ global $registry;
+
+ if ($registry->hasMethod('tickets/listQueues') == $registry->getApp()) {
+ // Is slug unique?
+ $query = 'SELECT count(queue_slug) FROM whups_queues WHERE queue_slug = ? AND queue_id <> ?';
+ $result = $this->_db->getOne($query, array($slug, $queueId));
+ if ($result > 0) {
+ return PEAR::raiseError(_("That queue slug is already taken. Please select another."));
+ }
+
+ // First update the queue entry itself.
+ $query = 'UPDATE whups_queues SET queue_name = ?, '
+ . 'queue_description = ?, queue_versioned = ?, '
+ . 'queue_slug = ?, queue_email = ? WHERE queue_id = ?';
+ $values = array(Horde_String::convertCharset($name,
+ Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description,
+ Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ (empty($versioned) ? 0 : 1),
+ $slug,
+ $email,
+ $queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateQueue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ // Clear all previous type-queue associations.
+ $query = 'DELETE FROM whups_types_queues WHERE queue_id = ?';
+ $values = array($queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateQueue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ // Add the new associations.
+ if (is_array($types)) {
+ foreach ($types as $typeId) {
+ $query = 'INSERT INTO whups_types_queues '
+ . '(queue_id, type_id, type_default) VALUES (?, ?, ?)';
+ $values = array($queueId, $typeId, $default == $typeId ? 1 : 0);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateQueue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ function getDefaultType($queue)
+ {
+ $query = 'SELECT type_id FROM whups_types_queues '
+ . 'WHERE type_default = 1 AND queue_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::setDefaultType(): query="%s"', $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $type = $this->_db->getOne($query, array($queue));
+ if (is_a($type, 'PEAR_Error')) {
+ Horde::logMessage($type, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return null;
+ }
+ return $type;
+ }
+
+ /**
+ */
+ function deleteQueue($queueId)
+ {
+ $tables = array('whups_queues_users',
+ 'whups_types_queues',
+ 'whups_versions',
+ 'whups_queues');
+ foreach ($tables as $table) {
+ $query = 'DELETE FROM ' . $table . ' WHERE queue_id = ?';
+ $values = array($queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteQueue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ return parent::deleteQueue($queueId);
+ }
+
+ /**
+ */
+ function updateTypesQueues($tmPairs)
+ {
+ // Do this as a transaction.
+ $this->_write_db->autoCommit(false);
+
+ // Delete existing associations.
+ $query = 'DELETE FROM whups_types_queues';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateTypesQueues(): query="%s"', $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $this->_write_db->rollback();
+ $this->_write_db->autoCommit(true);
+ return $result;
+ }
+
+ // Insert new associations.
+ foreach ($tmPairs as $pair) {
+ $query = 'INSERT INTO whups_types_queues (queue_id, type_id) '
+ . 'VALUES (?, ?)';
+ $values = array((int)$pair[0], (int)$pair[1]);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateTypesQueues(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $this->_write_db->rollback();
+ $this->_write_db->autoCommit(true);
+ return $result;
+ }
+ }
+
+ $result = $this->_write_db->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $this->_write_db->rollback();
+ $this->_write_db->autoCommit(true);
+ return $result;
+ }
+
+ $this->_write_db->autoCommit(true);
+ }
+
+ function getQueueUsers($queueId)
+ {
+ $query = 'SELECT user_uid AS u1, user_uid AS u2 FROM whups_queues_users'
+ . ' WHERE queue_id = ? ORDER BY u1';
+ $values = array($queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getQueueUsers(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $users = $this->_db->getAssoc($query, false, $values);
+ if (is_a($users, 'PEAR_Error')) {
+ Horde::logMessage($users, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+
+ return $users;
+ }
+
+ function addQueueUser($queueId, $userId)
+ {
+ if (!is_array($userId)) {
+ $userId = array($userId);
+ }
+ foreach ($userId as $user) {
+ $query = 'INSERT INTO whups_queues_users (queue_id, user_uid) '
+ . 'VALUES (?, ?)';
+ $values = array($queueId, $user);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addQueueUser(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+ return true;
+ }
+
+ function removeQueueUser($queueId, $userId)
+ {
+ $query = 'DELETE FROM whups_queues_users' .
+ ' WHERE queue_id = ? AND user_uid = ?';
+ $values = array($queueId, $userId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::removeQueueUser(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function getType($typeId)
+ {
+ if (empty($typeId)) {
+ return false;
+ }
+ $query = 'SELECT type_id, type_name, type_description '
+ . 'FROM whups_types WHERE type_id = ?';
+ $values = array($typeId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $type = $this->_db->getAssoc($query, false, $values);
+ if (is_a($type, 'PEAR_Error')) {
+ Horde::logMessage($type, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $type;
+ }
+
+ $type = Horde_String::convertCharset($type, $this->_params['charset']);
+ return array('id' => $typeId,
+ 'name' => isset($type[$typeId][0]) ? $type[$typeId][0] : '',
+ 'description' => isset($type[$typeId][1]) ? $type[$typeId][1] : '');
+ }
+
+ function getTypes($queueId)
+ {
+ $query = 'SELECT t.type_id, t.type_name '
+ . 'FROM whups_types t, whups_types_queues tm '
+ . 'WHERE tm.queue_id = ? AND tm.type_id = t.type_id '
+ . 'ORDER BY t.type_name';
+ $values = array($queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTypes(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $types = $this->_db->getAssoc($query, false, $values);
+ if (is_a($types, 'PEAR_Error')) {
+ Horde::logMessage($types, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+
+ return Horde_String::convertCharset($types, $this->_params['charset']);
+ }
+
+ function getTypeIds($queueId)
+ {
+ $query = 'SELECT type_id FROM whups_types_queues '
+ . 'WHERE queue_id = ? ORDER BY type_id';
+ $values = array($queueId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTypeIds(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ }
+
+ function getAllTypes()
+ {
+ $query = 'SELECT type_id, type_name FROM whups_types ORDER BY type_name';
+ Horde::logMessage(sprintf('Whups_Driver_sql::getAllTypes(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $types = $this->_db->getAssoc($query);
+ if (is_a($types, 'PEAR_Error')) {
+ Horde::logMessage($types, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+
+ return Horde_String::convertCharset($types, $this->_params['charset']);
+ }
+
+ function getAllTypeInfo()
+ {
+ $query = 'SELECT type_id, type_name, type_description '
+ . 'FROM whups_types ORDER BY type_id';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAllTypeInfo(): query="%s"', $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, null, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ function getTypeName($type)
+ {
+ $query = 'SELECT type_name FROM whups_types WHERE type_id = ?';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTypeName(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $name = $this->_db->getOne($query, $values);
+ if (is_a($name, 'PEAR_Error')) {
+ Horde::logMessage($name, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $name;
+ }
+
+ return Horde_String::convertCharset($name, $this->_params['charset']);
+ }
+
+ function updateType($typeId, $name, $description)
+ {
+ $query = 'UPDATE whups_types' .
+ ' SET type_name = ?, type_description = ? WHERE type_id = ?';
+ $values = array(Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $typeId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function deleteType($typeId)
+ {
+ $values = array((int)$typeId);
+
+ $query = 'DELETE FROM whups_states WHERE type_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+
+ $query = 'DELETE FROM whups_priorities WHERE type_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+
+ $query = 'DELETE FROM whups_attributes_desc WHERE type_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+
+ $query = 'DELETE FROM whups_types WHERE type_id = ?';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function getStates($type = null, $category = '', $notcategory = '')
+ {
+ $fields = 'state_id, state_name';
+ $from = 'whups_states';
+ $order = 'state_category, state_name';
+ if (empty($type)) {
+ $fields .= ', whups_types.type_id, type_name';
+ $from .= ' LEFT JOIN whups_types ON whups_states.type_id = whups_types.type_id';
+ $where = '';
+ $order = 'type_name, ' . $order;
+ } else {
+ $where = 'type_id = ' . $type;
+ }
+
+ if (!is_array($category)) {
+ $where = $this->_addWhere($where, $category, 'state_category = ' . $this->_write_db->quote($category));
+ } else {
+ $clauses = array();
+ foreach ($category as $cat) {
+ $clauses[] = 'state_category = ' . $this->_write_db->quote($cat);
+ }
+ if (count($clauses))
+ $where = $this->_addWhere($where, $cat, implode(' OR ', $clauses));
+ }
+
+ if (!is_array($notcategory)) {
+ $where = $this->_addWhere($where, $notcategory, 'state_category <> ' . $this->_write_db->quote($notcategory));
+ } else {
+ $clauses = array();
+ foreach ($notcategory as $notcat) {
+ $clauses[] = 'state_category <> ' . $this->_write_db->quote($notcat);
+ }
+ if (count($clauses)) {
+ $where = $this->_addWhere($where, $notcat, implode(' OR ', $clauses));
+ }
+ }
+ if (!empty($where)) {
+ $where = ' WHERE ' . $where;
+ }
+
+ $query = "SELECT $fields FROM $from$where ORDER BY $order";
+ Horde::logMessage(sprintf('Whups_Driver_sql::getStates(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $states = $this->_db->getAssoc($query);
+ if (is_a($states, 'PEAR_Error')) {
+ Horde::logMessage($states, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $states;
+ }
+
+ if (empty($type)) {
+ foreach ($states as $id => $state) {
+ $states[$id] = $state[0] . ' (' . $state[2] . ')';
+ }
+ }
+
+ return Horde_String::convertCharset($states, $this->_params['charset']);
+ }
+
+ function getState($stateId)
+ {
+ if (empty($stateId)) {
+ return false;
+ }
+ $query = 'SELECT state_id, state_name, state_description, '
+ . 'state_category, type_id FROM whups_states WHERE state_id = ?';
+ $values = array($stateId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $state = $this->_db->getAssoc($query, false, $values);
+ if (is_a($state, 'PEAR_Error')) {
+ Horde::logMessage($state, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $state;
+ }
+
+ $state = Horde_String::convertCharset($state, $this->_params['charset']);
+ return array(
+ 'id' => $stateId,
+ 'name' => isset($state[$stateId][0]) ? $state[$stateId][0] : '',
+ 'description' => isset($state[$stateId][1]) ? $state[$stateId][1] : '',
+ 'category' => isset($state[$stateId][2]) ? $state[$stateId][2] : '',
+ 'type' => isset($state[$stateId][3]) ? $state[$stateId][3] : '');
+ }
+
+ function getAllStateInfo($type)
+ {
+ $query = 'SELECT state_id, state_name, state_description, '
+ . 'state_category FROM whups_states WHERE type_id = ? '
+ . 'ORDER BY state_id';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAllStateInfo(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ function updateState($stateId, $name, $description, $category)
+ {
+ $query = 'UPDATE whups_states SET state_name = ?, '
+ . 'state_description = ?, state_category = ? WHERE state_id = ?';
+ $values = array(Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($category, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $stateId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function getDefaultState($type)
+ {
+ $query = 'SELECT state_id FROM whups_states '
+ . 'WHERE state_default = 1 AND type_id = ?';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getDefaultState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getOne($query, $values);
+ }
+
+ function setDefaultState($type, $state)
+ {
+ $query = 'UPDATE whups_states SET state_default = 0 WHERE type_id = ?';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::setDefaultState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ $query = 'UPDATE whups_states SET state_default = 1 WHERE state_id = ?';
+ $values = array($state);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::setDefaultState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function deleteState($state_id)
+ {
+ $query = 'DELETE FROM whups_states WHERE state_id = ?';
+ $values = array((int)$state_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteState(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ /**
+ * Retrieve query details.
+ *
+ * @param integer $queryId
+ *
+ * @return array
+ */
+ function getQuery($queryId)
+ {
+ if (empty($queryId)) {
+ return false;
+ }
+ $query = 'SELECT query_parameters, query_object FROM whups_queries '
+ . 'WHERE query_id = ?';
+ $values = array((int)$queryId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getQuery(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $query = $this->_db->getRow($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($query, 'PEAR_Error')) {
+ Horde::logMessage($query, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $query;
+ }
+
+ return Horde_String::convertCharset($query, $this->_params['charset']);
+ }
+
+ /**
+ * Save query details, inserting a new query row if necessary.
+ *
+ * @param Whups_Query $query
+ */
+ function saveQuery($query)
+ {
+ $exists = $this->_db->getOne('SELECT 1 FROM whups_queries '
+ . 'WHERE query_id = ' . (int)$query->id);
+ if (is_a($exists, 'PEAR_Error')) {
+ return $exists;
+ }
+
+ if ($exists) {
+ $q = 'UPDATE whups_queries SET query_parameters = ?, '
+ . 'query_object = ? WHERE query_id = ?';
+ $values = array(serialize($query->parameters),
+ serialize($query->query),
+ $query->id);
+ } else {
+
+ $q = 'INSERT INTO whups_queries (query_id, query_parameters, '
+ . 'query_object) VALUES (?, ?, ?)';
+ $values = array($query->id, serialize($query->parameters),
+ serialize($query->query));
+ }
+ $values = Horde_String::convertCharset($values, Horde_Nls::getCharset(),
+ $this->_params['charset']);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::saveQuery(): query="%s"; values="%s"',
+ $q, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($q, $values);
+ }
+
+ /**
+ * Delete query details.
+ *
+ * @param integer $queryId
+ */
+ function deleteQuery($queryId)
+ {
+ $query = 'DELETE FROM whups_queries WHERE query_id = ?';
+ $values = array((int)$queryId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteQuery(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function isCategory($category, $state_id)
+ {
+ $query = 'SELECT 1 FROM whups_states '
+ . 'WHERE state_id = ? AND state_category = ?';
+ $values = array((int)$state_id, $category);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::isCategory(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getOne($query, $values);
+ }
+
+ function getAllPriorityInfo($type)
+ {
+ $query = 'SELECT priority_id, priority_name, priority_description '
+ . 'FROM whups_priorities WHERE type_id = ? ORDER BY priority_id';
+ $values = array((int)$type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAllPriorityInfo(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ function getPriorities($type = null)
+ {
+ $fields = 'priority_id, priority_name';
+ $from = 'whups_priorities';
+ $order = 'priority_name';
+ if (empty($type)) {
+ $fields .= ', whups_types.type_id, type_name';
+ $from .= ' LEFT JOIN whups_types ON whups_priorities.type_id = whups_types.type_id';
+ $where = '';
+ $order = 'type_name, ' . $order;
+ } else {
+ $where = ' WHERE type_id = ' . $type;
+ }
+
+ $query = "SELECT $fields FROM $from$where ORDER BY $order";
+ Horde::logMessage(
+ sprintf('SQL Query by Whups_Driver_sql::getPriorities(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $priorities = $this->_db->getAssoc($query);
+ if (is_a($priorities, 'PEAR_Error')) {
+ Horde::logMessage($priorities, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $priorities;
+ }
+
+ if (empty($type)) {
+ foreach ($priorities as $id => $priority) {
+ $priorities[$id] = $priority[0] . ' (' . $priority[2] . ')';
+ }
+ }
+
+ return Horde_String::convertCharset($priorities, $this->_params['charset']);
+ }
+
+ function getPriority($priorityId)
+ {
+ if (empty($priorityId)) {
+ return false;
+ }
+ $query = 'SELECT priority_id, priority_name, priority_description, '
+ . 'type_id FROM whups_priorities WHERE priority_id = ?';
+ $values = array((int)$priorityId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getPriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $priority = $this->_db->getAssoc($query, false, $values);
+ if (is_a($priority, 'PEAR_Error')) {
+ Horde::logMessage($priority, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $priority;
+ }
+
+ $priority = Horde_String::convertCharset($priority, $this->_params['charset']);
+ return array('id' => $priorityId,
+ 'name' => isset($priority[$priorityId][0])
+ ? $priority[$priorityId][0] : '',
+ 'description' => isset($priority[$priorityId][1])
+ ? $priority[$priorityId][1] : '',
+ 'type' => isset($priority[$priorityId][2])
+ ? $priority[$priorityId][2] : '');
+ }
+
+ function updatePriority($priorityId, $name, $description)
+ {
+ $query = 'UPDATE whups_priorities' .
+ ' SET priority_name = ?, priority_description = ?' .
+ ' WHERE priority_id = ?';
+ $values = array(Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $priorityId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updatePriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function getDefaultPriority($type)
+ {
+ $query = 'SELECT priority_id FROM whups_priorities '
+ . 'WHERE priority_default = 1 AND type_id = ?';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getDefaultPriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getOne($query, $values);
+ }
+
+ function setDefaultPriority($type, $priority)
+ {
+ $query = 'UPDATE whups_priorities SET priority_default = 0 '
+ . 'WHERE type_id = ?';
+ $values = array($type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::setDefaultPriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ $query = 'UPDATE whups_priorities SET priority_default = 1 '
+ . 'WHERE priority_id = ?';
+ $values = array($priority);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::setDefaultPriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function deletePriority($priorityId)
+ {
+ $query = 'DELETE FROM whups_priorities WHERE priority_id = ?';
+ $values = array($priorityId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deletePriority(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function getVersionInfoInternal($queue)
+ {
+ $query = 'SELECT version_id, version_name, version_description, version_active '
+ . 'FROM whups_versions WHERE queue_id = ?'
+ . ' ORDER BY version_id';
+ $values = array($queue);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getVersionInfoInternal(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ function getVersionInternal($versionId)
+ {
+ if (empty($versionId)) {
+ return false;
+ }
+ $query = 'SELECT version_id, version_name, version_description, version_active'.
+ ' FROM whups_versions WHERE version_id = ?';
+ $values = array($versionId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getVersionInternal(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $version = $this->_db->getAssoc($query, false, $values);
+ if (is_a($version, 'PEAR_Error')) {
+ Horde::logMessage($version, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $version;
+ }
+
+ $version = Horde_String::convertCharset($version, $this->_params['charset']);
+ return array('id' => $versionId,
+ 'name' => isset($version[$versionId][0])
+ ? $version[$versionId][0] : '',
+ 'description' => isset($version[$versionId][1])
+ ? $version[$versionId][1] : '',
+ 'active' => !empty($version[$versionId][2]));
+ }
+
+ function updateVersion($versionId, $name, $description, $active)
+ {
+ $query = 'UPDATE whups_versions SET version_name = ?, '
+ . 'version_description = ?, version_active = ? '
+ . 'WHERE version_id = ?';
+ $values = array(Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($description, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ (int)$active,
+ (int)$versionId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateVersion(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function deleteVersion($versionId)
+ {
+ $query = 'DELETE FROM whups_versions WHERE version_id = ?';
+ $values = array($versionId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteVersion(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ /**
+ * Returns all available form replies for a ticket type.
+ *
+ * @param integer $type A type id.
+ *
+ * @return array A hash with reply ids as keys and reply hashes as values.
+ */
+ function getReplies($type)
+ {
+ $query = 'SELECT reply_id, reply_name, reply_text '
+ . 'FROM whups_replies WHERE type_id = ? ORDER BY reply_name';
+ $values = array((int)$type);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getReplies(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAssoc($query, false, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ /**
+ * Returns a form reply information hash.
+ *
+ * @param integer $reply_id A form reply id.
+ *
+ * @return array A hash with all form reply information.
+ */
+ function getReply($reply_id)
+ {
+ $query = 'SELECT reply_name, reply_text, type_id '
+ . 'FROM whups_replies WHERE reply_id = ?';
+ $values = array((int)$reply_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getReply(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $reply = $this->_db->getRow($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($reply, 'PEAR_Error')) {
+ Horde::logMessage($reply, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $reply;
+ }
+
+ return Horde_String::convertCharset($reply, $this->_params['charset']);
+ }
+
+ /**
+ * Updates a form reply in the backend.
+ *
+ * @param integer $reply A reply id.
+ * @param string $name The new reply name.
+ * @param string $text The new reply text.
+ */
+ function updateReply($reply, $name, $text)
+ {
+ $query = 'UPDATE whups_replies SET reply_name = ?, '
+ . 'reply_text = ? WHERE reply_id = ?';
+ $values = array(Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($text, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $reply);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateReply(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ }
+ return $result;
+ }
+
+ /**
+ * Deletes a form reply from the backend.
+ *
+ * @param integer $reply A reply id.
+ */
+ function deleteReply($reply)
+ {
+ $query = 'DELETE FROM whups_replies WHERE reply_id = ?';
+ $values = array((int)$reply);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteReply(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ return parent::deleteReply($reply);
+ }
+
+ function addListener($ticket, $user)
+ {
+ $query = 'INSERT INTO whups_ticket_listeners (ticket_id, user_uid)' .
+ ' VALUES (?, ?)';
+ $values = array($ticket, $user);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addListener(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return true;
+ }
+
+ function deleteListener($ticket, $user)
+ {
+ $query = 'DELETE FROM whups_ticket_listeners WHERE ticket_id = ?' .
+ ' AND user_uid = ?';
+ $values = array($ticket, $user);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteListener(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return true;
+ }
+
+ function getListeners($ticket, $withowners = true, $withrequester = true,
+ $withresponsible = false)
+ {
+ $query = 'SELECT DISTINCT l.user_uid' .
+ ' FROM whups_ticket_listeners l, whups_tickets t' .
+ ' WHERE (l.ticket_id = ?)';
+ $values = array($ticket);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getListeners(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $users = $this->_db->getCol($query, 0, $values);
+ if (is_a($users, 'PEAR_Error')) {
+ Horde::logMessage($users, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+ $tinfo = $this->getTicketDetails($ticket);
+ if (is_a($tinfo, 'PEAR_Error')) {
+ Horde::logMessage($tinfo, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return array();
+ }
+ $requester = $tinfo['user_id_requester'];
+ if ($withresponsible) {
+ $users = array_merge($users, $this->getQueueUsers($tinfo['queue']));
+ }
+
+ // Tricky - handle case where owner = requester.
+ $owner_is_requester = false;
+ if (isset($tinfo['owners'])) {
+ foreach ($tinfo['owners'] as $owner) {
+ $owner = str_replace('user:', '', $owner);
+ if ($owner == $requester) {
+ $owner_is_requester = true;
+ }
+ if ($withowners) {
+ $users[$owner] = $owner;
+ } else {
+ if (isset($users[$owner])) {
+ unset($users[$owner]);
+ }
+ }
+ }
+ }
+
+ if (!$withrequester) {
+ if (isset($users[$requester]) && (!$withowners || $owner_is_requester)) {
+ unset($users[$requester]);
+ }
+ } elseif (!empty($requester)) {
+ $users[$requester] = $requester;
+ }
+
+ return $users;
+ }
+
+ function addAttributeDesc($type_id, $name, $desc, $type, $params, $required)
+ {
+ // TODO: Make sure we're not adding a duplicate here (can be
+ // done in the db schema).
+
+ // FIXME: This assumes that $type_id is a valid type id.
+ $new_id = $this->_write_db->nextId('whups_attributes_desc');
+ if (is_a($new_id, 'PEAR_Error')) {
+ Horde::logMessage($new_id, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $new_id;
+ }
+
+ $query = 'INSERT INTO whups_attributes_desc '
+ . '(attribute_id, type_id, attribute_name, attribute_description, '
+ . 'attribute_type, attribute_params, attribute_required)'
+ . ' VALUES (?, ?, ?, ?, ?, ?, ?)';
+ $values = array($new_id,
+ $type_id,
+ Horde_String::convertCharset($name, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($desc, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $type,
+ serialize(
+ Horde_String::convertCharset($params, Horde_Nls::getCharset(),
+ $this->_params['charset'])),
+ (int)($required == 'on'));
+
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::addAttributeDesc(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+
+ return $new_id;
+ }
+
+ function updateAttributeDesc($attribute_id, $newname, $newdesc, $newtype,
+ $newparams, $newrequired)
+ {
+ $query = 'UPDATE whups_attributes_desc '
+ . 'SET attribute_name = ?, attribute_description = ?, '
+ . 'attribute_type = ?, attribute_params = ?, '
+ . 'attribute_required = ? WHERE attribute_id = ?';
+ $values = array(Horde_String::convertCharset($newname, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ Horde_String::convertCharset($newdesc, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ $newtype,
+ serialize(
+ Horde_String::convertCharset($newparams,
+ Horde_Nls::getCharset(),
+ $this->_params['charset'])),
+ (int)($newrequired == 'on'),
+ $attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateAttributeDesc(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_write_db->query($query, $values);
+ }
+
+ function deleteAttributeDesc($attribute_id)
+ {
+ // FIXME: Which one of these returns the error, or do we have to check
+ // all of them for errors?
+ $this->_write_db->autoCommit(false);
+ $query = 'DELETE FROM whups_attributes_desc WHERE attribute_id = ?';
+ $values = array($attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteAttributeDesc(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+ $query = 'DELETE FROM whups_attributes WHERE attribute_id = ?';
+ $values = array($attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::deleteAttributeDesc(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+ $this->_write_db->commit();
+ $this->_write_db->autoCommit(true);
+
+ return true;
+ }
+
+ function getAllAttributes()
+ {
+ $query = 'SELECT attribute_id, attribute_name, attribute_description, '
+ . 'type_id FROM whups_attributes_desc';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAllAttributes(): query="%s"', $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $attributes = $this->_db->getAssoc($query, false, array(),
+ DB_FETCHMODE_ASSOC);
+ if (is_a($attributes, 'PEAR_Error')) {
+ Horde::logMessage($attributes, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attributes;
+ }
+
+ return Horde_String::convertCharset($attributes, $this->_params['charset']);
+ }
+
+ function getAttributeDesc($attribute_id)
+ {
+ if (empty($attribute_id)) {
+ return false;
+ }
+
+ $query = 'SELECT attribute_id, attribute_name, attribute_description, '
+ . 'attribute_type, attribute_params, attribute_required '
+ . 'FROM whups_attributes_desc WHERE attribute_id = ?';
+ $values = array($attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributeDesc(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $attribute = $this->_db->getRow($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($attribute, 'PEAR_Error')) {
+ Horde::logMessage($attribute, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attribute;
+ }
+
+ return array(
+ 'id' => $attribute_id,
+ 'attribute_name' => Horde_String::convertCharset(
+ $attribute['attribute_name'], $this->_params['charset']),
+ 'attribute_description' => Horde_String::convertCharset(
+ $attribute['attribute_description'], $this->_params['charset']),
+ 'attribute_type' => empty($attribute['attribute_type'])
+ ? 'text' : $attribute['attribute_type'],
+ 'attribute_params' => Horde_String::convertCharset(
+ @unserialize($attribute['attribute_params']),
+ $this->_params['charset']),
+ 'attribute_required' => (bool)$attribute['attribute_required']);
+ }
+
+ function getAttributeName($attribute_id)
+ {
+ $query = 'SELECT attribute_name FROM whups_attributes_desc '
+ . 'WHERE attribute_id = ?';
+ $values = array($attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributeName(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $name = $this->_db->getOne($query, $values);
+ if (is_a($name, 'PEAR_Error')) {
+ Horde::logMessage($name, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $name;
+ }
+
+ return Horde_String::convertCharset($name, $this->_params['charset']);
+ }
+
+ function _getAttributesForType($type = null, $raw = false)
+ {
+ $fields = 'attribute_id, attribute_name, attribute_description, '
+ . 'attribute_type, attribute_params, attribute_required';
+ $from = 'whups_attributes_desc';
+ $order = 'attribute_name';
+ if (empty($type)) {
+ $fields .= ', whups_types.type_id, type_name';
+ $from .= ' LEFT JOIN whups_types ON '
+ . 'whups_attributes_desc.type_id = whups_types.type_id';
+ $where = '';
+ $order = 'type_name, ' . $order;
+ } else {
+ $where = ' WHERE type_id = ' . (int)$type;
+ }
+
+ $query = "SELECT $fields FROM $from$where ORDER BY $order";
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributesForType(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $attributes = $this->_db->getAssoc($query, false, null,
+ DB_FETCHMODE_ASSOC);
+ if (is_a($attributes, 'PEAR_Error')) {
+ Horde::logMessage($attributes, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attributes;
+ }
+
+ foreach ($attributes as $id => $attribute) {
+ if (empty($type) && !$raw) {
+ $attributes[$id]['attribute_name'] =
+ $attribute['attribute_name']
+ . ' (' . $attribute['type_name'] . ')';
+ }
+ $attributes[$id]['attribute_name'] = Horde_String::convertCharset(
+ $attribute['attribute_name'], $this->_params['charset']);
+ $attributes[$id]['attribute_description'] = Horde_String::convertCharset(
+ $attribute['attribute_description'], $this->_params['charset']);
+ $attributes[$id]['attribute_type'] =
+ empty($attribute['attribute_type'])
+ ? 'text' : $attribute['attribute_type'];
+ $attributes[$id]['attribute_params'] = Horde_String::convertCharset(
+ @unserialize($attribute['attribute_params']),
+ $this->_params['charset']);
+ $attributes[$id]['attribute_required'] =
+ (bool)$attribute['attribute_required'];
+ }
+
+ return $attributes;
+ }
+
+ function getAttributeNamesForType($type_id)
+ {
+ if (empty($type_id)) {
+ return array();
+ }
+ $query = 'SELECT attribute_name FROM whups_attributes_desc '
+ .'WHERE type_id = ? ORDER BY attribute_name';
+ $values = array((int)$type_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributeNamesForType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $names = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($names, 'PEAR_Error')) {
+ Horde::logMessage($names, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $names;
+ }
+
+ return Horde_String::convertCharset($names, $this->_params['charset']);
+ }
+
+ function getAttributeInfoForType($type_id)
+ {
+ $query = 'SELECT attribute_id, attribute_name, attribute_description '
+ . 'FROM whups_attributes_desc WHERE type_id = ? '
+ . 'ORDER BY attribute_id';
+ $values = array((int)$type_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributeNamesForType(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $info = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($info, 'PEAR_Error')) {
+ Horde::logMessage($info, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $info;
+ }
+
+ return Horde_String::convertCharset($info, $this->_params['charset']);
+ }
+
+ function _setAttributeValue($ticket_id, $attribute_id, $attribute_value)
+ {
+ $db_attribute_value = Horde_String::convertCharset((string)$attribute_value,
+ Horde_Nls::getCharset(),
+ $this->_params['charset']);
+
+ $this->_write_db->autoCommit(false);
+ $query = 'DELETE FROM whups_attributes '
+ . 'WHERE ticket_id = ? AND attribute_id = ?';
+ $values = array($ticket_id, $attribute_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::_setAttributeValue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $this->_write_db->query($query, $values);
+
+ if (!empty($attribute_value)) {
+ $query = 'INSERT INTO whups_attributes'
+ . '(ticket_id, attribute_id, attribute_value)'
+ . ' VALUES (?, ?, ?)';
+ $values = array($ticket_id, $attribute_id, $db_attribute_value);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::_setAttributeValue(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $inserted = $this->_write_db->query($query, $values);
+ if (is_a($inserted, 'PEAR_Error')) {
+ Horde::logMessage($inserted, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $this->_write_db->rollback();
+ $this->_write_db->autoCommit(true);
+ return $inserted;
+ }
+ }
+
+ $this->_write_db->commit();
+ $this->_write_db->autoCommit(true);
+ }
+
+ function getTicketAttributes($ticket_id)
+ {
+ if (is_array($ticket_id)) {
+ // No need to run a query for an empty array, and it would result
+ // in an invalid SQL query anyway.
+ if (!count($ticket_id)) {
+ return array();
+ }
+
+ $query = 'SELECT ticket_id AS id, attribute_id, attribute_value '
+ . 'FROM whups_attributes WHERE ticket_id IN ('
+ . str_repeat('?, ', count($ticket_id) - 1) . '?)';
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAttributes(): query="%s"', $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $attributes = $this->_db->getAll($query, $ticket_id,
+ DB_FETCHMODE_ASSOC);
+ } else {
+ $query = 'SELECT attribute_id, attribute_value' .
+ ' FROM whups_attributes WHERE ticket_id = ?';
+ $values = array((int)$ticket_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTicketAttributes(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $attributes = $this->_db->getAssoc($query, false, $values);
+ }
+
+ if (is_a($attributes, 'PEAR_Error')) {
+ Horde::logMessage($attributes, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attributes;
+ }
+
+ return Horde_String::convertCharset($attributes, $this->_params['charset']);
+ }
+
+ function getTicketAttributesWithNames($ticket_id)
+ {
+ if (is_array($ticket_id)) {
+ // No need to run a query for an empty array, and it would result
+ // in an invalid SQL query anyway.
+ if (!count($ticket_id)) {
+ return array();
+ }
+
+ $query = 'SELECT ticket_id AS id, d.attribute_name, '
+ . 'a.attribute_id, a.attribute_value '
+ . 'FROM whups_attributes a INNER JOIN whups_attributes_desc d '
+ . 'ON (d.attribute_id = a.attribute_id)'
+ . 'WHERE a.ticket_id IN ('
+ . str_repeat('?, ', count($ticket_id) - 1) . '?)';
+ Horde::logMessage(
+ sprintf('SQL Query by Whups_Driver_sql::getAttributes(): query="%s"',
+ $query),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $attributes = $this->_db->getAll($query, $ticket_id,
+ DB_FETCHMODE_ASSOC);
+ } else {
+ $query = 'SELECT d.attribute_name, a.attribute_value '
+ . 'FROM whups_attributes a INNER JOIN whups_attributes_desc d '
+ . 'ON (d.attribute_id = a.attribute_id)'
+ . 'WHERE a.ticket_id = ? ORDER BY d.attribute_name';
+ $values = array((int)$ticket_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getTicketAttributesWithNames(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $attributes = $this->_db->getAssoc($query, false, $values);
+ }
+ if (is_a($attributes, 'PEAR_Error')) {
+ Horde::logMessage($attributes, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attributes;
+ }
+
+ return Horde_String::convertCharset($attributes, $this->_params['charset']);
+ }
+
+ function _getAllTicketAttributesWithNames($ticket_id)
+ {
+ $query = 'SELECT d.attribute_id, d.attribute_name, '
+ . 'd.attribute_description, d.attribute_type, d.attribute_params, '
+ . 'd.attribute_required, a.attribute_value '
+ . 'FROM whups_attributes_desc d '
+ . 'LEFT JOIN whups_tickets t ON (t.ticket_id = ?) '
+ . 'LEFT OUTER JOIN whups_attributes a '
+ . 'ON (d.attribute_id = a.attribute_id AND a.ticket_id = ?) '
+ . 'WHERE d.type_id = t.type_id ORDER BY d.attribute_name';
+ $values = array($ticket_id, $ticket_id);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getAllTicketAttributesWithNames(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ $attributes = $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ if (is_a($attributes, 'PEAR_Error')) {
+ Horde::logMessage($attributes, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $attributes;
+ }
+
+ foreach ($attributes as $id => $attribute) {
+ $attributes[$id]['attribute_name'] = Horde_String::convertCharset(
+ $attribute['attribute_name'], $this->_params['charset']);
+ $attributes[$id]['attribute_description'] = Horde_String::convertCharset(
+ $attribute['attribute_description'], $this->_params['charset']);
+ $attributes[$id]['attribute_type'] =
+ empty($attribute['attribute_type'])
+ ? 'text' : $attribute['attribute_type'];
+ $attributes[$id]['attribute_params'] = Horde_String::convertCharset(
+ @unserialize($attribute['attribute_params']),
+ $this->_params['charset']);
+ $attributes[$id]['attribute_required'] =
+ (bool)$attribute['attribute_required'];
+ }
+
+ return $attributes;
+ }
+
+ function getOwners($ticketId)
+ {
+ if (is_array($ticketId)) {
+ // No need to run a query for an empty array, and it would
+ // result in an invalid SQL query anyway.
+ if (!count($ticketId)) {
+ return array();
+ }
+
+ $query = 'SELECT ticket_id AS id, ticket_owner AS owner '
+ . 'FROM whups_ticket_owners WHERE ticket_id '
+ . 'IN (' . str_repeat('?, ', count($ticketId) - 1) . '?)';
+ $values = $ticketId;
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getOwners(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getAll($query, $values, DB_FETCHMODE_ASSOC);
+ } else {
+ $query = 'SELECT ticket_owner, ticket_owner '
+ . 'FROM whups_ticket_owners WHERE ticket_id = ?';
+ $values = array((int)$ticketId);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::getOwners(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ return $this->_db->getAssoc($query, false, $values);
+ }
+ }
+
+ function updateLog($ticket_id, $user, $changes = array(),
+ $transactionId = null)
+ {
+ if (is_null($transactionId)) {
+ $transactionId = $this->newTransaction($user);
+ if (is_a($transactionId, 'PEAR_Error')) {
+ return $transactionId;
+ }
+ }
+
+ foreach ($changes as $type => $value) {
+ $log_id = $this->_write_db->nextId('whups_logs');
+ if (is_a($log_id, 'PEAR_Error')) {
+ return $log_id;
+ }
+
+ $query = 'INSERT INTO whups_logs (log_id, transaction_id, '
+ . 'ticket_id, log_timestamp, user_id, log_type, log_value, '
+ . 'log_value_num) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
+ $values = array(
+ (int)$log_id,
+ (int)$transactionId,
+ (int)$ticket_id,
+ time(),
+ (string)$user,
+ $type,
+ Horde_String::convertCharset((string)$value, Horde_Nls::getCharset(),
+ $this->_params['charset']),
+ (int)$value);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::updateLog(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ return $transactionId;
+ }
+
+ /**
+ * Create a new transaction id for associating related entries in
+ * the whups_logs table.
+ *
+ * @return integer New transaction id.
+ */
+ function newTransaction($creator, $creator_email = null)
+ {
+ $transactionId = $this->_write_db->nextId('whups_transactions');
+ if (is_a($transactionId, 'PEAR_Error')) {
+ return $transactionId;
+ }
+
+ if ((empty($creator) || $creator < 0) && !empty($creator_email)) {
+ $creator = '-' . $transactionId . '_transaction';
+ $query = 'INSERT INTO whups_guests (guest_id, guest_email)'
+ . ' VALUES (?, ?)';
+ $values = array((string)$creator, $creator_email);
+ Horde::logMessage(
+ sprintf('Whups_Driver_sql::newTransaction(): query="%s"; values="%s"',
+ $query, implode(',', $values)),
+ __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ $result = $this->_write_db->query($query, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $result;
+ }
+ }
+
+ return $transactionId;
+ }
+
+ /**
+ * Return the db object we're using.
+ *
+ * return DB Database object.
+ */
+ function getDb()
+ {
+ return $this->_db;
+ }
+
+ /**
+ */
+ function initialise()
+ {
+ Horde::assertDriverConfig($this->_params, 'tickets',
+ array('phptype'));
+
+ if (!isset($this->_params['database'])) {
+ $this->_params['database'] = '';
+ }
+ if (!isset($this->_params['username'])) {
+ $this->_params['username'] = '';
+ }
+ if (!isset($this->_params['hostspec'])) {
+ $this->_params['hostspec'] = '';
+ }
+
+ /* Connect to the SQL server using the supplied parameters. */
+ require_once 'DB.php';
+ $this->_write_db = &DB::connect($this->_params,
+ array('persistent' => !empty($this->_params['persistent'])));
+ if (is_a($this->_write_db, 'PEAR_Error')) {
+ Horde::fatal($this->_write_db, __FILE__, __LINE__);
+ }
+
+ // Set DB portability options.
+ switch ($this->_write_db->phptype) {
+ case 'mssql':
+ $this->_write_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS | DB_PORTABILITY_RTRIM);
+ break;
+ default:
+ $this->_write_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS);
+ }
+
+ /* Check if we need to set up the read DB connection
+ * seperately. */
+ if (!empty($this->_params['splitread'])) {
+ $params = array_merge($this->_params, $this->_params['read']);
+ $this->_db = &DB::connect($params,
+ array('persistent' => !empty($params['persistent'])));
+ if (is_a($this->_db, 'PEAR_Error')) {
+ Horde::fatal($this->_db, __FILE__, __LINE__);
+ }
+
+ // Set DB portability options.
+ switch ($this->_db->phptype) {
+ case 'mssql':
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS | DB_PORTABILITY_RTRIM);
+ break;
+ default:
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS);
+ }
+ } else {
+ /* Default to the same DB handle for reads. */
+ $this->_db =& $this->_write_db;
+ }
+
+ return true;
+ }
+
+ function _generateWhere($table, $fields, &$info, $type)
+ {
+ $where = '';
+ $this->_mapFields($info);
+
+ foreach ($fields as $field) {
+ if (isset($info[$field])) {
+ $prop = $info[$field];
+ if (is_array($info[$field])) {
+ $clauses = array();
+ foreach ($prop as $pprop) {
+ if (@settype($pprop, $type)) {
+ $clauses[] = "$table.$field = " . $this->_write_db->quote($pprop);
+ }
+ }
+ if (count($clauses)) {
+ $where = $this->_addWhere($where, true, implode(' OR ', $clauses));
+ }
+ } else {
+ $success = @settype($prop, $type);
+ $where = $this->_addWhere($where, !is_null($prop) && $success, "$table.$field = " . $this->_write_db->quote($prop));
+ }
+ }
+ }
+
+ foreach ($fields as $field) {
+ if (isset($info["not$field"])) {
+ $prop = $info["not$field"];
+
+ if (strpos($prop, ',') === false) {
+ $success = @settype($prop, $type);
+ $where = $this->_addWhere($where, $prop && $success, "$table.$field <> " . $this->_write_db->quote($prop));
+ } else {
+ $set = explode(',', $prop);
+
+ foreach ($set as $prop) {
+ $success = @settype($prop, $type);
+ $where = $this->_addWhere($where, $prop && $success, "$table.$field <> " . $this->_write_db->quote($prop));
+ }
+ }
+ }
+ }
+
+ return $where;
+ }
+
+ function _mapFields(&$info)
+ {
+ foreach ($info as $key => $val) {
+ if ($key === 'id') {
+ $info['ticket_id'] = $info['id'];
+ unset($info['id']);
+ } elseif ($key === 'state' ||
+ $key === 'type' ||
+ $key === 'queue' ||
+ $key === 'priority') {
+ $info[$key . '_id'] = $info[$key];
+ unset($info[$key]);
+ } elseif ($key === 'requester') {
+ $info['user_id_' . $key] = $info[$key];
+ unset($info[$key]);
+ }
+ }
+ }
+
+ function _addWhere($where, $condition, $clause, $conjunction = 'AND')
+ {
+ if (!empty($condition)) {
+ if (!empty($where)) {
+ $where .= " $conjunction ";
+ }
+
+ $where .= "($clause)";
+ }
+
+ return $where;
+ }
+
+ function _addDateWhere($where, $data, $type)
+ {
+ if (is_array($data)) {
+ if (!empty($data['from'])) {
+ $where = $this->_addWhere($where, true,
+ $type . ' >= ' . (int)$data['from']);
+ }
+ if (!empty($data['to'])) {
+ $where = $this->_addWhere($where, true,
+ $type . ' <= ' . (int)$data['to']);
+ }
+ return $where;
+ }
+
+ return $this->_addWhere($where, true, $type . ' = ' . (int)$data);
+ }
+
+ function _prefixTableToColumns($table, $columns)
+ {
+ $join = "";
+
+ $clause = '';
+ foreach ($columns as $column) {
+ $clause .= "$join$table.$column";
+ $join = ', ';
+ }
+
+ return $clause;
+ }
+
+}
--- /dev/null
+<?php
+
+/** Horde_Form_Action */
+require_once 'Horde/Form/Action.php';
+
+/**
+ * Horde_Form_Action_whups_reload is a Horde_Form Action that reloads the
+ * form with the current (not the original) value after the form element
+ * that the action is attached to is modified.
+ *
+ * $Horde: whups/lib/Forms/Action.php,v 1.2 2009/01/06 18:02:34 jan Exp $
+ *
+ * Copyright 2008-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ * @package Horde_Form
+ */
+class Horde_Form_Action_whups_reload extends Horde_Form_Action {
+
+ var $_trigger = array('onchange');
+
+ function getActionScript($form, $renderer, $varname)
+ {
+ Horde::addScriptFile('prototype.js', 'horde', true);
+ Horde::addScriptFile('effects.js', 'horde', true);
+ Horde::addScriptFile('redbox.js', 'horde', true);
+ return 'if (this.value) { document.' . $form->getName()
+ . '.formname.value=\'' . $this->_params['formname']
+ . '\'; RedBox.loading(); document.' . $form->getName()
+ . '.submit() }';
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/Forms/AddComment.php,v 1.5 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @package Whups
+ */
+class AddCommentForm extends Horde_Form {
+
+ function AddCommentForm(&$vars, $title = '')
+ {
+ global $conf;
+
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+
+ if (!Horde_Auth::getAuth()) {
+ $this->addVariable(_("Your Email Address"), 'user_email', 'email', true);
+ if (!empty($conf['guests']['captcha'])) {
+ $this->addVariable(_("Spam protection"), 'captcha', 'figlet', true, null, null, array(Whups::getCAPTCHA(!$this->isSubmitted()), $conf['guests']['figlet_font']));
+ }
+ }
+ $this->addVariable(_("Comment"), 'newcomment', 'longtext', false);
+ $this->addVariable(_("Attachment"), 'newattachment', 'file', false);
+ $this->addVariable(_("Watch this ticket"), 'add_watch', 'boolean', false);
+
+ /* Group restrictions. */
+ if (Horde_Auth::isAdmin('whups:admin') ||
+ $GLOBALS['perms']->hasPermission('whups:hiddenComments', Horde_Auth::getAuth(), Horde_Perms::EDIT)) {
+ $groups = &Group::singleton();
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ if ($mygroups) {
+ foreach (array_keys($mygroups) as $gid) {
+ $grouplist[$gid] = $groups->getGroupName($gid, true);
+ }
+ asort($grouplist);
+ $grouplist = array_merge(array(0 => _("This comment is visible to everyone")), $grouplist);
+ $this->addVariable(_("Make this comment visible only to members of a group?"), 'group', 'enum', true, false, null, array($grouplist));
+ }
+ }
+ }
+
+ function validate(&$vars, $canAutoFill = false)
+ {
+ global $conf;
+
+ if (!parent::validate($vars, $canAutoFill)) {
+ if (!Horde_Auth::getAuth() && !empty($conf['guests']['captcha'])) {
+ $vars->remove('captcha');
+ $this->removeVariable($varname = 'captcha');
+ $this->insertVariableBefore('newcomment', _("Spam protection"), 'captcha', 'figlet', true, null, null, array(Whups::getCAPTCHA(true), $conf['guests']['figlet_font']));
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains any general Horde_Form classes for administration
+ * purposes that don't have have their own file in the Admin/ subdirectory.
+ *
+ * $Horde: whups/lib/Forms/Admin.php,v 1.17 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class SendReminderForm extends Horde_Form {
+
+ function SendReminderForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Send Reminders"));
+
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::EDIT);
+ if (count($queues)) {
+ $modtype = 'enum';
+ $type_params = array($queues);
+ } else {
+ $modtype = 'invalid';
+ $type_params = array(_("There are no queues available."));
+ }
+
+ $this->addVariable(_("Send only for this list of ticket ids"), 'id', 'intlist', false);
+ $this->addVariable(_("For tickets from these queues"), 'queue', $modtype, false, false, null, $type_params);
+
+ $cats = $whups_driver->getCategories();
+ unset($cats['resolved']);
+ $categories = &$this->addVariable(_("For tickets which are"), 'category', 'multienum', false, false, null, array($cats, 3));
+ $categories->setDefault(array('assigned'));
+
+ $this->addVariable(_("Unassigned tickets"), 'unassigned', 'email', false, false, _("If you select any tickets that do not have an owner, who should we send email to?"));
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for attribute administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Attribute.php,v 1.3 2009/01/06 18:02:35 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddAttributeDescForm extends Horde_Form {
+
+ function AddAttributeDescForm(&$vars)
+ {
+ require_once dirname(__FILE__) . '/../Action.php';
+
+ parent::Horde_Form($vars, _("Add Attribute"));
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Attribute Name"), 'attribute_name', 'text', true);
+ $this->addVariable(_("Attribute Description"), 'attribute_description',
+ 'text', true);
+ $this->addVariable(_("Required Attribute?"), 'attribute_required',
+ 'boolean', false);
+
+ $v = &$this->addVariable(_("Attribute Type"), 'attribute_type', 'enum',
+ true, false, null,
+ array(Whups::fieldTypeNames()));
+ $v->setDefault('text');
+ $v->setAction(Horde_Form_Action::factory(
+ 'whups_reload',
+ array('formname' => 'addattributedescform_reload')));
+
+ $type = $vars->get('attribute_type');
+ if (empty($type)) {
+ $type = 'text';
+ }
+ foreach (Whups::fieldTypeParams($type) as $param => $info) {
+ $this->addVariable($info['label'],
+ 'attribute_params[' . $param . ']',
+ $info['type'], false);
+ }
+ }
+
+}
+
+class EditAttributeDescStep1Form extends Horde_Form {
+
+ function EditAttributeDescStep1Form(&$vars)
+ {
+ parent::Horde_Form($vars, _("Edit or Delete Attributes"));
+ $this->setButtons(array(_("Edit Attribute"), _("Delete Attribute")));
+
+ $attributes = $GLOBALS['whups_driver']->getAttributesForType(
+ $vars->get('type'));
+ if ($attributes) {
+ $params = array();
+ foreach ($attributes as $key => $attribute) {
+ $params[$key] = $attribute['human_name'];
+ }
+ $stype = 'enum';
+ $type_params = array($params);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no attribute types to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Attribute Name"), 'attribute', $stype, true,
+ false, null, $type_params);
+ }
+
+}
+
+class EditAttributeDescStep2Form extends Horde_Form {
+
+ function EditAttributeDescStep2Form(&$vars)
+ {
+ require_once dirname(__FILE__) . '/../Action.php';
+
+ parent::Horde_Form($vars, _("Edit Attribute"));
+
+ $attribute = $vars->get('attribute');
+ $info = $GLOBALS['whups_driver']->getAttributeDesc($attribute);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'attribute', 'int', true, true);
+ $pname = &$this->addVariable(_("Attribute Name"), 'attribute_name',
+ 'text', true);
+ $pname->setDefault($info['attribute_name']);
+ $pdesc = &$this->addVariable(_("Attribute Description"),
+ 'attribute_description', 'text', true);
+ $pdesc->setDefault($info['attribute_description']);
+ $preq = &$this->addVariable(_("Required Attribute?"),
+ 'attribute_required', 'boolean', false);
+ $preq->setDefault($info['attribute_required']);
+
+ $ptype = &$this->addVariable(_("Attribute Type"), 'attribute_type',
+ 'enum', true, false, null,
+ array(Whups::fieldTypeNames()));
+ $ptype->setAction(
+ Horde_Form_Action::factory(
+ 'whups_reload',
+ array('formname' => 'editattributedescstep2form_reload')));
+ $ptype->setDefault($info['attribute_type']);
+
+ $type = $vars->get('attribute_type');
+ if (empty($type)) {
+ $type = $info['attribute_type'];
+ }
+ foreach (Whups::fieldTypeParams($type) as $param => $param_info) {
+ $pparam = &$this->addVariable($param_info['label'],
+ 'attribute_params[' . $param . ']',
+ $param_info['type'], false);
+ if (isset($info['attribute_params'][$param])) {
+ $pparam->setDefault($info['attribute_params'][$param]);
+ }
+ }
+ }
+
+}
+
+class DeleteAttributeDescForm extends Horde_Form {
+
+ function DeleteAttributeDescForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Delete Attribute Confirmation"));
+
+ $attribute = $vars->get('attribute');
+ $info = $GLOBALS['whups_driver']->getAttributeDesc($attribute);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'attribute', 'int', true, true);
+ $pname = &$this->addVariable(_("Attribute Name"), 'attribute_name',
+ 'text', false, true);
+ $pname->setDefault($info['attribute_name']);
+ $pdesc = &$this->addVariable(_("Attribute Description"),
+ 'attribute_description', 'text', false,
+ true);
+ $pdesc->setDefault($info['attribute_description']);
+ $this->addVariable(
+ _("Really delete this attribute? This may cause data problems!"),
+ 'yesno', 'enum', true, false, null,
+ array(array(0 => _("No"), 1 => _("Yes"))));
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for priority administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Priority.php,v 1.2 2009/01/06 18:02:35 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddPriorityForm extends Horde_Form {
+
+ function AddPriorityForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add Priority"));
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Priority Name"), 'name', 'text', true);
+ $this->addVariable(_("Priority Description"), 'description', 'text', true);
+ }
+
+}
+
+class EditPriorityStep1Form extends Horde_Form {
+
+ function EditPriorityStep1Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Edit or Delete Priorities"));
+ $this->setButtons(array(_("Edit Priority"), _("Delete Priority")));
+
+ $priorities = $whups_driver->getPriorities($vars->get('type'));
+ if ($priorities) {
+ $stype = 'enum';
+ $type_params = array($priorities);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no priorities to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Priority Name"), 'priority', $stype, true, false, null, $type_params);
+ }
+
+}
+
+class EditPriorityStep2Form extends Horde_Form {
+
+ function EditPriorityStep2Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Edit Priority"));
+
+ $priority = $vars->get('priority');
+ $info = $whups_driver->getPriority($priority);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'priority', 'int', true, true);
+
+ $pname = &$this->addVariable(_("Priority Name"), 'name', 'text', true);
+ $pname->setDefault($info['name']);
+
+ $pdesc = &$this->addVariable(_("Priority Description"), 'description', 'text', true);
+ $pdesc->setDefault($info['description']);
+ }
+
+}
+
+class DefaultPriorityForm extends Horde_Form {
+
+ function DefaultPriorityForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Set Default Priority"));
+
+ $this->setButtons(array(_("Set Default Priority")));
+
+ $priorities = $GLOBALS['whups_driver']->getPriorities($vars->get('type'));
+ if ($priorities) {
+ $stype = 'enum';
+ $type_params = array($priorities);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no priorities to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $var = &$this->addVariable(_("Priority Name"), 'priority', $stype, false,
+ false, null, $type_params);
+ $var->setDefault($GLOBALS['whups_driver']->getDefaultPriority($vars->get('type')));
+ }
+
+}
+
+class DeletePriorityForm extends Horde_Form {
+
+ function DeletePriorityForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Delete Priority Confirmation"));
+
+ $priority = $vars->get('priority');
+ $info = $whups_driver->getPriority($priority);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'priority', 'int', true, true);
+
+ $pname = &$this->addVariable(_("Priority Name"), 'name', 'text', false, true);
+ $pname->setDefault($info['name']);
+
+ $pdesc = &$this->addVariable(_("Priority Description"), 'description', 'text', false, true);
+ $pdesc->setDefault($info['description']);
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(_("Really delete this priority? This may cause data problems!"), 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for queue administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Queue.php,v 1.6 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddQueueForm extends Horde_Form {
+
+ function AddQueueForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add Queue"));
+ $this->appendButtons(_("Add Queue"));
+
+ $this->addVariable(_("Queue Name"), 'name', 'text', true);
+ $this->addVariable(_("Queue Description"), 'description', 'text', true);
+ $this->addVariable(
+ _("Queue Slug"), 'slug', 'text', false, false,
+ sprintf(_("Slugs allows direct access to this queue's open tickets by visiting: %s. <br /> Slug names may contain only letters, numbers or the _ (underscore) character."),
+ Horde::applicationUrl('queue/slugname', true)),
+ array('/^[a-zA-Z1-9_]*$/'));
+ $this->addVariable(_("Queue Email"), 'email', 'email', false, false,
+ _("This email address will be used when sending notifications for any queue tickets."));
+ }
+
+}
+
+class EditQueueStep1Form extends Horde_Form {
+
+ function EditQueueStep1Form(&$vars)
+ {
+ global $whups_driver, $registry;
+
+ if ($registry->hasMethod('tickets/listQueues') == $registry->getApp()) {
+ parent::Horde_Form($vars, _("Edit or Delete Queues"));
+ $this->setButtons(array(_("Edit Queue"), _("Delete Queue")));
+ } else {
+ parent::Horde_Form($vars, _("Edit Queues"));
+ $this->setButtons(array(_("Edit Queue")));
+ }
+
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue',
+ Horde_Perms::EDIT);
+ if ($queues) {
+ $modtype = 'enum';
+ $type_params = array($queues);
+ } else {
+ $modtype = 'invalid';
+ $type_params = array(_("There are no queues to edit"));
+ }
+
+ $this->addVariable(_("Queue Name"), 'queue', $modtype, true, false,
+ null, $type_params);
+ }
+
+}
+
+class EditQueueStep2Form extends Horde_Form {
+
+ function EditQueueStep2Form(&$vars)
+ {
+ global $whups_driver, $registry;
+
+ parent::Horde_Form($vars);
+
+ $queue = $vars->get('queue');
+ $info = $whups_driver->getQueue($queue);
+ if (is_a($info, 'PEAR_Error')) {
+ $this->addVariable(_("Invalid Queue"), 'invalid', 'invalid', true,
+ false, null, array(_("Invalid Queue")));
+ return;
+ }
+
+ $this->setTitle(sprintf(_("Edit %s"), $info['name']));
+ $this->addHidden('', 'queue', 'int', true, true);
+
+ $mname = &$this->addVariable(_("Queue Name"), 'name', 'text', true,
+ $info['readonly']);
+ $mname->setDefault($info['name']);
+
+ $mdesc = &$this->addVariable(_("Queue Description"), 'description',
+ 'text', true, $info['readonly']);
+ $mdesc->setDefault($info['description']);
+
+ $mslug = &$this->addVariable(_("Queue Slug"), 'slug', 'text', false,
+ $info['readonly']);
+ $mslug->setDefault($info['slug']);
+
+ $memail = &$this->addVariable(_("Queue Email"), 'email', 'email',
+ false, $info['readonly']);
+ $memail->setDefault($info['email']);
+
+ $types = $whups_driver->getAllTypes();
+ $mtypes = &$this->addVariable(
+ _("Ticket Types associated with this Queue"), 'types', 'set', true,
+ false, null, array($types));
+ $mtypes->setDefault(array_keys($whups_driver->getTypes($queue)));
+ $mdefaults = &$this->addVariable(_("Default Ticket Type"), 'default',
+ 'enum', false, false, null,
+ array($types));
+ $mdefaults->setDefault($whups_driver->getDefaultType($queue));
+
+ /* Versioned and version link. */
+ $mversioned = &$this->addVariable(
+ _("Keep a set of versions for this queue?"), 'versioned',
+ 'boolean', false, $info['readonly']);
+ $mversioned->setDefault($info['versioned']);
+ if ($registry->hasMethod('tickets/listVersions') == $registry->getApp()) {
+ $versionlink = array(
+ 'text' => _("Edit the versions for this queue"),
+ 'url' => Horde_Util::addParameter(Horde::applicationUrl('admin/?formname=editversionstep1form'), 'queue', $queue));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($versionlink));
+ }
+
+ /* Usertype and usertype link. */
+ $users = $whups_driver->getQueueUsers($queue);
+ $f_users = array();
+ foreach ($users as $user) {
+ $f_users[$user] = Whups::formatUser($user);
+ }
+ asort($f_users);
+ $musers = &$this->addVariable(_("Users responsible for this Queue"),
+ 'users', 'set', false, true, null,
+ array($f_users));
+ $musers->setDefault($whups_driver->getQueueUsers($queue));
+ $userlink = array(
+ 'text' => _("Edit the users responsible for this queue"),
+ 'url' => Horde_Util::addParameter(Horde::applicationUrl('admin/?formname=edituserform'), 'queue', $queue));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($userlink));
+
+ /* Perms link. */
+ if (Horde_Auth::isAdmin('whups:admin', Horde_Perms::EDIT)) {
+ $permslink = array(
+ 'text' => _("Edit the permissions on this queue"),
+ 'url' => Horde_Util::addParameter(Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/admin/perms/edit.php'), 'category', "whups:queues:$queue"), 'autocreate', '1'));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($permslink));
+ }
+ }
+
+}
+
+class DeleteQueueForm extends Horde_Form {
+
+ function DeleteQueueForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Delete Queue Confirmation"));
+
+ $queue = $vars->get('queue');
+ $info = $whups_driver->getQueue($queue);
+
+ $this->addHidden('', 'queue', 'int', true, true);
+
+ $mname = &$this->addVariable(_("Queue Name"), 'name', 'text', false,
+ true);
+ $mname->setDefault($info['name']);
+
+ $mdesc = &$this->addVariable(_("Queue Description"), 'description',
+ 'text', false, true);
+ $mdesc->setDefault($info['description']);
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(
+ _("Really delete this queue? This may cause data problems!"),
+ 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for form reply administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Reply.php,v 1.5 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2008-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+
+class AddReplyForm extends Horde_Form {
+
+ function AddReplyForm(&$vars)
+ {
+ require_once dirname(__FILE__) . '/../Action.php';
+
+ parent::Horde_Form($vars, _("Add Form Reply"));
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Form Reply Name"), 'reply_name', 'text', true);
+ $this->addVariable(_("Form Reply Text"), 'reply_text', 'longtext', true);
+ }
+
+}
+
+class EditReplyStep1Form extends Horde_Form {
+
+ function EditReplyStep1Form(&$vars)
+ {
+ parent::Horde_Form($vars, _("Edit or Delete Form Replies"));
+ $this->setButtons(array(_("Edit Form Reply"), _("Delete Form Reply")));
+
+ $replies = $GLOBALS['whups_driver']->getReplies($vars->get('type'));
+ if ($replies) {
+ $params = array();
+ foreach ($replies as $key => $reply) {
+ $params[$key] = $reply['reply_name'];
+ }
+ $stype = 'enum';
+ $type_params = array($params);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no form replies to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("Form Reply Name"), 'reply', $stype, true,
+ false, null, $type_params);
+ }
+
+}
+
+class EditReplyStep2Form extends Horde_Form {
+
+ function EditReplyStep2Form(&$vars)
+ {
+ require_once dirname(__FILE__) . '/../Action.php';
+
+ parent::Horde_Form($vars, _("Edit Form Reply"));
+
+ $reply = $vars->get('reply');
+ $info = $GLOBALS['whups_driver']->getReply($reply);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'reply', 'int', true, true);
+ $pname = &$this->addVariable(_("Form Reply Name"), 'reply_name',
+ 'text', true);
+ $pname->setDefault($info['reply_name']);
+ $ptext = &$this->addVariable(_("Form Reply Text"), 'reply_text',
+ 'longtext', true);
+ $ptext->setDefault($info['reply_text']);
+
+ /* Perms link. */
+ if (Horde_Auth::isAdmin('whups:admin', Horde_Perms::EDIT)) {
+ $permslink = array(
+ 'text' => _("Edit the permissions on this form reply"),
+ 'url' => Horde_Util::addParameter(Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/admin/perms/edit.php'), 'category', "whups:replies:$reply"), 'autocreate', '1'));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($permslink));
+ }
+ }
+
+}
+
+class DeleteReplyForm extends Horde_Form {
+
+ function DeleteReplyForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Delete Form Reply Confirmation"));
+
+ $reply = $vars->get('reply');
+ $info = $GLOBALS['whups_driver']->getReply($reply);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'reply', 'int', true, true);
+ $pname = &$this->addVariable(_("Form Reply Name"), 'reply_name',
+ 'text', false, true);
+ $pname->setDefault($info['reply_name']);
+ $ptext = &$this->addVariable(_("Form Reply Text"),
+ 'reply_text', 'text', false,
+ true);
+ $ptext->setDefault($info['reply_text']);
+ $this->addVariable(_("Really delete this form reply?"), 'yesno', 'enum',
+ true, false, null,
+ array(array(0 => _("No"), 1 => _("Yes"))));
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for ticket state administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/State.php,v 1.2 2009/01/06 18:02:35 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddStateForm extends Horde_Form {
+
+ function AddStateForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add State"));
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("State Name"), 'name', 'text', true);
+ $this->addVariable(_("State Description"), 'description', 'text', true);
+ $this->addVariable(_("State Category"), 'category', 'enum', false, false, null, array($GLOBALS['whups_driver']->getCategories()));
+ }
+
+}
+
+class EditStateStep1Form extends Horde_Form {
+
+ function EditStateStep1Form(&$vars)
+ {
+ parent::Horde_Form($vars, _("Edit or Delete States"));
+ $this->setButtons(array(_("Edit State"), _("Delete State")));
+
+ $states = $GLOBALS['whups_driver']->getStates($vars->get('type'));
+ if ($states) {
+ $stype = 'enum';
+ $type_params = array($states);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no states to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addVariable(_("State Name"), 'state', $stype, false, false, null, $type_params);
+ }
+
+}
+
+class EditStateStep2Form extends Horde_Form {
+
+ function EditStateStep2Form(&$vars)
+ {
+ parent::Horde_Form($vars, _("Edit State"));
+
+ $state = $vars->get('state');
+ $info = $GLOBALS['whups_driver']->getState($state);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'state', 'int', true, true);
+
+ $sname = &$this->addVariable(_("State Name"), 'name', 'text', true);
+ $sname->setDefault($info['name']);
+
+ $sdesc = &$this->addVariable(_("State Description"), 'description', 'text', true);
+ $sdesc->setDefault($info['description']);
+
+ $scat = &$this->addVariable(_("State Category"), 'category', 'enum', true, false, null, array($GLOBALS['whups_driver']->getCategories()));
+ $scat->setDefault($info['category']);
+ }
+
+}
+
+class DefaultStateForm extends Horde_Form {
+
+ function DefaultStateForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Set Default State"));
+
+ $this->setButtons(array(_("Set Default State")));
+
+ $states = $GLOBALS['whups_driver']->getStates(
+ $vars->get('type'),
+ array('unconfirmed', 'new', 'assigned'));
+ if ($states) {
+ $stype = 'enum';
+ $type_params = array($states);
+ } else {
+ $stype = 'invalid';
+ $type_params = array(_("There are no states to edit"));
+ }
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $var = &$this->addVariable(_("State Name"), 'state', $stype, false,
+ false, null, $type_params);
+ $var->setDefault($GLOBALS['whups_driver']->getDefaultState($vars->get('type')));
+ }
+
+}
+
+class DeleteStateForm extends Horde_Form {
+
+ function DeleteStateForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Delete State Confirmation"));
+
+ $state = $vars->get('state');
+ $info = $GLOBALS['whups_driver']->getState($state);
+
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'state', 'int', true, true);
+
+ $sname = &$this->addVariable(_("State Name"), 'name', 'text', false, true);
+ $sname->setDefault($info['name']);
+
+ $sdesc = &$this->addVariable(_("State Description"), 'description', 'text', false, true);
+ $sdesc->setDefault($info['description']);
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(_("Really delete this state? This may cause data problems!"), 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for ticket type administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Type.php,v 1.3 2009/01/06 18:02:35 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddTypeStep1Form extends Horde_Form {
+
+ function AddTypeStep1Form(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add Type"));
+ $this->appendButtons(_("Add Type"));
+ $this->addVariable(_("Type Name"), 'name', 'text', true);
+ $this->addVariable(_("Type Description"), 'description', 'text', true);
+ }
+
+}
+
+class EditTypeStep1Form extends Horde_Form {
+
+ function EditTypeStep1Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Edit or Delete Types"));
+ $this->setButtons(array(_("Edit Type"),
+ _("Clone Type"),
+ _("Delete Type")));
+
+ $types = $whups_driver->getAllTypes();
+ if ($types) {
+ $ttype = 'enum';
+ $type_params = array($types);
+ } else {
+ $ttype = 'invalid';
+ $type_params = array(_("There are no types to edit"));
+ }
+
+ $this->addVariable(_("Type Name"), 'type', $ttype, true, false, null,
+ $type_params);
+ }
+
+}
+
+class EditTypeStep2Form extends Horde_Form {
+
+ function EditTypeStep2Form(&$vars)
+ {
+ global $whups_driver;
+
+ $type = $vars->get('type');
+ $info = $whups_driver->getType($type);
+
+ parent::Horde_Form($vars, sprintf(_("Edit %s"), $info['name']));
+
+ $this->addHidden('', 'type', 'int', true, true);
+
+ $tname = &$this->addVariable(_("Type Name"), 'name', 'text', true);
+ $tname->setDefault($info['name']);
+
+ $tdesc = &$this->addVariable(_("Type Description"), 'description',
+ 'text', true);
+ $tdesc->setDefault($info['description']);
+
+ /* States. */
+ $states = $whups_driver->getStates($type);
+ $tstates = &$this->addVariable(_("States for this Type"), 'state',
+ 'set', false, true, null,
+ array($states));
+ $tstates->setDefault(array_keys($states));
+ $statelink = array(
+ array('text' => _("Edit States"),
+ 'url' => Horde::applicationUrl('admin/?formname=editstatestep1form&type=' . $type)));
+ if (!count($states)) {
+ $statelink[] = array(
+ 'text' => _("Create Default States"),
+ 'url' => Horde::applicationUrl('admin/?formname=createdefaultstates&type=' . $type));
+ }
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($statelink));
+
+ /* Priorities. */
+ $priorities = $whups_driver->getPriorities($type);
+ $tpriorities = &$this->addVariable(_("Priorities for this Type"),
+ 'priority', 'set', false, true, null,
+ array($priorities));
+ $tpriorities->setDefault(array_keys($priorities));
+ $prioritylink = array(
+ array('text' => _("Edit Priorities"),
+ 'url' => Horde::applicationUrl('admin/?formname=editprioritystep1form&type=' . $type)));
+ if (!count($priorities)) {
+ $prioritylink[] = array(
+ 'text' => _("Create Default Priorities"),
+ 'url' => Horde::applicationUrl('admin/?formname=createdefaultpriorities&type=' . $type));
+ }
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($prioritylink));
+
+ /* Attributes. */
+ $attributes = $whups_driver->getAttributesForType($type);
+ $params = array();
+ foreach ($attributes as $key => $attribute) {
+ $params[$key] = $attribute['human_name'];
+ }
+ $tattributes = &$this->addVariable(_("Attributes for this Type"),
+ 'attribute', 'set', false, true,
+ null, array($params));
+ $tattributes->setDefault(array_keys($attributes));
+ $attributelink = array(
+ 'text' => _("Edit Attributes"),
+ 'url' => Horde::applicationUrl('admin/?formname=editattributedescstep1form&type=' . $type));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($attributelink));
+
+ /* Form replies. */
+ $replies = $whups_driver->getReplies($type);
+ $params = array();
+ foreach ($replies as $key => $reply) {
+ $params[$key] = $reply['reply_name'];
+ }
+ $treplies = &$this->addVariable(_("Form Replies for this Type"),
+ 'reply', 'set', false, true, null,
+ array($params));
+ $treplies->setDefault(array_keys($replies));
+ $replylink = array(
+ 'text' => _("Edit Form Replies"),
+ 'url' => Horde::applicationUrl('admin/?formname=editreplystep1form&type=' . $type));
+ $this->addVariable('', 'link', 'link', false, true, null,
+ array($replylink));
+ }
+
+}
+
+class DeleteTypeForm extends Horde_Form {
+
+ function DeleteTypeForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Delete Type Confirmation"));
+
+ $type = $vars->get('type');
+ $info = $whups_driver->getType($type);
+
+ $this->addHidden('', 'type', 'int', true, true);
+
+ $tname = &$this->addVariable(_("Type Name"), 'name', 'text', false,
+ true);
+ $tname->setDefault($info['name']);
+
+ $tdesc = &$this->addVariable(_("Type Description"), 'description',
+ 'text', false, true);
+ $tdesc->setDefault($info['description']);
+
+ $states = $whups_driver->getStates($type);
+ $tstates = &$this->addVariable(_("States for this Type"), 'state',
+ 'set', false, true, null,
+ array($states));
+ $tstates->setDefault(array_keys($states));
+
+ $priorities = $whups_driver->getPriorities($type);
+ $tpriorities = &$this->addVariable(_("Priorities for this Type"),
+ 'priority', 'set', false, true, null,
+ array($priorities));
+ $tpriorities->setDefault(array_keys($priorities));
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(
+ _("Really delete this type? This may cause data problems!"),
+ 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+}
+
+class CloneTypeForm extends Horde_Form {
+
+ function CloneTypeForm(&$vars)
+ {
+ global $whups_driver;
+
+ $type = $vars->get('type');
+ $info = $whups_driver->getType($type);
+ parent::Horde_Form($vars,
+ sprintf(_("Make a clone of %s"), $info['name']));
+
+ $this->setButtons(_("Clone"));
+ $this->addHidden('', 'type', 'int', true, true);
+
+ $tname = &$this->addVariable(_("Name of the cloned copy"), 'name',
+ 'text', true);
+ $tname->setDefault(sprintf(_("Copy of %s"), $info['name']));
+
+ $tdesc = &$this->addVariable(_("Clone Description"), 'description',
+ 'text', true);
+ $tdesc->setDefault($info['description']);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for administrating responsible
+ * users.
+ *
+ * $Horde: whups/lib/Forms/Admin/User.php,v 1.3 2009/07/08 18:30:07 slusarz Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddUserForm extends Horde_Form {
+
+ function AddUserForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add Users"));
+
+ $this->addHidden('', 'queue', 'int', true, true);
+
+ global $conf, $whups_driver;
+
+ $auth = Horde_Auth::singleton($conf['auth']['driver']);
+ if ($auth->hasCapability('list')) {
+ $queue = $vars->get('queue');
+ $current = $whups_driver->getQueueUsers($queue);
+
+ $list = $auth->listUsers();
+ if (is_a($list, 'PEAR_Error')) {
+ $this->addVariable(_("User"), 'user', 'invalid', true, false, null,
+ array(sprintf(_("There was an error listing users: %s; %s"), $list->getMessage(), $list->getUserInfo())));
+ } else {
+ sort($list);
+ $users = array();
+ foreach ($list as $user) {
+ if (!isset($current[$user])) {
+ $users[$user] = Horde_Auth::removeHook($user);
+ }
+ }
+ $this->addVariable(_("User"), 'user', 'multienum', true, false, null, array($users));
+ }
+ } else {
+ $this->addVariable(_("User"), 'user', 'text', true);
+ }
+ }
+
+}
+
+class EditUserStep1Form extends Horde_Form {
+
+ function EditUserStep1Form(&$vars)
+ {
+ global $whups_driver;
+
+ $this->appendButtons(_("Remove User"));
+
+ parent::Horde_Form($vars, _("Responsible Users"));
+
+ $queue = $vars->get('queue');
+ $users = $whups_driver->getQueueUsers($queue);
+ $f_users = array();
+ foreach ($users as $user) {
+ $f_users[$user] = Whups::formatUser($user);
+ }
+ if ($f_users) {
+ asort($f_users);
+ $usertype = 'enum';
+ $type_params = array($f_users);
+ } else {
+ $usertype = 'invalid';
+ $type_params = array(_("There are no users responsible for this queue."));
+ }
+
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addVariable(_("Users responsible for this queue"), 'user', $usertype, true, false, null, $type_params);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes for version administration.
+ *
+ * $Horde: whups/lib/Forms/Admin/Version.php,v 1.3 2009/09/07 08:58:18 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+
+class AddVersionForm extends Horde_Form {
+
+ function AddVersionForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Add Version"));
+
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addVariable(_("Version Name"), 'name', 'text', true);
+ $this->addVariable(_("Version Description"), 'description', 'text', true);
+ $vactive = &$this->addVariable(_("Version Active?"), 'active', 'boolean', false);
+ $vactive->setDefault(true);
+ }
+
+}
+
+class EditVersionStep1Form extends Horde_Form {
+
+ function EditVersionStep1Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Edit or Delete Versions"));
+ $this->setButtons(array(_("Edit Version"), _("Delete Version")));
+
+ $versions = $whups_driver->getVersions($vars->get('queue'), true);
+ if ($versions) {
+ $vtype = 'enum';
+ $type_params = array($versions);
+ } else {
+ $vtype = 'invalid';
+ $type_params = array(_("There are no versions to edit"));
+ }
+
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addVariable(_("Version Name"), 'version', $vtype, true, false, null, $type_params);
+ }
+
+}
+
+class EditVersionStep2Form extends Horde_Form {
+
+ function EditVersionStep2Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Edit Version"));
+
+ $version = $vars->get('version');
+ $info = $whups_driver->getVersion($version);
+
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addHidden('', 'version', 'int', true, true);
+
+ $vname = &$this->addVariable(_("Version Name"), 'name', 'text', true);
+ $vname->setDefault($info['name']);
+
+ $vdesc = &$this->addVariable(_("Version Description"), 'description', 'text', true);
+ $vdesc->setDefault($info['description']);
+ $vactive = &$this->addVariable(_("Version Active?"), 'active', 'boolean', false);
+ $vactive->setDefault($info['active']);
+ }
+
+}
+
+class DeleteVersionForm extends Horde_Form {
+
+ function DeleteVersionForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Delete Version Confirmation"));
+
+ $version = $vars->get('version');
+ $info = $whups_driver->getVersion($version);
+
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addHidden('', 'version', 'int', true, true);
+
+ $vname = &$this->addVariable(_("Version Name"), 'name', 'text', false, true);
+ $vname->setDefault($info['name']);
+
+ $vdesc = &$this->addVariable(_("Version Description"), 'description', 'text', false, true);
+ $vdesc->setDefault($info['description']);
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(_("Really delete this version? This may cause data problems!"), 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_Form classes to create a new ticket.
+ *
+ * $Horde: whups/lib/Forms/CreateTicket.php,v 1.25 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @package Whups
+ */
+
+/**
+ * @package Whups
+ */
+class CreateStep1Form extends Horde_Form {
+
+ var $_useFormToken = false;
+
+ function CreateStep1Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Create Ticket - Step 1"));
+
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue',
+ Horde_Perms::EDIT);
+ if (!$queues) {
+ $this->addVariable(
+ _("Queue Name"), 'queue', 'invalid', true, false, null,
+ array(_("There are no queues which you can create tickets in.")));
+ } else {
+ foreach (array_keys($queues) as $queue_id) {
+ $info = $whups_driver->getQueue($queue_id);
+ if (!empty($info['description'])) {
+ $queues[$queue_id] .= ' [' . $info['description'] . ']';
+ }
+ }
+
+ // Auto-select the only queue if only one option is available
+ if (count($queues) == 1) {
+ $vars->set('queue', array_pop(array_keys($queues)));
+ }
+
+ require_once 'Horde/Form/Action.php';
+ $queues = &$this->addVariable(_("Queue Name"), 'queue', 'enum',
+ true, false, null,
+ array($queues, _("Choose:")));
+ $queues->setAction(Horde_Form_Action::factory('submit'));
+ }
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class CreateStep2Form extends Horde_Form {
+
+ var $_useFormToken = false;
+
+ function CreateStep2Form(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, _("Create Ticket - Step 2"));
+
+ $types = $whups_driver->getTypes($vars->get('queue'));
+ $info = $whups_driver->getQueue($vars->get('queue'));
+ $type = $whups_driver->getDefaultType($vars->get('queue'));
+ if (count($types) == 0) {
+ $typetype = 'invalid';
+ $type_params = array(_("There are no ticket types associated with this queue; until there are, you cannot create any tickets in this queue."));
+ } else {
+ $typetype = 'enum';
+ $type_params = array($types);
+ if (empty($type) || !isset($types[$type])) {
+ $type_params[] = _("Choose:");
+ }
+ }
+ $types = &$this->addVariable(_("Ticket Type"), 'type', $typetype, true,
+ false, null, $type_params);
+ $types->setDefault($type);
+
+ if (!empty($info['versioned'])) {
+ $versions = $whups_driver->getVersions($vars->get('queue'));
+ if (count($versions) == 0) {
+ $vtype = 'invalid';
+ $v_params = array(_("This queue requires that you specify a version, but there are no versions associated with it. Until versions are created for this queue, you will not be able to create tickets."));
+ } else {
+ $vtype = 'enum';
+ $v_params = array($versions);
+ }
+ $this->addVariable(_("Queue Version"), 'version', $vtype, true,
+ false, null, $v_params);
+ } else {
+ require_once 'Horde/Form/Action.php';
+ $types->setAction(Horde_Form_Action::factory('submit'));
+ }
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class CreateStep3Form extends Horde_Form {
+
+ function CreateStep3Form(&$vars)
+ {
+ global $whups_driver, $conf;
+
+ parent::Horde_Form($vars, _("Create Ticket - Step 3"));
+
+ $states = $whups_driver->getStates($vars->get('type'), 'unconfirmed');
+ $attributes = $whups_driver->getAttributesForType($vars->get('type'));
+
+ $queue = $vars->get('queue');
+ $info = $whups_driver->getQueue($queue);
+
+ if (Horde_Auth::getAuth()) {
+ $states2 = $whups_driver->getStates($vars->get('type'),
+ array('new', 'assigned'));
+ if (is_array($states2)) {
+ $states = $states + $states2;
+ }
+ }
+
+ if (Whups::hasPermission($queue, 'queue', 'requester')) {
+ $this->addVariable(_("The Requester's Email Address"), 'user_email',
+ 'whups_email', false);
+ } elseif (!Horde_Auth::getAuth()) {
+ $this->addVariable(_("Your Email Address"), 'user_email', 'email',
+ true);
+ if (!empty($conf['guests']['captcha'])) {
+ $this->addVariable(
+ _("Spam protection"), 'captcha', 'figlet', true, null, null,
+ array(Whups::getCAPTCHA(!$this->isSubmitted()),
+ $conf['guests']['figlet_font']));
+ }
+ }
+
+ // Silently default the state if there is only one choice
+ if (count($states) == 1) {
+ $vars->set('state', reset(array_keys($states)));
+ $f_state = &$this->addHidden(_("Ticket State"), 'state', 'enum',
+ true, false, null, array($states));
+ } else {
+ $f_state = &$this->addVariable(_("Ticket State"), 'state', 'enum',
+ true, false, null, array($states));
+ $f_state->setDefault(
+ $whups_driver->getDefaultState($vars->get('type')));
+ }
+
+ $f_priority = &$this->addVariable(
+ _("Priority"), 'priority', 'enum', true, false, null,
+ array($whups_driver->getPriorities($vars->get('type'))));
+ $f_priority->setDefault(
+ $whups_driver->getDefaultPriority($vars->get('type')));
+ $this->addVariable(_("Due Date"), 'due', 'datetime', false, false);
+ $this->addVariable(_("Summary"), 'summary', 'text', true, false);
+ $this->addVariable(_("Attachment"), 'newattachment', 'file', false);
+ $this->addVariable(_("Description"), 'comment', 'longtext', true);
+ foreach ($attributes as $attribute_id => $attribute_value) {
+ $this->addVariable($attribute_value['human_name'],
+ 'attributes[' . $attribute_id . ']',
+ $attribute_value['type'],
+ $attribute_value['required'],
+ $attribute_value['readonly'],
+ $attribute_value['desc'],
+ $attribute_value['params']);
+ }
+ }
+
+ function validate(&$vars, $canAutoFill = false)
+ {
+ global $conf;
+
+ if (!parent::validate($vars, $canAutoFill)) {
+ if (!Horde_Auth::getAuth() && !empty($conf['guests']['captcha'])) {
+ $vars->remove('captcha');
+ $this->removeVariable($varname = 'captcha');
+ $this->insertVariableBefore(
+ 'state', _("Spam protection"), 'captcha', 'figlet', true,
+ null, null,
+ array(Whups::getCAPTCHA(true),
+ $conf['guests']['figlet_font']));
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class CreateStep4Form extends Horde_Form {
+
+ function CreateStep4Form(&$vars)
+ {
+ global $whups_driver, $conf;
+
+ parent::Horde_Form($vars, _("Create Ticket - Step 4"));
+
+ /* Preserve previously uploaded attachments. */
+ $this->addHidden('', 'deferred_attachment', 'text', false);
+
+ /* Groups. */
+ $groups = &Group::singleton();
+ if ($conf['prefs']['assign_all_groups']) {
+ $mygroups = $groups->listGroups();
+ } else {
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ }
+
+ $users = $whups_driver->getQueueUsers($vars->get('queue'));
+ $f_users = array();
+ foreach ($users as $user) {
+ $f_users['user:' . $user] = Whups::formatUser($user);
+ }
+
+ $f_groups = array();
+ if (count($mygroups)) {
+ foreach ($mygroups as $id => $group) {
+ $f_groups['group:' . $id] = $group;
+ }
+ }
+
+ if (count($f_users)) {
+ asort($f_users);
+ $owners = &$this->addVariable(_("Owners"), 'owners', 'multienum',
+ false, false, null, array($f_users));
+ $owners->setDefault($whups_driver->getOwners($vars->get('id')));
+ }
+
+ if (count($f_groups)) {
+ asort($f_groups);
+ $group_owners = &$this->addVariable(_("Group Owners"),
+ 'group_owners', 'multienum',
+ false, false, null,
+ array($f_groups));
+ $group_owners->setDefault(
+ $whups_driver->getOwners($vars->get('id')));
+ }
+
+ if (!count($f_users) && !count($f_groups)) {
+ $owner_params = array(
+ _("There are no users to which this ticket can be assigned."));
+ $this->addVariable(_("Owners"), 'owners', 'invalid', false, false,
+ null, $owner_params);
+ }
+ }
+
+}
+
+/**
+ * @package Horde_Form
+ */
+class Horde_Form_Type_whups_email extends Horde_Form_Type_email {}
--- /dev/null
+<?php
+/**
+ * Basic Ticket Editing form.
+ *
+ * $Horde: whups/lib/Forms/EditTicket.php,v 1.25 2009/08/27 09:25:26 jan Exp $
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+class EditTicketForm extends Horde_Form {
+
+ function EditTicketForm(&$vars, &$ticket, $title = '')
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $title);
+ $type = $vars->get('type');
+
+ $start_year = date('Y');
+ if (is_numeric($d = $vars->get('due'))) {
+ $start_year = min($start_year, date('Y', $d));
+ }
+
+ $fields = array('summary');
+
+ $qinfo = $whups_driver->getQueue($vars->get('queue'));
+ if (!empty($qinfo['versioned'])) {
+ $fields[] = 'version';
+ }
+
+ $fields = array_merge($fields, array('state', 'priority', 'due'));
+
+ $attributes = $ticket->addAttributes();
+ if (is_a($attributes, 'PEAR_Error')) {
+ $attributes = array();
+ }
+ foreach ($attributes as $attribute) {
+ $fields[] = 'attribute_' . $attribute['id'];
+ }
+ $fields = array_merge($fields, array('owner', 'attachments', 'comment'));
+
+ $grouped_fields = array($fields);
+ $grouped_hook = false;
+ try {
+ $grouped_fields = Horde::callHook('group_fields',
+ array($ticket->get('type'), $fields),
+ 'whups');
+ $grouped_hook = true;
+ } catch (Horde_Exception_HookNotSet $e) {
+ } catch (Horde_Exception $e) {
+ Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_ERR);
+ }
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addHidden('', 'type', 'int', true, true);
+
+ foreach ($grouped_fields as $header => $fields) {
+ if ($grouped_hook) {
+ $this->addVariable($header, null, 'header', false);
+ }
+ foreach ($fields as $field) {
+ switch ($field) {
+ case 'summary':
+ $this->addVariable(_("Summary"), 'summary', 'text', true);
+ break;
+
+ case 'version':
+ $versions = $whups_driver->getVersions($vars->get('queue'));
+ if (count($versions) == 0) {
+ $vtype = 'invalid';
+ $v_params = array(_("This queue requires that you specify a version, but there are no versions associated with it. Until versions are created for this queue, you will not be able to create tickets."));
+ } else {
+ $vtype = 'enum';
+ $v_params = array($versions);
+ }
+ $this->addVariable(_("Queue Version"), 'version', $vtype, true, false, null, $v_params);
+ break;
+
+ case 'state':
+ $this->addVariable(_("State"), 'state', 'enum', true,
+ false, null,
+ array($whups_driver->getStates($type)));
+ break;
+
+ case 'priority':
+ $this->addVariable(_("Priority"), 'priority', 'enum', true,
+ false, null,
+ array($whups_driver->getPriorities($type)));
+ break;
+
+ case 'due':
+ $this->addVariable(_("Due Date"), 'due', 'datetime', false,
+ false, null,
+ array($start_year));
+ break;
+
+ case 'owner':
+ if (Whups::hasPermission($vars->get('queue'), 'queue',
+ 'assign')) {
+ $groups = &Group::singleton();
+ if ($GLOBALS['conf']['prefs']['assign_all_groups']) {
+ $mygroups = $groups->listGroups();
+ } else {
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ }
+
+ $f_users = array();
+ $users = $whups_driver->getQueueUsers($vars->get('queue'));
+ foreach ($users as $user) {
+ $f_users['user:' . $user] = Whups::formatUser($user);
+ }
+
+ $f_groups = array();
+ if ($mygroups) {
+ foreach (array_keys($mygroups) as $id) {
+ $f_groups['group:' . $id] = $groups->getGroupName($id);
+ }
+ }
+
+ if (count($f_users)) {
+ asort($f_users);
+ $owners = &$this->addVariable(_("Owners"),
+ 'owners',
+ 'multienum',
+ false, false, null,
+ array($f_users));
+ $owners->setDefault($whups_driver->getOwners($vars->get('id')));
+ }
+
+ if (count($f_groups)) {
+ asort($f_groups);
+ $group_owners = &$this->addVariable(_("Group Owners"),
+ 'group_owners',
+ 'multienum',
+ false, false,
+ null,
+ array($f_groups));
+ $group_owners->setDefault($whups_driver->getOwners($vars->get('id')));
+ }
+ }
+ break;
+
+ case 'attachments':
+ $this->addVariable(_("Attachment"), 'newattachment',
+ 'file', false);
+ break;
+
+ case 'comment':
+ $cvar = &$this->addVariable(_("Comment"), 'newcomment',
+ 'longtext', false);
+
+ /* Form replies. */
+ $replies = Whups::permissionsFilter(
+ $whups_driver->getReplies($type), 'reply');
+ if (count($replies) && !is_a($replies, 'PEAR_Error')) {
+ require_once 'Horde/Form/Action.php';
+ $params = array();
+ foreach ($replies as $key => $reply) {
+ $params[$key] = $reply['reply_name'];
+ }
+ $rvar = &$this->addVariable(_("Form Reply:"), 'reply',
+ 'enum', false, false, null,
+ array($params, true));
+ $rvar->setAction(Horde_Form_Action::factory('reload'));
+ if ($vars->get('reply')) {
+ $reply = $vars->get('newcomment');
+ if (strlen($reply)) {
+ $reply .= "\n\n";
+ }
+ $reply .= $replies[$vars->get('reply')]['reply_text'];
+ $vars->set('newcomment', $reply);
+ $vars->remove('reply');
+ }
+ }
+
+ /* Comment permissions. */
+ $groups = &Group::singleton();
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ if ($mygroups) {
+ foreach (array_keys($mygroups) as $gid) {
+ $grouplist[$gid] = $groups->getGroupName($gid, true);
+ }
+ asort($grouplist);
+ $grouplist = array(0 => _("This comment is visible to everyone")) + $grouplist;
+ $this->addVariable(_("Make this comment visible only to members of a group?"), 'group',
+ 'enum', false, false, null,
+ array($grouplist));
+ }
+ break;
+
+ default:
+ /* Ticket attributes. */
+ if ($ticket &&
+ substr($field, 0, 10) == 'attribute_' &&
+ isset($attributes[substr($field, 10)])) {
+ $attribute = $attributes[substr($field, 10)];
+ $var = &$this->addVariable(
+ $attribute['human_name'],
+ 'attribute_' . $attribute['id'],
+ $attribute['type'],
+ $attribute['required'],
+ $attribute['readonly'],
+ $attribute['desc'],
+ $attribute['params']);
+ $var->setDefault($attribute['value']);
+ }
+ }
+ }
+ }
+ }
+
+ function validate(&$vars)
+ {
+ if (!Horde_Auth::getAuth()) {
+ $this->setError('_auth', _("Permission Denied."));
+ }
+
+ return parent::validate($vars);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Forms for editing queries.
+ *
+ * $Horde: whups/lib/Forms/Query.php,v 1.15 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+class InsertBranchForm extends Horde_Form {
+
+ function InsertBranchForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Insert Branch"));
+
+ $branchtypes = array(
+ QUERY_TYPE_AND => _("And"),
+ QUERY_TYPE_OR => _("Or"),
+ QUERY_TYPE_NOT => _("Not"));
+
+ $this->addHidden(null, 'path', 'text', false, true);
+ $this->addVariable(_("Branch Type"), 'type', 'enum', true, false, null, array($branchtypes));
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class UserCriterionForm extends Horde_Form {
+
+ function UserCriterionForm(&$vars)
+ {
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit User Criterion") : _("Add User Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+ $this->addVariable(_("User ID"), 'user', 'text', true);
+ $this->addVariable(_("Match Operator"), 'operator', 'enum', true, false, null, array(Whups_Query::textOperators()));
+ $this->addVariable(_("Search Owners"), 'owners', 'boolean', false);
+ $this->addVariable(_("Search Requester"), 'requester', 'boolean', false);
+ $this->addVariable(_("Search Comments"), 'comments', 'boolean', false);
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+ $user = $vars->get('user');
+ $operator = $vars->get('operator');
+ $owners = $vars->get('owners');
+ $requester = $vars->get('requester');
+ $comments = $vars->get('comments');
+
+ // If we're adding more than one criterion, put them all under an OR
+ // node (which should be what is wanted in the general case).
+ if ((bool)$owners + (bool)$requester + (bool)$comments > 1) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_OR);
+ }
+
+ if ($owners) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_OWNERS, null, $operator, $user);
+ }
+
+ if ($requester) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_REQUESTER, null, $operator, $user);
+ }
+
+ if ($comments) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_ADDED_COMMENT, null, $operator, $user);
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class GroupCriterionForm extends Horde_Form {
+
+ function GroupCriterionForm(&$vars)
+ {
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit Group Criterion") : _("Add Group Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+
+ $groups = &Group::singleton();
+ $grouplist = $groups->listGroups();
+ if (is_a($grouplist, 'PEAR_Error') || !count($grouplist)) {
+ $type_params = array(_("Could not find any groups."));
+ $this->addVariable(_("Groups"), 'groups', 'invalid', false, false, null, $type_params);
+ } else {
+ $this->addVariable(_("Groups"), 'groups', 'enum', true, false, null, array($grouplist));
+ }
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+ $groups = $vars->get('groups');
+
+ if ($groups) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_GROUPS, null, OPERATOR_EQUAL, $groups);
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class TextCriterionForm extends Horde_Form {
+
+ function TextCriterionForm(&$vars)
+ {
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit Text Criterion") : _("Add Text Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+ $this->addVariable(_("Text"), 'text', 'text', true);
+ $this->addVariable(_("Match Operator"), 'operator', 'enum', true, false, null, array(Whups_Query::textOperators()));
+ $this->addVariable(_("Search Summary"), 'summary', 'boolean', false);
+ $this->addVariable(_("Search Comments"), 'comments', 'boolean', false);
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+ $text = $vars->get('text');
+ $operator = $vars->get('operator');
+ $summary = $vars->get('summary');
+ $comments = $vars->get('comments');
+
+ if ($summary && $comments) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_OR);
+ }
+
+ if ($summary) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_SUMMARY, null, $operator, $text);
+ }
+
+ if ($comments) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_COMMENT, null, $operator, $text);
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class PropertyCriterionForm extends Horde_Form {
+
+ function PropertyCriterionForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit Property Criterion") : _("Add Property Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+ $this->addVariable(_("Id"), 'id', 'intlist', false);
+
+ /* Types. */
+ $this->addVariable(_("Type"), 'ttype', 'enum', false, false, null,
+ array($whups_driver->getAllTypes(), _("Any")));
+
+
+ /* Queues. */
+ $queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ);
+ if (count($queues)) {
+ $v = &$this->addVariable(_("Queue"), 'queue', 'enum', false, false,
+ null, array($queues, _("Any")));
+ $v->setAction(Horde_Form_Action::factory('reload'));
+ if ($vars->get('queue')) {
+ $this->addVariable(_("Version"), 'version', 'enum', false,
+ false, null,
+ array($whups_driver->getVersions($vars->get('queue')), _("Any")));
+ }
+ }
+
+ /* States. */
+ $states = $whups_driver->getStates();
+ $this->addVariable(_("State"), 'state', 'enum', false, false, null,
+ array($states, _("Any")));
+
+ /* Priorities. */
+ $priorities = $whups_driver->getPriorities();
+ $this->addVariable(_("Priority"), 'priority', 'enum', false, false,
+ null, array($priorities, _("Any")));
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+
+ $id = $vars->get('id');
+ if (strlen(trim($id))) {
+ $newpath = $path;
+ $ids = split("[\\t\\n ,]+", $id);
+
+ if (count($ids) > 1) {
+ $newpath = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_OR);
+ }
+
+ foreach ($ids as $id) {
+ $GLOBALS['whups_query']->insertCriterion($newpath, CRITERION_ID, null, OPERATOR_EQUAL, $id);
+ }
+ }
+
+ $queue = $vars->get('queue');
+ if ($queue) {
+ $version = $vars->get('version');
+ if ($version) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_AND);
+ }
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_QUEUE, null, OPERATOR_EQUAL, $queue);
+ if ($version) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_VERSION, null, OPERATOR_EQUAL, $version);
+ }
+ }
+
+ $type = $vars->get('ttype');
+ if ($type) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_TYPE, null, OPERATOR_EQUAL, $type);
+ }
+
+ $state = $vars->get('state');
+ if ($state) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_STATE, null, OPERATOR_EQUAL, $state);
+ }
+
+ $priority = $vars->get('priority');
+ if ($priority) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_PRIORITY, null, OPERATOR_EQUAL, $priority);
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class AttributeCriterionForm extends Horde_Form {
+
+ /**
+ * List of all available attributes.
+ */
+ var $attribs = array();
+
+ function AttributeCriterionForm(&$vars)
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit Attribute Criterion") : _("Add Attribute Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+
+ $this->attribs = $whups_driver->getAttributesForType();
+ if (is_a($this->attribs, 'PEAR_Error')) {
+ $this->addVariable(_("Search Attribute"), 'attribute', 'invalid', true, false, null, array($this->attribs->getMessage()));
+ } elseif ($this->attribs) {
+ $this->addVariable(_("Match"), 'text', 'text', true);
+ $this->addVariable(_("Match Operator"), 'operator', 'enum', true, false, null, array(Whups_Query::textOperators()));
+
+ foreach ($this->attribs as $id => $attribute) {
+ $this->addVariable(sprintf(_("Search %s Attribute"), $attribute['human_name']), "a$id", 'boolean', false);
+ }
+ } else {
+ $this->addVariable(_("Search Attribute"), 'attribute', 'invalid', true, false, null, array(_("There are no attributes defined.")));
+ }
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+ $text = $vars->get('text');
+ $operator = $vars->get('operator');
+
+ $count = 0;
+
+ $keys = array_keys($this->attribs);
+ foreach ($keys as $id) {
+ $count += $vars->exists("a$id") ? 1 : 0;
+ }
+
+ if ($count > 1) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_OR);
+ }
+
+ foreach ($keys as $id) {
+ if ($vars->get("a$id")) {
+ $GLOBALS['whups_query']->insertCriterion($path, CRITERION_ATTRIBUTE, $id, $operator, $text);
+ }
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class DateCriterionForm extends Horde_Form {
+
+ function DateCriterionForm(&$vars)
+ {
+ parent::Horde_Form($vars, $vars->get('edit') ? _("Edit Date Criterion") : _("Add Date Criterion"));
+
+ $this->addHidden('', 'edit', 'boolean', false);
+
+ $this->addVariable(_("Created from"), 'ticket_timestamp[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Created to"), 'ticket_timestamp[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+
+ $this->addVariable(_("Updated from"), 'date_updated[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Updated to"), 'date_updated[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+
+ $this->addVariable(_("Resolved from"), 'date_resolved[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Resolved to"), 'date_resolved[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+
+ $this->addVariable(_("Assigned from"), 'date_assigned[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Assigned to"), 'date_assigned[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+
+ $this->addVariable(_("Due from"), 'ticket_due[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Due to"), 'ticket_due[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ }
+
+ function execute(&$vars)
+ {
+ $path = $vars->get('path');
+ $parent = false;
+
+ $keys = array(CRITERION_TIMESTAMP => 'ticket_timestamp',
+ CRITERION_UPDATED => 'date_updated',
+ CRITERION_RESOLVED => 'date_resolved',
+ CRITERION_ASSIGNED => 'date_assigned',
+ CRITERION_DUE => 'ticket_due');
+
+ foreach ($keys as $key_id => $key_name) {
+ $date = $vars->get($key_name . '[from]');
+ if (!empty($date['month'])) {
+ if (!$parent) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_AND);
+ $parent = true;
+ }
+ $date = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
+ $GLOBALS['whups_query']->insertCriterion($path, $key_id, null, OPERATOR_GREATER, $date);
+ }
+ $date = $vars->get($key_name . '[to]');
+ if (!empty($date['month'])) {
+ if (!$parent) {
+ $path = $GLOBALS['whups_query']->insertBranch($path, QUERY_TYPE_AND);
+ $parent = true;
+ }
+ $date = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
+ $GLOBALS['whups_query']->insertCriterion($path, $key_id, null, OPERATOR_LESS, $date);
+ }
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class ChooseQueryNameForSaveForm extends Horde_Form {
+
+ function ChooseQueryNameForSaveForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Save Query"));
+ $this->setButtons(_("Save"));
+
+ $v = &$this->addVariable(_("Query Name"), 'name', 'text', true);
+ $v->setDefault($GLOBALS['whups_query']->name);
+ $v = &$this->addVariable(_("Query Slug"), 'slug', 'text', false);
+ $v->setDefault($GLOBALS['whups_query']->slug);
+ }
+
+ function execute(&$vars)
+ {
+ $GLOBALS['whups_query']->name = $vars->get('name');
+ $GLOBALS['whups_query']->slug = $vars->get('slug');
+ $result = $GLOBALS['whups_query']->save();
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class ChooseQueryNameForLoadForm extends Horde_Form {
+
+ function ChooseQueryNameForLoadForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Load Query"));
+
+ $qManager = new Whups_QueryManager();
+ $qParams = $qManager->listQueries(Horde_Auth::getAuth());
+ if (count($qParams)) {
+ $qType = 'enum';
+ } else {
+ $qType = 'invalid';
+ $qParams = _("You have no saved queries.");
+ }
+
+ $this->addVariable(_("Name"), 'name', $qType, true, false, null, array($qParams));
+ }
+
+ function execute(&$vars)
+ {
+ $qManager = new Whups_QueryManager();
+ $query = $qManager->getQuery($vars->get('name'));
+ if (is_a($query, 'PEAR_Error')) {
+ $GLOBALS['notification']->push(sprintf(_("The query couldn't be loaded:"), $query->getMessage()), 'horde.error');
+ } else {
+ $GLOBALS['whups_query'] = $query;
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class DeleteQueryForm extends Horde_Form {
+
+ function DeleteQueryForm(&$vars)
+ {
+ parent::Horde_Form($vars, _("Delete Query?"));
+
+ $yesno = array(array(0 => _("No"), 1 => _("Yes")));
+ $this->addVariable(_("Really delete this query? This operation is not undoable."), 'yesno', 'enum', true, false, null, $yesno);
+ }
+
+ function execute(&$vars)
+ {
+ global $notification;
+
+ if ($vars->get('yesno')) {
+ if (!$GLOBALS['whups_query']->hasPermission(Horde_Auth::getAuth(), Horde_Perms::DELETE)) {
+ $notifications->push(sprintf(_("Permission denied.")), 'horde.error');
+ } else {
+ $result = $GLOBALS['whups_query']->delete();
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push(sprintf(_("The query \"%s\" couldn't be deleted: %s"), $GLOBALS['whups_query']->name, $result->getMessage()), 'horde.error');
+ } else {
+ $notification->push(sprintf(_("The query \"%s\" has been deleted."), $GLOBALS['whups_query']->name), 'horde.success');
+ $qManager = new Whups_QueryManager();
+ unset($GLOBALS['whups_query']);
+ $GLOBALS['whups_query'] = $qManager->newQuery();
+ }
+ }
+ }
+
+ $this->unsetVars($vars);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * QueryParameterForm Class
+ *
+ * $Horde: whups/lib/Forms/QueryParameterForm.php,v 1.4 2009/01/06 18:02:34 jan Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @package Whups
+ */
+class QueryParameterForm extends Horde_Form {
+
+ var $_useFormToken = false;
+
+ function QueryParameterForm($query, $vars)
+ {
+ parent::Horde_Form($vars, _("Query Parameters"), 'queryparameters');
+ foreach ($query->parameters as $name) {
+ $this->addVariable($name, $name, 'text', true);
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * SearchForm Class.
+ *
+ * $Horde: whups/lib/Forms/Search.php,v 1.13 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @package Whups
+ */
+class SearchForm extends Horde_Form {
+
+ var $_useFormToken = false;
+
+ function SearchForm(&$vars)
+ {
+ parent::Horde_Form($vars);
+
+ $this->setButtons(true);
+ $this->appendButtons(_("Save as Query"));
+ $this->setSection('attributes', _("Attributes"));
+
+ $queues = Whups::permissionsFilter($GLOBALS['whups_driver']->getQueues(), 'queue', Horde_Perms::READ);
+ $queue_count = count($queues);
+ $types = array();
+ if ($queue_count == 1) {
+ $types = $GLOBALS['whups_driver']->getTypes(key($queues));
+ $this->addHidden('', 'queue', 'int', false, true);
+ $vars->set('queue', key($queues));
+ } else {
+ if ($queue_count > 0) {
+ $modtype = 'enum';
+ $queue_params = array(array('0' => _("Any")) + $queues);
+ foreach ($queues as $queueID => $name) {
+ $types = $types + $GLOBALS['whups_driver']->getTypes($queueID);
+ }
+ } else {
+ $modtype = 'invalid';
+ $queue_params = array(_("There are no queues which you can search."));
+ }
+ $this->addVariable(_("Queue"), 'queue', $modtype, false, false, null, $queue_params);
+ }
+
+ $this->addVariable(_("Summary like"), 'summary', 'text', false);
+
+ $states = array();
+ foreach ($types as $typeID => $typeName) {
+ $states = $GLOBALS['whups_driver']->getAllStateInfo($typeID);
+ $list = array();
+ foreach ($states as $state) {
+ $list[$state['state_id']] = $state['state_name'];
+ }
+ $this->addVariable($typeName, "states[$typeID]", 'multienum', false, false, null, array ($list, 4));
+ }
+
+ $this->setSection('dates', _("Dates"));
+ $this->addVariable(_("Created from"), 'ticket_timestamp[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("to"), 'ticket_timestamp[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Updated from"), 'date_updated[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("to"), 'date_updated[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Resolved from"), 'date_resolved[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("to"), 'date_resolved[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Assigned from"), 'date_assigned[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("to"), 'date_assigned[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("Due from"), 'ticket_due[from]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ $this->addVariable(_("to"), 'ticket_due[to]', 'monthdayyear', false, false, null, array(date('Y') - 10));
+ }
+
+ /**
+ * Fetch the field values of the submitted form.
+ *
+ * @param Horde_Variables $vars A Horde_Variables instance, optional since Horde 3.2.
+ * @param array $info Array to be filled with the submitted field
+ * values.
+ */
+ function getInfo($vars, &$info)
+ {
+ parent::getInfo($vars, $info);
+
+ if (empty($info['queue'])) {
+ $info['queue'] = array_keys(Whups::permissionsFilter($GLOBALS['whups_driver']->getQueues(), 'queue', Horde_Perms::READ, Horde_Auth::getAuth(), Horde_Auth::getAuth()));
+ }
+
+ if (empty($info['states'])) {
+ unset($info['states']);
+ }
+
+ // ... if we were given a set of states
+ if (isset($info['states'])) {
+ // collect them into a list of state_id
+ $info['state_id'] = array();
+ foreach ($info['states'] as $states) {
+ if (isset($states)) {
+ // because null === array_merge(array, null)
+ $info['state_id'] = array_merge($info['state_id'], $states);
+ }
+ }
+ unset($info['states']);
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * This file contains all Horde_UI_VarRenderer extensions for Whups specific
+ * form fields.
+ *
+ * $Horde: whups/lib/Forms/VarRenderer.php,v 1.7 2009-11-27 00:12:53 mrubinsk Exp $
+ *
+ * Copyright 2008-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ * @package Horde_UI
+ */
+
+/**
+ * The Horde_UI_VarRenderer_whups class provides additional methods for
+ * rendering Horde_Form_Type_whups_email fields.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ * @package Horde_UI
+ */
+class Horde_Ui_VarRenderer_whups extends Horde_Ui_VarRenderer_Html {
+
+ function _renderVarInput_whups_email($form, &$var, &$vars)
+ {
+ $name = $var->getVarName();
+
+ $imple = Horde_Ajax_Imple::factory(array('whups', 'ContactAutoCompleter'), array('triggerId' => $name));
+ $imple->attach();
+ return sprintf('<input type="text" name="%s" id="%s" value="%s" autocomplete="off"%s />',
+ $name,
+ $name,
+ @htmlspecialchars($var->getValue($vars)),
+ $this->_getActionScripts($form, $var))
+ . '<span id="' . $name . '_loading_img" style="display:none;">'
+ . Horde::img('loading.gif', _("Loading..."), '',
+ $GLOBALS['registry']->getImageDir('horde'))
+ . '</span>';
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The Whups_Horde_Mime_Viewer_Zip class renders out the contents of ZIP files
+ * in HTML format and allows downloading of extractable files.
+ *
+ * $Horde: whups/lib/Mime/Viewer/Zip.php,v 1.6 2009/09/23 08:12:30 selsky Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Michael Slusarz <slusarz@horde.org>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Horde_MIME_Viewer
+ */
+class Whups_Horde_Mime_Viewer_zip extends Horde_Mime_Viewer_Zip
+{
+ /**
+ * Return the full rendered version of the Horde_Mime_Part object.
+ *
+ * URL parameters used by this function:
+ * <pre>
+ * 'zip_attachment' - (integer) The ZIP attachment to download.
+ * </pre>
+ *
+ * @return array See Horde_Mime_Viewer_Driver::render().
+ */
+ protected function _render()
+ {
+ if (!Horde_Util::getFormData('zip_attachment')) {
+ $this->_callback = array(&$this, '_WhupsCallback');
+ return parent::_render();
+ }
+
+ /* Send the requested file. Its position in the zip archive is located
+ * in 'zip_attachment'. */
+ $data = $this->_mimepart->getContents();
+ $zip = Horde_Compress::factory('zip');
+ $fileKey = Horde_Util::getFormData('zip_attachment') - 1;
+ $zipInfo = $zip->decompress($data, array('action' => Horde_Compress_Zip::ZIP_LIST));
+
+ /* Verify that the requested file exists. */
+ if (isset($zipInfo[$fileKey])) {
+ $text = $zip->decompress($data, array('action' => Horde_Compress_Zip::ZIP_DATA, 'info' => &$zipInfo, 'key' => $fileKey));
+ if (!empty($text)) {
+ return array(
+ $this->_mimepart->getMimeId() => array(
+ 'data' => $text,
+ 'name' => basename($zipInfo[$fileKey]['name']),
+ 'status' => array(),
+ 'type' => 'application/octet-stream'
+ )
+ );
+ }
+ }
+ // TODO: Error reporting
+ return array();
+ }
+
+ /**
+ * Return the rendered inline version of the Horde_Mime_Part object.
+ *
+ * @return array See Horde_Mime_Viewer_Driver::render().
+ */
+ protected function _renderInline()
+ {
+ $this->_callback = array(&$this, '_WhupsCallback');
+ return parent::_renderInline();
+ }
+
+ /**
+ * The function to use as a callback to _toHTML().
+ *
+ * @param integer $key The position of the file in the zip archive.
+ * @param array $val The information array for the archived file.
+ *
+ * @return string The content-type of the output.
+ */
+ protected function _WhupsCallback($key, $val)
+ {
+ $name = preg_replace('/( )+$/', '', $val['name']);
+
+ if (!empty($val['size']) && (strstr($val['attr'], 'D') === false) &&
+ ((($val['method'] == 0x8) && Horde_Util::extensionExists('zlib')) ||
+ ($val['method'] == 0x0))) {
+ $mime_part = $this->_mimepart;
+ $mime_part->setName(basename($name));
+ $val['name'] = str_replace($name, Horde::link(Horde_Util::addParameter(Horde::applicationUrl('view.php'), array('actionID' => 'view_file', 'type' => Horde_Util::getFormData('type'), 'file' => Horde_Util::getFormData('file'), 'ticket' => Horde_Util::getFormData('ticket'), 'zip_attachment' => $key + 1))) . $name . '</a>', $val['name']);
+ }
+
+ return $val;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Whups mail processing library.
+ *
+ * $Horde: whups/lib/Mail.php,v 1.55 2009/07/08 18:30:06 slusarz Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jason M. Felice <jason.m.felice@gmail.com>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+class Whups_Mail {
+
+ /**
+ * Parse a MIME message and create a new ticket.
+ *
+ * @param string $text This is the full text of the MIME message.
+ * @param array $info An array of information for the new ticket.
+ * This should include:
+ * - 'queue' => queue id
+ * - 'type' => type id
+ * - 'state' => state id
+ * - 'priority' => priority id
+ * - 'ticket' => ticket id (prevents creation
+ * of new tickets)
+ * @param string $auth_user This will be the Horde user that creates the
+ * ticket. If null, we will try to deduce from
+ * the message's From: header. We do NOT default
+ * to Horde_Auth::getAuth().
+ *
+ * @return Whups_Ticket | PEAR_Error Ticket or Error object.
+ */
+ static public function processMail($text, $info, $auth_user = null)
+ {
+ global $conf;
+
+ $message = Horde_Mime_Part::parseMessage($text);
+
+ if (preg_match("/^(.*?)\r?\n\r?\n/s", $text, $matches)) {
+ $hdrText = $matches[1];
+ } else {
+ $hdrText = $text;
+ }
+ $headers = Horde_Mime_Headers::parseHeaders($hdrText);
+
+ // If this message was generated by Whups, don't process it.
+ if ($headers->getValue('X-Whups-Generated')) {
+ return true;
+ }
+
+ // Use the message subject as the ticket summary.
+ $info['summary'] = $headers->getValue('subject');
+ $from = $headers->getValue('from');
+
+ // Format the message into a comment.
+ $comment = _("Received message:") . "\n\n";
+ if (!empty($GLOBALS['conf']['mail']['include_headers'])) {
+ foreach ($headers->toArray(array('nowrap' => true)) as $name => $vals) {
+ if (!in_array(strtolower($name), array('subject', 'from', 'to', 'cc', 'date'))) {
+ if (is_array($vals)) {
+ foreach ($vals as $val) {
+ $comment .= $name . ': ' . $val . "\n";
+ }
+ } else {
+ $comment .= $name . ': ' . $vals . "\n";
+ }
+ }
+ }
+
+ $comment .= "\n";
+ }
+
+ // Look for the body part.
+ $body_id = $message->findBody();
+ if ($body_id) {
+ $part = $message->getPart($body_id);
+ $comment .= Horde_String::convertCharset($part->transferDecode(), $part->getCharset());
+ } else {
+ $comment .= _("[ Could not render body of message. ]");
+ }
+
+ $info['comment'] = $comment . "\n";
+
+ // Try to determine the Horde user for creating the ticket.
+ if (empty($auth_user)) {
+ $auth_user = self::_findAuthUser(Horde_Mime_Address::bareAddress($from));
+ }
+ $author = $auth_user;
+
+ if (empty($auth_user) && !empty($info['default_auth'])) {
+ $auth_user = $info['default_auth'];
+ if (!empty($from)) {
+ $info['user_email'] = $from;
+ }
+ }
+
+ if (empty($auth_user) && !empty($conf['mail']['username'])) {
+ $auth_user = $conf['mail']['username'];
+ if (!empty($from)) {
+ $info['user_email'] = $from;
+ }
+ }
+
+ // Authenticate as the correct Horde user.
+ if (!empty($auth_user) && $auth_user != Horde_Auth::getAuth()) {
+ Horde_Auth::setAuth($auth_user, array());
+ }
+
+ // See if we can match this message to an existing ticket.
+ if ($ticket = self::_findTicket($info)) {
+ $ticket->change('comment', $info['comment']);
+ $ticket->change('comment-email', $from);
+ $result = $ticket->commit($author);
+ if (is_a($result, 'PEAR_Error')) {
+ $result->addUserInfo(_("current user:") . ' ' . $auth_user);
+ return $result;
+ }
+ } elseif (!empty($info['ticket'])) {
+ // Didn't match an existing ticket though a ticket number had been
+ // specified.
+ return PEAR::raiseError(sprintf(_("Could not find ticket \"%s\"."),
+ $info['ticket']));
+ } else {
+ if (!empty($info['guess-queue'])) {
+ // Try to guess the queue name for the new ticket from the
+ // message subject.
+ $queues = $GLOBALS['whups_driver']->getQueues();
+ foreach ($queues as $queueId => $queueName) {
+ if (preg_match('/\b' . preg_quote($queueName, '/') . '\b/i',
+ $info['summary'])) {
+ $info['queue'] = $queueId;
+ break;
+ }
+ }
+ }
+ // Create a new ticket.
+ $ticket = Whups_Ticket::newTicket($info, $author);
+ if (is_a($ticket, 'PEAR_Error')) {
+ $ticket->addUserInfo(_("current user:") . ' ' . $auth_user);
+ return $ticket;
+ }
+ }
+
+ // Extract attachments.
+ $dl_list = array_slice(array_keys($message->contentTypeMap()), 1);
+ foreach ($dl_list as $key) {
+ if (strpos($key, '.', 1) === false) {
+ $part = $message->getPart($key);
+ $part->transferDecodeContents();
+ $tmp_name = Horde::getTempFile('whups');
+ $fp = @fopen($tmp_name, 'wb');
+ if (!$fp) {
+ Horde::logMessage(sprintf('Cannot open file %s for writing.',
+ $tmp_name),
+ __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $ticket;
+ }
+ fwrite($fp, $part->getContents());
+ fclose($fp);
+ $part_name = $part->getName(true);
+ $ticket->change('attachment', array('name' => $part_name,
+ 'tmp_name' => $tmp_name));
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ $result->addUserInfo(_("current user:") . ' ' . $auth_user);
+ return $result;
+ }
+ }
+ }
+ }
+
+ /**
+ * Returns the ticket number matching the provided information.
+ *
+ * @param array $info A hash with ticket information.
+ *
+ * @return integer The ticket number if has been passed in the subject,
+ * false otherwise.
+ */
+ static protected function _findTicket($info)
+ {
+ if (!empty($info['ticket'])) {
+ $ticketnum = $info['ticket'];
+ } elseif (preg_match('/\[[\w\s]*#(\d+)\]/', $info['summary'], $matches)) {
+ $ticketnum = $matches[1];
+ } else {
+ return false;
+ }
+
+ $ticket = Whups_Ticket::makeTicket($ticketnum);
+ if (is_a($ticket, 'PEAR_Error')) {
+ return false;
+ }
+
+ return $ticket;
+ }
+
+ /**
+ * Searches the From: header for an email address contained in one
+ * of our users' identities.
+ *
+ * @param string $from The From address.
+ *
+ * @return string The Horde user name that matches the headers' From:
+ * address or null if the users can't be listed or no
+ * match has been found.
+ */
+ static protected function _findAuthUser($from)
+ {
+ global $conf;
+
+ require_once 'Horde/Identity.php';
+
+ $params = Horde::getDriverConfig('auth', $conf['auth']['driver']);
+ $auth = Horde_Auth::singleton($conf['auth']['driver'], $params);
+ if ($auth->hasCapability('list')) {
+ foreach ($auth->listUsers() as $user) {
+ $identity = &Identity::singleton('none', $user);
+ $addrs = $identity->getAll('from_addr');
+ foreach ($addrs as $addr) {
+ if (strcasecmp($from, $addr) == 0) {
+ return $user;
+ }
+ }
+ }
+ }
+
+ return false;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/Query.php,v 1.80 2009-11-27 02:50:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Robert E. Coyle <robertecoyle@hotmail.com>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+
+/** Horde_Share */
+require_once 'Horde/Share.php';
+
+/** Horde_Form_Action */
+require_once 'Horde/Form/Action.php';
+
+/** Mode types. */
+define('QUERY_TYPE_AND', 1);
+define('QUERY_TYPE_OR', 2);
+define('QUERY_TYPE_NOT', 3);
+define('QUERY_TYPE_CRITERION', 4);
+
+/** Criterion types. */
+define('CRITERION_ID', 1);
+define('CRITERION_QUEUE', 2);
+define('CRITERION_TYPE', 3);
+define('CRITERION_STATE', 4);
+define('CRITERION_PRIORITY', 5);
+define('CRITERION_OWNERS', 7);
+define('CRITERION_REQUESTER', 8);
+define('CRITERION_GROUPS', 9);
+define('CRITERION_ADDED_COMMENT', 11);
+define('CRITERION_COMMENT', 12);
+define('CRITERION_SUMMARY', 13);
+define('CRITERION_ATTRIBUTE', 14);
+define('CRITERION_VERSION', 15);
+define('CRITERION_TIMESTAMP', 16);
+define('CRITERION_UPDATED', 17);
+define('CRITERION_RESOLVED', 18);
+define('CRITERION_ASSIGNED', 19);
+define('CRITERION_DUE', 20);
+
+/** Operators for integer fields. */
+define('OPERATOR_GREATER', 1);
+define('OPERATOR_LESS', 2);
+define('OPERATOR_EQUAL', 3);
+
+/** Operators for text fields. */
+define('OPERATOR_CI_SUBSTRING', 4);
+define('OPERATOR_CS_SUBSTRING', 5);
+define('OPERATOR_WORD', 6);
+define('OPERATOR_PATTERN', 7);
+
+/**
+ * array(
+ * 'type' => QUERY_TYPE_...
+ * 'children' => array(...) unless type == QUERY_TYPE_CRITERION
+ * 'criterion' => CRITERION_... if type == QUERY_TYPE_CRITERION
+ * 'operator' => OPERATOR_... if type == QUERY_TYPE_CRITERION
+ * 'value' => other argument to operator of criterion
+ */
+
+/**
+ * @package Whups
+ */
+class Whups_Query {
+
+ /**
+ * @var Whups_QueryManager
+ */
+ var $_qManager;
+
+ /**
+ * Query id.
+ *
+ * @var integer
+ */
+ var $id;
+
+ /**
+ * The full name of the query.
+ *
+ * @var string
+ */
+ var $name;
+
+ /**
+ * The query slug (short name).
+ *
+ * @var string
+ */
+ var $slug;
+
+ /**
+ * @var array
+ */
+ var $query = array('type' => QUERY_TYPE_AND,
+ 'children' => array());
+
+ /**
+ * @var array
+ */
+ var $parameters = array();
+
+ /**
+ * Constructor
+ */
+ function Whups_Query(&$qManager, $qDetails = array())
+ {
+ $this->_qManager = &$qManager;
+ if (isset($qDetails['query_id'])) {
+ $this->id = $qDetails['query_id'];
+ }
+ if (isset($qDetails['query_name'])) {
+ $this->name = $qDetails['query_name'];
+ }
+ if (isset($qDetails['query_slug'])) {
+ $this->slug = $qDetails['query_slug'];
+ }
+ if (isset($qDetails['query_object'])) {
+ $this->query = @unserialize($qDetails['query_object']);
+ }
+ if (isset($qDetails['query_parameters'])) {
+ $this->parameters = @unserialize($qDetails['query_parameters']);
+ }
+ }
+
+ /**
+ * @static
+ */
+ function pathToString(&$path)
+ {
+ return implode(',', $path);
+ }
+
+ /**
+ * @static
+ */
+ function stringToPath($pathstring)
+ {
+ if (!strlen($pathstring)) {
+ return array();
+ }
+
+ return explode(',', $pathstring);
+ }
+
+ /**
+ * Returns human readable descriptions of all operator types.
+ *
+ * @static
+ *
+ * @return array Hash with operator types and descriptions.
+ */
+ function textOperators()
+ {
+ return array(
+ OPERATOR_EQUAL => _("Exact Match"),
+ OPERATOR_CI_SUBSTRING => _("Case Insensitive Substring"),
+ // OPERATOR_CS_SUBSTRING => _("Case Sensitive Substring"),
+ OPERATOR_WORD => _("Match Word"),
+ OPERATOR_PATTERN => _("Match Pattern"));
+ }
+
+ /**
+ * Checks to see if a user has a given permission.
+ *
+ * @param string $userid The userid of the user.
+ * @param integer $permission A Horde_Perms::* constant to test for.
+ * @param string $creator The creator of the event.
+ *
+ * @return boolean Whether or not $userid has $permission.
+ */
+ function hasPermission($userid, $permission, $creator = null)
+ {
+ return $this->_qManager->hasPermission($this->id, $userid, $permission, $creator);
+ }
+
+ /**
+ * Saves any changes to this object to the backend
+ * permanently. New objects are added instead.
+ *
+ * @return boolean|PEAR_Error PEAR_Error on failure.
+ */
+ function save()
+ {
+ return $this->_qManager->save($this);
+ }
+
+ /**
+ * Delete this object from the backend permanently.
+ *
+ * @return boolean|PEAR_Error PEAR_Error on failure.
+ */
+ function delete()
+ {
+ return $this->_qManager->delete($this);
+ }
+
+ /**
+ * Tab operations for this query.
+ */
+ function getTabs($vars)
+ {
+ // Create a few variables that are reused.
+ $queryurl = Horde::applicationUrl('query/index.php');
+ $edit = $this->hasPermission(Horde_Auth::getAuth(), Horde_Perms::EDIT);
+ $delete = $this->hasPermission(Horde_Auth::getAuth(), Horde_Perms::DELETE);
+
+ $tabs = new Horde_Ui_Tabs('action', $vars);
+ $tabs->addTab(_("Ne_w Query"), $queryurl, 'new');
+ if (!$this->id || $edit) {
+ $tabs->addTab(_("_Edit Query"), $queryurl, 'edit');
+ }
+ if ($this->id && $edit && empty($GLOBALS['conf']['share']['no_sharing'])) {
+ Horde::addScriptFile('popup.js', 'horde', true);
+
+ $permsurl = $GLOBALS['registry']->get('webroot', 'horde') . '/services/shares/edit.php';
+ $permsurl = Horde_Util::addParameter($permsurl, array('app' => 'whups',
+ 'cid' => $this->id));
+ $tabs->addTab(_("Edit _Permissions"), $permsurl, array('tabname' => 'perms',
+ 'onclick' => 'popup(\'' . $permsurl . '\'); return false;',
+ 'target' => '_blank'));
+ }
+ $tabs->addTab(_("E_xecute Query"), Horde::applicationUrl('query/run.php'), 'run');
+ $tabs->addTab(_("_Load Query"), $queryurl, 'load');
+ if ((!$this->id && Horde_Auth::getAuth()) ||
+ ($this->id && $edit)) {
+ $tabs->addTab(_("Sa_ve Query"), $queryurl, 'save');
+ }
+ if ($this->id && $delete) {
+ $tabs->addTab(_("_Delete Query"), $queryurl, 'delete');
+ }
+
+ return $tabs;
+ }
+
+ /**
+ * Operations.
+ */
+
+ function pathToForm(&$vars)
+ {
+ $path = Whups_Query::stringToPath($vars->get('path'));
+ $parent = null;
+ $qobj = $this->query;
+
+ for ($i = 0, $c = count($path); $i < $c; $i++) {
+ $parent = $qobj;
+ $qobj = $qobj['children'][$path[$i]];
+ }
+
+ if ($qobj['type'] != QUERY_TYPE_CRITERION) {
+ // Search for any criteria that have been combined automatically
+ // with an AND or OR.
+ switch ($qobj['type']) {
+ case QUERY_TYPE_OR:
+ // Search for multiple ids.
+ $criteria = array();
+ foreach ($qobj['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ $child['criterion'] != CRITERION_ID) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['value'];
+ }
+ if ($criteria) {
+ $vars->set('id', implode(',', $criteria));
+ return 'props';
+ }
+
+ // Search for user criteria.
+ $criteria = array();
+ $operator = $value = null;
+ foreach ($qobj['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ ($child['criterion'] != CRITERION_OWNERS &&
+ $child['criterion'] != CRITERION_REQUESTER &&
+ $child['criterion'] != CRITERION_ADDED_COMMENT) ||
+ (isset($operator) && $operator != $child['operator']) ||
+ (isset($value) && $value != $child['value'])) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['criterion'];
+ $operator = $child['operator'];
+ $value = $child['value'];
+ }
+ if ($criteria) {
+ $vars->set('user', $value);
+ $vars->set('operator', $operator);
+ foreach ($criteria as $criterion) {
+ switch ($criterion) {
+ case CRITERION_OWNERS:
+ $vars->set('owners', true);
+ break;
+ case CRITERION_REQUESTER:
+ $vars->set('requester', true);
+ break;
+ case CRITERION_ADDED_COMMENT:
+ $vars->set('comments', true);
+ break;
+ }
+ }
+ return 'user';
+ }
+
+ // Search for text criteria.
+ $criteria = array();
+ $operator = $value = null;
+ foreach ($qobj['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ ($child['criterion'] != CRITERION_COMMENT &&
+ $child['criterion'] != CRITERION_SUMMARY) ||
+ (isset($operator) && $operator != $child['operator']) ||
+ (isset($value) && $value != $child['value'])) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['criterion'];
+ $operator = $child['operator'];
+ $value = $child['value'];
+ }
+ if ($criteria) {
+ $vars->set('text', $value);
+ $vars->set('operator', $operator);
+ foreach ($criteria as $criterion) {
+ if ($criterion == CRITERION_COMMENT) {
+ $vars->set('comments', true);
+ } elseif ($criterion == CRITERION_SUMMARY) {
+ $vars->set('summary', true);
+ }
+ }
+ return 'text';
+ }
+
+ // Search for attributes.
+ $attribs = array_keys($GLOBALS['whups_driver']->getAttributesForType());
+ $criteria = array();
+ $operator = $value = null;
+ foreach ($qobj['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ $child['criterion'] != CRITERION_ATTRIBUTE ||
+ (isset($operator) && $operator != $child['operator']) ||
+ (isset($value) && $value != $child['value']) ||
+ !in_array($child['cvalue'], $attribs)) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['cvalue'];
+ $operator = $child['operator'];
+ $value = $child['value'];
+ }
+ if ($criteria) {
+ $vars->set('text', $value);
+ $vars->set('operator', $operator);
+ foreach ($criteria as $criterion) {
+ $vars->set('a' . $criterion, true);
+ }
+ return 'attribs';
+ }
+ break;
+
+ case QUERY_TYPE_AND:
+ // Search for date criteria.
+ $criteria = false;
+ foreach ($qobj['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ ($child['criterion'] != CRITERION_TIMESTAMP &&
+ $child['criterion'] != CRITERION_UPDATED &&
+ $child['criterion'] != CRITERION_RESOLVED &&
+ $child['criterion'] != CRITERION_ASSIGNED &&
+ $child['criterion'] != CRITERION_DUE)) {
+ $criteria = false;
+ break;
+ }
+ $criteria = true;
+ }
+ if ($criteria) {
+ foreach ($qobj['children'] as $child) {
+ switch ($child['criterion'] . $child['operator']) {
+ case CRITERION_TIMESTAMP . OPERATOR_GREATER:
+ $vars->set('ticket_timestamp[from]', $child['value']);
+ break;
+ case CRITERION_TIMESTAMP . OPERATOR_LESS:
+ $vars->set('ticket_timestamp[to]', $child['value']);
+ break;
+ case CRITERION_UPDATED . OPERATOR_GREATER:
+ $vars->set('date_updated[from]', $child['value']);
+ break;
+ case CRITERION_UPDATED . OPERATOR_LESS:
+ $vars->set('date_updated[to]', $child['value']);
+ break;
+ case CRITERION_RESOLVED . OPERATOR_GREATER:
+ $vars->set('date_resolved[from]', $child['value']);
+ break;
+ case CRITERION_RESOLVED . OPERATOR_LESS:
+ $vars->set('date_resolved[to]', $child['value']);
+ break;
+ case CRITERION_ASSIGNED . OPERATOR_GREATER:
+ $vars->set('date_assigned[from]', $child['value']);
+ break;
+ case CRITERION_ASSIGNED . OPERATOR_LESS:
+ $vars->set('date_assigned[to]', $child['value']);
+ break;
+ case CRITERION_DUE . OPERATOR_GREATER:
+ $vars->set('ticket_due[from]', $child['value']);
+ break;
+ case CRITERION_DUE . OPERATOR_LESS:
+ $vars->set('ticket_due[to]', $child['value']);
+ break;
+ }
+ }
+ return 'date';
+ }
+
+ // Search for version criterion.
+ if (count($qobj['children']) == 2 &&
+ $qobj['children'][0]['type'] == QUERY_TYPE_CRITERION &&
+ $qobj['children'][0]['criterion'] == CRITERION_QUEUE &&
+ $qobj['children'][1]['type'] == QUERY_TYPE_CRITERION &&
+ $qobj['children'][1]['criterion'] == CRITERION_VERSION) {
+ $vars->set('queue', $qobj['children'][0]['value']);
+ $vars->set('version', $qobj['children'][1]['value']);
+ return 'props';
+ }
+ break;
+ }
+ return PEAR::raiseError(_("This query element cannot be edited."));
+ }
+
+ switch ($qobj['criterion']) {
+ case CRITERION_ID:
+ $multiple = false;
+ if ($parent && $parent['type'] == QUERY_TYPE_OR) {
+ $multiple = array();
+ foreach ($parent['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ $child['criterion'] != CRITERION_ID) {
+ $multiple = false;
+ break;
+ }
+ $multiple[] = $child['value'];
+ }
+ }
+ if ($multiple) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ $vars->set('id', implode(',', $multiple));
+ } else {
+ $vars->set('id', $qobj['value']);
+ }
+ return 'props';
+
+ case CRITERION_QUEUE:
+ if ($parent && $parent['type'] == QUERY_TYPE_AND &&
+ count($parent['children']) == 2 &&
+ $parent['children'][1]['type'] == QUERY_TYPE_CRITERION &&
+ $parent['children'][1]['criterion'] == CRITERION_VERSION) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ $vars->set('version', $parent['children'][1]['value']);
+ }
+ $vars->set('queue', $qobj['value']);
+ return 'props';
+
+ case CRITERION_VERSION:
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ $vars->set('queue', $parent['children'][0]['value']);
+ $vars->set('version', $qobj['value']);
+ return 'props';
+
+ case CRITERION_TYPE:
+ $vars->set('ttype', $qobj['value']);
+ return 'props';
+
+ case CRITERION_STATE:
+ $vars->set('state', $qobj['value']);
+ return 'props';
+
+ case CRITERION_PRIORITY:
+ $vars->set('priority', $qobj['value']);
+ return 'props';
+
+ case CRITERION_TIMESTAMP:
+ case CRITERION_UPDATED:
+ case CRITERION_RESOLVED:
+ case CRITERION_ASSIGNED:
+ case CRITERION_DUE:
+ $criteria = false;
+ if ($parent && $parent['type'] == QUERY_TYPE_AND) {
+ foreach ($parent['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ ($child['criterion'] != CRITERION_TIMESTAMP &&
+ $child['criterion'] != CRITERION_UPDATED &&
+ $child['criterion'] != CRITERION_RESOLVED &&
+ $child['criterion'] != CRITERION_ASSIGNED &&
+ $child['criterion'] != CRITERION_DUE)) {
+ $criteria = false;
+ break;
+ }
+ $criteria = true;
+ }
+ }
+ if ($criteria) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ foreach ($parent['children'] as $child) {
+ switch ($child['criterion'] . $child['operator']) {
+ case CRITERION_TIMESTAMP . OPERATOR_GREATER:
+ $vars->set('ticket_timestamp[from]', $child['value']);
+ break;
+ case CRITERION_TIMESTAMP . OPERATOR_LESS:
+ $vars->set('ticket_timestamp[to]', $child['value']);
+ break;
+ case CRITERION_UPDATED . OPERATOR_GREATER:
+ $vars->set('date_updated[from]', $child['value']);
+ break;
+ case CRITERION_UPDATED . OPERATOR_LESS:
+ $vars->set('date_updated[to]', $child['value']);
+ break;
+ case CRITERION_RESOLVED . OPERATOR_GREATER:
+ $vars->set('date_resolved[from]', $child['value']);
+ break;
+ case CRITERION_RESOLVED . OPERATOR_LESS:
+ $vars->set('date_resolved[to]', $child['value']);
+ break;
+ case CRITERION_ASSIGNED . OPERATOR_GREATER:
+ $vars->set('date_assigned[from]', $child['value']);
+ break;
+ case CRITERION_ASSIGNED . OPERATOR_LESS:
+ $vars->set('date_assigned[to]', $child['value']);
+ break;
+ case CRITERION_DUE . OPERATOR_GREATER:
+ $vars->set('ticket_due[from]', $child['value']);
+ break;
+ case CRITERION_DUE . OPERATOR_LESS:
+ $vars->set('ticket_due[to]', $child['value']);
+ break;
+ }
+ }
+ }
+ return 'date';
+
+ case CRITERION_OWNERS:
+ case CRITERION_REQUESTER:
+ case CRITERION_ADDED_COMMENT:
+ $criteria = false;
+ if ($parent && $parent['type'] == QUERY_TYPE_OR) {
+ $criteria = array();
+ foreach ($parent['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ !in_array($child['criterion'], array(CRITERION_OWNERS, CRITERION_REQUESTER, CRITERION_ADDED_COMMENT))) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['criterion'];
+ }
+ if ($criteria) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ }
+ }
+ if (!$criteria) {
+ $criteria = array($qobj['criterion']);
+ }
+ $vars->set('user', $qobj['value']);
+ $vars->set('operator', $qobj['operator']);
+ foreach ($criteria as $criterion) {
+ switch ($criterion) {
+ case CRITERION_OWNERS:
+ $vars->set('owners', true);
+ break;
+ case CRITERION_REQUESTER:
+ $vars->set('requester', true);
+ break;
+ case CRITERION_ADDED_COMMENT:
+ $vars->set('comments', true);
+ break;
+ }
+ }
+ return 'user';
+
+ case CRITERION_GROUPS:
+ $vars->set('groups', $qobj['value']);
+ return 'group';
+
+ case CRITERION_COMMENT:
+ case CRITERION_SUMMARY:
+ $criteria = false;
+ if ($parent && $parent['type'] == QUERY_TYPE_OR) {
+ $criteria = array();
+ $operator = $value = null;
+ foreach ($parent['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ ($child['criterion'] != CRITERION_COMMENT &&
+ $child['criterion'] != CRITERION_SUMMARY) ||
+ (isset($operator) && $operator != $child['operator']) ||
+ (isset($value) && $value != $child['value'])) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['criterion'];
+ $operator = $child['operator'];
+ $value = $child['value'];
+ }
+ if ($criteria) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ }
+ }
+ if (!$criteria) {
+ $criteria = array($qobj['criterion']);
+ }
+ $vars->set('text', $value);
+ $vars->set('operator', $operator);
+ foreach ($criteria as $criterion) {
+ if ($criterion == CRITERION_COMMENT) {
+ $vars->set('comments', true);
+ } elseif ($criterion == CRITERION_SUMMARY) {
+ $vars->set('summary', true);
+ }
+ }
+ return 'text';
+
+ case CRITERION_ATTRIBUTE:
+ $attribs = array_keys($GLOBALS['whups_driver']->getAttributesForType());
+ $criteria = false;
+ if ($parent && $parent['type'] == QUERY_TYPE_OR) {
+ $criteria = array();
+ $operator = $value = null;
+ foreach ($parent['children'] as $child) {
+ if ($child['type'] != QUERY_TYPE_CRITERION ||
+ $child['criterion'] != CRITERION_ATTRIBUTE ||
+ (isset($operator) && $operator != $child['operator']) ||
+ (isset($value) && $value != $child['value']) ||
+ !in_array($child['cvalue'], $attribs)) {
+ $criteria = false;
+ break;
+ }
+ $criteria[] = $child['cvalue'];
+ $operator = $child['operator'];
+ $value = $child['value'];
+ }
+ if ($criteria) {
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ }
+ }
+ if (!$criteria) {
+ $criteria = array($qobj['cvalue']);
+ }
+ $vars->set('text', $value);
+ $vars->set('operator', $operator);
+ foreach ($criteria as $criterion) {
+ $vars->set('a' . $criterion, true);
+ }
+ return 'attribs';
+ }
+
+ return PEAR::raiseError(_("This query element cannot be edited."));
+ }
+
+ function deleteNode($pathstring)
+ {
+ $path = Whups_Query::stringToPath($pathstring);
+ $qobj = &$this->query;
+
+ if (!strlen($pathstring)) {
+ // Deleting the root node isn't supported.
+ $GLOBALS['notification']->push(_("Choose New Query instead of deleting the root node."), 'horde.warning');
+ return false;
+ } else {
+ $count = count($path) - 1;
+ for ($i = 0; $i < $count; $i++) {
+ $qobj = &$qobj['children'][$path[$i]];
+ }
+
+ if (!empty($qobj['children'][$path[$count]]['value']) &&
+ $this->_getParameterName($qobj['children'][$path[$count]]['value']) !== null) {
+ unset($this->parameters[array_search($pn, $this->parameters)]);
+ }
+
+ array_splice($qobj['children'], $path[$count], 1);
+ }
+ }
+
+ function hoist($pathstring)
+ {
+ $path = Whups_Query::stringToPath($pathstring);
+ $qobj = &$this->query;
+
+ if (!strlen($pathstring)) {
+ // Can't hoist the root node.
+ } else {
+ $count = count($path) - 1;
+
+ for ($i = 0; $i < $count; $i++) {
+ $qobj = &$qobj['children'][$path[$i]];
+ }
+
+ $cobj = &$qobj['children'][$path[$count]];
+
+ // TODO: make sure we're hoisting a branch.
+ array_splice($qobj['children'], $path[$count], 0, $cobj['children']);
+ array_splice($cobj['children'], 0, count($cobj['children']));
+ }
+ }
+
+ function insertBranch($pathstring, $type)
+ {
+ $path = Whups_Query::stringToPath($pathstring);
+ $qobj = &$this->query;
+
+ $newbranch = array(
+ 'type' => $type,
+ 'children' => array());
+
+ $count = count($path);
+
+ for ($i = 0; $i < $count; $i++) {
+ $qobj = &$qobj['children'][$path[$i]];
+ }
+
+ if (!isset($qobj['children']) ||
+ !is_array($qobj['children'])) {
+ $qobj['children'] = array();
+ }
+
+ $qobj['children'][] = $newbranch;
+ $path[] = count($qobj['children']) - 1;
+
+ return Whups_Query::pathToString($path);
+ }
+
+ function insertCriterion($pathstring, $criterion, $cvalue, $operator, $value)
+ {
+ $path = Whups_Query::stringToPath($pathstring);
+ $qobj = &$this->query;
+
+ $value = trim($value);
+ if ($value[0] == '"') {
+ // FIXME: The last character should be '"' as well.
+ $value = substr($value, 1, -1);
+ } else {
+ $pn = $this->_getParameterName($value);
+ if ($pn !== null) {
+ $this->parameters[] = $pn;
+ }
+ }
+
+ $newbranch = array(
+ 'type' => QUERY_TYPE_CRITERION,
+ 'criterion' => $criterion,
+ 'cvalue' => $cvalue,
+ 'operator' => $operator,
+ 'value' => $value);
+
+ $count = count($path);
+ for ($i = 0; $i < $count; $i++) {
+ $qobj = &$qobj['children'][$path[$i]];
+ }
+
+ $qobj['children'][] = $newbranch;
+ }
+
+ /**
+ * Top down traversal.
+ */
+ function walk(&$obj, $method)
+ {
+ $path = array();
+ $more = array();
+ $this->_walk($this->query, $more, $path, $obj, $method);
+ }
+
+ /**
+ * @access private
+ */
+ function _walk(&$node, &$more, &$path, &$obj, $method)
+ {
+ if ($node['type'] == QUERY_TYPE_CRITERION) {
+ $obj->$method($more, $path, QUERY_TYPE_CRITERION, $node['criterion'],
+ $node['cvalue'], $node['operator'], $node['value']);
+ } else {
+ $obj->$method($more, $path, $node['type'], null, null, null, null);
+ }
+
+ if (isset($node['children'])) {
+ $count = count($node['children']);
+
+ for ($i = 0; $i < $count; $i++) {
+ $path[] = $i;
+ $more[] = ($i < $count - 1);
+ $this->_walk($node['children'][$i], $more, $path, $obj, $method);
+ array_pop($more);
+ array_pop($path);
+ }
+ }
+ }
+
+ /**
+ * Bottom up traversal.
+ */
+ function reduce(&$obj, $method, &$vars)
+ {
+ return $this->_reduce($this->query, $obj, $method, $vars);
+ }
+
+ /**
+ * @access private
+ */
+ function _reduce(&$node, &$obj, $method, &$vars)
+ {
+ $args = array();
+
+ if (isset($node['children'])) {
+ $count = count($node['children']);
+
+ for ($i = 0; $i < $count; $i++) {
+ $result = $this->_reduce($node['children'][$i], $obj, $method, $vars);
+ $args[] = $result;
+ }
+ }
+
+ if ($node['type'] == QUERY_TYPE_CRITERION) {
+ $value = $node['value'];
+
+ $pn = $this->_getParameterName($value);
+ if ($pn !== null) {
+ $value = $vars->get($pn);
+ }
+
+ $result = $obj->$method($args, QUERY_TYPE_CRITERION, $node['criterion'],
+ $node['cvalue'], $node['operator'], $value);
+ } else {
+ $result = $obj->$method($args, $node['type'], null, null, null, null);
+ }
+
+ return $result;
+ }
+
+ /**
+ * @access private
+ */
+ function _getParameterName($value)
+ {
+ if (strcmp(substr($value, 0, 2), '${'))
+ return null;
+
+ $pn = substr($value, 2, -1);
+ if (!is_string($pn))
+ $pn = null;
+
+ return $pn;
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class Whups_QueryManager {
+
+ /**
+ * Horde_Share instance for managing shares.
+ *
+ * @var Horde_Share
+ */
+ var $_shareManager;
+
+ /**
+ * Constructor.
+ */
+ function Whups_QueryManager()
+ {
+ $this->_shareManager = &Horde_Share::singleton('whups');
+ }
+
+ /**
+ * Returns a specific query identified by its id.
+ *
+ * @param integer $queryId A query id.
+ *
+ * @return Whups_Query The matching query or null if not found.
+ */
+ function getQuery($queryId)
+ {
+ $share = $this->_shareManager->getShareById($queryId);
+ if (is_a($share, 'PEAR_Error')) {
+ return $share;
+ }
+
+ return $this->_getQuery($share);
+ }
+
+ /**
+ * Returns a specific query identified by its slug name.
+ *
+ * @param string $slug A query slug.
+ *
+ * @return Whups_Query The matching query or null if not found.
+ */
+ function getQueryBySlug($slug)
+ {
+ $shares = $this->_shareManager->listShares(Horde_Auth::getAuth(), Horde_Perms::READ,
+ array('slug' => $slug));
+ if (is_a($shares, 'PEAR_Error')) {
+ return $shares;
+ }
+ if (!count($shares)) {
+ return;
+ }
+
+ return $this->_getQuery(reset($shares));
+ }
+
+ /**
+ * Builds a query object from a share object.
+ *
+ * @param Horde_Share_Object $share A share object representing a query.
+ *
+ * @return Whups_Query The query object built from the share.
+ */
+ function _getQuery($share)
+ {
+ $queryDetails = $GLOBALS['whups_driver']->getQuery($share->getId());
+ if (is_a($queryDetails, 'PEAR_Error')) {
+ return $queryDetails;
+ }
+
+ $queryDetails['query_id'] = $share->getId();
+ $queryDetails['query_name'] = $share->get('name');
+ $queryDetails['query_slug'] = $share->get('slug');
+
+ return new Whups_Query($this, $queryDetails);
+ }
+
+ /**
+ * Checks to see if a user has a given permission to $queryId.
+ *
+ * @param integer $queryId The query to check.
+ * @param string $userid The userid of the user.
+ * @param integer $permission A Horde_Perms::* constant to test for.
+ * @param string $creator The creator of the event.
+ *
+ * @return boolean Whether or not $userid has $permission.
+ */
+ function hasPermission($queryId, $userid, $permission, $creator = null)
+ {
+ $share = $this->_shareManager->getShareById($queryId);
+ if (is_a($share, 'PEAR_Error')) {
+ // If the share doesn't exist yet, then it has open perms.
+ return true;
+ }
+ return $share->hasPermission($userid, $permission, $creator);
+ }
+
+ /**
+ * List queries.
+ */
+ function listQueries($user, $return_slugs = false)
+ {
+ $shares = $this->_shareManager->listShares($user);
+ if (is_a($shares, 'PEAR_Error')) {
+ return $shares;
+ }
+
+ $queries = array();
+ foreach ($shares as $share) {
+ $queries[$share->getId()] = $return_slugs
+ ? array('name' => $share->get('name'),
+ 'slug' => $share->get('slug'))
+ : $share->get('name');
+ }
+
+ return $queries;
+ }
+
+ /**
+ */
+ function newQuery()
+ {
+ return new Whups_Query($this);
+ }
+
+ /**
+ * @param Whups_Query $query The query to save.
+ */
+ function save($query)
+ {
+ if ($query->id) {
+ // Query already exists; get its share and update the name
+ // if necessary.
+ $share = $this->_shareManager->getShareById($query->id);
+ if (is_a($share, 'PEAR_Error')) {
+ // Share has an id but doesn't exist; just throw an
+ // error.
+ return $share;
+ }
+ if ($share->get('name') != $query->name ||
+ $share->get('slug') != $query->slug) {
+ $share->set('name', $query->name);
+ $share->set('slug', $query->slug);
+ $share->save();
+ }
+ } else {
+ // Create a new share for the query.
+ $share = $this->_shareManager->newShare(md5(microtime()));
+ $share->set('name', $query->name);
+ $share->set('slug', $query->slug);
+ $result = $this->_shareManager->addShare($share);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+ $query->id = $share->getId();
+ }
+
+ // Update the queries table.
+ $GLOBALS['whups_driver']->saveQuery($query);
+ }
+
+ /**
+ * @param Whups_Query $query The query to delete.
+ */
+ function delete($query)
+ {
+ if (!$query->id) {
+ // Queries that aren't saved yet shouldn't be able to be deleted.
+ return;
+ }
+
+ $share = $this->_shareManager->getShareById($query->id);
+ if (is_a($share, 'PEAR_Error')) {
+ return $share;
+ }
+
+ $result = $this->_shareManager->removeShare($share);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ $result = $GLOBALS['whups_driver']->deleteQuery($query->id);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/Renderer/Comment.php,v 1.24 2009-11-19 16:34:58 jan Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @package Whups
+ */
+class Horde_Form_Renderer_Comment extends Horde_Form_Renderer {
+
+ var $queue = null;
+ var $type = null;
+ var $state = null;
+ var $priority = null;
+ var $due = null;
+
+ function begin($title)
+ {
+ $this->_sectionHeader($title);
+ echo '<div id="comments">';
+ }
+
+ function render($transaction, &$vars)
+ {
+ global $prefs, $conf, $registry;
+ static $canUpdate, $comment_count = 0;
+
+ if (!isset($canUpdate)) {
+ $canUpdate = Horde_Auth::getAuth() &&
+ Whups::hasPermission($vars->get('queue'), 'queue', 'update');
+ }
+
+ $comment = '';
+ $private = false;
+ $changes = array();
+
+ $changelist = $vars->get('changes');
+ if (!$changelist) {
+ return '';
+ }
+
+ /* Format each change in this history entry, including comments,
+ * etc. */
+ foreach ($changelist as $change) {
+ switch ($change['type']) {
+ case 'summary':
+ $changes[] = sprintf(_("Summary ⇒ %s"),
+ htmlspecialchars($change['value']));
+ break;
+
+ case 'attachment':
+ $ticket = $vars->get('ticket_id');
+ if ($file = Whups::getAttachments($ticket, $change['value'])) {
+ $changes[] = sprintf(_("New Attachment: %s"),
+ Whups::attachmentUrl($ticket, $file,
+ $vars->get('queue')));
+ } else {
+ $changes[] = sprintf(_("New Attachment: %s"),
+ htmlspecialchars($change['value']));
+ }
+ break;
+
+ case 'delete-attachment':
+ $changes[] = sprintf(_("Deleted Attachment: %s"),
+ htmlspecialchars($change['value']));
+ break;
+
+ case 'assign':
+ $changes[] = sprintf(_("Assigned to %s"),
+ Whups::formatUser($change['value'], false,
+ true, true));
+ break;
+
+ case 'unassign':
+ $changes[] = sprintf(_("Taken from %s"),
+ Whups::formatUser($change['value'], false,
+ true, true));
+ break;
+
+ case 'comment':
+ $comment = $change['comment'];
+ $private = !empty($change['private']);
+ if ($comment) {
+ $reply =
+ Horde::link(
+ Horde::applicationUrl(
+ Horde_Util::addParameter(
+ $canUpdate ? 'ticket/update.php' : 'ticket/comment.php',
+ array('id' => $vars->get('ticket_id'),
+ 'transaction' => $transaction))))
+ . _("Reply to this comment") . '</a>';
+ }
+ break;
+
+ case 'queue':
+ $changes[] = sprintf(_("Queue ⇒ %s"),
+ htmlspecialchars($change['label']));
+ break;
+
+ case 'version':
+ $changes[] = sprintf(_("Version ⇒ %s"),
+ htmlspecialchars($change['label']));
+ break;
+
+ case 'type':
+ $changes[] = sprintf(_("Type ⇒ %s"),
+ htmlspecialchars($change['label']));
+ break;
+
+ case 'state':
+ $changes[] = sprintf(_("State ⇒ %s"),
+ htmlspecialchars($change['label']));
+ break;
+
+ case 'priority':
+ $changes[] = sprintf(_("Priority ⇒ %s"),
+ htmlspecialchars($change['label']));
+ break;
+
+ case 'attribute':
+ $changes[] = sprintf(_("%s ⇒ %s"),
+ htmlspecialchars($change['label']),
+ htmlspecialchars($change['value']));
+ break;
+
+ case 'due':
+ if ($change['label']) {
+ $changes[] = sprintf(
+ _("Due ⇒ %s"),
+ strftime($prefs->getValue('date_format'),
+ $change['label']));
+ }
+ break;
+ }
+ }
+
+ if ($comment) {
+ $flowed = new Horde_Text_Flowed($comment);
+ $flowed->setDelSp(true);
+ $comment = $flowed->toFlowed(false);
+ $comment = Horde_Text_Filter::filter(
+ $comment, array('text2html', 'simplemarkup', 'highlightquotes'),
+ array(array('parselevel' => Horde_Text_Filter_Text2html::MICRO, 'class' => null),
+ array(), array()));
+ if ($prefs->getValue('autolink_tickets') &&
+ $conf['prefs']['autolink_terms']) {
+ $term_regex = '/(' . $conf['prefs']['autolink_terms']
+ . ')\s*#?(\d+)/i';
+ $comment = preg_replace_callback($term_regex,
+ array(&$this, '_autolink'),
+ $comment);
+ }
+
+ $comment_count++;
+ if ($private) {
+ $comment_label = Horde::img('locked.png', '', null, $registry->getImageDir('horde'))
+ . sprintf(_("Comment #%d (Private)"), $comment_count);
+ } else {
+ $comment_label = sprintf(_("Comment #%d"), $comment_count);
+ }
+ array_unshift($changes, '<a href="#c' . $comment_count . '" id="c'
+ . $comment_count . '">'
+ . $comment_label
+ . '</a>');
+ }
+
+ if (count($changes)) {
+ ob_start();
+ $class = $private ? 'pc' : 'c';
+?>
+<div id="t<?php echo (int)$transaction ?>">
+<table cellspacing="0" width="100%">
+ <tr>
+ <td width="20%" class="<?php echo $class ?>_l nowrap" valign="top"><?php echo strftime($prefs->getValue('date_format'), $vars->get('timestamp')) ?></td>
+ <td width="20%" class="<?php echo $class ?>_m" valign="top"><?php echo $vars->get('user_id') ? Whups::formatUser($vars->get('user_id'), false, true, true) : ' ' ?></td>
+ <td width="30%" class="<?php echo $class ?>_m" valign="top"><?php echo implode('<br />', $changes) ?></td>
+ <td width="30%" class="<?php echo $class ?>_r rightAlign" valign="top"><?php if ($comment && !$private) echo $reply ?></td>
+ </tr>
+<?php if ($comment): ?>
+ <tr><td colspan="4" class="<?php echo $class ?>_b">
+ <div class="comment-body">
+ <?php echo $comment ?>
+ </div>
+ </td></tr>
+<?php else: ?>
+ <tr><td colspan="4" class="c_b"> </td></tr>
+<?php endif; ?>
+</table>
+</div>
+<?php
+ $html = ob_get_contents();
+ ob_end_clean();
+ return $html;
+ }
+
+ return '';
+ }
+
+ function _autolink($matches)
+ {
+ $url = Whups::urlFor('ticket', $matches[2]);
+ $link = '<strong>' . Horde::link($url, 'View ' . $matches[0])
+ . $matches[0] . '</a></strong>';
+ $state = $GLOBALS['whups_driver']->getTicketState($matches[2]);
+ if (!is_a($state, 'PEAR_Error') &&
+ $state['state_category'] == 'resolved') {
+ $link = '<del>' . $link . '</del>';
+ }
+ return $link;
+ }
+
+ function end()
+ {
+ echo '</div>';
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * A Horde_Form_Renderer for rendering Whups queries.
+ *
+ * $Horde: whups/lib/Renderer/Query.php,v 1.9 2009-11-23 23:44:47 jan Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @package Whups
+ */
+
+/*class Horde_Form_Renderer_QuerySetCurrentType extends Horde_Form_Renderer {
+
+ function _renderForm(&$form, &$vars, $isActive)
+ {
+ global $whups_driver;
+
+ $droptext = Horde_UI_VarRenderer_html::selectOptions($whups_driver->getAllTypes());
+ include WHUPS_TEMPLATES . '/renderer/querysetcurrenttype.inc';
+ }
+
+ function submit()
+ {
+ // noop
+ }
+}*/
+
+class Horde_Form_Renderer_Query extends Horde_Form_Renderer {
+
+ var $ticketTypes = null;
+
+ var $attributes = null;
+
+ function Horde_Form_Renderer_Query()
+ {
+ $this->ticketTypes = $GLOBALS['whups_driver']->getAllTypes();
+ $this->attributes = $GLOBALS['whups_driver']->getAllAttributes();
+ }
+
+ function _renderBegin()
+ {
+ echo '<table class="item">';
+ }
+
+ function _renderForm(&$query, &$vars, $active)
+ {
+ $this->currentRow = 1;
+ $this->isActive = $active;
+ $this->currentPath = $vars->get('path');
+
+ $this->_renderBegin();
+ $query->walk($this, '_renderRow');
+ $this->_renderEnd();
+ }
+
+ function edit(&$operations, $formname, $id)
+ {
+ include WHUPS_TEMPLATES . '/renderer/query/edit.inc';
+ }
+
+ function _renderRow(&$more, &$path, $type, $criterion, $cvalue, $operator, $value)
+ {
+ global $whups_driver, $registry;
+
+ $this->currentRow++;
+
+ $pathstring = Whups_Query::pathToString($path);
+
+ $depth = count($path);
+ $class = "item" . ($this->currentRow % 2);
+
+ switch ($type) {
+ case QUERY_TYPE_AND: $text = _("And"); break;
+ case QUERY_TYPE_OR: $text = _("Or"); break;
+ case QUERY_TYPE_NOT: $text = _("Not"); break;
+ case QUERY_TYPE_CRITERION:
+
+ switch ($criterion) {
+ case CRITERION_ID: $text = _("Id"); break;
+ case CRITERION_OWNERS: $text = _("Owners"); break;
+ case CRITERION_GROUPS: $text = _("Groups"); break;
+ case CRITERION_REQUESTER: $text = _("Requester"); break;
+ case CRITERION_ADDED_COMMENT: $text = _("Commentor"); break;
+ case CRITERION_COMMENT: $text = _("Comment"); break;
+ case CRITERION_SUMMARY: $text = _("Summary"); break;
+
+ case CRITERION_QUEUE:
+ $queue = $whups_driver->getQueue($value);
+ if ($queue) {
+ $text = _("Queue");
+ $value = $queue['name'];
+ }
+ break;
+
+ case CRITERION_VERSION:
+ $version = $whups_driver->getVersion($value);
+ if ($version) {
+ $text = _("Version");
+ $value = $version['name'];
+ }
+ break;
+
+ case CRITERION_TYPE:
+ $text = _("Type");
+ $value = $whups_driver->getTypeName($value);
+ break;
+
+ case CRITERION_STATE:
+ // The value of the following depends on the type.
+ $state = $whups_driver->getState($value);
+ if ($state && isset($this->ticketTypes[$state['type']])) {
+ $text = '[' . $this->ticketTypes[$state['type']] . '] ' .
+ _("State");
+ $value = $state['name'];
+ }
+ break;
+
+ case CRITERION_PRIORITY:
+ $state = $whups_driver->getPriority($value);
+ $text = '[' . $this->ticketTypes[$state['type']] . '] ' .
+ _("Priority");
+ $value = $state['name'];
+ break;
+
+ case CRITERION_ATTRIBUTE:
+ // The value of the following depends on the type.
+ $aname = $whups_driver->getAttributeName($cvalue);
+ $type = $this->attributes[$cvalue]['type_id'];
+ $text = '';
+ if (isset($this->ticketTypes[$type])) {
+ $text = '[' . $this->ticketTypes[$type] . '] ';
+ }
+ $text .= sprintf("Attribute \"%s\"", $aname);
+ break;
+
+ case CRITERION_TIMESTAMP:
+ $text = _("Created");
+ $value = strftime($GLOBALS['prefs']->getValue('report_time_format'), $value);
+ break;
+
+ case CRITERION_UPDATED:
+ $text = _("Updated");
+ $value = strftime($GLOBALS['prefs']->getValue('report_time_format'), $value);
+ break;
+
+ case CRITERION_RESOLVED:
+ $text = _("Resolved");
+ $value = strftime($GLOBALS['prefs']->getValue('report_time_format'), $value);
+ break;
+
+ case CRITERION_ASSIGNED:
+ $text = _("Assigned");
+ $value = strftime($GLOBALS['prefs']->getValue('report_time_format'), $value);
+ break;
+
+ case CRITERION_DUE:
+ $text = _("Due");
+ $value = strftime($GLOBALS['prefs']->getValue('report_time_format'), $value);
+ break;
+ }
+
+ if (!isset($text)) {
+ $text = sprintf(_("Unknown node type %s"), $type);
+ break;
+ }
+
+ $text .= ' ';
+
+ switch ($operator) {
+ case OPERATOR_GREATER:
+ $text .= _("is greater than");
+ break;
+
+ case OPERATOR_LESS:
+ $text .= _("is less than");
+ break;
+
+ case OPERATOR_EQUAL:
+ $text .= _("is");
+ break;
+
+ case OPERATOR_CI_SUBSTRING:
+ $text .= _("contains (case insensitive) substring");
+ break;
+
+ case OPERATOR_CS_SUBSTRING:
+ $text .= _("contains (case sensitive) substring");
+ break;
+
+ case OPERATOR_WORD:
+ $text .= _("contains the word");
+ break;
+
+ case OPERATOR_PATTERN:
+ $text .= _("matches the pattern");
+ break;
+ }
+
+ $text .= " $value";
+ break;
+
+ default:
+ $text = sprintf(_("Unknown node type %s"), $type);
+ break;
+ }
+
+ // Stick vertical-align: middle; on everything to make it look a
+ // little nicer.
+ $fimgattrs = 'height="20" width="0" style="vertical-align: middle;"';
+ $imgattrs = 'height="20" width="20" style="vertical-align: middle;"';
+ $imgdir = $registry->getImageDir('horde');
+
+ $space = '';
+ $count = count($more);
+
+ if ($count == 0) {
+ // Always have at least one image to make sure all rows are the
+ // same height.
+ $space = Horde::img('tree/blank.png', '', $fimgattrs, $imgdir) . "\n";
+ } else {
+ for ($i = 0; $i < $count - 1; $i++) {
+ if ($more[$i] == 1) {
+ $space .= Horde::img('tree/line.png', '|', $imgattrs, $imgdir) . "\n";
+ } else {
+ $space .= Horde::img('tree/blank.png', '', $imgattrs, $imgdir) . "\n";
+ }
+ }
+ }
+
+ if ($count > 0) {
+ if ($more[$count - 1] == 1) {
+ $space .= Horde::img('tree/join.png', '+', $imgattrs, $imgdir) . "\n";
+ } else {
+ $space .= Horde::img('tree/joinbottom.png', '-', $imgattrs, $imgdir) . "\n";
+ }
+ }
+
+ $extra = ($this->isActive ? '' : ' disabled="disabled"');
+ $extra .= ($pathstring == $this->currentPath ? ' checked="checked"' : '');
+ include WHUPS_TEMPLATES . '/renderer/query/render.inc';
+ }
+
+ function _renderEnd()
+ {
+ echo '</table>';
+ }
+
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Whups_Reports:: class.
+ *
+ * $Horde: whups/lib/Reports.php,v 1.36 2009/01/06 18:02:34 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @package Whups
+ */
+class Whups_Reports {
+
+ var $_backend;
+
+ var $_opentickets;
+
+ var $_closedtickets;
+
+ var $_alltickets;
+
+ function Whups_Reports($whups_driver)
+ {
+ $this->_backend = $whups_driver;
+ }
+
+ function getDataSet($report)
+ {
+ $operation = 'inc';
+ $state = null;
+ list($type, $field) = explode('|', $report);
+ if (substr($type, 0, 1) == '@') {
+ list($type, $operation, $state) = explode(':', substr($type, 1));
+ }
+ $tickets = &$this->_getTicketSet($type, ($field == 'owner'));
+
+ if (substr($field, 0, 7) == 'user_id' || $field == 'owner') {
+ $user = true;
+ } else {
+ $user = false;
+ }
+
+ $dataset = array();
+ foreach ($tickets as $info) {
+ switch ($state) {
+ case 'open':
+ require_once 'Date/Calc.php';
+
+ $date1 = getdate($info['date_resolved']);
+ $date2 = getdate($info['timestamp']);
+ $newdata = Date_Calc::dateDiff($date1['mday'],
+ $date1['mon'],
+ $date1['year'],
+ $date2['mday'],
+ $date2['mon'],
+ $date2['year']);
+ break;
+
+ default:
+ $newdata = 1;
+ }
+
+ if (empty($info[$field])) {
+ $this->_updateDataSet($dataset, _("None"), $newdata, $operation);
+ } else {
+ if ($user) {
+ $col = Whups::formatUser($info[$field], false);
+ } else {
+ $col = $info[$field];
+ }
+
+ $this->_updateDataSet($dataset, $col, $newdata, $operation);
+ }
+ }
+
+ // Perform any necessary post-processing on the dataset - process
+ // averages, for example.
+ switch ($operation) {
+ case 'avg':
+ foreach ($dataset as $index => $data) {
+ $dataset[$index] = number_format(array_sum($data) / count($data), 2);
+ }
+ break;
+ }
+
+ // Sort
+ ksort($dataset);
+
+ // Return the final data.
+ return $dataset;
+ }
+
+ function _updateDataSet(&$dataset, $index, $newdata, $operation)
+ {
+ if (isset($dataset[$index])) {
+ switch ($operation) {
+ case 'inc':
+ $dataset[$index] += $newdata;
+ break;
+
+ case 'max':
+ case 'min':
+ $dataset[$index] = $operation($newdata, $dataset[$index]);
+ break;
+
+ case 'avg':
+ $dataset[$index][] = $newdata;
+ break;
+ }
+ } else {
+ switch ($operation) {
+ case 'avg':
+ $dataset[$index] = array($newdata);
+ break;
+
+ default:
+ $dataset[$index] = $newdata;
+ }
+ }
+ }
+
+ /**
+ * Returns a time (max, min, avg) that tickets are in a particular state
+ * (open, assigned, etc.).
+ *
+ * @param string $operation One of 'max', 'min', or 'avg'.
+ * @param string $state The state to measure - 'open', etc.
+ * @param string $group_by A ticket property by which to group the
+ * results.
+ *
+ * @return integer|array The time value requested, or an array of values,
+ * if the $group_by parameter has been specified.
+ */
+ function getTime($stat, $group_by = null)
+ {
+ list($operation, $state) = explode('|', $stat);
+
+ $tickets = &$this->_getTicketSet('closed');
+ if (!count($tickets)) {
+ return PEAR::raiseError(_("There is no data for this report."));
+ }
+
+ $dataset = array();
+ if (empty($group_by)) {
+ $dataset[0] = array();
+ }
+ foreach ($tickets as $info) {
+ if (is_null($info['date_resolved'])) {
+ continue;
+ }
+
+ switch ($state) {
+ case 'open':
+ require_once 'Date/Calc.php';
+
+ $date1 = getdate($info['date_resolved']);
+ $date2 = getdate($info['timestamp']);
+ $diff = Date_Calc::dateDiff($date1['mday'],
+ $date1['mon'],
+ $date1['year'],
+ $date2['mday'],
+ $date2['mon'],
+ $date2['year']);
+ if (empty($group_by)) {
+ $dataset[0][] = $diff;
+ } else {
+ if (!isset($info[$group_by])) {
+ continue;
+ }
+ if (!isset($dataset[$info[$group_by]])) {
+ $dataset[$info[$group_by]] = array();
+ }
+ $dataset[$info[$group_by]][] = $diff;
+ }
+
+ break;
+ }
+ }
+
+ if (!count($dataset) || (is_null($group_by) && !count($dataset[0]))) {
+ return 'N/A';
+ }
+
+ switch ($operation) {
+ case 'min':
+ case 'max':
+ foreach (array_keys($dataset) as $group) {
+ $dataset[$group] = $operation($dataset[$group]);
+ }
+ break;
+
+ case 'avg':
+ foreach (array_keys($dataset) as $group) {
+ $dataset[$group] = round(array_sum($dataset[$group]) / count($dataset[$group]), 2);
+ }
+ break;
+ }
+
+ if (empty($group_by)) {
+ $dataset = $dataset[0];
+ }
+
+ return $dataset;
+ }
+
+ /**
+ * Loads a set of tickets, and cache the result inside the Whups_Reports::
+ * object to save on database access.
+ *
+ * @access private
+ *
+ * @param string $type 'open', 'closed', or 'all' - the set of
+ * tickets to fetch. A previously cached set
+ * will be returned if it is available.
+ * @param boolean $expanded List tickets once for each owner of the
+ * ticket?
+ *
+ * @return array A reference to the cached ticket set.
+ */
+ function &_getTicketSet($type, $expanded = false)
+ {
+ $queues = array_keys(Whups::permissionsFilter($this->_backend->getQueues(), 'queue'));
+ $expanded = (int)$expanded;
+ switch ($type) {
+ case 'open':
+ if (is_null($this->_opentickets[$expanded])) {
+ $this->_opentickets[$expanded] = $this->_backend->getTicketsByProperties(array('nores' => true, 'queue' => $queues), true, $expanded);
+ }
+ return $this->_opentickets[$expanded];
+
+ case 'closed':
+ if (is_null($this->_closedtickets[$expanded])) {
+ $this->_closedtickets[$expanded] = $this->_backend->getTicketsByProperties(array('res' => true, 'queue' => $queues), true, $expanded);
+ }
+ return $this->_closedtickets[$expanded];
+
+ case 'all':
+ if (is_null($this->_alltickets[$expanded])) {
+ $this->_alltickets[$expanded] = $this->_backend->getTicketsByProperties(array('queue' => $queues), true, $expanded);
+ }
+ return $this->_alltickets[$expanded];
+ }
+ }
+
+}
--- /dev/null
+<?php
+
+require_once 'Horde/Scheduler/cron.php';
+
+/**
+ * Horde_Scheduler_whups:: Send reminders for tickets based on the
+ * reminders configuration file.
+ *
+ * $Horde: whups/lib/Scheduler/whups.php,v 1.14 2009/07/01 18:30:20 selsky Exp $
+ *
+ * @package Horde_Scheduler
+ */
+class Horde_Scheduler_whups extends Horde_Scheduler {
+
+ var $_reminders;
+ var $_runtime;
+ var $_filestamp = 0;
+
+ function Horde_Scheduler_whups($params = array())
+ {
+ parent::Horde_Scheduler($params);
+ }
+
+ function run()
+ {
+ $this->_runtime = time();
+
+ // See if we need to include the reminders config file.
+ if (filemtime(WHUPS_BASE . '/config/reminders.php') > $this->_filestamp) {
+ $this->_filestamp = $this->_runtime;
+ include WHUPS_BASE . '/config/reminders.php';
+ $this->_reminders = $reminders;
+ }
+
+ foreach ($this->_reminders as $reminder) {
+ $ds = new Horde_Scheduler_cronDate($reminder['frequency']);
+ if ($ds->scheduledAt($this->_runtime)) {
+ if (!empty($reminder['server_name'])) {
+ $GLOBALS['conf']['server']['name'] = $reminder['server_name'];
+ }
+ $vars = new Horde_Variables($reminder);
+ Whups::sendReminders($vars);
+ }
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The Whups_Ticket class encapsulates some logic relating to tickets, sending
+ * updates, etc.
+ *
+ * $Horde: whups/lib/Ticket.php,v 1.106 2009-11-27 19:38:44 mrubinsk Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @author Jan Schneider <jan@horde.org>
+ * @package Whups
+ */
+class Whups_Ticket {
+
+ /**
+ * The id of the ticket this object wraps.
+ *
+ * @var integer
+ */
+ var $_id;
+
+ /**
+ * The current values of the ticket.
+ *
+ * @var array
+ */
+ var $_details;
+
+ /**
+ * Array of changes to make to the ticket.
+ *
+ * @var array
+ */
+ var $_changes = array();
+
+ /**
+ * Returns a ticket object for an id.
+ *
+ * @static
+ *
+ * @param integer $id The ticket id.
+ *
+ * @return Whups_Ticket Either a Whups_Ticket object on success or a
+ * PEAR_Error object on failure.
+ */
+ function makeTicket($id)
+ {
+ global $whups_driver;
+
+ $details = $whups_driver->getTicketDetails($id);
+ if (is_a($details, 'PEAR_Error')) {
+ return $details;
+ } else {
+ $ticket = new Whups_Ticket($id, $details);
+ return $ticket;
+ }
+ }
+
+ /**
+ * Creates a new ticket.
+ *
+ * Pretty bare wrapper around Whups_Driver::addTicket().
+ *
+ * @static
+ *
+ * @param array $info A hash with ticket information.
+ *
+ * @return Whups_Ticket Either a Whups_Ticket object on success or a
+ * PEAR_Error object on failure.
+ */
+ function newTicket($info, $requester)
+ {
+ global $whups_driver;
+
+ if (!isset($info['type'])) {
+ $info['type'] = $whups_driver->getDefaultType($info['queue']);
+ if (is_null($info['type'])) {
+ $queue = $whups_driver->getQueue($info['queue']);
+ return PEAR::raiseError(
+ sprintf(_("No type for this ticket and no default type for queue \"%s\" specified."),
+ $queue['name']));
+ }
+ }
+ if (!isset($info['state'])) {
+ $info['state'] = $whups_driver->getDefaultState($info['type']);
+ if (is_null($info['state'])) {
+ return PEAR::raiseError(
+ sprintf(_("No state for this ticket and no default state for ticket type \"%s\" specified."),
+ $whups_driver->getTypeName($info['type'])));
+ }
+ }
+ if (!isset($info['priority'])) {
+ $info['priority'] = $whups_driver->getDefaultPriority($info['type']);
+ if (is_null($info['priority'])) {
+ return PEAR::raiseError(
+ sprintf(_("No priority for this ticket and no default priority for ticket type \"%s\" specified."),
+ $whups_driver->getTypeName($info['type'])));
+ }
+ }
+
+ $id = $whups_driver->addTicket($info, $requester);
+ if (is_a($id, 'PEAR_Error')) {
+ return $id;
+ }
+
+ $details = $whups_driver->getTicketDetails($id, false);
+ if (is_a($details, 'PEAR_Error')) {
+ return $details;
+ }
+
+ $ticket = new Whups_Ticket($id, $details);
+
+ // Add attachment if one was uploaded.
+ if (!empty($info['newattachment']['name'])) {
+ $ticket->change(
+ 'attachment',
+ array('name' => $info['newattachment']['name'],
+ 'tmp_name' => $info['newattachment']['tmp_name']));
+ }
+
+ // Check for a deferred attachment upload.
+ if (!empty($info['deferred_attachment']) &&
+ !empty($_SESSION['whups']['deferred_attachment'][$info['deferred_attachment']])) {
+ $ticket->change(
+ 'attachment',
+ array('name' => $info['deferred_attachment'],
+ 'tmp_name' => $_SESSION['whups']['deferred_attachment'][$info['deferred_attachment']]));
+
+ unlink($_SESSION['whups']['deferred_attachment'][$info['deferred_attachment']]);
+ }
+
+ // Send email notifications.
+ $ticket->notify($ticket->get('user_id_requester'), true);
+
+ // Commit any changes (new attachments, etc.)
+ $ticket->commit($ticket->get('user_id_requester'),
+ $info['last-transaction'], false);
+
+ return $ticket;
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param integer $id The ticket id.
+ * @param array $details The hash of ticket information.
+ */
+ function Whups_Ticket($id, $details)
+ {
+ $this->_id = $id;
+ $this->_details = $details;
+ }
+
+ /**
+ * Returns all ticket information.
+ *
+ * @return array The ticket information.
+ */
+ function getDetails()
+ {
+ return $this->_details;
+ }
+
+ /**
+ * Returns the ticket id.
+ *
+ * @return integer The ticket id.
+ */
+ function getId()
+ {
+ return $this->_id;
+ }
+
+ /**
+ * Returns a piece of information from this ticket.
+ *
+ * @param string $detail The detail to return.
+ *
+ * @return mixed The detail value.
+ */
+ function get($detail)
+ {
+ return isset($this->_details[$detail])
+ ? $this->_details[$detail]
+ : null;
+ }
+
+ /**
+ * Changes a detail of the ticket to a new value.
+ *
+ * Never touches the backend; do not use for changes that you want to
+ * persist.
+ *
+ * @param string $detail The detail to change.
+ * @param string $value The new detail value.
+ */
+ function set($detail, $value)
+ {
+ $this->_details[$detail] = $value;
+ }
+
+ /**
+ * Tracks that a detail of the ticket should change, but does not actually
+ * make the change until commit() is called.
+ *
+ * @see commit()
+ *
+ * @param string $detail The detail to change.
+ * @param string $value The new detail value.
+ */
+ function change($detail, $value)
+ {
+ $previous_value = isset($this->_details[$detail])
+ ? $this->_details[$detail]
+ : '';
+ if ($previous_value != $value) {
+ $this->_changes[$detail] = array(
+ 'from' => $this->get($detail),
+ 'from_name' => $this->get($detail . '_name'),
+ 'to' => $value);
+ }
+ }
+
+ /**
+ * Goes through a list of built-up changes and commits them to the
+ * backend.
+ *
+ * This will send email updates by default, update the ticket log, etc.
+ *
+ * @see change()
+ *
+ * @param string $user The Horde user of the changes to be made.
+ * Defaults to the current user.
+ * @param integer $transaction The transaction these changes are part of.
+ * Defaults to a new transaction.
+ * @param boolean $notify Send ticket notifications?
+ *
+ * @return mixed True on success, PEAR_Error on failure.
+ */
+ function commit($user = null, $transaction = null, $notify = true)
+ {
+ global $whups_driver;
+
+ if (!count($this->_changes)) {
+ return true;
+ }
+
+ if (is_null($user)) {
+ $user = Horde_Auth::getAuth();
+ }
+ $author_email = isset($this->_changes['comment-email']['to'])
+ ? $this->_changes['comment-email']['to']
+ : null;
+
+ if (is_null($transaction)) {
+ // Get a new transaction id from the backend.
+ $transaction = $whups_driver->newTransaction($user, $author_email);
+ if (is_a($transaction, 'PEAR_Error')) {
+ return $transaction;
+ }
+ }
+
+ // If this is a guest update, the comment id is going to map to the
+ // requester pseudo-username.
+ if ($user === false) {
+ $user = '-' . $transaction . '_transaction';
+ }
+
+ // Run hook before setting the dates.
+ try {
+ $this->_changes = Horde::callHook('ticket_update', array($this, $this->_changes), 'whups');
+ } catch (Horde_Exception_HookNotSet $e) {
+ }
+
+ // Update cached dates.
+ $timestamp = time();
+ $this->_changes['date_updated'] = array('to' => $timestamp);
+ if (isset($this->_changes['state'])) {
+ $state = $whups_driver->getState($this->_changes['state']['to']);
+ if (is_a($state, 'PEAR_Error')) {
+ return $state;
+ }
+ if ($state['category'] == 'assigned') {
+ $this->_changes['date_assigned'] = array('to' => $timestamp);
+ $this->_changes['date_resolved'] = array('to' => null);
+ } elseif ($state['category'] == 'resolved') {
+ $this->_changes['date_resolved'] = array('to' => $timestamp);
+ } else {
+ $this->_changes['date_resolved'] = array('to' => null);
+ }
+ }
+
+ $updates = array();
+ foreach ($this->_changes as $detail => $values) {
+ $value = $values['to'];
+ switch ($detail) {
+ case 'owners':
+ // Fetch $oldOwners list; then loop through $value adding and
+ // deleting as needed.
+ $oldOwners = $whups_driver->getOwners($this->_id);
+ $this->_changes['oldowners'] = $oldOwners;
+
+ foreach ($value as $owner) {
+ if (empty($oldOwners[$owner])) {
+ $whups_driver->addTicketOwner($this->_id, $owner);
+ $whups_driver->updateLog($this->_id, $user,
+ array('assign' => $owner),
+ $transaction);
+ } else {
+ // Remove $owner from the old owners list; anyone left
+ // in $oldOwners will be removed.
+ unset($oldOwners[$owner]);
+ }
+ }
+
+ // Delete removed owners and log the removals.
+ if (is_array($oldOwners)) {
+ foreach ($oldOwners as $owner) {
+ $whups_driver->deleteTicketOwner($this->_id, $owner);
+ $whups_driver->updateLog($this->_id, $user,
+ array('unassign' => $owner),
+ $transaction);
+ }
+ }
+ break;
+
+ case 'comment':
+ $commentId = $whups_driver->addComment($this->_id, $value,
+ $user, $author_email);
+ if (is_a($commentId, 'PEAR_Error')) {
+ return $commentId;
+ }
+
+ // Store the comment id in the updates array for the log.
+ $updates['comment'] = $commentId;
+ if (!empty($this->_changes['comment-perms'])) {
+ $this->addCommentPerms(
+ $commentId,
+ $this->_changes['comment-perms']['to']);
+ }
+ break;
+
+ case 'comment-email':
+ case 'comment-perms':
+ // Skip these, handled in the comment case.
+ break;
+
+ case 'attachment':
+ $result = $this->addAttachment($value['name'],
+ $value['tmp_name']);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ } else {
+ // Store the new file name in the updates array for the
+ // log.
+ $updates['attachment'] = $value['name'];
+ }
+ break;
+
+ case 'delete-attachment':
+ $result = $this->deleteAttachment($value);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ } else {
+ // Store the deleted file name in the updates array for
+ // the log.
+ $updates['delete-attachment'] = $value;
+ }
+ break;
+
+ case 'queue':
+ // Reset version if new queue is not versioned.
+ $newqueue = $whups_driver->getQueue($value);
+ if (empty($newqueue['queue_versioned'])) {
+ $updates['version'] = 0;
+ }
+ $updates['queue'] = $value;
+
+ default:
+ $updates[$detail] = $value;
+ }
+ }
+
+ if (count($updates)) {
+ $result = $whups_driver->updateTicket($this->_id, $updates);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ $result = $whups_driver->updateLog($this->_id, $user, $updates,
+ $transaction);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+ }
+
+ // Reload $this->_details to make sure we have the latest information.
+ //
+ // @todo Only touch the db if we have to.
+ $details = $whups_driver->getTicketDetails($this->_id);
+ if (is_a($details, 'PEAR_Error')) {
+ return $details;
+ }
+ $this->_details = array_merge($this->_details, $details);
+
+ // Send notification emails to all ticket listeners.
+ if ($notify) {
+ $this->notify($user, false);
+ }
+
+ // Reset the changes array.
+ $this->_changes = array();
+
+ return true;
+ }
+
+ /**
+ * Adds an attachment to this ticket.
+ *
+ * @param string $attachment_name The name of the attachment.
+ * @param string $attachment_file The temporary file containing the data
+ * to be stored.
+ *
+ * @return mixed True on success or PEAR_Error on failure.
+ */
+ function addAttachment(&$attachment_name, $attachment_file)
+ {
+ global $conf;
+
+ if (!isset($conf['vfs']['type'])) {
+ return PEAR::raiseError(_("The VFS backend needs to be configured to enable attachment uploads."), 'horde.error');
+ }
+
+ require_once 'VFS.php';
+ $vfs = &VFS::singleton($conf['vfs']['type'],
+ Horde::getDriverConfig('vfs'));
+ if (is_a($vfs, 'PEAR_Error')) {
+ return $vfs;
+ }
+
+ // Get existing attachment names.
+ $used_names = $this->listAllAttachments();
+
+ $dir = WHUPS_VFS_ATTACH_PATH . '/' . $this->_id;
+ while ((array_search($attachment_name, $used_names) !== false) ||
+ $vfs->exists($dir, $attachment_name)) {
+ if (preg_match('/(.*)\[(\d+)\](\.[^.]*)?$/', $attachment_name,
+ $match)) {
+ $attachment_name = $match[1] . '[' . ++$match[2] . ']';
+ if (isset($match[3])) {
+ $attachment_name .= $match[3];
+ }
+ } else {
+ $dot = strrpos($attachment_name, '.');
+ if ($dot === false) {
+ $attachment_name .= '[1]';
+ } else {
+ $attachment_name = substr($attachment_name, 0, $dot)
+ . '[1]' . substr($attachment_name, $dot);
+ }
+ }
+ }
+
+ return $vfs->write($dir, $attachment_name, $attachment_file, true);
+ }
+
+ /**
+ * Removes an attachment from this ticket.
+ *
+ * @param string $attachment_name The name of the attachment.
+ *
+ * @return mixed True on success or PEAR_Error on failure.
+ */
+ function deleteAttachment($attachment_name)
+ {
+ global $conf;
+
+ if (!isset($conf['vfs']['type'])) {
+ return PEAR::raiseError(_("The VFS backend needs to be configured to enable attachment uploads."), 'horde.error');
+ }
+
+ require_once 'VFS.php';
+ $vfs = &VFS::singleton($conf['vfs']['type'],
+ Horde::getDriverConfig('vfs'));
+ if (is_a($vfs, 'PEAR_Error')) {
+ return $vfs;
+ }
+
+ $dir = WHUPS_VFS_ATTACH_PATH . '/' . $this->_id;
+ if (!$vfs->exists($dir, $attachment_name)) {
+ return PEAR::raiseError(sprintf(_("Attachment %s not found."),
+ $attachment_name),
+ 'horde.error');
+ }
+
+ return $vfs->deleteFile($dir, $attachment_name);
+ }
+
+ /**
+ * Returns a list of all files that have been attached to this ticket,
+ * whether they still exist or not.
+ */
+ function listAllAttachments()
+ {
+ $files = array();
+ $history = $GLOBALS['whups_driver']->getHistory($this->_id);
+ foreach ($history as $row) {
+ if (isset($row['changes'])) {
+ foreach ($row['changes'] as $change) {
+ if (isset($change['type']) &&
+ $change['type'] == 'attachment') {
+ $files[] = $change['value'];
+ }
+ }
+ }
+ }
+
+ return array_unique($files);
+ }
+
+ /**
+ * Redirects the browser to this ticket's view.
+ */
+ function show()
+ {
+ header('Location: ' . Whups::urlFor('ticket', $this->_id, true));
+ exit;
+ }
+
+ /**
+ * Sets exclusive read permissions on a comment to a certain group.
+ *
+ * @param integer $commentId The id of the comment to restrict.
+ * @param string $group The group name to limit access by.
+ */
+ function addCommentPerms($commentId, $group)
+ {
+ if (!empty($group)) {
+ $perm = &$GLOBALS['perms']->newPermission('whups:comments:'
+ . $commentId);
+ $perm->addGroupPermission($group, Horde_Perms::READ, false);
+ return $GLOBALS['perms']->addPermission($perm);
+ }
+ }
+
+ /**
+ * Sets all properties of the ticket necessary to display the
+ * TicketDetailsForm.
+ *
+ * @param Horde_Variables $vars The form variables object to set info in.
+ */
+ function setDetails(&$vars)
+ {
+ $vars->set('id', $this->getId());
+ foreach ($this->getDetails() as $varname => $value) {
+ $vars->set($varname, $value);
+ }
+
+ /* User formatting. */
+ $vars->set('user_id_requester',
+ Whups::formatUser($this->get('user_id_requester')));
+ $vars->set('user_id_owner', Whups::getOwners($this->_id));
+
+ /* Attachments. */
+ $attachments = array();
+ $files = Whups::getAttachments($this->_id);
+ if ($files) {
+ if (is_a($files, 'PEAR_Error')) {
+ $GLOBALS['notification']->push($files);
+ } else {
+ foreach ($files as $file) {
+ $attachments[] = Whups::attachmentUrl(
+ $this->_id, $file, $this->_details['queue']);
+ }
+ }
+ $vars->set('attachments', implode("<br />\n", $attachments));
+ }
+ }
+
+ /**
+ * Notifies all appropriate people of the creation/update of this ticket.
+ *
+ * @param string $author Who created/changed the ticket?
+ * @param boolean $isNew Is this a new ticket or a change to an existing
+ * one?
+ * @param array $listeners The list of listener that should receive the
+ * notification. If empty, the list will be
+ * created automatically.
+ */
+ function notify($author, $isNew, $listeners = array())
+ {
+ global $conf, $whups_driver;
+
+ /* Get the attributes for this ticket. */
+ $attributes = $whups_driver->getAttributesForType($this->get('type'));
+
+ $fields = array(
+ 'queue' => _("Queue"),
+ 'version' => _("Version"),
+ 'type' => _("Type"),
+ 'state' => _("State"),
+ 'priority' => _("Priority"),
+ 'due' => _("Due"),
+ );
+
+ $field_names = array_merge($fields, array(_("Created By"),
+ _("Updated By"),
+ _("Summary"),
+ _("Owners"),
+ _("New Attachment"),
+ _("Deleted Attachment")));
+ foreach ($attributes as $attribute) {
+ $field_names[] = $attribute['human_name'];
+ }
+
+ /* Find the longest translated field name. */
+ $length = 0;
+ foreach ($field_names as $field_name) {
+ $length = max($length, Horde_String::length($field_name));
+ }
+ $wrap_break = "\n" . str_repeat(' ', $length + 2) . '| ';
+ $wrap_width = 73 - $length;
+
+ /* Ticket URL. */
+ $url = sprintf(_("Ticket URL: %s"),
+ Whups::urlFor('ticket', $this->_id, true, -1));
+
+ /* Ticket properties. */
+ $table = "------------------------------------------------------------------------------\n"
+ . ' ' . Horde_String::pad(_("Ticket"), $length) . ' | '
+ . $this->_id . "\n" . ' '
+ . Horde_String::pad($isNew ? _("Created By") : _("Updated By"), $length)
+ . ' | ' . Whups::formatUser($author) . "\n";
+ if (isset($this->_changes['summary'])) {
+ $table .= '-' . Horde_String::pad(_("Summary"), $length) . ' | '
+ . Horde_String::wrap($this->_changes['summary']['from'],
+ $wrap_width, $wrap_break)
+ . "\n" . '+' . Horde_String::pad(_("Summary"), $length) . ' | '
+ . Horde_String::wrap($this->get('summary'), $wrap_width, $wrap_break)
+ . "\n";
+ } else {
+ $table .= ' ' . Horde_String::pad(_("Summary"), $length) . ' | '
+ . Horde_String::wrap($this->get('summary'), $wrap_width, $wrap_break)
+ . "\n";
+ }
+
+ foreach ($fields as $field => $label) {
+ if ($name = $this->get($field . '_name')) {
+ if (isset($this->_changes[$field])) {
+ $table .= '-' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($this->_changes[$field]['from_name'],
+ $wrap_width, $wrap_break)
+ . "\n" . '+' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($name, $wrap_width, $wrap_break) . "\n";
+ } else {
+ $table .= ' ' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($name, $wrap_width, $wrap_break) . "\n";
+ }
+ }
+ }
+
+ /* Attribute changes. */
+ foreach ($attributes as $id => $attribute) {
+ $attribute_id = 'attribute_' . $id;
+ $label = $attribute['human_name'];
+ if (isset($this->_changes[$attribute_id])) {
+ $table .= '-' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($this->_changes[$attribute_id]['from'],
+ $wrap_width, $wrap_break)
+ . "\n" . '+' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($this->_changes[$attribute_id]['to'],
+ $wrap_width, $wrap_break)
+ . "\n";
+ } else {
+ $table .= ' ' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($this->get($attribute_id),
+ $wrap_width, $wrap_break)
+ . "\n";
+ }
+ }
+
+ /* Show any change in ticket owners. */
+ $owners = $oldOwners = Horde_String::wrap(
+ Whups::getOwners($this->_id, false, true),
+ $wrap_width, $wrap_break);
+ if (isset($this->_changes['oldowners'])) {
+ $oldOwners = Horde_String::wrap(
+ Whups::getOwners($this->_id, false, true,
+ $this->_changes['oldowners']),
+ $wrap_width, $wrap_break);
+ }
+ if ($owners != $oldOwners) {
+ $table .= '-' . Horde_String::pad(_("Owners"), $length) . ' | '
+ . $oldOwners . "\n" . '+' . Horde_String::pad(_("Owners"), $length)
+ . ' | ' . $owners . "\n";
+ } else {
+ $table .= ' ' . Horde_String::pad(_("Owners"), $length) . ' | '
+ . $owners . "\n";
+ }
+
+ /* New Attachments. */
+ if (isset($this->_changes['attachment'])) {
+ $table .= '+' . Horde_String::pad(_("New Attachment"), $length) . ' | '
+ . $this->_changes['attachment']['to']['name'] . "\n";
+ }
+
+ /* Deleted Attachments. */
+ if (isset($this->_changes['delete-attachment'])) {
+ $table .= '+' . Horde_String::pad(_("Deleted Attachment"), $length)
+ . ' | ' . $this->_changes['delete-attachment']['to'] . "\n";
+ }
+
+ $table .= "------------------------------------------------------------------------------";
+
+ /* Add the "do not reply" tag if we don't monitor incoming mail. */
+ if (empty($conf['mail']['reply'])) {
+ $dont_reply = _("DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.") . "\n\n";
+ } else {
+ $dont_reply = '';
+ }
+
+ /* Build message template. */
+ $identity = &Horde_Prefs_Identity::singleton();
+ $name = $identity->getValue('fullname');
+ if (empty($name)) {
+ $name = Horde_Auth::getBareAuth();
+ }
+
+ /* Get queue specific notification message text, if available. */
+ $message_file = WHUPS_BASE . '/config/'
+ . ($isNew ? 'create_email' : 'notify_email');
+ if (file_exists($message_file . '_' . $this->get('queue') . '.txt')) {
+ $message_file .= '_' . $this->get('queue');
+ }
+ $message_file .= '.txt';
+
+ /* Prepare message text. */
+ $message = Horde_String::convertCharset(file_get_contents($message_file),
+ 'UTF-8');
+ $message = str_replace(
+ array('@@ticket_url@@',
+ '@@table@@',
+ '@@dont_reply@@',
+ '@@date@@',
+ '@@auth_name@@'),
+ array($url, $table, $dont_reply,
+ strftime($GLOBALS['prefs']->getValue('date_format')),
+ $name),
+ $message);
+
+ /* Include Re: if the ticket isn't new for easy
+ * filtering/eyeballing. */
+ $subject = $this->get('summary');
+ if (!$isNew) {
+ $subject = 'Re: ' . $subject;
+ }
+
+ if (empty($listeners)) {
+ if ($conf['mail']['incl_resp'] ||
+ !count($whups_driver->getOwners($this->_id))) {
+ /* Include all responsible. */
+ $listeners = $whups_driver->getListeners($this->_id, true,
+ true, true);
+ } else {
+ /* Don't include all responsible unless ticket is assigned. */
+ $listeners = $whups_driver->getListeners($this->_id, true,
+ true, false);
+ }
+
+ /* Notify both old and new queue users if the queue has changed. */
+ if (isset($this->_changes['queue'])) {
+ $listeners = array_merge(
+ $listeners,
+ $whups_driver->getQueueUsers(
+ $this->_changes['queue']['from_name']));
+ }
+ }
+
+ /* Pass off to Whups_Driver::mail() to do the actual comment fetching,
+ * permissions checks, etc. */
+ $whups_driver->mail($this->_id, $listeners, $subject, $message, $author,
+ false, $this->get('queue'), $isNew);
+ }
+
+ /**
+ * Returns a plain text representation of a ticket.
+ *
+ * @param string $author Who created/changed the ticket?
+ * @param boolean $isNew Is this a new ticket or a change to an existing
+ * one?
+ */
+ function toString()
+ {
+ $fields = array('queue' => _("Queue"),
+ 'version' => _("Version"),
+ 'type' => _("Type"),
+ 'state' => _("State"),
+ 'priority' => _("Priority"),
+ 'due' => _("Due"));
+
+ /* Find longest translated field name. */
+ $length = 0;
+ foreach (array_merge($fields, array(_("Summary"), _("Owners")))
+ as $field) {
+ $length = max($length, Horde_String::length($field));
+ }
+ $wrap_break = "\n" . str_repeat(' ', $length + 2) . '| ';
+ $wrap_width = 73 - $length;
+
+ /* Ticket properties. */
+ $message = ' ' . Horde_String::pad(_("Ticket"), $length) . ' | '
+ . $this->_id . "\n" . ' ' . Horde_String::pad(_("Summary"), $length)
+ . ' | ' . Horde_String::wrap($this->get('summary'),
+ $wrap_width, $wrap_break)
+ . "\n";
+
+ foreach ($fields as $field => $label) {
+ if ($name = $this->get($field . '_name')) {
+ $message .= ' ' . Horde_String::pad($label, $length) . ' | '
+ . Horde_String::wrap($name, $wrap_width, $wrap_break) . "\n";
+ }
+ }
+
+ $message .= ' ' . Horde_String::pad(_("Owners"), $length) . ' | '
+ . Horde_String::wrap(Whups::getOwners($this->_id, false, true),
+ $wrap_width, $wrap_break)
+ . "\n";
+
+ return $message;
+ }
+
+ function __toString()
+ {
+ return $this->toString();
+ }
+
+ /**
+ * Adds ticket attribute values to the ticket's details, and returns the
+ * list of attributes.
+ *
+ * @return array List of ticket attribute hashes.
+ */
+ function addAttributes()
+ {
+ $attributes = $GLOBALS['whups_driver']->getAllTicketAttributesWithNames($this->getId());
+ if (is_a($attributes, 'PEAR_Error')) {
+ return $attributes;
+ }
+
+ foreach ($attributes as $attribute_id => $attribute) {
+ $this->set('attribute_' . $attribute_id, $attribute['value']);
+ }
+ return $attributes;
+ }
+
+}
+
+/**
+ * @package Whups
+ */
+class TicketDetailsForm extends Horde_Form {
+
+ /**
+ */
+ function TicketDetailsForm(&$vars, &$ticket, $title = '')
+ {
+ parent::Horde_Form($vars, $title);
+
+ $date_params = array($GLOBALS['prefs']->getValue('date_format'));
+ $fields = array('summary', 'queue', 'version', 'type', 'state',
+ 'priority', 'owner', 'requester', 'created', 'due',
+ 'updated', 'assigned', 'resolved', 'attachments');
+ $attributes = $ticket->addAttributes();
+ if (is_a($attributes, 'PEAR_Error')) {
+ $attributes = array();
+ }
+
+ foreach ($attributes as $attribute) {
+ $fields[] = 'attribute_' . $attribute['id'];
+ }
+
+ $grouped_fields = array($fields);
+ $grouped_hook = false;
+ try {
+ $grouped_fields = Horde::callHook('group_fields', array($ticket->get('type'), $fields), 'whups');
+ $grouped_hook = true;
+ } catch (Horde_Exception_HookNotSet $e) {
+ } catch (Horde_Exception $e) {
+ Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_ERR);
+ }
+
+ foreach ($grouped_fields as $header => $fields) {
+ if ($grouped_hook) {
+ $this->addVariable($header, null, 'header', false);
+ }
+ foreach ($fields as $field) {
+ switch ($field) {
+ case 'summary':
+ $this->addVariable(_("Summary"), 'summary', 'text', true);
+ break;
+
+ case 'queue':
+ if ($vars->get('queue_link')) {
+ $this->addVariable(
+ _("Queue"), 'queue_link', 'link',
+ true, false, null,
+ array(array('url' => $vars->get('queue_link'),
+ 'text' => $vars->get('queue_name'))));
+ } else {
+ $this->addVariable(_("Queue"), 'queue_name', 'text',
+ true);
+ }
+ break;
+
+ case 'version':
+ if ($vars->get('version_name')) {
+ if ($vars->get('version_link')) {
+ $this->addVariable(
+ _("Queue Version"), 'version_name', 'link',
+ true, false, null,
+ array(
+ array('url' => $vars->get('version_link'),
+ 'text' => $vars->get('version_name'))));
+ } else {
+ $this->addVariable(_("Queue Version"),
+ 'version_name', 'text', true);
+ }
+ }
+ break;
+
+ case 'type':
+ $this->addVariable(_("Type"), 'type_name', 'text', true);
+ break;
+
+ case 'state':
+ $this->addVariable(_("State"), 'state_name', 'text', true);
+ break;
+
+ case 'priority':
+ $this->addVariable(_("Priority"), 'priority_name', 'text',
+ true);
+ break;
+
+ case 'owner':
+ $owner = &$this->addVariable(_("Owners"), 'user_id_owner',
+ 'email', false, false, null,
+ array(false, true));
+ $owner->setDefault(_("Unassigned"));
+ break;
+
+ case 'requester':
+ $this->addVariable(_("Requester"), 'user_id_requester',
+ 'email', false, false, null,
+ array(false, true));
+ break;
+
+ case 'created':
+ $this->addVariable(_("Created"), 'timestamp', 'date',
+ false, false, null, $date_params);
+ break;
+
+ case 'due':
+ $this->addVariable(_("Due"), 'due', 'datetime', false,
+ false, null, $date_params);
+ break;
+
+ case 'updated':
+ $this->addVariable(_("Updated"), 'date_updated', 'date',
+ false, false, null, $date_params);
+ break;
+
+ case 'assigned':
+ $this->addVariable(_("Assigned"), 'date_assigned', 'date',
+ false, false, null, $date_params);
+ break;
+
+ case 'resolved':
+ $this->addVariable(_("Resolved"), 'date_resolved', 'date',
+ false, false, null, $date_params);
+ break;
+
+ case 'attachments':
+ $this->addVariable(_("Attachments"), 'attachments', 'html',
+ false);
+ break;
+
+ default:
+ if (substr($field, 0, 10) == 'attribute_' &&
+ isset($attributes[substr($field, 10)])) {
+ $attribute = $attributes[substr($field, 10)];
+ $var = &$this->addVariable(
+ $attribute['human_name'],
+ 'attribute_' . $attribute['id'],
+ $attribute['type'], $attribute['required'],
+ $attribute['readonly'], $attribute['desc'],
+ $attribute['params']);
+ $var->setDefault($attribute['value']);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/View.php,v 1.5 2009/01/06 18:02:34 jan Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Whups
+ */
+
+class Whups_View {
+
+ var $_params;
+
+ function Whups_View($params)
+ {
+ $this->_params = $params;
+ if (!isset($this->_params['title'])) {
+ $this->_params['title'] = '';
+ }
+ }
+
+ function factory($view, $params)
+ {
+ $view = basename($view);
+ $class = 'Whups_View_' . $view;
+ if (!class_exists($class)) {
+ include dirname(__FILE__) . '/View/' . $view . '.php';
+ }
+ if (class_exists($class)) {
+ return new $class($params);
+ } else {
+ return PEAR::raiseError(sprintf(_("No such view \"%s\" found"), $view));
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Whups_View for displaying a list of tickets.
+ *
+ * $Horde: whups/lib/View/Results.php,v 1.6 2009/01/06 18:02:36 jan Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Robert E. Coyle <robertcoyle@hotmail.com>
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Whups
+ */
+class Whups_View_Results extends Whups_View {
+
+ var $_id;
+
+ function Whups_View_Results($params)
+ {
+ parent::Whups_View($params);
+ $this->_id = md5(uniqid(mt_rand()));
+ }
+
+ function html()
+ {
+ Horde::addScriptFile('prototype.js', 'horde', true);
+ Horde::addScriptFile('tables.js', 'horde', true);
+
+ global $prefs, $registry;
+
+ $sortby = $prefs->getValue('sortby');
+ $sortdir = $prefs->getValue('sortdir');
+ $sortdirclass = $sortdir ? 'sortup' : 'sortdown';
+
+ $ids = array();
+ foreach ($this->_params['results'] as $info) {
+ $ids[] = $info['id'];
+ }
+ $_SESSION['whups']['tickets'] = $ids;
+
+ include WHUPS_TEMPLATES . '/view/results.inc';
+ }
+
+}
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/View/SavedQueries.php,v 1.5 2009/01/06 18:02:36 jan Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Whups
+ */
+class Whups_View_SavedQueries extends Whups_View {
+
+ // Need title, results in params.
+ function html($header = true)
+ {
+ if (!count($this->_params['results'])) {
+ return;
+ }
+
+ include WHUPS_TEMPLATES . '/view/savedqueries.inc';
+
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/lib/Whups.php,v 1.202 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @package Whups
+ */
+
+/**
+ * The virtual path to use for VFS data.
+ */
+define('WHUPS_VFS_ATTACH_PATH', '.horde/whups/attachments');
+
+/**
+ * The Whups:: class provides functionality that all of Whups needs,
+ * or that should be encapsulated from other parts of the Whups
+ * system.
+ *
+ * @package Whups
+ */
+class Whups {
+
+ function urlFor($controller, $data, $full = false, $append_session = 0)
+ {
+ $rewrite = isset($GLOBALS['conf']['urls']['pretty']) &&
+ $GLOBALS['conf']['urls']['pretty'] == 'rewrite';
+
+ switch ($controller) {
+ case 'queue':
+ if ($rewrite) {
+ if (is_array($data)) {
+ if (isset($data['slug'])) {
+ $slug = $data['slug'];
+ } else {
+ $slug = $data['id'];
+ }
+ } else {
+ $slug = (int)$data;
+ }
+ return Horde::applicationUrl('queue/' . $slug, $full, $append_session);
+ } else {
+ if (is_array($data)) {
+ $id = $data['id'];
+ } else {
+ $id = $data;
+ }
+ return Horde::applicationUrl('queue/?id=' . $id, $full, $append_session);
+ }
+ break;
+
+ case 'ticket':
+ $id = (int)$data;
+ if ($rewrite) {
+ return Horde::applicationUrl('ticket/' . $id, $full, $append_session);
+ } else {
+ return Horde::applicationUrl('ticket/?id=' . $id, $full, $append_session);
+ }
+ break;
+
+ case 'ticket_rss':
+ $id = (int)$data;
+ if ($rewrite) {
+ return Horde::applicationUrl('ticket/' . $id . '/rss', $full, $append_session);
+ } else {
+ return Horde::applicationUrl('ticket/rss.php?id=' . $id, $full, $append_session);
+ }
+ break;
+
+ case 'ticket_action':
+ list($controller, $id) = $data;
+ if ($rewrite) {
+ return Horde::applicationUrl('ticket/' . $id . '/' . $controller, $full, $append_session = 0);
+ } else {
+ return Horde::applicationUrl('ticket/' . $controller . '.php?id=' . $id, $full, $append_session = 0);
+ }
+
+ case 'query':
+ case 'query_rss':
+ if ($rewrite) {
+ if (is_array($data)) {
+ if (isset($data['slug'])) {
+ $slug = $data['slug'];
+ } else {
+ $slug = $data['id'];
+ }
+ } else {
+ $slug = (int)$data;
+ }
+ $url = 'query/' . $slug;
+ if ($controller == 'query_rss') {
+ $url .= '/rss';
+ }
+ return Horde::applicationUrl($url, $full, $append_session);
+ } else {
+ if (is_array($data)) {
+ if (isset($data['slug'])) {
+ $param = array('slug' => $data['slug']);
+ } else {
+ $param = array('query' => $data['id']);
+ }
+ } else {
+ $param = array('query' => $data);
+ }
+ $url = $controller == 'query' ? 'query/run.php' : 'query/rss.php';
+ $url = Horde_Util::addParameter($url, $param);
+ return Horde::applicationUrl($url, $full, $append_session);
+ }
+ break;
+ }
+ }
+
+ function sortTickets(&$tickets, $by = null, $dir = null)
+ {
+ if (is_null($by)) {
+ $by = $GLOBALS['prefs']->getValue('sortby');
+ }
+ if (is_null($dir)) {
+ $dir = $GLOBALS['prefs']->getValue('sortdir');
+ }
+
+ Whups::sortBy($by);
+ Whups::sortDir($dir);
+
+ usort($tickets, array('Whups', '_sort'));
+ }
+
+ function sortBy($b = null)
+ {
+ static $by;
+
+ if (!is_null($b)) {
+ $by = $b;
+ } else {
+ return $by;
+ }
+ }
+
+ function sortDir($d = null)
+ {
+ static $dir;
+
+ if (!is_null($d)) {
+ $dir = $d;
+ } else {
+ return $dir;
+ }
+ }
+
+ function _sort($a, $b, $sortby = null, $sortdir = null)
+ {
+ static $by, $dir;
+ if (is_null($by)) {
+ $by = Whups::sortBy();
+ $dir = Whups::sortDir();
+ }
+
+ if (is_null($sortby)) {
+ $sortby = $by;
+ }
+ if (is_null($sortdir)) {
+ $sortdir = $dir;
+ }
+
+ if (is_array($sortby)) {
+ if (!isset($a[$sortby[0]])) {
+ $a[$sortby[0]] = null;
+ }
+ if (!isset($b[$sortby[0]])) {
+ $b[$sortby[0]] = null;
+ }
+
+ if (!count($sortby)) {
+ return 0;
+ } elseif ($a[$sortby[0]] > $b[$sortby[0]]) {
+ return $sortdir[0] ? -1 : 1;
+ } elseif ($a[$sortby[0]] === $b[$sortby[0]]) {
+ array_shift($sortby);
+ array_shift($sortdir);
+ return Whups::_sort($a, $b, $sortby, $sortdir);
+ } else {
+ return $sortdir[0] ? 1 : -1;
+ }
+ } else {
+ $a_val = isset($a[$sortby]) ? $a[$sortby] : null;
+ $b_val = isset($b[$sortby]) ? $b[$sortby] : null;
+
+ // Take care of the simplest case first
+ if ($a_val === $b_val) {
+ return 0;
+ }
+
+ if ((is_numeric($a_val) || is_null($a_val)) &&
+ (is_numeric($b_val) || is_null($b_val))) {
+ // Numeric comparison
+ if ($sortdir) {
+ return (int)($b_val > $a_val);
+ } else {
+ return (int)($a_val > $b_val);
+ }
+ } else {
+ // String comparison
+ if ($sortdir) {
+ return strcoll($b[$sortby], $a[$sortby]);
+ } else {
+ return strcoll($a[$sortby], $b[$sortby]);
+ }
+ }
+ }
+ }
+
+ /**
+ * Returns a new or the current CAPTCHA string.
+ *
+ * @param boolean $new If true, a new CAPTCHA is created and returned.
+ * The current, to-be-confirmed string otherwise.
+ *
+ * @return string A CAPTCHA string.
+ */
+ function getCAPTCHA($new = false)
+ {
+ if ($new || empty($_SESSION['whups']['CAPTCHA'])) {
+ $_SESSION['whups']['CAPTCHA'] = '';
+ for ($i = 0; $i < 5; $i++) {
+ $_SESSION['whups']['CAPTCHA'] .= chr(rand(65, 90));
+ }
+ }
+ return $_SESSION['whups']['CAPTCHA'];
+ }
+
+ /**
+ * List all templates of a given type.
+ *
+ * @param string $type The kind of template ('searchresults', etc.) to list.
+ *
+ * @return array All templates of the requested type.
+ */
+ function listTemplates($type)
+ {
+ $templates = array();
+
+ require WHUPS_BASE . '/config/templates.php';
+ foreach ($_templates as $name => $info) {
+ if ($info['type'] == $type) {
+ $templates[$name] = $info['name'];
+ }
+ }
+
+ return $templates;
+ }
+
+ /**
+ * Get the current ticket - use the 'id' request variable to
+ * determine what to look for. Will redirect to the default view
+ * if the ticket isn't found or if permissions checks fail.
+ */
+ function getCurrentTicket()
+ {
+ $id = preg_replace('|\D|', '', Horde_Util::getFormData('id'));
+ if (!$id) {
+ $GLOBALS['notification']->push(_("Invalid Ticket Id"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($GLOBALS['prefs']->getValue('whups_default_view') . '.php', true));
+ exit;
+ }
+
+ $ticket = Whups_Ticket::makeTicket($id);
+ if (is_a($ticket, 'PEAR_Error')) {
+ if ($ticket->code === 0) {
+ // No permissions to this ticket.
+ $GLOBALS['notification']->push($ticket->getMessage(), 'horde.warning');
+ $url = Horde::applicationUrl($GLOBALS['prefs']->getValue('whups_default_view') . '.php', true);
+ } else {
+ $GLOBALS['notification']->push($ticket->getMessage(), 'horde.error');
+ $url = Horde::applicationUrl($GLOBALS['prefs']->getValue('whups_default_view') . '.php', true);
+ }
+
+ header('Location: ' . $url);
+ exit;
+ }
+
+ return $ticket;
+ }
+
+ /**
+ * Get the tabs for navigating between ticket actions.
+ */
+ function getTicketTabs(&$vars, $id)
+ {
+ $tabs = new Horde_Ui_Tabs(null, $vars);
+ $queue = $vars->get('queue');
+
+ $tabs->addTab(_("_History"), Whups::urlFor('ticket', $id), 'history');
+ if (Whups::hasPermission($queue, 'queue', 'update')) {
+ $tabs->addTab(_("_Update"),
+ Whups::urlFor('ticket_action', array('update', $id)),
+ 'update');
+ } else {
+ $tabs->addTab(_("_Comment"),
+ Whups::urlFor('ticket_action', array('comment', $id)),
+ 'comment');
+ }
+ $tabs->addTab(_("_Watch"),
+ Whups::urlFor('ticket_action', array('watch', $id)),
+ 'watch');
+ if (Whups::hasPermission($queue, 'queue', Horde_Perms::DELETE)) {
+ $tabs->addTab(_("S_et Queue"),
+ Whups::urlFor('ticket_action', array('queue', $id)),
+ 'queue');
+ }
+ if (Whups::hasPermission($queue, 'queue', 'update')) {
+ $tabs->addTab(_("Set _Type"),
+ Whups::urlFor('ticket_action', array('type', $id)),
+ 'type');
+ }
+ if (Whups::hasPermission($queue, 'queue', Horde_Perms::DELETE)) {
+ $tabs->addTab(_("_Delete"),
+ Whups::urlFor('ticket_action', array('delete', $id)),
+ 'delete');
+ }
+
+ return $tabs;
+ }
+
+ /**
+ * Returns whether a user has a certain permission on a single resource.
+ *
+ * @param mixed $in A single resource to check.
+ * @param string $filter The kind of resource specified in
+ * $in, currently only 'queue'.
+ * @param string|integer $permission A permission, either 'assign' or
+ * 'update', or one of the PERM_*
+ * constants.
+ * @param string $user A user name.
+ *
+ * @return boolean True if the user has the specified permission.
+ */
+ function hasPermission($in, $filter, $permission, $user = null)
+ {
+ global $perms;
+
+ if (is_null($user)) {
+ $user = Horde_Auth::getAuth();
+ }
+
+ if ($permission == 'update' ||
+ $permission == 'assign' ||
+ $permission == 'requester') {
+ $admin = Horde_Auth::isAdmin('whups:admin', Horde_Perms::EDIT, $user);
+ } else {
+ $admin = Horde_Auth::isAdmin('whups:admin', $permission, $user);
+ }
+
+ switch ($filter) {
+ case 'queue':
+ if ($admin) {
+ return true;
+ }
+ switch ($permission) {
+ case Horde_Perms::SHOW:
+ case Horde_Perms::READ:
+ case Horde_Perms::EDIT:
+ case Horde_Perms::DELETE:
+ if ($perms->hasPermission('whups:queues:' . $in, $user,
+ $permission)) {
+ return true;
+ }
+ break;
+
+ default:
+ if ($perms->exists('whups:queues:' . $in . ':' . $permission)) {
+ if (($permission == 'update' ||
+ $permission == 'assign' ||
+ $permission == 'requester') &&
+ $perms->getPermissions(
+ 'whups:queues:' . $in . ':' . $permission, $user)) {
+ return true;
+ }
+ } else {
+ // If the sub-permission doesn't exist, use the queue
+ // permission at an EDIT level and lock out guests.
+ if ($permission != 'requester' &&
+ Horde_Auth::getAuth() &&
+ $perms->hasPermission('whups:queues:' . $in, $user,
+ Horde_Perms::EDIT)) {
+ return true;
+ }
+ }
+ break;
+ }
+ break;
+ }
+
+ return false;
+ }
+
+ /**
+ * Filters a list of resources based on whether a user use certain
+ * permissions on it.
+ *
+ * @param array $in A list of resources to check.
+ * @param string $filter The kind of resource specified in $in,
+ * one of 'queue', 'queue_id', 'reply', or
+ * 'comment'.
+ * @param integer $permission A permission, one of the PERM_* constants.
+ * @param string $user A user name.
+ * @param string $creator The creator of an object in the resource,
+ * e.g. a ticket creator.
+ *
+ * @return array The list of resources matching the permission criteria.
+ */
+ function permissionsFilter($in, $filter, $permission = Horde_Perms::READ,
+ $user = null, $creator = null)
+ {
+ global $perms;
+
+ if (is_null($user)) {
+ $user = Horde_Auth::getAuth();
+ }
+
+ $admin = Horde_Auth::isAdmin('whups:admin', $permission, $user);
+ $out = array();
+
+ switch ($filter) {
+ case 'queue':
+ if ($admin) {
+ return $in;
+ }
+ foreach ($in as $queueID => $name) {
+ if ($perms->hasPermission('whups:queues:' . $queueID, $user,
+ $permission, $creator)) {
+ $out[$queueID] = $name;
+ }
+ }
+ break;
+
+ case 'queue_id':
+ if ($admin) {
+ return $in;
+ }
+ foreach ($in as $queueID) {
+ if ($perms->hasPermission('whups:queues:' . $queueID, $user,
+ $permission, $creator)) {
+ $out[] = $queueID;
+ }
+ }
+ break;
+
+ case 'reply':
+ if ($admin) {
+ return $in;
+ }
+ foreach ($in as $replyID => $name) {
+ if (!$perms->exists('whups:replies:' . $replyID) ||
+ $perms->hasPermission('whups:replies:' . $replyID,
+ $user, $permission, $creator)) {
+ $out[$replyID] = $name;
+ }
+ }
+ break;
+
+ case 'comment':
+ foreach ($in as $key => $row) {
+ foreach ($row as $rkey => $rval) {
+ if ($rkey != 'changes') {
+ $out[$key][$rkey] = $rval;
+ continue;
+ }
+ foreach ($rval as $i => $change) {
+ if ($change['type'] != 'comment' ||
+ !$perms->exists('whups:comments:' . $change['value'])) {
+ $out[$key][$rkey][$i] = $change;
+ if (isset($change['comment'])) {
+ $out[$key]['comment_text'] = $change['comment'];
+ }
+ } elseif ($perms->exists('whups:comments:' . $change['value'])) {
+ $change['private'] = true;
+ $out[$key][$rkey][$i] = $change;
+ if (isset($change['comment'])) {
+ if ($admin ||
+ $perms->hasPermission('whups:comments:' . $change['value'],
+ $user, Horde_Perms::READ, $creator)) {
+ $out[$key]['comment_text'] = $change['comment'];
+ } else {
+ $out[$key][$rkey][$i]['comment'] = _("[Hidden]");
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ default:
+ $out = $in;
+ break;
+ }
+
+ return $out;
+ }
+
+ function getOwnerCriteria($user)
+ {
+ $criteria = array('user:' . $user);
+ $groups = &Group::singleton();
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ foreach ($mygroups as $id => $group) {
+ $criteria[] = 'group:' . $id;
+ }
+
+ return $criteria;
+ }
+
+ /**
+ */
+ function getUserAttributes($user = null)
+ {
+ static $results;
+
+ if (is_null($user)) {
+ $user = Horde_Auth::getAuth();
+ } elseif (empty($user)) {
+ return array('user' => '',
+ 'name' => '',
+ 'email' => '');
+ }
+
+ if (!isset($results[$user])) {
+ if (strpos($user, ':') !== false) {
+ list($type, $user) = explode(':', $user, 2);
+ } else {
+ $type = 'user';
+ }
+
+ // Default this; some of the cases below might change it.
+ $results[$user]['user'] = $user;
+ $results[$user]['type'] = $type;
+
+ if ($type == 'user') {
+ if (substr($user, 0, 2) == '**') {
+ unset($results[$user]);
+ $user = substr($user, 2);
+
+ $results[$user]['user'] = $user;
+ $results[$user]['name'] = '';
+ $results[$user]['email'] = '';
+
+ try {
+ $addr_arr = Horde_Mime_Address::parseAddressList($user);
+ if (isset($addr_arr[0])) {
+ $results[$user]['name'] = isset($addr_arr[0]['personal'])
+ ? $addr_arr[0]['personal'] : '';
+ $results[$user]['email'] = $addr_arr[0]['mailbox'] . '@'
+ . $addr_arr[0]['host'];
+ }
+ } catch (Horde_Mime_Exception $e) {}
+ } elseif ($user < 0) {
+ global $whups_driver;
+
+ $results[$user]['user'] = '';
+ $results[$user]['name'] = '';
+ $results[$user]['email'] = $whups_driver->getGuestEmail($user);
+
+ try {
+ $addr_arr = Horde_Mime_Address::parseAddressList($results[$user]['email']);
+ if (isset($addr_arr[0])) {
+ $results[$user]['name'] = isset($addr_arr[0]['personal'])
+ ? $addr_arr[0]['personal'] : '';
+ $results[$user]['email'] = $addr_arr[0]['mailbox'] . '@'
+ . $addr_arr[0]['host'];
+ }
+ } catch (Horde_Mime_Exception $e) {}
+ } else {
+ $identity = &Horde_Prefs_Identity::singleton('none', $user);
+
+ $results[$user]['name'] = $identity->getValue('fullname');
+ $results[$user]['email'] = $identity->getValue('from_addr');
+ }
+ } elseif ($type == 'group') {
+ $groups = &Group::singleton();
+ $group = $groups->getGroupById($user);
+ if (is_a($group, 'PEAR_Error')) {
+ $results['user']['name'] = '';
+ $results['user']['email'] = '';
+ } else {
+ $results[$user]['user'] = $group->getShortName();
+ $results[$user]['name'] = $group->getShortName();
+ $results[$user]['email'] = $group->get('email');
+ }
+ }
+ }
+
+ return $results[$user];
+ }
+
+ /**
+ * Returns a user string from the user's name and email address.
+ *
+ * @param string|array $user A user name or a hash as returned from
+ * {@link Whups::getUserAttributes()}.
+ * @param boolean $showemail Whether to include the email address.
+ * @param boolean $showname Whether to include the full name.
+ * @param boolean $html Whether to "prettify" the result. If true,
+ * email addresses are obscured, the result is
+ * escaped for HTML output, and a group icon
+ * might be added.
+ */
+ function formatUser($user = null, $showemail = true, $showname = true,
+ $html = false)
+ {
+ if (!is_null($user) && empty($user)) {
+ return '';
+ }
+
+ if (is_array($user)) {
+ $details = $user;
+ } else {
+ $details = Whups::getUserAttributes($user);
+ }
+ if (!empty($details['name'])) {
+ $name = $details['name'];
+ } else {
+ $name = $details['user'];
+ }
+ if (($showemail || empty($name) || !$showname) &&
+ !empty($details['email'])) {
+ if ($html && strpos($details['email'], '@') !== false) {
+ $details['email'] = str_replace(array('@', '.'),
+ array(' (at) ', ' (dot) '),
+ $details['email']);
+ }
+
+ if (!empty($name) && $showname) {
+ $name .= ' <' . $details['email'] . '>';
+ } else {
+ $name = $details['email'];
+ }
+ }
+
+ if ($html) {
+ $name = htmlspecialchars($name);
+ if ($details['type'] == 'group') {
+ $name = Horde::img('group.png',
+ !empty($details['name'])
+ ? $details['name']
+ : $details['user'],
+ '',
+ $GLOBALS['registry']->getImageDir('horde'))
+ . $name;
+ }
+ }
+
+ return $name;
+ }
+
+ /**
+ * Returns the set of columns and their associated parameter from the
+ * backend that should be displayed to the user. The results can depend on
+ * the current user preferences and which search function was executed.
+ *
+ * @param integer $search_type The type of search that was executed. Must
+ * be one of the WHUPS_SEARCH_ constants
+ * defined above.
+ */
+ function getSearchResultColumns($search_type = null)
+ {
+ if ($search_type == 'block') {
+ return array(
+ _("Id") => 'id',
+ _("Summary") => 'summary',
+ _("Priority") => 'priority_name',
+ _("State") => 'state_name');
+ }
+
+ return array(
+ _("Id") => 'id',
+ _("Summary") => 'summary',
+ _("State") => 'state_name',
+ _("Type") => 'type_name',
+ _("Priority") => 'priority_name',
+ _("Queue") => 'queue_name',
+ _("Requester") => 'user_id_requester',
+ _("Owners") => 'owners',
+ _("Created") => 'timestamp',
+ _("Updated") => 'date_updated',
+ _("Assigned") => 'date_assigned',
+ _("Resolved") => 'date_resolved',
+ );
+ }
+
+ /**
+ * Send reminders. One email per user.
+ *
+ * @param Horde_Variables &$vars The selection criteria.
+ */
+ function sendReminders(&$vars)
+ {
+ global $whups_driver;
+
+ // Fetch all unresolved tickets.
+ if ($vars->get('id')) {
+ $info = array('id' => $vars->get('id'));
+ } elseif ($vars->get('queue')) {
+ $info['queue'] = $vars->get('queue');
+ if ($vars->get('category')) {
+ $info['category'] = $vars->get('category');
+ } else {
+ // Make sure that resolved tickets aren't returned.
+ $info['category'] = array('unconfirmed', 'new', 'assigned');
+ }
+ } else {
+ return PEAR::raiseError(_("You must select at least one queue to send reminders for."));
+ }
+
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ Whups::sortTickets($tickets);
+ if (!count($tickets)) {
+ return PEAR::raiseError(_("No tickets matched your search criteria."));
+ }
+
+ $unassigned = $vars->get('unassigned');
+ $remind = array();
+ foreach ($tickets as $info) {
+ $info['link'] = Whups::urlFor('ticket', $info['id'], true, -1);
+ $owners = $whups_driver->getOwners($info['id']);
+ if (count($owners)) {
+ foreach ($owners as $owner) {
+ $remind[$owner][] = $info;
+ }
+ } elseif (!empty($unassigned)) {
+ $remind['**' . $unassigned][] = $info;
+ }
+ }
+
+ foreach ($remind as $user => $utickets) {
+ if (empty($user) || !count($utickets)) {
+ continue;
+ }
+ $email = "\nHere is a summary of your open tickets:\n";
+ foreach ($utickets as $info) {
+ if (!empty($email)) {
+ $email .= "\n";
+ }
+ $email .= "------\n"
+ . 'Ticket #' . $info['id'] . ': ' . $info['summary'] . "\n"
+ . 'Opened: ' . strftime('%a %d %B', $info['timestamp'])
+ . Horde_Form_Type_date::getAgo($info['timestamp']) . "\n"
+ . 'State: ' . $info['state_name'] . "\n"
+ . 'Link: ' . $info['link'] . "\n";
+ }
+ $email .= "\n";
+ $subject = 'Reminder: Your open tickets';
+ $whups_driver->mail(null, $user, $subject, $email, $user, true);
+ }
+ }
+
+ /**
+ * Build Whups' list of menu items.
+ */
+ function getMenu($returnType = 'object')
+ {
+ $menu = new Horde_Menu();
+
+ if (Horde_Auth::getAuth()) {
+ $menu->add(Horde::applicationUrl('mybugs.php'), sprintf(_("_My %s"), $GLOBALS['registry']->get('name')), 'whups.png', null, null, null, $GLOBALS['prefs']->getValue('whups_default_view') == 'mybugs' && strpos($_SERVER['PHP_SELF'], $GLOBALS['registry']->get('webroot') . '/index.php') !== false ? 'current' : null);
+ }
+ $menu->add(Horde::applicationUrl('search.php'), _("_Search"), 'search.png', null, null, null, $GLOBALS['prefs']->getValue('whups_default_view') == 'search' && strpos($_SERVER['PHP_SELF'], $GLOBALS['registry']->get('webroot') . '/index.php') !== false ? 'current' : null);
+ $menu->add(Horde::applicationUrl('ticket/create.php'), _("_New Ticket"), 'create.png', null, null, null, $GLOBALS['prefs']->getValue('whups_default_view') == 'ticket/create' && basename($_SERVER['PHP_SELF']) == 'index.php' ? 'current' : null);
+ $menu->add(Horde::applicationUrl('query/index.php'), _("_Query Builder"), 'query.png');
+ $menu->add(Horde::applicationUrl('reports.php'), _("_Reports"), 'reports.png');
+
+ /* Administration. */
+ if (Horde_Auth::isAdmin('whups:admin')) {
+ $menu->add(Horde::applicationUrl('admin/'), _("_Admin"), 'admin.png');
+ }
+
+ if ($returnType == 'object') {
+ return $menu;
+ } else {
+ return $menu->render();
+ }
+ }
+
+ /**
+ */
+ function getAttachments($ticket, $name = null)
+ {
+ global $conf;
+
+ if (empty($conf['vfs']['type'])) {
+ return false;
+ }
+
+ require_once 'VFS.php';
+ $vfs = &VFS::singleton($conf['vfs']['type'], Horde::getDriverConfig('vfs'));
+ if (is_a($vfs, 'PEAR_Error')) {
+ return $vfs;
+ }
+
+ if ($vfs->isFolder(WHUPS_VFS_ATTACH_PATH, $ticket)) {
+ $files = $vfs->listFolder(WHUPS_VFS_ATTACH_PATH . '/' . $ticket);
+ if (is_null($name)) {
+ return $files;
+ } else {
+ foreach ($files as $file) {
+ if ($file['name'] == $name) {
+ return $file;
+ }
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ */
+ function attachmentUrl($ticket, $file, $queue)
+ {
+ $link = '';
+
+ // Can we view the attachment online?
+ $mime_part = new Horde_Mime_Part();
+ $mime_part->setType(Horde_Mime_Magic::extToMime($file['type']));
+ $viewer = Horde_Mime_Viewer::factory($mime_part);
+ if ($viewer && !is_a($viewer, 'Horde_Mime_Viewer_Default')) {
+ $url = Horde_Util::addParameter(Horde::applicationUrl('view.php'),
+ array('actionID' => 'view_file',
+ 'type' => $file['type'],
+ 'file' => $file['name'],
+ 'ticket' => $ticket));
+ $link .= Horde::link($url, $file['name'], null, '_blank') . $file['name'] . '</a>';
+ } else {
+ $link .= $file['name'];
+ }
+
+ // We can always download attachments.
+ $url_params = array('actionID' => 'download_file',
+ 'file' => $file['name'],
+ 'ticket' => $ticket);
+ $link .= ' ' . Horde::link(Horde::downloadUrl($file['name'], $url_params), $file['name']) . Horde::img('download.png', _("Download"), null, $GLOBALS['registry']->getImageDir('horde')) . '</a>';
+
+ // Admins can delete attachments.
+ if (Whups::hasPermission($queue, 'queue', Horde_Perms::DELETE)) {
+ $url = Horde_Util::addParameter(
+ Horde::applicationUrl('ticket/deleteAttachment.php'),
+ array('file' => $file['name'],
+ 'id' => $ticket,
+ 'url' => Horde::selfUrl(true, false, true)));
+ $link .= ' ' . Horde::link($url, sprintf(_("Delete %s"), $file['name']), '', '', 'return window.confirm(\'' . addslashes(sprintf(_("Permanently delete %s?"), $file['name'])) . '\');') .
+ Horde::img('delete.png', sprintf(_("Delete %s"), $file['name']), null, $GLOBALS['registry']->getImageDir('horde')) . '</a>';
+ }
+
+ return $link;
+ }
+
+ function getOwners($ticket, $showemail = true, $showname = true, $owners = null)
+ {
+ if (is_null($owners)) {
+ global $whups_driver;
+ $owners = $whups_driver->getOwners($ticket);
+ if (is_a($owners, 'PEAR_Error')) {
+ Horde::logMessage($owners, __FILE__, __LINE__, PEAR_LOG_ERR);
+ return $owners->getMessage();
+ }
+ }
+
+ $results = array();
+ foreach ($owners as $owner) {
+ $results[] = Whups::formatUser($owner, $showemail, $showname);
+ }
+
+ return implode(', ', $results);
+ }
+
+ /**
+ * Add inline javascript to the output buffer.
+ *
+ * @param mixed $script The script text to add (can be stored in an
+ * array also).
+ *
+ * @return string The javascript text to output, or empty if the page
+ * headers have not yet been sent.
+ */
+ function addInlineScript($script)
+ {
+ if (is_array($script)) {
+ $script = implode(';', $script);
+ }
+
+ $script = trim($script);
+ if (empty($script)) {
+ return;
+ }
+
+ if (!isset($GLOBALS['__whups_inline_script'])) {
+ $GLOBALS['__whups_inline_script'] = array();
+ }
+ $GLOBALS['__whups_inline_script'][] = $script;
+
+ // If headers have already been sent, we need to output a
+ // <script> tag directly.
+ if (ob_get_length() || headers_sent()) {
+ Whups::outputInlineScript();
+ }
+ }
+
+ /**
+ * Print inline javascript to the output buffer.
+ *
+ * @return string The javascript text to output.
+ */
+ function outputInlineScript()
+ {
+ if (!empty($GLOBALS['__whups_inline_script'])) {
+ echo '<script type="text/javascript">//<![CDATA[' . "\n";
+ foreach ($GLOBALS['__whups_inline_script'] as $val) {
+ echo $val . "\n";
+ }
+ echo "//]]></script>\n";
+ }
+
+ $GLOBALS['__whups_inline_script'] = array();
+ }
+
+ /**
+ * Retruns the available field types including all type information from
+ * the Horde_Form classes.
+ *
+ * @return array The full field types array.
+ */
+ function fieldTypes()
+ {
+ static $fields_array = array();
+ if (!empty($fields_array)) {
+ return $fields_array;
+ }
+
+ /* Fetch all declared classes. */
+ require_once 'Horde/Form.php';
+ $classes = get_declared_classes();
+
+ /* Filter for the Horde_Form_Type classes. */
+ foreach ($classes as $class) {
+ if (strtolower(substr($class, 0, 16)) == 'horde_form_type_') {
+ $field_type = substr($class, 16);
+ /* Don't bother including the types that cannot be handled
+ * usefully. */
+ $blacklist = array('invalid', 'addresslink', 'spacer',
+ 'description', 'captcha', 'figlet',
+ 'header');
+ if (in_array($field_type, $blacklist)) {
+ continue;
+ }
+ $fields_array[$field_type] = @call_user_func(
+ array('Horde_Form_Type_' . $field_type, 'about'));
+ }
+ }
+
+ return $fields_array;
+ }
+
+ /**
+ * Returns the available field type names from the Horde_Form classes.
+ *
+ * @return array A hash The with available field types and names.
+ */
+ function fieldTypeNames()
+ {
+ /* Fetch the field type information from the Horde_Form classes. */
+ $fields = Whups::fieldTypes();
+
+ /* Strip out the name element from the array. */
+ $available_fields = array();
+ foreach ($fields as $field_type => $info) {
+ $available_fields[$field_type] = $info['name'];
+ }
+
+ /* Sort for display purposes. */
+ asort($available_fields);
+
+ return $available_fields;
+ }
+
+ /**
+ * Returns the parameters for a certain Horde_Form field type.
+ *
+ * @param string $field_type A field type.
+ *
+ * @return array A list of field type parameters.
+ */
+ function fieldTypeParams($field_type)
+ {
+ $fields = Whups::fieldTypes();
+
+ return isset($fields[$field_type]['params'])
+ ? $fields[$field_type]['params']
+ : array();
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Whups base inclusion file.
+ *
+ * This file brings in all of the dependencies that every Whups script will
+ * need, and sets up objects that all scripts use.
+ *
+ * $Horde: whups/lib/base.php,v 1.83 2009-11-21 01:05:53 chuck Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @package Whups
+ */
+
+// Check for a prior definition of HORDE_BASE (perhaps by an auto_prepend_file
+// definition for site customization).
+if (!defined('HORDE_BASE')) {
+ define('HORDE_BASE', dirname(__FILE__) . '/../..');
+}
+
+// Load the Horde Framework core, and set up inclusion paths.
+require_once HORDE_BASE . '/lib/core.php';
+
+// Registry.
+$registry = Horde_Registry::singleton();
+
+// Determine whups authentication type.
+$authentication = Horde_Util::nonInputVar('whups_authentication');
+
+try {
+ $registry->pushApp('whups', array('check_perms' => ($authentication != 'none'), 'logintasks' => true));
+} catch (Horde_Exception $e) {
+ Horde_Auth::authenticateFailure('whups', $e);
+}
+
+$conf = &$GLOBALS['conf'];
+define('WHUPS_TEMPLATES', $registry->get('templates'));
+
+// Notification system.
+$notification = &Horde_Notification::singleton();
+$notification->attach('status');
+
+// Find the base file path of Whups.
+if (!defined('WHUPS_BASE')) {
+ define('WHUPS_BASE', dirname(__FILE__) . '/..');
+}
+
+// Whups base libraries.
+require_once WHUPS_BASE . '/lib/Whups.php';
+require_once WHUPS_BASE . '/lib/Driver.php';
+
+// Horde libraries.
+require_once 'Horde/Group.php';
+
+// Form libraries.
+require_once 'Horde/Form.php';
+require_once 'Horde/Form/Renderer.php';
+
+// Start output compression.
+Horde::compressOutput();
+
+// Whups backend.
+$GLOBALS['whups_driver'] = Whups_Driver::factory();
+$GLOBALS['whups_driver']->initialise();
--- /dev/null
+<?php
+
+require_once dirname(__FILE__) . '/TestBase.php';
+
+/**
+ * API tests for Whups.
+ *
+ * $Horde: whups/lib/tests/ApiTest.php,v 1.9 2009/01/06 18:02:36 jan Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Whups
+ * @subpackage UnitTests
+ */
+class Whups_ApiTest Extends Whups_TestBase {
+ function setUp()
+ {
+ parent::setUp();
+ require_once WHUPS_BASE . '/lib/api.php';
+ }
+
+ function test_listQueues_returns_hash()
+ {
+ $GLOBALS['perms'] = new Whups_Test_Perms();
+ $result = _whups_listQueues();
+
+ // Make sure it's not a PEAR_Error
+ $this->assertOk($result);
+
+ // Validate the results
+ $this->assertEquals('queue one', $result[1]);
+ $this->assertEquals('queue three', $result[3]);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Base class for Whups test cases
+ *
+ * $Horde: whups/lib/tests/TestBase.php,v 1.11 2009/07/09 06:09:03 slusarz Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @package Whups
+ * @subpackage UnitTests
+ */
+class Whups_TestBase Extends PHPUnit_Framework_TestCase {
+
+ function setUp()
+ {
+ // TODO: Do we need to actually fake auth for any tests?
+ @define('AUTH_HANDLER', true);
+ @define('HORDE_BASE', dirname(__FILE__) . '/../../..');
+ @define('WHUPS_BASE', dirname(__FILE__) . '/../..');
+ require_once HORDE_BASE . '/lib/core.php';
+
+ // Need to ensure $browser is in the global scope.
+ $GLOBALS['browser'] = $browser;
+
+ // Set up the CLI enviroment.
+ Horde_Cli::init();
+
+ // Need to load registry. For some reason including base.php doesn't
+ // work properly yet. ($registry is not set when prefs.php loads)?
+ $GLOBALS['registry'] = Horde_Registry::singleton();
+ define('WHUPS_TEMPLATES', $GLOBALS['registry']->get('templates', 'whups'));
+ }
+
+ /**
+ * Asserts that the supplied result is not a PEAR_Error
+ *
+ * Fails with a descriptive message if so
+ * @param mixed $result The value to check
+ * @return boolean Whether the assertion was successful
+ */
+ function assertOk($result)
+ {
+ if (is_a($result, 'DB_Error')) {
+ $this->fail($result->getDebugInfo());
+ return false;
+ } elseif (is_a($result, 'PEAR_Error')) {
+ $this->fail($result->getMessage());
+ return false;
+ }
+
+ return true;
+ }
+
+}
+
+class Whups_Driver_sql {
+
+ var $_queues = array(
+ array('queue_id' => 1,
+ 'queue_name' => 'queue one',
+ 'queue_description' => 'queue one description',
+ 'queue_versioned' => 1),
+ array('queue_id' => 3,
+ 'queue_name' => 'queue three',
+ 'queue_description' => 'queue three description',
+ 'queue_versioned' => 0));
+
+ function initialise()
+ {
+ return true;
+ }
+
+ function getQueuesInternal()
+ {
+ foreach ($this->_queues as $queue) {
+ $q[$queue['queue_id']] = $queue['queue_name'];
+ }
+ return $q;
+ }
+
+}
+
+/**
+ * Permissions class to use when we need to pretend we are checking permissions
+ *
+ * Must instantiate it, then overwrite the global $perms object before calling
+ * any method that needs to check permissions.
+ */
+class Whups_Test_Perms {
+
+ function getPermissions($permission, $user = null, $creator = null)
+ {
+ return true;
+ }
+
+ function exists($permission)
+ {
+ return true;
+ }
+
+ function hasPermission($permission, $user, $perm, $creator = null)
+ {
+ return true;
+ }
+
+}
+
--- /dev/null
+<?xml version='1.0'?>
+<!-- $Horde: whups/locale/en_US/help.xml,v 1.1 2002/10/25 03:20:13 ericr Exp $ -->
+<help>
+
+<entry id="Overview">
+ <title>Overview</title>
+ <heading>Introduction</heading>
+ <para>
+ Whups is a Horde ticket-tracking application. It is very flexible in design and can be used for help desk requests, tracking software development, and anything else which needs to track a set of requests and their status.
+ </para>
+ <para>
+ Whups has complex searching, reporting and charting, email notification triggers, and a simple permissions system.
+ </para>
+</entry>
+
+</help>
--- /dev/null
+<?xml version='1.0'?>
+<!-- $Horde: whups/locale/es_ES/help.xml,v 1.1 2008/03/28 17:33:30 jan Exp $ -->
+<help>
+
+<entry id="Overview">
+ <title>Introducción</title>
+ <heading>Introducción</heading>
+ <para>
+ Whups es una aplicación de seguimiento de incidencias de Horde. Tiene un diseño muy flexible y se puede utilizar para solicitudes de asistencia, seguimiento de desarrollo de software y cualquier otra cosa que requiera controlar un conjunto de solicitudes y su estado.
+ </para>
+ <para>
+ Whups dispone de un complejo sistema de búsqueda, informes y gráficos, disparadores de notificación de correo y un sistema de permisos sencillo.
+ </para>
+</entry>
+
+</help>
--- /dev/null
+<?xml version="1.0"?>
+<!-- $Horde: whups/locale/fi_FI/help.xml,v 1.1 2005/03/16 15:30:27 jan Exp $ -->
+<help>
+ <entry id="Overview" md5="90121a4de0888ca80c3655099269ebc4" state="uptodate">
+ <title>Yleiskuva</title>
+ <heading>Esittely</heading>
+ <para>
+ Whups on Horden tikettien seuraamiseen tarkoitettu ohjelmisto. Ohjelmisto on suunniteltu varsin joustavaksi ja sitä voidaan käyttää help desk -pyyntöjen seuraamiseen, seuraamaan ohjelmiston kehitystä tai mihin tahansa muuhun toimintoon, jossa tarvitsee seurata pyyntöjä ja niiden tilaa.
+ </para>
+ <para>
+ Whups sisältää myös hakutoiminnon, raportoinnin ja kuvaajat, sähköposti-ilmoitukset ja yksinkertaisen lupajärjestelmän.
+ </para>
+</entry>
+</help>
--- /dev/null
+<?php
+/**
+ * $Horde: whups/mybugs.php,v 1.50 2009/07/08 18:30:05 slusarz Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+require_once dirname(__FILE__) . '/lib/base.php';
+require_once 'Horde/Block/Layout/View.php';
+
+// @TODO: remove this when there are blocks useful to guests
+// available.
+if (!Horde_Auth::getAuth()) {
+ require WHUPS_BASE . '/search.php';
+ exit;
+}
+
+// Get refresh interval.
+if ($r_time = $prefs->getValue('summary_refresh_time')) {
+ if ($browser->hasFeature('xmlhttpreq')) {
+ Horde::addScriptFile('prototype.js', 'horde', true);
+ } else {
+ $refresh_time = $r_time;
+ $refresh_url = Horde::applicationUrl('mybugs.php');
+ }
+}
+
+// Load layout from preferences for authenticated users, and a default
+// block set for guests.
+$mybugs_layout = @unserialize($prefs->getValue('mybugs_layout'));
+if (!$mybugs_layout) {
+ if (Horde_Auth::isAuthenticated()) {
+ $mybugs_layout = array(
+ array(array('app' => 'whups', 'params' => array('type' => 'mytickets', 'params' => false), 'height' => 1, 'width' => 1)),
+ array(array('app' => 'whups', 'params' => array('type' => 'myrequests', 'params' => false), 'height' => 1, 'width' => 1)),
+ array(array('app' => 'whups', 'params' => array('type' => 'myqueries', 'params' => false), 'height' => 1, 'width' => 1)));
+ $prefs->setValue('mybugs_layout', serialize($mybugs_layout));
+ } else {
+ // @TODO: show some blocks that are useful to guests.
+ $mybugs_layout = array();
+ }
+}
+$layout = new Horde_Block_Layout_View(
+ $mybugs_layout,
+ Horde::applicationUrl('mybugs_edit.php'),
+ Horde::applicationUrl('mybugs.php', true));
+$layout_html = $layout->toHtml();
+
+$title = sprintf(_("My %s"), $registry->get('name'));
+$menuBottom = '<div id="menuBottom"><a href="' . Horde::applicationUrl('mybugs_edit.php') . '">' . _("Add Content") . '</a></div><div class="clear"> </div>';
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+echo $layout_html;
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/mybugs_edit.php,v 1.16 2009/06/15 14:17:14 mrubinsk Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @author Jan Schneider <jan@horde.org>
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__));
+require_once WHUPS_BASE . '/lib/base.php';
+require_once 'Horde/Block/Collection.php';
+require_once 'Horde/Block/Layout/Manager.php';
+
+// Instantiate the blocks objects.
+$blocks = &Horde_Block_Collection::singleton('mybugs', array('whups'));
+$layout = &Horde_Block_Layout_Manager::singleton('mybugs', $blocks, @unserialize($prefs->getValue('mybugs_layout')));
+
+// Handle requested actions.
+$layout->handle(Horde_Util::getFormData('action'),
+ (int)Horde_Util::getFormData('row'),
+ (int)Horde_Util::getFormData('col'),
+ Horde_Util::getFormData('url'));
+if ($layout->updated()) {
+ $prefs->setValue('mybugs_layout', $layout->serialize());
+}
+
+$title = sprintf(_("My %s :: Add Content"), $registry->get('name'));
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require $registry->get('templates', 'horde') . '/portal/edit.inc';
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/opensearch.php,v 1.7 2009/07/13 20:05:59 slusarz Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+// Check for a prior definition of HORDE_BASE (perhaps by an
+// auto_prepend_file definition for site customization).
+if (!defined('HORDE_BASE')) {
+ @define('HORDE_BASE', dirname(__FILE__) . '/..');
+}
+
+// Load the Horde Framework core, and set up inclusion paths.
+require_once HORDE_BASE . '/lib/core.php';
+
+// Registry.
+$registry = Horde_Registry::singleton();
+$registry->pushApp('whups');
+
+// Url.
+$url = Horde::applicationUrl('', true);
+
+// Name.
+$name = $registry->get('name', 'whups') . ' (' . $url . ')';
+
+// Icon.
+$icon = base64_encode(file_get_contents($registry->get('themesfs', 'whups') . '/graphics/whups.png'));
+
+// Charset.
+$charset = Horde_Nls::getCharset();
+
+header('Content-Type: text/xml; charset=' . $charset);
+echo <<<PAYLOAD
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
+ <ShortName>$name</ShortName>
+ <SearchForm>$url</SearchForm>
+ <Url type="text/html"
+ method="get"
+ template="${url}ticket/">
+ <Param name="id" value="{searchTerms}"/>
+ </Url>
+ <Image height="16" width="16">data:image/png;base64,$icon</Image>
+ <InputEncoding>$charset</InputEncoding>
+
+</OpenSearchDescription>
+PAYLOAD;
--- /dev/null
+messages.po
--- /dev/null
+see horde/po/README
\ No newline at end of file
--- /dev/null
+# Bulgarian translations for Whups package.
+# Copyright 2002-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Miroslav Pendev <miro@cybershade.us>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 0.0.1-cvs\n"
+"POT-Creation-Date: 2002-09-14 00:38-0400\n"
+"PO-Revision-Date: 2002-11-19 20:44-0500\n"
+"Last-Translator: Miroslav Pendev <miro@cybershade.us>\n"
+"Language-Team: BG i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "%s Admin"
+msgstr "%s Àäìèíèñòðèðàíå"
+
+#, c-format
+msgid "%s Standard"
+msgstr "%s Ñòàíäàðò"
+
+#, c-format
+msgid "%s days"
+msgstr "%s äíè"
+
+#, c-format
+msgid "'%s' is no longer among those responsible for '%s'"
+msgstr "'%s' âå÷å íå å èçìåæäó îòãîâîðíèòå çà '%s'"
+
+#, c-format
+msgid "'%s' is now among those responsible for '%s'"
+msgstr "'%s' âå÷å e èçìåæäó îòãîâîðíèòå çà '%s'"
+
+#, c-format
+msgid ", initial priority of '%s'."
+msgstr ", íà÷àëåí ïðèîðèòåò '%s'."
+
+#, c-format
+msgid ", priority changed to '%s'."
+msgstr ", ñìåíåí ïðèîðèòåò êúì '%s'."
+
+#, c-format
+msgid ", priority is '%s'."
+msgstr ", ïðèîðèòåòà å '%s'."
+
+msgid "- Confirmation"
+msgstr "Ïîòâúðæäåíèå"
+
+msgid "- Stage 1"
+msgstr "- Åòàï 1"
+
+msgid "- Stage 2"
+msgstr "- Åòàï 2"
+
+#, c-format
+msgid "-Added By: %s\n"
+msgstr "-Äîáàâåí îò: %s\n"
+
+#, c-format
+msgid "-Assigned By: %s"
+msgstr "-Âúçëîæåí îò: %s"
+
+#, c-format
+msgid "-Assigned To: %s"
+msgstr "-Âúçëîæåí íà: %s"
+
+#, c-format
+msgid "-Comment by %s on %s:"
+msgstr "-Êîìåíòàð îò %s íà %s:"
+
+#, c-format
+msgid "-Created By: %s\n"
+msgstr "-Ñúçäàäåí îò: %s\n"
+
+#, c-format
+msgid "-Queue: %s"
+msgstr "-Ìîäóë: %s"
+
+#, c-format
+msgid "-Queue: %s\n"
+msgstr "-Ìîäóë: %s\n"
+
+#, c-format
+msgid "-New Priority: %s"
+msgstr "-Íîâ ïðèîðèòåò: %s"
+
+#, c-format
+msgid "-New State: %s"
+msgstr "-Íîâî ñúñòîÿíèå: %s"
+
+#, c-format
+msgid "-State: %s"
+msgstr "-Ñúñòîÿíèå: %s"
+
+msgid "-Summary:"
+msgstr "-Îáîáùåíèå"
+
+#, c-format
+msgid "-Ticket %s"
+msgstr "-Áþëåòèí %s"
+
+#, c-format
+msgid "-Ticket %s\n"
+msgstr "-Áþëåòèí %s\n"
+
+msgid "<i>No summary</i>"
+msgstr "<i>Íÿìà ðåçþìå</i>"
+
+msgid "Add Attribute"
+msgstr "Äîáàâè Àòðèáóòè"
+
+msgid "Add Attribute Criterion"
+msgstr "Äîáàâè àòðèáóòåí êðèòåðèé"
+
+#, c-format
+msgid "Add Attribute for '%s'"
+msgstr "Äîáàâè àòðèáóò çà '%s'"
+
+msgid "Add Comment"
+msgstr "Äîáàâè êîìåíòàð"
+
+msgid "Add Comment Succeeded"
+msgstr "Óñïåøíî äîáàâÿíå íà êîìåíòàð"
+
+msgid "Add Criterion"
+msgstr "Äîáàâè êðèòåðèé"
+
+msgid "Add Queue"
+msgstr "Äîáàâè ìîäóë"
+
+msgid "Add Priority"
+msgstr "Äîáàâè ïðèîðèòåò"
+
+#, c-format
+msgid "Add Priority for '%s'"
+msgstr "Äîáàâè ïðèîðèòåò çà '%s'"
+
+msgid "Add Property Criterion"
+msgstr "Äîáàâè êðèòåðèé çà ñîáñòâåíîñò"
+
+msgid "Add State"
+msgstr "Äîáàâè ñòàòóñ"
+
+#, c-format
+msgid "Add State for '%s'"
+msgstr "Äîáàâè ñòàòóñ çà '%s'"
+
+msgid "Add Subject"
+msgstr "Äîáàâè òåìà"
+
+msgid "Add Text Criterion"
+msgstr "Äîáàâè òåêñòîâ êðèòåðèé"
+
+#, c-format
+msgid "Add Type %s"
+msgstr "Äîáàâè òèï %s"
+
+msgid "Add User Criterion"
+msgstr "Äîáàâè êðèòåðèé çà ïîòðåáèòåë"
+
+msgid "Add Version"
+msgstr "Äîáàâè âåðñèÿ"
+
+#, c-format
+msgid "Add Version for '%s'"
+msgstr "Äîáàâè âåðñèÿ çà '%s'"
+
+#, c-format
+msgid "Add Version to '%s'"
+msgstr "Äîáàâè âåðñèÿ êúì '%s'"
+
+#, c-format
+msgid "Add a user to '%s'"
+msgstr "Äîáàâè ïîòðåáèòåë êúì '%s'"
+
+#, c-format
+msgid "Adding your ticket failed: %s."
+msgstr "Ãðåøêà ïðè äîáàâÿíå íà áþëåòèí: %s."
+
+msgid "Additional Comment"
+msgstr "Äîïúëíèòåëåí êîìåíòàð"
+
+msgid "Admin"
+msgstr "Àäìèíèíèñòðèðàíå"
+
+msgid "Admin Home"
+msgstr "Àäìèí. ñòðàíèöà"
+
+msgid "Administration"
+msgstr "Àäìèíèñòðàöèÿ"
+
+msgid "An appropriate person has been notified of this request."
+msgstr "Ïîäõîäÿù ñëóæèòåë áåøå óâåäîìåí çà òàçè ìîëáà."
+
+msgid "And"
+msgstr "Äîáàâè"
+
+msgid "Any"
+msgstr "Âñÿêà"
+
+msgid "Any Group"
+msgstr "Âñÿêà ãðóïà"
+
+msgid "Ascending"
+msgstr "Íàðàñòâàùè"
+
+msgid "Assign Ticket"
+msgstr "Âúçëàãàíå íà áþëåòèí"
+
+msgid "Assign Ticket Succeeded"
+msgstr "Âúçëàãàíåòî íà áþëåòèíà áåøå óñïåøíî"
+
+msgid "Assigned"
+msgstr "Âúçëîæåí"
+
+#, c-format
+msgid "Assigned ticket to %s"
+msgstr "Âúçëîæåí áþëåòèí íà %s"
+
+msgid "Assignee"
+msgstr "Âúçëîæåí íà"
+
+msgid "Attribute Criteria"
+msgstr "Àòðèáóòåí êðèòåðèé"
+
+msgid "Attribute Description"
+msgstr "Îïèñàíèÿ íà àòðèáóò"
+
+msgid "Attribute Name"
+msgstr "Èìå íà àòðèáóòè"
+
+msgid "Attributes for this Type"
+msgstr "Àòðèáóòè çà òîçè òèï"
+
+msgid "Average days to close by Queue"
+msgstr "Ñðåäåí áðîé äíè çà ïðèêëþ÷âàíå ïî ìîäóë"
+
+msgid "Average days to close by Owner"
+msgstr "Ñðåäåí áðîé äíè çà ïðèêëþ÷âàíå ïî ïðèòåæàòåë"
+
+msgid "Average days to close by Requester"
+msgstr "Ñðåäåí áðîé äíè çà ïðèêëþ÷âàíå ïî çàÿâèòåë"
+
+msgid "Average time a ticket is unresolved"
+msgstr "Ñðåäåí áðîé äíè çà íåðàçðåøåí áþëåòèí"
+
+msgid "Barbie"
+msgstr "Barbie"
+
+msgid "Branch Type"
+msgstr "Áðàíø òèï"
+
+msgid "Brown"
+msgstr "Brown"
+
+msgid "Burnt Orange"
+msgstr "Burnt Orange"
+
+msgid "Camouflage"
+msgstr "Camouflage"
+
+msgid "Case Insensitive Substring"
+msgstr "Íå÷óâñòâèòåëåí êúì ðàçìåðà íà áóêâèòå ïîäñòðèíã"
+
+msgid "Case Sensitive Substring"
+msgstr "×óâñòâèòåëåí êúì ðàçìåðà íà áóêâèòå ïîäñòðèíã"
+
+msgid "Change Ticket Type"
+msgstr "Ñìÿíà íà òèïà íà áþëåòèíà"
+
+msgid ""
+"Change display options such as the color scheme and how search results are "
+"sorted."
+msgstr ""
+"Ñìÿíà íà äèñïëåé îïöèèòå, êàòî öâåòíà ñõåìà è êàê äà ñå ñîðòèðàò ðåçóëòàòèòå."
+
+msgid "Change options for email notifications of ticket activity."
+msgstr "Ïðîìÿíà íà îïöèèòå çà email óâåäîìÿâàíå çà àêòèâíîñò ïî áþëåòèí."
+
+msgid "Cherry"
+msgstr "Cherry"
+
+msgid "Choose Action:"
+msgstr "Èçáåðè äåéñòâèå:"
+
+msgid "Comment"
+msgstr "êîìåíòàð"
+
+msgid "Commentor"
+msgstr "êîìåíòàð îò"
+
+msgid "Create Ticket"
+msgstr "Ñúçäàé áþëåòèí"
+
+msgid "Create Ticket - Stage 1"
+msgstr "Ñúçäàé áþëåòèí - Åòàï 1"
+
+msgid "Create Tickets"
+msgstr "Ñúçäàé áþëåòèíè"
+
+msgid "Created"
+msgstr "Ñúçäàäåí"
+
+msgid "Current Query"
+msgstr "Òåêóùà çàÿâêà"
+
+msgid "Current Type"
+msgstr "Òåêóù òèï"
+
+msgid "Date Criteria"
+msgstr "Äàðà êðèòåðèé"
+
+msgid "Date/Time format for search results"
+msgstr "Äàòà/÷àñ ôîðìàò çà ðåçóëòàòè îò òúðñåíå"
+
+msgid "Default sorting criteria:"
+msgstr "Êðèòåðèè çà ñîðòèðàíå ïî ïîäðàçáèðàíå:"
+
+msgid "Default sorting direction:"
+msgstr "Ïîñîêà íà ñîðòèðàíå ïî ïîäðàçáèðàíå:"
+
+msgid "Delete"
+msgstr "Èçòðèé"
+
+msgid "Delete Attribute"
+msgstr "Èçòðèé àòðèáóò"
+
+#, c-format
+msgid "Delete Attribute %s"
+msgstr "Èçòðèé àòðèáóò %s"
+
+msgid "Delete Attributes"
+msgstr "Èçòðèé Àòðèáóòè"
+
+msgid "Delete Queue"
+msgstr "Èçòðèé ìîäóë"
+
+#, c-format
+msgid "Delete Queue %s"
+msgstr "Èçòðèé ìîäóë %s"
+
+msgid "Delete Priority"
+msgstr "Èçòðèé ïðèîðèòåò"
+
+#, c-format
+msgid "Delete Priority %s"
+msgstr "Èçòðèé ïðèîðèòåò %s"
+
+msgid "Delete State"
+msgstr "Èçòðèé ñòàòóñ"
+
+#, c-format
+msgid "Delete State %s"
+msgstr "Èçòðèé ñòàòóñ %s"
+
+msgid "Delete Subject"
+msgstr "Èçòðèé òåìà"
+
+#, c-format
+msgid "Delete Subject %s"
+msgstr "Èçòðèé òåìà %s"
+
+msgid "Delete Ticket"
+msgstr "Èçòðèé áþëåòèí"
+
+msgid "Delete Ticket Succeeded"
+msgstr "Èçòðèâàíåòî íà áþëåòèíà áåøå óñïåøíî"
+
+msgid "Delete Type"
+msgstr "Èçòðèé òèï"
+
+#, c-format
+msgid "Delete Type %s"
+msgstr "Èçòðèé òèï %s"
+
+msgid "Delete Version"
+msgstr "Èçòðèé âåðñèÿ"
+
+#, c-format
+msgid "Delete Version %s"
+msgstr "Èçòðèé âåðñèÿ %s"
+
+msgid "Descending"
+msgstr "Íàìàëÿâàùè"
+
+msgid "Description"
+msgstr "Îïèñàíèå"
+
+msgid "Display Options"
+msgstr "Äèñïëåé Îïöèè"
+
+msgid "Edit"
+msgstr "Ðåäàêöèÿ"
+
+msgid "Edit Attribute"
+msgstr "Ðåäàêöèÿ íà àòðèáóò"
+
+#, c-format
+msgid "Edit Attribute %s"
+msgstr "Ðåäàêöèÿ íà àòðèáóò %s"
+
+msgid "Edit Attributes"
+msgstr "Ðåäàêöèÿ Àòðèáóòè"
+
+#, c-format
+msgid "Edit Attributes for '%s' %s"
+msgstr "Ðåäàêòèðàé àòðèáóòèòå çà '%s' %s"
+
+msgid "Edit Queue"
+msgstr "Ðåäàêòèðàé ìîäóë"
+
+#, c-format
+msgid "Edit Queue %s"
+msgstr "Ðåäàêòèðàé ìîäóë %s"
+
+msgid "Edit Queues"
+msgstr "Ðåäàêòèðàé ìîäóëè"
+
+msgid "Edit Priorities"
+msgstr "Ðåäàêòèðàé ïðèîðèòåòèòå"
+
+#, c-format
+msgid "Edit Priorities for '%s' %s"
+msgstr "Ðåäàêòèðàé ñâîéñòâàòà çà '%s' %s"
+
+msgid "Edit Priority"
+msgstr "Ðåäàêòèðàé ïðèîðèòåò"
+
+#, c-format
+msgid "Edit Priority %s"
+msgstr "Ðåäàêòèðàé ïðèîðèòåò %s"
+
+msgid "Edit Query"
+msgstr "Ðåäàêòèðàé çàÿâêà"
+
+msgid "Edit State"
+msgstr "Ðåäàêòèðàé ñòàòóñ"
+
+#, c-format
+msgid "Edit State %s"
+msgstr "Ðåäàêòèðàé ñòàòóñ %s"
+
+msgid "Edit States"
+msgstr "Ðåäàêöèÿ íà ñòàòóñè"
+
+#, c-format
+msgid "Edit States for '%s' %s"
+msgstr "Ðåäàêòèðàé ñòàòóñèòå çà '%s' %s"
+
+msgid "Edit Subject"
+msgstr "Ðåäàêòèðàé òåìà"
+
+#, c-format
+msgid "Edit Subject %s"
+msgstr "Ðåäàêöèÿ íà òåìà %s "
+
+msgid "Edit Subjects"
+msgstr "Ðåäàêòèðàé òåìè"
+
+msgid "Edit Type"
+msgstr "Ðåäàêòèðàé òèï"
+
+#, c-format
+msgid "Edit Type %s"
+msgstr "Ðåäàêòèðàé òèï %s"
+
+msgid "Edit Types"
+msgstr "Ðåäàêòèðàé òèïîâå"
+
+msgid "Edit Version"
+msgstr "Ðåäàêòèðàé âåðñèÿ"
+
+#, c-format
+msgid "Edit Version %s"
+msgstr "Ðåäàêòèðàé âåðñèÿ %s"
+
+msgid "Edit Versions"
+msgstr "Ðåäàêòèðàé âåðñèÿ"
+
+#, c-format
+msgid "Edit Versions for '%s' %s"
+msgstr "Ðåäàêöèÿ íà âåðñèèòå çà '%s' %s"
+
+msgid "Edit the permissions on this module"
+msgstr "Ðåäàêöèÿ íà ïðàâàòà âúðõó òîçè ìîäóë"
+
+msgid "Edit the users responsible for this module"
+msgstr "Ðåäàêòèðàé ïîòðåáèòåëèòå îòãîâîðíè çà òîçè ìîäóë"
+
+msgid "Edit the versions for this module"
+msgstr "Ðåäàêòèðàé âåðñèèòå çà òîçè ìîäóë'"
+
+msgid "Enter the password that you set when you created this ticket."
+msgstr "Âúâåäåòå ïàðîëàòà êîÿòî çàäàäîõòå ïðè ñúçäàâàíåòî íà òîçè áþëåòèí."
+
+#, c-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+"Ãðåøêà: Íåèçâåñòíà ôîðìà íà çàÿâêà %s, ùå ñå èçïîëçâàò ïîäðàçáèðàùèòå ñå "
+"ñâîéñòâà"
+
+msgid "Exact Match"
+msgstr "Òî÷íî ñúâïàäàíå"
+
+msgid "Execute Query"
+msgstr "Èçïúëíè"
+
+msgid "Green"
+msgstr "Green"
+
+msgid "Grey"
+msgstr "Grey"
+
+msgid "Help"
+msgstr "Ïîìîù"
+
+msgid "Hide Assigned"
+msgstr "Ñêðèé âúçëîæåíèòå"
+
+msgid "Hide New"
+msgstr "Ñêðèé íîâèòå"
+
+msgid "Hide Resolved"
+msgstr "Ñêðèé ðåøåíèòå"
+
+msgid "Hide Unconfirmed"
+msgstr "Ñêðèé íåïîòâúðäåíèòå"
+
+msgid "Hoist"
+msgstr "Âäèãíè"
+
+msgid "Id"
+msgstr "èäåíò."
+
+#, c-format
+msgid "If you have recieved this mail in error, please contact %s."
+msgstr "Àêî ñòå ïîëó÷èëè òîçè åìàéë ïîðàäè ãðåøêà, ìîëÿ ñâúðæåòå ñå ñ %s."
+
+#, c-format
+msgid "Initial state of '%s'"
+msgstr "Íà÷àëåí ñòàòóñ íà '%s'"
+
+msgid "Insert And"
+msgstr "Âìúêíè È"
+
+msgid "Insert Branch"
+msgstr "Âìúêíè Áðàíø"
+
+msgid "Insert Not"
+msgstr "Âìúêíè Íå"
+
+msgid "Insert Or"
+msgstr "Âìúêíè Èëè"
+
+msgid "Insert Query"
+msgstr "Âìúêíè çàÿâêà"
+
+msgid "Keep a set of versions for this queue?"
+msgstr "Äà ñå çàïàçè ëè íàáîðà îò âåðñèè çà òîçè ìîäóë?"
+
+msgid "Language"
+msgstr "Åçèê"
+
+msgid "Light Blue"
+msgstr "Light Blue"
+
+msgid "Load Query"
+msgstr "Çàðåäè çàÿâêà"
+
+msgid "Login"
+msgstr "Âõîä"
+
+msgid "MM/DD/YY"
+msgstr "ÌÌ/ÄÄ/ÃÃ"
+
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "ÌÌ/ÄÄ/ÃÃ ××:ÌÌ:ÑÑ"
+
+msgid "Match"
+msgstr "Ñúâïàäàù"
+
+msgid "Match Operator"
+msgstr "Ñúâïàäàù îïåðàòîð"
+
+msgid "Match Pattern"
+msgstr "Ñúâïàäàù ïðèìåð"
+
+msgid "Match Word"
+msgstr "Ñúâïàäàùà äóìà"
+
+msgid "Maximum time a ticket is unresolved"
+msgstr "Ìàêñèìàëíî âðåìå ïðåç êîåòî áþëåòèí å íåðàçðåøåí"
+
+msgid "Minimum time a ticket is unresolved"
+msgstr "ìèíèìàëíî "
+
+msgid "Modified Attribute"
+msgstr "Ïðîìåíåí àòðèáóò"
+
+msgid "Modified Queue"
+msgstr "Ïðîìåíåí ìîäóë"
+
+msgid "Modified Priority"
+msgstr "Ïðîìåíåí ïðèîðèòåò"
+
+msgid "Modified State"
+msgstr "Ïðîìåíåí ñòàòóñ"
+
+msgid "Modified Subject"
+msgstr "Ïðîìåíåíà òåìà"
+
+msgid "Modified Type"
+msgstr "Ïðîìåíåí òèï"
+
+msgid "Modified Version"
+msgstr "Âåðñèÿ íà ïðîìÿíàòà"
+
+msgid "Queue"
+msgstr "Ìîäóë"
+
+msgid "Queue Description"
+msgstr "Îïèñàíèå íà ìîäóë"
+
+msgid "Queue Name"
+msgstr "Èìå íà ìîäóë"
+
+msgid "Queue Version"
+msgstr "Ìîäóë âåðñèÿ"
+
+#, c-format
+msgid "Queue: %s, Ticket: %s"
+msgstr "Ìîäóë: %s, Áþëåòèí: %s"
+
+msgid "Move"
+msgstr "Ïðåìåñòè"
+
+msgid "Mozilla"
+msgstr "Mozilla"
+
+#, c-format
+msgid "My %s"
+msgstr "Ìîÿò %s"
+
+msgid "My Assigned Tickets"
+msgstr "Ìîèòå Áþëåòèíè"
+
+msgid "My Bugs"
+msgstr "Ìîèòå Áúãîâå"
+
+msgid "My Open Requests"
+msgstr "Ìîèòå îòâîðåíè ìîëáè"
+
+msgid "My Searches"
+msgstr "Ìîåòî òúðñåíå"
+
+msgid "Name"
+msgstr "Èìå"
+
+msgid "New"
+msgstr "Íîâè"
+
+msgid "New Priority"
+msgstr "Íîâ ïðèîðèòåò"
+
+msgid "New Query"
+msgstr "Íîâà çàÿâêà"
+
+msgid "New State"
+msgstr "Íîâ ñòàòóñ"
+
+msgid "New Ticket"
+msgstr "Íîâ áþëåòèí"
+
+#, c-format
+msgid "New comment for ticket %s"
+msgstr "Íîâ êîìåíòàð çà áþëåòèí %s"
+
+#, c-format
+msgid "New ticket (%s): %s"
+msgstr "Íîâ áþëåòèí (%s): %s"
+
+msgid "No"
+msgstr "Íå"
+
+msgid "No configuration information specified for SQL Bugs."
+msgstr "Íÿìà çàäàäåíà êîíôèãóðàöèÿ çà SQL áúãîâå."
+
+#, c-format
+msgid "No such backend '%s' found"
+msgstr "Íå áåøå íàìåðåí bakend '%s'"
+
+msgid "No such ticket."
+msgstr "Íÿìà òàêúâ áþëåòèí."
+
+msgid "None"
+msgstr "Íÿìà"
+
+msgid "Not"
+msgstr "Íå"
+
+msgid "Not yet implemented..."
+msgstr "Âñå îùå íå å ðàçðàáîòåíî..."
+
+msgid "Notification Options"
+msgstr "Îïöèè çà óâåäîìÿâàíå"
+
+msgid "Only notify me of ticket changes from other users"
+msgstr "Óâåäîìè ìå ñàìî ïðè ïðîìÿíà íà áþëåòèíà îò äðóãè ïîòðåáèòåëè"
+
+msgid "Open Tickets by Queue"
+msgstr "Îòâîðåíè áþëåòèíè ïî ìîäóë"
+
+msgid "Open Tickets by Owner"
+msgstr "Îòâîðåíè áþëåòèíè ïî ïðèòåæàòåë"
+
+msgid "Open Tickets by Priority"
+msgstr "Îòâîðåíè áþëåòèíè ïî ïðèîðèòåò"
+
+msgid "Open Tickets by Requester"
+msgstr "Îòâîðåí áþëåòèíè ïî çàÿâèòåë"
+
+msgid "Open Tickets by State"
+msgstr "Îòâîðåíè áþëåòèíè ïî ñòàòóñ"
+
+msgid "Open Tickets by Type"
+msgstr "Îòâîðåíè áþëåòèíè ïî òèï"
+
+msgid "Open Tickets by Version"
+msgstr "Îòâîðåíè áþëåòèíè ïî âåðñèÿ"
+
+msgid "Options"
+msgstr "Îïöèè"
+
+msgid "Or"
+msgstr "èëè"
+
+msgid "Orange"
+msgstr "Orange"
+
+msgid "Other Options"
+msgstr "Äðóãè Îïöèè"
+
+msgid "Owner"
+msgstr "Ïðèòåæàòåë"
+
+msgid "Path"
+msgstr "Ïúò"
+
+msgid "Permission Denied."
+msgstr "Ïðàâî íà äîñòúï îòêàçàí"
+
+msgid ""
+"Pick a password that you will be able to use in the future to close or "
+"otherwise modify this ticket. Type the password a second time to confirm it."
+msgstr ""
+"Èçáåðåòå ïàðîëà êîÿòî ùå èçïîëçâàòå â áúäåùå çà äà çàòâîðèòå èëè ïðîìåíÿòå "
+"áþëåòèíà. Âúâåäåòå ïàðîëàòà äâà ïúòè çà äà ïîòâúðäèòå."
+
+msgid "Priorities for this Type"
+msgstr "Ïðèîðèòåòè çà òîçè òèï"
+
+msgid "Priority"
+msgstr "Ïðèîðèòåò"
+
+msgid "Priority Description"
+msgstr "Îïèñàíèå íà ïðèîðèòåòà"
+
+msgid "Priority Name"
+msgstr "Ïðèîðèòåò èìå"
+
+msgid "Private"
+msgstr "×àñòåí"
+
+msgid "Property Criteria"
+msgstr "Êðèòåðèé ñâîéñòâî"
+
+msgid "Query Builder"
+msgstr "Èçãðàæäàíå íà çàÿâêè"
+
+msgid "Query Results"
+msgstr "Ðåçóëòàòè îò òúðñåíåòî"
+
+msgid "Re-execute Query"
+msgstr "Èçïúëíè ïîâòîðíî çàÿâêàòà"
+
+msgid "Really delete this attribute? This may cause data problems!!"
+msgstr ""
+"Äà ñå èçòðèå ëè òîçè àòðèáóò? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Really delete this queue? This may cause data problems!!"
+msgstr ""
+"Äà ñå èçòðèå ëè òîçè ìîäóë? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Really delete this priority? This may cause data problems!!"
+msgstr ""
+"Äà ñå èçòðèå ëè òîçè ïðèîðèòåò? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Really delete this state? This may cause data problems!!"
+msgstr ""
+"Äà ñå èçòðèå ëè òîçè ñòàòóñ? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Really delete this subject? This may cause data problems!!"
+msgstr "Äà ñå èçòðèå ëè òàçè òåìà? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Íàèñòèíà ëè èñêàòå äà ñå èçòðèå òîçè áþëåòèí? Íÿìà äà áúäå àðõèâèðàí è ùå "
+"áúäå çàãóáåí íåâúçâðàòèìî."
+
+msgid "Really delete this type? This may cause data problems!!"
+msgstr "Äà ñå èçòðèå ëè òîçè òèï? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Really delete this version? This may cause data problems!!"
+msgstr ""
+"Äà ñå èçòðèå ëè òàçè âåðñèÿ? Òîâà ìîæå äà äîâåäå äî ïðîáëåìè ñ äàííèòå!!"
+
+msgid "Refine Search"
+msgstr "Äîïúëíè òúðñåíåòî"
+
+msgid "Refine search"
+msgstr "Äîïúëíè òúðñåíåòî"
+
+msgid "Remove User"
+msgstr "Ïðåìàõíè ïîòðåáèòåë"
+
+msgid "Reports"
+msgstr "Ðàïîðòè"
+
+msgid "Requester"
+msgstr "Çàÿâèòåë"
+
+msgid "Required 'database' not specified in bugs configuration."
+msgstr "Íåîáõîäèìàòà 'database' íå å çàäàäåíà â êîíôèãóðàöèÿòà çà ïðîáëåìè."
+
+msgid "Required 'hostspec' not specified in bugs configuration."
+msgstr "Íåîáõîäèìèÿ 'hostspec' íå å óêàçàí â êîíôèãóðàöèÿòà çà ïðîáëåìè."
+
+msgid "Required 'password' not specified in bugs configuration."
+msgstr "Íåîáõîäèìàòà 'password' íå ñúùåñòâóâà â êîíôèãóðàöèÿ çà ïðîáëåìè."
+
+msgid "Required 'phptype' not specified in bugs configuration."
+msgstr "Íåîáõîäèìèÿ 'phptype' íå å çàäàäåí â êîíôèãóðàöèÿòà çà ïðîáëåìè."
+
+msgid "Required 'username' not specified in bugs configuration."
+msgstr "Íåîáõîäèìîòî 'username' íå å çàäàäåíî â êîíôèãóðàöèÿòà çà ïðîáëåìè."
+
+msgid "Resolved"
+msgstr "Ðàçðåøåí"
+
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Îãðàíè÷è òåìèòå íà áþëåòèíà äî ñïåöèôè÷åí ñïèñúê"
+
+msgid "Save Query"
+msgstr "Çàïèøè çàÿâêà"
+
+msgid "Save these results as: "
+msgstr "Çàïèøè òåçè ðåçóëòàòè êàòî:"
+
+msgid "Search"
+msgstr "Òúðñè"
+
+#, c-format
+msgid "Search %s Attribute"
+msgstr "òúðñè %s Àòðèáóò"
+
+msgid "Search Assignee"
+msgstr "Òúðñè âúçëîæåí íà"
+
+msgid "Search Attribute"
+msgstr "Òúðñè Àòðèáóò"
+
+msgid "Search Comments"
+msgstr "Òúðñè êîìåíòàð"
+
+msgid "Search Requester"
+msgstr "Òúðñè çàÿâèòåë"
+
+msgid "Search Results"
+msgstr "Ðåçóëòàòè îò òúðñåíåòî"
+
+msgid "Search Summary"
+msgstr "Òúðñè â ðåçþìå"
+
+msgid "Search Tickets"
+msgstr "Òúðñè áþëåòèíè"
+
+msgid "Select the view to display after login:"
+msgstr "Èçáåðåòå èçãëåäà, êîéòî äà ñå âèæäà ñëåä âõîä:"
+
+msgid "Select your color scheme."
+msgstr "Èçáåðåòå âàøàòà ñõåìà çà öâåòîâåòå."
+
+msgid "Select your preferred language:"
+msgstr "Èçáåðåòå ïðåäïî÷èòàíèÿò îò Âàñ åçèê:"
+
+msgid "Set Priority"
+msgstr "Èçáåðè ïðèîðèòåò"
+
+msgid "Set State"
+msgstr "Èçáåðè ñòàòóñ"
+
+msgid "Set Ticket Attributes"
+msgstr "Íàñòðîé àòðèáóòè çà áþëåòèí"
+
+msgid "Set Ticket Priority"
+msgstr "Èçáåðè ïðèîðèòåò çà áþëåòèí"
+
+msgid "Set Ticket State Succeeded"
+msgstr "Ñòàòóñà íà áþëåòèíà áåøå óñïåøíî íàñòðîåí"
+
+msgid "Set your preferred display language."
+msgstr "Èçáåðåòå ïðåäïî÷èòàíèÿò îò Âàñ åçèê çà äèñïëåÿ."
+
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "Äà ñå ïîêàçâà ëè \"(X äíè íàçàä)\" â ïîëåòî Äàòà â ðåçóëòàòà?"
+
+msgid "Show ticket IDs in the summary view?"
+msgstr "Äà ñå ïîêàçâàò ëè id íà áþëåòèíèòå â îáîáùåíèåòî?"
+
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Äà ñå ïîêàçâàò ëè èçèñêàíèòå áþëåòèíè â îáîáùåíèÿ èçãëåä?"
+
+msgid "Simple HTML Report"
+msgstr "Îáèêíîâåí HTML ðàïîðò"
+
+msgid "Some of WHUPS's configuration files are missing:"
+msgstr "Íÿêîé îò êîíôèãóðàöèîííèòå ôàéëîâå íà WHUPS ëèïñâàò:"
+
+msgid "Sort Direction"
+msgstr "Ñîðòèðàíå"
+
+#, c-format
+msgid "Sort by %s"
+msgstr "ñîðòèðàíå ïî %s"
+
+msgid "State"
+msgstr "Ñòàòóñ"
+
+msgid "State Category"
+msgstr "Ñòàòóñ êàòåãîðèÿ"
+
+msgid "State Description"
+msgstr "Ñòàòóñ îïèñàíèå"
+
+msgid "State Name"
+msgstr "Ñòàòóñ äàòà"
+
+#, c-format
+msgid "State changed to '%s'"
+msgstr "Ñòàòóñ ïðîìåíåí íà '%s'"
+
+#, c-format
+msgid "State is '%s'"
+msgstr "Ñòàòóñà å '%s'"
+
+msgid "States for this Type"
+msgstr "Ñòàòóñè çà òîçè òèï"
+
+msgid "Subject"
+msgstr "Òåìà"
+
+msgid "Subject Name"
+msgstr "Èìå íà òåìà"
+
+msgid "Subjects associated with this Queue"
+msgstr "Òåìè àñîöèèðàíè ñ òîçè ìîäóë"
+
+msgid "Summary"
+msgstr "Îáîáùåíèå"
+
+msgid "Sun"
+msgstr "Sun"
+
+msgid "Text"
+msgstr "Òåêñò"
+
+msgid "Text Criteria"
+msgstr "Òåêñò êðèòåðèè"
+
+msgid "The attribute has been deleted."
+msgstr "Àòðèáóòà áåøå èçòðèò."
+
+msgid "The attribute has been modified."
+msgstr "Àòðèáóòà áåøå ïðîìåíåí."
+
+msgid "The attribute was not deleted."
+msgstr "Àòðèáóòà íå áåøå èçòðèò."
+
+#, c-format
+msgid "The attribute'%s' has been added to %s."
+msgstr "Àòðèáóòà '%s' áåøå äîáàâåí êúì %s."
+
+#, c-format
+msgid "The queue '%s' has been created."
+msgstr "Ìîäóëúò '%s' áåøå ñúçäàäåí."
+
+msgid "The queue has been deleted."
+msgstr "Ìîäóëúò áåøå èçòðèò."
+
+msgid "The queue has been modified."
+msgstr "Ìîäóëúò áåøå ïðîìåíåí."
+
+msgid "The queue was not deleted."
+msgstr "Ìîäóëúò íå áåøå èçòðèò."
+
+#, c-format
+msgid "The priority '%s' has been added to %s."
+msgstr "Ïðèîðèòåòúò '%s' áåøå äîáàâåí êúì %s."
+
+msgid "The priority has been deleted."
+msgstr "Ïðèîðèòåòúò áåøå èçòðèò."
+
+msgid "The priority has been modified."
+msgstr "Ïðèîðèòåòúò áåøå ìîäèôèöèðàí."
+
+msgid "The priority was not deleted."
+msgstr "Ïðèîðèòåòúò íå áåøå èçòðèò."
+
+msgid "The requested template does not exist."
+msgstr "Èçèñêàíèÿò øàáëîí íå ñúùåñòâóâà."
+
+#, c-format
+msgid "The state '%s' has been added to %s."
+msgstr "Ñòàòóñà '%s' áåøå äîáàâåí êúì %s."
+
+msgid "The state has been deleted."
+msgstr "Ñòàòóñà áåøå èçòðèò."
+
+msgid "The state has been modified."
+msgstr "Ñòàòóñà áåøå ïðîìåíåí."
+
+msgid "The state was not deleted."
+msgstr "Ñòàòóñà íå áåøå èçòðèò."
+
+#, c-format
+msgid "The subject '%s' has been added."
+msgstr "Òåìàòà '%s' áåøå äîáàâåíà."
+
+msgid "The subject has been deleted."
+msgstr "Òåìàòà áåøå èçòðèòà."
+
+msgid "The subject has been modified."
+msgstr "Òåìàòà áåøå ïðîìåíåíà."
+
+msgid "The subject was not deleted."
+msgstr "Òåìàòà íå áåøå èçòðèòà."
+
+#, c-format
+msgid "The type '%s' has been modified."
+msgstr "Òèïúò '%s' íå áåøå ïðîìåíåí."
+
+msgid "The type has been deleted."
+msgstr "Òèïúò áåøå èçòðèò."
+
+msgid "The type was not deleted."
+msgstr "Òèïúò íå áåøå èçòðèò."
+
+#, c-format
+msgid "The version '%s' has been added to %s."
+msgstr "Âåðñèÿòà '%s' áåøå äîáàâåíà êúì %s."
+
+msgid "The version has been deleted."
+msgstr "Âåðñèÿòà áåøå èçòðèòà."
+
+msgid "The version has been modified."
+msgstr "Âåðñèÿòà áåøå ïðîìåíåíà."
+
+msgid "The version was not deleted."
+msgstr "Âåðñèÿòà íå áåøå èçòðèòà."
+
+msgid "There are no attribute types to edit"
+msgstr "Íÿìà òèïîâå íà àòðèáóò çà ðåäàêòèðàíå."
+
+msgid "There are no attributes defined for the current type"
+msgstr "Íÿìà äåôèíèðàíè àòðèáóòè çà òåêóùèÿò òèï."
+
+msgid "There are no queues to edit"
+msgstr "Íÿìà ìîäóëè çà ðåäàêöèÿ."
+
+msgid "There are no queues which you can create tickets in."
+msgstr "Íÿìà ìîäóëè çà êîèòî äà ñúçäàâàòå òèïîâå."
+
+msgid "There are no queues which you can search."
+msgstr "Íÿìà ìîäóëè çà òúðñåíå."
+
+msgid "There are no priorities to edit"
+msgstr "Íÿìà ïðèîðèòåòè çà ðåäàêöèÿ"
+
+msgid "There are no states to edit"
+msgstr "Íÿìà ñòàòóñè çà ðåäàêöèÿ."
+
+msgid "There are no subjects to edit"
+msgstr "Íÿìà òåìè çà ðåäàêöèÿ."
+
+msgid ""
+"There are no ticket types associated with this module; until there are, you "
+"cannot create any tickets in this module."
+msgstr ""
+"Íÿìà áþëåòèí àñîöèèðàí ñ òîçè ìîäóë; äîêàòî íÿìà Âèå íå ìîæåòå äà ñúçäàâàòå "
+"áþëåòèíè â òîçè ìîäóë."
+
+msgid "There are no types to edit"
+msgstr "Íÿìà òèïîâå çà ðåäàêòèðàíå."
+
+msgid "There are no users responsible for this module."
+msgstr "Íÿìà ïîòðåáèòåëè îòãîâîðíè çà òîçè ìîäóë."
+
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Íÿìà ïîòðåáèòåëè íà êîèòî äà áúäå âúçëîæåí áþëåòèíà."
+
+msgid "There are no versions to edit"
+msgstr "Íÿìà âåðñèÿ çà ðåäàêòèðàíå."
+
+msgid "There is no data for this graph."
+msgstr "Íÿìà äàííè çà òàçè êðèâà."
+
+msgid "There is no data for this report."
+msgstr "Íÿìà äàííè çà òîçè ðàïîðò."
+
+#, c-format
+msgid "There was an error adding '%s' to the responsible list for '%s': %s"
+msgstr "Ãðåøêà ïðè äîáàâÿíå íà '%s'êúì ñïèñúêà íà îòãîâîðíèòå çà '%s': %s"
+
+#, c-format
+msgid "There was an error adding the subject: %s."
+msgstr "Ãðåøêà ïðè äîáàâÿíå íà òåìàòà : %s."
+
+#, c-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Ãðåøêà ïðè ñúçäàâàíå íà àòðèáóòà: %s."
+
+#, c-format
+msgid "There was an error creating the module: %s."
+msgstr "Ãðåøêà ïðè ñúçäàâàíå íà ìîäóëà: %s."
+
+#, c-format
+msgid "There was an error creating the priority: %s."
+msgstr "Ãðåøêà ïðè ñúçäàâàíå íà ïðèîðèòåò: %s."
+
+#, c-format
+msgid "There was an error creating the state: %s."
+msgstr "Ãðåøêà ïðè ñúçäàâàíå íà ñòàòóñà: %s."
+
+#, c-format
+msgid "There was an error creating the version: %s."
+msgstr "Ãðåøêà ïðè ñúçäàâàíå íà âåðñèÿòà: %s."
+
+#, c-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà àòðèáóòà: %s."
+
+#, c-format
+msgid "There was an error deleting the module: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà ìîäóëà: %s."
+
+#, c-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà ïðèîðèòåò: %s."
+
+#, c-format
+msgid "There was an error deleting the state: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà ñòàòóñà: %s."
+
+#, c-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíåòî íà îáåêò: %s."
+
+#, c-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà áþëåòèí: %s"
+
+#, c-format
+msgid "There was an error deleting the type: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà òèïà: %s."
+
+#, c-format
+msgid "There was an error deleting the version: %s."
+msgstr "Ãðåøêà ïðè èçòðèâàíå íà âåðñèÿòà: %s."
+
+#, c-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà àòðèáóòà: %s."
+
+#, c-format
+msgid "There was an error editing the module: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà ìîäóëà: %s."
+
+#, c-format
+msgid "There was an error editing the priority: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà ïðèîðèòåòà: %s."
+
+#, c-format
+msgid "There was an error editing the state: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà ñòàòóñà: %s."
+
+#, c-format
+msgid "There was an error editing the subject: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà òåìàòà: %s."
+
+#, c-format
+msgid "There was an error editing the version: %s."
+msgstr "Ãðåøêà ïðè ðåäàêòèðàíå íà âåðñèÿòà: %s."
+
+#, c-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr "Ãðåøêà ïðè ïîêàçâàíåòî íà ñïèñúêà ñ âúçëîæåíèòå áþëåòèíè: %s"
+
+#, c-format
+msgid "There was an error listing your open requests: %s"
+msgstr "Ãðåøêà ïðè ïîêàçâàíåòî íà ñïèñúêà ñ îòâîðåíè ìîëáè: %s"
+
+#, c-format
+msgid "There was an error modifying the type: %s."
+msgstr "Ãðåøêà ïðè ìîäèôèöèðàíå íà òèïà: %s."
+
+#, c-format
+msgid "There was an error performing your search: %s"
+msgstr "Ãðåøêà ïðè òúðñåíå: %s"
+
+#, c-format
+msgid "There was an error removing '%s' from the responsible list for '%s': %s"
+msgstr "Ãðåøêà ïðè ïðåìàõâàíåòî íà '%s' îò ñïèñúêà ñ îòãîâîðíèòå çà '%s': %s."
+
+msgid ""
+"This file controls the default preferences for Whups, and also controls "
+"which preferences users can alter."
+msgstr ""
+"Òîçè ôàéë ñúäúðæà íàñòðîéêèòå ïî ïîäðàçáèðàíå íà Whups è êîíòðîëèðà êîè îò "
+"òÿõ ïîòðåáèòåëÿò ìîæå äà ïðîìåíÿ."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Òîçè ôàéë êîíòðîëèðà ñòèëîâåòå, êîéòî ñå èçïîëçâàò çà öâåòîâåòå è øðèôòîâåòå "
+"â äîïúëíåíèå êúì ïîäðàçáèðàùèòå ñòèëîâå íà Horde."
+
+msgid ""
+"This file defines the templates that various parts of Whups use to format "
+"data."
+msgstr ""
+"Òîçè ôàéë äåôèíèðà øàáëîíèòå, êîèòî ðàçëè÷íèòå ÷àñòè íà Whups èçïîëçâàò çà äà"
+" ôîðìàòèðàò äàííè"
+
+msgid "This is not a search results template."
+msgstr "Òîâà íå å øàáëîí çà ðåçóëòàòè îò òúðñåíå."
+
+msgid "This is not a valid subject."
+msgstr "Òîâà íå å âàëèäíà òåìà"
+
+msgid ""
+"This is the main WHUPS configuration file. It contains paths and options for "
+"all WHUPS scripts."
+msgstr ""
+"Òîâà å ãëàâíèÿ ôàéë çà êîíôèãóðèðàíå íà WHUPS. Òîé ñúäúðæà ïúòèùàòà è "
+"îïöèèòå çà WHUPS ñêðèïòîâåòå."
+
+#, c-format
+msgid "This mail was automatically generated by %s"
+msgstr "Òîçè åìàéë áåøå àâòîìàòè÷íî ãåíåðèðàí îò %s"
+
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this module, you will not "
+"be able to create tickets."
+msgstr ""
+"Òîçè ìîäóë èçèñêâà äà çàäàäåòå âåðñèÿ, íî íÿìà âåðñèè àñîöèèðàíè ñ íåãî."
+"Äîêàòî íÿìà âåðñèè, íå å âúçìîæíî äà ñúçäàâàòå áþëåòèíè."
+
+#, c-format
+msgid "Ticket %s Comments"
+msgstr "Áþëåòèí %s êîìåíòàðè"
+
+#, c-format
+msgid "Ticket %s Details"
+msgstr "Áþëåòèí %s äåòàéëè"
+
+#, c-format
+msgid "Ticket %s has been assigned"
+msgstr "Áþëåòèí %s áåøå âúçëîæåí"
+
+#, c-format
+msgid "Ticket %s has changed priority"
+msgstr "Áþëåòèí %s å ñúñ ñìåíåí ïðèîðèòåò"
+
+#, c-format
+msgid "Ticket %s has changed state"
+msgstr "Áþëåòèí %s e ñúñ ñìåíåí ñòàòóñ"
+
+#, c-format
+msgid "Ticket %s was not found."
+msgstr "Áþëåòèí %s íå áåøå íàìåðåí"
+
+msgid "Ticket Details"
+msgstr "Áþëåòèí äåòàéëè"
+
+msgid "Ticket ID"
+msgstr "Áþëåòèí ID"
+
+msgid "Ticket Password"
+msgstr "Áþëåòèí Ïàðîëà"
+
+msgid "Ticket State"
+msgstr "Áþëåòèí ñòàòóñ"
+
+msgid "Ticket Stats"
+msgstr "Áþëåòèí ñòàòóñ"
+
+msgid "Ticket Summary"
+msgstr "Áþëåòèí îáîáùåíèå"
+
+msgid "Ticket Type"
+msgstr "Áþëåòèí òèï"
+
+msgid "Ticket Types associated with this Queue"
+msgstr "Áþëåòèí òèïîâå àñîöèèðàíè ñ òîçè ìîäóë"
+
+msgid "Tickets assigned to you"
+msgstr "Áþëåòèíè âúçëîæåíè íà Âàñ"
+
+msgid "Tickets which are"
+msgstr "Áþëåòèíè êîèòî ñà"
+
+msgid "Tickets you requested"
+msgstr "Áþëåòèíè êîèòî èçèñêàõòå"
+
+msgid "Type"
+msgstr "Òèï"
+
+msgid "Type Description"
+msgstr "Òèï îïèñàíèå"
+
+msgid "Type Name"
+msgstr "Òèï èìå"
+
+msgid "Unassigned"
+msgstr "Íåâúçëîæåí"
+
+msgid "Unconfirmed"
+msgstr "Íåïîòâúðäåí"
+
+#, c-format
+msgid "Unknown node type %s"
+msgstr "Íåèçâåñòåí âúçëîâ òèï %s"
+
+msgid "User"
+msgstr "Ïîòðåáèòåë"
+
+msgid "User Criteria"
+msgstr "Ïîòðåáèòåëñêè êðèòåðèè"
+
+msgid "User ID"
+msgstr "Ïîòðåáèòåë ID"
+
+msgid "User Options"
+msgstr "Ïîòðåáèòåëñêè îïöèè"
+
+#, c-format
+msgid "Users responsible for '%s'"
+msgstr "Ïîòðåáèòåëè îòãîâîðíè çà '%s'"
+
+msgid "Users responsible for this Queue"
+msgstr "Ïîòðåáèòåëè îòãîâîðíè çà òîçè ìîäóë"
+
+msgid "Users responsible for this module"
+msgstr "Ïîòðåáèòåëè îòãîâîðíè çà òîçè ìîäóë"
+
+msgid "Version"
+msgstr "Âåðñèÿ"
+
+msgid "Version Description"
+msgstr "Îïèñàíèå íà ïðîáëåìà"
+
+msgid "Version Name"
+msgstr "Âåðñèÿ èìå"
+
+msgid "View Graphs"
+msgstr "Âèæ ãðàôèêàòà"
+
+msgid "Viewable only by members of"
+msgstr "Ìîæå äà ñå ïðåãëåæäà ñàìî îò ÷ëåíîâå íà"
+
+msgid "WHUPS is not properly configured"
+msgstr "WHUPS íå å êîíôèãóðèðàí êîðåêòíî"
+
+msgid "Weekday Day Month"
+msgstr "Ðàáîòåí äåí ìåñåö"
+
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Ðàáîòåí äåí ìåñåö ××:ÌÌ:ÑÑ ×Ç"
+
+msgid "Yes"
+msgstr "Äà"
+
+#, c-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Íÿìàòå ïðàâà çà äîñòúï äî òîçè áþëåòèí (%s)."
+
+msgid "You have no saved queries."
+msgstr "Íÿìàòå çàïèñàíè çàÿâêè."
+
+msgid "Your Email Address"
+msgstr "Âàøèÿ Email àäðåñ"
+
+msgid "Your Information"
+msgstr "Èíôîðìàöèÿ çà Âàñ"
+
+msgid "Your Password"
+msgstr "Âàøàòà Ïàðîëà"
+
+msgid "Your password is incorrect."
+msgstr "Âàøàòà ïàðîëà íå å êîðåêòíà."
+
+#, c-format
+msgid "Your ticket id is %s. "
+msgstr "Âàøèÿò áþëåòèí id å %s."
+
+msgid "contains (case insensitive) substring"
+msgstr "ñúäúðæà ñòðèíã íå÷óâñòâèòåëåí êúì ðàçìåðà íà áóêâèòå"
+
+msgid "contains (case sensitive) substring"
+msgstr "ñúäúðæà ñòðèíã ÷óâñòâèòåëåí êúì ðàçìåðà íà áóêâèòå"
+
+msgid "contains the word"
+msgstr "ñúäúðæà äóìàòà"
+
+msgid "is"
+msgstr "å"
+
+msgid "is greater than"
+msgstr "å ïî-ãîëÿì îò"
+
+msgid "is less than"
+msgstr "å ïî-ìàëúê îò"
+
+msgid "matches the pattern"
+msgstr "ñúâïàäà ñúñ óñëîâèÿòà"
--- /dev/null
+# translation of cs_CZ.po to Èe¹tina
+# Whups Czech Translation.
+# Copyright 2002 Pavel Chytil.
+#
+# Pavel Chytil <pavel@chytil.tk>, 2002.
+# Václav Hùla <ax@natur.cuni.cz>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: cs_CZ\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-09-25 12:32+0200\n"
+"PO-Revision-Date: 2008-11-26 16:45+0100\n"
+"Last-Translator: Václav Hùla <ax@natur.cuni.cz>\n"
+"Language-Team: <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.2\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "'%s' ji¾ nezodpovídá za '%s'"
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d sledujících, %d zodpovídajících"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s lístkù v %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s lístkù ve v¹ech frontách"
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:497
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) napsal:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "'%s' nyní zodpovídá za '%s'"
+
+#: templates/reports/stats.inc:15
+#, php-format
+msgid "%s days"
+msgstr "%s dnù"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s lístkù v %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s lístkù ve v¹ech frontách"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s bude upozornìn pøi zmìnì lístku"
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s ji¾ nebude upozornìován pøi zmìnì lístku"
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- krok 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- krok 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr "--queue-name or --queue-id musí být platná veøejná fronta"
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<První"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Pøedchozí"
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "Do %s byl pøístup zamítnut"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Pøidat atribut"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr "Pøidat filtr dle atributu "
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Pøidat obsah"
+
+#: query/index.php:233
+msgid "Add Criterion"
+msgstr "Pøidat filtr"
+
+#: lib/Forms/Query.php:320
+msgid "Add Date Criterion"
+msgstr "Pøidat filtr dle data"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr "Pøidat filtr dle skupiny"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Pøidat prioritu"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Pøidat filtr dle vlastnosti"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Pøidat frontu"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Pøidat stav"
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr "Pøidat filtr dle textu"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Pøidat typ lístku"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Pøidat typ %s"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr "Pøidat filtr dle u¾ivatele"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Pøidat u¾ivatele"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Pøidat verzi"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "Pøidat sledujícího"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Pøidat zdroj"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Pøidání lístku selhalo: %s"
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Kontakty"
+
+#: admin/index.php:54 lib/api.php:775
+msgid "Administration"
+msgstr "Administrace"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:24
+msgid "And"
+msgstr "A"
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:32
+msgid "Any"
+msgstr "Jakýkoliv"
+
+#: ticket/type.php:42 ticket/queue.php:48
+msgid "Any Group"
+msgstr "Jakákoliv skupina"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Vzestupnì"
+
+#: lib/api.php:795
+msgid "Assign"
+msgstr "Pøiøaï"
+
+#: lib/Whups.php:684 lib/Ticket.php:986 lib/Driver.php:198 lib/api.php:913
+#: lib/Renderer/Query.php:156 config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Pøiøazeno"
+
+#: lib/Forms/Query.php:333 lib/Forms/Search.php:62
+msgid "Assigned from"
+msgstr "Pøiøazeno z"
+
+#: lib/Forms/Query.php:334
+msgid "Assigned to"
+msgstr "Pøiøazeno"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "Pøiøazeno %s"
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr "Asociace úspì¹nì zmìnìny."
+
+#: lib/Forms/CreateTicket.php:153 lib/Forms/EditTicket.php:126
+#: lib/Forms/AddComment.php:24
+msgid "Attachment"
+msgstr "Pøíloha"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Pøíloha %s byla smazána."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Pøíloha %s nebyla nalezena."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Pøílohy"
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr "Filtry atri_butu"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Atribut %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Popis atributu"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Název atributu"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Typ atributu"
+
+#: lib/Forms/Search.php:20
+msgid "Attributes"
+msgstr "Atributy"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "Atributy pro tento typ"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Automaticky odkazovat na ostatní lístky v komentáøích?"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Dostupné adresáøe:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Dostupné fronty:"
+
+#: reports.php:24
+msgid "Average days to close by Owner"
+msgstr "Prùmìrnì dní do uzavøení podle majitelù"
+
+#: reports.php:26
+msgid "Average days to close by Queue"
+msgstr "Prùmìrnì dní do uzavøení podle front"
+
+#: reports.php:25
+msgid "Average days to close by Requester"
+msgstr "Prùmìrnì dní do uzavøení podle zadavatelù"
+
+#: reports.php:29
+msgid "Average time a ticket is unresolved"
+msgstr "Prùmìrný èas do uzavøení lístku"
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr "Typ Sekce"
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr "Nelze se pøipojit ke vzdálenému po¹tovnímu serveru: "
+
+#: lib/Query.php:164
+msgid "Case Insensitive Substring"
+msgstr "Znakový øetìzec nerozli¹ující velká a malá písmena"
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Zmìò"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Nastavení vlastností zobrazení jako napø. jak budou uspoøádány výsledky "
+"hledání"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Zmìnit upozornìní e-mailem na zmìny v lístcích"
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr "Vyber Akci:"
+
+#: lib/Query.php:678
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Koøenový uzel nelze smazat."
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr ""
+"Vybrat poøadí adresáøù, v jakém budou prohledávány pøi expandování adres."
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "Zvolte:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "Chronologicky (od nejstar¹ích)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+"Kliknìte na jeden z Va¹ich adresáøù a vyberte v¹echna pole, která se budou "
+"prohledávat."
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr "Naklonovat"
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr "Popis klonu"
+
+#: admin/index.php:151 lib/Forms/Admin/Type.php:36
+msgid "Clone Type"
+msgstr "Naklonuj typ"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Èárkou oddìlené hodnoty (Soubor CSV)"
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Renderer/Query.php:88
+#: lib/Forms/EditTicket.php:131 lib/Forms/AddComment.php:23
+msgid "Comment"
+msgstr "Komentáø"
+
+#: lib/Renderer/Comment.php:159
+#, php-format
+msgid "Comment #%d"
+msgstr "Komentáø è. %d"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d (Private)"
+msgstr "Komentáø è. %d (soukromý)"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "Komentáø byl pøidán"
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr "Okomentuj %s"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Komentáø vytvoøil"
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopie %s"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Nelze získat po¾adovaný soubor z pøílohy typu Zip."
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "Nelze najít ¾ádnou skupinu."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Nelze najít lístek \"%s\"."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr "Vytvoø priority"
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "Vytvoø základní stavy"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Vytvoøení lístku"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "Vytvoøení lístku - krok 1"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "Vytvoøení lístku - krok 2"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "Vytvoøení lístku - krok 3"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "Vytvoøení lístku - krok 4"
+
+#: lib/Whups.php:682 lib/Ticket.php:971 lib/api.php:918
+#: lib/Renderer/Query.php:141 config/prefs.php.dist:52
+msgid "Created"
+msgstr "Vytvoøeno"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Autor"
+
+#: lib/Forms/Query.php:324 lib/Forms/Search.php:56
+msgid "Created from"
+msgstr "Vytvoøeno"
+
+#: lib/Forms/Query.php:325
+msgid "Created to"
+msgstr "Vytvoøeno "
+
+#: query/index.php:223 query/index.php:240
+msgid "Current Query"
+msgstr "Souèasný dotaz"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Souèasný Typ"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "NEODPOVÍDEJTE NA TENTO MAIL, TUTO ADRESU NIKDO NEÈTE!"
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Formát èasu ve výsledcích hledání"
+
+#: lib/Forms/Search.php:55
+msgid "Dates"
+msgstr "Datum"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Implicitní typ lístku"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Výchozí tøídící kritéria:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Implicitní smìr tøídìní:"
+
+#: query/index.php:163
+msgid "Delete"
+msgstr "Vyma¾"
+
+#: lib/Whups.php:866 lib/Whups.php:867
+#, php-format
+msgid "Delete %s"
+msgstr "Smazat %s"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "Smazat %s?"
+
+#: admin/index.php:947 lib/Forms/Admin/Attribute.php:57
+msgid "Delete Attribute"
+msgstr "Vyma¾ atribut"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "Potvrzení smazání atributu"
+
+#: admin/index.php:1082 lib/Forms/Admin/Reply.php:36
+msgid "Delete Form Reply"
+msgstr "Smazat odpovìï"
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr "Potvrzení smazání odpovìdi"
+
+#: admin/index.php:589 lib/Forms/Admin/Priority.php:36
+msgid "Delete Priority"
+msgstr "Vyma¾ prioritu"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "Potvrzení smazání priority"
+
+#: lib/Forms/Query.php:447
+msgid "Delete Query?"
+msgstr "Vyma¾ dotaz?"
+
+#: admin/index.php:332 lib/Forms/Admin/Queue.php:44
+msgid "Delete Queue"
+msgstr "Vyma¾ frontu"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "Potvrzení smazání fronty"
+
+#: admin/index.php:454 lib/Forms/Admin/State.php:35
+msgid "Delete State"
+msgstr "Vyma¾ stav"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "Potvrzení smazání stavu"
+
+#: admin/index.php:145 lib/Forms/Admin/Type.php:37
+msgid "Delete Type"
+msgstr "Vyma¾ typ"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "Potvrzení smazání typu"
+
+#: admin/index.php:816 lib/Forms/Admin/Version.php:36
+msgid "Delete Version"
+msgstr "Vyma¾ verzi"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "Potvrzení smazání verze"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Smazaná pøíloha."
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Smazaná pøíloha \"%s\"."
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Sestupnì"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "Popis"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Mo¾nosti zobrazení"
+
+#: lib/Whups.php:857
+msgid "Download"
+msgstr "Stáhnout"
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr "Ulo¾it výsledky jako:"
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:922
+#: lib/Renderer/Query.php:161
+msgid "Due"
+msgstr "Vyøe¹it do"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Vyøe¹it do: %s"
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "Vyøe¹it do:"
+
+#: lib/Forms/Query.php:336 lib/Forms/Search.php:64
+msgid "Due from"
+msgstr "Øe¹it od:"
+
+#: lib/Forms/Query.php:337
+msgid "Due to"
+msgstr "Øe¹it do:"
+
+#: lib/Query.php:230
+msgid "E_xecute Query"
+msgstr "Provést dotaz"
+
+#: query/index.php:164
+msgid "Edit"
+msgstr "Upravit"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr "Upravit %s"
+
+#: admin/index.php:942 lib/Forms/Admin/Attribute.php:57
+#: lib/Forms/Admin/Attribute.php:86
+msgid "Edit Attribute"
+msgstr "Upravit atribut"
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr "Pøidat filtr dle atributu"
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "Upravit atributy"
+
+#: lib/Forms/Query.php:320
+msgid "Edit Date Criterion"
+msgstr "Pøidat filtr dle data"
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr "Upravit vzory odpovìdí "
+
+#: admin/index.php:1077 lib/Forms/Admin/Reply.php:36
+#: lib/Forms/Admin/Reply.php:64
+msgid "Edit Form Reply"
+msgstr "Upravit vzor odpovìdí"
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr "Pøidat filtr dle skupiny"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr "Zmìò priority"
+
+#: admin/index.php:584 lib/Forms/Admin/Priority.php:36
+#: lib/Forms/Admin/Priority.php:59
+msgid "Edit Priority"
+msgstr "Zmìò prioritu"
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr "Pøidat filtr dle vlastnosti"
+
+#: admin/index.php:326 lib/Forms/Admin/Queue.php:44
+#: lib/Forms/Admin/Queue.php:47
+msgid "Edit Queue"
+msgstr "Uprav frontu"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Zmìò fronty"
+
+#: admin/index.php:449 lib/Forms/Admin/State.php:35
+#: lib/Forms/Admin/State.php:56
+msgid "Edit State"
+msgstr "Zmìò stav"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "Zmìò stavy"
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr "Pøidat filtr dle textu"
+
+#: admin/index.php:139 lib/Forms/Admin/Type.php:35
+msgid "Edit Type"
+msgstr "Zmìò typ"
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr "Pøidat filtr dle u¾ivatele"
+
+#: admin/index.php:811 lib/Forms/Admin/Version.php:36
+#: lib/Forms/Admin/Version.php:59
+msgid "Edit Version"
+msgstr "Zmìò verzi"
+
+#: lib/Query.php:226
+msgid "Edit _Permissions"
+msgstr "Zmìnit práva"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "Zmìò _Typy"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Zmìò nebo sma¾ atributy"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr "Zmìò nebo sma¾ vzory odpovìdí "
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "Zmìò nebo sma¾ priority"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Zmìò nebo sma¾ frontu"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Zmìò nebo sma¾ stavy"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Zmìò nebo sma¾ typy"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Zmìò nebo sma¾ verze"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr "Zmìò pøístupová práva pro tento vzor odpovìdí"
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "Zmìò pøístupová práva v této frontì"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "Zmìò u¾ivatele zodpovìdné za frontu"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "Zmìò verze pro tuto frontu"
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "E-mailové adresy pro zaslání upozornìní"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "E-mailové adresy pro odstranìní"
+
+#: lib/api.php:504
+msgid "Empty attachment"
+msgstr "Prázdná pøíloha"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr "Nastala chyba pøi zpracování zprávy"
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr "Chyba: Neznámý formuláø dotazu %s, pou¾ívám výchozí."
+
+#: lib/Query.php:163
+msgid "Exact Match"
+msgstr "Pøesná shoda"
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr "Provést dotaz"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "Prohledat pole"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Zobrazit lístky v tìchto frontách:"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Pro lístky z "
+
+#: lib/api.php:806
+msgid "Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr "Vzory odpovìdí pro tento typ"
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr "Název vzoru odpovìdí"
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr "Text vzoru odpovìdí"
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr "Vzor odpovìdi:"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "V¹eobecné mo¾nosti"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Jdi na"
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "Skupiny vlastníkù"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr "Skupiny"
+
+#: lib/api.php:778
+msgid "Hidden Comments"
+msgstr "Skryté komentáøe"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Historie"
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr ""
+
+#: lib/Whups.php:667 lib/Whups.php:674 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr "Komu se má zaslat mail u lístkù s nevyplnìným majitelem?"
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr "Vlo¾ A"
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr "Vlo¾ Sekci"
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr "Vlo¾ Ne"
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr "Vlo¾ Nebo"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Neplatná fronta"
+
+#: lib/Whups.php:261 lib/api.php:495
+msgid "Invalid Ticket Id"
+msgstr "Neplatné ID lístku"
+
+#: lib/api.php:548
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Neplatné nebo chybìjící parametry."
+
+#: lib/api.php:533
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr "Neplatné parametry: Zadejte èíslo lístku a nové atributy"
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Neplatná fronta"
+
+#: search/rss.php:30
+msgid "Invalid search"
+msgstr "Neplatné hledání"
+
+#: lib/api.php:397
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Byla zadána neplatná data: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "Zachovat sérii verzí pro tuto frontu?"
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Poslední>>"
+
+#: lib/Forms/Query.php:411
+msgid "Load Query"
+msgstr "Nahrát dotaz"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Nahrávání..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "MM/DD/RR"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/RR HH:MM:SS"
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Naklonuj %s"
+
+#: lib/Forms/EditTicket.php:167 lib/Forms/AddComment.php:38
+msgid "Make this comment visible only to members of a group?"
+msgstr ""
+
+#: lib/Forms/Query.php:274
+msgid "Match"
+msgstr "Porovnání"
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:275
+msgid "Match Operator"
+msgstr "Operátor porovnání"
+
+#: lib/Query.php:167
+msgid "Match Pattern"
+msgstr "Formát porovnání"
+
+#: lib/Query.php:166
+msgid "Match Word"
+msgstr "Porovnat Slovo"
+
+#: reports.php:30
+msgid "Maximum time a ticket is unresolved"
+msgstr "Nejdel¹í èas do uzavøení lístku"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Seznam nabídky"
+
+#: reports.php:31
+msgid "Minimum time a ticket is unresolved"
+msgstr "Nejkrat¹í èas do uzavøení lístku"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "Od nejnovìj¹ích"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Posunout dolù"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Posunout nahoru"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Lístek %d pøesunut do \"%s\""
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Moje %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Moje %s: Pøidat Komentáø"
+
+#: search.php:178 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Moje Dotazy"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Po¾adavky"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Moje lístky"
+
+#: lib/api.php:884
+msgid "My tickets by assignment date"
+msgstr "Moje lístky podle data pøiøazení"
+
+#: lib/api.php:883
+msgid "My tickets by creation date"
+msgstr "Moje lístky podle data vytvoøení"
+
+#: lib/api.php:885
+msgid "My tickets by due date"
+msgstr "Moje lístky podle po¾adovaného data uzavøení"
+
+#: lib/api.php:886
+msgid "My tickets by resolution date"
+msgstr "Moje lístky podle data uzavøení"
+
+#: lib/Forms/Query.php:422
+msgid "Name"
+msgstr "Jméno"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr "Jméno kopie"
+
+#: lib/Query.php:216
+msgid "Ne_w Query"
+msgstr "_Nový dotaz"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Nové"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Nová pøíloha"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Nová pøíloha: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "Pøesunout do fronty:"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Nový lístek"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Zmìnit typ na:"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Dal¹í>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "No"
+msgstr "Ne"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr "Lístek nemá prioritu a lístky typu \"%s\" nemají výchozí prioritu."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "®ádné dotazy neulo¾eny"
+
+#: lib/Block/query.php:62 lib/Driver/sql.php:553
+msgid "No query to run"
+msgstr "Nezadán ¾ádný dotaz"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Není dostupná ¾ádná fronta"
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr "Lístek nemá zadaný stav a lístky typu \"%s\" nemají výchozí stav."
+
+#: reports.php:35
+msgid "No stats available."
+msgstr "Nejsou k dospozici ¾ádné statistiky."
+
+#: lib/Driver.php:533
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "backend '%s' nenalezen"
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr "Pohled '%s' nenalezen"
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Nemáte pøiøazeny ¾ádné lístky"
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "®ádné nepøiøazené lístky!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Ve frontì nejsou ¾ádné lístky."
+
+#: lib/Whups.php:716
+msgid "No tickets matched your search criteria."
+msgstr "Nastaveným filtrùm nevyhovuje ¾ádný lístek"
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr "Lístek nemá typ a lístky z fronty \"%s\" nemají výchozí typ."
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:67
+msgid "None"
+msgstr "®ádný"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:26
+msgid "Not"
+msgstr "Není"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Mo¾nosti upozoròování"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Upozoròovat na zmìny jen od ostatních?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Upozoròovat jen na zmìny s komentáøi?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Otevøené"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "Otevøené lístky"
+
+#: reports.php:23
+msgid "Open Tickets by Owner"
+msgstr "Otevøené lístky podle majitele"
+
+#: reports.php:21
+msgid "Open Tickets by Priority"
+msgstr "Otevøené lístky podle priority"
+
+#: reports.php:18
+msgid "Open Tickets by Queue"
+msgstr "Otevøené lístky podle fronty"
+
+#: reports.php:22
+msgid "Open Tickets by Requester"
+msgstr "Otevøené lístky podle zadavatele"
+
+#: reports.php:19
+msgid "Open Tickets by State"
+msgstr "Otevøené lístky podle stavu"
+
+#: reports.php:20
+msgid "Open Tickets by Type"
+msgstr "Otevøené lístky podle typu"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Otevøené lístky v %s"
+
+#: queue/rss.php:119 queue/index.php:43 queue/index.php:57
+#, php-format
+msgid "Open tickets in %s"
+msgstr "Otevøené lístky v %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Otevøené lístky ve v¹ech frontách."
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:25
+msgid "Or"
+msgstr "Nebo"
+
+#: lib/Whups.php:681 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "Vlastníci"
+
+#: lib/Whups.php:866
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Permanentnì smazat %s?"
+
+#: ticket/update.php:22 ticket/type.php:74 ticket/delete.php:51
+#: ticket/queue.php:131 ticket/deleteAttachment.php:21
+msgid "Permission Denied"
+msgstr "Pøístup odepøen"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:197
+msgid "Permission Denied."
+msgstr "Pøístup odepøen."
+
+#: query/run.php:44 query/index.php:31 lib/Forms/Query.php:459
+#, php-format
+msgid "Permission denied."
+msgstr "Pøístup odepøen."
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "Prosím opravte nejednoznaèné nebo neplatné adresy."
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr "Priority pro tento typ"
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:669 lib/Whups.php:678
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:147
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:198
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Priorita"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Priorita ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Popis priority"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Jméno priority"
+
+#: search.php:178
+msgid "Public Queries"
+msgstr "Veøejné dotazy"
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr "Tvùrce dotazù"
+
+#: lib/Forms/Query.php:387
+msgid "Query Name"
+msgstr "Jméno dotazu"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Parametry dotazù"
+
+#: query/rss.php:63 query/run.php:79 lib/Block/query.php:3
+#: lib/Block/query.php:49
+msgid "Query Results"
+msgstr "Výsledky vyhledávání"
+
+#: lib/Forms/Query.php:389
+msgid "Query Slug"
+msgstr "Slug dotazu"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Provést dotaz..."
+
+#: lib/Whups.php:679 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Renderer/Query.php:94 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:40 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "Fronta"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Fronta ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Obsah fronty:"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Popis fronty"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "E-mail fronty"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Jméno fronty"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr "Slug fronty"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Shrnutí"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "Verze fronty"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Matice front/typù"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Matice front/typù"
+
+#: lib/api.php:163 lib/api.php:781
+msgid "Queues"
+msgstr "Fronty"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "Zpìt na výsledky hledání?"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tento atribut? Mù¾e to mít za následek problémy s "
+"daty!!"
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr "Skuteènì odstranit tento vzor odpovìdi?"
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tuto prioritu? Mù¾e to mít za následek problémy s "
+"daty!!"
+
+#: lib/Forms/Query.php:450
+msgid "Really delete this query? This operation is not undoable."
+msgstr "Opravdu smazat tento dotaz? Tato operace je nevratná."
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tuto frontu? Mù¾e to mít za následek problémy s daty!!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tento stav? Mù¾e to mít za následek problémy s daty!!"
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Opravdu smazat tento lístek? Nebude archivován a bude definitivnì smazán."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tento typ? Mù¾e to mít za následek problémy s daty!!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Opravdu chcete vymazat tuto verzi? Mù¾e to mít za následek problémy s daty!!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "Obdr¾ená zpráva:"
+
+#: search.php:162
+msgid "Refine Search"
+msgstr "Pøedefinujte vyhledávání"
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr "Upomínky rozeslány."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Odstranit u¾ivatele"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "Odstranit sledujícího"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Odstranit zdroj"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "Odpovìdìt na komentáø"
+
+#: reports.php:40
+msgid "Reports"
+msgstr "Reporty"
+
+#: lib/Whups.php:680 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Zadavatel"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "Povinný atribut?"
+
+#: lib/Whups.php:685 lib/Ticket.php:991 lib/Driver.php:199 lib/api.php:927
+#: lib/Renderer/Query.php:151 config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Vyøe¹eno"
+
+#: lib/Forms/Query.php:330 lib/Forms/Search.php:60
+msgid "Resolved from"
+msgstr "Vyøe¹eno od"
+
+#: lib/Forms/Query.php:331
+msgid "Resolved to"
+msgstr "Vyøe¹eno do"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "Zodpovìdní U¾ivatelé"
+
+#: lib/Whups.php:306
+msgid "S_et Queue"
+msgstr "Zmìna fronty"
+
+#: lib/Query.php:234
+msgid "Sa_ve Query"
+msgstr "Ulo¾ dotaz"
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:385
+msgid "Save"
+msgstr "Ulo¾it"
+
+#: query/index.php:233
+msgid "Save Criterion"
+msgstr "Ulo¾it kriterium"
+
+#: lib/Forms/Query.php:384
+msgid "Save Query"
+msgstr "Ulo¾ dotaz"
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr "Ulo¾ jako dotaz"
+
+#: search.php:155 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Hledej"
+
+#: lib/Forms/Query.php:278
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Vyhledávání %s"
+
+#: lib/Forms/Query.php:272 lib/Forms/Query.php:281
+msgid "Search Attribute"
+msgstr "Atributy"
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Komentáøe"
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr "Majitelé"
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr "Zadavatelé"
+
+#: search.php:147 search/rss.php:55 search/rss.php:59
+msgid "Search Results"
+msgstr "Výsledky vyhledávání"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Výsledky vyhledávání %s z %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Shrnutí"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Hledání v lístcích"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "Volba zdrojù adresáøe pro pøidávaní a vyhledávání adres."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr "Vybrat v¹echna pole pro vyhledávání pøi expanzi adres."
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr "Vybrat zobrazení po pøihlá¹ení:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Vybraný zdroj adresáøù:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "Rozeslat upomínky"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "Rozeslat upomínky"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr "Zasílat pouze pro tyto lístky:"
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Zadejte výchozí prioritu"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Zadejte výchozí stav"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "Zmìna fronty - krok 1"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "Zmìna fronty - krok 2"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "Zmìna fronty - krok 3"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Zmìna fronty pro %s"
+
+#: lib/api.php:800
+msgid "Set Requester"
+msgstr "Zadavatel"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr "Zmìna typu - krok 1"
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr "Zmìna typu - krok 1"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "Zmìna typu pro %s"
+
+#: lib/Whups.php:311
+msgid "Set _Type"
+msgstr "Zmìna typu"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Zobrazit komentáøe chronologicky nebo od nejnovìj¹ích?"
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "Zobrazovat ID lístkù v pøehledech?"
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Zobrazovat po¾adované lístky v pøehledech?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Jednoduché HTML"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"Slugy umo¾òují pøímý pøístup na otevøené lístky v této frontì náv¹tìvou %s. "
+"<br />Slugy mohou obsahovat jen ascii písmena, èísla a _ (podtr¾ítko)"
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr "Setøídit podle %s"
+
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Ochrana pøed spamem"
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:670 lib/Whups.php:676
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:193 config/prefs.php.dist:47
+msgid "State"
+msgstr "Stav"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Stav ⇒ '%s'"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Kategorie Stavu"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Popis Stavu"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Jméno Stavu"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "Stavy pro tento Typ"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Stav"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "Odeslat"
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr "Pøihlástit dotaz"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Úspì¹nì naklonováno %s do %s"
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Typ lístku úspì¹ne zmìnìn."
+
+#: ticket/delete.php:30 lib/Whups.php:668 lib/Whups.php:675 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Renderer/Query.php:89
+#: lib/Forms/CreateTicket.php:152 lib/Forms/EditTicket.php:58
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Shrnutí"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Shrnutí ⇒ '%s'"
+
+#: lib/Forms/Search.php:43
+msgid "Summary like"
+msgstr "Shrnutí"
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "Odebráno %s"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Text"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1306
+msgid "That queue slug is already taken. Please select another."
+msgstr "Tento slug je ji¾ obsazen."
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "Emailová adresa zadavatele"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "Pro odesílání pøíloh musí být nastaven VSF systém."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Atribut '%s' byl pøidán do %s."
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr "Atribut byl vymazán."
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr "Atribut byl modifikován."
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr "Atribut nebyl vymazán."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "Nastavena výchozí priorita."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "Nastaven výchozí stav."
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr "Byla pøidán vzoru odpovìdi '%s' do %s."
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr "Vzor odpovìdi byl vymazán."
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr "Vzor odpovìdi byl modifikován."
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr "Vzor odpovìdi nebyl vymazán."
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Byla pøidána priorita '%s' do %s."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "Priorita byla vymazána."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "Priorita byla modifikována."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "Priorita nebyla vymazána."
+
+#: lib/Forms/Query.php:463
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Nelze smazat frontu \"%s\": %s"
+
+#: lib/Forms/Query.php:465
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Fronta \"%s\" byla vymazána."
+
+#: lib/Forms/Query.php:430
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Nelze nahrát dotaz"
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Byla vytvoøena fronta '%s'"
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "Fronta smazána."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "Fronta upravena."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "Fronta nebyla smazána"
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Po¾adovaný soubor v zip pøíloze neexistuje."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Po¾adovaný vzor neexistuje."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Stav '%s' byl pøidán do %s."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "Stav byl vymazán."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "Stav byl modifikován."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "Stav nebyl vymazán."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Lístek nebyl vymazán."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Typ '%s' byl modifikován."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "Typ byl vymazán."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "Typ nebyl vymazán."
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Verze '%s' byla pøidána do %s."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "Verze byla vymazána."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "Verze byla modifikována."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "Verze nebyla vymazána."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "Nejsou zde ¾ádné typy, které lze zmìnit"
+
+#: lib/Forms/Query.php:281
+msgid "There are no attributes defined."
+msgstr "Nejsou definovány stavy."
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr "Nejsou zde ¾ádné vzory odpovìdi, které lze zmìnit"
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr "®ádné otevøené lístky."
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr "Nejsou zde ¾ádné priority, které lze zmìnit"
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "Není dostupná ¾ádná fronta"
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "Nejsou ¾ádné fronty k úpravì."
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "Není ¾ádná fronta, ve které mù¾ete vytváøet lístky."
+
+#: lib/Forms/Search.php:38
+msgid "There are no queues which you can search."
+msgstr "Není ¾ádná fronta, ve které mù¾ete hledat."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "Nejsou zde ¾ádné stavy, které lze zmìnit"
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Tato fronta nemá ¾ádné typy lístkù. Dokud se tyto typy nevytvoøí, není mo¾né "
+"zadat lístek."
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr "Nejsou zde ¾ádné typy, které lze zmìnit"
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "Nejsou zde ¾ádní u¾ivatelé zodpovìdní za tuto frontu"
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Není komu pøiøadit lístek"
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "Nejsou zde ¾ádné verze, které lze zmìnit"
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr "Pro tento report nejdou k dispozici ¾ádná data"
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr "Nastala chyba pøi pøidávání '%s' do seznamu zodpovìdných pro '%s':"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "Nastala chyba pøi vytváøení atributu:"
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr "Nastala chyba pøi vytváøení vzoru odpovìdi."
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "Nastala chyba pøi vytváøení priority:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "Nastala chyba pøi vytváøení fronty:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "Nastala chyba pøi vytváøení stavu:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "Nastala chyba pøi vytváøení verze:"
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr "Nastala chyba pøi vymázávání atributu:"
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr "Nastala chyba pøi vymázávání vzoru odpovìdi:"
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "Nastala chyba pøi vymázávání priority:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "Nastala chyba pøi mazání fronty:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "Nastala chyba pøi vymázávání stavu:"
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr "Nastala chyba pøi vymázávání lístku:"
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "Nastala chyba pøi vymázávání typu:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "Nastala chyba pøi vymázávání verze:"
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr "Nastala chyba pøi zmìnì atributu:"
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr "Nastala chyba pøi zmìnì vzoru odpovìdi:"
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "Nastala chyba pøi zmìnì priority:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "Nastala chyba pøi úpravì fronty:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "Nastala chyba pøi zmìnì stavu:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "Nastala chyba pøi zmìnì verze:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Nastala chyba výpisu u¾ivatelù: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr "Nastala chyba pøi hledání lískù: "
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "Nastala chyba pøi zmìnì typu:"
+
+#: search.php:140
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Chyba pøi hledání: %s"
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr "Nastala chyba pøi odstraòování '%s' ze seznamu zodpovìdných pro '%s':"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr "Nastala chyba pøi zmìnì implicitní priority."
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr "Nastala chyba pøi nastavení výchozího stavu:"
+
+#: lib/Forms/EditTicket.php:166 lib/Forms/AddComment.php:37
+msgid "This comment is visible to everyone"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Toto není ¹ablona výsledkù hledání"
+
+#: lib/Query.php:435 lib/Query.php:668
+msgid "This query element cannot be edited."
+msgstr "Nelze smazat tuto èást dotazu"
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Tato fronta vy¾aduje zadání verze, ale ¾ádná verze není k dispozici. Dokud "
+"nebudou pro frontu vytvoøeny verze nebude mo¾no zadat lístek."
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Lístek"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Lístek %d byl vymazán."
+
+#: lib/api.php:850
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Lístek %s - %s"
+
+#: lib/Driver/sql.php:1081
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Lístek %s nebyl nalezen."
+
+#: search.php:170
+msgid "Ticket Search"
+msgstr "Prohledávání lístkù"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Stav oznámení"
+
+#: templates/reports/stats.inc:1
+msgid "Ticket Stats"
+msgstr "Statistiky lístkù"
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Typ oznámení"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "Typy asociované s touto frontou"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "URL lístku: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Lístek upraven"
+
+#: lib/api.php:871
+msgid "Tickets"
+msgstr "Lístky"
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"Pokud si pøejete vybrat více polí, zmáèknìte a dr¾te klávesu Control (PC) "
+"nebo Command (Mac) a kliknìte na polo¾ku."
+
+#: ticket/queue.php:89 lib/Whups.php:677 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Renderer/Query.php:108 lib/Forms/Query.php:174
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr "Typ"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Typ ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Popis Typu"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Jméno Typu"
+
+#: search/rss.php:39
+#, php-format
+msgid "Type: %s; State: %s"
+msgstr "Typ: %s; stav: %s"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Nepøiøazené"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Nepøiøazené lístky"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Nepøiøazené lístky"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Nepotvrzen"
+
+#: lib/Renderer/Query.php:167 lib/Renderer/Query.php:207
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Neznámý typ uzlu %s"
+
+#: lib/api.php:790
+msgid "Update"
+msgstr "Aktualizovat"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "Aktualizovat %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Ulozit"
+
+#: lib/Whups.php:683 lib/Ticket.php:981 lib/Renderer/Query.php:146
+msgid "Updated"
+msgstr "Upraveno"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Upravil"
+
+#: lib/Forms/Query.php:327 lib/Forms/Search.php:58
+msgid "Updated from"
+msgstr "Upraveno od"
+
+#: lib/Forms/Query.php:328
+msgid "Updated to"
+msgstr "Upraveno do"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "U¾ivatel"
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr "U¾ivatel"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "U¾ivatelé zodpovìdní za tuto frontu"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "U¾ivatelé zodpovìdní za tuto frontu"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Verze"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Popis Verze"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Jméno Verze"
+
+#: ticket/type.php:43 ticket/queue.php:50
+msgid "Viewable only by members of"
+msgstr "Povoleno prohlí¾et pouze èleny skupiny"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Sledovat tento lístek?"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "Sledující %s"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "Den v týdnu Den Mìsíc"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Den v týdnu Den Mìsíc HH:MM:SS Zóna"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "Yes"
+msgstr "Ano"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "Nejste oprávnìni prohlí¾et lístek %d"
+
+#: lib/Driver/sql.php:1090
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Nedostateèná práva pro prohlí¾ení tohoto lístku (%s)"
+
+#: lib/api.php:375
+msgid "You do not have permission to update this ticket."
+msgstr "Nedostateèná práva pro úpravu lístku"
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Nemáte ¾ádné otevøené po¾adavky"
+
+#: lib/Forms/Query.php:419 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "Nemáte ¾ádné ulo¾ené dotazy"
+
+#: lib/Whups.php:710
+msgid "You must select at least one queue to send reminders for."
+msgstr "Musíte nejdøíve vybrat alespoò jednu frontu,"
+
+#: lib/Forms/CreateTicket.php:132 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "Va¹e emailová adresa"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Vá¹ lístek má ID %s. Nále¾itá osoba byla informována ohlednì tohoto "
+"po¾adavku."
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ zprávu se nepovedlo zobrazit ]"
+
+#: lib/Whups.php:774
+msgid "_Admin"
+msgstr "_Admin"
+
+#: lib/Whups.php:298
+msgid "_Comment"
+msgstr "_Komentáø"
+
+#: query/index.php:157
+msgid "_Date Criteria"
+msgstr "Kriterium _Data"
+
+#: lib/Whups.php:316
+msgid "_Delete"
+msgstr "_Smazat"
+
+#: lib/Query.php:237
+msgid "_Delete Query"
+msgstr "Vyma¾ frontu"
+
+#: lib/Query.php:218
+msgid "_Edit Query"
+msgstr "_Uprav dotaz"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "Zmìò fronty"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "Pøejít"
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr "Filtry _skupin"
+
+#: lib/Whups.php:292
+msgid "_History"
+msgstr "_Historie"
+
+#: lib/Query.php:231
+msgid "_Load Query"
+msgstr "_Nahraj dotaz"
+
+#: lib/Whups.php:765
+#, php-format
+msgid "_My %s"
+msgstr "_Moje %s"
+
+#: lib/Whups.php:768
+msgid "_New Ticket"
+msgstr "_Nový lístek"
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr "Filtry _vlastností"
+
+#: lib/Whups.php:769
+msgid "_Query Builder"
+msgstr "Tvùrce dotazù"
+
+#: lib/Whups.php:770
+msgid "_Reports"
+msgstr "_Reporty"
+
+#: lib/Whups.php:767
+msgid "_Search"
+msgstr "_Vyhledat"
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr "Filtry _textu"
+
+#: lib/Whups.php:294
+msgid "_Update"
+msgstr "Aktualizovat"
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr "Filtry _u¾ivatelù"
+
+#: lib/Whups.php:302
+msgid "_Watch"
+msgstr "_Sledovat"
+
+#: lib/Renderer/Query.php:187
+msgid "contains (case insensitive) substring"
+msgstr "obsahuje znakový øetìzec (nerozli¹ující velká a malá písmena)"
+
+#: lib/Renderer/Query.php:191
+msgid "contains (case sensitive) substring"
+msgstr "obsahuje znakový øetìzec (rozli¹ující velká a malá písmena)"
+
+#: lib/Renderer/Query.php:195
+msgid "contains the word"
+msgstr "obsahuje slovo"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "Souèasný u¾ivatel"
+
+#: lib/api.php:859
+msgid "estimated time"
+msgstr "odhad èasu"
+
+#: lib/Renderer/Query.php:183
+msgid "is"
+msgstr "je"
+
+#: lib/Renderer/Query.php:175
+msgid "is greater than"
+msgstr "je vìt¹í ne¾"
+
+#: lib/Renderer/Query.php:179
+msgid "is less than"
+msgstr "je men¹í ne¾"
+
+#: lib/Renderer/Query.php:199
+msgid "matches the pattern"
+msgstr "odpovídá vzoru"
+
+#: lib/Forms/Search.php:57 lib/Forms/Search.php:59 lib/Forms/Search.php:61
+#: lib/Forms/Search.php:63 lib/Forms/Search.php:65
+msgid "to"
+msgstr ""
--- /dev/null
+# German translations for Whups.
+# Copyright 2002-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Jan Schneider <jan@horde.org>, 2002-2008.
+#
+# query: Abfrage
+# search: Suche
+# queue: Warteschlange
+# resolve: erledigen
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-09-15 15:35+0200\n"
+"PO-Revision-Date: 2009-11-19 17:01+0100\n"
+"Last-Translator: Jan Schneider <jan@horde.org>\n"
+"Language-Team: German <dev@horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" gehört nicht mehr zu den Verantwortlichen für \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d Beobachter, %d Verantwortliche"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s Tickets in %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s Tickets in allen Warteschlangen."
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:497
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) hat geschrieben:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s gehört jetzt zu den Verantwortlichen für \"%s\""
+
+#: templates/reports/stats.inc:15
+#, php-format
+msgid "%s days"
+msgstr "%s Tage"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s Tickets in %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s Tickets in allen Warteschlangen"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s wird bei einer Aktualisierung dieses Tickets benachrichtigt."
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s wird keine Benachrichtigungen mehr über dieses Ticket erhalten."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- Schritt 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- Schritt 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+"--queue-name oder --queue-id müssen eine gültige und öffentliche "
+"Warteschlange bezeichnen."
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<Anfang"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Zurück"
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "Zugriff auf %s verweigert"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Attribut hinzufügen"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr "Attributkriterium hinzufügen"
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Inhalt hinzufügen"
+
+#: query/index.php:233
+msgid "Add Criterion"
+msgstr "Kriterium hinzufügen"
+
+#: lib/Forms/Query.php:320
+msgid "Add Date Criterion"
+msgstr "Datumskriterium hinzufügen"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr "Standardantwort hinzufügen"
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr "Gruppenkriterium hinzufügen"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Priorität hinzufügen"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Eigenschaftskriterium hinzufügen"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Warteschlange hinzufügen"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Status hinzufügen"
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr "Textkriterium hinzufügen"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Typ hinzufügen"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Typ %s hinzufügen"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr "Benutzerkriterium hinzufügen"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Benutzer hinzufügen"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Version hinzufügen"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "Beobachter hinzufügen"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Quelle hinzufügen"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Das Erstellen ihres Tickets ist fehlgeschlagen: %s."
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Adressbücher"
+
+#: admin/index.php:54 lib/api.php:775
+msgid "Administration"
+msgstr "Administration"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:24
+msgid "And"
+msgstr "Und"
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:32
+msgid "Any"
+msgstr "Alle"
+
+#: ticket/type.php:42 ticket/queue.php:48
+msgid "Any Group"
+msgstr "Beliebige Gruppe"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Aufsteigend"
+
+#: lib/api.php:795
+msgid "Assign"
+msgstr "Zuweisen"
+
+#: lib/Whups.php:684 lib/Ticket.php:986 lib/Driver.php:198 lib/api.php:913
+#: lib/Renderer/Query.php:155 config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Zugewiesen"
+
+#: lib/Forms/Query.php:333 lib/Forms/Search.php:62
+msgid "Assigned from"
+msgstr "Zugewiesen seit"
+
+#: lib/Forms/Query.php:334
+msgid "Assigned to"
+msgstr "Zugewiesen bis"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "%s zugewiesen"
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr "Zuordnungen erfolgreich aktualisiert."
+
+#: lib/Forms/CreateTicket.php:153 lib/Forms/EditTicket.php:126
+#: lib/Forms/AddComment.php:24
+msgid "Attachment"
+msgstr "Anlage"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Anlage %s wurde gelöscht."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Anlage %s nicht gefunden."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Anlagen"
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr "Attr_ibutkriterien"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Attribut %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Attributbeschreibung"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Attributname"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Attributtyp"
+
+#: lib/Forms/Search.php:20
+msgid "Attributes"
+msgstr "Attribute"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "Attribute für diesen Typ"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Automatisch Links zu anderen Tickets in den Kommentaren erzeugen?"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Verfügbare Adressbücher:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Verfügbare Warteschlangen:"
+
+#: reports.php:24
+msgid "Average days to close by Owner"
+msgstr "Durschnittliche Tage bis zum Erledigen nach Zuständigen"
+
+#: reports.php:26
+msgid "Average days to close by Queue"
+msgstr "Durschnittliche Tage bis zum Erledigen nach Warteschlange"
+
+#: reports.php:25
+msgid "Average days to close by Requester"
+msgstr "Durschnittliche Tage bis zum Erledigen nach Anfrager"
+
+#: reports.php:29
+msgid "Average time a ticket is unresolved"
+msgstr "Durchschnittliche Zeit bis ein Ticket erledigt wurde"
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr "Branch-Typ"
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr "Anmeldung am E-Mail-Server fehlgeschlagen:"
+
+#: lib/Query.php:164
+msgid "Case Insensitive Substring"
+msgstr "Teilzeichenkette (Groß-/Kleinschreibung ignorieren)"
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Ändern"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Ändern Sie die Einstellungen für die Anzeige, z.B. wie Suchergebnisse "
+"sortiert werden sollen."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+"Ändern Sie die Einstellungen für E-Mail-Benachrichtigungen bei "
+"Ticketänderungen."
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr "Aktion auswählen:"
+
+#: lib/Query.php:678
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Benutzen Sie \"Neue Abfrage\" anstatt den obersten Knoten zu löschen."
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr ""
+"Legen Sie die Reihenfolge der Adressbücher fest, in denen nach passenden "
+"Adressen gesucht werden soll."
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "Auswählen:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "Chronologisch (älteste zuerst)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+"Klicken Sie auf eines Ihrer ausgewählten Adressbücher und markieren Sie alle "
+"Felder, die durchsucht werden sollen."
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr "Kopieren"
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr "Beschreibung kopieren"
+
+#: admin/index.php:151 lib/Forms/Admin/Type.php:36
+msgid "Clone Type"
+msgstr "Typ kopieren"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Kommagetrennte Werte (CSV-Datei)"
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Renderer/Query.php:88
+#: lib/Forms/EditTicket.php:131 lib/Forms/AddComment.php:23
+msgid "Comment"
+msgstr "Kommentar"
+
+#: lib/Renderer/Comment.php:159
+#, php-format
+msgid "Comment #%d"
+msgstr "Kommentar #%d"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d (Private)"
+msgstr "Kommentar #%d (Privat)"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "Kommentar hinzugefügt"
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr "Kommentar zu %s"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Kommentator"
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopie von %s"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Die ausgewählte Datei konnte nicht aus dem ZIP-Archiv gelesen werden."
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "Keine Gruppen gefunden."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Ticket \"%s\" nicht gefunden."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr "Standardprioritäten anlegen"
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "Standardstatus anlegen"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Ticket erstellen"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "Ticket erstellen - Schritt 1"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "Ticket erstellen - Schritt 2"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "Ticket erstellen - Schritt 3"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "Ticket erstellen - Schritt 4"
+
+#: lib/Whups.php:682 lib/Ticket.php:971 lib/api.php:918
+#: lib/Renderer/Query.php:140 config/prefs.php.dist:52
+msgid "Created"
+msgstr "Erstellt"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Erstellt Von"
+
+#: lib/Forms/Query.php:324 lib/Forms/Search.php:56
+msgid "Created from"
+msgstr "Erstellt seit"
+
+#: lib/Forms/Query.php:325
+msgid "Created to"
+msgstr "Erstellt bis"
+
+#: query/index.php:223 query/index.php:240
+msgid "Current Query"
+msgstr "Aktuelle Abfrage"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Aktueller Ticket-Typ"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+"NICHT AUF DIESE NACHRICHT ANTWORTEN. DIESE E-MAIL-ADRESSE WIRD NICHT "
+"BEOBACHTET."
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Datum-/Zeitformat für Suchergebnisse"
+
+#: lib/Forms/Search.php:55
+msgid "Dates"
+msgstr "Daten"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Standard-Ticket-Typ"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Sortierreihenfolge:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Sortierrichtung:"
+
+#: query/index.php:163
+msgid "Delete"
+msgstr "Löschen"
+
+#: lib/Whups.php:866 lib/Whups.php:867
+#, php-format
+msgid "Delete %s"
+msgstr "%s löschen"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "%s löschen?"
+
+#: admin/index.php:947 lib/Forms/Admin/Attribute.php:57
+msgid "Delete Attribute"
+msgstr "Attribut löschen"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "Arbeitsart löschen: Bestätigung"
+
+#: admin/index.php:1082 lib/Forms/Admin/Reply.php:36
+msgid "Delete Form Reply"
+msgstr "Standardantwort löschen"
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr "Standardantwort löschen: Bestätigung"
+
+#: admin/index.php:589 lib/Forms/Admin/Priority.php:36
+msgid "Delete Priority"
+msgstr "Priorität löschen"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "Priorität löschen: Bestätigung"
+
+#: lib/Forms/Query.php:447
+msgid "Delete Query?"
+msgstr "Abfrage löschen?"
+
+#: admin/index.php:332 lib/Forms/Admin/Queue.php:44
+msgid "Delete Queue"
+msgstr "Warteschlange löschen"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "Warteschlange löschen: Bestätigung"
+
+#: admin/index.php:454 lib/Forms/Admin/State.php:35
+msgid "Delete State"
+msgstr "Status löschen"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "Status löschen: Bestätigung"
+
+#: admin/index.php:145 lib/Forms/Admin/Type.php:37
+msgid "Delete Type"
+msgstr "Typ löschen"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "Typ löschen: Bestätigung"
+
+#: admin/index.php:816 lib/Forms/Admin/Version.php:36
+msgid "Delete Version"
+msgstr "Version löschen"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "Version löschen: Bestätigung"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Anlage gelöscht"
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Anlage gelöscht: %s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Absteigend"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "Beschreibung"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Anzeige-Einstellungen"
+
+#: lib/Whups.php:857
+msgid "Download"
+msgstr "Herunterladen"
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr "Diese Ergebnisse herunterladen als: "
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:922
+#: lib/Renderer/Query.php:160
+msgid "Due"
+msgstr "Fällig am"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Fällig ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "Fälligkeitsdatum"
+
+#: lib/Forms/Query.php:336 lib/Forms/Search.php:64
+msgid "Due from"
+msgstr "Fällig seit"
+
+#: lib/Forms/Query.php:337
+msgid "Due to"
+msgstr "Fällig bis"
+
+#: lib/Query.php:230
+msgid "E_xecute Query"
+msgstr "Abfrage ausfü_hren"
+
+#: query/index.php:164
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr "%s Bearbeiten"
+
+#: admin/index.php:942 lib/Forms/Admin/Attribute.php:57
+#: lib/Forms/Admin/Attribute.php:86
+msgid "Edit Attribute"
+msgstr "Attribut bearbeiten"
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr "Attributkriterium bearbeiten"
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "Attribute bearbeiten"
+
+#: lib/Forms/Query.php:320
+msgid "Edit Date Criterion"
+msgstr "Datumskriterium bearbeiten"
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr "Standardantworten bearbeiten"
+
+#: admin/index.php:1077 lib/Forms/Admin/Reply.php:36
+#: lib/Forms/Admin/Reply.php:64
+msgid "Edit Form Reply"
+msgstr "Standardantwort bearbeiten"
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr "Gruppenkriterium bearbeiten"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr "Prioritäten bearbeiten"
+
+#: admin/index.php:584 lib/Forms/Admin/Priority.php:36
+#: lib/Forms/Admin/Priority.php:59
+msgid "Edit Priority"
+msgstr "Priorität bearbeiten"
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr "Eigenschaftskriterium bearbeiten"
+
+#: admin/index.php:326 lib/Forms/Admin/Queue.php:44
+#: lib/Forms/Admin/Queue.php:47
+msgid "Edit Queue"
+msgstr "Warteschlange bearbeiten"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Warteschlangen bearbeiten"
+
+#: admin/index.php:449 lib/Forms/Admin/State.php:35
+#: lib/Forms/Admin/State.php:56
+msgid "Edit State"
+msgstr "Status bearbeiten"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "Status bearbeiten"
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr "Textkriterium bearbeiten"
+
+#: admin/index.php:139 lib/Forms/Admin/Type.php:35
+msgid "Edit Type"
+msgstr "Typ bearbeiten"
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr "Benutzerkriterium bearbeiten"
+
+#: admin/index.php:811 lib/Forms/Admin/Version.php:36
+#: lib/Forms/Admin/Version.php:59
+msgid "Edit Version"
+msgstr "Version bearbeiten"
+
+#: lib/Query.php:226
+msgid "Edit _Permissions"
+msgstr "Rechte bearbeiten"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "_Typen bearbeiten"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Attribute bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr "Standardantworten bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "Prioritäten bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Warteschlangen bearbeiten oder löschen"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Status bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Typen bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Versionen bearbeiten oder löschen"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr "Rechte für diese Standardantwort bearbeiten"
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "Rechte für diese Warteschlange bearbeiten"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "Für diese Warteschlange verantwortliche Benutzer bearbeiten"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "Versionen für diese Warteschlange bearbeiten"
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "E-Mail-Adresse benachrichtigen"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "E-Mail-Adresse entfernen"
+
+#: lib/api.php:504
+msgid "Empty attachment"
+msgstr "Leerer Anhang"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr "Fehler beim Verarbeiten der Nachricht:"
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr ""
+"Fehler: Unbekanntes Abfrageformular \"%s\", zeige Eigenschaften stattdessen."
+
+#: lib/Query.php:163
+msgid "Exact Match"
+msgstr "Genaue Suche"
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr "Abfrage ausführen"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "Zu durchsuchende Felder"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Für Tickets von diesen Warteschlangen"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Für Tickets, die"
+
+#: lib/api.php:806
+msgid "Form Replies"
+msgstr "Standardantworten"
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr "Standardantworten für diesen Typ"
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr "Standardantwortname"
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr "Standardantworttext"
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr "Standardantwort:"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "Allgemeine Einstellungen"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Los"
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "Zuständige Gruppe"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr "Gruppen"
+
+#: lib/api.php:778
+msgid "Hidden Comments"
+msgstr "Versteckte Kommentare"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Geschichte"
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr "Kinder anheben"
+
+#: lib/Whups.php:667 lib/Whups.php:674 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Wenn Sie Tickets auswählen, die keinen Zuständigen haben, an wen sollen die "
+"Benachrichtigungen geschickt werden?"
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr "UND einfügen"
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr "Branch einfügen"
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr "NICHT einfügen"
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr "ODER einfügen"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Ungültige Warteschlange"
+
+#: lib/Whups.php:261 lib/api.php:495
+msgid "Invalid Ticket Id"
+msgstr "Ungültige Ticket-ID"
+
+#: lib/api.php:548
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Ungültiges Argument: Attributname oder -wert fehlen."
+
+#: lib/api.php:533
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+"Ungültige Argumente: Eine Ticketnummer und neue Attribute müssen angegeben "
+"werden."
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Ungültige Warteschlange"
+
+#: search/rss.php:30
+msgid "Invalid search"
+msgstr "Ungültige Suche"
+
+#: lib/api.php:397
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Ungültige Ticketdaten eingegeben: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "Sollen für diese Warteschlange Versionen verwaltet werden?"
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Ende>>"
+
+#: lib/Forms/Query.php:411
+msgid "Load Query"
+msgstr "Abfrage laden"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Lade..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "MM/TT/JJ"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/TT/JJ HH:MM"
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Kopie von %s erstellen"
+
+#: lib/Forms/EditTicket.php:167 lib/Forms/AddComment.php:38
+msgid "Make this comment visible only to members of a group?"
+msgstr ""
+"Diesen Kommentar nur für Mitglieder einer bestimmten Gruppe sichtbar machen?"
+
+#: lib/Forms/Query.php:274
+msgid "Match"
+msgstr "Suchbegriff"
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:275
+msgid "Match Operator"
+msgstr "Suchoperation"
+
+#: lib/Query.php:167
+msgid "Match Pattern"
+msgstr "Suchmuster"
+
+#: lib/Query.php:166
+msgid "Match Word"
+msgstr "Suchwort"
+
+#: reports.php:30
+msgid "Maximum time a ticket is unresolved"
+msgstr "Längste Zeit bis ein Ticket erledigt wurde"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Menüliste"
+
+#: reports.php:31
+msgid "Minimum time a ticket is unresolved"
+msgstr "Kürzeste Zeit bis ein Ticket erledigt wurde"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "Neueste zuerst"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Nach unten"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Nach oben"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Ticket %d nach \"%s\" verschoben"
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Meine %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Meine %s :: Inhalt hinzfügen"
+
+#: search.php:178 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Meine Abfragen"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Meine Anfragen"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Meine Tickets"
+
+#: lib/api.php:884
+msgid "My tickets by assignment date"
+msgstr "Meine Tickets nach Zuweisungsdatum"
+
+#: lib/api.php:883
+msgid "My tickets by creation date"
+msgstr "Meine Tickets nach Erstelldatum"
+
+#: lib/api.php:885
+msgid "My tickets by due date"
+msgstr "Meine Tickets nach Fälligkeitsdatum"
+
+#: lib/api.php:886
+msgid "My tickets by resolution date"
+msgstr "Meine Tickets nach Erledigungsdatum"
+
+#: lib/Forms/Query.php:422
+msgid "Name"
+msgstr "Name"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr "Name der Kopie"
+
+#: lib/Query.php:216
+msgid "Ne_w Query"
+msgstr "Ne_ue Abfrage"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Neu"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Neue Anlage"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Neue Anlage: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "Neue Warteschlange"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Neues Ticket"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Neuer Typ"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Weiter>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "No"
+msgstr "Nein"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Es wurden keine Priorität für dieses Ticket und keine Standard-Priorität für "
+"den Ticket-Typ \"%s\" angegeben."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "Es wurden keine Abfragen gespeichert."
+
+#: lib/Block/query.php:62 lib/Driver/sql.php:553
+msgid "No query to run"
+msgstr "Kein Abfrage durchzuführen"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Keine Afbragen verfügbar."
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Es wurden kein Status für dieses Ticket und kein Standard-Status für den "
+"Ticket-Typ \"%s\" angegeben."
+
+#: reports.php:35
+msgid "No stats available."
+msgstr "Keine Statistiken verfügbar."
+
+#: lib/Driver.php:533
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Ein Backend \"%s\" konnte nicht gefunden werden"
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr "Eine Darstellung \"%s\" konnte nicht gefunden werden"
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Keine Tickets sind Ihnen zugewiesen."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Keine Tickets ohne Zuweisung!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Keine Tickets in der Warteschlange."
+
+#: lib/Whups.php:716
+msgid "No tickets matched your search criteria."
+msgstr "Keine Tickets entsprachen Ihren Suchkriterien."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+"Es wurden kein Typ für dieses Ticket und kein Standard-Typ für die "
+"Warteschlange \"%s\" angegeben."
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:67
+msgid "None"
+msgstr "Keine"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:26
+msgid "Not"
+msgstr "Nicht"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Benachrichtigungs-Einstellungen"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Nur über Ticketänderungen durch andere Benutzer benachrichtigen?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Nur über Ticketänderungen durch andere Benutzer benachrichtigen?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Offen"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "Offene Tickets"
+
+#: reports.php:23
+msgid "Open Tickets by Owner"
+msgstr "Offene Tickets nach Zuständigen"
+
+#: reports.php:21
+msgid "Open Tickets by Priority"
+msgstr "Offene Tickets nach Priorität"
+
+#: reports.php:18
+msgid "Open Tickets by Queue"
+msgstr "Offene Tickets nach Warteschlange"
+
+#: reports.php:22
+msgid "Open Tickets by Requester"
+msgstr "Offene Tickets nach Anfrager"
+
+#: reports.php:19
+msgid "Open Tickets by State"
+msgstr "Offene Tickets nach Status"
+
+#: reports.php:20
+msgid "Open Tickets by Type"
+msgstr "Offene Tickets nach Typ"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Offene Tickets in %s"
+
+#: queue/rss.php:119 queue/index.php:43 queue/index.php:57
+#, php-format
+msgid "Open tickets in %s"
+msgstr "Offene Tickets in %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Offene Tickets in allen Warteschlangen"
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:25
+msgid "Or"
+msgstr "Oder"
+
+#: lib/Whups.php:681 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "Zuständige"
+
+#: lib/Whups.php:866
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "%s unwiederbringlich löschen?"
+
+#: ticket/update.php:22 ticket/type.php:74 ticket/delete.php:51
+#: ticket/queue.php:131 ticket/deleteAttachment.php:21
+msgid "Permission Denied"
+msgstr "Zugriff verweigert"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:197
+msgid "Permission Denied."
+msgstr "Zugriff verweigert."
+
+#: query/run.php:44 query/index.php:31 lib/Forms/Query.php:459
+#, php-format
+msgid "Permission denied."
+msgstr "Zugriff verweigert."
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "Bitte mehrdeutige oder ungültige Adressen korrigieren."
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr "Prioritäten für diesen Typ"
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:669 lib/Whups.php:678
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:147
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:198
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Priorität"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Priorität ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Prioritätbeschreibung"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Prioritätbezeichnung"
+
+#: search.php:178
+msgid "Public Queries"
+msgstr "Öffentliche Abfragen"
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr "Abfrageeditor"
+
+#: lib/Forms/Query.php:387
+msgid "Query Name"
+msgstr "Abfragename"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Abfrageparameter"
+
+#: query/rss.php:63 query/run.php:79 lib/Block/query.php:3
+#: lib/Block/query.php:49
+msgid "Query Results"
+msgstr "Abfrageergebnisse"
+
+#: lib/Forms/Query.php:389
+msgid "Query Slug"
+msgstr "Abfragekurzname"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Durchzuführende Abfrage"
+
+#: lib/Whups.php:679 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Renderer/Query.php:94 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:40 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "Warteschlange"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Warteschlange ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Warteschlangeninhalte"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Warteschlangenbeschreibung"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "Warteschlangen-E-Mail-Adresse"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Warteschlangenname"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr "Warteschlangenkurzname"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Warteschlangenbeschreibung"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "Version"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Warteschlange/Typ Matri_x"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Warteschlange/Typ Matrix"
+
+#: lib/api.php:163 lib/api.php:781
+msgid "Queues"
+msgstr "Warteschlangen"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "_Zurück zu Suchergebnissen"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Soll dieses Attribut wirlich gelöscht werden? Das kann Datenprobleme "
+"verursachen!"
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr "Diese Standardantwort wirklich löschen?"
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Soll diese Priorität wirlich gelöscht werden? Das kann Datenprobleme "
+"verursachen!"
+
+#: lib/Forms/Query.php:450
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"Diese Abfrage wirklich löschen? Dieser Vorgang kann nicht rückgängig gemacht "
+"werden."
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+"Soll dieses Warteschlange wirklich gelöscht werden? Das kann zu "
+"Datenproblemen führen!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Soll dieser Status wirlich gelöscht werden? Das kann Datenprobleme "
+"verursachen!"
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Dieses Ticket wirklich löschen? Es wird nicht archiviert, sondern geht für "
+"immer verloren."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+"Soll dieser Typ wirlich gelöscht werden? Das kann Datenprobleme verursachen!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Soll diese Version wirlich gelöscht werden? Das kann Datenprobleme "
+"verursachen!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "Empfangene Nachricht:"
+
+#: search.php:162
+msgid "Refine Search"
+msgstr "Suche verfeinern"
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr "Erinnerungen wurden verschickt."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Benutzer entfernen"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "Beobachter entfernen"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Quelle entfernen"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "Diesen Kommentar beantworten"
+
+#: reports.php:40
+msgid "Reports"
+msgstr "Berichte"
+
+#: lib/Whups.php:680 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Anfrager"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "Notwendiges Attribute?"
+
+#: lib/Whups.php:685 lib/Ticket.php:991 lib/Driver.php:199 lib/api.php:927
+#: lib/Renderer/Query.php:150 config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Erledigt"
+
+#: lib/Forms/Query.php:330 lib/Forms/Search.php:60
+msgid "Resolved from"
+msgstr "Erledigt seit"
+
+#: lib/Forms/Query.php:331
+msgid "Resolved to"
+msgstr "Erledigt bis"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "Verantwortliche Benutzer"
+
+#: lib/Whups.php:306
+msgid "S_et Queue"
+msgstr "_Warteschlange festlegen"
+
+#: lib/Query.php:234
+msgid "Sa_ve Query"
+msgstr "Abfrage s_peichern"
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:385
+msgid "Save"
+msgstr "Speichern"
+
+#: query/index.php:233
+msgid "Save Criterion"
+msgstr "Kriterium speichern"
+
+#: lib/Forms/Query.php:384
+msgid "Save Query"
+msgstr "Abfrage speichern"
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr "Als Abfrage speichern"
+
+#: search.php:155 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Suche"
+
+#: lib/Forms/Query.php:278
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Attribut %s durchsuchen"
+
+#: lib/Forms/Query.php:272 lib/Forms/Query.php:281
+msgid "Search Attribute"
+msgstr "Attribut suchen"
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Kommentare durchsuchen"
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr "Zuständige durchsuchen"
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr "Anfrager durchsuchen"
+
+#: search.php:147 search/rss.php:55 search/rss.php:59
+msgid "Search Results"
+msgstr "Suchergebnisse"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Suchergebnisse: %s von %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Zusammenfassungen durchsuchen"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Tickets suchen"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr ""
+"Wählen Sie die Adressbücher zum Suchen nach und Hinzufügen von neuen "
+"Adressen aus."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr "Wählen Sie die Felder aus, in denen nach Namen gesucht werden soll."
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr ""
+"Wählen Sie die Standardansicht aus, die nach dem Anmelden angezeigt werden "
+"soll:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Ausgewählte Adressbücher:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "Erinner_ungen versenden"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "Erinnerungen versenden"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr "Nur für diese Liste von Ticket-IDs versenden"
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Standardpriorität festlegen"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Standardstatus festlegen"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "Warteschlange festlegen - Schritt 1"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "Warteschlange festlegen - Schritt 2"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "Warteschlange festlegen - Schritt 3"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Warteschlange für %s festlegen"
+
+#: lib/api.php:800
+msgid "Set Requester"
+msgstr "Anfrager festlegen"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr "Typ festlegen - Schritt 1"
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr "Typ festlegen - Schritt 2"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "Typ für %s festlegen"
+
+#: lib/Whups.php:311
+msgid "Set _Type"
+msgstr "_Typ festlegen"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+"Kommentare in chronologischer Reihenfolge anzeigen oder neueste zuerst?"
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "Ticket-IDs auf der Portalseite anzeigen?"
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Tickets, die Sie erstellt haben, auf der Portalseite anzeigen?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Einfacher HTML-Bericht"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"Kurznamen ermöglichen den direkten Zugriff auf die offenen Tickets einer "
+"Warteschlange über: %s.<br />Kurznamen dürfen Buchstaben, Zahlen und "
+"Unterstriche enthalten."
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr "Sortieren nach %s"
+
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Spamschutz"
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:670 lib/Whups.php:676
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:193 config/prefs.php.dist:47
+msgid "State"
+msgstr "Status"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Status ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Statuskategorie"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Statusbeschreibung"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Statusbezeichnung"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "Status für diesen Typ"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Status"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "Abschicken"
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr "Diese Abfrage abonnieren"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "%s wurde erfolgreich nach %s kopiert."
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Tickettyp erfolgreich geändert."
+
+#: ticket/delete.php:30 lib/Whups.php:668 lib/Whups.php:675 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Renderer/Query.php:89
+#: lib/Forms/CreateTicket.php:152 lib/Forms/EditTicket.php:58
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Zusammenfassung"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Zusammenfassung ⇒ %s"
+
+#: lib/Forms/Search.php:43
+msgid "Summary like"
+msgstr "Zusammenfassung"
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "Genommen von %s"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Text"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1306
+msgid "That queue slug is already taken. Please select another."
+msgstr "Dieser Kurzname ist bereits vergeben. Bitte wählen Sie einen anderen."
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "Die E-Mail-Adresse des Anfragers"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+"Das VFS-Backend muss konfiguriert sein, um das Hochladen von Dateien zu "
+"erlauben."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Das Attribut \"%s\" wurde zu %s hinzugefügt."
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr "Das Attribut wurde gelöscht."
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr "Das Attribut wurde geändert."
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr "Das Attribut wurde nicht gelöscht."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "Die Standard-Priorität wurde gespeichert."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "Der Standard-Status wurde gespeichert."
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr "Die Standardantwort \"%s\" wurde zu %s hinzugefügt."
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr "Der Standardantwort wurde gelöscht."
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr "Die Standardantwort wurde geändert."
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr "Die Standardantwort wurde nicht gelöscht."
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Die Priorität \"%s\" wurde zu %s hinzugefügt."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "Die Priorität wurde gelöscht."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "Die Priorität wurde geändert."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "Die Priorität wurde nicht gelöscht."
+
+#: lib/Forms/Query.php:463
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Die Abfrage \"%s\" konnte nicht gelöscht werden: %s"
+
+#: lib/Forms/Query.php:465
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Die Abfrage \"%s\" wurde gelöscht."
+
+#: lib/Forms/Query.php:430
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Die Abfrage konnte nicht geladen werden:"
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Die Warteschlange \"%s\" wurde erstellt."
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "Die Warteschlange wurde gelöscht."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "Die Warteschlange wurde geändert."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "Die Warteschlange wurde nicht gelöscht."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Die ausgewählte Datei existiert nicht in dem ZIP-Anhang."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Die ausgewählte Vorlage existiert nicht."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Der Status \"%s\" wurde zu %s hinzugefügt."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "Der Status wurde gelöscht."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "Der Status wurde geändert."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "Der Status wurde nicht gelöscht."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Das Ticket wurde nicht gelöscht."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Der Typ \"%s\" wurde geändert."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "Der Typ wurde gelöscht."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "Der Typ wurde nicht gelöscht."
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Die Version \"%s\" wurde zu %s hinzugefügt."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "Die Version wurde gelöscht."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "Die Version wurde geändert."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "Die Version wurde nicht gelöscht."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "Keine Attributarten zum Bearbeiten"
+
+#: lib/Forms/Query.php:281
+msgid "There are no attributes defined."
+msgstr "Es sind keine Attribute angelegt."
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr "Es gibt keine Standardantworten, die bearbeitet werden können"
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr "Es gibt keine offenen Tickets."
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr "Keine Prioritäten zum Bearbeiten"
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "Es sind keine Warteschlangen verfügbar."
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "Keine Warteschlangen zum Bearbeiten"
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "Es gibt keine Warteschlangen, für die Sie Tickets erstellen dürfen."
+
+#: lib/Forms/Search.php:38
+msgid "There are no queues which you can search."
+msgstr "Es gibt keine Warteschlangen, die Sie durchsuchen dürfen."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "Kein Status zum Bearbeiten"
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Dieser Warteschlange sind keine Tickettypen zugeordnet; solange können sie "
+"keine Tickets für diese Warteschlange erstellen."
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr "Keine Typen zum Bearbeiten"
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "Für diese Warteschlange ist kein Benutzer verantwortlich."
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Es gibt keine Benutzer, denen dieses Ticket zugewiesen werden kann."
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "Keine Versionen zum Bearbeiten"
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr "Es liegen keine Daten für diesen Bericht vor."
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+"Beim Hinzufügen von \"%s\" zu der Liste der Verantwortlichen für \"%s\" ist "
+"ein Problem aufgetreten:"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "Beim Erstellen des Attributs ist ein Fehler aufgetreten:"
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr "Beim Erstellen der Standardantwort ist ein Fehler aufgetreten:"
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "Beim Erstellen der Priorität ist ein Fehler aufgetreten:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "Beim Erstellen der Warteschlange ist ein Fehler aufgetreten:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "Beim Erstellen des Status ist ein Fehler aufgetreten:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "Beim Erstellen der Version ist ein Fehler aufgetreten:"
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr "Beim Löschen des Attributs ist ein Fehler aufgetreten:"
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr "Beim Löschen der Standardantwort ist ein Fehler aufgetreten:"
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "Beim Löschen der Priorität ist ein Fehler aufgetreten:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "Beim Löschen der Warteschlange ist ein Fehler aufgetreten:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "Beim Löschen des Status ist ein Fehler aufgetreten:"
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr "Beim Löschen des Tickets ist ein Fehler aufgetreten:"
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "Beim Löschen des Typs ist ein Fehler aufgetreten:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "Beim Löschen der Version ist ein Fehler aufgetreten:"
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr "Beim Bearbeiten des Attributs ist ein Fehler aufgetreten:"
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr "Beim Bearbeiten der Standardantwort ist ein Fehler aufgetreten:"
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "Beim Bearbeiten der Priorität ist ein Fehler aufgetreten:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "Beim Bearbeiten der Warteschlange ist ein Fehler aufgetreten:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "Beim Bearbeiten des Status ist ein Fehler aufgetreten:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "Beim Bearbeiten der Version ist ein Fehler aufgetreten:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Beim Anzeigen der Benutzer ist ein Fehler aufgetreten: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr ""
+"Beim Suchen von Tickets in dieser Warteschlange ist ein Fehler aufgetreten: "
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "Beim Bearbeiten des Typs ist ein Fehler aufgetreten:"
+
+#: search.php:140
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Bei der Ausführung Ihrer Suchanfrage ist ein Fehler aufgetreten: %s"
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+"Beim Löschen von \"%s\" aus der Liste der Verantwortlichen für \"%s\" ist "
+"ein Fehler aufgetreten:"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr "Beim Festlegen der Standard-Priorität ist ein Fehler aufgetreten:"
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr "Beim Festlegen des Standard-Status ist ein Fehler aufgetreten:"
+
+#: lib/Forms/EditTicket.php:166 lib/Forms/AddComment.php:37
+msgid "This comment is visible to everyone"
+msgstr "Dieser Kommentar ist für jedermann sichtbar"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+"Diese E-Mail-Adresse wird zum Versenden aller Benachrichtigungen für diese "
+"Warteschlange benutzt."
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Dies ist keine Vorlage für Suchergebnisse."
+
+#: lib/Query.php:435 lib/Query.php:668
+msgid "This query element cannot be edited."
+msgstr "Diese Abfragekriterium kann nicht bearbeitet werden."
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Für diese Warteschlange müssen Sie eine Version angeben, aber es sind noch "
+"keine Versionen zugeordnet. Solange keine Versionen erzeugt worden sind, "
+"können Sie keine Tickets anlegen."
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Ticket"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Das Ticket %d wurde gelöscht."
+
+#: lib/api.php:850
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Ticket %s - %s"
+
+#: lib/Driver/sql.php:1081
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Ticket %s nicht gefunden."
+
+#: search.php:170
+msgid "Ticket Search"
+msgstr "Ticketsuche"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Ticket-Status"
+
+#: templates/reports/stats.inc:1
+msgid "Ticket Stats"
+msgstr "Ticket-Statistiken"
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Ticket-Typ"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "Dieser Warteschlange zugehörige Tickettypen"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "Ticket-URL: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Ticket aktualisiert"
+
+#: lib/api.php:871
+msgid "Tickets"
+msgstr "Tickets"
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr "Zur Abfrage \"%s\" passende Tickets."
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"Halten Sie beim Klicken Strg (PC) bzw. Command (Mac) gedrückt, um mehrere "
+"Einträge auszuwählen."
+
+#: ticket/queue.php:89 lib/Whups.php:677 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Renderer/Query.php:108 lib/Forms/Query.php:174
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr "Typ"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Typ ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Typbeschreibung"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Typbezeichnung"
+
+#: search/rss.php:39
+#, php-format
+msgid "Type: %s; State: %s"
+msgstr "Typ: %s; Status: %s"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Nicht zugewiesen"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Nicht zugewiesene Tickets"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Nicht zugewiesene Tickets"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Unbestätigt"
+
+#: lib/Renderer/Query.php:166 lib/Renderer/Query.php:206
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Unbekannter Knotentyp %s"
+
+#: lib/api.php:790
+msgid "Update"
+msgstr "Aktualisierung"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "%s aktualisieren"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Zuordnungen aktualisieren"
+
+#: lib/Whups.php:683 lib/Ticket.php:981 lib/Renderer/Query.php:145
+msgid "Updated"
+msgstr "Aktualisiert"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Aktualisiert Von"
+
+#: lib/Forms/Query.php:327 lib/Forms/Search.php:58
+msgid "Updated from"
+msgstr "Aktualisiert seit"
+
+#: lib/Forms/Query.php:328
+msgid "Updated to"
+msgstr "Aktualisiert bis"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "Benutzer"
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr "Benutzerkennung"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "Für diese Warteschlange verantwortliche Benutzer"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "Für diese Warteschlange verantwortliche Benutzer"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Version"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Versionsbeschreibung"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Versionsbezeichnung"
+
+#: ticket/type.php:43 ticket/queue.php:50
+msgid "Viewable only by members of"
+msgstr "Nur einsehbar für Mitglieder von"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Dieses Ticket beobachten"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "Beobachter für %s"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "Wochentag Tag Monat"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Wochentag Tag Monat HH:MM:SS TZ"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "Yes"
+msgstr "Ja"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "Sie haben keine Berechtigung das Ticket %d anzuzeigen."
+
+#: lib/Driver/sql.php:1090
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Sie haben nicht genügend Rechte, um dieses Ticket (%s) anzuzeigen."
+
+#: lib/api.php:375
+msgid "You do not have permission to update this ticket."
+msgstr "Sie haben nicht genügend Rechte, um dieses Ticket zu aktualisieren."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Sie haben keine offenen Anfragen."
+
+#: lib/Forms/Query.php:419 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "Sie haben keine gespeicherten Abfragen."
+
+#: lib/Whups.php:710
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+"Sie müssen erst mindestens ein Warteschlange auswählen, für die Erinnerungen "
+"verschickt werden sollen."
+
+#: lib/Forms/CreateTicket.php:132 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "Ihre E-Mail-Adresse"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Ihre Ticketnummer lautet %s. Eine zuständige Person wurde benachrichtigt."
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ Der Nachrichtentext konnte nicht dargestellt werden. ]"
+
+#: lib/Whups.php:774
+msgid "_Admin"
+msgstr "A_dministration"
+
+#: lib/Whups.php:298
+msgid "_Comment"
+msgstr "_Kommentar"
+
+#: query/index.php:157
+msgid "_Date Criteria"
+msgstr "Datums_kriterien"
+
+#: lib/Whups.php:316
+msgid "_Delete"
+msgstr "Lös_chen"
+
+#: lib/Query.php:237
+msgid "_Delete Query"
+msgstr "Abfrage löschen"
+
+#: lib/Query.php:218
+msgid "_Edit Query"
+msgstr "Abfrage bea_rbeiten"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "_Warteschlangen bearbeiten"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "_Los"
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr "_Gruppenkriterien"
+
+#: lib/Whups.php:292
+msgid "_History"
+msgstr "_Geschichte"
+
+#: lib/Query.php:231
+msgid "_Load Query"
+msgstr "Ab_frage laden"
+
+#: lib/Whups.php:765
+#, php-format
+msgid "_My %s"
+msgstr "_Meine %s"
+
+#: lib/Whups.php:768
+msgid "_New Ticket"
+msgstr "_Neues Ticket"
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr "Eigens_chaftenkriterien"
+
+#: lib/Whups.php:769
+msgid "_Query Builder"
+msgstr "_Abfrageeditor"
+
+#: lib/Whups.php:770
+msgid "_Reports"
+msgstr "_Berichte"
+
+#: lib/Whups.php:767
+msgid "_Search"
+msgstr "_Suche"
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr "_Textkriterien"
+
+#: lib/Whups.php:294
+msgid "_Update"
+msgstr "Akt_ualisierung"
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr "Benut_zerkriterien"
+
+#: lib/Whups.php:302
+msgid "_Watch"
+msgstr "Be_obachten"
+
+#: lib/Renderer/Query.php:186
+msgid "contains (case insensitive) substring"
+msgstr "enthält Teilzeichenkette (Groß-/Kleinschreibung ignoriert)"
+
+#: lib/Renderer/Query.php:190
+msgid "contains (case sensitive) substring"
+msgstr "enthält Teilzeichenkette (Groß-/Kleinschreibung beachtet)"
+
+#: lib/Renderer/Query.php:194
+msgid "contains the word"
+msgstr "enthält das Wort"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "aktueller Benutzer:"
+
+#: lib/api.php:859
+msgid "estimated time"
+msgstr "geschätzte Zeit"
+
+#: lib/Renderer/Query.php:182
+msgid "is"
+msgstr "ist"
+
+#: lib/Renderer/Query.php:174
+msgid "is greater than"
+msgstr "ist größer als"
+
+#: lib/Renderer/Query.php:178
+msgid "is less than"
+msgstr "ist kleiner als"
+
+#: lib/Renderer/Query.php:198
+msgid "matches the pattern"
+msgstr "entspricht dem Muster"
+
+#: lib/Forms/Search.php:57 lib/Forms/Search.php:59 lib/Forms/Search.php:61
+#: lib/Forms/Search.php:63 lib/Forms/Search.php:65
+msgid "to"
+msgstr "bis"
--- /dev/null
+# Spanish translations for whups package
+# Traducciones al español para el paquete whups.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the whups package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-03-16 09:38+0100\n"
+"PO-Revision-Date: 2008-03-16 09:38+0100\n"
+"Last-Translator: Manuel P. Ayala <mayala@unex.es>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: admin/index.php:720
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" ya no está entre los encargados de \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d observadores, %d encargados"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s incidencias en %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s incidencias en todas las colas"
+
+#: lib/Renderer/Comment.php:119
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:427
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) escribió:"
+
+#: admin/index.php:677
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "Se ha añadido a %s a los encargados de \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s días"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s incidencias en %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s incidencias en todas las colas"
+
+#: ticket/watch.php:59
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "Se notificará a %s cuando se actualice esta incidencia"
+
+#: ticket/watch.php:71
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s no recibirá más actualizaciones de esta incidencia."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- Etapa 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- Etapa 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+"--nombre-de-cola o --id-de-cola tienen que indicar una cola pública válida."
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<Primero"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Anterior"
+
+#: view.php:66
+#, php-format
+msgid "Access denied to %s"
+msgstr "Se ha denegado el acceso a %s"
+
+#: lib/Forms/Admin.php:678
+msgid "Add Attribute"
+msgstr "Añadir atributo"
+
+#: lib/Forms/Query.php:265
+msgid "Add Attribute Criterion"
+msgstr "Añadir criterio de atributo"
+
+#: mybugs.php:52
+msgid "Add Content"
+msgstr "Añadir contenido"
+
+#: query.php:212
+msgid "Add Criterion"
+msgstr "Añadir criterio"
+
+#: lib/Forms/Query.php:91
+msgid "Add Group Criterion"
+msgstr "Añadir criterio de grupo"
+
+#: lib/Forms/Admin.php:479
+msgid "Add Priority"
+msgstr "Añadir prioridad"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Añadir criterio de propiedad"
+
+#: lib/Forms/Admin.php:20 lib/Forms/Admin.php:21
+msgid "Add Queue"
+msgstr "Añadir cola"
+
+#: lib/Forms/Admin.php:368
+msgid "Add State"
+msgstr "Añadir estado"
+
+#: lib/Forms/Query.php:126
+msgid "Add Text Criterion"
+msgstr "Añadir criterio de texto"
+
+#: lib/Forms/Admin.php:223 lib/Forms/Admin.php:224
+msgid "Add Type"
+msgstr "Añadir tipo"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Añadir tipo %s"
+
+#: lib/Forms/Query.php:40
+msgid "Add User Criterion"
+msgstr "Añadir criterio de usuario"
+
+#: lib/Forms/Admin.php:154
+msgid "Add Users"
+msgstr "Añadir usuarios"
+
+#: lib/Forms/Admin.php:590
+msgid "Add Version"
+msgstr "Añadir versión"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Añadir Observador"
+
+#: ticket/create.php:50
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Ha fallado la adición de la incidencia: %s."
+
+#: admin/index.php:55 lib/api.php:879
+msgid "Administration"
+msgstr "Administración"
+
+#: lib/Forms/Query.php:21 lib/Renderer/Query.php:77
+msgid "And"
+msgstr "Y"
+
+#: lib/Forms/Query.php:174 lib/Forms/Query.php:181 lib/Forms/Query.php:186
+#: lib/Forms/Query.php:193 lib/Forms/Query.php:198 lib/Forms/Search.php:28
+msgid "Any"
+msgstr "Cualquiera"
+
+#: lib/Forms/EditTicket.php:140 lib/Forms/AddComment.php:37
+#: ticket/queue.php:44 ticket/type.php:45
+msgid "Any Group"
+msgstr "Cualquier grupo"
+
+#: config/.bak/prefs.php.dist:55
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: lib/api.php:894
+msgid "Assign"
+msgstr "Asignar"
+
+#: lib/Driver.php:196 lib/api.php:989 lib/Whups.php:565 lib/Ticket.php:885
+#: config/.bak/prefs.php.dist:44
+msgid "Assigned"
+msgstr "Asignada"
+
+#: lib/Renderer/Comment.php:72
+#, php-format
+msgid "Assigned to %s"
+msgstr "Asignada a %s"
+
+#: admin/index.php:1023
+msgid "Associations updated successfully."
+msgstr "Se han actualizado correctamente las asociaciones."
+
+#: lib/Forms/EditTicket.php:124 lib/Forms/AddComment.php:24
+#: lib/Forms/CreateTicket.php:128
+msgid "Attachment"
+msgstr "Adjunto"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Se ha eliminado el adjunto %s"
+
+#: lib/Ticket.php:465
+#, php-format
+msgid "Attachment %s not found."
+msgstr "No se encontró el adjunto %s."
+
+#: lib/Ticket.php:895
+msgid "Attachments"
+msgstr "Adjuntos"
+
+#: query.php:143
+msgid "Attri_bute Criteria"
+msgstr "Criterios de a_tributos"
+
+#: lib/Driver.php:118
+#, php-format
+msgid "Attribute %d"
+msgstr "Atributo %d"
+
+#: lib/Forms/Admin.php:682 lib/Forms/Admin.php:732 lib/Forms/Admin.php:755
+msgid "Attribute Description"
+msgstr "Descripción del atributo"
+
+#: lib/Forms/Admin.php:681 lib/Forms/Admin.php:710 lib/Forms/Admin.php:729
+#: lib/Forms/Admin.php:752
+msgid "Attribute Name"
+msgstr "Nombre del atributo"
+
+#: lib/Forms/Admin.php:299
+msgid "Attributes for this Type"
+msgstr "Atributos para este tipo"
+
+#: config/.bak/prefs.php.dist:117
+msgid "Autolink to other tickets in comments?"
+msgstr "¿Vincular automáticamente a otras incidencias en los comentarios?"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Colas disponibles:"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Promedio de días para cerrar, por propietario"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Promedio de días para cerrar, por cola"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Promedio de días para cerrar, por solicitante"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Tiempo promedio sin resolver una incidencia"
+
+#: lib/Forms/Query.php:26
+msgid "Branch Type"
+msgstr "Tipo de rama"
+
+#: scripts/mail-filter.php:195
+msgid "Cannot authenticate at mail server:"
+msgstr "No se puede autentificar en el servidor de correo:"
+
+#: lib/Query.php:51
+msgid "Case Insensitive Substring"
+msgstr "Subcadena sin distinción de may./min."
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Cambiar"
+
+#: config/.bak/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Cambiar opciones de visualización tales como cómo ordenar los resultados de "
+"las búsquedas."
+
+#: config/.bak/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+"Cambiar la configuración de los avisos de actividad de incidencias por "
+"correo."
+
+#: query.php:146
+msgid "Choose Action:"
+msgstr "Elegir acción:"
+
+#: lib/Query.php:221
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Elija Añadir consulta en vez de eliminar el nodo raiz."
+
+#: lib/Forms/CreateTicket.php:37 lib/Forms/CreateTicket.php:67
+msgid "Choose:"
+msgstr "Elegir:"
+
+#: config/.bak/prefs.php.dist:127
+msgid "Chronological (oldest first)"
+msgstr "Cronológico (antiguos primero)"
+
+#: lib/Forms/Admin.php:350
+msgid "Clone"
+msgstr "Duplicar"
+
+#: lib/Forms/Admin.php:356
+msgid "Clone Description"
+msgstr "Descripción del duplicado"
+
+#: admin/index.php:149 lib/Forms/Admin.php:238
+msgid "Clone Type"
+msgstr "Duplicar tipo"
+
+#: config/.bak/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Valores separados por comas (archivo CSV)"
+
+#: lib/Forms/EditTicket.php:129 lib/Forms/AddComment.php:23
+#: lib/Renderer/Query.php:88 ticket/queue.php:32 ticket/type.php:35
+msgid "Comment"
+msgstr "Comentario"
+
+#: lib/Renderer/Comment.php:151
+#, php-format
+msgid "Comment #%d"
+msgstr "Comentario #%d"
+
+#: ticket/comment.php:69
+msgid "Comment added"
+msgstr "Se ha añadido el comentario"
+
+#: ticket/comment.php:34
+#, php-format
+msgid "Comment on %s"
+msgstr "Comentario de %s"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Comentarista"
+
+#: lib/Forms/Admin.php:354
+#, php-format
+msgid "Copy of %s"
+msgstr "Copia de %s"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "No se pudo extraer el archivo solicitado del archivo Zip."
+
+#: lib/Forms/Query.php:96
+msgid "Could not find any groups."
+msgstr "No se pudo encontrar ningún grupo."
+
+#: lib/Mail.php:92
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "No se pudo encontrar la incidencia \"%s\"."
+
+#: lib/Forms/Admin.php:289
+msgid "Create Default Priorities"
+msgstr "Crear prioridades por omisión"
+
+#: lib/Forms/Admin.php:279
+msgid "Create Default States"
+msgstr "Crear estados por omisión"
+
+#: config/.bak/prefs.php.dist:68
+msgid "Create Ticket"
+msgstr "Añadir incidencia"
+
+#: lib/Forms/CreateTicket.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Añadir incidencia - Paso 1"
+
+#: lib/Forms/CreateTicket.php:55
+msgid "Create Ticket - Step 2"
+msgstr "Añadir incidencia - Paso 2"
+
+#: lib/Forms/CreateTicket.php:100
+msgid "Create Ticket - Step 3"
+msgstr "Añadir incidencia - Paso 3"
+
+#: lib/Forms/CreateTicket.php:168
+msgid "Create Ticket - Step 4"
+msgstr "Añadir incidencia - Paso 4"
+
+#: lib/api.php:994 lib/Whups.php:563 lib/Ticket.php:870
+#: config/.bak/prefs.php.dist:43
+msgid "Created"
+msgstr "Añadida"
+
+#: lib/Ticket.php:574 lib/Ticket.php:597
+msgid "Created By"
+msgstr "Creada por"
+
+#: query.php:203 query.php:219
+msgid "Current Query"
+msgstr "Consulta actual"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Tipo de incidencia actual"
+
+#: lib/Ticket.php:655
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "NO CONTESTE A ESTE MENSAJE. ESTA DIRECCIÓN NO SE CONSULTA."
+
+#: config/.bak/prefs.php.dist:99
+msgid "Date/Time format for search results"
+msgstr "Formato de Fecha/Hora de los resultados de la búsqueda"
+
+#: lib/Forms/Admin.php:91
+msgid "Default Ticket Type"
+msgstr "Tipo de incidencia por omisión"
+
+#: config/.bak/prefs.php.dist:46
+msgid "Default sorting criteria:"
+msgstr "Criterio de clasificación por omisión:"
+
+#: config/.bak/prefs.php.dist:57
+msgid "Default sorting direction:"
+msgstr "Sentido de clasificación por omisión:"
+
+#: query.php:147
+msgid "Delete"
+msgstr "Eliminar"
+
+#: lib/Whups.php:745 lib/Whups.php:746
+#, php-format
+msgid "Delete %s"
+msgstr "Eliminar %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "¿Eliminar %s?"
+
+#: admin/index.php:909 lib/Forms/Admin.php:694
+msgid "Delete Attribute"
+msgstr "Eliminar atributo"
+
+#: lib/Forms/Admin.php:744
+msgid "Delete Attribute Confirmation"
+msgstr "Confirmación de eliminación de atributo"
+
+#: admin/index.php:570 lib/Forms/Admin.php:495
+msgid "Delete Priority"
+msgstr "Eliminar prioridad"
+
+#: lib/Forms/Admin.php:566
+msgid "Delete Priority Confirmation"
+msgstr "Confirmación de eliminación de prioridad"
+
+#: lib/Forms/Query.php:376
+msgid "Delete Query?"
+msgstr "¿Eliminar consulta?"
+
+#: admin/index.php:322 lib/Forms/Admin.php:41
+msgid "Delete Queue"
+msgstr "Eliminar cola"
+
+#: lib/Forms/Admin.php:129
+msgid "Delete Queue Confirmation"
+msgstr "Confirmación de eliminación de cola"
+
+#: admin/index.php:440 lib/Forms/Admin.php:383
+msgid "Delete State"
+msgstr "Eliminar estado"
+
+#: lib/Forms/Admin.php:455
+msgid "Delete State Confirmation"
+msgstr "Confirmación de eliminación de estado"
+
+#: admin/index.php:143 lib/Forms/Admin.php:238
+msgid "Delete Type"
+msgstr "Eliminar tipo"
+
+#: lib/Forms/Admin.php:313
+msgid "Delete Type Confirmation"
+msgstr "Confirmación de eliminación de tipo"
+
+#: admin/index.php:789 lib/Forms/Admin.php:606
+msgid "Delete Version"
+msgstr "Eliminar versión"
+
+#: lib/Forms/Admin.php:652
+msgid "Delete Version Confirmation"
+msgstr "Confirmación de eliminación de versión"
+
+#: lib/Ticket.php:579 lib/Ticket.php:647
+msgid "Deleted Attachment"
+msgstr "Adjunto eliminado"
+
+#: lib/Renderer/Comment.php:67
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Adjunto eliminado: %s"
+
+#: config/.bak/prefs.php.dist:56
+msgid "Descending"
+msgstr "Descendente"
+
+#: lib/Forms/CreateTicket.php:129
+msgid "Description"
+msgstr "Descripción"
+
+#: config/.bak/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Opciones de Visualización"
+
+#: lib/Whups.php:737
+msgid "Download"
+msgstr "Descargar"
+
+#: lib/api.php:998 lib/Ticket.php:571 lib/Ticket.php:726 lib/Ticket.php:875
+msgid "Due"
+msgstr "Vencimiento"
+
+#: lib/Renderer/Comment.php:127
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Vencimiento ⇒ %s"
+
+#: lib/Forms/EditTicket.php:71 lib/Forms/CreateTicket.php:126
+msgid "Due Date"
+msgstr "Vencimiento"
+
+#: lib/Query.php:198
+msgid "E_xecute Query"
+msgstr "_Ejecutar"
+
+#: query.php:148
+msgid "Edit"
+msgstr "Modificar"
+
+#: lib/Forms/Admin.php:76 lib/Forms/Admin.php:263
+#, php-format
+msgid "Edit %s"
+msgstr "Modificar %s"
+
+#: admin/index.php:904 lib/Forms/Admin.php:694 lib/Forms/Admin.php:721
+msgid "Edit Attribute"
+msgstr "Modificar atributo"
+
+#: lib/Forms/Admin.php:301
+msgid "Edit Attributes"
+msgstr "Modificar atributos"
+
+#: lib/Forms/Admin.php:287
+msgid "Edit Priorities"
+msgstr "Modificar prioridades"
+
+#: admin/index.php:565 lib/Forms/Admin.php:495 lib/Forms/Admin.php:518
+msgid "Edit Priority"
+msgstr "Modificar prioridad"
+
+#: admin/index.php:316 lib/Forms/Admin.php:41 lib/Forms/Admin.php:44
+msgid "Edit Queue"
+msgstr "Modificar cola"
+
+#: lib/Forms/Admin.php:43
+msgid "Edit Queues"
+msgstr "Modificar colas"
+
+#: admin/index.php:435 lib/Forms/Admin.php:383 lib/Forms/Admin.php:404
+msgid "Edit State"
+msgstr "Modificar estado"
+
+#: lib/Forms/Admin.php:277
+msgid "Edit States"
+msgstr "Modificar estados"
+
+#: admin/index.php:137 lib/Forms/Admin.php:238
+msgid "Edit Type"
+msgstr "Modificar tipo"
+
+#: admin/index.php:784 lib/Forms/Admin.php:606 lib/Forms/Admin.php:629
+msgid "Edit Version"
+msgstr "Modificar versión"
+
+#: lib/Query.php:194
+msgid "Edit _Permissions"
+msgstr "Modificar _permisos"
+
+#: admin/index.php:35
+msgid "Edit _Types"
+msgstr "Modificar _tipos"
+
+#: lib/Forms/Admin.php:693
+msgid "Edit or Delete Attributes"
+msgstr "Modificar o eliminar atributos"
+
+#: lib/Forms/Admin.php:494
+msgid "Edit or Delete Priorities"
+msgstr "Modificar o eliminar prioridades"
+
+#: lib/Forms/Admin.php:40
+msgid "Edit or Delete Queues"
+msgstr "Modificar o eliminar colas"
+
+#: lib/Forms/Admin.php:382
+msgid "Edit or Delete States"
+msgstr "Modificar o eliminar estados"
+
+#: lib/Forms/Admin.php:237
+msgid "Edit or Delete Types"
+msgstr "Modificar o eliminar tipos"
+
+#: lib/Forms/Admin.php:605
+msgid "Edit or Delete Versions"
+msgstr "Modificar o eliminar versiones"
+
+#: lib/Forms/Admin.php:116
+msgid "Edit the permissions on this queue"
+msgstr "Modificar los permisos de esta cola"
+
+#: lib/Forms/Admin.php:111
+msgid "Edit the users responsible for this queue"
+msgstr "Modificar los usuarios encargados de esta cola"
+
+#: lib/Forms/Admin.php:98
+msgid "Edit the versions for this queue"
+msgstr "Modificar las versiones de esta cola"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "Dirección de notificación"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Dirección a eliminar"
+
+#: lib/api.php:666
+msgid "Empty attachment"
+msgstr "Vaciar adjunto"
+
+#: scripts/mail-filter.php:184 scripts/mail-filter.php:204
+msgid "Error processing message:"
+msgstr "Error al procesar el mensaje:"
+
+#: query.php:175
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+"Error: Formulario %s de consulta desconocido, se establecen propiedades por "
+"omisión"
+
+#: lib/Query.php:50
+msgid "Exact Match"
+msgstr "Coincidencia exacta"
+
+#: runquery.php:91
+msgid "Execute Query"
+msgstr "Ejecutar consulta"
+
+#: lib/Forms/Admin.php:782
+msgid "For tickets from these queues"
+msgstr "Para incidencias de estas colas"
+
+#: lib/Forms/Admin.php:786
+msgid "For tickets which are"
+msgstr "Para incidencias que están"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Ir"
+
+#: lib/Forms/EditTicket.php:112 lib/Forms/CreateTicket.php:202
+msgid "Group Owners"
+msgstr "Propietarios del grupo"
+
+#: lib/Forms/Query.php:97 lib/Forms/Query.php:99 lib/Renderer/Query.php:85
+msgid "Groups"
+msgstr "Grupos"
+
+#: lib/api.php:882
+msgid "Hidden Comments"
+msgstr "Comentarios ocultos"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Historia"
+
+#: query.php:149
+msgid "Hoist"
+msgstr "Alzar"
+
+#: lib/Whups.php:548 lib/Whups.php:555 lib/Forms/Query.php:170
+#: lib/Renderer/Query.php:83 config/.bak/prefs.php.dist:36
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:789
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Si se seleccionan incidencias sin propietario, ¿a quién hay que enviar el "
+"correo?"
+
+#: query.php:150
+msgid "Insert And"
+msgstr "Insertar Y"
+
+#: lib/Forms/Query.php:18
+msgid "Insert Branch"
+msgstr "Insertar rama"
+
+#: query.php:152
+msgid "Insert Not"
+msgstr "Insertar No"
+
+#: query.php:151
+msgid "Insert Or"
+msgstr "Insertar O"
+
+#: lib/Forms/Admin.php:72
+msgid "Invalid Queue"
+msgstr "Cola no válida"
+
+#: lib/api.php:657 lib/Whups.php:230
+msgid "Invalid Ticket Id"
+msgstr "Id de incidencia no válido"
+
+#: lib/api.php:705
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Argumento no válido: Valor o nombre de atributo desconocido."
+
+#: lib/api.php:690
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+"Argumento no válido: Hay que indicar un número de incidencia y nuevos "
+"atributos."
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Cola no válida"
+
+#: lib/api.php:568
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Se han añadido datos de incidencia no válidos: %s"
+
+#: lib/Forms/Admin.php:95
+msgid "Keep a set of versions for this queue?"
+msgstr "¿Conservar un juego de versiones de la cola?"
+
+# Contexto?
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Último>>"
+
+#: lib/Forms/Query.php:340
+msgid "Load Query"
+msgstr "Cargar consulta"
+
+#: config/.bak/prefs.php.dist:97
+msgid "MM/DD/YY"
+msgstr "DD/MM/YY"
+
+#: config/.bak/prefs.php.dist:98
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "DD/MM/YY HH:MM:SS"
+
+#: lib/Forms/Admin.php:348
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Realizar un duplicado de %s"
+
+#: lib/Forms/Query.php:270
+msgid "Match"
+msgstr "Coincidencia"
+
+#: lib/Forms/Query.php:43 lib/Forms/Query.php:129 lib/Forms/Query.php:271
+msgid "Match Operator"
+msgstr "Operador de coincidencia"
+
+#: lib/Query.php:54
+msgid "Match Pattern"
+msgstr "Patrón de coincidencia"
+
+#: lib/Query.php:53
+msgid "Match Word"
+msgstr "Palabra coincidente"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Tiempo máximo sin resolver una incidencia"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Listado del menú"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Tiempo mínimo sin resolver una incidencia"
+
+#: config/.bak/prefs.php.dist:128
+msgid "Most recent first"
+msgstr "Recientes primero"
+
+#: ticket/queue.php:174
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Se ha trasladado la incidencia %d a \"%s\""
+
+#: mybugs.php:51
+#, php-format
+msgid "My %s"
+msgstr "Mis %s"
+
+#: mybugs_edit.php:32
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Mi %s :: Añadir contenido"
+
+#: search.php:106 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Mis consultas"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Mis solicitudes"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/.bak/prefs.php.dist:66
+msgid "My Tickets"
+msgstr "Mis incidencias"
+
+#: lib/api.php:960
+msgid "My tickets by assignment date"
+msgstr "Mis incidencias por fecha de asignación"
+
+#: lib/api.php:959
+msgid "My tickets by creation date"
+msgstr "Mis incidencias por fecha de creación"
+
+#: lib/api.php:961
+msgid "My tickets by due date"
+msgstr "Mis incidencias por fecha de vencimiento"
+
+#: lib/api.php:962
+msgid "My tickets by resolution date"
+msgstr "Mis incidencias por fecha de resolución"
+
+#: lib/Forms/Query.php:319 lib/Forms/Query.php:351
+msgid "Name"
+msgstr "Nombre"
+
+#: lib/Forms/Admin.php:353
+msgid "Name of the cloned copy"
+msgstr "Nombre del duplicado"
+
+#: lib/Query.php:184
+msgid "Ne_w Query"
+msgstr "Aña_dir"
+
+#: lib/Driver.php:195
+msgid "New"
+msgstr "Nueva"
+
+#: lib/Ticket.php:578 lib/Ticket.php:642
+msgid "New Attachment"
+msgstr "Añadir adjunto"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:61
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Añadir adjunto: %s"
+
+#: ticket/queue.php:31
+msgid "New Queue"
+msgstr "Nueva cola"
+
+#: lib/Block/tree_menu.php:21 ticket/create.php:60
+msgid "New Ticket"
+msgstr "Añadir"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Nuevo tipo"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Siguiente>"
+
+#: lib/Forms/Query.php:378 lib/Forms/Admin.php:142 lib/Forms/Admin.php:334
+#: lib/Forms/Admin.php:469 lib/Forms/Admin.php:580 lib/Forms/Admin.php:666
+#: lib/Forms/Admin.php:758 ticket/delete.php:37
+msgid "No"
+msgstr "No"
+
+#: lib/Ticket.php:99
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+"No se ha indicado una prioridad para esta incidencia y las incidencias de "
+"tipo \"%s\" carecen de prioridad por omisión."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "No se ha guardado ninguna consulta."
+
+#: lib/Block/query.php:64 lib/Driver/sql.php:467
+msgid "No query to run"
+msgstr "No hay consultas a realizar"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "No se dispone de colas."
+
+#: lib/Ticket.php:91
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+"No se ha indicado un estado para esta incidencia y las incidencias de tipo "
+"\"%s\" carecen de estado por omisión."
+
+#: reports.php:19
+msgid "No stats available."
+msgstr "No se dispone de estadísticas."
+
+#: lib/Driver.php:463
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "No se encontró el motor \"%s\""
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr "No se encontró la vista \"%s\""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "No se le han asignado incidencias."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "¡No hay incidencias sin asignar!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "No hay incidencias en la cola."
+
+#: lib/Whups.php:597
+msgid "No tickets matched your search criteria."
+msgstr "No hay incidencias que coincidan con su búsqueda."
+
+#: lib/Ticket.php:83
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+"Esta incidencia no tiene tipo y no se ha indicado un tipo por omisión para "
+"la cola \"%s\"."
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Ninguna"
+
+#: lib/Forms/Query.php:23 lib/Renderer/Query.php:79
+msgid "Not"
+msgstr "No"
+
+#: query.php:80
+msgid "Not yet implemented."
+msgstr "Aún no se ha desarrollado."
+
+#: config/.bak/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Opciones de aviso"
+
+#: config/.bak/prefs.php.dist:108
+msgid "Only notify me of ticket changes from other users"
+msgstr ""
+"Comunicarme sólo los cambios de incidencias realizados por otros usuarios"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Abierta"
+
+#: lib/Block/queuesummary.php:48
+msgid "Open Tickets"
+msgstr "Incidencias abiertas"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Incidencias abiertas por propietario"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Incidencias abiertas por prioridad"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Incidencias abiertas por cola"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Incidencias abiertas por solicitante"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Incidencias abiertas por estado"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Incidencias abiertas por tipo"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Incidencias abiertas en %s"
+
+#: queue/index.php:43 queue/index.php:57 queue/rss.php:119
+#, php-format
+msgid "Open tickets in %s"
+msgstr "Incidencias abiertas en %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Incidencias abiertas en todas las colas."
+
+#: lib/Forms/Query.php:22 lib/Renderer/Query.php:78
+msgid "Or"
+msgstr "O"
+
+#: config/.bak/prefs.php.dist:9 config/.bak/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Otras opciones"
+
+#: lib/Whups.php:562 lib/Ticket.php:577 lib/Ticket.php:634 lib/Ticket.php:635
+#: lib/Ticket.php:637 lib/Ticket.php:731 lib/Ticket.php:748 lib/Ticket.php:857
+#: lib/Forms/EditTicket.php:102 lib/Forms/CreateTicket.php:196
+#: lib/Forms/CreateTicket.php:208 lib/Renderer/Query.php:84
+msgid "Owners"
+msgstr "Propietarios"
+
+#: lib/Whups.php:745
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "¿Eliminar definitivamente %s?"
+
+#: ticket/delete.php:17 ticket/queue.php:124 ticket/update.php:23
+#: ticket/deleteAttachment.php:17 ticket/type.php:17
+msgid "Permission Denied"
+msgstr "Permiso denegado"
+
+#: lib/Forms/EditTicket.php:172 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr "Permiso denegado."
+
+#: runquery.php:37 query.php:32 lib/Forms/Query.php:388
+#, php-format
+msgid "Permission denied."
+msgstr "Permiso denegado."
+
+#: lib/Forms/Admin.php:285 lib/Forms/Admin.php:331
+msgid "Priorities for this Type"
+msgstr "Prioridades de este tipo"
+
+#: lib/Whups.php:550 lib/Whups.php:559 lib/Ticket.php:570 lib/Ticket.php:725
+#: lib/Ticket.php:853 lib/Forms/Query.php:197 lib/Forms/EditTicket.php:65
+#: lib/Forms/CreateTicket.php:124 lib/Renderer/Query.php:125
+#: ticket/queue.php:110 ticket/type.php:69 config/.bak/prefs.php.dist:40
+msgid "Priority"
+msgstr "Prioridad"
+
+#: lib/Renderer/Comment.php:114
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Prioridad ⇒ %s"
+
+#: lib/Forms/Admin.php:483 lib/Forms/Admin.php:529 lib/Forms/Admin.php:577
+msgid "Priority Description"
+msgstr "Descripción de la prioridad"
+
+#: lib/Forms/Admin.php:482 lib/Forms/Admin.php:507 lib/Forms/Admin.php:526
+#: lib/Forms/Admin.php:553 lib/Forms/Admin.php:574
+msgid "Priority Name"
+msgstr "Nombre de la prioridad"
+
+#: query.php:156
+msgid "Query Builder"
+msgstr "Consultas"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Parámetros de la consulta"
+
+#: runquery.php:72 lib/Block/query.php:3 lib/Block/query.php:51
+msgid "Query Results"
+msgstr "Resultados de la consulta"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Consulta a realizar"
+
+#: lib/Whups.php:560 lib/Ticket.php:566 lib/Ticket.php:721 lib/Ticket.php:820
+#: lib/Ticket.php:825 lib/Forms/Query.php:180 lib/Forms/Search.php:36
+#: lib/Renderer/Query.php:94 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:48 config/.bak/prefs.php.dist:41
+msgid "Queue"
+msgstr "Cola"
+
+#: lib/Renderer/Comment.php:99
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Cola ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Contenido de la cola"
+
+#: lib/Forms/Admin.php:24 lib/Forms/Admin.php:82 lib/Forms/Admin.php:139
+msgid "Queue Description"
+msgstr "Descripción de la cola"
+
+#: lib/Forms/Admin.php:23 lib/Forms/Admin.php:56 lib/Forms/Admin.php:79
+#: lib/Forms/Admin.php:136 lib/Forms/CreateTicket.php:27
+#: lib/Forms/CreateTicket.php:37
+msgid "Queue Name"
+msgstr "Nombre de la cola"
+
+#: lib/Forms/Admin.php:25 lib/Forms/Admin.php:85
+msgid "Queue Slug"
+msgstr "ID de seguimiento"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Resumen"
+
+#: lib/Ticket.php:832 lib/Ticket.php:838 lib/Forms/CreateTicket.php:82
+#: ticket/queue.php:79
+msgid "Queue Version"
+msgstr "Versión de la cola"
+
+#: admin/index.php:36
+msgid "Queue/Type Matri_x"
+msgstr "Matri_z de Colas/Tipos"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Matriz de Colas/Tipos"
+
+#: lib/api.php:179 lib/api.php:885
+msgid "Queues"
+msgstr "Colas"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "Volver a resul_tados de la búsqueda"
+
+#: lib/Forms/Admin.php:759
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"¿Eliminar realmente este atributo? ¡Puede ocasionar problemas de datos!"
+
+#: lib/Forms/Admin.php:581
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"¿Eliminar realmente esta prioridad? ¡Puede ocasionar problemas de datos!"
+
+#: lib/Forms/Query.php:379
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"¿Eliminar realmente esta consulta? Esta operación no se puede deshacer."
+
+#: lib/Forms/Admin.php:143
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "¿Eliminar realmente esta cola? ¡Puede ocasionar problemas de datos!"
+
+#: lib/Forms/Admin.php:470
+msgid "Really delete this state? This may cause data problems!"
+msgstr "¿Eliminar realmente este estado? ¡Puede ocasionar problemas de datos!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"¿Eliminar realmente esta incidencia? NO se archivará y se perderá "
+"definitivamente."
+
+#: lib/Forms/Admin.php:335
+msgid "Really delete this type? This may cause data problems!"
+msgstr "¿Eliminar realmente este tipo? ¡Puede ocasionar problemas de datos!"
+
+#: lib/Forms/Admin.php:667
+msgid "Really delete this version? This may cause data problems!"
+msgstr "¿Eliminar realmente esta versión? ¡Puede ocasionar problemas de datos!"
+
+#: lib/Mail.php:175
+msgid "Received message:"
+msgstr "Mensaje recibido:"
+
+#: search.php:87
+msgid "Refine Search"
+msgstr "Concretar búsqueda"
+
+#: admin/index.php:991
+msgid "Reminders were sent."
+msgstr "Se enviaron recordatorios."
+
+#: lib/Forms/Admin.php:192
+msgid "Remove User"
+msgstr "Eliminar usuario"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Eliminar Observador"
+
+#: lib/Renderer/Comment.php:94
+msgid "Reply to this comment"
+msgstr "Contestar a este comentario"
+
+#: reports.php:24
+msgid "Reports"
+msgstr "Informes"
+
+#: lib/Whups.php:561 lib/Ticket.php:864 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Solicitante"
+
+#: lib/Driver.php:197 lib/api.php:1003 lib/Whups.php:566 lib/Ticket.php:890
+#: config/.bak/prefs.php.dist:45
+msgid "Resolved"
+msgstr "Resuelta"
+
+#: lib/Forms/Admin.php:194
+msgid "Responsible Users"
+msgstr "Usuarios encargados"
+
+#: lib/Forms/EditTicket.php:142
+msgid "Restrict Comment to:"
+msgstr "Restringir comentarios a:"
+
+#: lib/Whups.php:268
+msgid "S_et Queue"
+msgstr "_Establecer cola"
+
+#: lib/Query.php:202
+msgid "Sa_ve Query"
+msgstr "_Guardar"
+
+#: templates/view/results.inc:36 lib/Forms/Query.php:317
+msgid "Save"
+msgstr "Guardar"
+
+#: lib/Forms/Query.php:316
+msgid "Save Query"
+msgstr "Guardar consulta"
+
+#: templates/view/results.inc:30
+msgid "Save these results as: "
+msgstr "Guardar estos resultados como: "
+
+#: search.php:55 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Buscar"
+
+#: lib/Forms/Query.php:274
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Buscar atributo %s"
+
+#: lib/Forms/Query.php:277
+msgid "Search Attribute"
+msgstr "Buscar atributo"
+
+#: lib/Forms/Query.php:46 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Buscar comentarios"
+
+#: lib/Forms/Query.php:44
+msgid "Search Owners"
+msgstr "Buscar propietarios"
+
+#: lib/Forms/Query.php:45
+msgid "Search Requester"
+msgstr "Buscar solicitante"
+
+#: search.php:79
+msgid "Search Results"
+msgstr "Resultados de la búsqueda"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Resultados de la búsqueda: %s de %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Resumen de la búsqueda"
+
+#: config/.bak/prefs.php.dist:67
+msgid "Search Tickets"
+msgstr "Buscar incidencias"
+
+#: config/.bak/prefs.php.dist:69
+msgid "Select the view to display after login:"
+msgstr "Seleccione la vista mostrada al entrar:"
+
+#: admin/index.php:37
+msgid "Sen_d Reminders"
+msgstr "_Enviar recordatorios"
+
+#: lib/Forms/Admin.php:770
+msgid "Send Reminders"
+msgstr "Enviar recordatorios"
+
+#: lib/Forms/Admin.php:781
+msgid "Send only for this list of ticket ids"
+msgstr "Enviar sólo a este conjunto de ids de incidencias"
+
+#: lib/Forms/Admin.php:539 lib/Forms/Admin.php:541
+msgid "Set Default Priority"
+msgstr "Establecer prioridad por omisión"
+
+#: lib/Forms/Admin.php:428 lib/Forms/Admin.php:430
+msgid "Set Default State"
+msgstr "Establecer estado por omisión"
+
+#: ticket/queue.php:194 ticket/queue.php:203 ticket/queue.php:215
+msgid "Set Queue - Step 1"
+msgstr "Establecer cola - Paso 1"
+
+#: ticket/queue.php:195 ticket/queue.php:204
+msgid "Set Queue - Step 2"
+msgstr "Establecer cola - Paso 2"
+
+#: ticket/queue.php:205
+msgid "Set Queue - Step 3"
+msgstr "Establecer cola - Paso 3"
+
+#: ticket/queue.php:182
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Establecer cola para %s"
+
+#: ticket/type.php:136 ticket/type.php:145
+msgid "Set Type - Step 1"
+msgstr "Establecer tipo - Paso 1"
+
+#: ticket/type.php:137
+msgid "Set Type - Step 2"
+msgstr "Establecer tipo - Paso 2"
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr "Establecer tipo para %s"
+
+#: lib/Whups.php:272
+msgid "Set _Type"
+msgstr "Establecer _tipo"
+
+#: config/.bak/prefs.php.dist:126
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+"¿Mostrar los comentarios en orden cronológico o primero los más recientes?"
+
+#: config/.bak/prefs.php.dist:86
+msgid "Show ticket IDs in the summary view?"
+msgstr "¿Mostrar los IDs de incidencias en la vista de resumen?"
+
+#: config/.bak/prefs.php.dist:78
+msgid "Show tickets you have requested in the summary view?"
+msgstr "¿Mostrar las incidencias solicitadas en la vista de resumen?"
+
+#: config/.bak/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Informe HTML simple"
+
+#: lib/Forms/Admin.php:26
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"El ID de seguimiento (slugname) permite acceder directamente a las "
+"indicencias abiertas de esta cola visitando: %s. <br /> Los IDs de "
+"seguimiento sólo pueden contener letras, números o el carácter _ (subrayado)."
+
+#: templates/view/results.inc:51 templates/view/results.inc:55
+#, php-format
+msgid "Sort by %s"
+msgstr "Ordenar por %s"
+
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+#: lib/Forms/CreateTicket.php:118 lib/Forms/CreateTicket.php:149
+msgid "Spam protection"
+msgstr "Protección anti spam"
+
+#: lib/Whups.php:551 lib/Whups.php:557 lib/Ticket.php:569 lib/Ticket.php:724
+#: lib/Ticket.php:849 lib/Forms/Query.php:192 lib/Forms/EditTicket.php:59
+#: lib/Renderer/Query.php:117 ticket/queue.php:109 ticket/type.php:68
+#: config/.bak/prefs.php.dist:38
+msgid "State"
+msgstr "Estado"
+
+#: lib/Renderer/Comment.php:109
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Estado ⇒ %s"
+
+#: lib/Forms/Admin.php:373 lib/Forms/Admin.php:418
+msgid "State Category"
+msgstr "Categoría del estado"
+
+#: lib/Forms/Admin.php:372 lib/Forms/Admin.php:415 lib/Forms/Admin.php:466
+msgid "State Description"
+msgstr "Descripción del estado"
+
+#: lib/Forms/Admin.php:371 lib/Forms/Admin.php:395 lib/Forms/Admin.php:412
+#: lib/Forms/Admin.php:444 lib/Forms/Admin.php:463
+msgid "State Name"
+msgstr "Nombre del estado"
+
+#: lib/Forms/Admin.php:275 lib/Forms/Admin.php:327
+msgid "States for this Type"
+msgstr "Estados de este tipo"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Estado"
+
+#: ticket/create.php:137
+msgid "Submit"
+msgstr "Enviar"
+
+#: admin/index.php:195
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Se ha duplicado correctamente %s como %s."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr "Se ha cambiado correctamente el tipo de incidencia."
+
+#: lib/Whups.php:549 lib/Whups.php:556 lib/Ticket.php:576 lib/Ticket.php:599
+#: lib/Ticket.php:600 lib/Ticket.php:602 lib/Ticket.php:731 lib/Ticket.php:739
+#: lib/Ticket.php:815 lib/Forms/EditTicket.php:55
+#: lib/Forms/CreateTicket.php:127 lib/Renderer/Query.php:89
+#: ticket/delete.php:34 config/.bak/prefs.php.dist:37
+msgid "Summary"
+msgstr "Resumen"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Resumen ⇒ %s"
+
+#: lib/Forms/Search.php:39
+msgid "Summary like"
+msgstr "Resumen contiene"
+
+#: lib/Renderer/Comment.php:78
+#, php-format
+msgid "Taken from %s"
+msgstr "Obtenido de %s"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Texto"
+
+#: lib/Driver/sql.php:77 lib/Driver/sql.php:1142
+msgid "That queue slug is already taken. Please select another."
+msgstr "Este ID de seguimiento ya está en uso. Seleccione otro."
+
+#: view.php:55 lib/Ticket.php:409 lib/Ticket.php:454
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "Hay que configurar el motor VFS para permitir la carga de adjuntos."
+
+#: admin/index.php:869
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Se ha añadido el atributo \"%s\" a %s."
+
+#: admin/index.php:958
+msgid "The attribute has been deleted."
+msgstr "Se ha eliminado el atributo."
+
+#: admin/index.php:927
+msgid "The attribute has been modified."
+msgstr "Se ha modificado el atributo."
+
+#: admin/index.php:967
+msgid "The attribute was not deleted."
+msgstr "No se ha eliminado el atributo."
+
+#: admin/index.php:621
+msgid "The default priority has been set."
+msgstr "Se ha establecido la prioridad por omisión."
+
+#: admin/index.php:490
+msgid "The default state has been set."
+msgstr "Se ha establecido el estado por omisión."
+
+#: admin/index.php:538
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Se ha añadido la prioridad \"%s\" a %s."
+
+#: admin/index.php:639
+msgid "The priority has been deleted."
+msgstr "Se ha eliminado la prioridad."
+
+#: admin/index.php:589
+msgid "The priority has been modified."
+msgstr "Se ha modificado la prioridad."
+
+#: admin/index.php:648
+msgid "The priority was not deleted."
+msgstr "No se eliminó la prioridad."
+
+#: lib/Forms/Query.php:392
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "No se pudo eliminar la cola \"%s\": %s"
+
+#: lib/Forms/Query.php:394
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Se ha eliminado la cola \"%s\"."
+
+#: lib/Forms/Query.php:359
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "No se pudo cargar la consulta:"
+
+#: admin/index.php:291
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Se ha creado la cola \"%s\"."
+
+#: admin/index.php:380
+msgid "The queue has been deleted."
+msgstr "Se ha eliminado la cola."
+
+#: admin/index.php:348
+msgid "The queue has been modified."
+msgstr "Se ha modificado la cola."
+
+#: admin/index.php:388
+msgid "The queue was not deleted."
+msgstr "No se eliminó la cola."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "El archivo solicitado no existe en el adjunto Zip."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "La plantilla solicitada no existe."
+
+#: admin/index.php:409
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Se ha añadido el estado \"%s\" a %s."
+
+#: admin/index.php:508
+msgid "The state has been deleted."
+msgstr "Se ha eliminado el estado."
+
+#: admin/index.php:460
+msgid "The state has been modified."
+msgstr "Se ha modificado el estado."
+
+#: admin/index.php:516
+msgid "The state was not deleted."
+msgstr "No se eliminó el estado."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "No se eliminó la incidencia."
+
+#: admin/index.php:219
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Se ha modificado el tipo \"%s\"."
+
+#: admin/index.php:265
+msgid "The type has been deleted."
+msgstr "Se ha eliminado el tipo."
+
+#: admin/index.php:273
+msgid "The type was not deleted."
+msgstr "No se eliminó el tipo."
+
+#: admin/index.php:750
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Se ha añadido la versión \"%s\" a %s."
+
+#: admin/index.php:836
+msgid "The version has been deleted."
+msgstr "Se ha eliminado la versión."
+
+#: admin/index.php:807
+msgid "The version has been modified."
+msgstr "Se ha modificado la versión."
+
+#: admin/index.php:844
+msgid "The version was not deleted."
+msgstr "No se eliminó la versión."
+
+#: lib/Forms/Admin.php:706
+msgid "There are no attribute types to edit"
+msgstr "No hay tipos de atributo a modificar."
+
+#: lib/Forms/Query.php:277
+msgid "There are no attributes defined."
+msgstr "No se han definido atributos."
+
+#: lib/Block/queuesummary.php:43
+msgid "There are no open tickets."
+msgstr "No hay incidencias abiertas."
+
+#: lib/Forms/Admin.php:503 lib/Forms/Admin.php:549
+msgid "There are no priorities to edit"
+msgstr "No hay prioridades a modificar"
+
+#: lib/Forms/Admin.php:778
+msgid "There are no queues available."
+msgstr "No hay colas disponibles."
+
+#: lib/Forms/Admin.php:53
+msgid "There are no queues to edit"
+msgstr "No hay colas a modificar"
+
+#: lib/Forms/CreateTicket.php:27
+msgid "There are no queues which you can create tickets in."
+msgstr "No hay colas a las que pueda añadir incidencias."
+
+#: lib/Forms/Search.php:34
+msgid "There are no queues which you can search."
+msgstr "No hay colas en las que pueda buscar."
+
+#: lib/Forms/Admin.php:391 lib/Forms/Admin.php:440
+msgid "There are no states to edit"
+msgstr "No hay estados a modificar"
+
+#: lib/Forms/CreateTicket.php:62
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"No hay tipos de incidencias asociados a esta cola; mientras no los haya no "
+"podrá añadir incidencias a la misma."
+
+#: lib/Forms/Admin.php:246
+msgid "There are no types to edit"
+msgstr "No hay tipos a modificar"
+
+#: lib/Forms/Admin.php:208
+msgid "There are no users responsible for this queue."
+msgstr "No hay usuarios encargados de esta cola."
+
+#: lib/Forms/CreateTicket.php:207
+msgid "There are no users to which this ticket can be assigned."
+msgstr "No hay usuarios a los que asignar esta incidencia."
+
+#: lib/Forms/Admin.php:614
+msgid "There are no versions to edit"
+msgstr "No hay versiones a modificar"
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "No hay datos para este informe."
+
+#: admin/index.php:682
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+"Se produjo un error al añadir a \"%s\" a la lista de encargados de \"%s\":"
+
+#: admin/index.php:874
+msgid "There was an error creating the attribute:"
+msgstr "Se produjo un error al crear el atributo:"
+
+#: admin/index.php:543
+msgid "There was an error creating the priority:"
+msgstr "Se produjo un error al crear la prioridad:"
+
+#: admin/index.php:300
+msgid "There was an error creating the queue:"
+msgstr "Se produjo un error al crear la cola:"
+
+#: admin/index.php:413
+msgid "There was an error creating the state:"
+msgstr "Se produjo un error al crear el estado:"
+
+#: admin/index.php:754
+msgid "There was an error creating the version:"
+msgstr "Se produjo un error al crear la versión:"
+
+#: admin/index.php:962
+msgid "There was an error deleting the attribute:"
+msgstr "Se produjo un error al eliminar el atributo:"
+
+#: admin/index.php:643
+msgid "There was an error deleting the priority:"
+msgstr "Se produjo un error al eliminar la prioridad:"
+
+#: admin/index.php:383
+msgid "There was an error deleting the queue:"
+msgstr "Se produjo un error al eliminar la cola:"
+
+#: admin/index.php:511
+msgid "There was an error deleting the state:"
+msgstr "Se produjo un error al eliminar el estado:"
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Se produjo un error al eliminar la incidencia: %s"
+
+#: admin/index.php:268
+msgid "There was an error deleting the type:"
+msgstr "Se produjo un error al eliminar el tipo:"
+
+#: admin/index.php:839
+msgid "There was an error deleting the version:"
+msgstr "Se produjo un error al eliminar la versión:"
+
+#: admin/index.php:935
+msgid "There was an error editing the attribute:"
+msgstr "Se produjo un error al modificar el atributo:"
+
+#: admin/index.php:595
+msgid "There was an error editing the priority:"
+msgstr "Se produjo un error al modificar la prioridad:"
+
+#: admin/index.php:364
+msgid "There was an error editing the queue:"
+msgstr "Se produjo un error al modificar la cola:"
+
+#: admin/index.php:465
+msgid "There was an error editing the state:"
+msgstr "Se produjo un error al modificar el estado:"
+
+#: admin/index.php:813
+msgid "There was an error editing the version:"
+msgstr "Se produjo un error al modificar la versión:"
+
+#: lib/Forms/Admin.php:168
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Se produjo un error al listar los usuarios: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr "Se produjo un error al localizar las incidencias de esta cola:"
+
+#: admin/index.php:215
+msgid "There was an error modifying the type:"
+msgstr "Se produjo un error al modificar el tipo:"
+
+#: search.php:72
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Se produjo un error al realizar la búsqueda: %s"
+
+#: admin/index.php:725
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+"Se produjo un error al eliminar a \"%s\" de la lista de encargados de \"%s\":"
+
+#: admin/index.php:617
+msgid "There was an error setting the default priority:"
+msgstr "Se produjo un error al establecer la prioridad por omisión:"
+
+#: admin/index.php:486
+msgid "There was an error setting the default state:"
+msgstr "Se produjo un error al establecer el estado por omisión:"
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Ésta no es una plantilla de resultados de búsqueda."
+
+#: lib/Forms/CreateTicket.php:77 ticket/queue.php:74
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Esta cola precisa que indique una versión, pero no se le han asociado "
+"versiones. Hasta que no se creen versiones para esta cola, no podrá generar "
+"incidencias."
+
+#: lib/Ticket.php:596 lib/Ticket.php:738
+msgid "Ticket"
+msgstr "Incidencia"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Se ha eliminado la incidencia %d."
+
+#: lib/api.php:931
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Incidencia %s - %s"
+
+#: lib/Driver/sql.php:954
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "No se encontró la incidencia %s."
+
+#: search.php:98
+msgid "Ticket Search"
+msgstr "Búsqueda de incidencias"
+
+#: lib/Forms/CreateTicket.php:122
+msgid "Ticket State"
+msgstr "Estado de la incidencia"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Estadísticas de incidencias"
+
+#: lib/Forms/CreateTicket.php:70
+msgid "Ticket Type"
+msgstr "Tipo de incidencia"
+
+#: lib/Forms/Admin.php:89
+msgid "Ticket Types associated with this Queue"
+msgstr "Tipos de incidencias asociadas a esta cola"
+
+#: lib/Ticket.php:592
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "URL de la incidencia: %s"
+
+#: ticket/update.php:96
+msgid "Ticket Updated"
+msgstr "Incidencia actualizada"
+
+#: lib/api.php:952
+msgid "Tickets"
+msgstr "Incidencias"
+
+#: lib/Whups.php:558 lib/Ticket.php:568 lib/Ticket.php:723 lib/Ticket.php:845
+#: lib/Forms/Query.php:173 lib/Renderer/Query.php:108 ticket/queue.php:82
+#: config/.bak/prefs.php.dist:39
+msgid "Type"
+msgstr "Tipo"
+
+#: lib/Renderer/Comment.php:104
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tipo ⇒ %s"
+
+#: lib/Forms/Admin.php:226 lib/Forms/Admin.php:270 lib/Forms/Admin.php:323
+msgid "Type Description"
+msgstr "Descripción del tipo"
+
+#: lib/Forms/Admin.php:225 lib/Forms/Admin.php:249 lib/Forms/Admin.php:267
+#: lib/Forms/Admin.php:320
+msgid "Type Name"
+msgstr "Nombre del tipo"
+
+#: lib/Ticket.php:860
+msgid "Unassigned"
+msgstr "Sin asignar"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Incidencias sin asignar"
+
+#: lib/Forms/Admin.php:789
+msgid "Unassigned tickets"
+msgstr "Incidencias sin asignar"
+
+#: lib/Driver.php:194
+msgid "Unconfirmed"
+msgstr "Sin confirmar"
+
+#: lib/Renderer/Query.php:141 lib/Renderer/Query.php:181
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Nodo tipo %s desconocido"
+
+#: lib/api.php:899
+msgid "Update"
+msgstr "Actualizar"
+
+#: ticket/update.php:110
+#, php-format
+msgid "Update %s"
+msgstr "Actualizar %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Actualizar asociaciones"
+
+#: lib/Whups.php:564 lib/Ticket.php:880
+msgid "Updated"
+msgstr "Actualizada"
+
+#: lib/Ticket.php:575 lib/Ticket.php:597
+msgid "Updated By"
+msgstr "Actualizado por"
+
+#: lib/Forms/Admin.php:167 lib/Forms/Admin.php:177 lib/Forms/Admin.php:180
+msgid "User"
+msgstr "Usuario"
+
+#: lib/Forms/Query.php:42
+msgid "User ID"
+msgstr "ID de usuario"
+
+#: lib/Forms/Admin.php:109
+msgid "Users responsible for this Queue"
+msgstr "Usuarios encargados de esta cola"
+
+#: lib/Forms/Admin.php:212
+msgid "Users responsible for this queue"
+msgstr "Usuarios encargados de esta cola"
+
+#: lib/Ticket.php:567 lib/Ticket.php:722 lib/Forms/Query.php:184
+#: lib/Renderer/Query.php:102 config/.bak/prefs.php.dist:42
+msgid "Version"
+msgstr "Versión"
+
+#: lib/Forms/Admin.php:594 lib/Forms/Admin.php:640 lib/Forms/Admin.php:663
+msgid "Version Description"
+msgstr "Descripción de la versión"
+
+#: lib/Forms/Admin.php:593 lib/Forms/Admin.php:618 lib/Forms/Admin.php:637
+#: lib/Forms/Admin.php:660
+msgid "Version Name"
+msgstr "Nombre de la versión"
+
+#: lib/Forms/AddComment.php:38 ticket/queue.php:45 ticket/type.php:46
+msgid "Viewable only by members of"
+msgstr "Visible sólo por los miembros de"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Observar esta incidencia"
+
+#: ticket/watch.php:77
+#, php-format
+msgid "Watchers for %s"
+msgstr "Observadores de %s"
+
+#: config/.bak/prefs.php.dist:95
+msgid "Weekday Day Month"
+msgstr "Día de la semana Día Mes"
+
+#: config/.bak/prefs.php.dist:96
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Día de la semana Día Mes HH:MM:SS TZ"
+
+#: lib/Forms/Query.php:378 lib/Forms/Admin.php:142 lib/Forms/Admin.php:334
+#: lib/Forms/Admin.php:469 lib/Forms/Admin.php:580 lib/Forms/Admin.php:666
+#: lib/Forms/Admin.php:758 ticket/delete.php:37
+msgid "Yes"
+msgstr "Sí"
+
+#: view.php:51
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "No se le permite ver la incidencia %d."
+
+#: lib/Driver/sql.php:963
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "No dispone de permisos para acceder a esta incidencia (%s)."
+
+#: lib/api.php:546
+msgid "You do not have permission to update this ticket."
+msgstr "No dispone de permisos para actualizar esta incidencia."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "No ha abierto solicitudes."
+
+#: lib/Forms/Query.php:348 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "No tiene consultas guardadas."
+
+#: lib/Whups.php:591
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+"Tiene que seleccionar al menos una cola de la que enviar recordatorios."
+
+#: lib/Forms/AddComment.php:18 lib/Forms/CreateTicket.php:116
+msgid "Your Email Address"
+msgstr "Su dirección de correo"
+
+#: ticket/create.php:53
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"El ID de su incidencia es %s. Se ha notificado su solicitud a la persona "
+"adecuada."
+
+#: lib/Mail.php:198
+msgid "[ Could not render body of message. ]"
+msgstr "[ No se pudo generar el cuerpo del mensaje. ]"
+
+#: lib/Whups.php:654
+msgid "_Admin"
+msgstr "_Administrar"
+
+#: lib/Whups.php:263
+msgid "_Comment"
+msgstr "_Comentario"
+
+#: lib/Whups.php:273
+msgid "_Delete"
+msgstr "_Eliminar"
+
+#: lib/Query.php:205
+msgid "_Delete Query"
+msgstr "_Eliminar consulta"
+
+#: lib/Query.php:186
+msgid "_Edit Query"
+msgstr "Modi_ficar"
+
+#: admin/index.php:34
+msgid "_Edit Queues"
+msgstr "Modificar co_las"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "_Ir"
+
+#: query.php:140
+msgid "_Group Criteria"
+msgstr "Criterios de gru_pos"
+
+#: lib/Whups.php:259
+msgid "_History"
+msgstr "_Historial"
+
+#: lib/Query.php:199
+msgid "_Load Query"
+msgstr "Ca_rgar"
+
+#: lib/Whups.php:645
+#, php-format
+msgid "_My %s"
+msgstr "_Mis %s"
+
+#: lib/Whups.php:648
+msgid "_New Ticket"
+msgstr "_Añadir"
+
+#: query.php:138
+msgid "_Property Criteria"
+msgstr "Criterios de prop_iedades"
+
+#: lib/Whups.php:649
+msgid "_Query Builder"
+msgstr "_Consultas"
+
+#: lib/Whups.php:650
+msgid "_Reports"
+msgstr "_Informes"
+
+#: lib/Whups.php:647
+msgid "_Search"
+msgstr "_Buscar"
+
+#: query.php:142
+msgid "_Text Criteria"
+msgstr "Criterios de te_xto"
+
+#: lib/Whups.php:261
+msgid "_Update"
+msgstr "Act_ualizar"
+
+#: query.php:139
+msgid "_User Criteria"
+msgstr "Criterios de _usuarios"
+
+#: lib/Whups.php:265
+msgid "_Watch"
+msgstr "_Observar"
+
+#: lib/Renderer/Query.php:161
+msgid "contains (case insensitive) substring"
+msgstr "contenga la subcadena (sin diferenciar may. de min.)"
+
+#: lib/Renderer/Query.php:165
+msgid "contains (case sensitive) substring"
+msgstr "contenga la subcadena (diferenciando may. de min.)"
+
+#: lib/Renderer/Query.php:169
+msgid "contains the word"
+msgstr "contenga la palabra"
+
+#: lib/Mail.php:88 lib/Mail.php:107 lib/Mail.php:133
+msgid "current user:"
+msgstr "usuario actual:"
+
+#: lib/api.php:940
+msgid "estimated time"
+msgstr "tiempo estimado"
+
+#: lib/Renderer/Query.php:157
+msgid "is"
+msgstr "es"
+
+#: lib/Renderer/Query.php:149
+msgid "is greater than"
+msgstr "es mayor que"
+
+#: lib/Renderer/Query.php:153
+msgid "is less than"
+msgstr "es menor que"
+
+#: lib/Renderer/Query.php:173
+msgid "matches the pattern"
+msgstr "cumple el patrón"
--- /dev/null
+# Finnish translation for Whups.
+# Copyright
+# Leena Heino <liinu@uta.fi>, 2004-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-09-24 17:02+0300\n"
+"PO-Revision-Date: 2008-09-12 12:59+0200\n"
+"Last-Translator: Leena Heino <liinu@uta.fi>\n"
+"Language-Team: Finnish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" ei ole enää tästä asiasta vastuullisten joukossa \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d henkilö tarkkailemassa, %d henkilöä vastuullisena"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s tikettiä jonossa %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s tikettiä kaikissa jonoissa"
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:497
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) kirjoitti:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s lisäsi vastuulliset \"%s\""
+
+#: templates/reports/stats.inc:15
+#, php-format
+msgid "%s days"
+msgstr "%s päivää"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s tikettiä jonossa %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s tikettiä kaikissa jonoissa"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s:lle ilmoitetaan kun tätä tikettiä on päivitetty."
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s ei enää saa tietoja koskien tätä tikettiä."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- Vaihe 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- Vaihe 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+"--queue-name tai --queue-id määritellä jonon, joka on kelvollinen ja "
+"julkinen."
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<Ensimmäinen"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Edellinen"
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "Käyttö estetty %s"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Lisää atribuutti"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr "Lisää atribuutin kriteeri"
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Lisää sisältö"
+
+#: query/index.php:233
+msgid "Add Criterion"
+msgstr "Lisää kriteeri"
+
+#: lib/Forms/Query.php:320
+msgid "Add Date Criterion"
+msgstr "Lisää päivämäärän kriteeri"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr "Lisää lomakevastaus"
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr "Lisää ryhmäkriteeri"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Lisää prioriteetti"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Lisää ominaisuuden kriteeri"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Lisää jono"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Lisää tila"
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr "Lisää tekstikriteeri"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Lisää tyyppi"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Lisää tyyppi %s"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr "Lisää käyttäjäkriteeri"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Lisää käyttäjiä"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Lisää versio"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "Lisää tarkkailija"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Lisää lähde"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Tiketin lisääminen epäonnistui: %s."
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Osoitekirjat"
+
+#: lib/api.php:775 admin/index.php:54
+msgid "Administration"
+msgstr "Ylläpito"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:24
+msgid "And"
+msgstr "Ja"
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:32
+msgid "Any"
+msgstr "Mikä tahansa"
+
+#: ticket/queue.php:48 ticket/type.php:42
+msgid "Any Group"
+msgstr "Mikä tahansa ryhmä"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Nouseva"
+
+#: lib/api.php:795
+msgid "Assign"
+msgstr "Määrää"
+
+#: lib/Driver.php:198 lib/Ticket.php:986 lib/Whups.php:684 lib/api.php:913
+#: lib/Renderer/Query.php:156 config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Määrätty"
+
+#: lib/Forms/Query.php:333 lib/Forms/Search.php:62
+msgid "Assigned from"
+msgstr "Määrätty alkaen"
+
+#: lib/Forms/Query.php:334
+msgid "Assigned to"
+msgstr "Määratty viimeistään"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "Määratty %s:lle"
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr "Assosiaatioiden päivitys onnistui."
+
+#: lib/Forms/CreateTicket.php:153 lib/Forms/AddComment.php:24
+#: lib/Forms/EditTicket.php:126
+msgid "Attachment"
+msgstr "Liite"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Liite %s poistettiin."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Liitettä %s ei löytynyt."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Liitteet"
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr "Lisä_määreen kriteeri"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Atribuutti %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Atribuutin kuvaus"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Atribuutin nimi"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Atribuutin tyyppi"
+
+#: lib/Forms/Search.php:20
+msgid "Attributes"
+msgstr "Atribuutit"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "Atribuutit tälle tyyppille"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Linkitä automaattisesti toisiin tiketteihin kommenteissa."
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Olemassaolevat osoitekirjat"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Olemassaolevat jonot:"
+
+#: reports.php:24
+msgid "Average days to close by Owner"
+msgstr "Keskimääräinen aika, joka menee tikettiä selvitettäessä."
+
+#: reports.php:26
+msgid "Average days to close by Queue"
+msgstr "Keskimääräinen aika, kun tiketti on jonossa."
+
+#: reports.php:25
+msgid "Average days to close by Requester"
+msgstr "Keskimääräinen aika kun asiakas sulkee tiketin"
+
+#: reports.php:29
+msgid "Average time a ticket is unresolved"
+msgstr "Keskimääräinen aika kun tiketti on ratkaisematta"
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr "Haaran tyyppi"
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr "Ei voida tunnistautua postipalvelimelle:"
+
+#: lib/Query.php:164
+msgid "Case Insensitive Substring"
+msgstr "Kirjainkokoriippumaton osamerkkijono"
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Muuta"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Voit muuttaa näkymän asetuksia kuten esimerkiksi miten hakujen tulokset "
+"järjestetään"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Voit muuttaa asetuksia tikettien sähköpostiilmoituksille."
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr "Valitse toiminto:"
+
+#: lib/Query.php:678
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Valitse Uusi kysely, sen sijaan että poistaisi juurinoodin."
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr "Valitse osoitekirjojen järjestys laajennettaessa osoitteita."
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "Valitse:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "Aikajärjestys (vanhin ensin)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+"Napsauta yhtä valitsemaasi osoitekirjaa ja valitse sitten etsittävät kentät."
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr "Kloonaa"
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr "Kloonaa kuvaus"
+
+#: lib/Forms/Admin/Type.php:36 admin/index.php:151
+msgid "Clone Type"
+msgstr "Kloonaa tyyppi"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Pilkuilla erotetut arvot (CSV-tiedosto)"
+
+#: ticket/queue.php:35 ticket/type.php:32 lib/Renderer/Query.php:88
+#: lib/Forms/AddComment.php:23 lib/Forms/EditTicket.php:131
+msgid "Comment"
+msgstr "Kommentti"
+
+#: lib/Renderer/Comment.php:159
+#, php-format
+msgid "Comment #%d"
+msgstr "Kommentti #%d"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d (Private)"
+msgstr "Kommentti #%d (Yksityinen)"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "Kommentti lisätty"
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr "Kommentti asiasta %s"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Kommentoija"
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr "%s:n kopio"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Pyydetyn tiedoston laajennus ei onnistunut Zip-tiedostosta."
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "Ei löydetty ainuttakaan ryhmää."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Ei löytynyt tikettiä \"%s\"."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr "Luo oletusprioriteetit"
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "Luo oletustilat"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Luo tiketti"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "Luo tiketti- Askel 1"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "Luo tiketti- Askel 2"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "Luo tiketti- Askel 3"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "Luo tiketti- Askel 4"
+
+#: lib/Ticket.php:971 lib/Whups.php:682 lib/api.php:918
+#: lib/Renderer/Query.php:141 config/prefs.php.dist:52
+msgid "Created"
+msgstr "Luotu"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Luoja"
+
+#: lib/Forms/Query.php:324 lib/Forms/Search.php:56
+msgid "Created from"
+msgstr "Luotu alkaen"
+
+#: lib/Forms/Query.php:325
+msgid "Created to"
+msgstr "Luotu viimeistään"
+
+#: query/index.php:223 query/index.php:240
+msgid "Current Query"
+msgstr "Nykyinen haku"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Nykyinen tiketin tyyppi"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+"ÄLÄ VASTAA TÄHÄN VIESTIIN. TÄHÄN OSOITTEESEEN TULLEITA VIESTEJÄ EI LUETA."
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Päivämäärän/ajan muoto hakutuloksille"
+
+#: lib/Forms/Search.php:55
+msgid "Dates"
+msgstr "Päivämäärät"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Tiketin oletustyyppi"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Oletusjärjestys:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Oletusjärjestyksen suunta:"
+
+#: query/index.php:163
+msgid "Delete"
+msgstr "Poista"
+
+#: lib/Whups.php:866 lib/Whups.php:867
+#, php-format
+msgid "Delete %s"
+msgstr "Poista %s"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "Poista %s?"
+
+#: lib/Forms/Admin/Attribute.php:57 admin/index.php:947
+msgid "Delete Attribute"
+msgstr "Poista atribuutti"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "Poista atribuutin varmistus"
+
+#: lib/Forms/Admin/Reply.php:36 admin/index.php:1082
+msgid "Delete Form Reply"
+msgstr "Poista lomakevastaus"
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr "Poista lomakkeen vastausvarmistus"
+
+#: lib/Forms/Admin/Priority.php:36 admin/index.php:589
+msgid "Delete Priority"
+msgstr "Poista prioriteetti"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "Poista priotiteetin varmistus"
+
+#: lib/Forms/Query.php:447
+msgid "Delete Query?"
+msgstr "Poista kysely?"
+
+#: lib/Forms/Admin/Queue.php:44 admin/index.php:332
+msgid "Delete Queue"
+msgstr "Poista jono"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "Poista jonon varmistua"
+
+#: lib/Forms/Admin/State.php:35 admin/index.php:454
+msgid "Delete State"
+msgstr "Poista tila"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "Poista tilan varmistus"
+
+#: lib/Forms/Admin/Type.php:37 admin/index.php:145
+msgid "Delete Type"
+msgstr "Poista tyyppi"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "Poista tyypin varmistus"
+
+#: lib/Forms/Admin/Version.php:36 admin/index.php:816
+msgid "Delete Version"
+msgstr "Poista versio"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "Poista version varmistus"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Poistettu liite"
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Poistettu liite: %s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Laskeva"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "Kuvaus"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Näkymän asetukset"
+
+#: lib/Whups.php:857
+msgid "Download"
+msgstr "Tallenna"
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr "Lataa nämä tulokset nimellä: "
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:922
+#: lib/Renderer/Query.php:161
+msgid "Due"
+msgstr "Määräaikaan"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Määräajassa ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "Määräajan päivämäärä"
+
+#: lib/Forms/Query.php:336 lib/Forms/Search.php:64
+msgid "Due from"
+msgstr "Määräaika alkaen"
+
+#: lib/Forms/Query.php:337
+msgid "Due to"
+msgstr "Määräaika viimeistään"
+
+#: lib/Query.php:230
+msgid "E_xecute Query"
+msgstr "_Aja kysely"
+
+#: query/index.php:164
+msgid "Edit"
+msgstr "Muokkaa"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr "Muokkaa %s"
+
+#: lib/Forms/Admin/Attribute.php:57 lib/Forms/Admin/Attribute.php:86
+#: admin/index.php:942
+msgid "Edit Attribute"
+msgstr "Muokkaa atribuuttia"
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr "Muokkaa atribuutin kriteeriä"
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "Muokkaa atribuutteja"
+
+#: lib/Forms/Query.php:320
+msgid "Edit Date Criterion"
+msgstr "Muokkaa päivämäärän kriteeriä"
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr "Muokkaa lomakevastauksia"
+
+#: lib/Forms/Admin/Reply.php:36 lib/Forms/Admin/Reply.php:64
+#: admin/index.php:1077
+msgid "Edit Form Reply"
+msgstr "Muokkaa lomakevastausta"
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr "Muokkaa ryhmäkriteeriä"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr "Muokkaa priotiteetteja"
+
+#: lib/Forms/Admin/Priority.php:36 lib/Forms/Admin/Priority.php:59
+#: admin/index.php:584
+msgid "Edit Priority"
+msgstr "Muokkaa prioriteettiä"
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr "Muokkaa ominaisuuden kriteeriä"
+
+#: lib/Forms/Admin/Queue.php:44 lib/Forms/Admin/Queue.php:47
+#: admin/index.php:326
+msgid "Edit Queue"
+msgstr "Muokkaa jonoa"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Muokkaa jonona"
+
+#: lib/Forms/Admin/State.php:35 lib/Forms/Admin/State.php:56
+#: admin/index.php:449
+msgid "Edit State"
+msgstr "Muokkaa tilaa"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "Muokkaa tiloja"
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr "Muokkaa tekstikriteeriä"
+
+#: lib/Forms/Admin/Type.php:35 admin/index.php:139
+msgid "Edit Type"
+msgstr "Muokkaa tyypiä"
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr "Muokkaa käyttäjäkriteeri"
+
+#: lib/Forms/Admin/Version.php:36 lib/Forms/Admin/Version.php:59
+#: admin/index.php:811
+msgid "Edit Version"
+msgstr "Muokkaa versiota"
+
+#: lib/Query.php:226
+msgid "Edit _Permissions"
+msgstr "Muokkaa _oikeuksia"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "Muokkaa _tyyppejä"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Muokkaa tai poista atribuutteja"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr "Muokkaa tai poista lomakevastauksia"
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "Muokkaa tai poista prioriteetteja"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Muokkaa tai poista jonoja"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Muokkaa tai poista tiloja"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Muokkaa tai poista tyyppejä"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Muokkaa tai poista versioita"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr "Muokkaa tämän lomakevastauksen oikeuksia"
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "Muokkaa tämän jonon oikeuksia"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "Muokkaa käyttäjiä jotka ovat vastuussa tästä jonosta"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "Muokkaa versioita tälle jonolle"
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "Sähköpostiosoite ilmoitukselle"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "Poistettava sähköpostiosoite"
+
+#: lib/api.php:504
+msgid "Empty attachment"
+msgstr "Tyhjä liite"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr "Virhe käsiteltäessa viestiä:"
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr "Virhe: Tuntematon kysely muotoa \"%s\", käytetään oletusominaisuuksia"
+
+#: lib/Query.php:163
+msgid "Exact Match"
+msgstr "Täsmää täydellisesti"
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr "Aja kysely"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "Haettavat kentät"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Tiketeille tässä jonossa"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Tiketeille jotka ovat"
+
+#: lib/api.php:806
+msgid "Form Replies"
+msgstr "Lomakevastaukset"
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr "Lomakevastaukset tälle tyypille"
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr "Lomakevastauksen nimi"
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr "Lomakevastauksen teksti"
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr "Lomakevastauksen vastaus"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "Yleiset asetukset"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Mene"
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "Ryhmäomistajat"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr "Ryhmät"
+
+#: lib/api.php:778
+msgid "Hidden Comments"
+msgstr "Piilotetut kommentit"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Historia"
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr "Nosta alitietoja"
+
+#: lib/Whups.php:667 lib/Whups.php:674 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Jos valitaan tikettejä, joilla ei ole omistajaa, niin kenelle sähköposti "
+"lähetetään?"
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr "Laita Ja"
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr "Laita Haara"
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr "Laita Ei"
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr "Laita Tai"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Epäkelpo jono"
+
+#: lib/Whups.php:261 lib/api.php:495
+msgid "Invalid Ticket Id"
+msgstr "Väärä Tiketti Id"
+
+#: lib/api.php:548
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Epäkelpo argumentti: Puuttuu atribuutin nimi tai arvo."
+
+#: lib/api.php:533
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr "Epäkelvot argumentit: Pitää antaa tiketin nimi tai uusi atribuutti."
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Epäkelpo jono"
+
+#: search/rss.php:30
+msgid "Invalid search"
+msgstr "Epäkelpo haku"
+
+#: lib/api.php:397
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Epäkelpoa tikettitietoa: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "Pidä tallessa versioita tälle jonolle."
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Viimeinen>>"
+
+#: lib/Forms/Query.php:411
+msgid "Load Query"
+msgstr "Lataa kysely"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Ladataan..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "MM/PP/VV"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/PP/VV TT:MM:SS"
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Tee kloonaus %s:stä"
+
+#: lib/Forms/AddComment.php:38 lib/Forms/EditTicket.php:167
+msgid "Make this comment visible only to members of a group?"
+msgstr "Laita tämä kommentti näkymään vain ryhmän jäsenille."
+
+#: lib/Forms/Query.php:274
+msgid "Match"
+msgstr "Täsmää"
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:275
+msgid "Match Operator"
+msgstr "Täsmäävä operaattori"
+
+#: lib/Query.php:167
+msgid "Match Pattern"
+msgstr "Täsmää malliin"
+
+#: lib/Query.php:166
+msgid "Match Word"
+msgstr "Täsmäävä sana"
+
+#: reports.php:30
+msgid "Maximum time a ticket is unresolved"
+msgstr "Pisin aika, jonka tiketti on ollut selvittämättä"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Valikkolista"
+
+#: reports.php:31
+msgid "Minimum time a ticket is unresolved"
+msgstr "Lyhin aika, jonka tiketti on ollut selvittämättä"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "Tuorein ensin"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Siirrä alas"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Siirrä ylös"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Siirrettiin tiketti %d \"%s\":lle"
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Minun %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Minun %s :: Lisää sisältö"
+
+#: search.php:178 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Minun kyselyt"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Minun pyynnöt"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Minun tiketit"
+
+#: lib/api.php:884
+msgid "My tickets by assignment date"
+msgstr "Minun tiketit määräyspäivän mukaan"
+
+#: lib/api.php:883
+msgid "My tickets by creation date"
+msgstr "Minun tiketit luontipäivän mukaan"
+
+#: lib/api.php:885
+msgid "My tickets by due date"
+msgstr "Minun tiketit määräpäivän mukaan"
+
+#: lib/api.php:886
+msgid "My tickets by resolution date"
+msgstr "Minun tiketit selvityspäivän mukaan"
+
+#: lib/Forms/Query.php:422
+msgid "Name"
+msgstr "Nimi"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr "Kloonatun kopion nimi"
+
+#: lib/Query.php:216
+msgid "Ne_w Query"
+msgstr "Uu_si kysely"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Uusi"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Uusi liite"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Uusi liite: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "Uusi jono"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Uusi tiketti"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Uuti tyyppi"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Seuraava>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Reply.php:110
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Type.php:176
+#: lib/Forms/Admin/Version.php:96
+msgid "No"
+msgstr "Ei"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Tälle tiketille tai tikettityypille \"%s\" ei ole määritelty oletustyyppiä."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "Ei kyselyitä talletettuna."
+
+#: lib/Driver/sql.php:553 lib/Block/query.php:62
+msgid "No query to run"
+msgstr "Ei kyselyitä ajettavaksi"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Ei jonoja saatavilla."
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Tälle tikettityypille \"%s\" ei ole määritelty tilatietoja eikä "
+"oletustilatietoja."
+
+#: reports.php:35
+msgid "No stats available."
+msgstr "Tilastoja ei ole saatavilla."
+
+#: lib/Driver.php:533
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Taustajärjestelmää \"%s\" ei löytynyt"
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr "Näkymää \"%s\" ei löytynyt"
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Sinulle ei ole määrätty tikettejä."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Määrittelemättömiä tikettejä ei ole."
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Ei tikettejä tässä jonossa"
+
+#: lib/Whups.php:716
+msgid "No tickets matched your search criteria."
+msgstr "Yksikään tiketti ei vastannut hakukriteetereitäsi."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+"Tälle tiketille tai tälle jonolle \"%s\" ei ole määritelty oletustyyppiä."
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:67
+msgid "None"
+msgstr "Ei mitään"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:26
+msgid "Not"
+msgstr "Ei"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Ilmoituksen asetukset"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Ilmoita minulle vain jos muut muuttavat tikettejä?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Ilmoita minulle vain jos muut muuttavat kommentteja?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Avoin"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "Avoimet tiketit"
+
+#: reports.php:23
+msgid "Open Tickets by Owner"
+msgstr "Avoimet tiketit omistajan mukaan"
+
+#: reports.php:21
+msgid "Open Tickets by Priority"
+msgstr "Avoimet tiketit prioriteetin mukan"
+
+#: reports.php:18
+msgid "Open Tickets by Queue"
+msgstr "Avoiment tiketit jonon mukaan"
+
+#: reports.php:22
+msgid "Open Tickets by Requester"
+msgstr "Avoimet tiketit asiakkaan mukaan"
+
+#: reports.php:19
+msgid "Open Tickets by State"
+msgstr "Avoimet tiketit tilan mukaan"
+
+#: reports.php:20
+msgid "Open Tickets by Type"
+msgstr "Avoimet tiketit tyypin mukaan"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Avoimet tiketit jonossa %s"
+
+#: queue/index.php:43 queue/index.php:57 queue/rss.php:119
+#, php-format
+msgid "Open tickets in %s"
+msgstr "Avoimet tiketit jonossa %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Avoimia tikettejä kaikissa jonoissa"
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:25
+msgid "Or"
+msgstr "Tai"
+
+#: lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702 lib/Ticket.php:705
+#: lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958 lib/Whups.php:681
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "Omistajat"
+
+#: lib/Whups.php:866
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Poistetaanko pysyvästi %s?"
+
+#: ticket/delete.php:51 ticket/deleteAttachment.php:21 ticket/queue.php:131
+#: ticket/type.php:74 ticket/update.php:22
+msgid "Permission Denied"
+msgstr "Käyttö kielletty"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:197
+msgid "Permission Denied."
+msgstr "Käyttö kielletty."
+
+#: lib/Forms/Query.php:459 query/index.php:31 query/run.php:44
+#, php-format
+msgid "Permission denied."
+msgstr "Käyttö kielletty."
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "Korjaa epäselvä tai virheellinen osoite."
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr "Prioriteetit tälle tyypille"
+
+#: ticket/queue.php:117 ticket/type.php:66 lib/Ticket.php:610
+#: lib/Ticket.php:807 lib/Ticket.php:953 lib/Whups.php:669 lib/Whups.php:678
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:147
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:198
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Prioriteetti"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Prioriteetti &rJärj; %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Prioriteetin kuvaus"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Prioriteetin nimi"
+
+#: search.php:178
+msgid "Public Queries"
+msgstr "Julkiset kyselyt"
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr "Kyselynrakentaja"
+
+#: lib/Forms/Query.php:387
+msgid "Query Name"
+msgstr "Kyselyn nimi"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Kyselyn parametrit"
+
+#: lib/Block/query.php:3 lib/Block/query.php:49 query/rss.php:63
+#: query/run.php:79
+msgid "Query Results"
+msgstr "Kyselyn tulokset"
+
+#: lib/Forms/Query.php:389
+msgid "Query Slug"
+msgstr "Kyselyn luoti"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Ajettava kysely"
+
+#: lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918 lib/Ticket.php:923
+#: lib/Whups.php:679 lib/Renderer/Query.php:94 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:40 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "Jono"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Jono &rJärj; %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Jonojen sisältö"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Jonon kuvaus"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "Jonon sähköpostiosoite"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Jonon nimi"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr "Jono luoti"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Jonon yhteenveto"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "Jonon versio"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Jono/Tyyppi matrii_si"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Jono/Tyyppi matriisi"
+
+#: lib/api.php:163 lib/api.php:781
+msgid "Queues"
+msgstr "Jonot"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "Pa_laa haun tulokset"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Poistetaanko todella tämä atribuutti? Tämä voi aiheuttaa ongelmia tiedoissa!"
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr "Poistetaanko todella tämä lomakevastaus?"
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Poistetaanko todella tämä prioriteetti? Tämä voi aiheuttaa ongelmia "
+"tiedoissa!"
+
+#: lib/Forms/Query.php:450
+msgid "Really delete this query? This operation is not undoable."
+msgstr "Poistetaanko todella tämä kysely? Tätä operaatio ei voi perua."
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Poistetaanko todella tämä jono? Tämä voi aiheuttaa ongelmia tiedoissa!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Poistetaanko todella tämä tila? Tämä voi aiheuttaa ongelmia tiedoissa!"
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Poistetaanko todella tämä tiketti? Sitä ei arkistoida, joten se häviää "
+"lopullisesti."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+"Poistetaanko todella tämä tyyppi? Tämä voi aiheuttaa ongelmia tiedoissa!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Poistetaanko todella tämä versio? Tämä voi aiheuttaa ongelmia tiedoissa!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "Saatu vastaus:"
+
+#: search.php:162
+msgid "Refine Search"
+msgstr "Tarkenna hakua"
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr "Muistutukset lähetettiin."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Poista käyttäjä"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "Poista tarkkailija"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Poista lähde"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "Vastaa tähän kommenttiin"
+
+#: reports.php:40
+msgid "Reports"
+msgstr "Raportit"
+
+#: lib/Ticket.php:965 lib/Whups.php:680 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Asiakas"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "Vaadittu atribuutti?"
+
+#: lib/Driver.php:199 lib/Ticket.php:991 lib/Whups.php:685 lib/api.php:927
+#: lib/Renderer/Query.php:151 config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Selvitetty"
+
+#: lib/Forms/Query.php:330 lib/Forms/Search.php:60
+msgid "Resolved from"
+msgstr "Selvitetty alkaen"
+
+#: lib/Forms/Query.php:331
+msgid "Resolved to"
+msgstr "Selvitetty viimeistään"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "Vastuulliset käyttäjät"
+
+#: lib/Whups.php:306
+msgid "S_et Queue"
+msgstr "As_eta jono"
+
+#: lib/Query.php:234
+msgid "Sa_ve Query"
+msgstr "Talleta k_ysely"
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:385
+msgid "Save"
+msgstr "Talleta"
+
+#: query/index.php:233
+msgid "Save Criterion"
+msgstr "Talleta kriteeri"
+
+#: lib/Forms/Query.php:384
+msgid "Save Query"
+msgstr "Talleta kysely"
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr "Talleta kyselynä"
+
+#: search.php:155 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Haku"
+
+#: lib/Forms/Query.php:278
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Hae %s atribuuttia"
+
+#: lib/Forms/Query.php:272 lib/Forms/Query.php:281
+msgid "Search Attribute"
+msgstr "Hae atribuutti"
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Hae kommenttia"
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr "Hae omistajia"
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr "Hae asiakasta"
+
+#: search.php:147 search/rss.php:55 search/rss.php:59
+msgid "Search Results"
+msgstr "Haun tulokset"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Haun tulokset %s / %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Hae yhteenvetoa"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Hae tikettiä"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "Valitse osoitekirjalähteet osoitteiden lisäykselle ja haulle."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr "Valitse kaikki ne kentät, joista etsitään laajennettavia osoitteita."
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr "Valitse sisäänkirjautumisen jälkeen näytettävä näkymä:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Valitut osoitekirjat:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "Lähe_tä muistutukset"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "Lähetä muistutukset"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr "Lähetä vain tälle lista tikettien id:stä"
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Aseta oletusprioriteetti"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Aseta oletustila"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "Aseta jono - Askel 1"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "Aseta jono - Askel 2"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "Aseta jono - Askel 3"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Aseta jono %s:lle"
+
+#: lib/api.php:800
+msgid "Set Requester"
+msgstr "Hae asiakasta"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr "Aseta tyyppi - Askel 1"
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr "Aseta tyyppi - Askel 2"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "Aseta tyyppi %s:lle"
+
+#: lib/Whups.php:311
+msgid "Set _Type"
+msgstr "Aseta _tyyppi"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Näytä kommentit kronologisessa järjestyksess, tai uusin esin."
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "Näytä tiketti id:t yhteenvetonäkymässä."
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Näytä aloittamasi tiketit yhteevetonäkymässä."
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Yksinkertainen raportti HTML-muodossa"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"Luoti mahdollistaa suoran yhteyden tämän jonon avoimiin tiketteihin "
+"käymällä: %s. <br /> Luotien nimet voi sisältää vain kirjaimia, numeroita "
+"tai _ (alaviiva) -merkin."
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr "Järjestä %s mukaan"
+
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Roskapostisuojaus"
+
+#: ticket/queue.php:116 ticket/type.php:65 lib/Ticket.php:609
+#: lib/Ticket.php:806 lib/Ticket.php:949 lib/Whups.php:670 lib/Whups.php:676
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:193 config/prefs.php.dist:47
+msgid "State"
+msgstr "Tila"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Tila ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Tilan kategoria"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Tilan kuvaus"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Tilan nimi"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "Tilat tälle tyypille"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Tila"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "Lähetä"
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr "Tilaa tämä kysely"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Onnistuttiin kloonaamaan %s %s:ksi."
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Tiketin tyypin muutos onnistui."
+
+#: ticket/delete.php:30 lib/Ticket.php:616 lib/Ticket.php:643
+#: lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812 lib/Ticket.php:821
+#: lib/Ticket.php:912 lib/Whups.php:668 lib/Whups.php:675
+#: lib/Renderer/Query.php:89 lib/Forms/CreateTicket.php:152
+#: lib/Forms/EditTicket.php:58 config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Yhteenveto"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Yheenveto &rJärj; %s"
+
+#: lib/Forms/Search.php:43
+msgid "Summary like"
+msgstr "Yhteenveto kuten"
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "Otettiin %s:ltä"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Teksti"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1306
+msgid "That queue slug is already taken. Please select another."
+msgstr "Tämä jonoluoti on jo varattu. Valitse joku toinen."
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "Asiakkaan sähköpostiosoite"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+"VFS-taustajärjestelmä pitää olla asennettu ennenkuin voi tuoda liitteitä."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Atribuutti \"%s\" on lisätty %s:lle."
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr "Atribuutti on poistettu."
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr "Atribuuttia on muokattu"
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr "Atribuuttia ei poistettu."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "Oletusprioriteetti on asetettu."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "Oletustila on asetettu."
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr "Lomakevastaus \"%s\" on lisätty %s:lle."
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr "Lomakevastaus on poistettu."
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr "Lomakevastausta on muokattu."
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr "Lomakevastausta ei poistettu."
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Prioriteetti \"%s\" on lisätty %s:lle."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "Prioriteetti on poistettu."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "Prioriteettia on muokattu."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "Prioriteettiä ei poistettu."
+
+#: lib/Forms/Query.php:463
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Kyselyä \"%s\" ei voitu poistaa: %s"
+
+#: lib/Forms/Query.php:465
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Kysely \"%s\" on poistettu."
+
+#: lib/Forms/Query.php:430
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Kyselyä ei voitu ladata."
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Jono \"%s\" on luotu."
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "Jono on poistettu."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "Jonoa on muokattu."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "Jonoa ei poistettu."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Pyydettyä tiedostoa ei ole Zip-liitteessä."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Pyydettyä mallia ei ole olemassa."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Tila \"%s\" on lisätty %s:lle."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "Tila on poistettu."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "Tilaa on muokattu."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "Tilaa ei poistettu."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Tikettiä ei poistettu."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Tyyppiä \"%s\" on muokattu."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "Tyyppi on poistettu."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "Tyyppiä ei poistettu."
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Versio \"%s\" on lisätty %s:lle."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "Versio on poistettu."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "Versiota on muokattu."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "Versiota ei poistettu."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "Ei ole atribuuttityyppejä muokattavaksi."
+
+#: lib/Forms/Query.php:281
+msgid "There are no attributes defined."
+msgstr "Ei ole määritelty atribuutteja."
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr "Ei ole lomakevastauksia muokattavaksi"
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr "Ei ole avoimia tikettejä"
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr "Ei ole prioriteettejä muokattavaksi"
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "Ei ole jonoja saatavilla."
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "Ei ole jonoja muokattavaksi"
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "Ei ole jonoja, johon voit luoda tikettejä."
+
+#: lib/Forms/Search.php:38
+msgid "There are no queues which you can search."
+msgstr "Ei ole jonoja, joista voit etsiä."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "Ei ole tiloja muokattavaksi"
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Tähän jonoon ei ole assosioitu tikettityyppejä: Voit luoda tikettejä vasta "
+"tikettityypit on määritelty."
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr "Ei ole tyyppejä muokattavaksi"
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "Tälle jonolle ei ole vastuuhenkilöitä."
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Ei ole käyttäjiä joille tämä tiketti voidään määrätä."
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "Ei ole versioita editoitaviksi"
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr "Ei ole tietoja tähän raporttiin."
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+"Tapahtui virhe lisättäessä \"%s\" vastuullisten henkilöiden listalle \"%s\":"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "Tapahtui virhe luotaessa atribuuttia:"
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr "Tapahtui virhe luotaessa lomakevastausta:"
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "Tapahtui virhe luotaessa prioriteettiä:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "Tapahtui virhe luotaessa jonoa:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "Tapahtui virhe luotaessa tilaa:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "Tapahtui virhe luotaessa versiota:"
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr "Tapahtui virhe poistettaesssa atribuuttia:"
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr "Tapahtui virhe poistettaessa lomakevastausta:"
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "Tapahtui virhe poistettaessa prioriteettiä:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "Tapahtui virhe poistettaessa jonoa:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "Tapahtui virhe poistettaessa tilaa:"
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr "Tapahtui virhe poistettaessa tikettiä:"
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "Tapahtui virhe poistettaessa tyyppiä:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "Tapahtui virhe poistettaessa versiota:"
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr "Tapahtui virhe muokattaessa atribuuttia:"
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr "Tapahtui virhe muokattaessa lomakevastausta:"
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "Tapahtui virhe muokattaessa prioriteettiä:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "Tapahtui virhe muokattaessa jonoa:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "Tapahtui virhe muokattaessa tilaa:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "Tapahtui virhe muokattaessa versiota:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Tapahtui virhe käyttäjiä listatessa: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr "Tapahtui virhe etsittäessä tikettejä tästä jonosta: "
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "Tapahtui virhe muokattaessa tyyppiä:"
+
+#: search.php:140
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Tapahtui virhe tehtäessä hakuasi: %s"
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+"Tapahtui virhe poistettaessa \"%s\" vastuuhenkilöiden listatalta \"%s\":"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr "Tapahtui virhe muokattaessa oletusprioriteettiä:"
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr "Tapahtui virhe muokattaessa oletustilaa:"
+
+#: lib/Forms/AddComment.php:37 lib/Forms/EditTicket.php:166
+msgid "This comment is visible to everyone"
+msgstr "Tämä komentti näkyy kaikille"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+"Tätä sähköpostiosoitetta käytetään kun lähdetetään ilmoituksia jonojen "
+"tiketeistä."
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Tämä ei ole malli hakutuloksille."
+
+#: lib/Query.php:435 lib/Query.php:668
+msgid "This query element cannot be edited."
+msgstr "Tämän kyselyelementtiä ei voi muokata."
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Tämä jono vaatii että annat version, mutta jonoon ei ole assosioitu "
+"versiotietoja. Tähän jonoon voi luoda tikettejä vasta kun siihen on liitetty "
+"versiotiedot."
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Tiketti"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Tiketti %d on poistettu."
+
+#: lib/api.php:850
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Tiketti %s - %s"
+
+#: lib/Driver/sql.php:1081
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Tikettiä %s ei löytynyt."
+
+#: search.php:170
+msgid "Ticket Search"
+msgstr "Tikettien haku"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Tiketin tila"
+
+#: templates/reports/stats.inc:1
+msgid "Ticket Stats"
+msgstr "Tikettien tilastot"
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Tiketin tyyppi"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "Tähän jonoon assosioidut tikettityypit"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "Tiketti URL: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Tiketti päivitetty"
+
+#: lib/api.php:871
+msgid "Tickets"
+msgstr "Tiketit"
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr "Kyselyä \"%s\" vastaavat tiketit."
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"Valitaksesi useita kenttiä, pidä pohjassa Control (PC) tai Command (Mac) kun "
+"valitset napsauttamalla."
+
+#: ticket/queue.php:89 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Whups.php:677 lib/Renderer/Query.php:108
+#: lib/Forms/Query.php:174 config/prefs.php.dist:48
+msgid "Type"
+msgstr "Tyyppi"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tyyppi ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Tyypin kuvaus"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Tyypin nimi"
+
+#: search/rss.php:39
+#, php-format
+msgid "Type: %s; State: %s"
+msgstr "Tyyppi: %s; Tila: %s"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Määrittelemätön"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Määrittelemättömät tiketit"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Määrittelemättömät tiketit"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Varmistamaton"
+
+#: lib/Renderer/Query.php:167 lib/Renderer/Query.php:207
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Tuntematon node tyyppi %s"
+
+#: lib/api.php:790
+msgid "Update"
+msgstr "Päivitä"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "Päivitä %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Päivitä assosiaatiot"
+
+#: lib/Ticket.php:981 lib/Whups.php:683 lib/Renderer/Query.php:146
+msgid "Updated"
+msgstr "Päivitetty"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Päivittäjä"
+
+#: lib/Forms/Query.php:327 lib/Forms/Search.php:58
+msgid "Updated from"
+msgstr "Päivitetty alkaen"
+
+#: lib/Forms/Query.php:328
+msgid "Updated to"
+msgstr "Päivitetty viimeistään"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "Käyttäjä"
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr "Käyttäjä ID"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "Tämän jonon vastuukäyttäjät"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "Tämän jonon vastuukäyttäjät"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Versio"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Version kuvaus"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Version nimi"
+
+#: ticket/queue.php:50 ticket/type.php:43
+msgid "Viewable only by members of"
+msgstr "Näytetään vain jäsenille"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Tarkkaile tätä tikettiä"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "Tarkkailijat %s:lle"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "Viikonpäivä Päivä Kuukausi"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Viikonpäivä Päivä Kuukausi TT:MM:SS TZ"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Reply.php:110
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Type.php:176
+#: lib/Forms/Admin/Version.php:96
+msgid "Yes"
+msgstr "Kyllä"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "Sinulla ei ole oikeuksia nähdä tätä tikettiä %d."
+
+#: lib/Driver/sql.php:1090
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Sinulla ei ole oikeuksia tähän tikettiin (%s)"
+
+#: lib/api.php:375
+msgid "You do not have permission to update this ticket."
+msgstr "Sinulla ei ole oikeuksia päivittää tätä tikettiä."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Sinulla ei ole avoimia pyyntöjä."
+
+#: lib/Forms/Query.php:419 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "Sinulla ei ole talletettuja kyselyitä."
+
+#: lib/Whups.php:710
+msgid "You must select at least one queue to send reminders for."
+msgstr "Sinun pitää valita ainakin yksi jono johon lähetetän muistutukset."
+
+#: lib/Forms/CreateTicket.php:132 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "Sähköpostiosoitteesi"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Tikettisi ID on %s. Ilmoitus uudesta tiketistä on lähetetty "
+"vastuuhenkilöille."
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ Ei voitu renderöidä viestin leipätekstiä ]"
+
+#: lib/Whups.php:774
+msgid "_Admin"
+msgstr "_Ylläpito"
+
+#: lib/Whups.php:298
+msgid "_Comment"
+msgstr "_Kommentti"
+
+#: query/index.php:157
+msgid "_Date Criteria"
+msgstr "_Päivämäärän kriteeri"
+
+#: lib/Whups.php:316
+msgid "_Delete"
+msgstr "_Poista"
+
+#: lib/Query.php:237
+msgid "_Delete Query"
+msgstr "_Poista kysely"
+
+#: lib/Query.php:218
+msgid "_Edit Query"
+msgstr "_Muokkaa kyselyä"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "_Muokkaa jonoja"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "_Mene"
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr "_Ryhmäkriteeri"
+
+#: lib/Whups.php:292
+msgid "_History"
+msgstr "_Historia"
+
+#: lib/Query.php:231
+msgid "_Load Query"
+msgstr "_Lataa kysely"
+
+#: lib/Whups.php:765
+#, php-format
+msgid "_My %s"
+msgstr "_Oma %s"
+
+#: lib/Whups.php:768
+msgid "_New Ticket"
+msgstr "_Uusi tiketti"
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr "_Ominaisuuden kriteeri"
+
+#: lib/Whups.php:769
+msgid "_Query Builder"
+msgstr "_Kyselynrakentaja"
+
+#: lib/Whups.php:770
+msgid "_Reports"
+msgstr "_Raportit"
+
+#: lib/Whups.php:767
+msgid "_Search"
+msgstr "_Haku"
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr "_Tekstin kriteeri"
+
+#: lib/Whups.php:294
+msgid "_Update"
+msgstr "_Päivitä"
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr "_Käyttäjä kriteeri"
+
+#: lib/Whups.php:302
+msgid "_Watch"
+msgstr "_Tarkkaile"
+
+#: lib/Renderer/Query.php:187
+msgid "contains (case insensitive) substring"
+msgstr "sisältää (kirjainkokoriippumattoman) osamerkkijonon"
+
+#: lib/Renderer/Query.php:191
+msgid "contains (case sensitive) substring"
+msgstr "sisältää (kirjainkokoriippuvan) osamerkkijonon"
+
+#: lib/Renderer/Query.php:195
+msgid "contains the word"
+msgstr "sisältää sanan"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "nykyinen käyttäjä:"
+
+#: lib/api.php:859
+msgid "estimated time"
+msgstr "arvioitu aika"
+
+#: lib/Renderer/Query.php:183
+msgid "is"
+msgstr "on"
+
+#: lib/Renderer/Query.php:175
+msgid "is greater than"
+msgstr "on suurempi kuin"
+
+#: lib/Renderer/Query.php:179
+msgid "is less than"
+msgstr "on pienempi kuin"
+
+#: lib/Renderer/Query.php:199
+msgid "matches the pattern"
+msgstr "täsmää malliin"
+
+#: lib/Forms/Search.php:57 lib/Forms/Search.php:59 lib/Forms/Search.php:61
+#: lib/Forms/Search.php:63 lib/Forms/Search.php:65
+msgid "to"
+msgstr " - "
--- /dev/null
+# WHUPS French translation.
+# Copyright 2002 Thierry Thomas <thierry@pompo.net>.
+# This file is distributed under the same license as the WHUPS package.
+# Thierry Thomas <thierry@pompo.net>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups-0.0.1-cvs\n"
+"POT-Creation-Date: 2003-06-23 11:17+0200\n"
+"PO-Revision-Date: 2003-06-22 23:21+0200\n"
+"Last-Translator: Thierry Thomas <thierry@pompo.net>\n"
+"Language-Team: French <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#, c-format
+msgid "%s added to those responsible for '%s'"
+msgstr "%s fait désormais partie des responsables de « %s »"
+
+#, c-format
+msgid "%s days"
+msgstr " (il y a %s jours)"
+
+#, c-format
+msgid "'%s' is no longer among those responsible for '%s'"
+msgstr "« %s » ne fait plus partie des responsables de « %s »"
+
+msgid "- Stage 1"
+msgstr "- Étape 1"
+
+msgid "- Stage 2"
+msgstr "- Étape 2"
+
+#, c-format
+msgid "-Added By: %s\n"
+msgstr "-Ajouté par : %s\n"
+
+#, c-format
+msgid "-Assigned By: %s"
+msgstr "-Assigné par : %s"
+
+#, c-format
+msgid "-Assigned To: %s"
+msgstr "-Assigner à : %s"
+
+#, c-format
+msgid "-Comment by %s on %s:"
+msgstr "-Commentaire par %s sur %s :"
+
+#, c-format
+msgid "-Created By: %s\n"
+msgstr "-Créé par : %s\n"
+
+#, c-format
+msgid "-Queue: %s"
+msgstr "-Queue : %s"
+
+#, c-format
+msgid "-Queue: %s\n"
+msgstr "-Queue : %s\n"
+
+#, c-format
+msgid "-New Priority: %s"
+msgstr "-Nouvelle priorité : %s"
+
+#, c-format
+msgid "-New State: %s"
+msgstr "-Nouvel état : %s"
+
+#, c-format
+msgid "-State: %s"
+msgstr "-État : %s"
+
+msgid "-Summary:"
+msgstr "-Résumé :"
+
+#, c-format
+msgid "-Ticket %s"
+msgstr "-Ticket %s"
+
+#, c-format
+msgid "-Ticket %s\n"
+msgstr "-Ticket %s\n"
+
+msgid "1. Low"
+msgstr "1. Bas"
+
+msgid "2. Medium"
+msgstr "2. Moyen"
+
+msgid "3. High"
+msgstr "3. Haut"
+
+msgid "<i>No summary</i>"
+msgstr "<i>Pas de résumé</i>"
+
+msgid "A ticket has been reported but not yet analyzed."
+msgstr "Un ticket a été pris en compte mais pas encore analysé."
+
+msgid "Accepted"
+msgstr "Accepté"
+
+msgid "Add Attribute Criterion"
+msgstr "Ajouter un critère sur l'attribut"
+
+msgid "Add Attribute"
+msgstr "Ajouter un attribut"
+
+msgid "Add Comment Succeeded"
+msgstr "Commentaire ajouté"
+
+msgid "Add Comment"
+msgstr "Ajouter un commentaire"
+
+msgid "Add Criterion"
+msgstr "Ajouter un critère"
+
+msgid "Add Queue"
+msgstr "Ajouter un module"
+
+msgid "Add Priority"
+msgstr "Ajouter une priorité"
+
+msgid "Add Property Criterion"
+msgstr "Ajouter un critère sur la propriété"
+
+msgid "Add State"
+msgstr "Ajouter un état"
+
+msgid "Add Subject"
+msgstr "Ajouter un sujet"
+
+msgid "Add Text Criterion"
+msgstr "Ajouter un critère sur le texte"
+
+#, c-format
+msgid "Add Type %s"
+msgstr "Ajouter le type %s"
+
+msgid "Add Type"
+msgstr "Ajouter un type"
+
+msgid "Add User Criterion"
+msgstr "Ajouter un critère sur l'utilisateur"
+
+msgid "Add Users"
+msgstr "Ajouter des utilisateurs"
+
+msgid "Add Version"
+msgstr "Ajouter une version"
+
+#, c-format
+msgid "Adding your ticket failed: %s."
+msgstr "L'ajout de votre ticket a échoué : %s."
+
+msgid "Additional Comment"
+msgstr "Commentaire additionnel"
+
+msgid "Admin"
+msgstr "Admin."
+
+msgid "Administration"
+msgstr "Administration"
+
+msgid "An appropriate person has been notified of this request."
+msgstr "Cette requête a été notifiée à la personne appropriée."
+
+msgid "And"
+msgstr "Et"
+
+msgid "Any Group"
+msgstr "Groupe quelconque"
+
+msgid "Any"
+msgstr "Quelconque"
+
+msgid "Ascending"
+msgstr "Croissant"
+
+msgid "Assign Ticket Succeeded"
+msgstr "Assignation du ticket réussie"
+
+msgid "Assign Ticket"
+msgstr "Assigner un ticket"
+
+#, c-format
+msgid "Assigned ticket to %s"
+msgstr "Assigner un ticket à %s"
+
+msgid "Assigned"
+msgstr "Assigné"
+
+msgid "Assignee"
+msgstr "Responsable"
+
+msgid "Associations updated successfully."
+msgstr "Associations mises à jour."
+
+msgid "Attribute Criteria"
+msgstr "Critère d'attribut"
+
+msgid "Attribute Description"
+msgstr "Description de l'attribut"
+
+msgid "Attribute Name"
+msgstr "Nom de l'attribut"
+
+msgid "Attributes for this Type"
+msgstr "Attribut pour ce type"
+
+msgid "Autolink to other tickets in comments"
+msgstr "Lien vers d'autres tickets dans les commentaires"
+
+msgid "Average days to close by Queue"
+msgstr "Délai moyen de clôture par modules"
+
+msgid "Average days to close by Owner"
+msgstr "Délai moyen de clôture par propriétaires"
+
+msgid "Average days to close by Requester"
+msgstr "Délai moyen de clôture par demandeurs"
+
+msgid "Average time a ticket is unresolved"
+msgstr "Délai moyen des tickets non résolus"
+
+msgid "Branch Type"
+msgstr "Type de branche"
+
+msgid "Canceled"
+msgstr "Annulé"
+
+msgid "Case Insensitive Substring"
+msgstr "Sous-chaîne non sensible à la casse"
+
+msgid "Case Sensitive Substring"
+msgstr "Sous-chaîne sensible à la casse"
+
+msgid "Change Ticket Type"
+msgstr "Modifier le type du ticket"
+
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Changer les options d'affichage de la même manière que l'ordre des résultats "
+"de recherches."
+
+msgid ""
+"Change display options such as the color scheme and how search results are "
+"sorted."
+msgstr ""
+"Changer les options d'affichage tels que le thème coloré et la manière dont "
+"les résultats de recherches sont classés."
+
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+"Changer les options de notifications par courrier de l'activité des tickets."
+
+msgid "Change"
+msgstr "Modifier"
+
+msgid "Choose Action:"
+msgstr "Choisir une action :"
+
+msgid "Chronological (oldest first)"
+msgstr "Chronologique (les plus ancien en premier)"
+
+msgid "Clone Description"
+msgstr "Description du clone"
+
+msgid "Clone Type"
+msgstr "Type de clone"
+
+msgid "Clone"
+msgstr "Dupliquer"
+
+msgid "Comma Separated Values (CSV file)"
+msgstr "Texte CSV (fichier CSV)"
+
+#, c-format
+msgid "Comment from %s on %s"
+msgstr "Commentaire de %s sur %s"
+
+msgid "Comment"
+msgstr "Commentaire"
+
+msgid "Commentor"
+msgstr "Commentateur"
+
+#, c-format
+msgid "Copy of %s"
+msgstr "Copie de %s"
+
+msgid "Create Default Priorities"
+msgstr "Créer les priorités par défaut"
+
+msgid "Create Default States"
+msgstr "Créer les états par défaut"
+
+msgid "Create Ticket - Stage 1"
+msgstr "Créer un ticket - Étape 1"
+
+msgid "Create Ticket - Stage 2"
+msgstr "Créer un ticket - Étape 2"
+
+msgid "Create Ticket - Stage 3"
+msgstr "Créer un ticket - Étape 3"
+
+msgid "Create Ticket - Stage 4"
+msgstr "Créer un ticket - Étape 4"
+
+msgid "Create Ticket"
+msgstr "Créer un ticket"
+
+msgid "Create Tickets"
+msgstr "Créer des tickets"
+
+msgid "Created"
+msgstr "Créé"
+
+msgid "Current Query"
+msgstr "Requête courante"
+
+msgid "Current Type"
+msgstr "Type courant"
+
+msgid "Date Criteria"
+msgstr "Critère sur la date"
+
+msgid "Date/Time format for search results"
+msgstr "Format de la date et de l'heure pour les résultats de recherche"
+
+msgid "Default sorting criteria:"
+msgstr "Critère de classement par défaut"
+
+msgid "Default sorting direction:"
+msgstr "Sens de classement par défaut"
+
+msgid "Delete Attribute Confirmation"
+msgstr "Confirmation de la suppression de l'attribut"
+
+msgid "Delete Attribute"
+msgstr "Supprimer l'attribut"
+
+msgid "Delete Queue Confirmation"
+msgstr "Confirmation de la suppression de module"
+
+msgid "Delete Queue"
+msgstr "Supprimer le module"
+
+msgid "Delete Priority Confirmation"
+msgstr "Confirmation de la suppression de priorité"
+
+msgid "Delete Priority"
+msgstr "Supprimer la priorité"
+
+msgid "Delete State Confirmation"
+msgstr "Confirmation de la suppression de l'état"
+
+msgid "Delete State"
+msgstr "Supprimer l'état"
+
+msgid "Delete Subject Confirmation"
+msgstr "Confirmation de la suppression du sujet"
+
+msgid "Delete Subject"
+msgstr "Supprimer le sujet"
+
+msgid "Delete Ticket Succeeded"
+msgstr "Suppression du ticket effectué"
+
+msgid "Delete Ticket"
+msgstr "Supprimer un ticket"
+
+msgid "Delete Type Confirmation"
+msgstr "Confirmation de la suppression du type"
+
+msgid "Delete Type"
+msgstr "Supprimer le type"
+
+msgid "Delete Version Confirmation"
+msgstr "Confirmation de la suppression de la version"
+
+msgid "Delete Version"
+msgstr "Supprimer la version"
+
+msgid "Delete"
+msgstr "Supprimer"
+
+msgid "Descending"
+msgstr "Décroissant"
+
+msgid "Description"
+msgstr "Description"
+
+msgid "Display Options"
+msgstr "Options d'affichage"
+
+#, c-format
+msgid "Edit %s"
+msgstr "Éditer %s"
+
+msgid "Edit Attribute"
+msgstr "Éditer l'attribut"
+
+msgid "Edit Attributes"
+msgstr "Éditer les attributs"
+
+msgid "Edit Queue"
+msgstr "Éditer le module"
+
+msgid "Edit Queues"
+msgstr "Éditer des modules"
+
+msgid "Edit Priorities"
+msgstr "Éditer les priorités"
+
+msgid "Edit Priority"
+msgstr "Éditer la priorité"
+
+msgid "Edit Query"
+msgstr "Éditer une requête"
+
+msgid "Edit State"
+msgstr "Éditer l'état"
+
+msgid "Edit States"
+msgstr "Éditer les états"
+
+msgid "Edit Subject"
+msgstr "Éditer le sujet"
+
+msgid "Edit Subjects"
+msgstr "Éditer les sujets"
+
+msgid "Edit Type"
+msgstr "Éditer le type"
+
+msgid "Edit Types"
+msgstr "Éditer les types"
+
+msgid "Edit Version"
+msgstr "Éditer la version"
+
+msgid "Edit or Delete Attributes"
+msgstr "Éditer ou supprimer les attributs"
+
+msgid "Edit or Delete Queues"
+msgstr "Éditer ou supprimer les modules"
+
+msgid "Edit or Delete Priorities"
+msgstr "Éditer ou supprimer les priorités"
+
+msgid "Edit or Delete States"
+msgstr "Éditer ou supprimer les états"
+
+msgid "Edit or Delete Subjects"
+msgstr "Éditer ou supprimer les sujets"
+
+msgid "Edit or Delete Types"
+msgstr "Éditer ou supprimer les types"
+
+msgid "Edit or Delete Versions"
+msgstr "Éditer ou supprimer les versions"
+
+msgid "Edit the permissions on this module"
+msgstr "Éditer les permissions de ce module"
+
+msgid "Edit the users responsible for this module"
+msgstr "Éditer les utilisateurs responsables pour ce module"
+
+msgid "Edit the versions for this module"
+msgstr "Éditer les versions de ce module"
+
+msgid "Edit"
+msgstr "Éditer"
+
+#, c-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+"Erreur : formulaire de recherche %s inconnu, utilisation des propriétés par "
+"défaut"
+
+msgid "Exact Match"
+msgstr "Correspondance exacte"
+
+msgid "Execute Query"
+msgstr "Exécution de la requête"
+
+msgid "For tickets from these modules"
+msgstr "Pour les tickets de ce module"
+
+msgid "For tickets which are"
+msgstr "Pour les tickets qui sont"
+
+msgid "Go"
+msgstr "Lancer"
+
+msgid "Help"
+msgstr "Aide"
+
+msgid "Hide Assigned"
+msgstr "Cacher les tickets affectés"
+
+msgid "Hide New"
+msgstr "Cacher les nouveaux"
+
+msgid "Hide Resolved"
+msgstr "Cacher les résolus"
+
+msgid "Hide Unconfirmed"
+msgstr "Cacher les non-confirmés"
+
+msgid "Hoist"
+msgstr "Monter"
+
+msgid "Id"
+msgstr "Id."
+
+#, c-format
+msgid "If you believe you have recieved this mail in error, please contact %s."
+msgstr "Si vous avez reçu ce courrier par erreur, veuillez contacter %s."
+
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+"Si vous ne sélectionnez aucune catégorie, aucun filtre ne sera appliqué sur "
+"la catégorie."
+
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+"Si vous ne sélectionnez aucun type, aucun filtre ne sera appliqué sur le "
+"type de ticket."
+
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Si vous sélectionnez un ticket sans propriétaire, à qui envoyer le courrier ?"
+
+#, c-format
+msgid "Initial priority of '%s' set by %s on %s."
+msgstr "Priorité initiale de « %s » modifié par %s sur %s."
+
+#, c-format
+msgid "Initial state of '%s' set by %s on %s"
+msgstr "État initial de « %s » modifié par %s sur %s"
+
+msgid "Insert And"
+msgstr "Insérer « Et »"
+
+msgid "Insert Branch"
+msgstr "Insérer une branche"
+
+msgid "Insert Not"
+msgstr "Insérer « Non »"
+
+msgid "Insert Or"
+msgstr "Insérer « Ou »"
+
+msgid "Insert Query"
+msgstr "Insérer une requête »"
+
+msgid "Keep a set of versions for this queue?"
+msgstr "Conserver un jeu de versions pour ce module ?"
+
+msgid "Language"
+msgstr "Langue"
+
+msgid "Load Query"
+msgstr "Charger une requête"
+
+msgid "Login"
+msgstr "Connexion"
+
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/JJ/AA HH:MM:SS"
+
+msgid "MM/DD/YY"
+msgstr "MM/JJ/AA"
+
+#, c-format
+msgid "Make a clone of %s"
+msgstr "Dupliquer %s"
+
+msgid "Match Operator"
+msgstr "Faire correspondre l'opérateur"
+
+msgid "Match Pattern"
+msgstr "Faire correspondre le motif"
+
+msgid "Match Word"
+msgstr "Faire correspondre le mot"
+
+msgid "Match"
+msgstr "Correspond"
+
+msgid "Maximum time a ticket is unresolved"
+msgstr "Temps maximum pour un ticket non résolu"
+
+msgid "Minimum time a ticket is unresolved"
+msgstr "Temps minimum pour un ticket non résolu"
+
+msgid "Queue Description"
+msgstr "Description du module"
+
+msgid "Queue Name"
+msgstr "Nom de module"
+
+msgid "Queue Version"
+msgstr "Version du module"
+
+msgid "Queue"
+msgstr "Queue"
+
+msgid "Queue/Type Matrix"
+msgstr "Matrice Queue/Type"
+
+#, c-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s"
+msgstr "Queue : %s, Ticket : %s, Catégorie : %s, Type : %s"
+
+msgid "Most recent first"
+msgstr "Les plus récent en premier"
+
+msgid "Move"
+msgstr "Déplacer"
+
+#, c-format
+msgid "My %s"
+msgstr "Mon %s"
+
+msgid "My Assigned Tickets"
+msgstr "Les tickets qui me sont assignés"
+
+msgid "My Bugs"
+msgstr "Mes tickets"
+
+msgid "My Open Requests"
+msgstr "Mes requête en cours"
+
+msgid "My Searches"
+msgstr "Mes requêtes"
+
+msgid "Name of the cloned copy"
+msgstr "Nom du clone"
+
+msgid "Name"
+msgstr "Nom"
+
+msgid "Name, Email Report"
+msgstr "Nom, rapport par courrier"
+
+msgid "New Priority"
+msgstr "Nouvelle priorité"
+
+msgid "New Query"
+msgstr "Nouvelle requête"
+
+msgid "New State"
+msgstr "Nouvel état"
+
+msgid "New Ticket"
+msgstr "Nouveau tickets"
+
+#, c-format
+msgid "New comment for ticket %s"
+msgstr "Nouveau commentaire pour le ticket %s"
+
+#, c-format
+msgid "New ticket (%s): %s"
+msgstr "Nouveau ticket (%s) : %s"
+
+msgid "New"
+msgstr "Nouveau"
+
+msgid "No configuration information specified for SQL Bugs."
+msgstr "Pas d'information de configuration spécifiée pour la base de Whups."
+
+msgid "No stats available."
+msgstr "Aucun état disponible."
+
+#, c-format
+msgid "No such backend '%s' found"
+msgstr "Aucune interface « %s »"
+
+msgid "No such ticket."
+msgstr "Aucun ticket de ce type."
+
+msgid "No tickets matched your search criteria."
+msgstr "Aucun ticket ne correspond à vos critères de recherche."
+
+msgid "No tickets to display"
+msgstr "Aucun ticket a afficher"
+
+msgid "No"
+msgstr "Non"
+
+msgid "None"
+msgstr "Aucun"
+
+msgid "Not yet implemented..."
+msgstr "Pas encore implémenté..."
+
+msgid "Not"
+msgstr "Non"
+
+msgid "Notification Options"
+msgstr "Options de notification"
+
+msgid "Only notify me of ticket changes from other users"
+msgstr ""
+"Me notifier uniquement des changements portant sur les tickets d'autres "
+"utilisateurs"
+
+msgid "Open Tickets by Queue"
+msgstr "Mes ticket ouvert par module"
+
+msgid "Open Tickets by Owner"
+msgstr "Tickets ouvert par propriétaire"
+
+msgid "Open Tickets by Priority"
+msgstr "Ticket ouvert par priorité"
+
+msgid "Open Tickets by Requester"
+msgstr "Ticket ouvert par demandeur"
+
+msgid "Open Tickets by State"
+msgstr "Ticket ouvert par état"
+
+msgid "Open Tickets by Type"
+msgstr "Ticket ouvert par type"
+
+msgid "Open Tickets by Version"
+msgstr "Ticket ouvert par version"
+
+msgid "Options"
+msgstr "Options"
+
+msgid "Or"
+msgstr "Ou"
+
+msgid "Other Options"
+msgstr "Autres options"
+
+msgid "Owners"
+msgstr "Propriétaire"
+
+msgid "Path"
+msgstr "Chemin"
+
+msgid "Permission Denied."
+msgstr "Permission refusée."
+
+msgid "Priorities for this Type"
+msgstr "Priorités pour ce type"
+
+msgid "Priority Description"
+msgstr "Description de la priorité"
+
+msgid "Priority Name"
+msgstr "Nom de la priorité"
+
+#, c-format
+msgid "Priority changed to '%s' by %s on %s."
+msgstr "Priorité passée à « %s » par %s sur %s."
+
+msgid "Priority"
+msgstr "Priorité"
+
+msgid "Private"
+msgstr "Privé"
+
+msgid "Property Criteria"
+msgstr "critère de priorité"
+
+msgid "Query Builder"
+msgstr "Construction de requête"
+
+msgid "Query Parameters"
+msgstr "Paramètre de recherche"
+
+msgid "Query Results"
+msgstr "Résultat de la recherche"
+
+msgid "Re-execute Query"
+msgstr "Ré-exécution de la requête"
+
+msgid "Really delete this attribute? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de cet état ? Cela peut provoquer des problèmes avec "
+"les données !"
+
+msgid "Really delete this queue? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de ce module ? Cela peut provoquer des problèmes avec "
+"les données !"
+
+msgid "Really delete this priority? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de cette priorité ? Cela peut provoquer des problèmes "
+"avec les données !"
+
+msgid "Really delete this state? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de cet état ? Cela peut provoquer des problèmes avec "
+"les données !"
+
+msgid "Really delete this subject? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de ce sujet ? Cela peut provoquer des problèmes avec "
+"les données !"
+
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Suppression définitive de ce ticket ? Il NE sera PAS archivé, et sera perdu "
+"définitivement."
+
+msgid "Really delete this type? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de ce type ? Cela peut provoquer des problèmes avec "
+"les données !"
+
+msgid "Really delete this version? This may cause data problems!!"
+msgstr ""
+"Suppression définitive de cette version ? Cela peut provoquer des problèmes "
+"avec les données !"
+
+msgid "Refine Search"
+msgstr "Affiner la recherche"
+
+msgid "Refine search"
+msgstr "Affiner la recherche"
+
+msgid "Reminders were sent."
+msgstr "Les rappels on été envoyés."
+
+msgid "Remove User"
+msgstr "Retirer un utilisateur"
+
+msgid "Reports"
+msgstr "Rapport"
+
+msgid "Requester"
+msgstr "Demandeur"
+
+msgid "Required 'database' not specified in bugs configuration."
+msgstr ""
+"Le paramètre obligatoire 'database' n'est pas spécifié dans la configuration "
+"de Whups."
+
+msgid "Required 'hostspec' not specified in bugs configuration."
+msgstr ""
+"Le paramètre obligatoire 'hostspec' n'est pas spécifié dans la configuration "
+"de Whups."
+
+msgid "Required 'password' not specified in bugs configuration."
+msgstr ""
+"Le paramètre obligatoire 'password' n'est pas spécifié dans la configuration "
+"de Whups."
+
+msgid "Required 'phptype' not specified in bugs configuration."
+msgstr ""
+"Le paramètre obligatoire 'phptype' n'est pas spécifié dans la configuration "
+"de Whups."
+
+msgid "Required 'username' not specified in bugs configuration."
+msgstr ""
+"Le paramètre obligatoire 'username' n'est pas spécifié dans la configuration "
+"de Whups."
+
+msgid "Resolved"
+msgstr "Résolu"
+
+msgid "Responsible Users"
+msgstr "Utilisateurs responsables"
+
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Restreindre les sujets des tickets à une liste définie ?"
+
+msgid "Save Query"
+msgstr "Enregistrer la requête ?"
+
+msgid "Save these results as: "
+msgstr "Sauver ses résultats en : "
+
+msgid "Save"
+msgstr "Enregistrer"
+
+#, c-format
+msgid "Search %s Attribute"
+msgstr "Rechercher l'attribut %s"
+
+msgid "Search Assignee"
+msgstr "Rechercher une personne affectée"
+
+msgid "Search Attribute"
+msgstr "Attribut de recherche"
+
+msgid "Search Comments"
+msgstr "Rechercher des commentaires"
+
+msgid "Search Requester"
+msgstr "Rechercher un demandeur"
+
+msgid "Search Results"
+msgstr "Résultats de recherche"
+
+msgid "Search Summary"
+msgstr "Rechercher un résumé"
+
+msgid "Search Tickets"
+msgstr "Rechercher des tickets"
+
+msgid "Search"
+msgstr "Recherche"
+
+msgid "Select the view to display after login:"
+msgstr "Sélectionnez la vue à afficher après l'identification"
+
+msgid "Select your preferred language:"
+msgstr "Sélectionnez votre langue de travail :"
+
+msgid "Send Reminders"
+msgstr "Envoyer des rappels"
+
+msgid "Send only for this list of ticket ids"
+msgstr "Envoyer seulement pour cette liste d'identifiants de tickets"
+
+msgid "Set Priority"
+msgstr "Affecter une priorité"
+
+msgid "Set State"
+msgstr "Affecter un état"
+
+msgid "Set Ticket Attributes"
+msgstr "Affecter un attribut au ticket"
+
+msgid "Set Ticket Priority"
+msgstr "Affecter une priorité au ticket"
+
+msgid "Set Ticket State Succeeded"
+msgstr "État du ticket mis à jour"
+
+msgid "Set your preferred display language."
+msgstr "Affecter la langue utilisée pour l'affichage."
+
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr ""
+"Afficher « (Il y a n jours) » dans les champs de type date des résultats de "
+"recherche ?"
+
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+"Afficher les commentaires par ordre chronologique, ou les plus récents en "
+"premier ?"
+
+msgid "Show ticket IDs in the summary view?"
+msgstr "Afficher les identifiants des tickets sur la vue du sommaire ?"
+
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Afficher les tickets demandés sur la vue du sommaire ?"
+
+msgid "Simple HTML Report"
+msgstr "Rapport HTML simple"
+
+msgid "Some of Whups' configuration files are missing:"
+msgstr "Il manque certains fichiers de configuration de WHUPS :"
+
+msgid "Someone has accepted responsibility for the ticket."
+msgstr "Quelqu'un a accepté la responsabilité pour le ticket."
+
+msgid "Sort Direction"
+msgstr "Direction du classement"
+
+#, c-format
+msgid "Sort by %s"
+msgstr "Classer par %s"
+
+msgid "State Category"
+msgstr "Catégorie de l'état"
+
+msgid "State Description"
+msgstr "Description de l'état"
+
+msgid "State Name"
+msgstr "Nom de l'état"
+
+#, c-format
+msgid "State changed to '%s' by %s on %s"
+msgstr "État modifié en « %s » par %s sur %s"
+
+msgid "State"
+msgstr "État"
+
+msgid "States for this Type"
+msgstr "États pour ce type"
+
+msgid "Subject Name"
+msgstr "Nom du sujet"
+
+msgid "Subject"
+msgstr "Sujet"
+
+msgid "Subjects associated with this Queue"
+msgstr "Sujets associés à ce module"
+
+msgid "Submit"
+msgstr "Envoi"
+
+#, c-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Duplication effective de %s vers %s."
+
+msgid "Summary"
+msgstr "Résumé"
+
+msgid "Text Criteria"
+msgstr "Critère textuel"
+
+msgid "Text"
+msgstr "Texte"
+
+#, c-format
+msgid "The attribute '%s' has been added to %s."
+msgstr "L'attribut « %s » a été ajouté à %s."
+
+msgid "The attribute has been deleted."
+msgstr "L'attribut a été supprimé."
+
+msgid "The attribute has been modified."
+msgstr "L'attribut a été modifié."
+
+msgid "The attribute was not deleted."
+msgstr "L'attribut n'a pas été supprimé."
+
+#, c-format
+msgid "The queue '%s' has been created."
+msgstr "Le queue « %s » a été créé."
+
+msgid "The queue has been deleted."
+msgstr "Le queue a été supprimé."
+
+msgid "The queue has been modified."
+msgstr "Le queue a été modifié."
+
+msgid "The queue was not deleted."
+msgstr "Le queue n'a pas été supprimé."
+
+#, c-format
+msgid "The priority '%s' has been added to %s."
+msgstr "La priorité « %s » a été ajoutée à %s."
+
+msgid "The priority has been deleted."
+msgstr "La priorité a été supprimée."
+
+msgid "The priority has been modified."
+msgstr "La priorité a été modifiée."
+
+msgid "The priority was not deleted."
+msgstr "La priorité n'a pas été supprimée."
+
+msgid "The requested template does not exist."
+msgstr "Le modèle demandé n'existe pas."
+
+#, c-format
+msgid "The state '%s' has been added to %s."
+msgstr "L'état « %s » a été ajouté à %s."
+
+msgid "The state has been deleted."
+msgstr "L'état a été supprimé."
+
+msgid "The state has been modified."
+msgstr "L'état a été modifié."
+
+msgid "The state was not deleted."
+msgstr "L'état n'a pas été supprimé."
+
+#, c-format
+msgid "The subject '%s' has been added."
+msgstr "Le sujet « %s » a été ajouté."
+
+msgid "The subject has been deleted."
+msgstr "Le sujet a été supprimé."
+
+msgid "The subject has been modified."
+msgstr "Le sujet a été modifié."
+
+msgid "The subject was not deleted."
+msgstr "Le sujet n'a pas été supprimé."
+
+msgid "The ticket has been analyzed and accepted as valid."
+msgstr "Le ticket a été analysé et validé."
+
+msgid "The ticket has been resolved."
+msgstr "Le type a été résolu."
+
+msgid "The ticket is no longer valid for one reason or another."
+msgstr "Le ticket n'est plus valide pour une raison quelconque."
+
+msgid "The ticket is very urgent."
+msgstr "Le ticket est très urgent."
+
+msgid "The ticket was not deleted."
+msgstr "Le ticket n'a pas été supprimé."
+
+#, c-format
+msgid "The type '%s' has been modified."
+msgstr "Le type « %s » a été modifié."
+
+msgid "The type has been deleted."
+msgstr "Le type a été supprimé."
+
+msgid "The type was not deleted."
+msgstr "Le type n'a pas été supprimé."
+
+#, c-format
+msgid "The version '%s' has been added to %s."
+msgstr "La version « %s » a été ajoutée à %s."
+
+msgid "The version has been deleted."
+msgstr "La version a été supprimée."
+
+msgid "The version has been modified."
+msgstr "La version a été modifiée."
+
+msgid "The version was not deleted."
+msgstr "La version n'a pas été supprimée."
+
+msgid "There are no attribute types to edit"
+msgstr "Aucun type d'attribut à éditer"
+
+msgid "There are no attributes defined for the current type"
+msgstr "Il n'y a aucun attribut défini pour le type courant"
+
+msgid "There are no queues available."
+msgstr "Il n'y a aucun queue disponible."
+
+msgid "There are no queues to edit"
+msgstr "Aucun queue à éditer"
+
+msgid "There are no queues which you can create tickets in."
+msgstr "Il n'y a aucun queues pour lequel vous pouvez créer un ticket."
+
+msgid "There are no queues which you can search."
+msgstr "Il n'y a aucun queues dans lequel vous pouvez rechercher."
+
+msgid "There are no priorities to edit"
+msgstr "Aucune priorité à éditer"
+
+msgid "There are no states to edit"
+msgstr "Aucun état à éditer"
+
+msgid "There are no subjects to edit"
+msgstr "Aucun sujet à éditer"
+
+msgid ""
+"There are no ticket types associated with this module; until there are, you "
+"cannot create any tickets in this module."
+msgstr ""
+"Il n'y a aucun type de ticket associé à ce module ; tant qu'il n'y en aura "
+"pas, vous ne pourrez associer aucun ticket à ce module."
+
+msgid "There are no types to edit"
+msgstr "Aucun type à éditer"
+
+msgid "There are no users responsible for this module."
+msgstr "Aucun utilisateur n'est responsable de ce module."
+
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Il n'y a aucun utilisateur à qui ce ticket peut être assigne."
+
+msgid "There are no versions to edit"
+msgstr "Aucune version à éditer"
+
+msgid "There is no data for this graph."
+msgstr "Aucune donnée ne correspond à ce graphique."
+
+msgid "There is no data for this report."
+msgstr "Aucune donnée ne correspond à ce rapport."
+
+#, c-format
+msgid "There was an error adding '%s' to the responsible list for '%s': %s"
+msgstr ""
+"Une erreur s'est produite lors de l'ajout de « %s » à la liste des "
+"responsables de « %s » : %s"
+
+#, c-format
+msgid "There was an error adding the subject: %s."
+msgstr "Une erreur s'est produite lors de l'ajout du sujet : %s."
+
+#, c-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Une erreur s'est produite lors de la création de l'attribut : %s."
+
+#, c-format
+msgid "There was an error creating the module: %s."
+msgstr "Une erreur s'est produite lors de la création du module : %s."
+
+#, c-format
+msgid "There was an error creating the priority: %s."
+msgstr "Une erreur s'est produite lors de la création de la priorité : %s."
+
+#, c-format
+msgid "There was an error creating the state: %s."
+msgstr "Une erreur s'est produite lors de la création de l'état : %s."
+
+#, c-format
+msgid "There was an error creating the version: %s."
+msgstr "Une erreur s'est produite lors de la création de la version : %s."
+
+#, c-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Une erreur s'est produite lors de la suppression de l'attribut : %s."
+
+#, c-format
+msgid "There was an error deleting the module: %s."
+msgstr "Une erreur s'est produite lors de la suppression du module : %s."
+
+#, c-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Une erreur s'est produite lors de la suppression de la priorité : %s."
+
+#, c-format
+msgid "There was an error deleting the state: %s."
+msgstr "Une erreur s'est produite lors de la suppression de l'état : %s."
+
+#, c-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Une erreur s'est produite lors de la suppression du sujet : %s."
+
+#, c-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Une erreur s'est produite lors de la suppression du ticket : %s."
+
+#, c-format
+msgid "There was an error deleting the type: %s."
+msgstr "Une erreur s'est produite lors de la suppression du type : %s."
+
+#, c-format
+msgid "There was an error deleting the version: %s."
+msgstr "Une erreur s'est produite lors de la suppression de la version : %s."
+
+#, c-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Une erreur s'est produite lors de l'édition de l'attribut : %s."
+
+#, c-format
+msgid "There was an error editing the module: %s."
+msgstr "Une erreur s'est produite lors de l'édition du module : %s."
+
+#, c-format
+msgid "There was an error editing the priority: %s."
+msgstr "Une erreur s'est produite lors de l'édition de la priorité : %s."
+
+#, c-format
+msgid "There was an error editing the state: %s."
+msgstr "Une erreur s'est produite lors de l'édition de l'état : %s."
+
+#, c-format
+msgid "There was an error editing the subject: %s."
+msgstr "Une erreur s'est produite lors de l'édition du sujet : %s."
+
+#, c-format
+msgid "There was an error editing the version: %s."
+msgstr "Une erreur s'est produite lors de l'édition de la version : %s."
+
+#, c-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr ""
+"Une erreur s'est produite lors de la récupération des tickets qui vous sont "
+"assignés : %s."
+
+#, c-format
+msgid "There was an error listing your open requests: %s"
+msgstr "Une erreur s'est produite en listant vos requêtes ouvertes : %s"
+
+#, c-format
+msgid "There was an error modifying the type: %s."
+msgstr "Une erreur s'est produite lors de la modification du type : %s."
+
+#, c-format
+msgid "There was an error performing your search: %s"
+msgstr "Une erreur s'est produite lors de votre recherche : %s"
+
+#, c-format
+msgid "There was an error removing '%s' from the responsible list for '%s': %s"
+msgstr ""
+"Une erreur s'est produite lors du retrait de « %s » de la liste des "
+"responsables de « %s » : %s."
+
+msgid ""
+"This file controls the default preferences for Whups, and also controls "
+"which preferences users can alter."
+msgstr ""
+"Ce fichier contrôle les préférences de Whups, ainsi que les préférences "
+"modifiables par les utilisateurs."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Ce fichier contrôle la feuille de style utilisée pour positionner les "
+"couleurs et les polices supplémentaires ou en remplacement des défauts de "
+"Horde."
+
+msgid ""
+"This file defines the templates that various parts of Whups use to format "
+"data."
+msgstr ""
+"Ce fichier définit les gabarits de mise en forme des données utilisables par "
+"Whups à différents endroits."
+
+msgid "This is a very low priority ticket."
+msgstr "Ceci est ticket de très faible priorité."
+
+msgid "This is an important task, but not urgent."
+msgstr "Ceci est une tâche importante, mais non urgente."
+
+msgid "This is not a search results template."
+msgstr "Il n'y pas de gabarit de résultat de recherche."
+
+msgid "This is not a valid subject."
+msgstr "Sujet invalide."
+
+msgid ""
+"This is the main Whups configuration file. It contains paths and options for "
+"all Whups scripts."
+msgstr ""
+"C'est le fichier de configuration principal de WHUPS. Il contient les "
+"chemins et les options de tous les scripts de WHUPS."
+
+#, c-format
+msgid "This mail was automatically generated by %s"
+msgstr "Ce courrier a été généré automatiquement par %s"
+
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this module, you will not "
+"be able to create tickets."
+msgstr ""
+"Ce queue nécessite que vous spécifiez une version, mais aucune version n'est "
+"associée avec lui. Tant qu'il n'y aura pas de versions créées pour ce "
+"module, vous ne pourrez pas créer de ticket."
+
+msgid "Ticket #"
+msgstr "Ticket N°"
+
+#, c-format
+msgid "Ticket %s Comments"
+msgstr "Commentaires sur le ticket %s"
+
+#, c-format
+msgid "Ticket %s Details"
+msgstr "Détails du ticket %s"
+
+#, c-format
+msgid "Ticket %s has been assigned"
+msgstr "Le ticket %s a été affecté"
+
+#, c-format
+msgid "Ticket %s has changed priority"
+msgstr "La priorité du ticket %s a été modifiée"
+
+#, c-format
+msgid "Ticket %s has changed state"
+msgstr "L'état du ticket %s a été modifié"
+
+#, c-format
+msgid "Ticket %s was not found."
+msgstr "Le ticket %s n'a pas été trouvé."
+
+msgid "Ticket Details"
+msgstr "Détails du ticket"
+
+msgid "Ticket ID"
+msgstr "Id. du ticket"
+
+msgid "Ticket State"
+msgstr "État du ticket"
+
+msgid "Ticket Stats"
+msgstr "État du ticket"
+
+msgid "Ticket Summary"
+msgstr "Résumé du ticket"
+
+msgid "Ticket Type"
+msgstr "Type de ticket"
+
+msgid "Ticket Types associated with this Queue"
+msgstr "Types de ticket associés à ce module"
+
+msgid "Tickets assigned to you"
+msgstr "Les tickets à votre charge"
+
+msgid "Tickets which are"
+msgstr "Ticket qui sont"
+
+msgid "Tickets you requested"
+msgstr "Les tickets que vous avez demandé"
+
+msgid "Type Description"
+msgstr "Description du type"
+
+msgid "Type Name"
+msgstr "Nom du type"
+
+msgid "Type"
+msgstr "Type"
+
+msgid "Types"
+msgstr "Types"
+
+msgid "Unassigned tickets"
+msgstr "Ticket non assigné"
+
+msgid "Unassigned"
+msgstr "Non affecté"
+
+msgid "Unconfirmed"
+msgstr "Non confirmé"
+
+#, c-format
+msgid "Unknown node type %s"
+msgstr "Type de nœud %s inconnu"
+
+msgid "Update Associations"
+msgstr "Mettre à jour les associations"
+
+msgid "User Criteria"
+msgstr "Critère utilisateur"
+
+msgid "User ID"
+msgstr "ID Utilisateur"
+
+msgid "User Options"
+msgstr "Options utilisateur"
+
+msgid "User"
+msgstr "Utilisateur"
+
+msgid "Users responsible for this Queue"
+msgstr "Utilisateurs responsables de ce module"
+
+msgid "Users responsible for this module"
+msgstr "Utilisateurs responsables de ce module"
+
+msgid "Version Description"
+msgstr "Description de la version"
+
+msgid "Version Name"
+msgstr "Nom de la version"
+
+msgid "Version"
+msgstr "Version"
+
+msgid "View Graphs"
+msgstr "Voir les graphiques"
+
+msgid "Viewable only by members of"
+msgstr "Consultable uniquement par les membres de"
+
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Jour ouvrable Jour Mois HH:MM:SS FH"
+
+msgid "Weekday Day Month"
+msgstr "Jour ouvrable Jour Mois"
+
+msgid "Whups is not properly configured"
+msgstr "WHUPS n'est pas configuré correctement"
+
+msgid "Yes"
+msgstr "Oui"
+
+#, c-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Vous n'avez pas la permission d'accéder ce ticket (%s)."
+
+msgid "You have no saved queries."
+msgstr "Vous n'avez aucune requête sauvegardée."
+
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+"Vous devez sélectionner au moins un queue pour lequel envoyer des rappels."
+
+msgid "Your Email Address"
+msgstr "Votre adresse électronique"
+
+msgid "Your Information"
+msgstr "Vos données"
+
+#, c-format
+msgid "Your ticket id is %s. "
+msgstr "L'identifiant de votre ticket est %s."
+
+msgid "contains (case insensitive) substring"
+msgstr "contient une sous-chaîne (non sensible à la casse)"
+
+msgid "contains (case sensitive) substring"
+msgstr "contient une sous-chaîne (sensible à la casse)"
+
+msgid "contains the word"
+msgstr "contient le mot"
+
+msgid "is greater than"
+msgstr "est supérieur à"
+
+msgid "is less than"
+msgstr "est inférieur à"
+
+msgid "is"
+msgstr "est"
+
+msgid "matches the pattern"
+msgstr "correspond au motif"
--- /dev/null
+# Italian translations for Whups package.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Fabio Pedretti <fabio.pedretti@ing.unibs.it>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-06-16 15:57+0200\n"
+"PO-Revision-Date: 2008-06-23 17:43+0200\n"
+"Last-Translator: Fabio Pedretti <fabio.pedretti@ing.unibs.it>\n"
+"Language-Team: Italian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" non è più tra i responsabili di \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d persone stanno guardando, %d persone sono responsabili"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s ticket in %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s ticket in tutte le code"
+
+#: lib/Renderer/Comment.php:119
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:480
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) ha scritto:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s aggiunto tra i responsabili di \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s giorni"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s ticket in %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s ticket in tutte le code"
+
+#: ticket/watch.php:59
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s sarà avvisato quando questo ticket sarà aggiornato."
+
+#: ticket/watch.php:71
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s non riceverà a lungo aggiornamento per questo ticket."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- Fase 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- Fase 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr "--queue-name o --queue-id deve specificare una coda valida e pubblica."
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<Primo"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Precedente"
+
+#: view.php:66
+#, php-format
+msgid "Access denied to %s"
+msgstr "Accesso negato a %s"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Aggiungi Attributo"
+
+#: lib/Forms/Query.php:265
+msgid "Add Attribute Criterion"
+msgstr "Aggiungi Criterio all'Attributo"
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Aggiungi un contenuto"
+
+#: query.php:212
+msgid "Add Criterion"
+msgstr "Aggiugi Criterio"
+
+#: lib/Forms/Query.php:91
+msgid "Add Group Criterion"
+msgstr "Aggiungi Criterio di Gruppo"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Aggiungi Priorità"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Aggiungi Criterio di Proprietà"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Aggiungi Coda"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Aggiungi Stato"
+
+#: lib/Forms/Query.php:126
+msgid "Add Text Criterion"
+msgstr "Aggiungi Criterio di Testo"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Aggiungi Tipo"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Aggiungi Tipo %s"
+
+#: lib/Forms/Query.php:40
+msgid "Add User Criterion"
+msgstr "Aggiungi Criterio di Utente"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Aggiungi Utenti"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Aggiungi Versione"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Aggiungi Osservatore"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Aggiungi sorgente"
+
+#: ticket/create.php:54
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Aggiungi il tuo ticket fallito: %s"
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Rubriche"
+
+#: lib/api.php:881 admin/index.php:54
+msgid "Administration"
+msgstr "Amministrazione"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:21
+msgid "And"
+msgstr "E"
+
+#: lib/Forms/Query.php:174 lib/Forms/Query.php:181 lib/Forms/Query.php:186
+#: lib/Forms/Query.php:193 lib/Forms/Query.php:198 lib/Forms/Search.php:28
+msgid "Any"
+msgstr "Qualsiasi"
+
+#: ticket/queue.php:47 ticket/type.php:41 lib/Forms/AddComment.php:37
+#: lib/Forms/EditTicket.php:142
+msgid "Any Group"
+msgstr "Qualsiasi Gruppo"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Crescente"
+
+#: lib/api.php:901
+msgid "Assign"
+msgstr "Assegna"
+
+#: lib/Driver.php:198 lib/Ticket.php:986 lib/Whups.php:639 lib/api.php:996
+#: config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Assegnato"
+
+#: lib/Renderer/Comment.php:72
+#, php-format
+msgid "Assigned to %s"
+msgstr "Assegnato a: %s"
+
+#: admin/index.php:1071
+msgid "Associations updated successfully."
+msgstr "Associazioni aggiornate con successo"
+
+#: lib/Forms/AddComment.php:24 lib/Forms/CreateTicket.php:152
+#: lib/Forms/EditTicket.php:126
+msgid "Attachment"
+msgstr "Allegato"
+
+#: ticket/deleteAttachment.php:31
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Allegato %s eliminato."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "L'allegato %s non è stato trovato."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Allegati"
+
+#: query.php:143
+msgid "Attri_bute Criteria"
+msgstr "Attri_buto Criterio"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Attributo %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Descrizione dell'attributo"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Nome Attributo"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Tipo Attributo"
+
+#: lib/Forms/Admin/Type.php:96
+msgid "Attributes for this Type"
+msgstr "Attributi per questo Tipo"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Autolink ad altri commenti di ticket"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Rubriche disponibili:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Code disponibili:"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Giorni rimanenti alla chiusura del proprietario"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Giorni rimanenti alla chiusura della coda"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Giorni rimanenti alla chiusura del richiedente"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Tempo mancante dell'ticket irrisolvibile"
+
+#: lib/Forms/Query.php:26
+msgid "Branch Type"
+msgstr "Tipo di ramificazione"
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr "Impossibile autenticarsi al main server: "
+
+#: lib/Query.php:51
+msgid "Case Insensitive Substring"
+msgstr "Sottostringa Case Insensitive"
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Modifica"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Modifica le impostazioni di visualizzazione dei risultati di una ricerca."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+"Cambia le opzioni per le notificazioni email delle attività degli ticket"
+
+#: query.php:146
+msgid "Choose Action:"
+msgstr "Scegli Azione:"
+
+#: lib/Query.php:221
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Scegli nuova richiesta di eliminazione del nodo radice"
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr ""
+"Scegli l'ordine in cui visualizzare gli indirizzi da cercare nella rubrica"
+
+#: lib/Forms/CreateTicket.php:46 lib/Forms/CreateTicket.php:76
+msgid "Choose:"
+msgstr "Scegli:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "Cronologico (più vecchio prima)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+"Clicca su una delle rubriche selezionate e selezionare tutti i campi su cui "
+"cercare."
+
+#: lib/Forms/Admin/Type.php:147
+msgid "Clone"
+msgstr "Clona"
+
+#: lib/Forms/Admin/Type.php:153
+msgid "Clone Description"
+msgstr "Descizione Clonazione"
+
+#: lib/Forms/Admin/Type.php:35 admin/index.php:151
+msgid "Clone Type"
+msgstr "Tipo Clonazione"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Valori separati da virgolette (CSV file)"
+
+#: ticket/queue.php:34 ticket/type.php:31 lib/Renderer/Query.php:88
+#: lib/Forms/AddComment.php:23 lib/Forms/EditTicket.php:131
+msgid "Comment"
+msgstr "Commento"
+
+#: lib/Renderer/Comment.php:156
+#, php-format
+msgid "Comment #%d"
+msgstr "Commento #%d"
+
+#: ticket/comment.php:69
+msgid "Comment added"
+msgstr "Commento aggiunto"
+
+#: ticket/comment.php:34
+#, php-format
+msgid "Comment on %s"
+msgstr "Commento su %s:"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Commentatore"
+
+#: lib/Forms/Admin/Type.php:151
+#, php-format
+msgid "Copy of %s"
+msgstr "Copia di %s"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Impossibile estrarre il file richiesto dall'archivio Zip."
+
+#: lib/Forms/Query.php:96
+msgid "Could not find any groups."
+msgstr "Impossibile trovare alcun gruppo."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Impossibile trovare l'ticket \"%s\"."
+
+#: lib/Forms/Admin/Type.php:86
+msgid "Create Default Priorities"
+msgstr "Crea Proprietà di Default"
+
+#: lib/Forms/Admin/Type.php:76
+msgid "Create Default States"
+msgstr "Crea Stati di Default"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Crea Ticket"
+
+#: lib/Forms/CreateTicket.php:27
+msgid "Create Ticket - Step 1"
+msgstr "Crea Ticket - Passo 1"
+
+#: lib/Forms/CreateTicket.php:64
+msgid "Create Ticket - Step 2"
+msgstr "Crea Ticket - Passo 2"
+
+#: lib/Forms/CreateTicket.php:111
+msgid "Create Ticket - Step 3"
+msgstr "Crea Ticket - Passo 3"
+
+#: lib/Forms/CreateTicket.php:196
+msgid "Create Ticket - Step 4"
+msgstr "Crea Ticket - Passo 4"
+
+#: lib/Ticket.php:971 lib/Whups.php:637 lib/api.php:1001
+#: config/prefs.php.dist:52
+msgid "Created"
+msgstr "Creato"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Creato da"
+
+#: query.php:203 query.php:219
+msgid "Current Query"
+msgstr "Richiesta Corrente"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Tipo di ticket corrente"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+"NON RISPONDERE A QUESTO MESSAGGIO. QUESTO INDIRIZZO EMAIL NON E' CONTROLLATO."
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Formato Data/Ora per risultati di ricerca"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Tipo Ticket di Default"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Criteri di ordinamento predefiniti:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Ordine predefinito:"
+
+#: query.php:147
+msgid "Delete"
+msgstr "Elimina"
+
+#: lib/Whups.php:821 lib/Whups.php:822
+#, php-format
+msgid "Delete %s"
+msgstr "Elimina %s"
+
+#: ticket/delete.php:60
+#, php-format
+msgid "Delete %s?"
+msgstr "Elimina %s?"
+
+#: lib/Forms/Admin/Attribute.php:57 admin/index.php:947
+msgid "Delete Attribute"
+msgstr "Elimina Attributo"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "Elimina Comferma Attributo"
+
+#: lib/Forms/Admin/Priority.php:36 admin/index.php:589
+msgid "Delete Priority"
+msgstr "Elimina Priotità"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "Elimina Priorità di Conferma"
+
+#: lib/Forms/Query.php:376
+msgid "Delete Query?"
+msgstr "Elimina richiesta?"
+
+#: lib/Forms/Admin/Queue.php:44 admin/index.php:332
+msgid "Delete Queue"
+msgstr "Elimina Coda"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "Elimina Conferma di Coda"
+
+#: lib/Forms/Admin/State.php:35 admin/index.php:454
+msgid "Delete State"
+msgstr "Elimina Stato"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "Elimina Conferma Stato"
+
+#: lib/Forms/Admin/Type.php:35 admin/index.php:145
+msgid "Delete Type"
+msgstr "Elimina Tipo"
+
+#: lib/Forms/Admin/Type.php:110
+msgid "Delete Type Confirmation"
+msgstr "Elimina Conferma Tipo"
+
+#: lib/Forms/Admin/Version.php:36 admin/index.php:816
+msgid "Delete Version"
+msgstr "Elimina Versione"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "Elimina Conferma Versione"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Elimina Allegato"
+
+#: lib/Renderer/Comment.php:67
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Elimina Allegato: %s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Discendente"
+
+#: lib/Forms/CreateTicket.php:153
+msgid "Description"
+msgstr "Descrizione"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Opzioni di Visualizzazione"
+
+#: lib/Whups.php:812
+msgid "Download"
+msgstr "Scarica"
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:1005
+msgid "Due"
+msgstr "Scadenza"
+
+#: lib/Renderer/Comment.php:127
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Scadenza ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:150 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "Data Scadenza"
+
+#: lib/Query.php:198
+msgid "E_xecute Query"
+msgstr "_Esegui Richiesta"
+
+#: query.php:148
+msgid "Edit"
+msgstr "Modifica"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:60
+#, php-format
+msgid "Edit %s"
+msgstr "Modifica %s"
+
+#: lib/Forms/Admin/Attribute.php:57 lib/Forms/Admin/Attribute.php:86
+#: admin/index.php:942
+msgid "Edit Attribute"
+msgstr "Modifica Attributo"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Attributes"
+msgstr "Modifica Attributi"
+
+#: lib/Forms/Admin/Type.php:84
+msgid "Edit Priorities"
+msgstr "Modifica Priorità"
+
+#: lib/Forms/Admin/Priority.php:36 lib/Forms/Admin/Priority.php:59
+#: admin/index.php:584
+msgid "Edit Priority"
+msgstr "Modifica Priorità"
+
+#: lib/Forms/Admin/Queue.php:44 lib/Forms/Admin/Queue.php:47
+#: admin/index.php:326
+msgid "Edit Queue"
+msgstr "Modifica Coda"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Modifica Code"
+
+#: lib/Forms/Admin/State.php:35 lib/Forms/Admin/State.php:56
+#: admin/index.php:449
+msgid "Edit State"
+msgstr "Modifica Stato"
+
+#: lib/Forms/Admin/Type.php:74
+msgid "Edit States"
+msgstr "Modifica Stati"
+
+#: lib/Forms/Admin/Type.php:35 admin/index.php:139
+msgid "Edit Type"
+msgstr "Modifica Tipo"
+
+#: lib/Forms/Admin/Version.php:36 lib/Forms/Admin/Version.php:59
+#: admin/index.php:811
+msgid "Edit Version"
+msgstr "Modifica Versione"
+
+#: lib/Query.php:194
+msgid "Edit _Permissions"
+msgstr "Modifica _Permessi"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "Modifica _Tipi"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Modifica o Elimina Attributi"
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "Modifica o Elimina Priorità"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Modifica o Elimina Code"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Modifica o Elimina Stati"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Modifica o Elimina Tipi"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Modifica o Elimina Versioni"
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "Modifica i permessi di questa coda"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "Modifica la responsabilità d'utente per questa coda"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "Modifica le versioni pr questa coda"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "Indirizzo email da notificare"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Indirizzo emai da rimuovere"
+
+#: lib/api.php:668
+msgid "Empty attachment"
+msgstr "Allegato assente"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr "Errore nell'elaborazione del messaggio:"
+
+#: query.php:175
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "Errore: forma di richiesta %s sconosciuta, aggiustarsi alle proprietà"
+
+#: lib/Query.php:50
+msgid "Exact Match"
+msgstr "Abbinamento esatto"
+
+#: runquery.php:91
+msgid "Execute Query"
+msgstr "Richiesta Eseguita"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "Campi su cui cercare"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Per ticket da queste code"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Per gli ticket"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "Opzioni Generali"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Vai a"
+
+#: lib/Forms/CreateTicket.php:231 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "Proprietari Gruppi"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:97 lib/Forms/Query.php:99
+msgid "Groups"
+msgstr "Gruppi"
+
+#: lib/api.php:884
+msgid "Hidden Comments"
+msgstr "Commento nasosto"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Storia"
+
+#: query.php:149
+msgid "Hoist"
+msgstr "Sollevare"
+
+#: lib/Whups.php:622 lib/Whups.php:629 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:170 config/prefs.php.dist:45
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Se vengono selezionati ticket senza proprietario, a chi deve essere mandata "
+"l'email?"
+
+#: query.php:150
+msgid "Insert And"
+msgstr "Inserisci And"
+
+#: lib/Forms/Query.php:18
+msgid "Insert Branch"
+msgstr "Inserisci Ramo"
+
+#: query.php:152
+msgid "Insert Not"
+msgstr "Inserisci Not"
+
+#: query.php:151
+msgid "Insert Or"
+msgstr "Inserisci O"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Coda invalida"
+
+#: lib/Whups.php:230 lib/api.php:659
+msgid "Invalid Ticket Id"
+msgstr "Id ticket invalido"
+
+#: lib/api.php:707
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Argomento invalido: Manca il nome o valore dell'attributo."
+
+#: lib/api.php:692
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+"Argomento invalido: Bisogna fornire un numero di ticket e un nuovo attributo."
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Coda invalida"
+
+#: lib/api.php:570
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Data dell'ticket fornita invalida: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "Mantieni un set di versioni per questa coda?"
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Ultimo>>"
+
+#: lib/Forms/Query.php:340
+msgid "Load Query"
+msgstr "Carica Richiesta"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Caricamento..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "MM/GG/AA"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/GG/AA OO:MM:SS"
+
+#: lib/Forms/Admin/Type.php:145
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Fai una copia di %s"
+
+#: lib/Forms/Query.php:270
+msgid "Match"
+msgstr "Abbina"
+
+#: lib/Forms/Query.php:43 lib/Forms/Query.php:129 lib/Forms/Query.php:271
+msgid "Match Operator"
+msgstr "Abbina Operatore"
+
+#: lib/Query.php:54
+msgid "Match Pattern"
+msgstr "Abbina modello"
+
+#: lib/Query.php:53
+msgid "Match Word"
+msgstr "Abbina Parola"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Tempo massimo, un ticket non è risolto"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Lista Menu"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Tempo Minimo, un ticket non è risolto"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "Più recente prima"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Sposta giù"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Sposta su"
+
+#: ticket/queue.php:180
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Ticket %d mosso in \"%s\""
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Mio %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Mio %s:: Aggiungi Contenuto"
+
+#: search.php:106 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Mie Richieste"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Mie Richieste"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Miei Ticket"
+
+#: lib/api.php:967
+msgid "My tickets by assignment date"
+msgstr "Miei ticket per data di assegnazione"
+
+#: lib/api.php:966
+msgid "My tickets by creation date"
+msgstr "Miei ticket per data di creazione"
+
+#: lib/api.php:968
+msgid "My tickets by due date"
+msgstr "Miei ticket per data di scadenza"
+
+#: lib/api.php:969
+msgid "My tickets by resolution date"
+msgstr "Mie ticket per data di risoluzione"
+
+#: lib/Forms/Query.php:319 lib/Forms/Query.php:351
+msgid "Name"
+msgstr "Nome"
+
+#: lib/Forms/Admin/Type.php:150
+msgid "Name of the cloned copy"
+msgstr "Nome della copia"
+
+#: lib/Query.php:184
+msgid "Ne_w Query"
+msgstr "_Nuova Richiesta"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Nuovo"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Nuovo Allegato"
+
+#: lib/Renderer/Comment.php:57 lib/Renderer/Comment.php:61
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Nuovo Allegato: %s"
+
+#: ticket/queue.php:31
+msgid "New Queue"
+msgstr "Nuova Coda"
+
+#: ticket/create.php:66 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Nuovo Ticket"
+
+#: ticket/type.php:30
+msgid "New Type"
+msgstr "Nuovo Tipo"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Prossimo>"
+
+#: ticket/delete.php:32 lib/Forms/Query.php:378
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/State.php:121
+#: lib/Forms/Admin/Type.php:131 lib/Forms/Admin/Version.php:96
+msgid "No"
+msgstr "No"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Nessuna priorità per questo ticket e nessuna priorità di default per il tipo "
+"di ticket \"%s\" specificato."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "Non è stata salvata nessuna richiesta."
+
+#: lib/Driver/sql.php:514 lib/Block/query.php:64
+msgid "No query to run"
+msgstr "Nessuna richiesta da caricare"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Nessuna coda disponibile."
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Nessuno stato per questo ticket e nessuno stato di deafult per il tipo di "
+"ticket \"%s\" specificato."
+
+#: reports.php:19
+msgid "No stats available."
+msgstr "Statistiche non disponibili."
+
+#: lib/Driver.php:516
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Nessun backend \"%s\" trovato"
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr "Non abbastanza viste \"%s\" trovate"
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Non hai assegnato nessun ticket"
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Nessun ticket assegnato!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Nessun ticket in coda."
+
+#: lib/Whups.php:671
+msgid "No tickets matched your search criteria."
+msgstr "Nessun ticket abbinato ai criteri di ricerca."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+"Nessun tipo per questo ticket e nessun tipo predefinito per la coda \"%s\" "
+"specificata."
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:88
+msgid "None"
+msgstr "Nessuno"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:23
+msgid "Not"
+msgstr "Not"
+
+#: query.php:80
+msgid "Not yet implemented."
+msgstr "Non ancora implementato"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Opzioni di Notifica"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Avvisa solo per cambiamenti di ticket fatti da altri utenti?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Avvisa solo per cambiamenti di ticket con commento"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Apri"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "Apri Ticket"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Apri Ticket dal Proprietario"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Aori Ticket dalla priorità"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Apri Ticket dalla Coda"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Apri Ticket dalla Richiesta"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Apri Ticket dallo Stato"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Apri Ticket dal Tipo"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Apri Ticket in %s"
+
+#: queue/index.php:43 queue/index.php:57 queue/rss.php:119
+#, php-format
+msgid "Open tickets in %s"
+msgstr "Apri ticket in %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Apri ticket in tutte le code"
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:22
+msgid "Or"
+msgstr "O"
+
+#: lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702 lib/Ticket.php:705
+#: lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958 lib/Whups.php:636
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:224
+#: lib/Forms/CreateTicket.php:242 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "Proprietari"
+
+#: lib/Whups.php:821
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Cancella definitivamente %s?"
+
+#: ticket/delete.php:50 ticket/deleteAttachment.php:20 ticket/queue.php:130
+#: ticket/type.php:73 ticket/update.php:21
+msgid "Permission Denied"
+msgstr "Permesso Negato"
+
+#: ticket/delete.php:39 lib/Forms/EditTicket.php:173
+msgid "Permission Denied."
+msgstr "Permesso Negato."
+
+#: query.php:32 runquery.php:37 lib/Forms/Query.php:388
+#, php-format
+msgid "Permission denied."
+msgstr "Permesso Negato"
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "Correggi gli indirizzi ambigui o non validi."
+
+#: lib/Forms/Admin/Type.php:82 lib/Forms/Admin/Type.php:128
+msgid "Priorities for this Type"
+msgstr "Priorità per questo Tipo"
+
+#: ticket/queue.php:116 ticket/type.php:65 lib/Ticket.php:610
+#: lib/Ticket.php:807 lib/Ticket.php:953 lib/Whups.php:624 lib/Whups.php:633
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:146
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:197
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Priotità"
+
+#: lib/Renderer/Comment.php:114
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Priorità ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Descrizione Priorità"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Nome Priorità"
+
+#: search.php:106
+msgid "Public Queries"
+msgstr "Richieste Pubbliche"
+
+#: query.php:156
+msgid "Query Builder"
+msgstr "Costruttore di richieste"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Parametri di Richiesta"
+
+#: runquery.php:72 lib/Block/query.php:3 lib/Block/query.php:51
+msgid "Query Results"
+msgstr "Risultati Richiesta"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Richieste da caricare"
+
+#: lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918 lib/Ticket.php:923
+#: lib/Whups.php:634 lib/Renderer/Query.php:94 lib/Forms/Query.php:180
+#: lib/Forms/Search.php:36 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "Coda"
+
+#: lib/Renderer/Comment.php:99
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Coda ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Contenuto Coda"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Descrizione Coda"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "Coda Email"
+
+#: lib/Forms/CreateTicket.php:33 lib/Forms/CreateTicket.php:44
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Nome Coda"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr "Slug Coda"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Riassunto Coda"
+
+#: ticket/queue.php:85 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:92
+msgid "Queue Version"
+msgstr "Versione Coda"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Coda/Tipo _Matrice"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Coda/Tipo Matrice"
+
+#: lib/api.php:175 lib/api.php:887
+msgid "Queues"
+msgstr "Code"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "_Ritorna ai Risultati di Ricerca"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questo attributo? Questo potrebbe causare problemi "
+"nei dati!"
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questa priorità? Questo potrebbe causare problemi "
+"nei dati!"
+
+#: lib/Forms/Query.php:379
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"Sicuro di voler eliminare questa richiesta? L'operazione non può essere "
+"annullata."
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questa coda? Questo potrebbe causare problemi nei "
+"dati!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questo stato? Questo potrebbe causare problemi nei "
+"dati!"
+
+#: ticket/delete.php:33
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Sicuro di voler eliminare questo ticket? L'ticket NON sarà archiviato e sarà "
+"perso."
+
+#: lib/Forms/Admin/Type.php:132
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questo tipo? Questo potrebbe causare problemi nei "
+"dati!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Sicuro di voler eliminare questa versione? Questo potrebbe causare problemi "
+"nei dati!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "Messaggi ricevuti"
+
+#: search.php:87
+msgid "Refine Search"
+msgstr "Raffina Ricerca"
+
+#: admin/index.php:1039
+msgid "Reminders were sent."
+msgstr "Ricorda dove spedito."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Elimina Utente"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Elimina Spettatore"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Elimina la sorgente"
+
+#: lib/Renderer/Comment.php:94
+msgid "Reply to this comment"
+msgstr "Rispondi a questo commento"
+
+#: reports.php:24
+msgid "Reports"
+msgstr "Rapporti"
+
+#: lib/Ticket.php:965 lib/Whups.php:635 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Richiedente"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "Attributo Richiesto?"
+
+#: lib/Driver.php:199 lib/Ticket.php:991 lib/Whups.php:640 lib/api.php:1010
+#: config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Risolto"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "Utente Responsabile"
+
+#: lib/Forms/EditTicket.php:143
+msgid "Restrict Comment to:"
+msgstr "Restringi Commenti a:"
+
+#: lib/Whups.php:275
+msgid "S_et Queue"
+msgstr "_Imposta Coda"
+
+#: lib/Query.php:202
+msgid "Sa_ve Query"
+msgstr "Sal_va Richiesta"
+
+#: templates/view/results.inc:36 lib/Forms/Query.php:317
+msgid "Save"
+msgstr "Salva"
+
+#: lib/Forms/Query.php:316
+msgid "Save Query"
+msgstr "Salva Richiesta"
+
+#: templates/view/results.inc:30
+msgid "Save these results as: "
+msgstr "Salva questi risultati come:"
+
+#: search.php:55 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Cerca"
+
+#: lib/Forms/Query.php:274
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Cerca Attributo %s"
+
+#: lib/Forms/Query.php:277
+msgid "Search Attribute"
+msgstr "Cerca Attributo"
+
+#: lib/Forms/Query.php:46 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Cerca Commenti"
+
+#: lib/Forms/Query.php:44
+msgid "Search Owners"
+msgstr "Cerca Proprietari"
+
+#: lib/Forms/Query.php:45
+msgid "Search Requester"
+msgstr "Cerca Richiedenti"
+
+#: search.php:79
+msgid "Search Results"
+msgstr "Risultati Ricerca"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Risultati Ricerca: %s of %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Riassunto Ricerca"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Cerca ticket"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "Seleziona le fonti della rubrica per aggiungere e cercare indirizzi."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr ""
+"Scegli l'ordine in cui ricercare le rubriche quando espandi gli indirizzi"
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr "Scegli la visualizzazione da mostrare dopo l'accesso:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Rubriche Selezionate:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "_Spedisci Promemoria"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "Spedisci Promemoria"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr "Spedisci solo per questa lista di Id di ticket"
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Imposta Priorità di Default"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Imposta Stato di Default"
+
+#: ticket/queue.php:200 ticket/queue.php:209 ticket/queue.php:221
+msgid "Set Queue - Step 1"
+msgstr "Imposta Coda - Passo 1"
+
+#: ticket/queue.php:201 ticket/queue.php:210
+msgid "Set Queue - Step 2"
+msgstr "Imposta Coda - Passo 2"
+
+#: ticket/queue.php:211
+msgid "Set Queue - Step 3"
+msgstr "Imposta Coda - Passo 3"
+
+#: ticket/queue.php:188
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Imposta Coda per %s"
+
+#: lib/api.php:906
+msgid "Set Requester"
+msgstr "Imposta Richiedente"
+
+#: ticket/type.php:138 ticket/type.php:147
+msgid "Set Type - Step 1"
+msgstr "Imposta Tipo - Passo 1"
+
+#: ticket/type.php:139
+msgid "Set Type - Step 2"
+msgstr "Imposta Tipo - Passo 2"
+
+#: ticket/type.php:126
+#, php-format
+msgid "Set Type for %s"
+msgstr "Imposta Tipo per %s"
+
+#: lib/Whups.php:280
+msgid "Set _Type"
+msgstr "Imposta _Tipo"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Mostra commenti in ordine cronologico, o prima il più recente?"
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "Mostra Id ticket nella vista del sommario?"
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Mostra ticket richiesti nella vista del sommario?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Semplice Rapporto HTML"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"Permetti l'accesso diretto alla coda aperta dagli ticket visitati: %s. <br /"
+"> I nomi possono contenere solo lettere, numeri o il carattere _ "
+"(underscore) "
+
+#: templates/view/results.inc:51 templates/view/results.inc:55
+#, php-format
+msgid "Sort by %s"
+msgstr "Ordina per %s"
+
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+#: lib/Forms/CreateTicket.php:135 lib/Forms/CreateTicket.php:174
+msgid "Spam protection"
+msgstr "Protezione Spam"
+
+#: ticket/queue.php:115 ticket/type.php:64 lib/Ticket.php:609
+#: lib/Ticket.php:806 lib/Ticket.php:949 lib/Whups.php:625 lib/Whups.php:631
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:192 config/prefs.php.dist:47
+msgid "State"
+msgstr "Stato"
+
+#: lib/Renderer/Comment.php:109
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Stato ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Stato Categoria"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Descrizione Stato"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Nome Stato"
+
+#: lib/Forms/Admin/Type.php:72 lib/Forms/Admin/Type.php:124
+msgid "States for this Type"
+msgstr "Stato per questo tipo"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Stato"
+
+#: ticket/create.php:145
+msgid "Submit"
+msgstr "Invio"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Clonazione di %s in %s eseguita con successo"
+
+#: ticket/type.php:117
+msgid "Successfully changed ticket type."
+msgstr "Camnio tipo di ticket eseguito con successo."
+
+#: ticket/delete.php:29 lib/Ticket.php:616 lib/Ticket.php:643
+#: lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812 lib/Ticket.php:821
+#: lib/Ticket.php:912 lib/Whups.php:623 lib/Whups.php:630
+#: lib/Renderer/Query.php:89 lib/Forms/CreateTicket.php:151
+#: lib/Forms/EditTicket.php:58 config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Breve Riassunto"
+
+#: lib/Renderer/Comment.php:50
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Sommario ⇒ %s"
+
+#: lib/Forms/Search.php:39
+msgid "Summary like"
+msgstr "Sommario tipo"
+
+#: lib/Renderer/Comment.php:78
+#, php-format
+msgid "Taken from %s"
+msgstr "Preso da %s"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Testo"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1230
+msgid "That queue slug is already taken. Please select another."
+msgstr "Quella coda slug è già presa. Per favore sceglierne un'altra."
+
+#: lib/Forms/CreateTicket.php:128
+msgid "The Requester's Email Address"
+msgstr "Indirizzo Email richiedente"
+
+#: view.php:55 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+"VFS backend necessita di essere configurato per abilitare l'upload di "
+"allegati."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "L'attributo \"%s\" è stato aggiunto a %s."
+
+#: admin/index.php:1005
+msgid "The attribute has been deleted."
+msgstr "L'attributo è stato eliminato."
+
+#: admin/index.php:973
+msgid "The attribute has been modified."
+msgstr "L'attributo è stato modificato."
+
+#: admin/index.php:1014
+msgid "The attribute was not deleted."
+msgstr "L'attributo non è stato eliminato."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "La priorità di Default è stata impostata."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "Lo stato di Default è stato impostato."
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "La priorità \"%s\" è stata aggiunta a %s."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "La priorità è stata eliminata."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "La priorità è stata modificata."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "La priorità non era eliminata."
+
+#: lib/Forms/Query.php:392
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "La richiesta \"%s\" non può essere elimata: %s"
+
+#: lib/Forms/Query.php:394
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "La richiesta \"%s\" è stata eliminata."
+
+#: lib/Forms/Query.php:359
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "La richiesta non può essere caricata:"
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "la coda \"%s\" è stata creata."
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "La coda è stata eliminata."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "La coda è stata eliminata."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "La coda non è stata eliminata."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Il file richiesto non esiste nell'allegato zip."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Il template richiesto non esiste."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Lo stato \"%s\" è stato aggiunto a %s."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "Lo stato è stato eliminato."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "Lo stato è stato modificato."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "lo stato non è stato eliminato."
+
+#: ticket/delete.php:77
+msgid "The ticket was not deleted."
+msgstr "L'ticket non è stato eliminato."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Il tipo \"%s\" è stato modificato."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "Il tipo è stato eliminato."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "Il tipo non è stato eliminato"
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "la versione \"%s\" è stata aggiunta a %s."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "La versione è stata eliminata."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "La versione è stata modificata."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "la versione non è stata eliminata."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "Non ci sono tipi di attributi da modificare"
+
+#: lib/Forms/Query.php:277
+msgid "There are no attributes defined."
+msgstr "Non ci sono attributi definiti."
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr "Non ci sono ticket aperti."
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr "Non ci sono priorità da modificare"
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "Non ci sono code disponibili."
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "Non ci sono code da modificare"
+
+#: lib/Forms/CreateTicket.php:34
+msgid "There are no queues which you can create tickets in."
+msgstr "Non ci sono code nelle quali è possibile creare ticket."
+
+#: lib/Forms/Search.php:34
+msgid "There are no queues which you can search."
+msgstr "Non ci sono code che puoi cercare."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "Non ci sono stati da modificare"
+
+#: lib/Forms/CreateTicket.php:71
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Non ci sono tipi di ticket associati con questa coda; fino a che non ci "
+"saranno non si potrà creare nessun ticket in questa coda."
+
+#: lib/Forms/Admin/Type.php:43
+msgid "There are no types to edit"
+msgstr "Non ci sono tipi da modificare."
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "Non ci sono utenti responsabili per questa coda."
+
+#: lib/Forms/CreateTicket.php:241
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Non ci sono utenti ai quali può essere assegnato questo ticket."
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "Non ci sono versioni da modificare"
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Non ci sono dati per questo rapporto."
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+"Si è verificato un errore aggiungendo \"%s\" alla lista responsabile per \"%s"
+"\":"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "Si è verificato un errore nella creazione dell'attributo:"
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "Si è verificato un errore nella creazione della priorità:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "Si è verificato un errore nella creazione della coda:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "Si è verificato un errore nella creazione dello stato:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "Si è verificato un errore nella creazione della versione:"
+
+#: admin/index.php:1009
+msgid "There was an error deleting the attribute:"
+msgstr "Si è verificato un errore durante l'eliminazione dell'attributo:"
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "Si è verificato un errore durante l'eliminazione della priorità:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "Si è verificato un errore durante l'eliminazione della coda:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "Si è verificato un errore durante l'eliminazione dello stato:"
+
+#: ticket/delete.php:74
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Si è verificato un errore durante l'eliminazione dell'ticket: %s"
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "Si è verificato un errore durante l'eliminazione del tipo:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "Si è verificato un errore durante l'eliminazione della versione:"
+
+#: admin/index.php:981
+msgid "There was an error editing the attribute:"
+msgstr "Si è verificato un errore durante la modifica dell'attributo:"
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "Si è verificato un errore durante la modifica della priorità:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "Si è verificato un errore durante la modifica della coda:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "Si è verificato un errore durante la modifica dello stato:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "Si è verificato un errore durante la modifica della versione:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr ""
+"Si è verificato un errore durante la catalogazione degli utenti: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr ""
+"Si è verificato un errore durante la localizzazione degli ticket in questa "
+"coda:"
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "Si è verificato un errore durante la modifica del tipo:"
+
+#: search.php:72
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Si è verificato un errore durante la ricerca: %s"
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+"Si è verificato un errore durante la rimozione di \"%s\" dalla lista dei "
+"responsabili di \"%s\":"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr ""
+"Si è verificato un errore durante l'impostazione delle priorità di default:"
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr ""
+"Si è verificato un errore durante l'impostazione dello stato di default:"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+"Questo indirizzo email sarà usato per mandare notificazioni da qualsiasi "
+"ticket della coda."
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Questo non è un risultato di ricerca template."
+
+#: ticket/queue.php:80 lib/Forms/CreateTicket.php:87
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Questa coda richiede che venga specificata una versione, non c'è nessuna "
+"versione associata con essa. Fino a che una versino non sarà creata per "
+"questa coda, non sarà possibile creare ticket."
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Ticket"
+
+#: ticket/delete.php:70
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Ticket %d è stato eliminato."
+
+#: lib/api.php:938
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Ticket %s - %s"
+
+#: lib/Driver/sql.php:1005
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "L'ticket %s non è stato trovato."
+
+#: search.php:98
+msgid "Ticket Search"
+msgstr "Cerca ticket"
+
+#: lib/Forms/CreateTicket.php:141
+msgid "Ticket State"
+msgstr "Stato ticket"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Statistiche ticket"
+
+#: lib/Forms/CreateTicket.php:79
+msgid "Ticket Type"
+msgstr "Tipo ticket"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "Tipo ticket associato a questa coda"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "URL ticket: %s"
+
+#: ticket/update.php:93
+msgid "Ticket Updated"
+msgstr "Ticket aggiornato"
+
+#: lib/api.php:959
+msgid "Tickets"
+msgstr "Ticket"
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"Per selezioni multiple, cliccare tenendo premuto CTRL (PC) o Command (Mac)."
+
+#: ticket/queue.php:88 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Whups.php:632 lib/Renderer/Query.php:108
+#: lib/Forms/Query.php:173 config/prefs.php.dist:48
+msgid "Type"
+msgstr "Tipo"
+
+#: lib/Renderer/Comment.php:104
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tipo ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:67
+#: lib/Forms/Admin/Type.php:120
+msgid "Type Description"
+msgstr "Descrizione Tipo"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:46
+#: lib/Forms/Admin/Type.php:64 lib/Forms/Admin/Type.php:117
+msgid "Type Name"
+msgstr "Nome Tipo"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Non assegnato"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Ticket non assegnati"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Ticket non assegnato"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Non confermato"
+
+#: lib/Renderer/Query.php:141 lib/Renderer/Query.php:181
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Tipo di nodo %s non conosciuto"
+
+#: lib/api.php:896
+msgid "Update"
+msgstr "Aggiorna"
+
+#: ticket/update.php:107
+#, php-format
+msgid "Update %s"
+msgstr "Aggiorna %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Update associazioni"
+
+#: lib/Ticket.php:981 lib/Whups.php:638
+msgid "Updated"
+msgstr "Updated"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Updated da"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "Utente"
+
+#: lib/Forms/Query.php:42
+msgid "User ID"
+msgstr "Nome utente"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "Utenti responsabili per questa coda"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "Utenti responsabili per questa coda."
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:184 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Versione"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Descrizione Versione"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Nome Versione"
+
+#: ticket/queue.php:49 ticket/type.php:42 lib/Forms/AddComment.php:38
+msgid "Viewable only by members of"
+msgstr "Visualizzabile solo dai membri di"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Guarda questo ticket"
+
+#: ticket/watch.php:77
+#, php-format
+msgid "Watchers for %s"
+msgstr "Spettatori per %s"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "Giorno settimana Giorno Mese"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Giorno settimana Giorno Mese OO:MM:SS TZ"
+
+#: ticket/delete.php:32 lib/Forms/Query.php:378
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/State.php:121
+#: lib/Forms/Admin/Type.php:131 lib/Forms/Admin/Version.php:96
+msgid "Yes"
+msgstr "Si"
+
+#: view.php:51
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "Non sei autorizzato a vedere l'ticket %d."
+
+#: lib/Driver/sql.php:1014
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Non hai permesso di accedere a questo ticket (%s)."
+
+#: lib/api.php:548
+msgid "You do not have permission to update this ticket."
+msgstr "Non hai permesso di aggiornare questo ticket."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Non hai delle richieste aperte."
+
+#: lib/Forms/Query.php:348 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "Non hai delle richieste salvate."
+
+#: lib/Whups.php:665
+msgid "You must select at least one queue to send reminders for."
+msgstr "Devi selezionare come minimo una coda per mandare promemoria."
+
+#: lib/Forms/AddComment.php:18 lib/Forms/CreateTicket.php:131
+msgid "Your Email Address"
+msgstr "Tuo Indirizzo Email"
+
+#: ticket/create.php:59
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Il tuo Id ticket è %s. Una persona appropriata è stata notificata di questa "
+"richiesta."
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ Non è possibile aprire il corpo del messaggio. ]"
+
+#: lib/Whups.php:729
+msgid "_Admin"
+msgstr "_Amministratore"
+
+#: lib/Whups.php:267
+msgid "_Comment"
+msgstr "_Commento"
+
+#: lib/Whups.php:285
+msgid "_Delete"
+msgstr "_Elimina"
+
+#: lib/Query.php:205
+msgid "_Delete Query"
+msgstr "E_limina Richiesta"
+
+#: lib/Query.php:186
+msgid "_Edit Query"
+msgstr "_Modifica Richiesta"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "_Modifica Code"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "V_ai a"
+
+#: query.php:140
+msgid "_Group Criteria"
+msgstr "_Criterio Gruppo"
+
+#: lib/Whups.php:261
+msgid "_History"
+msgstr "_Storia"
+
+#: lib/Query.php:199
+msgid "_Load Query"
+msgstr "_Carica Richiesta"
+
+#: lib/Whups.php:720
+#, php-format
+msgid "_My %s"
+msgstr "_Mio %s"
+
+#: lib/Whups.php:723
+msgid "_New Ticket"
+msgstr "_Nuovo Ticket"
+
+#: query.php:138
+msgid "_Property Criteria"
+msgstr "_Proprietà criterio"
+
+#: lib/Whups.php:724
+msgid "_Query Builder"
+msgstr "_Costruttore di Richieste"
+
+#: lib/Whups.php:725
+msgid "_Reports"
+msgstr "_Rapporti"
+
+#: lib/Whups.php:722
+msgid "_Search"
+msgstr "_Cerca"
+
+#: query.php:142
+msgid "_Text Criteria"
+msgstr "Criterio di _Testo"
+
+#: lib/Whups.php:263
+msgid "_Update"
+msgstr "_Aggiorna"
+
+#: query.php:139
+msgid "_User Criteria"
+msgstr "Criterio _Utente"
+
+#: lib/Whups.php:271
+msgid "_Watch"
+msgstr "_Guarda"
+
+#: lib/Renderer/Query.php:161
+msgid "contains (case insensitive) substring"
+msgstr "contiene (case insensitive) sottostringhe"
+
+#: lib/Renderer/Query.php:165
+msgid "contains (case sensitive) substring"
+msgstr "contiene (case sensitive) sottostringhe"
+
+#: lib/Renderer/Query.php:169
+msgid "contains the word"
+msgstr "contiene la parola"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "utente corrente"
+
+#: lib/api.php:947
+msgid "estimated time"
+msgstr "tempo stimato"
+
+#: lib/Renderer/Query.php:157
+msgid "is"
+msgstr "è"
+
+#: lib/Renderer/Query.php:149
+msgid "is greater than"
+msgstr "è più grande di"
+
+#: lib/Renderer/Query.php:153
+msgid "is less than"
+msgstr "è meno di"
+
+#: lib/Renderer/Query.php:173
+msgid "matches the pattern"
+msgstr "abbina il disegno"
--- /dev/null
+# Lithuanian translations for Whups package.
+# Copyright 2007-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Vilius Sumskas <vilius@lnk.lt>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2007-11-23 16:44+0200\n"
+"PO-Revision-Date: 2007-11-23 16:45+0200\n"
+"Last-Translator: Vilius Sumskas <vilius@lnk.lt>\n"
+"Language-Team: Lithuanian <vilius@lnk.lt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: admin/index.php:605
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" jau nebeatsakingas uþ \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "Stebi %d asmenø, %d asmenys yra atsakingi"
+
+#: lib/Driver.php:368
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) raðë:"
+
+#: admin/index.php:569
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s nuo ðiol atsakingas uþ \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s dienos"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s gaus praneðimus apie bilieto atnaujinimà."
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s daugiau nebegaus praneðimø apie bilieto atnaujinimà."
+
+#: admin/index.php:82
+msgid "- Stage 1"
+msgstr "- 1 þingsnis"
+
+#: admin/index.php:87
+msgid "- Stage 2"
+msgstr "- 2 þingnis"
+
+#: templates/prevnext.inc:12
+msgid "<<First"
+msgstr "<<Pirmas"
+
+#: templates/prevnext.inc:13
+msgid "<Prev"
+msgstr "<Ankst"
+
+#: view.php:66
+#, php-format
+msgid "Access denied to %s"
+msgstr "Neturite teisiø á %s."
+
+#: lib/Forms/Admin.php:619
+msgid "Add Attribute"
+msgstr "Pridëti atributà"
+
+#: lib/Query.php:809
+msgid "Add Attribute Criterion"
+msgstr "Pridëti atributo kriterijø"
+
+#: mybugs.php:53
+msgid "Add Content"
+msgstr "Pridëtá turiná"
+
+#: query.php:211
+msgid "Add Criterion"
+msgstr "Pridëti kriterijø"
+
+#: lib/Query.php:640
+msgid "Add Group Criterion"
+msgstr "Pridëti grupës kriterijø"
+
+#: lib/Forms/Admin.php:445
+msgid "Add Priority"
+msgstr "Pridëti svarbà"
+
+#: lib/Query.php:717
+msgid "Add Property Criterion"
+msgstr "Pridëti savybës kriterijø"
+
+#: lib/Forms/Admin.php:20 lib/Forms/Admin.php:21
+msgid "Add Queue"
+msgstr "Sukurti eilæ"
+
+#: lib/Forms/Admin.php:355
+msgid "Add State"
+msgstr "Pridëti bûsenà"
+
+#: lib/Query.php:675
+msgid "Add Text Criterion"
+msgstr "Pridëti teksto kriterijø"
+
+#: lib/Forms/Admin.php:208 lib/Forms/Admin.php:209
+msgid "Add Type"
+msgstr "Sukurti tipà"
+
+#: admin/index.php:82 admin/index.php:87
+#, php-format
+msgid "Add Type %s"
+msgstr "Sukurti tipà %s"
+
+#: lib/Query.php:589
+msgid "Add User Criterion"
+msgstr "Pridëti vartotojo kriterijø"
+
+#: lib/Forms/Admin.php:139
+msgid "Add Users"
+msgstr "Pridëti vartotojus"
+
+#: lib/Forms/Admin.php:531
+msgid "Add Version"
+msgstr "Pridëti versijà"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Pridëti stebëtojà"
+
+#: ticket/create.php:50
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Nepavyko sukurti bilieto: %s."
+
+#: lib/api.php:821 admin/index.php:55
+msgid "Administration"
+msgstr "Valdymas"
+
+#: lib/Query.php:570 templates/queryrenderer.inc:90
+msgid "And"
+msgstr "Ir"
+
+#: lib/Query.php:723 lib/Query.php:730 lib/Query.php:735 lib/Query.php:742
+#: lib/Query.php:747 lib/Forms/Search.php:30
+msgid "Any"
+msgstr "Bet kuri"
+
+#: ticket/type.php:45 ticket/queue.php:44 lib/Forms/AddComment.php:37
+#: lib/Forms/EditTicket.php:96
+msgid "Any Group"
+msgstr "Bet kuri grupë"
+
+#: config/prefs.php.dist:55
+msgid "Ascending"
+msgstr "Didëjimo tvarka"
+
+#: lib/api.php:836
+msgid "Assign"
+msgstr "Paskirti"
+
+#: lib/Whups.php:498 lib/Driver.php:165 lib/Ticket.php:678 lib/api.php:931
+#: config/prefs.php.dist:44
+msgid "Assigned"
+msgstr "Paskirta"
+
+#: templates/comment.inc:64
+#, php-format
+msgid "Assigned to %s"
+msgstr "Paskirta %s"
+
+#: admin/index.php:887
+msgid "Associations updated successfully."
+msgstr "Sàsajos sëkmingai atnaujintos."
+
+#: lib/Forms/CreateTicket.php:121 lib/Forms/AddComment.php:24
+#: lib/Forms/EditTicket.php:85
+msgid "Attachment"
+msgstr "Prikabintas failas"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Prikabintas failas %s iðtrintas."
+
+#: lib/Ticket.php:405
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Prikabintas failas %s nerastas."
+
+#: lib/Ticket.php:681
+msgid "Attachments"
+msgstr "Prikabinti failai"
+
+#: query.php:142
+msgid "Attri_bute Criteria"
+msgstr "Atributo kriterijos"
+
+#: lib/Forms/Admin.php:623 lib/Forms/Admin.php:673 lib/Forms/Admin.php:696
+msgid "Attribute Description"
+msgstr "Atributo apraðymas"
+
+#: lib/Forms/Admin.php:622 lib/Forms/Admin.php:651 lib/Forms/Admin.php:670
+#: lib/Forms/Admin.php:693
+msgid "Attribute Name"
+msgstr "Atributo pavadinimas"
+
+#: lib/Forms/Admin.php:284
+msgid "Attributes for this Type"
+msgstr "Atributai ðiam tipui"
+
+#: config/prefs.php.dist:117
+msgid "Autolink to other tickets in comments?"
+msgstr "Komentaruose automatiðkai generuoti nuorodas á kitus bilietus?"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Vidutinis bilieto uþdarymo dienø skaièius pagal savininkà"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Vidutinis bilieto uþdarymo dienø skaièius pagal eilæ"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Vidutinis bilieto uþdarymo dienø skaièius pagal uþsakovà"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Vidutinis neiðspræsto bilieto laikas"
+
+#: lib/Query.php:575
+msgid "Branch Type"
+msgstr "Skyriaus tipas"
+
+#: lib/Query.php:51
+msgid "Case Insensitive Substring"
+msgstr "Teksto gabaliukas nekreipiant dëmesio á didþiasias/maþiasias raides"
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Keisti"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Vaizdavimo nustatymø, tokiø kaip, paieðkos rezultatø rûðiavimas, keitimas."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "El. paðto perspëjimø apie bilietø bûsenà nustatymø keitimas."
+
+#: query.php:145
+msgid "Choose Action:"
+msgstr "Pasirinkite veiksmà:"
+
+#: lib/Query.php:221
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Pasirinkite naujà uþklausà ir netrinkite pagrindinës ðaknies."
+
+#: lib/Forms/CreateTicket.php:37 lib/Forms/CreateTicket.php:64
+msgid "Choose:"
+msgstr "Pasirinkite:"
+
+#: config/prefs.php.dist:127
+msgid "Chronological (oldest first)"
+msgstr "Chronologiðkai (pirma seniausi)"
+
+#: lib/Forms/Admin.php:335
+msgid "Clone"
+msgstr "Kopijuoti"
+
+#: lib/Forms/Admin.php:341
+msgid "Clone Description"
+msgstr "Kopijuoti apraðymà"
+
+#: lib/Forms/Admin.php:223 admin/index.php:121
+msgid "Clone Type"
+msgstr "Kopijuoti tipà"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Kableliais atskirtos reikðmës (CSV failas)"
+
+#: ticket/type.php:35 ticket/queue.php:32 lib/Forms/AddComment.php:23
+#: lib/Forms/EditTicket.php:86 templates/queryrenderer.inc:101
+#: templates/comment.inc:118
+msgid "Comment"
+msgstr "Komentaras"
+
+#: ticket/comment.php:69
+msgid "Comment added"
+msgstr "Komentaras áraðytas"
+
+#: ticket/comment.php:34
+#, php-format
+msgid "Comment on %s"
+msgstr "%s komentaras"
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr "Komentatorius"
+
+#: lib/Forms/Admin.php:339
+#, php-format
+msgid "Copy of %s"
+msgstr "%s kopija"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Nepavyko iðarchyvuoti Zip archyvo."
+
+#: lib/Query.php:645
+msgid "Could not find any groups."
+msgstr "Nepavyko rasti jokiø grupiø."
+
+#: lib/Mail.php:88
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Nepavyko rasti bilieto \"%s\"."
+
+#: lib/Forms/Admin.php:274
+msgid "Create Default Priorities"
+msgstr "Sukurti standartines svarbos reikðmes"
+
+#: lib/Forms/Admin.php:264
+msgid "Create Default States"
+msgstr "Sukurti standartines bûsenø reikðmes"
+
+#: config/prefs.php.dist:68
+msgid "Create Ticket"
+msgstr "Bilieto kûrimas"
+
+#: lib/Forms/CreateTicket.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Bilieto kûrimas - 1 þingsnis"
+
+#: lib/Forms/CreateTicket.php:55
+msgid "Create Ticket - Step 2"
+msgstr "Bilieto kûrimas - 2 þingsnis"
+
+#: lib/Forms/CreateTicket.php:95
+msgid "Create Ticket - Step 3"
+msgstr "Bilieto kûrimas - 3 þingsnis"
+
+#: lib/Forms/CreateTicket.php:161
+msgid "Create Ticket - Step 4"
+msgstr "Bilieto kûrimas - 4 þingsnis"
+
+#: lib/Whups.php:496 lib/Ticket.php:675 lib/api.php:936
+#: config/prefs.php.dist:43
+msgid "Created"
+msgstr "Sukurta"
+
+#: lib/Ticket.php:490 lib/Ticket.php:506
+msgid "Created By"
+msgstr "Autorius"
+
+#: query.php:202 query.php:218
+msgid "Current Query"
+msgstr "Dabartinë uþklausa"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr "Dabartinis bilieto tipas"
+
+#: lib/Ticket.php:553
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "NEATSAKYKITE Á ÐÁ LAIÐKÀ. ÐIS EL. PAÐTO ADRESAS NËRA STEBIMAS."
+
+#: config/prefs.php.dist:99
+msgid "Date/Time format for search results"
+msgstr "Paieðkos rezultatø datos/laiko formatas"
+
+#: config/prefs.php.dist:46
+msgid "Default sorting criteria:"
+msgstr "Standartinis rûðiavimo kriterijus:"
+
+#: config/prefs.php.dist:57
+msgid "Default sorting direction:"
+msgstr "Standartinë rûðiavimo kryptis:"
+
+#: query.php:146
+msgid "Delete"
+msgstr "Iðtrinti"
+
+#: lib/Whups.php:678 lib/Whups.php:679
+#, php-format
+msgid "Delete %s"
+msgstr "Iðtrinti %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Iðtrinti %s?"
+
+#: lib/Forms/Admin.php:635 admin/index.php:777
+msgid "Delete Attribute"
+msgstr "Iðtrinti atributà"
+
+#: lib/Forms/Admin.php:685
+msgid "Delete Attribute Confirmation"
+msgstr "Atributo trynimo patvirtinimas"
+
+#: lib/Forms/Admin.php:461 admin/index.php:487
+msgid "Delete Priority"
+msgstr "Iðtrinti svarbà"
+
+#: lib/Forms/Admin.php:507
+msgid "Delete Priority Confirmation"
+msgstr "Svarbo trynimo patvirtinimas"
+
+#: lib/Query.php:924
+msgid "Delete Query?"
+msgstr "Iðtrinti uþklausà?"
+
+#: lib/Forms/Admin.php:37 admin/index.php:269
+msgid "Delete Queue"
+msgstr "Iðtrinti eilæ"
+
+#: lib/Forms/Admin.php:114
+msgid "Delete Queue Confirmation"
+msgstr "Eilës trynimo patvirtinimas"
+
+#: lib/Forms/Admin.php:372 admin/index.php:377
+msgid "Delete State"
+msgstr "Iðtrinti bûsenà"
+
+#: lib/Forms/Admin.php:421
+msgid "Delete State Confirmation"
+msgstr "Bûsenos trynimo patvirtinimas"
+
+#: lib/Forms/Admin.php:223 admin/index.php:115
+msgid "Delete Type"
+msgstr "Iðtrinti tipà"
+
+#: lib/Forms/Admin.php:298
+msgid "Delete Type Confirmation"
+msgstr "Tipo trynimo patvirtinimas"
+
+#: lib/Forms/Admin.php:547 admin/index.php:666
+msgid "Delete Version"
+msgstr "Iðtrinti versijà"
+
+#: lib/Forms/Admin.php:593
+msgid "Delete Version Confirmation"
+msgstr "Vertijos trynimo patvirtinimas"
+
+#: lib/Ticket.php:495 lib/Ticket.php:544
+msgid "Deleted Attachment"
+msgstr "Prikabintas failas iðtrintas."
+
+#: templates/comment.inc:60
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Prikabintas failas iðtrintas: %s"
+
+#: config/prefs.php.dist:56
+msgid "Descending"
+msgstr "Maþëjimo tvarka"
+
+#: lib/Forms/CreateTicket.php:122
+msgid "Description"
+msgstr "Apraðymas"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Vaizdavimo nustatymai"
+
+#: lib/Whups.php:670
+msgid "Download"
+msgstr "Atsisiøsti"
+
+#: lib/Ticket.php:485 lib/Ticket.php:599 lib/Ticket.php:676 lib/api.php:940
+msgid "Due"
+msgstr "Atlikti iki"
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Atlikti iki ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:119 lib/Forms/EditTicket.php:31
+msgid "Due Date"
+msgstr "Atlikimo data"
+
+#: lib/Query.php:198
+msgid "E_xecute Query"
+msgstr "Vykdyti uþklausà"
+
+#: query.php:147
+msgid "Edit"
+msgstr "Keisti"
+
+#: lib/Forms/Admin.php:66 lib/Forms/Admin.php:248
+#, php-format
+msgid "Edit %s"
+msgstr "Redaguoti %s"
+
+#: lib/Forms/Admin.php:635 lib/Forms/Admin.php:662 admin/index.php:772
+msgid "Edit Attribute"
+msgstr "Keisti atributà"
+
+#: lib/Forms/Admin.php:286
+msgid "Edit Attributes"
+msgstr "Keisti atributus"
+
+#: lib/Forms/Admin.php:272
+msgid "Edit Priorities"
+msgstr "Keisti svarbas"
+
+#: lib/Forms/Admin.php:461 lib/Forms/Admin.php:484 admin/index.php:482
+msgid "Edit Priority"
+msgstr "Keisti svarbà"
+
+#: lib/Forms/Admin.php:37 lib/Forms/Admin.php:40 admin/index.php:263
+msgid "Edit Queue"
+msgstr "Keisti eilæ"
+
+#: lib/Forms/Admin.php:39
+msgid "Edit Queues"
+msgstr "Keisti eiles"
+
+#: lib/Forms/Admin.php:372 lib/Forms/Admin.php:395 admin/index.php:372
+msgid "Edit State"
+msgstr "Keisti bûsenà"
+
+#: lib/Forms/Admin.php:262
+msgid "Edit States"
+msgstr "Keisti bûsenas"
+
+#: lib/Forms/Admin.php:223 admin/index.php:109
+msgid "Edit Type"
+msgstr "Keisti tipà"
+
+#: lib/Forms/Admin.php:547 lib/Forms/Admin.php:570 admin/index.php:661
+msgid "Edit Version"
+msgstr "Keisti versijà"
+
+#: lib/Query.php:194
+msgid "Edit _Permissions"
+msgstr "Keisti teises"
+
+#: admin/index.php:35
+msgid "Edit _Types"
+msgstr "Keisti tipus"
+
+#: lib/Forms/Admin.php:634
+msgid "Edit or Delete Attributes"
+msgstr "Atributø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:460
+msgid "Edit or Delete Priorities"
+msgstr "Svarbø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:36
+msgid "Edit or Delete Queues"
+msgstr "Eiliø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:371
+msgid "Edit or Delete States"
+msgstr "Bûsënø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:222
+msgid "Edit or Delete Types"
+msgstr "Tipø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:546
+msgid "Edit or Delete Versions"
+msgstr "Versijø keitimas arba trynimas"
+
+#: lib/Forms/Admin.php:101
+msgid "Edit the permissions on this queue"
+msgstr "Keisti ðios eilës teises"
+
+#: lib/Forms/Admin.php:96
+msgid "Edit the users responsible for this queue"
+msgstr "Keisti vartotojus atsakingus uþ ðià eilæ"
+
+#: lib/Forms/Admin.php:83
+msgid "Edit the versions for this queue"
+msgstr "Keisti ðios eilës versijas"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "El. paðto adresas perspëjimui"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "El. paðto adresas, kurá reikia iðtrinti"
+
+#: query.php:174
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "Klaida: neþinoma uþklausos forma %s, naudojamos standartinës reikðmës"
+
+#: lib/Query.php:50
+msgid "Exact Match"
+msgstr "Tikslus atitikmuo"
+
+#: runquery.php:73 runquery.php:87
+msgid "Execute Query"
+msgstr "Vykdyti uþklausà"
+
+#: lib/Forms/Admin.php:723
+msgid "For tickets from these queues"
+msgstr "Bilietams ðiose eilëse"
+
+#: lib/Forms/Admin.php:727
+msgid "For tickets which are"
+msgstr "Bilietams, kurie yra"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Rodyti"
+
+#: lib/Forms/CreateTicket.php:192 lib/Forms/EditTicket.php:79
+msgid "Group Owners"
+msgstr "Grupës savininkas"
+
+#: lib/Query.php:646 lib/Query.php:648 templates/queryrenderer.inc:98
+msgid "Groups"
+msgstr "Grupës"
+
+#: lib/api.php:824
+msgid "Hidden Comments"
+msgstr "Paslëpti komentarai"
+
+#: ticket/index.php:46
+msgid "History"
+msgstr "Istorija"
+
+#: query.php:148
+msgid "Hoist"
+msgstr "Pakëlimas"
+
+#: lib/Whups.php:481 lib/Whups.php:488 lib/Query.php:719
+#: templates/queryrenderer.inc:96 config/prefs.php.dist:36
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Search.php:43
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+"Jeigu nepasirinksite nei vienos kategorijos, bilietø kategorijos nebus "
+"filtruojamos."
+
+#: lib/Forms/Search.php:46
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr "Jeigu nepasirinksite nei vieno tipo, bilietø tipai nebus filtruojami."
+
+#: lib/Forms/Admin.php:730
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Jeigu pasirinksite bilietà, kuris neturi savininko, kam tokiu atveju siøsti "
+"el. laiðkus?"
+
+#: query.php:149
+msgid "Insert And"
+msgstr "Áterpti Ir"
+
+#: lib/Query.php:567
+msgid "Insert Branch"
+msgstr "Áterpti skyriø"
+
+#: query.php:151
+msgid "Insert Not"
+msgstr "Áterpti Ne"
+
+#: query.php:150
+msgid "Insert Or"
+msgstr "Áterpti Arba"
+
+#: lib/Whups.php:163
+msgid "Invalid Ticket Id"
+msgstr "Neteisingas bilieto ID"
+
+#: lib/api.php:650
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "Neteisingas argumentas: nëra atributo pavadinimo arba reikðmës."
+
+#: lib/api.php:635
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+"Neteisingi argumentai: turite nurodyti bilieto pavadinimà ir naujus "
+"atributus."
+
+#: lib/api.php:592
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Ávesti neteisingi bilieto duomenys: %s"
+
+#: lib/Forms/Admin.php:80
+msgid "Keep a set of versions for this queue?"
+msgstr "Ðioje eilëje naudoti versijas?"
+
+#: templates/prevnext.inc:17
+msgid "Last>>"
+msgstr "Paskutinis>>"
+
+#: lib/Query.php:888
+msgid "Load Query"
+msgstr "Uþkrauti uþklausà"
+
+#: config/prefs.php.dist:97
+msgid "MM/DD/YY"
+msgstr "MM/DD/YY"
+
+#: config/prefs.php.dist:98
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/YY HH:MM:SS"
+
+#: lib/Forms/Admin.php:333
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Kopijuoti %s"
+
+#: lib/Query.php:818
+msgid "Match"
+msgstr "Atitinka"
+
+#: lib/Query.php:592 lib/Query.php:678 lib/Query.php:819
+msgid "Match Operator"
+msgstr "Atitikimo operatorius"
+
+#: lib/Query.php:54
+msgid "Match Pattern"
+msgstr "Atitinkanti forma"
+
+#: lib/Query.php:53
+msgid "Match Word"
+msgstr "Atitinkantis þodis"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Maksimalus neiðspræsto bilieto laikas"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Meniu sàraðas"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Minimalus neiðspræsto bilieto laikas"
+
+#: config/prefs.php.dist:128
+msgid "Most recent first"
+msgstr "Ið pradþiø naujausi"
+
+#: ticket/queue.php:174
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Bilietas %d perkeltas á \"%s\""
+
+#: mybugs.php:52
+#, php-format
+msgid "My %s"
+msgstr "Mano %s"
+
+#: mybugs_edit.php:32
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Mano %s :: Pridëti turiná"
+
+#: search.php:106 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Mano uþklausos"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Mano praðymai"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:66
+msgid "My Tickets"
+msgstr "Mano bilietai"
+
+#: lib/api.php:902
+msgid "My tickets by assignment date"
+msgstr "Mano bilietai pagal paskyrimo datà"
+
+#: lib/api.php:901
+msgid "My tickets by creation date"
+msgstr "Mano bilietai pagal sukûrimo datà"
+
+#: lib/api.php:903
+msgid "My tickets by due date"
+msgstr "Mano bilietai pagal vykdymo datà"
+
+#: lib/api.php:904
+msgid "My tickets by resolution date"
+msgstr "Mano bilietai pagal iðsprendimo datà"
+
+#: lib/Query.php:867 lib/Query.php:899
+msgid "Name"
+msgstr "Pavadinimas"
+
+#: lib/Forms/Admin.php:338
+msgid "Name of the cloned copy"
+msgstr "Kopijos pavadinimas"
+
+#: lib/Query.php:184
+msgid "Ne_w Query"
+msgstr "Nauja uþklausa"
+
+#: lib/Driver.php:164
+msgid "New"
+msgstr "Naujas"
+
+#: lib/Ticket.php:494 lib/Ticket.php:539
+msgid "New Attachment"
+msgstr "Naujas prikabintas failas"
+
+#: templates/comment.inc:53 templates/comment.inc:55
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Naujas prikabintas failas: %s"
+
+#: ticket/queue.php:31
+msgid "New Queue"
+msgstr "Nauja eilë"
+
+#: ticket/create.php:60 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Naujas bilietas"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Naujas tipas"
+
+#: templates/prevnext.inc:16
+msgid "Next>"
+msgstr "Toliau>"
+
+#: ticket/delete.php:37 lib/Query.php:926 lib/Forms/Admin.php:127
+#: lib/Forms/Admin.php:319 lib/Forms/Admin.php:435 lib/Forms/Admin.php:521
+#: lib/Forms/Admin.php:607 lib/Forms/Admin.php:699
+msgid "No"
+msgstr "Ne"
+
+#: lib/Block/myqueries.php:44
+msgid "No queries have been saved."
+msgstr "Neiðsaugota nei viena uþklausa."
+
+#: lib/Block/query.php:64 lib/Driver/sql.php:420
+msgid "No query to run"
+msgstr "Uþklausø nëra"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Eiliø nëra."
+
+#: reports.php:19
+msgid "No stats available."
+msgstr "Statistikos nëra."
+
+#: lib/Driver.php:404
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Posistemë \"%s\" nerasta"
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Jums nepaskirtas nei vienas bilietas."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Nepaskirtø bilietø nëra!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Eilëje bilietø nëra."
+
+#: lib/Whups.php:530
+msgid "No tickets matched your search criteria."
+msgstr "Nerastas nei vienas bilietas atitinkantis jûsø paieðkà."
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Nëra"
+
+#: lib/Query.php:572 templates/queryrenderer.inc:92
+msgid "Not"
+msgstr "Ne"
+
+#: query.php:79
+msgid "Not yet implemented."
+msgstr "Dar nerealizuota."
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Praneðimø nustatymai"
+
+#: config/prefs.php.dist:108
+msgid "Only notify me of ticket changes from other users"
+msgstr "Perspëti mane tik jeigu bilietà keièia kiti vartotojai"
+
+#: lib/Block/queuesummary.php:48
+msgid "Open Tickets"
+msgstr "Atviri bilietai"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Atviri bilietai pagal savininkà"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Atviri bilietai pagal svarbà"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Atviri bilietai pagal eilæ"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Atviri bilietai pagal uþsakovà"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Atviri bilietai pagal bûsenà"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Atviri bilietai pagal tipà"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "Atviri bilietai eilëje %s"
+
+#: lib/Query.php:571 templates/queryrenderer.inc:91
+msgid "Or"
+msgstr "Arba"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Kiti nustatymai"
+
+#: lib/Whups.php:495 lib/Ticket.php:493 lib/Ticket.php:531 lib/Ticket.php:532
+#: lib/Ticket.php:534 lib/Ticket.php:604 lib/Ticket.php:621 lib/Ticket.php:669
+#: lib/Forms/CreateTicket.php:186 lib/Forms/CreateTicket.php:198
+#: lib/Forms/EditTicket.php:73 templates/queryrenderer.inc:97
+msgid "Owners"
+msgstr "Savininkai"
+
+#: lib/Whups.php:678
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Visiðkai iðtrinti %s?"
+
+#: ticket/update.php:23 ticket/delete.php:17 ticket/type.php:17
+#: ticket/queue.php:124 ticket/deleteAttachment.php:17
+msgid "Permission Denied"
+msgstr "Neuþtenka teisiø"
+
+#: ticket/delete.php:44 lib/Forms/EditTicket.php:104
+msgid "Permission Denied."
+msgstr "Neuþtenka teisiø."
+
+#: query.php:31 runquery.php:38 lib/Query.php:936
+#, php-format
+msgid "Permission denied."
+msgstr "Neuþtenka teisiø."
+
+#: lib/Forms/Admin.php:270 lib/Forms/Admin.php:316
+msgid "Priorities for this Type"
+msgstr "Ðio tipo svarbos"
+
+#: ticket/type.php:69 ticket/queue.php:110 lib/Whups.php:483 lib/Whups.php:492
+#: lib/Ticket.php:484 lib/Ticket.php:598 lib/Ticket.php:667 lib/Query.php:746
+#: lib/Forms/CreateTicket.php:118 lib/Forms/EditTicket.php:30
+#: templates/queryrenderer.inc:138 config/prefs.php.dist:40
+msgid "Priority"
+msgstr "Svarba"
+
+#: templates/comment.inc:98
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Svarba ⇒ %s"
+
+#: lib/Forms/Admin.php:449 lib/Forms/Admin.php:495 lib/Forms/Admin.php:518
+msgid "Priority Description"
+msgstr "Svarbos apraðymas"
+
+#: lib/Forms/Admin.php:448 lib/Forms/Admin.php:473 lib/Forms/Admin.php:492
+#: lib/Forms/Admin.php:515
+msgid "Priority Name"
+msgstr "Svarbos pavadinimas"
+
+#: query.php:155
+msgid "Query Builder"
+msgstr "Uþklausos"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Uþklausos parametrai"
+
+#: runquery.php:81 lib/Block/query.php:3 lib/Block/query.php:51
+msgid "Query Results"
+msgstr "Uþklausos rezultatai"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Paleisti uþklausà"
+
+#: lib/Whups.php:493 lib/Ticket.php:480 lib/Ticket.php:594 lib/Ticket.php:648
+#: lib/Ticket.php:652 lib/Query.php:729 lib/Block/queuesummary.php:48
+#: lib/Block/queuecontents.php:32 lib/Forms/Search.php:38
+#: templates/queryrenderer.inc:107 config/prefs.php.dist:41
+msgid "Queue"
+msgstr "Eilë"
+
+#: templates/comment.inc:86
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Eilë ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Eilës turinys"
+
+#: lib/Forms/Admin.php:24 lib/Forms/Admin.php:73 lib/Forms/Admin.php:124
+msgid "Queue Description"
+msgstr "Eilës apraðymas"
+
+#: lib/Forms/CreateTicket.php:27 lib/Forms/CreateTicket.php:37
+#: lib/Forms/Admin.php:23 lib/Forms/Admin.php:52 lib/Forms/Admin.php:70
+#: lib/Forms/Admin.php:121
+msgid "Queue Name"
+msgstr "Eilës pavadinimas"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Eilës santrauka"
+
+#: ticket/queue.php:79 lib/Ticket.php:657 lib/Ticket.php:661
+#: lib/Forms/CreateTicket.php:77
+msgid "Queue Version"
+msgstr "Eilës versija"
+
+#: admin/index.php:36
+msgid "Queue/Type Matri_x"
+msgstr "Eilës/Tipo matrica"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Eilës/Tipo matrica"
+
+#: lib/api.php:167 lib/api.php:827
+msgid "Queues"
+msgstr "Eilës"
+
+#: lib/Forms/Admin.php:700
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðá atributà? Tai sukels problemø su duomenimis!"
+
+#: lib/Forms/Admin.php:522
+msgid "Really delete this priority? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðià svarbà? Tai sukels problemø su duomenimis!"
+
+#: lib/Query.php:927
+msgid "Really delete this query? This operation is not undoable."
+msgstr "Ar tikrai iðtrinti ðià uþklausà? Graþinti atgal nebegalësite."
+
+#: lib/Forms/Admin.php:128
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðià eilæ? Tai sukels problemø su duomenimis!"
+
+#: lib/Forms/Admin.php:436
+msgid "Really delete this state? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðià bûsenà? Tai sukels problemø su duomenimis!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Ar tikrai iðtrinti ðá bilietà? Jis NËRA archyvuojamas ir bus iðtrintas "
+"amþiams."
+
+#: lib/Forms/Admin.php:320
+msgid "Really delete this type? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðá tipà? Tai sukels problemø su duomenimis!"
+
+#: lib/Forms/Admin.php:608
+msgid "Really delete this version? This may cause data problems!"
+msgstr "Ar tikrai iðtrinti ðià versijà? Tai sukels problemø su duomenimis!"
+
+#: search.php:87
+msgid "Refine Search"
+msgstr "Pakeisti paieðkà"
+
+#: admin/index.php:854
+msgid "Reminders were sent."
+msgstr "Priminimai iðsiøsti."
+
+#: lib/Forms/Admin.php:177
+msgid "Remove User"
+msgstr "Iðtrinti vartotojà"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Iðtrinti stebëtojà"
+
+#: templates/comment.inc:81
+msgid "Reply to this comment"
+msgstr "Atsakyti á ðá komentarà"
+
+#: reports.php:24
+msgid "Reports"
+msgstr "Raportai"
+
+#: lib/Whups.php:494 lib/Ticket.php:672 templates/queryrenderer.inc:99
+msgid "Requester"
+msgstr "Uþsakovas"
+
+#: lib/Whups.php:499 lib/Driver.php:166 lib/Ticket.php:679 lib/api.php:945
+#: config/prefs.php.dist:45
+msgid "Resolved"
+msgstr "Iðspræsta"
+
+#: lib/Forms/Admin.php:179
+msgid "Responsible Users"
+msgstr "Atsakingi vartotojai"
+
+#: lib/Forms/EditTicket.php:97
+msgid "Restrict Comment to:"
+msgstr "Leisti komentuoti tik:"
+
+#: templates/prevnext.inc:26
+msgid "Return to Search Results"
+msgstr "Gráþti á paieðkos rezultatus"
+
+#: lib/Whups.php:201
+msgid "S_et Queue"
+msgstr "Nustatyti eilæ"
+
+#: lib/Query.php:202
+msgid "Sa_ve Query"
+msgstr "Iðsaugoti uþklausà"
+
+#: lib/Query.php:865 templates/searchresults.inc:79
+msgid "Save"
+msgstr "Iðsaugoti"
+
+#: lib/Query.php:864
+msgid "Save Query"
+msgstr "Iðsaugoti uþklausà"
+
+#: templates/searchresults.inc:73
+msgid "Save these results as: "
+msgstr "Iðsaugoti ðiuos rezultatus kaip: "
+
+#: search.php:26 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Ieðkoti"
+
+#: lib/Query.php:822
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Ieðkoti %s atributo"
+
+#: lib/Query.php:825
+msgid "Search Attribute"
+msgstr "Ieðkoti atribute"
+
+#: lib/Query.php:595 lib/Query.php:680
+msgid "Search Comments"
+msgstr "Ieðkoti komentaruose"
+
+#: lib/Query.php:593
+msgid "Search Owners"
+msgstr "Ieðkoti tarp savininkø"
+
+#: lib/Query.php:594
+msgid "Search Requester"
+msgstr "Ieðkoti tarp uþsakovø"
+
+#: search.php:82
+msgid "Search Results"
+msgstr "Paieðkos rezultatai"
+
+#: templates/prevnext.inc:22
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Paieðkos rezultatai: %s ið %s"
+
+#: lib/Query.php:679
+msgid "Search Summary"
+msgstr "Paieðkos santrauka"
+
+#: config/prefs.php.dist:67
+msgid "Search Tickets"
+msgstr "Bilietø paieðka"
+
+#: config/prefs.php.dist:69
+msgid "Select the view to display after login:"
+msgstr "Pasirinkite, kurá puslapá rodyti po prisijungimo:"
+
+#: admin/index.php:37
+msgid "Sen_d Reminders"
+msgstr "Siøsti priminimus"
+
+#: lib/Forms/Admin.php:711
+msgid "Send Reminders"
+msgstr "Siøsti priminimus"
+
+#: lib/Forms/Admin.php:722
+msgid "Send only for this list of ticket ids"
+msgstr "Siøsti tik bilietams su ðiais id"
+
+#: ticket/queue.php:195 ticket/queue.php:204 ticket/queue.php:216
+msgid "Set Queue - Step 1"
+msgstr "Eilës nustatymas - 1 þingsnis"
+
+#: ticket/queue.php:196 ticket/queue.php:205
+msgid "Set Queue - Step 2"
+msgstr "Eilës nustatymas - 2 þingsnis"
+
+#: ticket/queue.php:206
+msgid "Set Queue - Step 3"
+msgstr "Eilës nustatymas - 3 þingsnis"
+
+#: ticket/queue.php:182
+#, php-format
+msgid "Set Queue for %s"
+msgstr "%s eilës nustatymas"
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr "Tipo nustatymas - 1 þingsnis"
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr "Tipo nustatymas - 2 þingsnis"
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr "%s tipo nustatymas"
+
+#: lib/Whups.php:205
+msgid "Set _Type"
+msgstr "Nustatyti tipà"
+
+#: config/prefs.php.dist:126
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Rodyti komentarus chronologine tvarka ar ið pradþiø naujausius?"
+
+#: config/prefs.php.dist:86
+msgid "Show ticket IDs in the summary view?"
+msgstr "Santraukoje rodyti bilietø ID?"
+
+#: config/prefs.php.dist:78
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Santraukoje rodyti jûsø sukurtus bilietus?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Paprastas HTML raportas"
+
+#: templates/searchresults.inc:98 templates/searchresults.inc:101
+#, php-format
+msgid "Sort by %s"
+msgstr "Rûðiuoti pagal %s"
+
+#: lib/Forms/CreateTicket.php:113 lib/Forms/CreateTicket.php:142
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Apsauga nuo ðiukðliø"
+
+#: ticket/type.php:68 ticket/queue.php:109 lib/Whups.php:484 lib/Whups.php:490
+#: lib/Ticket.php:483 lib/Ticket.php:597 lib/Ticket.php:666 lib/Query.php:741
+#: lib/Forms/EditTicket.php:29 templates/queryrenderer.inc:130
+#: config/prefs.php.dist:38
+msgid "State"
+msgstr "Bûsena"
+
+#: templates/comment.inc:94
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Bûsena ⇒ %s"
+
+#: lib/Forms/Admin.php:360 lib/Forms/Admin.php:409
+msgid "State Category"
+msgstr "Bûsenos kategorija"
+
+#: lib/Forms/Admin.php:359 lib/Forms/Admin.php:406 lib/Forms/Admin.php:432
+msgid "State Description"
+msgstr "Bûsenos apraðymas"
+
+#: lib/Forms/Admin.php:358 lib/Forms/Admin.php:384 lib/Forms/Admin.php:403
+#: lib/Forms/Admin.php:429
+msgid "State Name"
+msgstr "Bûsenos pavadinimas"
+
+#: lib/Forms/Admin.php:260 lib/Forms/Admin.php:312
+msgid "States for this Type"
+msgstr "Ðio tipo bûsena"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Bûsena"
+
+#: ticket/create.php:124
+msgid "Submit"
+msgstr "Ávesti"
+
+#: admin/index.php:162
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "%s sëkmingai nukopijuotas á %s."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr "Bilieto tipas sëkmingai pakeistas."
+
+#: ticket/delete.php:34 lib/Whups.php:482 lib/Whups.php:489 lib/Ticket.php:492
+#: lib/Ticket.php:508 lib/Ticket.php:509 lib/Ticket.php:511 lib/Ticket.php:604
+#: lib/Ticket.php:612 lib/Ticket.php:646 lib/Forms/CreateTicket.php:120
+#: lib/Forms/EditTicket.php:28 templates/queryrenderer.inc:102
+#: config/prefs.php.dist:37
+msgid "Summary"
+msgstr "Pavadinimas"
+
+#: templates/comment.inc:47
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Pavadinimas ⇒ %s"
+
+#: lib/Forms/Search.php:41
+msgid "Summary like"
+msgstr "Pavadinimas"
+
+#: templates/comment.inc:69
+#, php-format
+msgid "Taken from %s"
+msgstr "Paimta ið %s"
+
+#: lib/Query.php:677
+msgid "Text"
+msgstr "Tekstas"
+
+#: view.php:55 lib/Ticket.php:356 lib/Ticket.php:394
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "Prikabintø failø galimybei turi bûti ájungta VFS posistemë."
+
+#: admin/index.php:739
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Atributas \"%s\" pridëtas á %s."
+
+#: admin/index.php:825
+msgid "The attribute has been deleted."
+msgstr "Atributas iðtrintas."
+
+#: admin/index.php:794
+msgid "The attribute has been modified."
+msgstr "Atributas pakeistas."
+
+#: admin/index.php:830
+msgid "The attribute was not deleted."
+msgstr "Atributas neiðtrintas."
+
+#: admin/index.php:451
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Svarba \"%s\" pridëta á %s."
+
+#: admin/index.php:532
+msgid "The priority has been deleted."
+msgstr "Svarba iðtrinta."
+
+#: admin/index.php:504
+msgid "The priority has been modified."
+msgstr "Svarba pakeistas."
+
+#: admin/index.php:537
+msgid "The priority was not deleted."
+msgstr "Svarba neiðtrinta."
+
+#: lib/Query.php:940
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Nepavyko iðtrinti uþklausos \"%s\": %s"
+
+#: lib/Query.php:942
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Uþklausa \"%s\" iðtrinta."
+
+#: lib/Query.php:907
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Nepavyko uþkrauti uþklausos:"
+
+#: admin/index.php:241
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Eilë \"%s\" sukurta."
+
+#: admin/index.php:320
+msgid "The queue has been deleted."
+msgstr "Eilë iðtrinta."
+
+#: admin/index.php:292
+msgid "The queue has been modified."
+msgstr "Eilë pakeista."
+
+#: admin/index.php:325
+msgid "The queue was not deleted."
+msgstr "Eilë neiðtrinta."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Ðios bylos nëra Zip archyve."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Nurodytas ðablonas neegzistuoja."
+
+#: admin/index.php:340
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Bûsena \"%s\" pridëta á %s."
+
+#: admin/index.php:423
+msgid "The state has been deleted."
+msgstr "Bûsena iðtrinta."
+
+#: admin/index.php:394
+msgid "The state has been modified."
+msgstr "Bûsena pakeista."
+
+#: admin/index.php:428
+msgid "The state was not deleted."
+msgstr "Bûsena neiðtrinta."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "Bilietas neiðtrintas."
+
+#: admin/index.php:180
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Tipas \"%s\" pakeistas."
+
+#: admin/index.php:222
+msgid "The type has been deleted."
+msgstr "Tipas iðtrintas."
+
+#: admin/index.php:227
+msgid "The type was not deleted."
+msgstr "Tipas neiðtrintas."
+
+#: admin/index.php:629
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Versija \"%s\" pridëta á %s."
+
+#: admin/index.php:711
+msgid "The version has been deleted."
+msgstr "Versija iðtrinta."
+
+#: admin/index.php:683
+msgid "The version has been modified."
+msgstr "Versija pakeista."
+
+#: admin/index.php:716
+msgid "The version was not deleted."
+msgstr "Versija neiðtrinta."
+
+#: lib/Forms/Admin.php:647
+msgid "There are no attribute types to edit"
+msgstr "Atributø tipø redagavimui nëra"
+
+#: lib/Query.php:825
+msgid "There are no attributes defined for the current type"
+msgstr "Ðiam tipui nëra apraðytø atributø"
+
+#: lib/Block/queuesummary.php:43
+msgid "There are no open tickets."
+msgstr "Atvirø bilietø nëra."
+
+#: lib/Forms/Admin.php:469
+msgid "There are no priorities to edit"
+msgstr "Svarbø redagavimui nëra"
+
+#: lib/Forms/Admin.php:719
+msgid "There are no queues available."
+msgstr "Eiliø nëra."
+
+#: lib/Forms/Admin.php:49
+msgid "There are no queues to edit"
+msgstr "Eiliø redagavimui nëra"
+
+#: lib/Forms/CreateTicket.php:27
+msgid "There are no queues which you can create tickets in."
+msgstr "Eiliø, kuriose galite kurti bilietus, nëra."
+
+#: lib/Forms/Search.php:36
+msgid "There are no queues which you can search."
+msgstr "Eiliø, kuriose galite ieðkoti, nëra."
+
+#: lib/Forms/Admin.php:380
+msgid "There are no states to edit"
+msgstr "Bûsenø redagavimui nëra"
+
+#: lib/Forms/CreateTicket.php:61
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Su ðia eile nëra susietø tipø; kol tai nebus padaryta, jûs negalësite ðioje "
+"eilëje kurti naujø bilietø."
+
+#: lib/Forms/Admin.php:231
+msgid "There are no types to edit"
+msgstr "Tipø redagavimui nëra"
+
+#: lib/Forms/Admin.php:193
+msgid "There are no users responsible for this queue."
+msgstr "Vartotojø, atsakingø uþ ðià eilæ, nëra."
+
+#: lib/Forms/CreateTicket.php:197
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Vartotojø, kuriems gali bûti paskirti bilietai, nëra."
+
+#: lib/Forms/Admin.php:555
+msgid "There are no versions to edit"
+msgstr "Versijø redagavimui nëra"
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Ðiam raportui neuþtenka duomenø."
+
+#: admin/index.php:571
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr "Klaida pridedant \"%s\" kaip atsakingà uþ \"%s\": %s"
+
+#: admin/index.php:742
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Klaida kuriant atributà: %s."
+
+#: admin/index.php:453
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "Klaida kuriant svarbà: %s."
+
+#: admin/index.php:249
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "Klaida kuriant eilæ: %s."
+
+#: admin/index.php:342
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "Klaida kuriant bûsenà: %s."
+
+#: admin/index.php:631
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "Klaida kuriant versijà: %s."
+
+#: admin/index.php:827
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Klaida trinant atributà: %s."
+
+#: admin/index.php:534
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Klaida trinant svarbà: %s."
+
+#: admin/index.php:322
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "Klaida trinant eilæ: %s."
+
+#: admin/index.php:425
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "Klaida trinant bûsenà: %s."
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Klaida trinant bilietà: %s"
+
+#: admin/index.php:224
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "Klaida trinant tipà: %s."
+
+#: admin/index.php:713
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "Klaida trinant versijà: %s."
+
+#: admin/index.php:802
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Klaida keièiant atributà: %s."
+
+#: admin/index.php:509
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "Klaida keièiant svarbà: %s."
+
+#: admin/index.php:306
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "Klaida keièiant eilæ: %s."
+
+#: admin/index.php:399
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "Klaida keièiant bûsenà: %s."
+
+#: admin/index.php:688
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "Klaida keièiant versijà: %s."
+
+#: lib/Forms/Admin.php:153
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Klaida parodant vartotojø sàraðà: %s; %s"
+
+#: admin/index.php:178
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "Klaida keièiant tipà:: %s."
+
+#: search.php:76
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Klaida atliekant jûsø paieðkà: %s"
+
+#: admin/index.php:607
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr "Klaida trinant \"%s\" ið atsakingø uþ \"%s\" sàraðo: %s"
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "Tai nëra paieðkos rezultatø ðablonas."
+
+#: ticket/queue.php:74 lib/Forms/CreateTicket.php:72
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Ðioje eilëje reikia nurodyti versijas, taèiau su ja nesusieta jokia versija. "
+"Jûs negalësite kurti naujø bilietø tol, kol eilei nebus sukurtos versijos."
+
+#: lib/Ticket.php:505 lib/Ticket.php:611
+msgid "Ticket"
+msgstr "Bilietas"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Bilietas %d iðtrintas."
+
+#: lib/api.php:873
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Bilietas %s - %s"
+
+#: lib/Driver/sql.php:871
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Bilietas %s nerastas."
+
+#: search.php:98
+msgid "Ticket Search"
+msgstr "Bilieto paieðka"
+
+#: lib/Forms/CreateTicket.php:117
+msgid "Ticket State"
+msgstr "Bilieto bûsena"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Bilieto statistika"
+
+#: lib/Forms/CreateTicket.php:66
+msgid "Ticket Type"
+msgstr "Bilieto tipas"
+
+#: lib/Forms/Admin.php:76
+msgid "Ticket Types associated with this Queue"
+msgstr "Bilietø tipai susieti su ðia eile"
+
+#: lib/Ticket.php:501
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr "Bilieto URL: %s\n"
+
+#: ticket/update.php:82
+msgid "Ticket Updated"
+msgstr "Bilietas atnaujintas"
+
+#: lib/api.php:894
+msgid "Tickets"
+msgstr "Bilietai"
+
+#: lib/Forms/Search.php:43
+msgid "Tickets which are"
+msgstr "Bilietai kurie yra"
+
+#: ticket/queue.php:82 lib/Whups.php:491 lib/Ticket.php:482 lib/Ticket.php:596
+#: lib/Ticket.php:665 lib/Query.php:722 templates/queryrenderer.inc:121
+#: config/prefs.php.dist:39
+msgid "Type"
+msgstr "Tipas"
+
+#: templates/comment.inc:90
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tipas ⇒ %s"
+
+#: lib/Forms/Admin.php:211 lib/Forms/Admin.php:255 lib/Forms/Admin.php:308
+msgid "Type Description"
+msgstr "Tipo apraðymas"
+
+#: lib/Forms/Admin.php:210 lib/Forms/Admin.php:234 lib/Forms/Admin.php:252
+#: lib/Forms/Admin.php:305
+msgid "Type Name"
+msgstr "Tipo pavadinimas"
+
+#: lib/Forms/Search.php:46
+msgid "Types"
+msgstr "Tipai"
+
+#: lib/Ticket.php:670
+msgid "Unassigned"
+msgstr "Nepaskirtas"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Nepaskirti bilietai"
+
+#: lib/Forms/Admin.php:730
+msgid "Unassigned tickets"
+msgstr "Nepaskirti bilietai"
+
+#: lib/Driver.php:163
+msgid "Unconfirmed"
+msgstr "Nepatvirtintas"
+
+#: templates/queryrenderer.inc:148 templates/queryrenderer.inc:188
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Neþinomas ðakos tipas %s"
+
+#: lib/api.php:841
+msgid "Update"
+msgstr "Atnaujinti"
+
+#: ticket/update.php:97
+#, php-format
+msgid "Update %s"
+msgstr "Atnaujinti %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Atnaujinti sàsajas"
+
+#: lib/Whups.php:497 lib/Ticket.php:677
+msgid "Updated"
+msgstr "Atnaujintas"
+
+#: lib/Ticket.php:491 lib/Ticket.php:506
+msgid "Updated By"
+msgstr "Atnaujinta"
+
+#: lib/Forms/Admin.php:152 lib/Forms/Admin.php:162 lib/Forms/Admin.php:165
+msgid "User"
+msgstr "Vartotojas"
+
+#: lib/Query.php:591
+msgid "User ID"
+msgstr "Vartotojo ID"
+
+#: lib/Forms/Admin.php:94
+msgid "Users responsible for this Queue"
+msgstr "Vartotojø atsakingi uþ ðià eilæ"
+
+#: lib/Forms/Admin.php:197
+msgid "Users responsible for this queue"
+msgstr "Vartotojø atsakingi uþ ðià eilæ"
+
+#: lib/Ticket.php:481 lib/Ticket.php:595 lib/Query.php:733
+#: templates/queryrenderer.inc:115 config/prefs.php.dist:42
+msgid "Version"
+msgstr "Versija"
+
+#: lib/Forms/Admin.php:535 lib/Forms/Admin.php:581 lib/Forms/Admin.php:604
+msgid "Version Description"
+msgstr "Versijos apraðymas"
+
+#: lib/Forms/Admin.php:534 lib/Forms/Admin.php:559 lib/Forms/Admin.php:578
+#: lib/Forms/Admin.php:601
+msgid "Version Name"
+msgstr "Versijos pavadinimas"
+
+#: ticket/type.php:46 ticket/queue.php:45 lib/Forms/AddComment.php:38
+msgid "Viewable only by members of"
+msgstr "Gali perþiûrëti tik grupës nariai"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Stebëti ðá bilietà"
+
+#: ticket/watch.php:76
+#, php-format
+msgid "Watchers for %s"
+msgstr "%s stebëtojai"
+
+#: config/prefs.php.dist:95
+msgid "Weekday Day Month"
+msgstr "Savaitës diena Diena Mënuo"
+
+#: config/prefs.php.dist:96
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Savaitës diena Diena Mënuo HH:MM:SS LZ"
+
+#: ticket/delete.php:37 lib/Query.php:926 lib/Forms/Admin.php:127
+#: lib/Forms/Admin.php:319 lib/Forms/Admin.php:435 lib/Forms/Admin.php:521
+#: lib/Forms/Admin.php:607 lib/Forms/Admin.php:699
+msgid "Yes"
+msgstr "Taip"
+
+#: view.php:51
+msgid "You are not allowed to view this ticket."
+msgstr "Jûs neturite teisiø matyti ðio bilieto."
+
+#: lib/Driver/sql.php:874
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Jûs neturite teisiø perþiûrëti ðio bilieto (%s)."
+
+#: lib/api.php:570
+msgid "You do not have permission to update this ticket."
+msgstr "Jûs neturite teisiø keisti ðio bilieto."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Jûs neturite atvirø bilietø apie kuriuos praneðëte jûs pats."
+
+#: lib/Query.php:896 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "Jûs neturite iðsaugotø uþklausø."
+
+#: lib/Whups.php:524
+msgid "You must select at least one queue to send reminders for."
+msgstr "Priminimø iðsiuntimui turite pasirinkti bent vienà eilæ."
+
+#: lib/Forms/CreateTicket.php:111 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "Jûsø el. paðto adresas"
+
+#: ticket/create.php:53
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Jûsø bilieto ID yra %s. Apie ðià uþklausà buvo praneðta atsakingam asmeniui."
+
+#: lib/Whups.php:587
+msgid "_Admin"
+msgstr "Valdymas"
+
+#: lib/Whups.php:196
+msgid "_Comment"
+msgstr "Komentaras"
+
+#: lib/Whups.php:206
+msgid "_Delete"
+msgstr "Iðtrinti"
+
+#: lib/Query.php:205
+msgid "_Delete Query"
+msgstr "Iðtrinti uþklausà"
+
+#: lib/Query.php:186
+msgid "_Edit Query"
+msgstr "Keisti uþklausà"
+
+#: admin/index.php:34
+msgid "_Edit Queues"
+msgstr "Keisti eiles"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "Rodyti"
+
+#: query.php:139
+msgid "_Group Criteria"
+msgstr "Grupës kriterijus"
+
+#: lib/Whups.php:192
+msgid "_History"
+msgstr "Istorija"
+
+#: lib/Query.php:199
+msgid "_Load Query"
+msgstr "Uþkrauti uþklausà"
+
+#: lib/Whups.php:578
+#, php-format
+msgid "_My %s"
+msgstr "Mano %s"
+
+#: lib/Whups.php:581
+msgid "_New Ticket"
+msgstr "Naujas bilietas"
+
+#: query.php:137
+msgid "_Property Criteria"
+msgstr "Savybës kriterijus"
+
+#: lib/Whups.php:582
+msgid "_Query Builder"
+msgstr "Uþklausos"
+
+#: lib/Whups.php:583
+msgid "_Reports"
+msgstr "Raportai"
+
+#: lib/Whups.php:580
+msgid "_Search"
+msgstr "_Ieðkoti"
+
+#: query.php:141
+msgid "_Text Criteria"
+msgstr "Teksto kriterijus"
+
+#: lib/Whups.php:194
+msgid "_Update"
+msgstr "Atnaujinti"
+
+#: query.php:138
+msgid "_User Criteria"
+msgstr "Vartotojo kriterijus"
+
+#: lib/Whups.php:198
+msgid "_Watch"
+msgstr "Stebëti"
+
+#: templates/queryrenderer.inc:168
+msgid "contains (case insensitive) substring"
+msgstr "turi tekstà (didþiosios/maþosios nesvarbu)"
+
+#: templates/queryrenderer.inc:172
+msgid "contains (case sensitive) substring"
+msgstr "turi tekstà (didþiosios/maþosios svarbu)"
+
+#: templates/queryrenderer.inc:176
+msgid "contains the word"
+msgstr "turi þodá"
+
+#: lib/api.php:882
+msgid "estimated time"
+msgstr "numatytas laikas"
+
+#: templates/queryrenderer.inc:164
+msgid "is"
+msgstr "yra"
+
+#: templates/queryrenderer.inc:156
+msgid "is greater than"
+msgstr "didesnis nei"
+
+#: templates/queryrenderer.inc:160
+msgid "is less than"
+msgstr "maþesnis nei"
+
+#: templates/queryrenderer.inc:180
+msgid "matches the pattern"
+msgstr "atitinka formà"
--- /dev/null
+# Whups - Norwegian translation
+# Copyright 2006-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Torbjorn Grindhaug <grindhaug@gmail.com>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2006-01-09 15:33+0100\n"
+"PO-Revision-Date: 2006-01-09 10:31+0100\n"
+"Last-Translator: Torbjorn Grindhaug <grindhaug@gmail.com>\n"
+"Language-Team: Norwegian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.php:603
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" er ikke lenger blant de ansvarlige for \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: lib/Driver.php:277
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) skrev:"
+
+#: admin.php:567
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s er lagt til de som er ansvarlig for \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s dager"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s vil få beskjed når denne saken er oppdatert."
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s vil ikke lenger få beskjed om oppdateringer på denne saken."
+
+#: admin.php:81
+msgid "- Stage 1"
+msgstr "- Steg 1"
+
+#: admin.php:86
+msgid "- Stage 2"
+msgstr "- Steg 2"
+
+#: scripts/mail-filter.php:164
+msgid "--priority-name or --priority-id must specify a valid Priority."
+msgstr "--priority-name eller --priority-id må angi en gyldig prioritet."
+
+#: scripts/mail-filter.php:158
+msgid "--queue-name or --queue-id must specify a valid Queue."
+msgstr "--queue-name eller --queue-id må angi en gyldig kø."
+
+#: scripts/mail-filter.php:167
+msgid "--state-name or --state-id must specify a valid State."
+msgstr "--state-name eller --state-id må angi en gyldig tilstand."
+
+#: scripts/mail-filter.php:161
+msgid "--type-name or --type-id must specify a valid Type."
+msgstr "--type-name eller --type-id må angi en gyldig type."
+
+#: templates/prevnext.inc:12
+msgid "<<First"
+msgstr "<<Første"
+
+#: templates/prevnext.inc:13
+msgid "<Prev"
+msgstr ">Forrige"
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "Tilgang nektet til %s"
+
+#: lib/Admin.php:709
+msgid "Add Attribute"
+msgstr "Ny egenskap"
+
+#: lib/Query.php:764
+msgid "Add Attribute Criterion"
+msgstr "Legg til kriterie for egenskap"
+
+#: mybugs.php:54
+msgid "Add Content"
+msgstr "Legg til innhold"
+
+#: query.php:205
+msgid "Add Criterion"
+msgstr "Legg til kriterie"
+
+#: lib/Query.php:590
+msgid "Add Group Criterion"
+msgstr "Legg til gruppekriterie"
+
+#: lib/Admin.php:533
+msgid "Add Priority"
+msgstr "Ny prioritet"
+
+#: lib/Query.php:669
+msgid "Add Property Criterion"
+msgstr "Legg til kriteriegenskap"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "Ny kø"
+
+#: lib/Admin.php:441
+msgid "Add State"
+msgstr "Ny tilstand"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Nytt emne"
+
+#: lib/Query.php:625
+msgid "Add Text Criterion"
+msgstr "Legg til tekstkriterie"
+
+#: lib/Admin.php:298 lib/Admin.php:299
+msgid "Add Type"
+msgstr "Ny type"
+
+#: admin.php:81 admin.php:86
+#, php-format
+msgid "Add Type %s"
+msgstr "Legg til type %s"
+
+#: lib/Query.php:537
+msgid "Add User Criterion"
+msgstr "Nytt brukerkriterie"
+
+#: lib/Admin.php:229
+msgid "Add Users"
+msgstr "Legg til brukere"
+
+#: lib/Admin.php:621
+msgid "Add Version"
+msgstr "Legg til versjon"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Legg til overvåker"
+
+#: ticket/create.php:154
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Feil ved innlegging av din sak: %s."
+
+#: admin.php:54 lib/api.php:694
+msgid "Administration"
+msgstr "Administrering"
+
+#: templates/queryrenderer.inc:90 lib/Query.php:518
+msgid "And"
+msgstr "And"
+
+#: search.php:39 search.php:103 search.php:105 search.php:120 search.php:136
+#: search.php:138 lib/Query.php:675 lib/Query.php:683 lib/Query.php:688
+#: lib/Query.php:695 lib/Query.php:700
+msgid "Any"
+msgstr "Any"
+
+#: ticket/update.php:75 ticket/people.php:90 ticket/type.php:45
+#: ticket/comment.php:41 ticket/queue.php:50
+msgid "Any Group"
+msgstr "Alle grupper"
+
+#: config/prefs.php.dist:55
+msgid "Ascending"
+msgstr "Stigende"
+
+#: lib/api.php:709
+msgid "Assign"
+msgstr "Tildel"
+
+#: ticket/people.php:128
+msgid "Assign Ticket Succeeded"
+msgstr "Tildeling av sak utført"
+
+#: lib/Whups.php:479 lib/Ticket.php:601 lib/Driver.php:142
+#: config/prefs.php.dist:44
+msgid "Assigned"
+msgstr "Tildelt"
+
+#: templates/comment.inc:66
+#, php-format
+msgid "Assigned to %s"
+msgstr "Tildelt til %s"
+
+#: admin.php:955
+msgid "Associations updated successfully."
+msgstr "Koblingene er oppdatert."
+
+#: ticket/update.php:64 ticket/comment.php:29 lib/Create.php:124
+msgid "Attachment"
+msgstr "Vedlegg"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Vedlegget %s ble slettet."
+
+#: lib/Ticket.php:388
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Fant ikke vedlegget %s."
+
+#: lib/Ticket.php:603
+msgid "Attachments"
+msgstr "Vedlegg"
+
+#: query.php:139
+msgid "Attribute Criteria"
+msgstr "Egenskapskriterier"
+
+#: lib/Admin.php:713 lib/Admin.php:759 lib/Admin.php:782
+msgid "Attribute Description"
+msgstr "Beskrivelse av egenskap"
+
+#: lib/Admin.php:712 lib/Admin.php:737 lib/Admin.php:756 lib/Admin.php:779
+msgid "Attribute Name"
+msgstr "Navn på egenskap"
+
+#: lib/Admin.php:370
+msgid "Attributes for this Type"
+msgstr "Egenskaper til denne typen"
+
+#: config/prefs.php.dist:126
+msgid "Autolink to other tickets in comments?"
+msgstr "Automatisk link til andre saker i kommentarer?"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Snittdager for ferdigstilling etter eier"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Snittdager for ferdigstilling etter kø"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Snittdager for ferdigstilling etter innmelder"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Gjennomsnittstid en sak er uløst"
+
+#: lib/Query.php:523
+msgid "Branch Type"
+msgstr "Grentype"
+
+#: lib/Query.php:56
+msgid "Case Insensitive Substring"
+msgstr "Delstreng (ikke skill mellom store/små bokstaver)"
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Endre"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr "Endre hvordan visning av søkeresultater er sortert."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Endre valg for epostmeldinger av saksaktivitet."
+
+#: query.php:142
+msgid "Choose Action:"
+msgstr "Velg handling:"
+
+#: lib/Query.php:161
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Velg Ny Spørring istedetfor å slette rotnoden."
+
+#: lib/Create.php:33 lib/Create.php:67
+msgid "Choose:"
+msgstr "Velg:"
+
+#: config/prefs.php.dist:136
+msgid "Chronological (oldest first)"
+msgstr "Kronologisk (eldste først)"
+
+#: templates/savedsearches.inc:27
+msgid "Clear All Searches"
+msgstr "Fjern alle søk"
+
+#: lib/Admin.php:421
+msgid "Clone"
+msgstr "Klon"
+
+#: lib/Admin.php:427
+msgid "Clone Description"
+msgstr "Kloningsbeskrivelse"
+
+#: admin.php:120 lib/Admin.php:313
+msgid "Clone Type"
+msgstr "Kloningstype"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Kommaseparerte verdier (CSV-fil)"
+
+#: templates/queryrenderer.inc:101 templates/comment.inc:90
+#: templates/comment.inc:121 ticket/update.php:65 ticket/people.php:78
+#: ticket/type.php:35 ticket/comment.php:28 ticket/queue.php:38
+#: lib/Whups.php:193
+msgid "Comment"
+msgstr "Kommentar"
+
+#: ticket/comment.php:94
+msgid "Comment added"
+msgstr "Kommentar lagt til"
+
+#: ticket/comment.php:100
+#, php-format
+msgid "Comment on %s"
+msgstr "Kommentar på %s"
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr "Kommentør"
+
+#: lib/Admin.php:425
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopi av %s"
+
+#: lib/MIME/Viewer/zip.php:54
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Kunne ikke pakke ut den forespurte filen fra Zip-arkivet."
+
+#: lib/Query.php:595
+msgid "Could not find any groups."
+msgstr "Fant ingen grupper."
+
+#: lib/Mail.php:86
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Fant ikke sak \"%s\"."
+
+#: lib/Admin.php:364
+msgid "Create Default Priorities"
+msgstr "Opprett standardprioriteter"
+
+#: lib/Admin.php:354
+msgid "Create Default States"
+msgstr "Opprett standardtilstander"
+
+#: config/prefs.php.dist:68
+msgid "Create Ticket"
+msgstr "Opprett sak"
+
+#: lib/Create.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Opprett sak - Steg 1"
+
+#: lib/Create.php:58
+msgid "Create Ticket - Step 2"
+msgstr "Opprett sak - Steg 2"
+
+#: lib/Create.php:98
+msgid "Create Ticket - Step 3"
+msgstr "Opprett sak - Steg 3"
+
+#: lib/Create.php:142
+msgid "Create Ticket - Step 4"
+msgstr "Opprett sak - Steg 4"
+
+#: lib/Whups.php:478 lib/Ticket.php:600 config/prefs.php.dist:43
+msgid "Created"
+msgstr "Opprettet"
+
+#: lib/Ticket.php:471 lib/Ticket.php:486
+msgid "Created By"
+msgstr "Opprettet av"
+
+#: query.php:195 query.php:212
+msgid "Current Query"
+msgstr "Gjeldende spørring"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr "Gjeldende sakstype"
+
+#: lib/Ticket.php:531
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "IKKE SVAR PÅ DENNE MELDINGEN. DENNEN EPOSTADRESSEN BLIR IKKE LEST."
+
+#: config/prefs.php.dist:99
+msgid "Date/Time format for search results"
+msgstr "Dato/klokkeformat for søkeresultater"
+
+#: config/prefs.php.dist:46
+msgid "Default sorting criteria:"
+msgstr "Standard sorteringskriterier:"
+
+#: config/prefs.php.dist:57
+msgid "Default sorting direction:"
+msgstr "Standard sorteringsrekkefølge:"
+
+#: query.php:143 lib/Whups.php:202
+msgid "Delete"
+msgstr "Slett"
+
+#: lib/Whups.php:649 lib/Whups.php:650
+#, php-format
+msgid "Delete %s"
+msgstr "Slett %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Slette %s?"
+
+#: admin.php:847 lib/Admin.php:725
+msgid "Delete Attribute"
+msgstr "Slett egenskap"
+
+#: lib/Admin.php:771
+msgid "Delete Attribute Confirmation"
+msgstr "Bekreft sletting av egenskap"
+
+#: admin.php:485 lib/Admin.php:549
+msgid "Delete Priority"
+msgstr "Slett prioritet"
+
+#: lib/Admin.php:595
+msgid "Delete Priority Confirmation"
+msgstr "Bekreft sletting av prioritet"
+
+#: lib/Query.php:145
+msgid "Delete Query"
+msgstr "Slett spørring"
+
+#: lib/Query.php:882
+msgid "Delete Query?"
+msgstr "Slette spørring?"
+
+#: admin.php:268 lib/Admin.php:119
+msgid "Delete Queue"
+msgstr "Slett kø"
+
+#: lib/Admin.php:204
+msgid "Delete Queue Confirmation"
+msgstr "Bekreft sletting av kø"
+
+#: templates/savedsearches.inc:45 templates/savedsearches.inc:46
+msgid "Delete Search"
+msgstr "Slett søk"
+
+#: admin.php:375 lib/Admin.php:458
+msgid "Delete State"
+msgstr "Slett tilstand"
+
+#: lib/Admin.php:507
+msgid "Delete State Confirmation"
+msgstr "Bekreft sletting av tilstand"
+
+#: admin.php:646 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "Slett emne"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "Bekreft sletting av emne"
+
+#: admin.php:114 lib/Admin.php:313
+msgid "Delete Type"
+msgstr "Slett type"
+
+#: lib/Admin.php:384
+msgid "Delete Type Confirmation"
+msgstr "Bekreft sletting av type"
+
+#: admin.php:738 lib/Admin.php:637
+msgid "Delete Version"
+msgstr "Slett versjon"
+
+#: lib/Admin.php:683
+msgid "Delete Version Confirmation"
+msgstr "Bekreft sletting av versjon"
+
+#: lib/Ticket.php:476 lib/Ticket.php:522
+msgid "Deleted Attachment"
+msgstr "Slettet vedlegg"
+
+#: templates/comment.inc:62
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Slettet vedlegg: %s"
+
+#: config/prefs.php.dist:56
+msgid "Descending"
+msgstr "Synkende"
+
+#: lib/Create.php:125
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Visningsvalg"
+
+#: lib/Whups.php:641
+msgid "Download"
+msgstr "Last ned"
+
+#: query.php:144
+msgid "Edit"
+msgstr "Rediger"
+
+#: lib/Admin.php:148 lib/Admin.php:338
+#, php-format
+msgid "Edit %s"
+msgstr "Rediger %s"
+
+#: admin.php:842 lib/Admin.php:725 lib/Admin.php:748
+msgid "Edit Attribute"
+msgstr "Rediger egenskap"
+
+#: lib/Admin.php:372
+msgid "Edit Attributes"
+msgstr "Rediger egenskaper"
+
+#: lib/Query.php:134
+msgid "Edit Permissions"
+msgstr "Rediger tilganger"
+
+#: lib/Admin.php:362
+msgid "Edit Priorities"
+msgstr "Rediger prioriteringer"
+
+#: admin.php:480 lib/Admin.php:549 lib/Admin.php:572
+msgid "Edit Priority"
+msgstr "Rediger prioritering"
+
+#: lib/Query.php:126
+msgid "Edit Query"
+msgstr "Rediger spørring"
+
+#: admin.php:262 lib/Admin.php:119 lib/Admin.php:122
+msgid "Edit Queue"
+msgstr "Rediger kø"
+
+#: admin.php:32 lib/Admin.php:121
+msgid "Edit Queues"
+msgstr "Rediger køer"
+
+#: admin.php:370 lib/Admin.php:458 lib/Admin.php:481
+msgid "Edit State"
+msgstr "Rediger tilstand"
+
+#: lib/Admin.php:352
+msgid "Edit States"
+msgstr "Rediger tilstander"
+
+#: admin.php:641 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "Rediger emne"
+
+#: admin.php:34
+msgid "Edit Subjects"
+msgstr "Rediger emner"
+
+#: admin.php:108 lib/Admin.php:313
+msgid "Edit Type"
+msgstr "Rediger type"
+
+#: admin.php:33
+msgid "Edit Types"
+msgstr "Rediger typer"
+
+#: admin.php:733 lib/Admin.php:637 lib/Admin.php:660
+msgid "Edit Version"
+msgstr "Rediger versjon"
+
+#: lib/Admin.php:724
+msgid "Edit or Delete Attributes"
+msgstr "Rediger eller slett egenskaper"
+
+#: lib/Admin.php:548
+msgid "Edit or Delete Priorities"
+msgstr "Rediger eller slett prioriteringer"
+
+#: lib/Admin.php:118
+msgid "Edit or Delete Queues"
+msgstr "Rediger eller slett køer"
+
+#: lib/Admin.php:457
+msgid "Edit or Delete States"
+msgstr "Rediger eller slett tilstander"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Rediger eller slett emner"
+
+#: lib/Admin.php:312
+msgid "Edit or Delete Types"
+msgstr "Rediger eller slett typer"
+
+#: lib/Admin.php:636
+msgid "Edit or Delete Versions"
+msgstr "Rediger eller slett versjoner"
+
+#: lib/Admin.php:191
+msgid "Edit the permissions on this queue"
+msgstr "Rediger tilganger til denne køen"
+
+#: lib/Admin.php:186
+msgid "Edit the users responsible for this queue"
+msgstr "Endre brukere som er ansvarlig for denne køen"
+
+#: lib/Admin.php:165
+msgid "Edit the versions for this queue"
+msgstr "Rediger versjoner for denne køen"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "Epostadresse som skal varsles"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Epostadresser som skal fjernes"
+
+#: query.php:171
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "Feil: Ukjent spørreform %s, går tilbake til standard"
+
+#: lib/Query.php:55
+msgid "Exact Match"
+msgstr "Nøyaktig treff"
+
+#: runquery.php:69 runquery.php:83 lib/Query.php:138
+msgid "Execute Query"
+msgstr "Kjør spørring"
+
+#: lib/Admin.php:809
+msgid "For tickets from these queues"
+msgstr "For saker fra disse køene"
+
+#: lib/Admin.php:813
+msgid "For tickets which are"
+msgstr "For saker som er"
+
+#: templates/menu.inc:5 lib/Block/summary.php:42
+msgid "Go"
+msgstr "Kjør"
+
+#: lib/Block/summary.php:42
+msgid "GoTo: "
+msgstr "Gå til: "
+
+#: query.php:136
+msgid "Group Criteria"
+msgstr "Gruppekriterier"
+
+#: ticket/people.php:66 lib/Create.php:173
+msgid "Group Owners"
+msgstr "Gruppeeiere"
+
+#: templates/queryrenderer.inc:98 lib/Query.php:596 lib/Query.php:598
+msgid "Groups"
+msgstr "Grupper"
+
+#: lib/api.php:697
+msgid "Hidden Comments"
+msgstr "Skjulte kommentarer"
+
+#: ticket/index.php:43 lib/Whups.php:189
+msgid "History"
+msgstr "Historikk"
+
+#: query.php:145
+msgid "Hoist"
+msgstr "Rykk opp ett nivå"
+
+#: templates/queryrenderer.inc:96 lib/Whups.php:470 lib/Query.php:671
+#: config/prefs.php.dist:36
+msgid "Id"
+msgstr "Id"
+
+#: search.php:52
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+"Hvis du ikke velger noen kategorier vil ingen filtrering bli utført på denne "
+"sakskategorien."
+
+#: search.php:55
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+"Hvis du ikke velger noen typer, vil ingen filtrering bli utført på denne "
+"sakstypen."
+
+#: lib/Admin.php:816
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Hvis du velger meldinger som ikke har noen eier, hvem skal vi da sende epost "
+"til?"
+
+#: query.php:146
+msgid "Insert And"
+msgstr "Sett inn AND"
+
+#: lib/Query.php:515
+msgid "Insert Branch"
+msgstr "Sett inn gren"
+
+#: query.php:148
+msgid "Insert Not"
+msgstr "Sett inn NOT"
+
+#: query.php:147
+msgid "Insert Or"
+msgstr "Sett inn OR"
+
+#: lib/Whups.php:160
+msgid "Invalid Ticket Id"
+msgstr "Ugyldig saksid"
+
+#: lib/Admin.php:162
+msgid "Keep a set of versions for this queue?"
+msgstr "Behold et versjonssett av denne køen?"
+
+#: templates/prevnext.inc:17
+msgid "Last>>"
+msgstr "Siste>>"
+
+#: lib/Query.php:139 lib/Query.php:842
+msgid "Load Query"
+msgstr "Laste inn spørring"
+
+#: config/prefs.php.dist:97
+msgid "MM/DD/YY"
+msgstr "MM/DD/ÅÅ"
+
+#: config/prefs.php.dist:98
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/ÅÅ TT:MM:SS"
+
+#: lib/Admin.php:419
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Lag en kloning av %s"
+
+#: lib/Query.php:770
+msgid "Match"
+msgstr "Treff"
+
+#: lib/Query.php:540 lib/Query.php:628 lib/Query.php:771
+msgid "Match Operator"
+msgstr "Sammenligningstype"
+
+#: lib/Query.php:59
+msgid "Match Pattern"
+msgstr "Sammenlign mønster"
+
+#: lib/Query.php:58
+msgid "Match Word"
+msgstr "Sammenlign ord"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Maksimal tid en sak er uløst"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Minimumstid en sak er uløst"
+
+#: config/prefs.php.dist:137
+msgid "Most recent first"
+msgstr "Nyeste først"
+
+#: ticket/queue.php:173
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Flyttet sak %d til \"%s\""
+
+#: mybugs.php:51
+#, php-format
+msgid "My %s"
+msgstr "Mine %s"
+
+#: mybugs_edit.php:121
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Mine %s :: Legg til innhold"
+
+#: search.php:192 lib/Block/myqueries.php:3 lib/Block/myqueries.php:26
+msgid "My Queries"
+msgstr "Mine spørringer"
+
+#: search.php:187 lib/Block/mysearches.php:3 lib/Block/mysearches.php:24
+msgid "My QuickSearches"
+msgstr "Mine hurtigsøk"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Mine forespørsler"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:66
+msgid "My Tickets"
+msgstr "Mine saker"
+
+#: lib/Ticket.php:537
+#, php-format
+msgid "NEW: %s"
+msgstr "NY: %s"
+
+#: lib/Query.php:819 lib/Query.php:857
+msgid "Name"
+msgstr "Navn"
+
+#: lib/Admin.php:424
+msgid "Name of the cloned copy"
+msgstr "Navn på den klonede kopien"
+
+#: lib/Driver.php:141
+msgid "New"
+msgstr "Ny"
+
+#: lib/Ticket.php:475 lib/Ticket.php:517
+msgid "New Attachment"
+msgstr "Nytt vedlegg"
+
+#: templates/comment.inc:55 templates/comment.inc:57
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Nytt vedlegg: %s"
+
+#: lib/Query.php:124 lib/Block/myqueries.php:28
+msgid "New Query"
+msgstr "Ny spørring"
+
+#: ticket/queue.php:37
+msgid "New Queue"
+msgstr "Ny kø"
+
+#: ticket/people.php:75
+msgid "New State"
+msgstr "Ny tilstand"
+
+#: ticket/create.php:27 lib/Block/summary.php:27
+msgid "New Ticket"
+msgstr "Ny sak"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Ny type"
+
+#: templates/prevnext.inc:16
+msgid "Next>"
+msgstr "Neste>"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "No"
+msgstr "Nei"
+
+#: lib/Block/myqueries.php:49
+msgid "No queries have been saved"
+msgstr "Ingen spørringer har blitt lagret"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr "Ingen søk fjernet."
+
+#: lib/Block/mysearches.php:43
+msgid "No searches have been saved"
+msgstr "Ingen søk har blitt lagret"
+
+#: reports.php:17
+msgid "No stats available."
+msgstr "Ingen statistikk tilgjengelig."
+
+#: lib/Driver.php:318
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Fant ikke backend \"%s\""
+
+#: lib/Block/mytickets.php:50 lib/Block/summary.php:87
+#: lib/Block/myrequests.php:51
+msgid "No summary"
+msgstr "Intet sammendrag"
+
+#: lib/Block/mytickets.php:60 lib/Block/myrequests.php:61
+msgid "No tickets are assigned to you."
+msgstr "Det er ingen saker som er tildelt deg"
+
+#: lib/Whups.php:510
+msgid "No tickets matched your search criteria."
+msgstr "Ingen saker inneholdt dine søkekriterier."
+
+#: lib/Block/summary.php:74
+msgid "No tickets to display"
+msgstr "Ingen saker å vise"
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Ingen"
+
+#: templates/queryrenderer.inc:92 lib/Query.php:520
+msgid "Not"
+msgstr "Ikke"
+
+#: query.php:77
+msgid "Not yet implemented."
+msgstr "Foreløpig ikke implementert"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Varslingsvalg"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users"
+msgstr "Bare varsle meg ved saksendringer fra andre brukere"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Åpne saker etter eier"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Åpne saker etter prioritet"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Åpne saker etter kø"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Åpne saker etter innmelder"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Åpne saker etter tilstand"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Åpne saker etter type"
+
+#: templates/queryrenderer.inc:91 lib/Query.php:519
+msgid "Or"
+msgstr "Eller"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Andre valg"
+
+#: templates/queryrenderer.inc:97 ticket/people.php:60 ticket/people.php:72
+#: lib/Create.php:167 lib/Create.php:179 lib/Whups.php:477 lib/Ticket.php:474
+#: lib/Ticket.php:509 lib/Ticket.php:510 lib/Ticket.php:512 lib/Ticket.php:596
+msgid "Owners"
+msgstr "Eiere"
+
+#: lib/Whups.php:196
+msgid "People"
+msgstr "Personer"
+
+#: lib/Whups.php:649
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Slette %s for godt?"
+
+#: ticket/update.php:22 ticket/people.php:21 ticket/type.php:17
+#: ticket/delete.php:17 ticket/queue.php:17 ticket/deleteAttachment.php:17
+msgid "Permission Denied"
+msgstr "Tilgang nektet"
+
+#: ticket/update.php:83 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr "Tilgang nektet."
+
+#: runquery.php:35 query.php:29 lib/Query.php:894
+msgid "Permission denied."
+msgstr "Tilgang nektet."
+
+#: lib/Admin.php:360 lib/Admin.php:402
+msgid "Priorities for this Type"
+msgstr "Prioriteter for denne typen"
+
+#: templates/queryrenderer.inc:138 ticket/update.php:52 ticket/type.php:69
+#: ticket/queue.php:116 lib/Create.php:122 lib/Whups.php:474
+#: lib/Ticket.php:466 lib/Ticket.php:594 lib/Query.php:699
+#: config/prefs.php.dist:40
+msgid "Priority"
+msgstr "Prioritet"
+
+#: templates/comment.inc:99
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Prioritet ⇒ %s"
+
+#: lib/Admin.php:537 lib/Admin.php:583 lib/Admin.php:606
+msgid "Priority Description"
+msgstr "Prioritetsbeskrivelse"
+
+#: lib/Admin.php:536 lib/Admin.php:561 lib/Admin.php:580 lib/Admin.php:603
+msgid "Priority Name"
+msgstr "Prioritetsnavn"
+
+#: query.php:134
+msgid "Property Criteria"
+msgstr "Egenskapskriterier"
+
+#: query.php:152
+msgid "Query Builder"
+msgstr "Spørringsgenerator"
+
+#: lib/Query.php:95
+msgid "Query Parameters"
+msgstr "Spørringsparametre"
+
+#: runquery.php:77
+msgid "Query Results"
+msgstr "Spørringsresultater"
+
+#: search.php:48 templates/queryrenderer.inc:107 lib/Whups.php:475
+#: lib/Ticket.php:463 lib/Ticket.php:575 lib/Ticket.php:579 lib/Query.php:682
+#: config/prefs.php.dist:41
+msgid "Queue"
+msgstr "Kø"
+
+#: templates/comment.inc:107
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Kø ⇒ %s"
+
+#: lib/Admin.php:106 lib/Admin.php:155 lib/Admin.php:214
+msgid "Queue Description"
+msgstr "Købeskrivelse"
+
+#: lib/Admin.php:105 lib/Admin.php:134 lib/Admin.php:152 lib/Admin.php:211
+#: lib/Create.php:33 lib/Create.php:41
+msgid "Queue Name"
+msgstr "Kønavn"
+
+#: ticket/queue.php:85 lib/Create.php:80 lib/Ticket.php:584 lib/Ticket.php:588
+msgid "Queue Version"
+msgstr "Køversjon"
+
+#: admin.php:35 templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Kø/type-matrise"
+
+#: search.php:139
+#, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s, Summary: %s"
+msgstr "Kø: %s, Sak: %s, Kategori: %s, Type: %s, Sammendrag: %s"
+
+#: lib/api.php:156 lib/api.php:700
+msgid "Queues"
+msgstr "Køer"
+
+#: lib/Ticket.php:539
+#, php-format
+msgid "RESOLVED: %s"
+msgstr "LØST: %s"
+
+#: lib/Admin.php:786
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne egenskapen? Det kan forårsake "
+"dataproblemer!"
+
+#: lib/Admin.php:610
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne prioriteten? Det kan forårsake "
+"dataproblemer!"
+
+#: lib/Query.php:885
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"Ønsker du virkelig å slette denne spørringen? Handlingen kan ikke gjøres om."
+
+#: lib/Admin.php:218
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne køen? Det kan forårsake dataproblemer!"
+
+#: lib/Admin.php:522
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne tilstanden? Det kan forårsake "
+"dataproblemer!"
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette dette emnet? Det kan forårsake dataproblemer!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr "Ønsker du virkelig å slette denne saken? Den vil IKKE bli arkivert!"
+
+#: lib/Admin.php:406
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne typen? Det kan forårsake dataproblemer!"
+
+#: lib/Admin.php:698
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Ønsker du virkelig å slette denne versjonen? Det kan forårsake dataproblemer!"
+
+#: search.php:169
+msgid "Refine Search"
+msgstr "Endre søk"
+
+#: admin.php:922
+msgid "Reminders were sent."
+msgstr "Påminnelser ble sendt."
+
+#: lib/Admin.php:267
+msgid "Remove User"
+msgstr "Fjern bruker"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Fjern overvåker"
+
+#: reports.php:22
+msgid "Reports"
+msgstr "Rapporter"
+
+#: templates/queryrenderer.inc:99 lib/Ticket.php:599
+msgid "Requester"
+msgstr "Innmelder"
+
+#: lib/Whups.php:480 lib/Ticket.php:602 lib/Driver.php:143
+#: config/prefs.php.dist:45
+msgid "Resolved"
+msgstr "Løst"
+
+#: lib/Admin.php:269
+msgid "Responsible Users"
+msgstr "Ansvarlige brukere"
+
+#: ticket/update.php:76
+msgid "Restrict Comment to:"
+msgstr "Begrens kommentar til:"
+
+#: lib/Admin.php:170
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Begrense saksemner til en angitt liste?"
+
+#: templates/prevnext.inc:25
+msgid "Return to Search Results"
+msgstr "Returner til søkeresultater"
+
+#: templates/searchresults.inc:94
+msgid "Save"
+msgstr "Lagre"
+
+#: lib/Query.php:142 lib/Query.php:817
+msgid "Save Query"
+msgstr "Lagre spørring"
+
+#: templates/searchresults.inc:88
+msgid "Save these results as: "
+msgstr "Lagre resultatene som: "
+
+#: lib/Query.php:774
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Søk %s egenskap"
+
+#: lib/Query.php:777
+msgid "Search Attribute"
+msgstr "Søkeegenskap"
+
+#: lib/Query.php:543 lib/Query.php:630
+msgid "Search Comments"
+msgstr "Søkekommentarer"
+
+#: lib/Query.php:541
+msgid "Search Owners"
+msgstr "Søkeeiere"
+
+#: lib/Query.php:542
+msgid "Search Requester"
+msgstr "Søkeinnmelder"
+
+#: search.php:164
+msgid "Search Results"
+msgstr "Søkeresultater"
+
+#: templates/prevnext.inc:21
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Søkeresultater: %s av %s"
+
+#: lib/Query.php:629
+msgid "Search Summary"
+msgstr "Søkesammendrag"
+
+#: search.php:64 search.php:180 config/prefs.php.dist:67
+msgid "Search Tickets"
+msgstr "Søk i saker"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr "Søk fjernet."
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr "Søk fjernet."
+
+#: config/prefs.php.dist:69
+msgid "Select the view to display after login:"
+msgstr "Velg hva som skal vises etter pålogging:"
+
+#: admin.php:36 lib/Admin.php:797
+msgid "Send Reminders"
+msgstr "Send påminnelser"
+
+#: lib/Admin.php:808
+msgid "Send only for this list of ticket ids"
+msgstr "Bare send for denne listens saksnumre"
+
+#: lib/Whups.php:200
+msgid "Set Queue"
+msgstr "Angi kø"
+
+#: ticket/queue.php:194 ticket/queue.php:203 ticket/queue.php:215
+msgid "Set Queue - Step 1"
+msgstr "Angi kø - Steg 1"
+
+#: ticket/queue.php:195 ticket/queue.php:204
+msgid "Set Queue - Step 2"
+msgstr "Angi kø - Steg 2"
+
+#: ticket/queue.php:205
+msgid "Set Queue - Step 3"
+msgstr "Angi kø - Steg 3"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Angi kø for %s"
+
+#: lib/Whups.php:201
+msgid "Set Type"
+msgstr "Angi type"
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr "Angi type - Steg 1"
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr "Angi type - Steg 2"
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr "Angi type for %s"
+
+#: config/prefs.php.dist:108
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "Vis \"(X Dager siden)\" i datofeltet til søkeresultatene?"
+
+#: config/prefs.php.dist:135
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Vis kommentarer i kronologisk rekkefølge, eller nyeste først?"
+
+#: config/prefs.php.dist:86
+msgid "Show ticket IDs in the summary view?"
+msgstr "Vis saksnumre i sammendragsvisningen?"
+
+#: config/prefs.php.dist:78
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Vis saker du har forespurt i sammendragsvisningen?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Enkel HTML-rapport"
+
+#: templates/searchresults.inc:113 templates/searchresults.inc:116
+#, php-format
+msgid "Sort by %s"
+msgstr "Sorter etter %s"
+
+#: templates/queryrenderer.inc:130 ticket/update.php:49 ticket/type.php:68
+#: ticket/queue.php:115 lib/Whups.php:472 lib/Ticket.php:465
+#: lib/Ticket.php:593 lib/Query.php:694 config/prefs.php.dist:38
+msgid "State"
+msgstr "Tilstand"
+
+#: templates/comment.inc:95
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Tilstand ⇒ %s"
+
+#: lib/Admin.php:446 lib/Admin.php:495
+msgid "State Category"
+msgstr "Tilstandskategori"
+
+#: lib/Admin.php:445 lib/Admin.php:492 lib/Admin.php:518
+msgid "State Description"
+msgstr "Beskrivelse av tilstand"
+
+#: lib/Admin.php:444 lib/Admin.php:470 lib/Admin.php:489 lib/Admin.php:515
+msgid "State Name"
+msgstr "Tilstandsnavn"
+
+#: lib/Admin.php:350 lib/Admin.php:398
+msgid "States for this Type"
+msgstr "Tilstander for denne typen"
+
+#: lib/Create.php:123 config/prefs.php.dist:37
+msgid "Subject"
+msgstr "Emne"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Navn på emne"
+
+#: lib/Admin.php:174
+msgid "Subjects associated with this Queue"
+msgstr "Emner knyttet til denne køen"
+
+#: ticket/create.php:102
+msgid "Submit"
+msgstr "Send"
+
+#: admin.php:161
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Klonet %s til %s."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr "Endre sakstypen."
+
+#: templates/queryrenderer.inc:102 ticket/update.php:46 ticket/delete.php:34
+#: lib/Whups.php:471 lib/Ticket.php:473 lib/Ticket.php:488 lib/Ticket.php:489
+#: lib/Ticket.php:491 lib/Ticket.php:573
+msgid "Summary"
+msgstr "Sammendrag"
+
+#: templates/comment.inc:49
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Sammendrag ⇒ %s"
+
+#: search.php:50
+msgid "Summary like"
+msgstr "Sammendrag liknende"
+
+#: templates/comment.inc:71
+#, php-format
+msgid "Taken from %s"
+msgstr "Tatt fra %s"
+
+#: lib/Query.php:627
+msgid "Text"
+msgstr "Tekst"
+
+#: query.php:138
+msgid "Text Criteria"
+msgstr "Tekstkriterier"
+
+#: view.php:44 lib/Ticket.php:339 lib/Ticket.php:377
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "VFS-driveren må være konfigurert for å kunne laste opp vedlegg."
+
+#: admin.php:811
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Egenskapen \"%s\" har blitt lagt til %s."
+
+#: admin.php:893
+msgid "The attribute has been deleted."
+msgstr "Egenskapen har blitt slettet."
+
+#: admin.php:864
+msgid "The attribute has been modified."
+msgstr "Egenskapen har blitt endret."
+
+#: admin.php:898
+msgid "The attribute was not deleted."
+msgstr "Egenskapen ble ikke slettet."
+
+#: admin.php:449
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Prioriteten \"%s\" har blit lagt til %s."
+
+#: admin.php:530
+msgid "The priority has been deleted."
+msgstr "Prioriteten har blitt slettet."
+
+#: admin.php:502
+msgid "The priority has been modified."
+msgstr "Prioriteten har blitt endret."
+
+#: admin.php:535
+msgid "The priority was not deleted."
+msgstr "Prioriteten ble ikke slettet."
+
+#: lib/Query.php:898
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Spørringen \"%s\" kunne ikke bli slettet: %s"
+
+#: lib/Query.php:900
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Spørringen \"%s\" har blitt slettet."
+
+#: lib/Query.php:865
+msgid "The query couldn't be loaded:"
+msgstr "Spørringen kunne ikke bli lastet inn:"
+
+#: admin.php:240
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Spørringen \"%s\" har blitt opprettet."
+
+#: admin.php:318
+msgid "The queue has been deleted."
+msgstr "Køen har blitt slettet."
+
+#: admin.php:290
+msgid "The queue has been modified."
+msgstr "Køen har blitt endret."
+
+#: admin.php:323
+msgid "The queue was not deleted."
+msgstr "Køen ble ikke slettet."
+
+#: lib/MIME/Viewer/zip.php:60
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Den forespurte filen eksisterer ikke i den vedlagte Zip-filen."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "Den forespurte malen eksisterer ikke."
+
+#: admin.php:338
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Tilstanden \"%s\" har blitt lagt til %s."
+
+#: admin.php:421
+msgid "The state has been deleted."
+msgstr "Tilstanden har blitt slettet."
+
+#: admin.php:392
+msgid "The state has been modified."
+msgstr "Tilstanden har blitt endret."
+
+#: admin.php:426
+msgid "The state was not deleted."
+msgstr "Tilstanden ble ikke slettet."
+
+#: admin.php:625
+#, php-format
+msgid "The subject \"%s\" has been added."
+msgstr "Emnet \"%s\" har blitt lagt til."
+
+#: admin.php:681
+msgid "The subject has been deleted."
+msgstr "Emnet har blitt slettet."
+
+#: admin.php:662
+msgid "The subject has been modified."
+msgstr "Emnet har blitt endret."
+
+#: admin.php:686
+msgid "The subject was not deleted."
+msgstr "Emnet ble ikke slettet."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "Saken ble ikke slettet."
+
+#: admin.php:179
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Typen \"%s\" har blitt endret."
+
+#: admin.php:221
+msgid "The type has been deleted."
+msgstr "Typen har blitt slettet."
+
+#: admin.php:226
+msgid "The type was not deleted."
+msgstr "Typen ble ikke slettet."
+
+#: admin.php:701
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Versjonen \"%s\" har blitt lagt til %s."
+
+#: admin.php:783
+msgid "The version has been deleted."
+msgstr "Versjonen har blitt slettet."
+
+#: admin.php:755
+msgid "The version has been modified."
+msgstr "Versjonen har blitt endret."
+
+#: admin.php:788
+msgid "The version was not deleted."
+msgstr "Versjonen ble ikke slettet."
+
+#: lib/Admin.php:733
+msgid "There are no attribute types to edit"
+msgstr "Det finnes ingen egenskaper å redigere"
+
+#: lib/Query.php:777
+msgid "There are no attributes defined for the current type"
+msgstr "Det finnes ingen egenskaper definert for den gjeldende typen"
+
+#: lib/Admin.php:557
+msgid "There are no priorities to edit"
+msgstr "Det finnes ingen prioriteringer å redigere"
+
+#: lib/Admin.php:805
+msgid "There are no queues available."
+msgstr "Det finnes ingen køer tilgjengelig."
+
+#: lib/Admin.php:131
+msgid "There are no queues to edit"
+msgstr "Det finnes ingen køer å redigere"
+
+#: lib/Create.php:41
+msgid "There are no queues which you can create tickets in."
+msgstr "Det finnes ingen køer du kan opprettet saker i."
+
+#: search.php:42
+msgid "There are no queues which you can search."
+msgstr "Det finnes ingen køer du kan søke i."
+
+#: lib/Admin.php:466
+msgid "There are no states to edit"
+msgstr "Det finnes ingen tilstander å redigere"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "Det finnes ingen emner å redigere"
+
+#: lib/Create.php:64
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Det er ingen sakstyper knyttet til denne køen; inntil det er så kan du ikke "
+"opprette noen saker i denne køen."
+
+#: lib/Admin.php:321
+msgid "There are no types to edit"
+msgstr "Det finnes ingen typer å redigere"
+
+#: lib/Admin.php:283
+msgid "There are no users responsible for this queue."
+msgstr "Ingen brukere er ansvarlige for denne køen."
+
+#: ticket/people.php:71 lib/Create.php:178
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Det finnes ingen brukere denne køen kan knyttes opp mot."
+
+#: lib/Admin.php:645
+msgid "There are no versions to edit"
+msgstr "Det finnes ingen versjoner å redigere"
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "Det finnes ikke data for denne grafen."
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Det finnes ikke data for denne rapporten "
+
+#: admin.php:569
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr ""
+"Det oppstod en feil når \"%s\" skulle legges til listen over ansvarlige for "
+"\"%s\": %s"
+
+#: admin.php:627
+#, php-format
+msgid "There was an error adding the subject: %s."
+msgstr "Det oppstod en feil når emnet %s skulle legges til."
+
+#: admin.php:814
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Det oppstod en feil under oppretting av egenskapen: %s."
+
+#: admin.php:451
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "Det oppstod en feil under oppretting av prioriteten: %s."
+
+#: admin.php:248
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "Det oppstod en feil under oppretting av køen: %s."
+
+#: admin.php:340
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "Det oppstod en feil under oppretting av tilstanden: %s."
+
+#: admin.php:703
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "Det oppstod en feil under oppretting av versjonen: %s."
+
+#: admin.php:895
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Det oppstod en feil ved sletting av egenskapen: %s."
+
+#: admin.php:532
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Det oppstod en feil ved sletting av prioriteten: %s."
+
+#: admin.php:320
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "Det oppstod en feil ved sletting av køen: %s."
+
+#: admin.php:423
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "Det oppstod en feil ved sletting av tilstanden: %s."
+
+#: admin.php:683
+#, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Det oppstod en feil ved sletting av emnet: %s."
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Det oppstod en feil ved sletting av saken: %s."
+
+#: admin.php:223
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "Det oppstod en feil ved sletting av typen: %s."
+
+#: admin.php:785
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "Det oppstod en feil ved sletting av versjonen: %s."
+
+#: admin.php:871
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Det oppstod en feil ved redigering av egenskapen: %s."
+
+#: admin.php:507
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "Det oppstod en feil ved redigering av prioriteten: %s."
+
+#: admin.php:304
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "Det oppstod en feil ved redigering av køen: %s."
+
+#: admin.php:397
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "Det oppstod en feil ved redigering av tilstanden: %s."
+
+#: admin.php:667
+#, php-format
+msgid "There was an error editing the subject: %s."
+msgstr "Det oppstod en feil ved redigering av emnet: %s."
+
+#: admin.php:760
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "Det oppstod en feil ved redigering av versjonen: %s."
+
+#: lib/Admin.php:243
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Det oppstod en feil ved visning av brukerliste: %s; %s"
+
+#: admin.php:177
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "Det oppstod en feil under modifisering av typen: %s."
+
+#: search.php:158
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Det oppstod en feil ved utføring av søket: %s"
+
+#: admin.php:605
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr ""
+"Det oppstod en feil ved fjerning av \"%s\" fra listen over ansvarlige for \"%"
+"s\": %s"
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Dette er ikke en mal for søkeresultater."
+
+#: lib/Admin.php:57
+msgid "This is not a valid subject."
+msgstr "Dette er ikke et gyldig emne."
+
+#: ticket/queue.php:80 lib/Create.php:75
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Denne køen krever at du angir en versjon, men det finnes ingen versjoner "
+"knyttet til den. Inntil versjoner er opprettet for denne køen vil du ikke "
+"kunne opprette nye saker."
+
+#: lib/Ticket.php:485
+msgid "Ticket"
+msgstr "Sak"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Sak %d er blitt slettet."
+
+#: lib/api.php:746
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Sak %s - %s"
+
+#: lib/Driver/sql.php:869
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Sak %s ble ikke funnet."
+
+#: search.php:49
+msgid "Ticket ID"
+msgstr "Saksnr"
+
+#: lib/Create.php:121
+msgid "Ticket State"
+msgstr "Sakstilstand"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Saksstatistikk"
+
+#: lib/Block/summary.php:3
+msgid "Ticket Summary"
+msgstr "Sakssammendrag"
+
+#: lib/Create.php:69
+msgid "Ticket Type"
+msgstr "Sakstype"
+
+#: lib/Admin.php:158
+msgid "Ticket Types associated with this Queue"
+msgstr "Sakstyper knyttet til denne køen"
+
+#: lib/Ticket.php:481
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr "SaksURL: %s\n"
+
+#: ticket/update.php:137
+msgid "Ticket Updated"
+msgstr "Sak oppdatert"
+
+#: lib/api.php:767
+msgid "Tickets"
+msgstr "Saker"
+
+#: lib/Block/summary.php:51
+msgid "Tickets assigned to you"
+msgstr "Saker som er tildelt deg"
+
+#: search.php:52
+msgid "Tickets which are"
+msgstr "Saker som er"
+
+#: lib/Block/summary.php:68
+msgid "Tickets you requested"
+msgstr "Saker du forespurte"
+
+#: templates/queryrenderer.inc:121 ticket/queue.php:88 lib/Whups.php:473
+#: lib/Ticket.php:467 lib/Ticket.php:592 lib/Query.php:674
+#: config/prefs.php.dist:39
+msgid "Type"
+msgstr "Type"
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Type ⇒ %s"
+
+#: lib/Admin.php:301 lib/Admin.php:345 lib/Admin.php:394
+msgid "Type Description"
+msgstr "Typebeskrivelse"
+
+#: lib/Admin.php:300 lib/Admin.php:324 lib/Admin.php:342 lib/Admin.php:391
+msgid "Type Name"
+msgstr "Typenavn"
+
+#: search.php:55
+msgid "Types"
+msgstr "Typer"
+
+#: lib/Ticket.php:597
+msgid "Unassigned"
+msgstr "Ikke tildelt"
+
+#: lib/Admin.php:816
+msgid "Unassigned tickets"
+msgstr "Ikke tildelte saker"
+
+#: lib/Driver.php:140
+msgid "Unconfirmed"
+msgstr "Ubekreftet"
+
+#: templates/queryrenderer.inc:148 templates/queryrenderer.inc:188
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Ukjent nodetype %s"
+
+#: templates/comment.inc:84 lib/Whups.php:191 lib/api.php:714
+msgid "Update"
+msgstr "Oppdater"
+
+#: ticket/update.php:153
+#, php-format
+msgid "Update %s"
+msgstr "Oppdater %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Oppdater koblinger"
+
+#: ticket/people.php:134
+#, php-format
+msgid "Update People for %s"
+msgstr "Oppdater personer for %s"
+
+#: lib/Ticket.php:472 lib/Ticket.php:486
+msgid "Updated By"
+msgstr "Oppdatert av"
+
+#: lib/Admin.php:242 lib/Admin.php:252 lib/Admin.php:255
+msgid "User"
+msgstr "Bruker"
+
+#: query.php:135
+msgid "User Criteria"
+msgstr "Brukerkriterier"
+
+#: lib/Query.php:539
+msgid "User ID"
+msgstr "BrukerID"
+
+#: lib/Admin.php:184
+msgid "Users responsible for this Queue"
+msgstr "Brukere ansvarlige for denne køen"
+
+#: lib/Admin.php:287
+msgid "Users responsible for this queue"
+msgstr "Brukere asvarlige for denne køen"
+
+#: templates/queryrenderer.inc:115 lib/Whups.php:476 lib/Ticket.php:464
+#: lib/Query.php:686 config/prefs.php.dist:42
+msgid "Version"
+msgstr "Versjon"
+
+#: lib/Admin.php:625 lib/Admin.php:671 lib/Admin.php:694
+msgid "Version Description"
+msgstr "Versjonsbeskrivelse"
+
+#: lib/Admin.php:624 lib/Admin.php:649 lib/Admin.php:668 lib/Admin.php:691
+msgid "Version Name"
+msgstr "Versjonsnavn"
+
+#: templates/reports/graphs.inc:13
+msgid "View Graphs"
+msgstr "Vis grafer"
+
+#: ticket/people.php:91 ticket/type.php:46 ticket/comment.php:42
+#: ticket/queue.php:51
+msgid "Viewable only by members of"
+msgstr "Kun synlig for medlemmer av"
+
+#: lib/Whups.php:194
+msgid "Watch"
+msgstr "Overvåk"
+
+#: ticket/watch.php:76
+#, php-format
+msgid "Watchers for %s"
+msgstr "Overvåkere for %s"
+
+#: config/prefs.php.dist:95
+msgid "Weekday Day Month"
+msgstr "Ukedag Dag Måned"
+
+#: config/prefs.php.dist:96
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Ukedag Dag Måned TT:MM:SS TZ"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "Yes"
+msgstr "Ja"
+
+#: mybugs_edit.php:67
+#, php-format
+msgid "You are not allowed to create more than %d blocks."
+msgstr "Du har ikke lov til å lage flere enn %d blokker."
+
+#: view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr "Du har ikke lov til å se på denne saken."
+
+#: lib/Driver/sql.php:872
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Du har ikke rettigheter til å gå inn på denne saken (%s)."
+
+#: lib/Query.php:854
+msgid "You have no saved queries."
+msgstr "Du har ingen lagrede spørringer."
+
+#: lib/Whups.php:504
+msgid "You must select at least one queue to send reminders for."
+msgstr "Du må velge minst en kø det skal sendes påminnelser for."
+
+#: ticket/comment.php:26 lib/Create.php:35
+msgid "Your Email Address"
+msgstr "Din epostadresse"
+
+#: ticket/create.php:157
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Ditt saksnummer er %s. En kyndig person har fått en melding om denne "
+"forespørselen."
+
+#: lib/Whups.php:569
+msgid "_Admin"
+msgstr "_Admin"
+
+#: lib/Whups.php:558
+#, php-format
+msgid "_My %s"
+msgstr "_Mine %s"
+
+#: lib/Whups.php:561
+msgid "_New Ticket"
+msgstr "_Ny Sak"
+
+#: lib/Whups.php:563
+msgid "_Query Builder"
+msgstr "Spørringsgenerator"
+
+#: lib/Whups.php:565
+msgid "_Reports"
+msgstr "_Rapporter"
+
+#: lib/Whups.php:560
+msgid "_Search"
+msgstr "Søk"
+
+#: templates/queryrenderer.inc:168
+msgid "contains (case insensitive) substring"
+msgstr "inneholder (case insensitiv) substreng"
+
+#: templates/queryrenderer.inc:172
+msgid "contains (case sensitive) substring"
+msgstr "inneholder (case sensitive) substreng"
+
+#: templates/queryrenderer.inc:176
+msgid "contains the word"
+msgstr "inneholder ordet"
+
+#: scripts/mail-filter.php:176
+#, php-format
+msgid "error processing message: %s"
+msgstr "feil ved prosessering av melding: %s"
+
+#: lib/api.php:755
+msgid "estimated time"
+msgstr "estimert tid"
+
+#: templates/queryrenderer.inc:164
+msgid "is"
+msgstr "er"
+
+#: templates/queryrenderer.inc:156
+msgid "is greater than"
+msgstr "er større enn"
+
+#: templates/queryrenderer.inc:160
+msgid "is less than"
+msgstr "er mindre enn"
+
+#: templates/queryrenderer.inc:180
+msgid "matches the pattern"
+msgstr "er likt mønsteret"
--- /dev/null
+# Dutch translation for Whups
+# Copyright 2004-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Stefan de Konink <skinkie@utelisys.com>, 2004. (Initial Version)
+# Updated Han Spruyt, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups-0.0.1-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-11-28 15:02+0100\n"
+"PO-Revision-Date: 2004-01-16 00:30+0100\n"
+"Last-Translator: Stefan de Konink <skinkie@utelisys.com>\n"
+"Language-Team: Dutch <dev@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.php:603
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" is niet langer verantwoordelijk voor '%s'"
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: lib/Driver.php:278
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) schreef:"
+
+#: admin.php:567
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s toegevoegd aan de verantwoordelijken voor \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s dagen"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s krijgt een melding dat deze ticket is bijgewerkt."
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s krijgt niet langer meldingen over bewerking van deze ticket."
+
+#: admin.php:81
+msgid "- Stage 1"
+msgstr "- Stap 1"
+
+#: admin.php:86
+msgid "- Stage 2"
+msgstr "- Stap 2"
+
+#: scripts/mail-filter.php:158
+msgid "--priority or --priority-id must specify a valid Priority."
+msgstr "--prioriteit of --prioriteit-id moet een geldigen Prioriteit zijn."
+
+#: scripts/mail-filter.php:152
+msgid "--queue or --queue-id must specify a valid Queue."
+msgstr "--queue of --queue-id moet een geldige Queue zijn."
+
+#: scripts/mail-filter.php:161
+msgid "--state or --state-id must specify a valid State."
+msgstr "--status of --status-id moet een geldige Status zijn."
+
+#: scripts/mail-filter.php:155
+msgid "--type or --type-id must specify a valid Type."
+msgstr "--type of --type-id moet een geldig Type zijn."
+
+#: templates/prevnext.inc:12
+msgid "<<First"
+msgstr "<<Eerste"
+
+#: templates/prevnext.inc:13
+msgid "<Prev"
+msgstr "<Vorige"
+
+#: lib/Block/summary.php:89
+msgid "<em>No summary</em>"
+msgstr "<em>Geen samenvatting</em>"
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "Toegang geweigerd voor %s"
+
+#: lib/Admin.php:709
+msgid "Add Attribute"
+msgstr "Voeg adtribuut toe"
+
+#: lib/Query.php:764
+msgid "Add Attribute Criterion"
+msgstr "Voeg Attribuut Criterium toe"
+
+#: query.php:199
+msgid "Add Criterion"
+msgstr "Voeg Criterium toe"
+
+#: lib/Query.php:590
+msgid "Add Group Criterion"
+msgstr "Voeg Groepscriterium toe"
+
+#: lib/Admin.php:533
+msgid "Add Priority"
+msgstr "Voeg Prioriteit toe"
+
+#: lib/Query.php:669
+msgid "Add Property Criterion"
+msgstr "Voeg Eigenschapscriterium toe"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "Voeg Queue toe"
+
+#: lib/Admin.php:441
+msgid "Add State"
+msgstr "Voeg Status toe"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Voeg Onderwerp toe"
+
+#: lib/Query.php:625
+msgid "Add Text Criterion"
+msgstr "Voeg Tekst Criterium toe"
+
+#: lib/Admin.php:298 lib/Admin.php:299
+msgid "Add Type"
+msgstr "Voeg Type toe"
+
+#: admin.php:81 admin.php:86
+#, php-format
+msgid "Add Type %s"
+msgstr "Voeg Type %s toe"
+
+#: lib/Query.php:537
+msgid "Add User Criterion"
+msgstr "Voeg Gebruiker Criterium toe"
+
+#: lib/Admin.php:229
+msgid "Add Users"
+msgstr "Voeg Gebruikers toe"
+
+#: lib/Admin.php:621
+msgid "Add Version"
+msgstr "Voeg Versie toe"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Voeg 'Kijker' toe"
+
+#: ticket/create.php:154
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Toevoegen van incident mislukt: %s."
+
+#: admin.php:54 lib/api.php:687
+msgid "Administration"
+msgstr "Administratie"
+
+#: templates/queryrenderer.inc:90 lib/Query.php:518
+msgid "And"
+msgstr "En"
+
+#: search.php:39 search.php:99 search.php:101 search.php:116 search.php:132
+#: lib/Query.php:675 lib/Query.php:683 lib/Query.php:688 lib/Query.php:695
+#: lib/Query.php:700
+msgid "Any"
+msgstr "Elke"
+
+#: ticket/update.php:75 ticket/people.php:81 ticket/type.php:45
+#: ticket/comment.php:41 ticket/queue.php:50
+msgid "Any Group"
+msgstr "Elke Groep"
+
+#: config/prefs.php.dist:47
+msgid "Ascending"
+msgstr "Oplopend"
+
+#: lib/api.php:702
+msgid "Assign"
+msgstr "Toewijzen"
+
+#: ticket/people.php:119
+msgid "Assign Ticket Succeeded"
+msgstr "Incident Toegewezen"
+
+#: lib/Whups.php:464 lib/Ticket.php:600 lib/Driver.php:142
+#: config/prefs.php.dist:36
+msgid "Assigned"
+msgstr "Toegewezen"
+
+#: templates/comment.inc:62
+#, php-format
+msgid "Assigned to %s"
+msgstr "Toegewezen aan: %s"
+
+#: admin.php:953
+msgid "Associations updated successfully."
+msgstr "Koppelingen succesvol bijgewerkt."
+
+#: ticket/update.php:64 ticket/comment.php:29 lib/Create.php:124
+msgid "Attachment"
+msgstr "Bijlage"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Bijlage %s is verwijderd."
+
+#: lib/Ticket.php:387
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Bijlage %s niet gevonden."
+
+#: lib/Ticket.php:602
+msgid "Attachments"
+msgstr "Bijlagen"
+
+#: query.php:133
+msgid "Attribute Criteria"
+msgstr "Attribuut Criterium"
+
+#: lib/Admin.php:713 lib/Admin.php:759 lib/Admin.php:782
+msgid "Attribute Description"
+msgstr "Attribuut Omschrijving"
+
+#: lib/Admin.php:712 lib/Admin.php:737 lib/Admin.php:756 lib/Admin.php:779
+msgid "Attribute Name"
+msgstr "Attribuut naam"
+
+#: lib/Admin.php:370
+msgid "Attributes for this Type"
+msgstr "Attributen voor dit Type"
+
+#: config/prefs.php.dist:118
+msgid "Autolink to other tickets in comments?"
+msgstr "Autolink naar andere incidenten in reacties?"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Gemiddeld aantal dagen om door een Eigenaar te sluiten"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Gemiddeld aantal dagen om door een Queue te sluiten"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Gemiddeld aantal dagen om door Melder te sluiten"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Gemiddelde behandel tijd voor een onopgesost incident"
+
+#: lib/Query.php:523
+msgid "Branch Type"
+msgstr "Type Onderdeel"
+
+#: lib/Query.php:56
+msgid "Case Insensitive Substring"
+msgstr "Niet Hoofdlettergevoelig Deelwoord"
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Verander"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Verander weergave instellingen zoals hoe zoekresultaten zijn gesorteerd."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Verander opties voor e-mail meldingen bij incident activiteit."
+
+#: query.php:136
+msgid "Choose Action:"
+msgstr "Kies Actie:"
+
+#: lib/Query.php:161
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Selecteer Nieuwe Query in plaats van verwijderen van de root ingang"
+
+#: lib/Create.php:33 lib/Create.php:67
+msgid "Choose:"
+msgstr "Selecteer:"
+
+#: config/prefs.php.dist:128
+msgid "Chronological (oldest first)"
+msgstr "Chronologisch (oudste eerst)"
+
+#: templates/savedsearches.inc:27
+msgid "Clear All Searches"
+msgstr "Wis alle Zoekopdrachten"
+
+#: lib/Admin.php:421
+msgid "Clone"
+msgstr "Dubbel"
+
+#: lib/Admin.php:427
+msgid "Clone Description"
+msgstr "Dubbele Beschrijving"
+
+#: admin.php:120 lib/Admin.php:313
+msgid "Clone Type"
+msgstr "Dubbel Type"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Komma Gescheiden Waarden (CSV bestand)"
+
+#: templates/queryrenderer.inc:101 templates/comment.inc:86
+#: templates/comment.inc:117 ticket/update.php:65 ticket/people.php:72
+#: ticket/type.php:35 ticket/comment.php:28 ticket/queue.php:38
+#: lib/Whups.php:193
+msgid "Comment"
+msgstr "Reactie"
+
+#: ticket/comment.php:94
+msgid "Comment added"
+msgstr "Reactie toegevoegd"
+
+#: ticket/comment.php:100
+#, php-format
+msgid "Comment on %s"
+msgstr "Reactie op %s"
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr "Uitlegger"
+
+#: lib/Admin.php:425
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopie van %s"
+
+#: lib/MIME/Viewer/zip.php:54
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Kon het gewenste bestand niet uit het zip-bestand halen."
+
+#: lib/Query.php:595
+msgid "Could not find any groups."
+msgstr "Kon geen groepen vinden."
+
+#: lib/Mail.php:86
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Kon incident \"%s\" niet vinden."
+
+#: lib/Admin.php:364
+msgid "Create Default Priorities"
+msgstr "Maak Standaard Prioriteitet"
+
+#: lib/Admin.php:354
+msgid "Create Default States"
+msgstr "Maak Standaard Staten"
+
+#: config/prefs.php.dist:60
+msgid "Create Ticket"
+msgstr "Maak Incident"
+
+#: lib/Create.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Maak Incident - Stap 1"
+
+#: lib/Create.php:58
+msgid "Create Ticket - Step 2"
+msgstr "Maak Incident - Stap 2"
+
+#: lib/Create.php:98
+msgid "Create Ticket - Step 3"
+msgstr "Maak Incident - Stap 3"
+
+#: lib/Create.php:142
+msgid "Create Ticket - Step 4"
+msgstr "Maak Incident - Stap 4"
+
+#: lib/Whups.php:463 lib/Ticket.php:599 config/prefs.php.dist:35
+msgid "Created"
+msgstr "Aangemaakt"
+
+#: lib/Ticket.php:470 lib/Ticket.php:485
+msgid "Created By"
+msgstr "Gemaakt Door"
+
+#: query.php:189 query.php:206
+msgid "Current Query"
+msgstr "Huidige Zoekopdracht"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr "Huidig Incident Type"
+
+#: lib/Ticket.php:530
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "BEANTWOORD DIT BERICHT NIET. HET RETOURADRES IS NIET GELDIG"
+
+#: config/prefs.php.dist:91
+msgid "Date/Time format for search results"
+msgstr "Datum/Tijd formaat voor zoek resultaten"
+
+#: config/prefs.php.dist:38
+msgid "Default sorting criteria:"
+msgstr "Standaard sorteer criteria:"
+
+#: config/prefs.php.dist:49
+msgid "Default sorting direction:"
+msgstr "Standaard sorteer richting:"
+
+#: query.php:137 lib/Whups.php:204
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: lib/Whups.php:632 lib/Whups.php:633
+#, php-format
+msgid "Delete %s"
+msgstr "Verwijder %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Verwijder %s?"
+
+#: admin.php:847 lib/Admin.php:725
+msgid "Delete Attribute"
+msgstr "Verwijder Attribuut"
+
+#: lib/Admin.php:771
+msgid "Delete Attribute Confirmation"
+msgstr "Verwijder Attribuut Bevestiging"
+
+#: admin.php:485 lib/Admin.php:549
+msgid "Delete Priority"
+msgstr "Verwijder Prioriteit"
+
+#: lib/Admin.php:595
+msgid "Delete Priority Confirmation"
+msgstr "Verwijder Prioriteit Bevestiging"
+
+#: lib/Query.php:145
+msgid "Delete Query"
+msgstr "Verwijder Query"
+
+#: lib/Query.php:882
+msgid "Delete Query?"
+msgstr "Verwijder Query?"
+
+#: admin.php:268 lib/Admin.php:119
+msgid "Delete Queue"
+msgstr "Verwijder Queue"
+
+#: lib/Admin.php:204
+msgid "Delete Queue Confirmation"
+msgstr "Verwijder Queue Bevestiging"
+
+#: templates/savedsearches.inc:45 templates/savedsearches.inc:46
+msgid "Delete Search"
+msgstr "Verwijder Zoekopdracht"
+
+#: admin.php:375 lib/Admin.php:458
+msgid "Delete State"
+msgstr "Verwijder Status"
+
+#: lib/Admin.php:507
+msgid "Delete State Confirmation"
+msgstr "Verwijder Status Bevestiging"
+
+#: admin.php:646 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "Verwijder Onderwerp"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "Verwijder Onderwerp Bevestiging"
+
+#: admin.php:114 lib/Admin.php:313
+msgid "Delete Type"
+msgstr "Verwijder Type"
+
+#: lib/Admin.php:384
+msgid "Delete Type Confirmation"
+msgstr "Verwijder Type Bevestiging"
+
+#: admin.php:738 lib/Admin.php:637
+msgid "Delete Version"
+msgstr "Verwijder Versie"
+
+#: lib/Admin.php:683
+msgid "Delete Version Confirmation"
+msgstr "Verwijder Versie Bevestiging"
+
+#: lib/Ticket.php:475 lib/Ticket.php:521
+msgid "Deleted Attachment"
+msgstr "Bijlage verwijderd"
+
+#: templates/comment.inc:58
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Bijlage \"%s\" is verwijderd."
+
+#: config/prefs.php.dist:48
+msgid "Descending"
+msgstr "Aflopend"
+
+#: lib/Create.php:125
+msgid "Description"
+msgstr "Omschrijving"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Weergave Opties"
+
+#: lib/Whups.php:624
+msgid "Download"
+msgstr "Download"
+
+#: query.php:138
+msgid "Edit"
+msgstr "Bewerk"
+
+#: lib/Admin.php:148 lib/Admin.php:338
+#, php-format
+msgid "Edit %s"
+msgstr "Bewerk %s"
+
+#: admin.php:842 lib/Admin.php:725 lib/Admin.php:748
+msgid "Edit Attribute"
+msgstr "Bewerk Attribuut"
+
+#: lib/Admin.php:372
+msgid "Edit Attributes"
+msgstr "Bewerk Attributen"
+
+#: lib/Query.php:134
+msgid "Edit Permissions"
+msgstr "Rechten bewerken"
+
+#: lib/Admin.php:362
+msgid "Edit Priorities"
+msgstr "Bewerk Prioriteiten"
+
+#: admin.php:480 lib/Admin.php:549 lib/Admin.php:572
+msgid "Edit Priority"
+msgstr "Bewerk Prioriteit"
+
+#: lib/Query.php:126
+msgid "Edit Query"
+msgstr "Bewerk Zoekopdracht"
+
+#: admin.php:262 lib/Admin.php:119 lib/Admin.php:122
+msgid "Edit Queue"
+msgstr "Bewerk Queue"
+
+#: admin.php:32 lib/Admin.php:121
+msgid "Edit Queues"
+msgstr "Bewerk Queues"
+
+#: admin.php:370 lib/Admin.php:458 lib/Admin.php:481
+msgid "Edit State"
+msgstr "Bewerk Status"
+
+#: lib/Admin.php:352
+msgid "Edit States"
+msgstr "Bewerk Statussen"
+
+#: admin.php:641 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "Bewerk Onderwerp"
+
+#: admin.php:34
+msgid "Edit Subjects"
+msgstr "Bewerk Onderwerpen"
+
+#: admin.php:108 lib/Admin.php:313
+msgid "Edit Type"
+msgstr "Bewerk Type"
+
+#: admin.php:33
+msgid "Edit Types"
+msgstr "Bewerk Types"
+
+#: admin.php:733 lib/Admin.php:637 lib/Admin.php:660
+msgid "Edit Version"
+msgstr "Bewerk Versie"
+
+#: lib/Admin.php:724
+msgid "Edit or Delete Attributes"
+msgstr "Bewerk of Verwijder Attributen"
+
+#: lib/Admin.php:548
+msgid "Edit or Delete Priorities"
+msgstr "Bewerk of Verwijder Prioriteiten"
+
+#: lib/Admin.php:118
+msgid "Edit or Delete Queues"
+msgstr "Bewerk of Verwijder Queues"
+
+#: lib/Admin.php:457
+msgid "Edit or Delete States"
+msgstr "Bewerk of Verwijder Statussen"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Bewerk of Verwijder Onderwerpen"
+
+#: lib/Admin.php:312
+msgid "Edit or Delete Types"
+msgstr "Bewerk of Verwijder Types"
+
+#: lib/Admin.php:636
+msgid "Edit or Delete Versions"
+msgstr "Bewerk of Verwijder Versies"
+
+#: lib/Admin.php:191
+msgid "Edit the permissions on this queue"
+msgstr "Bewerk de recheten op deze queue"
+
+#: lib/Admin.php:186
+msgid "Edit the users responsible for this queue"
+msgstr "Bewerk de gebruikers die verantwoordelijk zijn voor deze queue"
+
+#: lib/Admin.php:165
+msgid "Edit the versions for this queue"
+msgstr "Bewerk de versies voor deze queue"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "E-mailadres voor melding"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Te verwijderen E-mailadres"
+
+#: query.php:165
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+"Fout: Onbekende zoek formulier %s, standaard eigenschappen worden gebruikt"
+
+#: lib/Query.php:55
+msgid "Exact Match"
+msgstr "Exacte Overeenkomst"
+
+#: runquery.php:69 runquery.php:83 lib/Query.php:138
+msgid "Execute Query"
+msgstr "Uitvoeren Zoekopdracht"
+
+#: lib/Admin.php:809
+msgid "For tickets from these queues"
+msgstr "Voor incidenten van deze queues"
+
+#: lib/Admin.php:813
+msgid "For tickets which are"
+msgstr "Voor incidenten die zijn"
+
+#: templates/menu.inc:5 lib/Block/summary.php:29
+msgid "Go"
+msgstr "Start"
+
+#: query.php:130
+msgid "Group Criteria"
+msgstr "Criteria Eigenschap"
+
+#: ticket/people.php:60 lib/Create.php:169
+msgid "Group Owners"
+msgstr "Groep Eigenaren"
+
+#: templates/queryrenderer.inc:98 lib/Query.php:596 lib/Query.php:598
+msgid "Groups"
+msgstr "Groepen"
+
+#: lib/api.php:690
+msgid "Hidden Comments"
+msgstr "Verborgen reacties"
+
+#: ticket/index.php:43 lib/Whups.php:189
+msgid "History"
+msgstr "Geschiedenis"
+
+#: query.php:139
+msgid "Hoist"
+msgstr "Omhoog Halen"
+
+#: templates/queryrenderer.inc:96 lib/Whups.php:455 lib/Query.php:671
+#: config/prefs.php.dist:28
+msgid "Id"
+msgstr "Nummer"
+
+#: search.php:52
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+"Wanneer U geen categorien selecteerd, zullen geen filters worden geplaatst "
+"op het incident."
+
+#: search.php:55
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+"Wanneer U geen types selecteerd, zullen geen filters worden geplaatst op het "
+"incident type."
+
+#: lib/Admin.php:816
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Wie moet een mail ontvangen als u incidenten selecteert zonder eigenaar."
+
+#: query.php:140
+msgid "Insert And"
+msgstr "Invoegen en"
+
+#: lib/Query.php:515
+msgid "Insert Branch"
+msgstr "Onderdeel Invoegen"
+
+#: query.php:142
+msgid "Insert Not"
+msgstr "Niet invoegen"
+
+#: query.php:141
+msgid "Insert Or"
+msgstr "Invoegen of"
+
+#: lib/Whups.php:160
+msgid "Invalid Ticket Id"
+msgstr "Ongeldig Incident Id"
+
+#: lib/Admin.php:162
+msgid "Keep a set of versions for this queue?"
+msgstr "Houd versies bij voor deze Queue"
+
+#: templates/prevnext.inc:17
+msgid "Last>>"
+msgstr "Laatste>>"
+
+#: lib/Query.php:139 lib/Query.php:842
+msgid "Load Query"
+msgstr "Laad Zoekopdracht"
+
+#: config/prefs.php.dist:89
+msgid "MM/DD/YY"
+msgstr "MM/DD/YY"
+
+#: config/prefs.php.dist:90
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/YY HH:MM:SS"
+
+#: lib/Admin.php:419
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Maak een dubbele van %s"
+
+#: lib/Query.php:770
+msgid "Match"
+msgstr "Overeenkomst"
+
+#: lib/Query.php:540 lib/Query.php:628 lib/Query.php:771
+msgid "Match Operator"
+msgstr "Gelijkheids Teken"
+
+#: lib/Query.php:59
+msgid "Match Pattern"
+msgstr "Overeenkomstig Patroon"
+
+#: lib/Query.php:58
+msgid "Match Word"
+msgstr "Overeenkomstig Woord"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Maximale tijd dat een incident niet is opgelost"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Minimum tijd totdat een incident wordt opgelost"
+
+#: config/prefs.php.dist:129
+msgid "Most recent first"
+msgstr "Meest recente eerst"
+
+#: ticket/queue.php:173
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Incident %d verplaatst naar \"%s\""
+
+#: mybugs.php:65
+#, php-format
+msgid "My %s"
+msgstr "Mijn %s"
+
+#: mybugs.php:44
+msgid "My Assigned Tickets"
+msgstr "Mijn Toegewezen Incidenten"
+
+#: mybugs.php:60
+msgid "My Open Requests"
+msgstr "Mijn Open Opmerkingen"
+
+#: mybugs.php:83 search.php:186 lib/Block/myqueries.php:3
+#: lib/Block/myqueries.php:26
+msgid "My Queries"
+msgstr "Mijn Zoekopdrachten"
+
+#: mybugs.php:79 search.php:182 lib/Block/mysearches.php:3
+#: lib/Block/mysearches.php:24
+msgid "My QuickSearches"
+msgstr "Mijn Snelzoekopdrachten"
+
+#: config/prefs.php.dist:58
+msgid "My Tickets"
+msgstr "Mijn Incidenten"
+
+#: lib/Ticket.php:536
+#, php-format
+msgid "NEW: %s"
+msgstr "NIEUW: %s"
+
+#: lib/Query.php:819 lib/Query.php:857
+msgid "Name"
+msgstr "Naam"
+
+#: lib/Admin.php:424
+msgid "Name of the cloned copy"
+msgstr "Naam of de dubbele kopie"
+
+#: lib/Driver.php:141
+msgid "New"
+msgstr "Nieuw"
+
+#: lib/Ticket.php:474 lib/Ticket.php:516
+msgid "New Attachment"
+msgstr "Nieuwe Bijlage"
+
+#: templates/comment.inc:51 templates/comment.inc:53
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Nieuwe Bijlage: %s"
+
+#: lib/Query.php:124 lib/Block/myqueries.php:27 lib/Block/myqueries.php:28
+msgid "New Query"
+msgstr "Nieuwe Zoekopdracht"
+
+#: ticket/queue.php:37
+msgid "New Queue"
+msgstr "Nieuwe Queue"
+
+#: ticket/people.php:69
+msgid "New State"
+msgstr "Nieuwe Status"
+
+#: ticket/create.php:27 lib/Block/summary.php:28
+msgid "New Ticket"
+msgstr "Nieuwe Ticket"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Nieuw Type"
+
+#: templates/prevnext.inc:16
+msgid "Next>"
+msgstr "Volgende>"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "No"
+msgstr "Nee"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr "Geen zoekopdrachen verwijderd."
+
+#: reports.php:17
+msgid "No stats available."
+msgstr "Geen statussen beschikbaar."
+
+#: lib/Driver.php:319
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Geen backend \"%s\" gevonden"
+
+#: lib/Whups.php:495
+msgid "No tickets matched your search criteria."
+msgstr "Geen incidenten kwamen overeen met Uw zoekopdracht."
+
+#: lib/Block/summary.php:75
+msgid "No tickets to display"
+msgstr "Geen incidenten om weer te geven"
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Geen"
+
+#: templates/queryrenderer.inc:92 lib/Query.php:520
+msgid "Not"
+msgstr "Niet"
+
+#: query.php:71
+msgid "Not yet implemented."
+msgstr "Nog niet geïmplementeerd"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Meldings Opties"
+
+#: config/prefs.php.dist:109
+msgid "Only notify me of ticket changes from other users"
+msgstr "Stel me op de hoogte als incidenten van andere gebruikers veranderen"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Open Incidenten per Eigenaar"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Open Incidenten per Prioriteit"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Open Incidenten per Queue"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Open Incidenten per Aanvrager"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Open Incidenten per Status"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Open Incidenten per Type"
+
+#: templates/queryrenderer.inc:91 lib/Query.php:519
+msgid "Or"
+msgstr "Of"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Andere Opties"
+
+#: templates/queryrenderer.inc:97 ticket/people.php:54 ticket/people.php:66
+#: lib/Create.php:163 lib/Create.php:175 lib/Whups.php:462 lib/Ticket.php:473
+#: lib/Ticket.php:508 lib/Ticket.php:509 lib/Ticket.php:511 lib/Ticket.php:595
+msgid "Owners"
+msgstr "Eigenaars"
+
+#: lib/Whups.php:196
+msgid "People"
+msgstr "Mensen"
+
+#: lib/Whups.php:632
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "%s definitief verwijderen?"
+
+#: ticket/update.php:22 ticket/people.php:21 ticket/type.php:17
+#: ticket/delete.php:17 ticket/queue.php:17 ticket/deleteAttachment.php:17
+msgid "Permission Denied"
+msgstr "Toegang geweigerd"
+
+#: ticket/update.php:83 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr "Toegang Geweigerd."
+
+#: runquery.php:35 query.php:29 lib/Query.php:894
+#, php-format
+msgid "Permission denied."
+msgstr "Toegang geweigerd"
+
+#: lib/Admin.php:360 lib/Admin.php:402
+msgid "Priorities for this Type"
+msgstr "Prioriteiten voor dit Type"
+
+#: templates/queryrenderer.inc:132 ticket/update.php:52 ticket/type.php:69
+#: ticket/queue.php:116 lib/Create.php:122 lib/Whups.php:459
+#: lib/Ticket.php:465 lib/Ticket.php:593 lib/Query.php:699
+#: config/prefs.php.dist:32
+msgid "Priority"
+msgstr "Prioriteit"
+
+#: templates/comment.inc:95
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Prioriteit ⇒ %s"
+
+#: lib/Admin.php:537 lib/Admin.php:583 lib/Admin.php:606
+msgid "Priority Description"
+msgstr "Prioriteit Beschrijving"
+
+#: lib/Admin.php:536 lib/Admin.php:561 lib/Admin.php:580 lib/Admin.php:603
+msgid "Priority Name"
+msgstr "Prioriteit Naam"
+
+#: query.php:128
+msgid "Property Criteria"
+msgstr "Criteria Eigenschap"
+
+#: query.php:146
+msgid "Query Builder"
+msgstr "Zoekopdracht Bouwer"
+
+#: lib/Query.php:95
+msgid "Query Parameters"
+msgstr "Zoekopdracht Parameters"
+
+#: runquery.php:77
+msgid "Query Results"
+msgstr "Zoekopdracht Resultaten"
+
+#: search.php:48 templates/queryrenderer.inc:105 lib/Whups.php:460
+#: lib/Ticket.php:462 lib/Ticket.php:574 lib/Ticket.php:578 lib/Query.php:682
+#: config/prefs.php.dist:33
+msgid "Queue"
+msgstr "Queue"
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Queue ⇒ %s"
+
+#: lib/Admin.php:106 lib/Admin.php:155 lib/Admin.php:214
+msgid "Queue Description"
+msgstr "Queue Beschrijving"
+
+#: lib/Admin.php:105 lib/Admin.php:134 lib/Admin.php:152 lib/Admin.php:211
+#: lib/Create.php:33 lib/Create.php:41
+msgid "Queue Name"
+msgstr "Queue Naam"
+
+#: ticket/queue.php:85 lib/Create.php:80 lib/Ticket.php:583 lib/Ticket.php:587
+msgid "Queue Version"
+msgstr "Queue Versie"
+
+#: admin.php:35 templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Queue/Type Matrix"
+
+#: search.php:134
+#, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s"
+msgstr "Queue: %s, Incident: %s, Categorie: %s, Type: %s"
+
+#: lib/api.php:152 lib/api.php:693
+msgid "Queues"
+msgstr "Queues"
+
+#: lib/Ticket.php:538
+#, php-format
+msgid "RESOLVED: %s"
+msgstr "OPGELOST: %s"
+
+#: lib/Admin.php:786
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Wilt u dit attribuut echt verwijderen? Dit kan dataproblemen opleveren!!"
+
+#: lib/Admin.php:610
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Wilt u deze prioriteit echt verwijderen? Dit kan dataproblemen opleveren!!"
+
+#: lib/Query.php:885
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"Zoekopdracht echt verwijderen? Deze bewerking kan niet ongedaan gemaakt "
+"worden."
+
+#: lib/Admin.php:218
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Wilt u deze queue echt verwijderen? Dit kan dataproblemen opleveren!!"
+
+#: lib/Admin.php:522
+msgid "Really delete this state? This may cause data problems!"
+msgstr "Wilt u deze status echt wissen? Dit kan dataproblemen opleveren!!"
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!"
+msgstr "Wilt u dit onderwerp echt wissen? Dit kan dataproblemen opleveren!!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Wilt u dit incident echt wissen? Het zal NIET worden gearchiveerd, en zal "
+"permanent verdwijnen."
+
+#: lib/Admin.php:406
+msgid "Really delete this type? This may cause data problems!"
+msgstr "Wilt u dit type echt wissen? Dit kan dataproblemen opleveren!!"
+
+#: lib/Admin.php:698
+msgid "Really delete this version? This may cause data problems!"
+msgstr "Wilt u deze versie echt verwijderen? Dit kan dataproblemen opleveren!!"
+
+#: search.php:164
+msgid "Refine Search"
+msgstr "Verfijn Zoekopdracht"
+
+#: admin.php:922
+msgid "Reminders were sent."
+msgstr "Herinneringen zijn verzonden."
+
+#: lib/Admin.php:267
+msgid "Remove User"
+msgstr "Verwijder Gebruiker"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Verwijder 'Kijker'"
+
+#: reports.php:22
+msgid "Reports"
+msgstr "Rapportages"
+
+#: templates/queryrenderer.inc:99 lib/Ticket.php:598
+msgid "Requester"
+msgstr "Aanvrager"
+
+#: lib/Whups.php:465 lib/Ticket.php:601 lib/Driver.php:143
+#: config/prefs.php.dist:37
+msgid "Resolved"
+msgstr "Opgelost"
+
+#: lib/Admin.php:269
+msgid "Responsible Users"
+msgstr "Verantwoordelijke Gebruikers"
+
+#: ticket/update.php:76
+msgid "Restrict Comment to:"
+msgstr "Beperk Reactie tot:"
+
+#: lib/Admin.php:170
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Begrens incident onderwerpen tot een specifieke lijst?"
+
+#: templates/prevnext.inc:25
+msgid "Return to Search Results"
+msgstr "Terug naar Zoekresultaten"
+
+#: templates/searchresults.inc:54
+msgid "Save"
+msgstr "Opslaan"
+
+#: lib/Query.php:142 lib/Query.php:817
+msgid "Save Query"
+msgstr "Sla zoekopdracht op"
+
+#: templates/searchresults.inc:48
+msgid "Save these results as: "
+msgstr "Sla deze resultaten op als:"
+
+#: lib/Query.php:774
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Zoek %s Attribuut"
+
+#: lib/Query.php:777
+msgid "Search Attribute"
+msgstr "Zoek Attribuut"
+
+#: lib/Query.php:543 lib/Query.php:630
+msgid "Search Comments"
+msgstr "Zoek Reacties"
+
+#: lib/Query.php:541
+msgid "Search Owners"
+msgstr "Zoek Eigenaars"
+
+#: lib/Query.php:542
+msgid "Search Requester"
+msgstr "Zoek Aanvrager"
+
+#: search.php:159
+msgid "Search Results"
+msgstr "Zoek Resultaten"
+
+#: templates/prevnext.inc:21
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Zoekresultaten: %s van %s"
+
+#: lib/Query.php:629
+msgid "Search Summary"
+msgstr "Zoek Samenvatting"
+
+#: search.php:64 search.php:175 config/prefs.php.dist:59
+msgid "Search Tickets"
+msgstr "Zoek Insidenten"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr "Zoekopdracht verwijderd"
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr "Zoekopdrachten verwijderd."
+
+#: config/prefs.php.dist:61
+msgid "Select the view to display after login:"
+msgstr "Selecteer het beeld dat moet weergeven worden na het inloggen:"
+
+#: admin.php:36 lib/Admin.php:797
+msgid "Send Reminders"
+msgstr "Zend Herinneringen"
+
+#: lib/Admin.php:808
+msgid "Send only for this list of ticket ids"
+msgstr "Zend alleen voor deze lijst van incident nummers"
+
+#: lib/Whups.php:200
+msgid "Set Queue"
+msgstr "Zet Queue"
+
+#: ticket/queue.php:194 ticket/queue.php:203 ticket/queue.php:215
+msgid "Set Queue - Step 1"
+msgstr "Zet Queue - Stap 1"
+
+#: ticket/queue.php:195 ticket/queue.php:204
+msgid "Set Queue - Step 2"
+msgstr "Zet Queue - Stap 2"
+
+#: ticket/queue.php:205
+msgid "Set Queue - Step 3"
+msgstr "Zet Queue - Stap 3"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Zet Queue voor %s"
+
+#: lib/Whups.php:203
+msgid "Set Type"
+msgstr "Zet Type"
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr "Zet Type - Stap 1"
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr "Zet Type - Stap 2"
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr "Zet Type voor %s"
+
+#: config/prefs.php.dist:100
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr ""
+"Laat \"(X Dagen Geleden)\" zien in het Datum veld van de zoekresultaten?"
+
+#: config/prefs.php.dist:127
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+"Moeten de reacties in chronologische volgorde worden weergeven, of moet de "
+"recentste eerst?"
+
+#: config/prefs.php.dist:78
+msgid "Show ticket IDs in the summary view?"
+msgstr "Laat incident nummers in samenvattings weergave zien?"
+
+#: config/prefs.php.dist:70
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Laat incidenten die U heeft opgevraagd zien in samenvattings weergave?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Simpel HTML Rapport"
+
+#: templates/searchresults.inc:75
+msgid "Sort Direction"
+msgstr "Sorteer Richting"
+
+#: templates/searchresults.inc:76 templates/searchresults.inc:80
+#, php-format
+msgid "Sort by %s"
+msgstr "Sorteer op %s"
+
+#: templates/queryrenderer.inc:125 ticket/update.php:49 ticket/type.php:68
+#: ticket/queue.php:115 lib/Whups.php:457 lib/Ticket.php:464
+#: lib/Ticket.php:592 lib/Query.php:694 config/prefs.php.dist:30
+msgid "State"
+msgstr "Status"
+
+#: templates/comment.inc:91
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Status ⇒ %s"
+
+#: lib/Admin.php:446 lib/Admin.php:495
+msgid "State Category"
+msgstr "Status Categorie"
+
+#: lib/Admin.php:445 lib/Admin.php:492 lib/Admin.php:518
+msgid "State Description"
+msgstr "Status Omschrijving"
+
+#: lib/Admin.php:444 lib/Admin.php:470 lib/Admin.php:489 lib/Admin.php:515
+msgid "State Name"
+msgstr "Status Naam"
+
+#: lib/Admin.php:350 lib/Admin.php:398
+msgid "States for this Type"
+msgstr "Status voor dit Type"
+
+#: lib/Create.php:123 config/prefs.php.dist:29
+msgid "Subject"
+msgstr "Onderwerp"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Onderwerp Naam"
+
+#: lib/Admin.php:174
+msgid "Subjects associated with this Queue"
+msgstr "Onderwerp gekoppeld aan deze Queue"
+
+#: ticket/create.php:102
+msgid "Submit"
+msgstr "Toevoegen"
+
+#: admin.php:161
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Succesvol %s gekopieerd naar %s."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr "Incidenttype gewijzigd."
+
+#: templates/queryrenderer.inc:102 ticket/update.php:46 ticket/delete.php:34
+#: lib/Whups.php:456 lib/Ticket.php:472 lib/Ticket.php:487 lib/Ticket.php:488
+#: lib/Ticket.php:490 lib/Ticket.php:572
+msgid "Summary"
+msgstr "Samenvatting"
+
+#: templates/comment.inc:45
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Samenvatting ⇒ %s"
+
+#: search.php:50
+msgid "Summary like"
+msgstr "Samengevat als"
+
+#: templates/comment.inc:67
+#, php-format
+msgid "Taken from %s"
+msgstr "Overgenomen van %s"
+
+#: lib/Query.php:627
+msgid "Text"
+msgstr "Tekst"
+
+#: query.php:132
+msgid "Text Criteria"
+msgstr "Tekst Criteria"
+
+#: view.php:44 lib/Ticket.php:338 lib/Ticket.php:376
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+"De VFS backend heeft een configuratie nodig om uploaden van bijlagen te "
+"gebruiken."
+
+#: admin.php:811
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Het attribuut \"%s\" is toegevoegd aan %s."
+
+#: admin.php:893
+msgid "The attribute has been deleted."
+msgstr "Het attribuut is verwijderd."
+
+#: admin.php:864
+msgid "The attribute has been modified."
+msgstr "Het attribuut is veranderd."
+
+#: admin.php:898
+msgid "The attribute was not deleted."
+msgstr "Het attribuut is niet verwijderd."
+
+#: admin.php:449
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Prioriteit \"%s\" is toegevoegd aan %s."
+
+#: admin.php:530
+msgid "The priority has been deleted."
+msgstr "De prioriteit is gewist."
+
+#: admin.php:502
+msgid "The priority has been modified."
+msgstr "De prioriteit is veranderd."
+
+#: admin.php:535
+msgid "The priority was not deleted."
+msgstr "De prioriteit is niet verwijderd."
+
+#: lib/Query.php:898
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "Zoekopdracht \"%s\" kon niet worden verwijderd: %s"
+
+#: lib/Query.php:900
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Zoekopdracht \"%s\" is verwijderd."
+
+#: lib/Query.php:865
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Zoekopdracht kon niet worden geladen."
+
+#: admin.php:240
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "De queue \"%s\" is gemaakt."
+
+#: admin.php:318
+msgid "The queue has been deleted."
+msgstr "De queue is verwijderd."
+
+#: admin.php:290
+msgid "The queue has been modified."
+msgstr "De queue is veranderd."
+
+#: admin.php:323
+msgid "The queue was not deleted."
+msgstr "De queue is niet verwijderd."
+
+#: lib/MIME/Viewer/zip.php:60
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Het gevraagde bestand bestaat niet in de Zip bijlage."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "Het opgevraagde sjabloon bestaat niet."
+
+#: admin.php:338
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Status \"%s\" is toegevoegd aan %s.'"
+
+#: admin.php:421
+msgid "The state has been deleted."
+msgstr "De status is verwijderd."
+
+#: admin.php:392
+msgid "The state has been modified."
+msgstr "De status is gewijzigd."
+
+#: admin.php:426
+msgid "The state was not deleted."
+msgstr "De status was niet verwijderd."
+
+#: admin.php:625
+#, php-format
+msgid "The subject \"%s\" has been added."
+msgstr "Onderwerp \"%s\" is toegevoegd."
+
+#: admin.php:681
+msgid "The subject has been deleted."
+msgstr "Het onderwerp is verwijderd."
+
+#: admin.php:662
+msgid "The subject has been modified."
+msgstr "Het onderwerp is veranderd."
+
+#: admin.php:686
+msgid "The subject was not deleted."
+msgstr "Het onderwerp is niet verwijderd."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "Het incident is niet verwijderd."
+
+#: admin.php:179
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Het type \"%s\" is veranderd."
+
+#: admin.php:221
+msgid "The type has been deleted."
+msgstr "Het type is verwijderd."
+
+#: admin.php:226
+msgid "The type was not deleted."
+msgstr "Het type is niet verwijderd."
+
+#: admin.php:701
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Versie \"%s\" is toegevoegd aan %s."
+
+#: admin.php:783
+msgid "The version has been deleted."
+msgstr "De versie is verwijderd."
+
+#: admin.php:755
+msgid "The version has been modified."
+msgstr "De versie is veranderd."
+
+#: admin.php:788
+msgid "The version was not deleted."
+msgstr "De versie is niet verwijderd."
+
+#: lib/Admin.php:733
+msgid "There are no attribute types to edit"
+msgstr "Er zijn geen attribuut typen om te bewerken"
+
+#: lib/Query.php:777
+msgid "There are no attributes defined for the current type"
+msgstr "Er zijn geen attributen gedefineerd voor het huidige type"
+
+#: lib/Admin.php:557
+msgid "There are no priorities to edit"
+msgstr "Er zijn geen prioriteiten om te bewerken"
+
+#: lib/Admin.php:805
+msgid "There are no queues available."
+msgstr "Er zijn geen queues beschikbaar."
+
+#: lib/Admin.php:131
+msgid "There are no queues to edit"
+msgstr "Er zijn geen queues om te bewerken"
+
+#: lib/Create.php:41
+msgid "There are no queues which you can create tickets in."
+msgstr "Er zijn geen queues waar U incidenten kunt melden."
+
+#: search.php:42
+msgid "There are no queues which you can search."
+msgstr "Er zijn geen queues die U kunt zoeken."
+
+#: lib/Admin.php:466
+msgid "There are no states to edit"
+msgstr "Er zijn geen statussen om te bewerken"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "Er zijn geen onderwerpen om te bewerken"
+
+#: lib/Create.php:64
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Er zijn geen incidenttypen gekoppeld aan deze queue; daarom kunt U geen "
+"incidenten in deze queue zetten."
+
+#: lib/Admin.php:321
+msgid "There are no types to edit"
+msgstr "Er zijn geen types om te bewerken"
+
+#: lib/Admin.php:283
+msgid "There are no users responsible for this queue."
+msgstr "Er zijn geen gebruikers verantwoordelijk voor deze queue."
+
+#: ticket/people.php:65 lib/Create.php:174
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Er zijn geen gebruikers aan wie dit incident kan worden toegewezen."
+
+#: lib/Admin.php:645
+msgid "There are no versions to edit"
+msgstr "Er zijn geen versies om te bewerken"
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "Er is geen data voor deze grafiek."
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Er is geen data voor die rapport."
+
+#: admin.php:569
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr ""
+"Er was een fout bij het toevoegen van '%s' aan de lijst van "
+"verantwoordelijken voor '%s': %s"
+
+#: admin.php:627
+#, php-format
+msgid "There was an error adding the subject: %s."
+msgstr "Er was een fout tijdens het toevoegen van het onderwerp: %s."
+
+#: admin.php:814
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Er was een fout tijdens het toevoegen van het attribuut: %s."
+
+#: admin.php:451
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "Er was een fout tijdens het toevoegen van de prioriteit: %s."
+
+#: admin.php:248
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "Fout bij het aanmaken van queue: %s."
+
+#: admin.php:340
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "Fout bij het maken van status: %s."
+
+#: admin.php:703
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "Fout bij het maken van versie: %s."
+
+#: admin.php:895
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Fout bij het verwijderen van attribuut: %s."
+
+#: admin.php:532
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Fout bij het verwijderen van prioriteit: %s."
+
+#: admin.php:320
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "Fout bij het verwijderen van queue: %s."
+
+#: admin.php:423
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "Er was een fout tijdens het verwijderen van de status: %s."
+
+#: admin.php:683
+#, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Fout bij het verwijderen van onderwerp: %s."
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Fout bij het verwijderen van incident: %s."
+
+#: admin.php:223
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "Fout bij het verwijderen van type: %s."
+
+#: admin.php:785
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "Fout bij het verwijderen van versie: %s."
+
+#: admin.php:871
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Fout bij het bewerken van attribuut: %s."
+
+#: admin.php:507
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "Fout bij het bewerken van priority: %s."
+
+#: admin.php:304
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "Fout bij bet bewerken van queue: %s."
+
+#: admin.php:397
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "Fout bij het bewerken van status: %s."
+
+#: admin.php:667
+#, php-format
+msgid "There was an error editing the subject: %s."
+msgstr "Fout bij het bewerken van onderwerp: %s."
+
+#: admin.php:760
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "Fout bij het bewerken van versie: %s."
+
+#: lib/Admin.php:243
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Fout bij het weergeven van gebruikers: %s; %s"
+
+#: mybugs.php:39
+#, php-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr "Fout bij het weergeven van uw toegewezen tickets: %s"
+
+#: mybugs.php:55
+#, php-format
+msgid "There was an error listing your open requests: %s"
+msgstr "Fout bij het weergeven van uw open aanvragen: %s"
+
+#: admin.php:177
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "Fout bij het veranderen van type: %s"
+
+#: search.php:153
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Fout bij het uitvoeren van zoekopdracht: %s"
+
+#: admin.php:605
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr ""
+"Fout bij het verwijderen van \"%s\" uit de lijst van verantwoordelijken voor "
+"'%s': %s"
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Dit is geen zoek resultaat sjabloon."
+
+#: lib/Admin.php:57
+msgid "This is not a valid subject."
+msgstr "Dit is geen geldig onderwerp."
+
+#: ticket/queue.php:80 lib/Create.php:75
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Deze queue vereist dat U een versie opgeeft, maar er zijn geen versies "
+"gekoppeld. Totdat er versies zijn aangelegd voor deze queue, kunt u geen "
+"tickets maken."
+
+#: lib/Ticket.php:484
+msgid "Ticket"
+msgstr "Incidenten"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Incident %d is verwijderd."
+
+#: lib/api.php:739
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Incident %s - %s"
+
+#: lib/Driver/sql.php:871
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Incident %s is niet gevonden."
+
+#: search.php:49
+msgid "Ticket ID"
+msgstr "Incident Nummer"
+
+#: lib/Create.php:121
+msgid "Ticket State"
+msgstr "Incident Status"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Incident Statussen"
+
+#: lib/Block/summary.php:3
+msgid "Ticket Summary"
+msgstr "Incident Samenvatting"
+
+#: lib/Create.php:69
+msgid "Ticket Type"
+msgstr "Incident Type"
+
+#: lib/Admin.php:158
+msgid "Ticket Types associated with this Queue"
+msgstr "Incident Type gekoppeld met deze Queue"
+
+#: lib/Ticket.php:480
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr "Incident URL: %s\n"
+
+#: ticket/update.php:137
+msgid "Ticket Updated"
+msgstr "Incident Gewijzigd"
+
+#: lib/api.php:760
+msgid "Tickets"
+msgstr "Tickets"
+
+#: lib/Block/summary.php:52
+msgid "Tickets assigned to you"
+msgstr "Incidenten toegewezen aan u"
+
+#: search.php:52
+msgid "Tickets which are"
+msgstr "Incidenten welke zijn"
+
+#: lib/Block/summary.php:69
+msgid "Tickets you requested"
+msgstr "Incidenten die u heeft opgevraagd"
+
+#: templates/queryrenderer.inc:117 ticket/queue.php:88 lib/Whups.php:458
+#: lib/Ticket.php:466 lib/Ticket.php:591 lib/Query.php:674
+#: config/prefs.php.dist:31
+msgid "Type"
+msgstr "Type"
+
+#: templates/comment.inc:99
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Type ⇒ %s"
+
+#: lib/Admin.php:301 lib/Admin.php:345 lib/Admin.php:394
+msgid "Type Description"
+msgstr "Type Omschrijving"
+
+#: lib/Admin.php:300 lib/Admin.php:324 lib/Admin.php:342 lib/Admin.php:391
+msgid "Type Name"
+msgstr "Type Naam"
+
+#: search.php:55
+msgid "Types"
+msgstr "Types"
+
+#: lib/Ticket.php:596
+msgid "Unassigned"
+msgstr "Niet toegewezen"
+
+#: lib/Admin.php:816
+msgid "Unassigned tickets"
+msgstr "Niet toegewezen incidenten"
+
+#: lib/Driver.php:140
+msgid "Unconfirmed"
+msgstr "Niet bevestigd"
+
+#: templates/queryrenderer.inc:171
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Onbekende node type %s"
+
+#: templates/comment.inc:80 lib/Whups.php:191 lib/api.php:707
+msgid "Update"
+msgstr "Bijwerken"
+
+#: ticket/update.php:153
+#, php-format
+msgid "Update %s"
+msgstr "%s bijwerken"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Werk koppelingen bij"
+
+#: ticket/people.php:125
+#, php-format
+msgid "Update People for %s"
+msgstr "Bijwerken van Verantwoordelijken voor %s."
+
+#: lib/Ticket.php:471 lib/Ticket.php:485
+msgid "Updated By"
+msgstr "Bijgewerkt door"
+
+#: lib/Admin.php:242 lib/Admin.php:252 lib/Admin.php:255
+msgid "User"
+msgstr "Gebruiker"
+
+#: query.php:129
+msgid "User Criteria"
+msgstr "Gebruiker Criteria"
+
+#: lib/Query.php:539
+msgid "User ID"
+msgstr "Gebruikers nummer"
+
+#: lib/Admin.php:184
+msgid "Users responsible for this Queue"
+msgstr "Gebruikers verantwoordelijk voor deze Queue"
+
+#: lib/Admin.php:287
+msgid "Users responsible for this queue"
+msgstr "Gebruikers, verantwoordelijk voor deze Queue"
+
+#: templates/queryrenderer.inc:111 lib/Whups.php:461 lib/Ticket.php:463
+#: lib/Query.php:686 config/prefs.php.dist:34
+msgid "Version"
+msgstr "Versie"
+
+#: lib/Admin.php:625 lib/Admin.php:671 lib/Admin.php:694
+msgid "Version Description"
+msgstr "Versie Beschrijving"
+
+#: lib/Admin.php:624 lib/Admin.php:649 lib/Admin.php:668 lib/Admin.php:691
+msgid "Version Name"
+msgstr "Versie Naam"
+
+#: templates/reports/graphs.inc:13
+msgid "View Graphs"
+msgstr "Bekijk Grafieken"
+
+#: ticket/people.php:82 ticket/type.php:46 ticket/comment.php:42
+#: ticket/queue.php:51
+msgid "Viewable only by members of"
+msgstr "Alleen zichtbaar door een lid van"
+
+#: lib/Whups.php:194
+msgid "Watch"
+msgstr "Bewaak"
+
+#: ticket/watch.php:76
+#, php-format
+msgid "Watchers for %s"
+msgstr "'Bewakers' voor %s"
+
+#: config/prefs.php.dist:87
+msgid "Weekday Day Month"
+msgstr "Weekdag Dag Maand"
+
+#: config/prefs.php.dist:88
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Weekdag Dag Maand HH:MM:SS TZ"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "Yes"
+msgstr "Ja"
+
+#: view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr "U mag dit incident niet te bekijken."
+
+#: lib/Driver/sql.php:874
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "U heeft geen permissie om dit incident te bekijken (%s)."
+
+#: lib/Query.php:854
+msgid "You have no saved queries."
+msgstr "U heeft geen opgeslagen zoekopdrachten."
+
+#: lib/Whups.php:489
+msgid "You must select at least one queue to send reminders for."
+msgstr "U moet minimaal een queue selectere om een herinnering voor te zenden."
+
+#: ticket/comment.php:26 lib/Create.php:35
+msgid "Your Email Address"
+msgstr "Uw E-Mail adres"
+
+#: ticket/create.php:157
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr "Uw incident ID is %s. Een melding is naar juiste persoon gestuurd."
+
+#: lib/Whups.php:554
+msgid "_Admin"
+msgstr "Beheer"
+
+#: lib/Whups.php:543
+#, php-format
+msgid "_My %s"
+msgstr "_Mijn %s"
+
+#: lib/Whups.php:546
+msgid "_New Ticket"
+msgstr "_Nieuw Incident"
+
+#: lib/Whups.php:548
+msgid "_Query Builder"
+msgstr "_Zoekopdracht Bouwer"
+
+#: lib/Whups.php:550
+msgid "_Reports"
+msgstr "_Rapportages"
+
+#: lib/Whups.php:545
+msgid "_Search"
+msgstr "_Zoeken"
+
+#: templates/queryrenderer.inc:154
+msgid "contains (case insensitive) substring"
+msgstr "bevat een (niet-hoofdletter gevoelig) deelwoord"
+
+#: templates/queryrenderer.inc:157
+msgid "contains (case sensitive) substring"
+msgstr "bevat een (hoofdletter gevoelige) deelwoord"
+
+#: templates/queryrenderer.inc:160
+msgid "contains the word"
+msgstr "bevat het woord"
+
+#: scripts/mail-filter.php:173
+#, php-format
+msgid "error processing message: %s"
+msgstr "Fout bij verwerken van bericht: %s"
+
+#: lib/api.php:748
+msgid "estimated time"
+msgstr "geschatte tijd"
+
+#: templates/queryrenderer.inc:151
+msgid "is"
+msgstr "is gelijk aan"
+
+#: templates/queryrenderer.inc:145
+msgid "is greater than"
+msgstr "is groter dan"
+
+#: templates/queryrenderer.inc:148
+msgid "is less than"
+msgstr "is kleiner dan"
+
+#: templates/queryrenderer.inc:163
+msgid "matches the pattern"
+msgstr "voldoet aan het zoekpatroon "
--- /dev/null
+# Polish translations for Whups package
+# Polskie tlumaczenia dla pakietu Whups.
+# Copyright 2007-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Automatically generated, 2007.
+# Tadeusz Lesiecki <lesiecki@tmtsystem.pl>, 2007.
+# Piotr Tarnowski <drfugazi@drfugazi.eu.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2007-06-27 13:00+0200\n"
+"PO-Revision-Date: 2007-03-31 09:57+0200\n"
+"Last-Translator: Piotr Tarnowski <drfugazi@drfugazi.eu.org>\n"
+"Language-Team: Polish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: admin/index.php:605
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" nie jest ju¿ wspó³odpowiedzialny za \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d ludzi obserwuj±cych, %d ludzi odpowiedzialnych"
+
+#: lib/Driver.php:368
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) napisa³:"
+
+#: admin/index.php:569
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s dodany do odpowiedzialnych za \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s dni"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s zostanie poinformowany o aktualizacji zg³oszenia."
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr ""
+"%s nie bêdzie ju¿ otrzymywaæ informacji o aktualizacji tego zg³oszenia."
+
+#: admin/index.php:82
+msgid "- Stage 1"
+msgstr "- Faza 1"
+
+#: admin/index.php:87
+msgid "- Stage 2"
+msgstr "- Faza 2"
+
+#: scripts/mail-filter.php:164
+msgid "--priority-name or --priority-id must specify a valid Priority."
+msgstr ""
+"--nazwa-priorytetu lub --id-priorytetu musi okre¶laæ prawid³owy priorytet"
+
+#: scripts/mail-filter.php:158
+msgid "--queue-name or --queue-id must specify a valid Queue."
+msgstr "--nazwa-kolejki lub --id-kolejki musi okre¶laæ prawid³ow± kolejkê."
+
+#: scripts/mail-filter.php:167
+msgid "--state-name or --state-id must specify a valid State."
+msgstr "--nazwa-statusu lub --id-statusu musi okre¶laæ prawid³owy status."
+
+#: scripts/mail-filter.php:161
+msgid "--type-name or --type-id must specify a valid Type."
+msgstr "--nazwa-typu lub --id-typu musi okre¶laæ prawid³owy typ."
+
+#: templates/prevnext.inc:12
+msgid "<<First"
+msgstr "<<Pierwszy"
+
+#: templates/prevnext.inc:13
+msgid "<Prev"
+msgstr "<Poprzedni"
+
+#: view.php:66
+#, php-format
+msgid "Access denied to %s"
+msgstr "Brak dostêpu do %s"
+
+#: lib/Forms/Admin.php:619
+msgid "Add Attribute"
+msgstr "Dodaj atrybut"
+
+#: lib/Query.php:809
+msgid "Add Attribute Criterion"
+msgstr "Dodaj kryterium atrybutu"
+
+#: mybugs.php:53
+msgid "Add Content"
+msgstr "Dodaj zawarto¶æ"
+
+#: query.php:211
+msgid "Add Criterion"
+msgstr "Dodaj kryterium"
+
+#: lib/Query.php:640
+msgid "Add Group Criterion"
+msgstr "Dodaj kryterium grupy"
+
+#: lib/Forms/Admin.php:445
+msgid "Add Priority"
+msgstr "Dodaj priorytet"
+
+#: lib/Query.php:717
+msgid "Add Property Criterion"
+msgstr "Dodaj kryterium w³a¶ciwo¶ci"
+
+#: lib/Forms/Admin.php:20 lib/Forms/Admin.php:21
+msgid "Add Queue"
+msgstr "Dodaj kolejkê"
+
+#: lib/Forms/Admin.php:355
+msgid "Add State"
+msgstr "Dodaj status"
+
+#: lib/Query.php:675
+msgid "Add Text Criterion"
+msgstr "Dodaj kryterium tekstowe"
+
+#: lib/Forms/Admin.php:208 lib/Forms/Admin.php:209
+msgid "Add Type"
+msgstr "Dodaj typ"
+
+#: admin/index.php:82 admin/index.php:87
+#, php-format
+msgid "Add Type %s"
+msgstr "Dodaj typ %s"
+
+#: lib/Query.php:589
+msgid "Add User Criterion"
+msgstr "Dodaj kryterium u¿ytkownika"
+
+#: lib/Forms/Admin.php:139
+msgid "Add Users"
+msgstr "Dodaj u¿ytkowników"
+
+#: lib/Forms/Admin.php:531
+msgid "Add Version"
+msgstr "Dodaj wersjê"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Dodaj obserwatora"
+
+#: ticket/create.php:50
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Dodanie Twojego zg³oszenia nie powiod³o siê: %s."
+
+#: lib/api.php:773 admin/index.php:55
+msgid "Administration"
+msgstr "Administracja"
+
+#: lib/Query.php:570 templates/queryrenderer.inc:90
+msgid "And"
+msgstr "I"
+
+#: lib/Query.php:723 lib/Query.php:730 lib/Query.php:735 lib/Query.php:742
+#: lib/Query.php:747 lib/Forms/Search.php:28
+msgid "Any"
+msgstr "Dowolny"
+
+#: lib/Forms/AddComment.php:37 lib/Forms/EditTicket.php:96 ticket/type.php:45
+#: ticket/queue.php:44
+msgid "Any Group"
+msgstr "Dowolna grupa"
+
+#: config/prefs.php.dist:55
+msgid "Ascending"
+msgstr "Rosn±co"
+
+#: lib/api.php:788
+msgid "Assign"
+msgstr "Przypisz"
+
+#: lib/Driver.php:165 lib/api.php:883 lib/Ticket.php:678 lib/Whups.php:500
+#: config/prefs.php.dist:44
+msgid "Assigned"
+msgstr "Przypisany"
+
+#: templates/comment.inc:64
+#, php-format
+msgid "Assigned to %s"
+msgstr "Przypisany do %s"
+
+#: admin/index.php:887
+msgid "Associations updated successfully."
+msgstr "Przyporz±dkowania pomy¶lnie zaktualizowane."
+
+#: lib/Forms/AddComment.php:24 lib/Forms/CreateTicket.php:121
+#: lib/Forms/EditTicket.php:85
+msgid "Attachment"
+msgstr "Za³±cznik"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Skasowano za³±cznik %s."
+
+#: lib/Ticket.php:405
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Nie znaleziono za³±cznika %s."
+
+#: lib/Ticket.php:681
+msgid "Attachments"
+msgstr "Za³±czniki"
+
+#: query.php:142
+msgid "Attri_bute Criteria"
+msgstr "Kryteria atry_butu"
+
+#: lib/Forms/Admin.php:623 lib/Forms/Admin.php:673 lib/Forms/Admin.php:696
+msgid "Attribute Description"
+msgstr "Opis atrybutu"
+
+#: lib/Forms/Admin.php:622 lib/Forms/Admin.php:651 lib/Forms/Admin.php:670
+#: lib/Forms/Admin.php:693
+msgid "Attribute Name"
+msgstr "Nazwa atrybutu"
+
+#: lib/Forms/Admin.php:284
+msgid "Attributes for this Type"
+msgstr "Atrybuty dla tego typu"
+
+#: config/prefs.php.dist:117
+msgid "Autolink to other tickets in comments?"
+msgstr "Automatycznie przy³±czyæ do innych zg³oszeñ w komentarzach?"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "¦rednia ilo¶æ dni do zamkniêcia przez w³a¶ciciela"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr ""
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr ""
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr ""
+
+#: lib/Query.php:575
+msgid "Branch Type"
+msgstr ""
+
+#: lib/Query.php:51
+msgid "Case Insensitive Substring"
+msgstr ""
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Zmieñ"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+
+#: query.php:145
+msgid "Choose Action:"
+msgstr ""
+
+#: lib/Query.php:221
+msgid "Choose New Query instead of deleting the root node."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:37 lib/Forms/CreateTicket.php:64
+msgid "Choose:"
+msgstr ""
+
+#: config/prefs.php.dist:127
+msgid "Chronological (oldest first)"
+msgstr ""
+
+#: lib/Forms/Admin.php:335
+msgid "Clone"
+msgstr ""
+
+#: lib/Forms/Admin.php:341
+msgid "Clone Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:223 admin/index.php:121
+msgid "Clone Type"
+msgstr ""
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr ""
+
+#: lib/Forms/AddComment.php:23 lib/Forms/EditTicket.php:86
+#: templates/comment.inc:118 templates/queryrenderer.inc:101
+#: ticket/type.php:35 ticket/queue.php:32
+msgid "Comment"
+msgstr ""
+
+#: ticket/comment.php:69
+msgid "Comment added"
+msgstr ""
+
+#: ticket/comment.php:34
+#, php-format
+msgid "Comment on %s"
+msgstr ""
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr ""
+
+#: lib/Forms/Admin.php:339
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopia %s"
+
+#: lib/MIME/Viewer/zip.php:53
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Nie mo¿na wyodrêbniæ ¿±danego pliku z archiwum Zip."
+
+#: lib/Query.php:645
+msgid "Could not find any groups."
+msgstr ""
+
+#: lib/Mail.php:88
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr ""
+
+#: lib/Forms/Admin.php:274
+msgid "Create Default Priorities"
+msgstr ""
+
+#: lib/Forms/Admin.php:264
+msgid "Create Default States"
+msgstr ""
+
+#: config/prefs.php.dist:68
+msgid "Create Ticket"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:23
+msgid "Create Ticket - Step 1"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:55
+msgid "Create Ticket - Step 2"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:95
+msgid "Create Ticket - Step 3"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:161
+msgid "Create Ticket - Step 4"
+msgstr ""
+
+#: lib/api.php:888 lib/Ticket.php:675 lib/Whups.php:498
+#: config/prefs.php.dist:43
+msgid "Created"
+msgstr "Utworzono"
+
+#: lib/Ticket.php:490 lib/Ticket.php:506
+msgid "Created By"
+msgstr ""
+
+#: query.php:202 query.php:218
+msgid "Current Query"
+msgstr ""
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr ""
+
+#: lib/Ticket.php:553
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+
+#: config/prefs.php.dist:99
+msgid "Date/Time format for search results"
+msgstr ""
+
+#: config/prefs.php.dist:46
+msgid "Default sorting criteria:"
+msgstr "Domy¶lne kryteria sortowania:"
+
+#: config/prefs.php.dist:57
+msgid "Default sorting direction:"
+msgstr "Domy¶lny kierunek sortowania:"
+
+#: query.php:146
+msgid "Delete"
+msgstr "Usuñ"
+
+#: lib/Whups.php:680 lib/Whups.php:681
+#, php-format
+msgid "Delete %s"
+msgstr "Usuñ %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Usun±æ %s?"
+
+#: lib/Forms/Admin.php:635 admin/index.php:777
+msgid "Delete Attribute"
+msgstr "Usuñ atrybut"
+
+#: lib/Forms/Admin.php:685
+msgid "Delete Attribute Confirmation"
+msgstr "Potwierdzenie usuniêcia atrybutu"
+
+#: lib/Forms/Admin.php:461 admin/index.php:487
+msgid "Delete Priority"
+msgstr "Usuñ priorytet"
+
+#: lib/Forms/Admin.php:507
+msgid "Delete Priority Confirmation"
+msgstr "Potwierdzenie usuniêcia priorytetu"
+
+#: lib/Query.php:924
+msgid "Delete Query?"
+msgstr "Usun±æ zapytanie?"
+
+#: lib/Forms/Admin.php:37 admin/index.php:269
+msgid "Delete Queue"
+msgstr "Usuñ kolejkê"
+
+#: lib/Forms/Admin.php:114
+msgid "Delete Queue Confirmation"
+msgstr "Potwierdzenie usuniêcia kolejki"
+
+#: lib/Forms/Admin.php:372 admin/index.php:377
+msgid "Delete State"
+msgstr "Usuñ status"
+
+#: lib/Forms/Admin.php:421
+msgid "Delete State Confirmation"
+msgstr "Potwierdzenie usuniêcia statusu"
+
+#: lib/Forms/Admin.php:223 admin/index.php:115
+msgid "Delete Type"
+msgstr "Usuñ typ"
+
+#: lib/Forms/Admin.php:298
+msgid "Delete Type Confirmation"
+msgstr "Potwierdzenie usuniêcia typu"
+
+#: lib/Forms/Admin.php:547 admin/index.php:666
+msgid "Delete Version"
+msgstr ""
+
+#: lib/Forms/Admin.php:593
+msgid "Delete Version Confirmation"
+msgstr ""
+
+#: lib/Ticket.php:495 lib/Ticket.php:544
+msgid "Deleted Attachment"
+msgstr ""
+
+#: templates/comment.inc:60
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr ""
+
+#: config/prefs.php.dist:56
+msgid "Descending"
+msgstr "Malej±co"
+
+#: lib/Forms/CreateTicket.php:122
+msgid "Description"
+msgstr "Opis"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Opcje wy¶wietlania"
+
+#: lib/Whups.php:672
+msgid "Download"
+msgstr "Pobierz"
+
+#: lib/api.php:892 lib/Ticket.php:485 lib/Ticket.php:599 lib/Ticket.php:676
+msgid "Due"
+msgstr ""
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Due ⇒ %s"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:119 lib/Forms/EditTicket.php:31
+msgid "Due Date"
+msgstr "Termin"
+
+#: lib/Query.php:198
+msgid "E_xecute Query"
+msgstr ""
+
+#: query.php:147
+msgid "Edit"
+msgstr "Edytuj"
+
+#: lib/Forms/Admin.php:66 lib/Forms/Admin.php:248
+#, php-format
+msgid "Edit %s"
+msgstr "Edycja %s"
+
+#: lib/Forms/Admin.php:635 lib/Forms/Admin.php:662 admin/index.php:772
+msgid "Edit Attribute"
+msgstr ""
+
+#: lib/Forms/Admin.php:286
+msgid "Edit Attributes"
+msgstr ""
+
+#: lib/Forms/Admin.php:272
+msgid "Edit Priorities"
+msgstr ""
+
+#: lib/Forms/Admin.php:461 lib/Forms/Admin.php:484 admin/index.php:482
+msgid "Edit Priority"
+msgstr ""
+
+#: lib/Forms/Admin.php:37 lib/Forms/Admin.php:40 admin/index.php:263
+msgid "Edit Queue"
+msgstr ""
+
+#: lib/Forms/Admin.php:39
+msgid "Edit Queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:372 lib/Forms/Admin.php:395 admin/index.php:372
+msgid "Edit State"
+msgstr ""
+
+#: lib/Forms/Admin.php:262
+msgid "Edit States"
+msgstr ""
+
+#: lib/Forms/Admin.php:223 admin/index.php:109
+msgid "Edit Type"
+msgstr ""
+
+#: lib/Forms/Admin.php:547 lib/Forms/Admin.php:570 admin/index.php:661
+msgid "Edit Version"
+msgstr ""
+
+#: lib/Query.php:194
+msgid "Edit _Permissions"
+msgstr ""
+
+#: admin/index.php:35
+msgid "Edit _Types"
+msgstr ""
+
+#: lib/Forms/Admin.php:634
+msgid "Edit or Delete Attributes"
+msgstr ""
+
+#: lib/Forms/Admin.php:460
+msgid "Edit or Delete Priorities"
+msgstr ""
+
+#: lib/Forms/Admin.php:36
+msgid "Edit or Delete Queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:371
+msgid "Edit or Delete States"
+msgstr ""
+
+#: lib/Forms/Admin.php:222
+msgid "Edit or Delete Types"
+msgstr ""
+
+#: lib/Forms/Admin.php:546
+msgid "Edit or Delete Versions"
+msgstr ""
+
+#: lib/Forms/Admin.php:101
+msgid "Edit the permissions on this queue"
+msgstr ""
+
+#: lib/Forms/Admin.php:96
+msgid "Edit the users responsible for this queue"
+msgstr ""
+
+#: lib/Forms/Admin.php:83
+msgid "Edit the versions for this queue"
+msgstr ""
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr ""
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr ""
+
+#: query.php:174
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+
+#: lib/Query.php:50
+msgid "Exact Match"
+msgstr ""
+
+#: runquery.php:73 runquery.php:87
+msgid "Execute Query"
+msgstr ""
+
+#: lib/Forms/Admin.php:723
+msgid "For tickets from these queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:727
+msgid "For tickets which are"
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Id¼"
+
+#: lib/Forms/CreateTicket.php:192 lib/Forms/EditTicket.php:79
+msgid "Group Owners"
+msgstr ""
+
+#: lib/Query.php:646 lib/Query.php:648 templates/queryrenderer.inc:98
+msgid "Groups"
+msgstr "Grupy"
+
+#: lib/api.php:776
+msgid "Hidden Comments"
+msgstr ""
+
+#: ticket/index.php:46
+msgid "History"
+msgstr ""
+
+#: query.php:148
+msgid "Hoist"
+msgstr ""
+
+#: lib/Query.php:719 lib/Whups.php:483 lib/Whups.php:490
+#: templates/queryrenderer.inc:96 config/prefs.php.dist:36
+msgid "Id"
+msgstr ""
+
+#: lib/Forms/Search.php:38
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+
+#: lib/Forms/Search.php:41
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+
+#: lib/Forms/Admin.php:730
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+
+#: query.php:149
+msgid "Insert And"
+msgstr ""
+
+#: lib/Query.php:567
+msgid "Insert Branch"
+msgstr ""
+
+#: query.php:151
+msgid "Insert Not"
+msgstr ""
+
+#: query.php:150
+msgid "Insert Or"
+msgstr ""
+
+#: lib/Whups.php:165
+msgid "Invalid Ticket Id"
+msgstr ""
+
+#: lib/api.php:607
+msgid "Invalid argument: Missing attribute name or value."
+msgstr ""
+
+#: lib/api.php:592
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+
+#: lib/api.php:549
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr ""
+
+#: lib/Forms/Admin.php:80
+msgid "Keep a set of versions for this queue?"
+msgstr ""
+
+#: templates/prevnext.inc:17
+msgid "Last>>"
+msgstr ""
+
+#: lib/Query.php:888
+msgid "Load Query"
+msgstr ""
+
+#: config/prefs.php.dist:97
+msgid "MM/DD/YY"
+msgstr ""
+
+#: config/prefs.php.dist:98
+msgid "MM/DD/YY HH:MM:SS"
+msgstr ""
+
+#: lib/Forms/Admin.php:333
+#, php-format
+msgid "Make a clone of %s"
+msgstr ""
+
+#: lib/Query.php:818
+msgid "Match"
+msgstr ""
+
+#: lib/Query.php:592 lib/Query.php:678 lib/Query.php:819
+msgid "Match Operator"
+msgstr ""
+
+#: lib/Query.php:54
+msgid "Match Pattern"
+msgstr ""
+
+#: lib/Query.php:53
+msgid "Match Word"
+msgstr ""
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr ""
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr ""
+
+#: config/prefs.php.dist:128
+msgid "Most recent first"
+msgstr ""
+
+#: ticket/queue.php:174
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr ""
+
+#: mybugs.php:52
+#, php-format
+msgid "My %s"
+msgstr ""
+
+#: mybugs_edit.php:32
+#, php-format
+msgid "My %s :: Add Content"
+msgstr ""
+
+#: search.php:106 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Moje zapytania"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Moje zg³oszenia"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:66
+msgid "My Tickets"
+msgstr "Moje zg³oszenia"
+
+#: lib/api.php:854
+msgid "My tickets by assignment date"
+msgstr ""
+
+#: lib/api.php:853
+msgid "My tickets by creation date"
+msgstr ""
+
+#: lib/api.php:855
+msgid "My tickets by due date"
+msgstr ""
+
+#: lib/api.php:856
+msgid "My tickets by resolution date"
+msgstr ""
+
+#: lib/Query.php:867 lib/Query.php:899
+msgid "Name"
+msgstr "Nazwa"
+
+#: lib/Forms/Admin.php:338
+msgid "Name of the cloned copy"
+msgstr ""
+
+#: lib/Query.php:184
+msgid "Ne_w Query"
+msgstr ""
+
+#: lib/Driver.php:164
+msgid "New"
+msgstr "Nowy"
+
+#: lib/Ticket.php:494 lib/Ticket.php:539
+msgid "New Attachment"
+msgstr ""
+
+#: templates/comment.inc:53 templates/comment.inc:55
+#, php-format
+msgid "New Attachment: %s"
+msgstr ""
+
+#: ticket/queue.php:31
+msgid "New Queue"
+msgstr ""
+
+#: ticket/create.php:60
+msgid "New Ticket"
+msgstr ""
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr ""
+
+#: templates/prevnext.inc:16
+msgid "Next>"
+msgstr ""
+
+#: lib/Query.php:926 lib/Forms/Admin.php:127 lib/Forms/Admin.php:319
+#: lib/Forms/Admin.php:435 lib/Forms/Admin.php:521 lib/Forms/Admin.php:607
+#: lib/Forms/Admin.php:699 ticket/delete.php:37
+msgid "No"
+msgstr "Nie"
+
+#: lib/Block/myqueries.php:44
+msgid "No queries have been saved."
+msgstr "Nie zapisano ¿adnych zapytañ."
+
+#: lib/Block/query.php:64 lib/Driver/sql.php:420
+msgid "No query to run"
+msgstr ""
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr ""
+
+#: reports.php:19
+msgid "No stats available."
+msgstr ""
+
+#: lib/Driver.php:404
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr ""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Nie ma ¿adnych przypisanych do Ciebie zg³oszeñ."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Brak nieprzypisanych zg³oszeñ!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Brak zg³oszeñ w kolejce."
+
+#: lib/Whups.php:532
+msgid "No tickets matched your search criteria."
+msgstr "¯adne zg³oszenia nie pasuj± do Twoich kryteriów wyszukiwania."
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Brak"
+
+#: lib/Query.php:572 templates/queryrenderer.inc:92
+msgid "Not"
+msgstr "Nie"
+
+#: query.php:79
+msgid "Not yet implemented."
+msgstr "Jeszcze nie zaimplementowano."
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Opcje powiadamiania"
+
+#: config/prefs.php.dist:108
+msgid "Only notify me of ticket changes from other users"
+msgstr ""
+
+#: lib/Block/queuesummary.php:48
+msgid "Open Tickets"
+msgstr ""
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr ""
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr ""
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr ""
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr ""
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr ""
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr ""
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr ""
+
+#: lib/Query.php:571 templates/queryrenderer.inc:91
+msgid "Or"
+msgstr ""
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Inne opcje"
+
+#: lib/Ticket.php:493 lib/Ticket.php:531 lib/Ticket.php:532 lib/Ticket.php:534
+#: lib/Ticket.php:604 lib/Ticket.php:621 lib/Ticket.php:669 lib/Whups.php:497
+#: lib/Forms/CreateTicket.php:186 lib/Forms/CreateTicket.php:198
+#: lib/Forms/EditTicket.php:73 templates/queryrenderer.inc:97
+msgid "Owners"
+msgstr ""
+
+#: lib/Whups.php:680
+#, php-format
+msgid "Permanently delete %s?"
+msgstr ""
+
+#: ticket/update.php:23 ticket/delete.php:17 ticket/type.php:17
+#: ticket/deleteAttachment.php:17 ticket/queue.php:124
+msgid "Permission Denied"
+msgstr "Dostêp zabroniony"
+
+#: lib/Forms/EditTicket.php:104 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr ""
+
+#: runquery.php:38 query.php:31 lib/Query.php:936
+#, php-format
+msgid "Permission denied."
+msgstr ""
+
+#: lib/Forms/Admin.php:270 lib/Forms/Admin.php:316
+msgid "Priorities for this Type"
+msgstr ""
+
+#: lib/Query.php:746 lib/Ticket.php:484 lib/Ticket.php:598 lib/Ticket.php:667
+#: lib/Whups.php:485 lib/Whups.php:494 lib/Forms/CreateTicket.php:118
+#: lib/Forms/EditTicket.php:30 templates/queryrenderer.inc:138
+#: ticket/type.php:69 ticket/queue.php:110 config/prefs.php.dist:40
+msgid "Priority"
+msgstr "Priorytet"
+
+#: templates/comment.inc:98
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin.php:449 lib/Forms/Admin.php:495 lib/Forms/Admin.php:518
+msgid "Priority Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:448 lib/Forms/Admin.php:473 lib/Forms/Admin.php:492
+#: lib/Forms/Admin.php:515
+msgid "Priority Name"
+msgstr ""
+
+#: query.php:155
+msgid "Query Builder"
+msgstr ""
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr ""
+
+#: runquery.php:81 lib/Block/query.php:3 lib/Block/query.php:51
+msgid "Query Results"
+msgstr ""
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr ""
+
+#: lib/Query.php:729 lib/Ticket.php:480 lib/Ticket.php:594 lib/Ticket.php:648
+#: lib/Ticket.php:652 lib/Whups.php:495 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:48 lib/Forms/Search.php:33
+#: templates/queryrenderer.inc:107 config/prefs.php.dist:41
+msgid "Queue"
+msgstr ""
+
+#: templates/comment.inc:86
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr ""
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr ""
+
+#: lib/Forms/Admin.php:24 lib/Forms/Admin.php:73 lib/Forms/Admin.php:124
+msgid "Queue Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:23 lib/Forms/Admin.php:52 lib/Forms/Admin.php:70
+#: lib/Forms/Admin.php:121 lib/Forms/CreateTicket.php:27
+#: lib/Forms/CreateTicket.php:37
+msgid "Queue Name"
+msgstr ""
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr ""
+
+#: lib/Ticket.php:657 lib/Ticket.php:661 lib/Forms/CreateTicket.php:77
+#: ticket/queue.php:79
+msgid "Queue Version"
+msgstr ""
+
+#: admin/index.php:36
+msgid "Queue/Type Matri_x"
+msgstr ""
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr ""
+
+#: lib/api.php:160 lib/api.php:779
+msgid "Queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:700
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin.php:522
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+
+#: lib/Query.php:927
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+
+#: lib/Forms/Admin.php:128
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin.php:436
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+
+#: lib/Forms/Admin.php:320
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin.php:608
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+
+#: search.php:87
+msgid "Refine Search"
+msgstr ""
+
+#: admin/index.php:854
+msgid "Reminders were sent."
+msgstr ""
+
+#: lib/Forms/Admin.php:177
+msgid "Remove User"
+msgstr ""
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr ""
+
+#: templates/comment.inc:81
+msgid "Reply to this comment"
+msgstr ""
+
+#: reports.php:24
+msgid "Reports"
+msgstr ""
+
+#: lib/Ticket.php:672 lib/Whups.php:496 templates/queryrenderer.inc:99
+msgid "Requester"
+msgstr ""
+
+#: lib/Driver.php:166 lib/api.php:897 lib/Ticket.php:679 lib/Whups.php:501
+#: config/prefs.php.dist:45
+msgid "Resolved"
+msgstr "Rozwi±zany"
+
+#: lib/Forms/Admin.php:179
+msgid "Responsible Users"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:97
+msgid "Restrict Comment to:"
+msgstr ""
+
+#: templates/prevnext.inc:26
+msgid "Return to Search Results"
+msgstr ""
+
+#: lib/Whups.php:203
+msgid "S_et Queue"
+msgstr ""
+
+#: lib/Query.php:202
+msgid "Sa_ve Query"
+msgstr ""
+
+#: lib/Query.php:865 templates/searchresults.inc:80
+msgid "Save"
+msgstr "Zapisz"
+
+#: lib/Query.php:864
+msgid "Save Query"
+msgstr ""
+
+#: templates/searchresults.inc:74
+msgid "Save these results as: "
+msgstr ""
+
+#: search.php:26
+msgid "Search"
+msgstr "Szukaj"
+
+#: lib/Query.php:822
+#, php-format
+msgid "Search %s Attribute"
+msgstr ""
+
+#: lib/Query.php:825
+msgid "Search Attribute"
+msgstr ""
+
+#: lib/Query.php:595 lib/Query.php:680
+msgid "Search Comments"
+msgstr ""
+
+#: lib/Query.php:593
+msgid "Search Owners"
+msgstr ""
+
+#: lib/Query.php:594
+msgid "Search Requester"
+msgstr ""
+
+#: search.php:82
+msgid "Search Results"
+msgstr "Wyniki wyszukiwania"
+
+#: templates/prevnext.inc:22
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr ""
+
+#: lib/Query.php:679
+msgid "Search Summary"
+msgstr ""
+
+#: config/prefs.php.dist:67
+msgid "Search Tickets"
+msgstr ""
+
+#: config/prefs.php.dist:69
+msgid "Select the view to display after login:"
+msgstr ""
+
+#: admin/index.php:37
+msgid "Sen_d Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:711
+msgid "Send Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:722
+msgid "Send only for this list of ticket ids"
+msgstr ""
+
+#: ticket/queue.php:195 ticket/queue.php:204 ticket/queue.php:216
+msgid "Set Queue - Step 1"
+msgstr ""
+
+#: ticket/queue.php:196 ticket/queue.php:205
+msgid "Set Queue - Step 2"
+msgstr ""
+
+#: ticket/queue.php:206
+msgid "Set Queue - Step 3"
+msgstr ""
+
+#: ticket/queue.php:182
+#, php-format
+msgid "Set Queue for %s"
+msgstr ""
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr ""
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr ""
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr ""
+
+#: lib/Whups.php:207
+msgid "Set _Type"
+msgstr ""
+
+#: config/prefs.php.dist:126
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+
+#: config/prefs.php.dist:86
+msgid "Show ticket IDs in the summary view?"
+msgstr ""
+
+#: config/prefs.php.dist:78
+msgid "Show tickets you have requested in the summary view?"
+msgstr ""
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr ""
+
+#: templates/searchresults.inc:99 templates/searchresults.inc:102
+#, php-format
+msgid "Sort by %s"
+msgstr "Sortuj po %s"
+
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+#: lib/Forms/CreateTicket.php:113 lib/Forms/CreateTicket.php:142
+msgid "Spam protection"
+msgstr ""
+
+#: lib/Query.php:741 lib/Ticket.php:483 lib/Ticket.php:597 lib/Ticket.php:666
+#: lib/Whups.php:486 lib/Whups.php:492 lib/Forms/EditTicket.php:29
+#: templates/queryrenderer.inc:130 ticket/type.php:68 ticket/queue.php:109
+#: config/prefs.php.dist:38
+msgid "State"
+msgstr ""
+
+#: templates/comment.inc:94
+#, php-format
+msgid "State ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin.php:360 lib/Forms/Admin.php:409
+msgid "State Category"
+msgstr ""
+
+#: lib/Forms/Admin.php:359 lib/Forms/Admin.php:406 lib/Forms/Admin.php:432
+msgid "State Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:358 lib/Forms/Admin.php:384 lib/Forms/Admin.php:403
+#: lib/Forms/Admin.php:429
+msgid "State Name"
+msgstr ""
+
+#: lib/Forms/Admin.php:260 lib/Forms/Admin.php:312
+msgid "States for this Type"
+msgstr ""
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Status"
+
+#: ticket/create.php:124
+msgid "Submit"
+msgstr "Wy¶lij"
+
+#: admin/index.php:162
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr ""
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr ""
+
+#: lib/Ticket.php:492 lib/Ticket.php:508 lib/Ticket.php:509 lib/Ticket.php:511
+#: lib/Ticket.php:604 lib/Ticket.php:612 lib/Ticket.php:646 lib/Whups.php:484
+#: lib/Whups.php:491 lib/Forms/CreateTicket.php:120
+#: lib/Forms/EditTicket.php:28 templates/queryrenderer.inc:102
+#: ticket/delete.php:34 config/prefs.php.dist:37
+msgid "Summary"
+msgstr "Podsumowanie"
+
+#: templates/comment.inc:47
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Search.php:36
+msgid "Summary like"
+msgstr ""
+
+#: templates/comment.inc:69
+#, php-format
+msgid "Taken from %s"
+msgstr ""
+
+#: lib/Query.php:677
+msgid "Text"
+msgstr "Tekst"
+
+#: view.php:55 lib/Ticket.php:356 lib/Ticket.php:394
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "Aby wgrywaæ za³±czniki musi byæ skonfigurowany backend VFS."
+
+#: admin/index.php:739
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:825
+msgid "The attribute has been deleted."
+msgstr ""
+
+#: admin/index.php:794
+msgid "The attribute has been modified."
+msgstr ""
+
+#: admin/index.php:830
+msgid "The attribute was not deleted."
+msgstr ""
+
+#: admin/index.php:451
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:532
+msgid "The priority has been deleted."
+msgstr ""
+
+#: admin/index.php:504
+msgid "The priority has been modified."
+msgstr ""
+
+#: admin/index.php:537
+msgid "The priority was not deleted."
+msgstr ""
+
+#: lib/Query.php:940
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr ""
+
+#: lib/Query.php:942
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr ""
+
+#: lib/Query.php:907
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr ""
+
+#: admin/index.php:241
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr ""
+
+#: admin/index.php:320
+msgid "The queue has been deleted."
+msgstr ""
+
+#: admin/index.php:292
+msgid "The queue has been modified."
+msgstr ""
+
+#: admin/index.php:325
+msgid "The queue was not deleted."
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:59
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "¯±dany plik nie wystêpuje w za³±czniku Zip."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr ""
+
+#: admin/index.php:340
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:423
+msgid "The state has been deleted."
+msgstr ""
+
+#: admin/index.php:394
+msgid "The state has been modified."
+msgstr ""
+
+#: admin/index.php:428
+msgid "The state was not deleted."
+msgstr ""
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr ""
+
+#: admin/index.php:180
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr ""
+
+#: admin/index.php:222
+msgid "The type has been deleted."
+msgstr ""
+
+#: admin/index.php:227
+msgid "The type was not deleted."
+msgstr ""
+
+#: admin/index.php:629
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:711
+msgid "The version has been deleted."
+msgstr ""
+
+#: admin/index.php:683
+msgid "The version has been modified."
+msgstr ""
+
+#: admin/index.php:716
+msgid "The version was not deleted."
+msgstr ""
+
+#: lib/Forms/Admin.php:647
+msgid "There are no attribute types to edit"
+msgstr ""
+
+#: lib/Query.php:825
+msgid "There are no attributes defined for the current type"
+msgstr ""
+
+#: lib/Block/queuesummary.php:43
+msgid "There are no open tickets."
+msgstr ""
+
+#: lib/Forms/Admin.php:469
+msgid "There are no priorities to edit"
+msgstr ""
+
+#: lib/Forms/Admin.php:719
+msgid "There are no queues available."
+msgstr ""
+
+#: lib/Forms/Admin.php:49
+msgid "There are no queues to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:27
+msgid "There are no queues which you can create tickets in."
+msgstr ""
+
+#: lib/Forms/Search.php:31
+msgid "There are no queues which you can search."
+msgstr ""
+
+#: lib/Forms/Admin.php:380
+msgid "There are no states to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:61
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+
+#: lib/Forms/Admin.php:231
+msgid "There are no types to edit"
+msgstr ""
+
+#: lib/Forms/Admin.php:193
+msgid "There are no users responsible for this queue."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:197
+msgid "There are no users to which this ticket can be assigned."
+msgstr ""
+
+#: lib/Forms/Admin.php:555
+msgid "There are no versions to edit"
+msgstr ""
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr ""
+
+#: admin/index.php:571
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr ""
+
+#: admin/index.php:742
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr ""
+
+#: admin/index.php:453
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr ""
+
+#: admin/index.php:249
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr ""
+
+#: admin/index.php:342
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr ""
+
+#: admin/index.php:631
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr ""
+
+#: admin/index.php:827
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr ""
+
+#: admin/index.php:534
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr ""
+
+#: admin/index.php:322
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr ""
+
+#: admin/index.php:425
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr ""
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr ""
+
+#: admin/index.php:224
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr ""
+
+#: admin/index.php:713
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr ""
+
+#: admin/index.php:802
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr ""
+
+#: admin/index.php:509
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr ""
+
+#: admin/index.php:306
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr ""
+
+#: admin/index.php:399
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr ""
+
+#: admin/index.php:688
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr ""
+
+#: lib/Forms/Admin.php:153
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr ""
+
+#: admin/index.php:178
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr ""
+
+#: search.php:76
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr ""
+
+#: admin/index.php:607
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr ""
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:72 ticket/queue.php:74
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:505 lib/Ticket.php:611
+msgid "Ticket"
+msgstr "Zg³oszenia"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr ""
+
+#: lib/api.php:825
+#, php-format
+msgid "Ticket %s - %s"
+msgstr ""
+
+#: lib/Driver/sql.php:866
+#, php-format
+msgid "Ticket %s was not found."
+msgstr ""
+
+#: search.php:98
+msgid "Ticket Search"
+msgstr "Wyszukiwanie zg³oszeñ"
+
+#: lib/Forms/CreateTicket.php:117
+msgid "Ticket State"
+msgstr ""
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:66
+msgid "Ticket Type"
+msgstr ""
+
+#: lib/Forms/Admin.php:76
+msgid "Ticket Types associated with this Queue"
+msgstr ""
+
+#: lib/Ticket.php:501
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr ""
+
+#: ticket/update.php:82
+msgid "Ticket Updated"
+msgstr ""
+
+#: lib/api.php:846
+msgid "Tickets"
+msgstr "Zg³oszenia"
+
+#: lib/Forms/Search.php:38
+msgid "Tickets which are"
+msgstr "Zg³oszenia, które s±"
+
+#: lib/Query.php:722 lib/Ticket.php:482 lib/Ticket.php:596 lib/Ticket.php:665
+#: lib/Whups.php:493 templates/queryrenderer.inc:121 ticket/queue.php:82
+#: config/prefs.php.dist:39
+msgid "Type"
+msgstr "Typ"
+
+#: templates/comment.inc:90
+#, php-format
+msgid "Type ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin.php:211 lib/Forms/Admin.php:255 lib/Forms/Admin.php:308
+msgid "Type Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:210 lib/Forms/Admin.php:234 lib/Forms/Admin.php:252
+#: lib/Forms/Admin.php:305
+msgid "Type Name"
+msgstr ""
+
+#: lib/Forms/Search.php:41
+msgid "Types"
+msgstr ""
+
+#: lib/Ticket.php:670
+msgid "Unassigned"
+msgstr ""
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr ""
+
+#: lib/Forms/Admin.php:730
+msgid "Unassigned tickets"
+msgstr ""
+
+#: lib/Driver.php:163
+msgid "Unconfirmed"
+msgstr "Niepotwierdzone"
+
+#: templates/queryrenderer.inc:148 templates/queryrenderer.inc:188
+#, php-format
+msgid "Unknown node type %s"
+msgstr ""
+
+#: lib/api.php:793
+msgid "Update"
+msgstr "Zaktualizuj"
+
+#: ticket/update.php:97
+#, php-format
+msgid "Update %s"
+msgstr "Aktualizuj %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr ""
+
+#: lib/Ticket.php:677 lib/Whups.php:499
+msgid "Updated"
+msgstr ""
+
+#: lib/Ticket.php:491 lib/Ticket.php:506
+msgid "Updated By"
+msgstr ""
+
+#: lib/Forms/Admin.php:152 lib/Forms/Admin.php:162 lib/Forms/Admin.php:165
+msgid "User"
+msgstr "U¿ytkownik"
+
+#: lib/Query.php:591
+msgid "User ID"
+msgstr ""
+
+#: lib/Forms/Admin.php:94
+msgid "Users responsible for this Queue"
+msgstr ""
+
+#: lib/Forms/Admin.php:197
+msgid "Users responsible for this queue"
+msgstr ""
+
+#: lib/Query.php:733 lib/Ticket.php:481 lib/Ticket.php:595
+#: templates/queryrenderer.inc:115 config/prefs.php.dist:42
+msgid "Version"
+msgstr ""
+
+#: lib/Forms/Admin.php:535 lib/Forms/Admin.php:581 lib/Forms/Admin.php:604
+msgid "Version Description"
+msgstr ""
+
+#: lib/Forms/Admin.php:534 lib/Forms/Admin.php:559 lib/Forms/Admin.php:578
+#: lib/Forms/Admin.php:601
+msgid "Version Name"
+msgstr ""
+
+#: lib/Forms/AddComment.php:38 ticket/type.php:46 ticket/queue.php:45
+msgid "Viewable only by members of"
+msgstr ""
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr ""
+
+#: ticket/watch.php:76
+#, php-format
+msgid "Watchers for %s"
+msgstr ""
+
+#: config/prefs.php.dist:95
+msgid "Weekday Day Month"
+msgstr ""
+
+#: config/prefs.php.dist:96
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr ""
+
+#: lib/Query.php:926 lib/Forms/Admin.php:127 lib/Forms/Admin.php:319
+#: lib/Forms/Admin.php:435 lib/Forms/Admin.php:521 lib/Forms/Admin.php:607
+#: lib/Forms/Admin.php:699 ticket/delete.php:37
+msgid "Yes"
+msgstr "Tak"
+
+#: view.php:51
+msgid "You are not allowed to view this ticket."
+msgstr ""
+
+#: lib/Driver/sql.php:869
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr ""
+
+#: lib/api.php:527
+msgid "You do not have permission to update this ticket."
+msgstr ""
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Nie masz otwartych zg³oszeñ."
+
+#: lib/Query.php:896 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr ""
+
+#: lib/Whups.php:526
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+#: lib/Forms/AddComment.php:18 lib/Forms/CreateTicket.php:111
+msgid "Your Email Address"
+msgstr "Twój adres email"
+
+#: ticket/create.php:53
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+
+#: lib/Whups.php:589
+msgid "_Admin"
+msgstr ""
+
+#: lib/Whups.php:198
+msgid "_Comment"
+msgstr ""
+
+#: lib/Whups.php:208
+msgid "_Delete"
+msgstr "Usuñ"
+
+#: lib/Query.php:205
+msgid "_Delete Query"
+msgstr ""
+
+#: lib/Query.php:186
+msgid "_Edit Query"
+msgstr ""
+
+#: admin/index.php:34
+msgid "_Edit Queues"
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr ""
+
+#: query.php:139
+msgid "_Group Criteria"
+msgstr ""
+
+#: lib/Whups.php:194
+msgid "_History"
+msgstr ""
+
+#: lib/Query.php:199
+msgid "_Load Query"
+msgstr ""
+
+#: lib/Whups.php:580
+#, php-format
+msgid "_My %s"
+msgstr "_Moje %s"
+
+#: lib/Whups.php:583
+msgid "_New Ticket"
+msgstr "_Nowe zg³oszenie"
+
+#: query.php:137
+msgid "_Property Criteria"
+msgstr ""
+
+#: lib/Whups.php:584
+msgid "_Query Builder"
+msgstr "Konstruktor zapytañ"
+
+#: lib/Whups.php:585
+msgid "_Reports"
+msgstr "_Raporty"
+
+#: lib/Whups.php:582
+msgid "_Search"
+msgstr "_Szukaj"
+
+#: query.php:141
+msgid "_Text Criteria"
+msgstr ""
+
+#: lib/Whups.php:196
+msgid "_Update"
+msgstr ""
+
+#: query.php:138
+msgid "_User Criteria"
+msgstr ""
+
+#: lib/Whups.php:200
+msgid "_Watch"
+msgstr ""
+
+#: templates/queryrenderer.inc:168
+msgid "contains (case insensitive) substring"
+msgstr ""
+
+#: templates/queryrenderer.inc:172
+msgid "contains (case sensitive) substring"
+msgstr ""
+
+#: templates/queryrenderer.inc:176
+msgid "contains the word"
+msgstr ""
+
+#: scripts/mail-filter.php:176
+#, php-format
+msgid "error processing message: %s"
+msgstr ""
+
+#: lib/api.php:834
+msgid "estimated time"
+msgstr ""
+
+#: templates/queryrenderer.inc:164
+msgid "is"
+msgstr ""
+
+#: templates/queryrenderer.inc:156
+msgid "is greater than"
+msgstr ""
+
+#: templates/queryrenderer.inc:160
+msgid "is less than"
+msgstr ""
+
+#: templates/queryrenderer.inc:180
+msgid "matches the pattern"
+msgstr ""
--- /dev/null
+# Portuguese translations for horde package
+# Traduções em português para o pacote horde.
+# Copyright 2005-2009 The Horde Project
+# This file is distributed under the same license as the horde package.
+# Automatically generated, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-01-03 18:00+0300\n"
+"PO-Revision-Date: 2005-01-21 12:09+0100\n"
+"Last-Translator: Daniel V. Hoisel <daniel@maxlinux.com.br>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: templates/menu.inc:6
+msgid "#Id"
+msgstr "#Id"
+
+#: admin.php:554
+#, php-format
+msgid "%s added to those responsible for '%s'"
+msgstr "%s adicionado pela responsabilidade de %s"
+
+#: templates/reports/stats.inc:20
+#, php-format
+msgid "%s days"
+msgstr "%s dias"
+
+#: admin.php:591
+#, php-format
+msgid "'%s' is no longer among those responsible for '%s'"
+msgstr "%s não é atualmente responsável por %s"
+
+#: admin.php:78
+msgid "- Stage 1"
+msgstr "- Estágio 1"
+
+#: admin.php:83
+msgid "- Stage 2"
+msgstr "- Estágio 2"
+
+#: scripts/mail-filter.php:98
+msgid "--priority option must be supplied."
+msgstr "--a opção de prioridade deve ser informada."
+
+#: scripts/mail-filter.php:70
+msgid "--queue option must be supplied."
+msgstr "--a opção de fila deve ser informada."
+
+#: scripts/mail-filter.php:112
+msgid "--state option must be supplied."
+msgstr "--a opção de estágio deve ser informada."
+
+#: scripts/mail-filter.php:84
+msgid "--type option must be supplied."
+msgstr "--a opção tipo deve ser informada."
+
+#: lib/Block/summary.php:89
+msgid "<i>No summary</i>"
+msgstr "<i>Sem sumário</i>"
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "Acesso negado para %s"
+
+#: lib/Admin.php:702
+msgid "Add Attribute"
+msgstr "Adicionar atributo"
+
+#: lib/Query.php:649
+msgid "Add Attribute Criterion"
+msgstr "Adicionar critério de atributo"
+
+#: query.php:169
+msgid "Add Criterion"
+msgstr "Adicionar critério"
+
+#: lib/Query.php:488
+msgid "Add Group Criterion"
+msgstr "Adicionar critério de grupo"
+
+#: lib/Admin.php:526
+msgid "Add Priority"
+msgstr "Adicionar prioridade"
+
+#: lib/Query.php:570
+msgid "Add Property Criterion"
+msgstr "Adicionar prioridade de critério"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "Adicionar fila"
+
+#: lib/Admin.php:434
+msgid "Add State"
+msgstr "Adicionar estado"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Adicionar assunto"
+
+#: lib/Query.php:526
+msgid "Add Text Criterion"
+msgstr "Adicionar texto do critério"
+
+#: lib/Admin.php:291 lib/Admin.php:292
+msgid "Add Type"
+msgstr "Adicionar tipo"
+
+#: admin.php:78 admin.php:83
+#, php-format
+msgid "Add Type %s"
+msgstr "Adicioar tipo %s"
+
+#: lib/Query.php:433
+msgid "Add User Criterion"
+msgstr "Adicionar critério de usuário"
+
+#: lib/Admin.php:222
+msgid "Add Users"
+msgstr "Adicionar usuários"
+
+#: lib/Admin.php:614
+msgid "Add Version"
+msgstr "Adicionar versão"
+
+#: ticket/create.php:154
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Falha ao adicionar seu ticket: %s."
+
+#: admin.php:51
+msgid "Administration"
+msgstr "Administração"
+
+#: templates/queryrenderer.inc:95 lib/Query.php:383
+msgid "And"
+msgstr "e"
+
+#: search.php:39 search.php:87 search.php:88 search.php:104 search.php:121
+#: lib/Query.php:577 lib/Query.php:585 lib/Query.php:589 lib/Query.php:592
+msgid "Any"
+msgstr "Qualquer um"
+
+#: ticket/update.php:67 ticket/people.php:73 ticket/type.php:41
+#: ticket/comment.php:36 ticket/queue.php:46
+msgid "Any Group"
+msgstr "Qualquer grupo"
+
+#: config/prefs.php.dist:47
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: ticket/people.php:116
+msgid "Assign Ticket Succeeded"
+msgstr "Assinatura do ticket bem-sucedida"
+
+#: lib/Whups.php:405 lib/Ticket.php:506 lib/Driver.php:98
+#: config/prefs.php.dist:36
+msgid "Assigned"
+msgstr "Assinado"
+
+#: admin.php:941
+msgid "Associations updated successfully."
+msgstr "Associações atualizadas com sucesso."
+
+#: ticket/update.php:60 ticket/comment.php:28 lib/Ticket.php:402
+#: lib/Ticket.php:448
+msgid "Attachment"
+msgstr "Anexo"
+
+#: lib/Ticket.php:508
+msgid "Attachments"
+msgstr "Anexos"
+
+#: query.php:40
+msgid "Attribute Criteria"
+msgstr "Critério do atributo"
+
+#: lib/Admin.php:706 lib/Admin.php:752 lib/Admin.php:775
+msgid "Attribute Description"
+msgstr "Descrição do atributo"
+
+#: lib/Admin.php:705 lib/Admin.php:730 lib/Admin.php:749 lib/Admin.php:772
+msgid "Attribute Name"
+msgstr "Nome do atributo"
+
+#: lib/Admin.php:363
+msgid "Attributes for this Type"
+msgstr "Atributos para este tipo"
+
+#: config/prefs.php.dist:118
+msgid "Autolink to other tickets in comments?"
+msgstr "Ligar automaticamente para outros tickets nos comentários "
+
+#: lib/Reports.php:9
+msgid "Average days to close by Owner"
+msgstr "Média de dias para fechar por Proprietário"
+
+#: lib/Reports.php:11
+msgid "Average days to close by Queue"
+msgstr "Média de dias para fechar por fila"
+
+#: lib/Reports.php:10
+msgid "Average days to close by Requester"
+msgstr "Média de dias para fechar por Requisitante"
+
+#: lib/Reports.php:13
+msgid "Average time a ticket is unresolved"
+msgstr "Tempo médio em que um ticket fica sem solução"
+
+#: scripts/mail-filter.php:94
+#, php-format
+msgid "Bad type `%s' for queue."
+msgstr "Tipo `%s' ruim para fila"
+
+#: lib/Query.php:388
+msgid "Branch Type"
+msgstr ""
+
+#: lib/Query.php:52
+msgid "Case Insensitive Substring"
+msgstr "Sequência não sensível ao caso"
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Alterar"
+
+#: lib/Query.php:402
+msgid "Change Ticket Type"
+msgstr "Alterar tipo do ticket"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr "Alterar opções de exibição de como as pesquisas serão classificadas"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Alterar as opções para notificações por e-mail da atividade do ticket"
+
+#: query.php:43
+msgid "Choose Action:"
+msgstr "Escolher ação:"
+
+#: lib/Create.php:27
+msgid "Choose:"
+msgstr "Escolher"
+
+#: config/prefs.php.dist:128
+msgid "Chronological (oldest first)"
+msgstr "Cronológica (antigas primeiro)"
+
+#: templates/savedsearches.inc:28
+msgid "Clear All Searches"
+msgstr "Limpar todas as pesquisas"
+
+#: lib/Admin.php:414
+msgid "Clone"
+msgstr "Clonar"
+
+#: lib/Admin.php:420
+msgid "Clone Description"
+msgstr "Descrição do clone"
+
+#: admin.php:117 lib/Admin.php:306
+msgid "Clone Type"
+msgstr "Clonar tipo"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Valores separados por vírgula (arquivo CSV)"
+
+#: templates/queryrenderer.inc:108 templates/comment.inc:89
+#: ticket/update.php:61 ticket/people.php:68 ticket/type.php:35
+#: ticket/comment.php:27 ticket/queue.php:38 lib/Whups.php:194
+msgid "Comment"
+msgstr "Comentário"
+
+#: ticket/comment.php:86
+msgid "Comment added"
+msgstr "Comentário adicionado"
+
+#: ticket/comment.php:92
+#, php-format
+msgid "Comment on %s"
+msgstr "Comentário em %s"
+
+#: templates/queryrenderer.inc:107
+msgid "Commentor"
+msgstr "Comentarista"
+
+#: lib/Admin.php:418
+#, php-format
+msgid "Copy of %s"
+msgstr "Copia de %s"
+
+#: lib/Query.php:493
+msgid "Could not find any groups."
+msgstr "Não encontrei nenhum grupo"
+
+#: lib/Admin.php:357
+msgid "Create Default Priorities"
+msgstr "Criar prioridades padrão"
+
+#: lib/Admin.php:347
+msgid "Create Default States"
+msgstr "Criar Estados padrão"
+
+#: config/prefs.php.dist:60
+msgid "Create Ticket"
+msgstr "Criar ticket"
+
+#: lib/Create.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Criar ticket - Passo 1"
+
+#: lib/Create.php:52
+msgid "Create Ticket - Step 2"
+msgstr "Criar ticket - Passo 2"
+
+#: lib/Create.php:92
+msgid "Create Ticket - Step 3"
+msgstr "Criar ticket - Passo 3"
+
+#: lib/Create.php:135
+msgid "Create Ticket - Step 4"
+msgstr "Criar ticket - Passo 4"
+
+#: lib/Whups.php:404 lib/Ticket.php:505 config/prefs.php.dist:35
+msgid "Created"
+msgstr "Criado"
+
+#: lib/Ticket.php:398 lib/Ticket.php:412
+msgid "Created By"
+msgstr "Criado por"
+
+#: query.php:159 query.php:182
+msgid "Current Query"
+msgstr "Consulta atual"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr "Tipo do ticket atualmente"
+
+#: lib/Query.php:404
+msgid "Current Type"
+msgstr "Tipo atual"
+
+#: lib/Ticket.php:457
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "NÃO RESPONDA A ESTA MENSAGEM. ESTE E-MAIL NÃO É MONITORADO"
+
+#: config/prefs.php.dist:91
+msgid "Date/Time format for search results"
+msgstr "Formato de data/hora para resultado das pesquisas"
+
+#: config/prefs.php.dist:38
+msgid "Default sorting criteria:"
+msgstr "Critério de classificação padrão"
+
+#: config/prefs.php.dist:49
+msgid "Default sorting direction:"
+msgstr "Direção de classificação padrão"
+
+#: query.php:44 lib/Whups.php:202
+msgid "Delete"
+msgstr "Apagar"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Apagar %s?"
+
+#: admin.php:835 lib/Admin.php:718
+msgid "Delete Attribute"
+msgstr "Apagar atributo"
+
+#: lib/Admin.php:764
+msgid "Delete Attribute Confirmation"
+msgstr "Confirmação para apagar atributo"
+
+#: admin.php:472 lib/Admin.php:542
+msgid "Delete Priority"
+msgstr "Apagar prioridade"
+
+#: lib/Admin.php:588
+msgid "Delete Priority Confirmation"
+msgstr "Confirmação para apagar prioridade"
+
+#: admin.php:265 lib/Admin.php:118
+msgid "Delete Queue"
+msgstr "Apagar fila"
+
+#: lib/Admin.php:197
+msgid "Delete Queue Confirmation"
+msgstr "Confirmação para apagar fila"
+
+#: templates/savedsearches.inc:45 templates/savedsearches.inc:46
+msgid "Delete Search"
+msgstr "Apagar pesquisa"
+
+#: admin.php:362 lib/Admin.php:451
+msgid "Delete State"
+msgstr "Apagar estado"
+
+#: lib/Admin.php:500
+msgid "Delete State Confirmation"
+msgstr "Confirmação para apagar estado"
+
+#: admin.php:634 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "Apagar assunto"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "Confirmação para apagar assunto"
+
+#: admin.php:111 lib/Admin.php:306
+msgid "Delete Type"
+msgstr "Apagar tipo"
+
+#: lib/Admin.php:377
+msgid "Delete Type Confirmation"
+msgstr "Confirmacão para apagar tipo"
+
+#: admin.php:726 lib/Admin.php:630
+msgid "Delete Version"
+msgstr "Apagar versão"
+
+#: lib/Admin.php:676
+msgid "Delete Version Confirmation"
+msgstr "Confirmação para apagar versão"
+
+#: config/prefs.php.dist:48
+msgid "Descending"
+msgstr "Decrescente"
+
+#: lib/Create.php:118
+msgid "Description"
+msgstr "Descrição"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Opções de exibição"
+
+#: lib/Whups.php:554
+msgid "Download"
+msgstr "Download"
+
+#: query.php:45
+msgid "Edit"
+msgstr "Editar"
+
+#: lib/Admin.php:143 lib/Admin.php:331
+#, php-format
+msgid "Edit %s"
+msgstr "Editar %s"
+
+#: admin.php:830 lib/Admin.php:718 lib/Admin.php:741
+msgid "Edit Attribute"
+msgstr "Editar atributo"
+
+#: lib/Admin.php:365
+msgid "Edit Attributes"
+msgstr "Editar atributos"
+
+#: lib/Admin.php:355
+msgid "Edit Priorities"
+msgstr "Editar prioridades"
+
+#: admin.php:467 lib/Admin.php:542 lib/Admin.php:565
+msgid "Edit Priority"
+msgstr "Editar prioridade"
+
+#: runquery.php:23
+msgid "Edit Query"
+msgstr "Editar consulta"
+
+#: admin.php:259 lib/Admin.php:118
+msgid "Edit Queue"
+msgstr "Editar fila"
+
+#: admin.php:29
+msgid "Edit Queues"
+msgstr "Editar filas"
+
+#: admin.php:357 lib/Admin.php:451 lib/Admin.php:474
+msgid "Edit State"
+msgstr "Editar estado"
+
+#: lib/Admin.php:345
+msgid "Edit States"
+msgstr "Editar estados"
+
+#: admin.php:629 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "Editar assunto"
+
+#: admin.php:31
+msgid "Edit Subjects"
+msgstr "Editar assuntos"
+
+#: admin.php:105 lib/Admin.php:306
+msgid "Edit Type"
+msgstr "Editar tipo"
+
+#: admin.php:30
+msgid "Edit Types"
+msgstr "Editar tipos"
+
+#: admin.php:721 lib/Admin.php:630 lib/Admin.php:653
+msgid "Edit Version"
+msgstr "Editar versão"
+
+#: lib/Admin.php:717
+msgid "Edit or Delete Attributes"
+msgstr "Editar ou apagar atributos"
+
+#: lib/Admin.php:541
+msgid "Edit or Delete Priorities"
+msgstr "Editar ou apagar prioridades"
+
+#: lib/Admin.php:117
+msgid "Edit or Delete Queues"
+msgstr "Editar ou apagar filas"
+
+#: lib/Admin.php:450
+msgid "Edit or Delete States"
+msgstr "Editar ou apagar Estados"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Editar ou apagar assuntos"
+
+#: lib/Admin.php:305
+msgid "Edit or Delete Types"
+msgstr "Editar ou apagar tipos"
+
+#: lib/Admin.php:629
+msgid "Edit or Delete Versions"
+msgstr "Editar ou apagar versões"
+
+#: lib/Admin.php:184
+msgid "Edit the permissions on this queue"
+msgstr "Editar as permissões desta fila"
+
+#: lib/Admin.php:179
+msgid "Edit the users responsible for this queue"
+msgstr "Editar os usuários responsáveis por esta fila"
+
+#: lib/Admin.php:159
+msgid "Edit the versions for this queue"
+msgstr "Editar as versões para esta fila"
+
+#: query.php:146
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+"Erro: Formulário de consulta %s desconhecido, padranizando para propriedades"
+
+#: lib/Query.php:51
+msgid "Exact Match"
+msgstr "Coincidência exata"
+
+#: runquery.php:73 runquery.php:87 query.php:29
+msgid "Execute Query"
+msgstr "Executar consulta"
+
+#: templates/prevnext.inc:12
+msgid "First"
+msgstr "Primeiro"
+
+#: lib/Admin.php:802
+msgid "For tickets from these queues"
+msgstr "Para tickets desta fila"
+
+#: lib/Admin.php:806
+msgid "For tickets which are"
+msgstr "Para tickets que são"
+
+#: templates/menu.inc:6 lib/Block/summary.php:29
+msgid "Go"
+msgstr "Ir"
+
+#: query.php:37
+msgid "Group Criteria"
+msgstr "Critério do grupo"
+
+#: ticket/people.php:58 lib/Create.php:162
+msgid "Group Owners"
+msgstr "Proprietários do grupo"
+
+#: templates/queryrenderer.inc:105 lib/Query.php:494 lib/Query.php:496
+msgid "Groups"
+msgstr "Grupos"
+
+#: lib/api.php:619
+msgid "Hidden Comments"
+msgstr "Ocultar comentários"
+
+#: ticket/index.php:43 lib/Whups.php:190
+msgid "History"
+msgstr "História"
+
+#: query.php:46
+msgid "Hoist"
+msgstr ""
+
+#: templates/queryrenderer.inc:103 lib/Whups.php:397 lib/Query.php:572
+#: config/prefs.php.dist:28
+msgid "Id"
+msgstr "Id"
+
+#: search.php:52
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+
+#: search.php:55
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+
+#: lib/Admin.php:809
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+
+#: query.php:47
+msgid "Insert And"
+msgstr "Inserir And"
+
+#: lib/Query.php:380
+msgid "Insert Branch"
+msgstr "Inserir Branch"
+
+#: query.php:49
+msgid "Insert Not"
+msgstr "Inserir Not"
+
+#: query.php:48
+msgid "Insert Or"
+msgstr "Inserir Or"
+
+#: lib/Whups.php:161
+msgid "Invalid Ticket Id"
+msgstr "Identificação do ticket inválida"
+
+#: lib/Admin.php:157
+msgid "Keep a set of versions for this queue?"
+msgstr "Manter um configuração de versão para esta fila?"
+
+#: templates/prevnext.inc:17
+msgid "Last"
+msgstr "Última"
+
+#: runquery.php:25 query.php:30 lib/Query.php:731
+msgid "Load Query"
+msgstr "Ler consulta"
+
+#: config/prefs.php.dist:89
+msgid "MM/DD/YY"
+msgstr "MM/DD/AA"
+
+#: config/prefs.php.dist:90
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/AA HH:MM:SS"
+
+#: lib/Admin.php:412
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Fazer um clone de %s"
+
+#: lib/Query.php:655
+msgid "Match"
+msgstr "Coincidir"
+
+#: lib/Query.php:436 lib/Query.php:529 lib/Query.php:656
+msgid "Match Operator"
+msgstr "Operador de coincidência"
+
+#: lib/Query.php:55
+msgid "Match Pattern"
+msgstr "Modelo de coincidência"
+
+#: lib/Query.php:54
+msgid "Match Word"
+msgstr "Palavra de coincidência"
+
+#: lib/Reports.php:14
+msgid "Maximum time a ticket is unresolved"
+msgstr "Tempo máximo para um ticket ficar sem solução"
+
+#: lib/Reports.php:15
+msgid "Minimum time a ticket is unresolved"
+msgstr "Tempo mínimo para um ticket ficar sem solução"
+
+#: config/prefs.php.dist:129
+msgid "Most recent first"
+msgstr "Mais novos primeiro"
+
+#: ticket/queue.php:171
+#, php-format
+msgid "Moved ticket %d to '%s'"
+msgstr "Ticket %d movido para '%s'"
+
+#: mybugs.php:43
+msgid "My Assigned Tickets"
+msgstr "Meus tickets assinados"
+
+#: mybugs.php:59
+msgid "My Open Requests"
+msgstr "Meus pedidos abertos"
+
+#: mybugs.php:81 search.php:189 lib/Block/myqueries.php:3
+#: lib/Block/myqueries.php:26
+msgid "My Queries"
+msgstr "Minhas consultas"
+
+#: mybugs.php:78 search.php:186 lib/Block/mysearches.php:3
+#: lib/Block/mysearches.php:24
+msgid "My QuickSearches"
+msgstr "Minhas pesquisas rápidas"
+
+#: config/prefs.php.dist:58
+msgid "My Tickets"
+msgstr "Meus tickets"
+
+#: lib/Ticket.php:463
+#, php-format
+msgid "NEW: %s"
+msgstr "NOVO: %s"
+
+#: lib/Query.php:707 lib/Query.php:742
+msgid "Name"
+msgstr "Nome"
+
+#: lib/Admin.php:417
+msgid "Name of the cloned copy"
+msgstr "Nome da cópia clonada"
+
+#: lib/Driver.php:97
+msgid "New"
+msgstr "Novo"
+
+#: query.php:28 lib/Block/myqueries.php:27 lib/Block/myqueries.php:28
+msgid "New Query"
+msgstr "Nova consulta"
+
+#: ticket/queue.php:37
+msgid "New Queue"
+msgstr "Nova fila"
+
+#: ticket/people.php:67
+msgid "New State"
+msgstr "Novo estado"
+
+#: ticket/create.php:27 lib/Block/summary.php:28
+msgid "New Ticket"
+msgstr "Novo ticket"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Novo tipo"
+
+#: templates/prevnext.inc:16
+msgid "Next"
+msgstr "Próximo"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:210 lib/Admin.php:398
+#: lib/Admin.php:514 lib/Admin.php:602 lib/Admin.php:690 lib/Admin.php:778
+msgid "No"
+msgstr "Não"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr "Nenhuma pesquisa limpa."
+
+#: reports.php:17
+msgid "No stats available."
+msgstr "Nenhuma estatistica disponível"
+
+#: lib/Driver.php:254
+#, php-format
+msgid "No such backend '%s' found"
+msgstr "Nenhum backend '%s' encontrado"
+
+#: lib/Whups.php:436
+msgid "No tickets matched your search criteria."
+msgstr "Nenhum ticket coincide com seu critério de pesquisa"
+
+#: lib/Block/summary.php:75
+msgid "No tickets to display"
+msgstr "Nenhum ticket para mostrar"
+
+#: lib/Reports.php:79
+msgid "None"
+msgstr "Nenhum"
+
+#: templates/queryrenderer.inc:97 lib/Query.php:385
+msgid "Not"
+msgstr "Não"
+
+#: query.php:79
+msgid "Not yet implemented..."
+msgstr "Não implementado ainda..."
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Opções de notificação"
+
+#: config/prefs.php.dist:109
+msgid "Only notify me of ticket changes from other users"
+msgstr "Apenas notifique-me das mudanças dos tickets de outros usuários"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Owner"
+msgstr "Tickets abertos por Proprietário"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Priority"
+msgstr "Tickets abertos por Prioridade"
+
+#: lib/Reports.php:3
+msgid "Open Tickets by Queue"
+msgstr "Tickets abertos por Fila"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by Requester"
+msgstr "Tickets abertos por Requisitante"
+
+#: lib/Reports.php:4
+msgid "Open Tickets by State"
+msgstr "Tickets abertos por Estado"
+
+#: lib/Reports.php:5
+msgid "Open Tickets by Type"
+msgstr "Tickets abertos por Tipo"
+
+#: templates/queryrenderer.inc:96 lib/Query.php:384
+msgid "Or"
+msgstr "Ou"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Outras opções"
+
+#: templates/queryrenderer.inc:104 ticket/people.php:52 ticket/people.php:64
+#: lib/Create.php:156 lib/Create.php:168 lib/Whups.php:403 lib/Ticket.php:401
+#: lib/Ticket.php:440 lib/Ticket.php:441 lib/Ticket.php:443 lib/Ticket.php:501
+msgid "Owners"
+msgstr "Proprietários"
+
+#: lib/Query.php:387
+msgid "Path"
+msgstr "Caminho"
+
+#: lib/Whups.php:197
+msgid "People"
+msgstr "Pessoas"
+
+#: ticket/update.php:17 ticket/people.php:17 ticket/type.php:17
+#: ticket/delete.php:17 ticket/queue.php:17
+msgid "Permission Denied"
+msgstr "Permissão negada"
+
+#: ticket/update.php:78 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr "Permissão negada."
+
+#: templates/prevnext.inc:13
+msgid "Prev"
+msgstr "Anterior"
+
+#: lib/Admin.php:353 lib/Admin.php:395
+msgid "Priorities for this Type"
+msgstr "Prioridades para este tipo"
+
+#: templates/queryrenderer.inc:128 ticket/update.php:48 ticket/type.php:68
+#: ticket/queue.php:111 lib/Create.php:116 lib/Whups.php:401
+#: lib/Ticket.php:393 lib/Ticket.php:423 lib/Ticket.php:499 lib/Query.php:592
+#: config/prefs.php.dist:32
+msgid "Priority"
+msgstr "Prioridade"
+
+#: templates/comment.inc:68
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Prioridade ⇒ %s"
+
+#: lib/Admin.php:530 lib/Admin.php:576 lib/Admin.php:599
+msgid "Priority Description"
+msgstr "Descrição da prioridade"
+
+#: lib/Admin.php:529 lib/Admin.php:554 lib/Admin.php:573 lib/Admin.php:596
+msgid "Priority Name"
+msgstr "Nome da prioridade"
+
+#: query.php:35
+msgid "Property Criteria"
+msgstr "Critério da propriedade"
+
+#: query.php:127
+msgid "Query Builder"
+msgstr "Construtor de consultas"
+
+#: lib/Query.php:118
+msgid "Query Parameters"
+msgstr "Parâmetros da consulta"
+
+#: runquery.php:81
+msgid "Query Results"
+msgstr "Resultados da consulta"
+
+#: search.php:48 templates/queryrenderer.inc:112 lib/Whups.php:402
+#: lib/Ticket.php:390 lib/Ticket.php:420 lib/Ticket.php:490 lib/Query.php:577
+#: config/prefs.php.dist:33
+msgid "Queue"
+msgstr "Fila"
+
+#: templates/comment.inc:76
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Fila ⇒ %s"
+
+#: lib/Admin.php:106 lib/Admin.php:150 lib/Admin.php:207
+msgid "Queue Description"
+msgstr "Descrição da fila"
+
+#: lib/Admin.php:105 lib/Admin.php:129 lib/Admin.php:147 lib/Admin.php:204
+#: lib/Create.php:27 lib/Create.php:35
+msgid "Queue Name"
+msgstr "Nome da fila"
+
+#: ticket/queue.php:84 lib/Create.php:74 lib/Ticket.php:493
+msgid "Queue Version"
+msgstr "Versão da fila"
+
+#: scripts/mail-filter.php:80
+#, php-format
+msgid "Queue `%s' does not exist."
+msgstr "Fila `%s' não existe."
+
+#: admin.php:32 templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Matriz de fila/tipo"
+
+#: search.php:137
+#, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s"
+msgstr "Fila: %s, ticket: %s, categoria: %s, tipo: %s"
+
+#: lib/api.php:122 lib/api.php:622
+msgid "Queues"
+msgstr "Filas"
+
+#: lib/Ticket.php:465
+#, php-format
+msgid "RESOLVED: %s"
+msgstr "Resolvido: %s"
+
+#: runquery.php:24
+msgid "Re-execute Query"
+msgstr "Reexecutar consulta"
+
+#: lib/Admin.php:779
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr "Apagar com certeza este atributo? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:603
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Apagar com certeza esta prioridade? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:211
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Apagar com certeza esta fila? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:515
+msgid "Really delete this state? This may cause data problems!"
+msgstr "Apagar com certeza este estado? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!"
+msgstr "Apagar com certeza este assunto? Isto pode causar problemas de dados!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr "Apagar com certeza este ticket? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:399
+msgid "Really delete this type? This may cause data problems!"
+msgstr "Apagar com certeza este tipo? Isto pode causar problemas de dados!"
+
+#: lib/Admin.php:691
+msgid "Really delete this version? This may cause data problems!"
+msgstr "Apagar com certeza esta versão? Isto pode causa problemas de dados!"
+
+#: search.php:167
+msgid "Refine Search"
+msgstr "Refinar pesquisa"
+
+#: admin.php:910
+msgid "Reminders were sent."
+msgstr ""
+
+#: lib/Admin.php:260
+msgid "Remove User"
+msgstr "Remover usuário"
+
+#: reports.php:22
+msgid "Reports"
+msgstr "Relatórios"
+
+#: templates/queryrenderer.inc:106 lib/Ticket.php:504
+msgid "Requester"
+msgstr "Requisitante"
+
+#: lib/Whups.php:406 lib/Ticket.php:507 lib/Driver.php:99
+#: config/prefs.php.dist:37
+msgid "Resolved"
+msgstr "Resolvido"
+
+#: lib/Admin.php:262
+msgid "Responsible Users"
+msgstr "Usuários responsáveis"
+
+#: ticket/update.php:71
+msgid "Restrict Comment to:"
+msgstr "Restingir comentário para:"
+
+#: lib/Admin.php:163
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Restringir assuntos de tickets de uma lista específica?"
+
+#: templates/searchresults.inc:51
+msgid "Save"
+msgstr "Salvar"
+
+#: runquery.php:26 query.php:31 lib/Query.php:705
+msgid "Save Query"
+msgstr "Salvar consulta"
+
+#: templates/searchresults.inc:45
+msgid "Save these results as: "
+msgstr "Salvar este resultado como: "
+
+#: lib/Query.php:659
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Pesquisar %s atributo"
+
+#: lib/Query.php:662
+msgid "Search Attribute"
+msgstr "Pesquisar atributo"
+
+#: lib/Query.php:439 lib/Query.php:531
+msgid "Search Comments"
+msgstr "Pesquisar comentários"
+
+#: lib/Query.php:437
+msgid "Search Owners"
+msgstr "Pesquisar proprietários"
+
+#: lib/Query.php:438
+msgid "Search Requester"
+msgstr "Pesquisa por requisitante"
+
+#: search.php:162
+msgid "Search Results"
+msgstr "Resultados da pesquisa"
+
+#: templates/prevnext.inc:26
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Resultados da pesquisa: %s de %s"
+
+#: lib/Query.php:530
+msgid "Search Summary"
+msgstr "Sumário da pesquisa"
+
+#: search.php:64 search.php:179 config/prefs.php.dist:59
+msgid "Search Tickets"
+msgstr "Pesquisar tickets"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr "Pesquisa limpa"
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr "Pesquisas limpas"
+
+#: config/prefs.php.dist:61
+msgid "Select the view to display after login:"
+msgstr "Selecione o que ver depois do login:"
+
+#: admin.php:33 lib/Admin.php:790
+msgid "Send Reminders"
+msgstr "Enviar lembretes"
+
+#: lib/Admin.php:801
+msgid "Send only for this list of ticket ids"
+msgstr "Enviar apenas para esta lista de tickets ids"
+
+#: lib/Whups.php:198
+msgid "Set Queue"
+msgstr "Configurar fila"
+
+#: ticket/queue.php:192 ticket/queue.php:201 ticket/queue.php:213
+msgid "Set Queue - Step 1"
+msgstr "Configurar fila - passo 1"
+
+#: ticket/queue.php:193 ticket/queue.php:202
+msgid "Set Queue - Step 2"
+msgstr "Configurar fila - passo 2"
+
+#: ticket/queue.php:203
+msgid "Set Queue - Step 3"
+msgstr "Configurar fila - passo 3"
+
+#: ticket/queue.php:179
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Configurar fila para %s"
+
+#: lib/Whups.php:201
+msgid "Set Type"
+msgstr "Configurar tipo"
+
+#: ticket/type.php:140 ticket/type.php:149
+msgid "Set Type - Step 1"
+msgstr "Configurar tipo - passo 1"
+
+#: ticket/type.php:141
+msgid "Set Type - Step 2"
+msgstr "Configurar tipo - passo 2"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "Configurar tipo para %s"
+
+#: config/prefs.php.dist:100
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "Mostrar \"(X dias atrás)\" no campo Data no resultado da pesquisa?"
+
+#: config/prefs.php.dist:127
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Mostrar comentários na ordem cronológica, ou a mais recente primeiro?"
+
+#: config/prefs.php.dist:78
+msgid "Show ticket IDs in the summary view?"
+msgstr "Mostrar IDs dos tickets no sumário "
+
+#: config/prefs.php.dist:70
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Mostrar tickets que você requisitou no sumário?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Relatório HTML simples"
+
+#: templates/searchresults.inc:75
+msgid "Sort Direction"
+msgstr "Direção de classificação"
+
+#: templates/searchresults.inc:76 templates/searchresults.inc:80
+#, php-format
+msgid "Sort by %s"
+msgstr "Classificado por %s"
+
+#: templates/queryrenderer.inc:123 ticket/update.php:45 ticket/type.php:67
+#: ticket/queue.php:110 lib/Whups.php:399 lib/Ticket.php:392
+#: lib/Ticket.php:422 lib/Ticket.php:498 lib/Query.php:589
+#: config/prefs.php.dist:30
+msgid "State"
+msgstr "Estado"
+
+#: templates/comment.inc:64
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Estado ⇒ %s"
+
+#: lib/Admin.php:439 lib/Admin.php:488
+msgid "State Category"
+msgstr "Categoria do estado"
+
+#: lib/Admin.php:438 lib/Admin.php:485 lib/Admin.php:511
+msgid "State Description"
+msgstr "Descrição do estado"
+
+#: lib/Admin.php:437 lib/Admin.php:463 lib/Admin.php:482 lib/Admin.php:508
+msgid "State Name"
+msgstr "Nome do estado"
+
+#: lib/Admin.php:343 lib/Admin.php:391
+msgid "States for this Type"
+msgstr "Estados para este tipo"
+
+#: lib/Create.php:117 config/prefs.php.dist:29
+msgid "Subject"
+msgstr "Assunto"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Nome do assunto"
+
+#: lib/Admin.php:167
+msgid "Subjects associated with this Queue"
+msgstr "Assuntos associados com esta fila"
+
+#: ticket/create.php:102
+msgid "Submit"
+msgstr "Enviar"
+
+#: admin.php:158
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "%s clonado com sucesso para %s."
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Tipo do ticket alterado com sucesso."
+
+#: templates/queryrenderer.inc:109 ticket/update.php:42 ticket/delete.php:34
+#: lib/Whups.php:398 lib/Ticket.php:400 lib/Ticket.php:414 lib/Ticket.php:415
+#: lib/Ticket.php:417 lib/Ticket.php:489
+msgid "Summary"
+msgstr "Sumário"
+
+#: templates/comment.inc:40
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Sumário ⇒ %s"
+
+#: search.php:50
+msgid "Summary like"
+msgstr "Sumário como"
+
+#: templates/comment.inc:54
+#, php-format
+msgid "Taken from %s"
+msgstr "Pego de %s"
+
+#: lib/Query.php:528
+msgid "Text"
+msgstr "Texto"
+
+#: query.php:39
+msgid "Text Criteria"
+msgstr "Critério do Texto"
+
+#: view.php:44 lib/Ticket.php:295
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "O backend VFS precisa ser configurado para ativar envio de anexos."
+
+#: admin.php:799
+#, php-format
+msgid "The attribute '%s' has been added to %s."
+msgstr "O atributo '%s' foi adicionado para %s."
+
+#: admin.php:881
+msgid "The attribute has been deleted."
+msgstr "O atributo foi apagado."
+
+#: admin.php:852
+msgid "The attribute has been modified."
+msgstr "O artibuto foi modificado."
+
+#: admin.php:886
+msgid "The attribute was not deleted."
+msgstr "O atributo não foi apagado."
+
+#: admin.php:436
+#, php-format
+msgid "The priority '%s' has been added to %s."
+msgstr "A prioridade '%s' foi adicionada para %s."
+
+#: admin.php:517
+msgid "The priority has been deleted."
+msgstr "A prioridade foi apagada."
+
+#: admin.php:489
+msgid "The priority has been modified."
+msgstr "A prioridade foi modificada."
+
+#: admin.php:522
+msgid "The priority was not deleted."
+msgstr "A prioriadade não foi modificada."
+
+#: admin.php:237
+#, php-format
+msgid "The queue '%s' has been created."
+msgstr "A fila '%s' foi criada."
+
+#: admin.php:305
+msgid "The queue has been deleted."
+msgstr "A fila foi apagada."
+
+#: admin.php:287
+msgid "The queue has been modified."
+msgstr "A fila foi modificada."
+
+#: admin.php:310
+msgid "The queue was not deleted."
+msgstr "A fila não foi apagada."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "O modelo pedido não existe."
+
+#: admin.php:325
+#, php-format
+msgid "The state '%s' has been added to %s."
+msgstr "O estado '%s' foi adicionado para %s."
+
+#: admin.php:408
+msgid "The state has been deleted."
+msgstr "O estado foi apagado."
+
+#: admin.php:379
+msgid "The state has been modified."
+msgstr "O estado foi modificado."
+
+#: admin.php:413
+msgid "The state was not deleted."
+msgstr "O estado não foi apagado."
+
+#: admin.php:613
+#, php-format
+msgid "The subject '%s' has been added."
+msgstr "O assunto '%s' foi adicionado."
+
+#: admin.php:669
+msgid "The subject has been deleted."
+msgstr "O assunto foi apagado."
+
+#: admin.php:650
+msgid "The subject has been modified."
+msgstr "O assunto foi modificado."
+
+#: admin.php:674
+msgid "The subject was not deleted."
+msgstr "O assunto não foi apagado."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "O ticket foi apagado."
+
+#: admin.php:176
+#, php-format
+msgid "The type '%s' has been modified."
+msgstr "O tipo '%s' foi modificado."
+
+#: admin.php:218
+msgid "The type has been deleted."
+msgstr "O tipo foi apagado."
+
+#: admin.php:223
+msgid "The type was not deleted."
+msgstr "O tipo não foi apagado."
+
+#: admin.php:689
+#, php-format
+msgid "The version '%s' has been added to %s."
+msgstr "A versão '%s' foi adicionada para %s."
+
+#: admin.php:771
+msgid "The version has been deleted."
+msgstr "A versão foi apagada."
+
+#: admin.php:743
+msgid "The version has been modified."
+msgstr "A versão foi modificada."
+
+#: admin.php:776
+msgid "The version was not deleted."
+msgstr "A versão não foi apagada."
+
+#: lib/Admin.php:726
+msgid "There are no attribute types to edit"
+msgstr "Não há tipos de atributos para editar"
+
+#: lib/Query.php:662
+msgid "There are no attributes defined for the current type"
+msgstr "Não há atributos definidos para o tipo atual"
+
+#: lib/Admin.php:550
+msgid "There are no priorities to edit"
+msgstr "Não há prioridades para editar"
+
+#: lib/Admin.php:798
+msgid "There are no queues available."
+msgstr "Não há filas disponíveis"
+
+#: lib/Admin.php:126
+msgid "There are no queues to edit"
+msgstr "Não há filas para editar"
+
+#: lib/Create.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "Não há filas em que se possa criar tickets"
+
+#: search.php:42
+msgid "There are no queues which you can search."
+msgstr "Não há filas em que se possa pesquisar"
+
+#: lib/Admin.php:459
+msgid "There are no states to edit"
+msgstr "Não há estados para editar"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "Não há assuntos para editar"
+
+#: lib/Create.php:58
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+
+#: lib/Admin.php:314
+msgid "There are no types to edit"
+msgstr "Não há tipos para editar"
+
+#: lib/Admin.php:276
+msgid "There are no users responsible for this queue."
+msgstr "Não há usuários responsáveis por esta fila."
+
+#: ticket/people.php:63 lib/Create.php:167
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Não há usuários que possam assinar este ticket."
+
+#: lib/Admin.php:638
+msgid "There are no versions to edit"
+msgstr "Não há versões para editar"
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "Não há dados para este gráfico."
+
+#: lib/Reports.php:154
+msgid "There is no data for this report."
+msgstr "Não há dados para este relatório."
+
+#: admin.php:556
+#, php-format
+msgid "There was an error adding '%s' to the responsible list for '%s': %s"
+msgstr "Houve um erro ao adicionar '%s' para a lista responsável por '%s': %s"
+
+#: admin.php:615
+#, php-format
+msgid "There was an error adding the subject: %s."
+msgstr "Houve um erro ao adicionar o assunto: %s."
+
+#: admin.php:802
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Houve um erro ao criar o atributo: %s."
+
+#: admin.php:438
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "Houve um erro ao criar a prioridade: %s."
+
+#: admin.php:245
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "Houve um erro ao criar a fila: %s."
+
+#: admin.php:327
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "Houve um erro ao criar o estado: %s."
+
+#: admin.php:691
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "Houve um erro ao criar a versão: %s."
+
+#: admin.php:883
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Houve um erro ao apagar o atributo: %s."
+
+#: admin.php:519
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Houve um erro ao apagar o a prioridade: %s."
+
+#: admin.php:307
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "Houve um erro ao apagar a fila: %s."
+
+#: admin.php:410
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "Houve um erro ao apagar o estado: %s."
+
+#: admin.php:671
+#, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Houve um erro ao apagar o assunto: %s."
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Houve um erro ao apagar o ticket: %s"
+
+#: admin.php:220
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "Houve um erro ao apagar o tipo: %s."
+
+#: admin.php:773
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "Houve um erro ao apagar a versão: %s."
+
+#: admin.php:859
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Houve um erro ao editar o atributo: %s."
+
+#: admin.php:494
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "Houve um erro ao editar a prioridade: %s."
+
+#: admin.php:291
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "Houve um erro ao editar a fila: %s."
+
+#: admin.php:384
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "Houve um erro ao editar o estado: %s."
+
+#: admin.php:655
+#, php-format
+msgid "There was an error editing the subject: %s."
+msgstr "Houve um erro ao editar o assunto: %s."
+
+#: admin.php:748
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "Houve um erro ao editar a versão: %s."
+
+#: lib/Admin.php:236
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Houve um erro ao listar os usuários: %s; %s"
+
+#: mybugs.php:38
+#, php-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr "Houve um erro ao listar seus tickets assinados: %s"
+
+#: mybugs.php:54
+#, php-format
+msgid "There was an error listing your open requests: %s"
+msgstr "Houve um erro ao listar seus pedidos abertos: %s"
+
+#: admin.php:174
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "Houve um erro ao modificar o tipo: %s."
+
+#: search.php:156
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Houve um erro ao fazer sua pesquisa: %s"
+
+#: admin.php:593
+#, php-format
+msgid "There was an error removing '%s' from the responsible list for '%s': %s"
+msgstr "Houve um erro ao remover '%s' da lista de responsabilidade de '%s': %s"
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Este não é um modelo de resultado de pesquisa."
+
+#: lib/Admin.php:57
+msgid "This is not a valid subject."
+msgstr "Este não é um assunto válido."
+
+#: ticket/queue.php:79 lib/Create.php:69
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:411
+msgid "Ticket"
+msgstr "Ticket"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Ticket %d foi apagado"
+
+#: lib/Driver/sql.php:783
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Ticket %s não foi encontrado"
+
+#: search.php:49
+msgid "Ticket ID"
+msgstr "Identificação do ticket"
+
+#: lib/Create.php:115
+msgid "Ticket State"
+msgstr "Status do ticket"
+
+#: templates/reports/stats.inc:4
+msgid "Ticket Stats"
+msgstr "Estatísticas do ticket"
+
+#: lib/Block/summary.php:3
+msgid "Ticket Summary"
+msgstr "Sumário do ticket"
+
+#: lib/Create.php:63
+msgid "Ticket Type"
+msgstr "Tipo do ticket"
+
+#: lib/Admin.php:153
+msgid "Ticket Types associated with this Queue"
+msgstr "Tipos de tickets associados com esta fila"
+
+#: lib/Ticket.php:407
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr "URL do ticket: %s\n"
+
+#: ticket/update.php:127
+msgid "Ticket Updated"
+msgstr "Ticket atualizado"
+
+#: lib/Block/summary.php:52
+msgid "Tickets assigned to you"
+msgstr "Tickets assinados por você"
+
+#: search.php:52
+msgid "Tickets which are"
+msgstr "Tickets que são"
+
+#: lib/Block/summary.php:69
+msgid "Tickets you requested"
+msgstr "Tickets que você requisitou"
+
+#: templates/queryrenderer.inc:117 ticket/queue.php:87 lib/Whups.php:400
+#: lib/Ticket.php:394 lib/Ticket.php:424 lib/Ticket.php:497 lib/Query.php:583
+#: config/prefs.php.dist:31
+msgid "Type"
+msgstr "Tipo"
+
+#: templates/comment.inc:72
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tipo ⇒ %s"
+
+#: lib/Admin.php:294 lib/Admin.php:338 lib/Admin.php:387
+msgid "Type Description"
+msgstr "Descrição do tipo"
+
+#: lib/Admin.php:293 lib/Admin.php:317 lib/Admin.php:335 lib/Admin.php:384
+msgid "Type Name"
+msgstr "Nome do tipo"
+
+#: search.php:55
+msgid "Types"
+msgstr "Tipos"
+
+#: lib/Ticket.php:502
+msgid "Unassigned"
+msgstr "Não assinado"
+
+#: lib/Admin.php:809
+msgid "Unassigned tickets"
+msgstr "Tickets não assinados"
+
+#: lib/Driver.php:96
+msgid "Unconfirmed"
+msgstr "Não confirmado"
+
+#: templates/queryrenderer.inc:153
+#, php-format
+msgid "Unknown node type %s"
+msgstr "tipo de nó desconhecido %s"
+
+#: lib/Whups.php:192
+msgid "Update"
+msgstr "Atualizar"
+
+#: ticket/update.php:149
+#, php-format
+msgid "Update %s"
+msgstr "Atualizar %s"
+
+#: templates/admin/mtmatrix.inc:28
+msgid "Update Associations"
+msgstr "Atualizar associações"
+
+#: ticket/people.php:122
+#, php-format
+msgid "Update People for %s"
+msgstr "Atualizar pessoas para %s"
+
+#: lib/Ticket.php:399 lib/Ticket.php:412
+msgid "Updated By"
+msgstr "Atualizado por"
+
+#: lib/Query.php:584
+msgid ""
+"Use the Change Ticket Type form to switch the current Ticket Type. If you "
+"select \"Any\" here, the criteria you add will search every kind of ticket. "
+"If you choose the current ticket type, you will be limiting this branch of "
+"your search to that type."
+msgstr ""
+
+#: lib/Admin.php:235 lib/Admin.php:245 lib/Admin.php:248
+msgid "User"
+msgstr "Usuário"
+
+#: query.php:36
+msgid "User Criteria"
+msgstr "Critério do usuário"
+
+#: lib/Query.php:435
+msgid "User ID"
+msgstr "Identificação do usuário"
+
+#: lib/Admin.php:177
+msgid "Users responsible for this Queue"
+msgstr "Usuários responsáveis por esta fila"
+
+#: lib/Admin.php:280
+msgid "Users responsible for this queue"
+msgstr "Usuários responsáveis por esta fila"
+
+#: lib/Ticket.php:391 lib/Ticket.php:421 config/prefs.php.dist:34
+msgid "Version"
+msgstr "Versão"
+
+#: lib/Admin.php:618 lib/Admin.php:664 lib/Admin.php:687
+msgid "Version Description"
+msgstr "Descrição da versão"
+
+#: lib/Admin.php:617 lib/Admin.php:642 lib/Admin.php:661 lib/Admin.php:684
+msgid "Version Name"
+msgstr "Nome da versão"
+
+#: templates/reports/graphs.inc:14
+msgid "View Graphs"
+msgstr "Ver gráficos"
+
+#: ticket/people.php:77 ticket/type.php:45 ticket/comment.php:40
+#: ticket/queue.php:50
+msgid "Viewable only by members of"
+msgstr "Visível apenas por membros de"
+
+#: config/prefs.php.dist:87
+msgid "Weekday Day Month"
+msgstr "Dia da semana Dia Mês"
+
+#: config/prefs.php.dist:88
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Dia da semana Dia Mês HH:MM:SS TZ"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:210 lib/Admin.php:398
+#: lib/Admin.php:514 lib/Admin.php:602 lib/Admin.php:690 lib/Admin.php:778
+msgid "Yes"
+msgstr "Sim"
+
+#: view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr "Você não tem permissão para ver este ticket."
+
+#: lib/Driver/sql.php:786
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Você não tem permissão para acessar este ticket (%s)."
+
+#: lib/Query.php:739
+msgid "You have no saved queries."
+msgstr "Você não salvou as consultas"
+
+#: lib/Whups.php:430
+msgid "You must select at least one queue to send reminders for."
+msgstr "Você deve selecionar ao menos uma fila para enviar lembretes"
+
+#: ticket/comment.php:25 lib/Create.php:29
+msgid "Your Email Address"
+msgstr "Seu e-mail"
+
+#: ticket/create.php:157
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+
+#: templates/prevnext.inc:13
+msgid "[< Prev]"
+msgstr "[< Anterior]"
+
+#: templates/prevnext.inc:12
+msgid "[<< First]"
+msgstr "[<< Primeira]"
+
+#: templates/prevnext.inc:17
+msgid "[Last >>]"
+msgstr "[Última >>]"
+
+#: templates/prevnext.inc:16
+msgid "[Next >]"
+msgstr "[Próxima >]"
+
+#: lib/Whups.php:497
+msgid "_Admin"
+msgstr "_Administração"
+
+#: lib/Whups.php:486
+#, php-format
+msgid "_My %s"
+msgstr "_Meus %s"
+
+#: lib/Whups.php:489
+msgid "_New Ticket"
+msgstr "_Novo ticket"
+
+#: lib/Whups.php:491
+msgid "_Query Builder"
+msgstr "_Construtor de consultas"
+
+#: lib/Whups.php:492
+msgid "_Reports"
+msgstr "_Relatórios"
+
+#: lib/Whups.php:488
+msgid "_Search"
+msgstr "_Pesquisa"
+
+#: scripts/mail-filter.php:108
+#, php-format
+msgid "bad priority `%s' for type."
+msgstr "Prioridade `%s' ruim para tipo."
+
+#: scripts/mail-filter.php:122
+#, php-format
+msgid "Estado `%s' ruim para tipo."
+msgstr ""
+
+#: templates/queryrenderer.inc:143
+msgid "contains (case insensitive) substring"
+msgstr "contem sequência (sensível ao caso)"
+
+#: templates/queryrenderer.inc:144
+msgid "contains (case sensitive) substring"
+msgstr "contem sequência (sensível ao caso)"
+
+#: templates/queryrenderer.inc:145
+msgid "contains the word"
+msgstr "contem palavra"
+
+#: scripts/mail-filter.php:133
+#, php-format
+msgid "error processing message: %s"
+msgstr "erro ao processar mensagem: %s"
+
+#: templates/queryrenderer.inc:142
+msgid "is"
+msgstr "é"
+
+#: templates/queryrenderer.inc:140
+msgid "is greater than"
+msgstr "é maior que"
+
+#: templates/queryrenderer.inc:141
+msgid "is less than"
+msgstr "é menor que"
+
+#: templates/queryrenderer.inc:146
+msgid "matches the pattern"
+msgstr "coincide com o padrão"
--- /dev/null
+# Romanian translations for Whups package.
+# Copyright 2003-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 0.0.1\n"
+"POT-Creation-Date: 2003-03-04 13:46+0100\n"
+"PO-Revision-Date: 2003-03-27 10:54+0200\n"
+"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
+"Language-Team: Romanian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: templates/reports/stats.inc:20
+msgid "%s days"
+msgstr "%s zile"
+
+#: admin.php:544
+msgid "'%s' added to those responsible for '%s'"
+msgstr "'%s' adaugat la responsabilii pentru '%s'"
+
+#: admin.php:583
+msgid "'%s' is no longer among those responsible for '%s'"
+msgstr "'%s' nu mai este responsabil pentru '%s'"
+
+#: templates/comment.inc:53
+msgid ", initial priority of '%s'."
+msgstr ", prioritate initiala a '%s'."
+
+#: templates/comment.inc:56
+msgid ", priority changed to '%s'."
+msgstr ", prioritate schimbata in '%s'."
+
+#: templates/comment.inc:59
+msgid ", priority is '%s'."
+msgstr ", prioritatea este '%s'."
+
+#: admin.php:110
+msgid "- Stage 1"
+msgstr "- Faza 1"
+
+#: admin.php:115
+msgid "- Stage 2"
+msgstr "- Faza 2"
+
+#: lib/Driver.php:89
+msgid "-Added By: %s\n"
+msgstr "-Adaugat de: %s\n"
+
+#: lib/Driver.php:108
+msgid "-Assigned By: %s"
+msgstr "-Atribuit de: %s"
+
+#: lib/Driver.php:107
+msgid "-Assigned To: %s"
+msgstr "-Atribuit lui: %s"
+
+#: lib/Driver.php:199
+msgid "-Comment by %s on %s:"
+msgstr "-Comentariu de %s la %s:"
+
+#: lib/Driver.php:74
+msgid "-Created By: %s\n"
+msgstr "-Creat de: %s\n"
+
+#: lib/Driver.php:106 lib/Driver.php:126 lib/Driver.php:144
+msgid "-Queue: %s"
+msgstr "-Modul: %s"
+
+#: lib/Driver.php:73 lib/Driver.php:88
+msgid "-Queue: %s\n"
+msgstr "-Modul: %s\n"
+
+#: lib/Driver.php:145
+msgid "-New Priority: %s"
+msgstr "-Prioritate noua: %s"
+
+#: lib/Driver.php:127
+msgid "-New State: %s"
+msgstr "-Stare noua: %s"
+
+#: lib/Driver.php:109
+msgid "-State: %s"
+msgstr "-Stare: %s"
+
+#: lib/Driver.php:75 lib/Driver.php:90 lib/Driver.php:110 lib/Driver.php:128
+#: lib/Driver.php:146
+msgid "-Summary:"
+msgstr "Cuprins:"
+
+#: lib/Driver.php:105 lib/Driver.php:125 lib/Driver.php:143
+msgid "-Ticket %s"
+msgstr "-Tichet %s"
+
+#: lib/Driver.php:72 lib/Driver.php:87
+msgid "-Ticket %s\n"
+msgstr "-Tichet %s\n"
+
+#: lib/api.php:148
+msgid "<i>No summary</i>"
+msgstr "<i>Fara cuprins</i>"
+
+#: lib/Admin.php:675
+msgid "Add Attribute"
+msgstr "Adaugare atribut"
+
+#: lib/Query.php:542
+msgid "Add Attribute Criterion"
+msgstr "Adaugare criteriu atribut"
+
+#: details.php:44
+msgid "Add Comment"
+msgstr "Adaugare comentariu"
+
+#: details.php:101
+msgid "Add Comment Succeeded"
+msgstr "Adaugare reusita de comentariu"
+
+#: query.php:191
+msgid "Add Criterion"
+msgstr "Adaugare criteriu"
+
+#: lib/Admin.php:99 lib/Admin.php:100
+msgid "Add Queue"
+msgstr "Adaugare modul"
+
+#: lib/Admin.php:501
+msgid "Add Priority"
+msgstr "Adaugare prioritate"
+
+#: lib/Query.php:487
+msgid "Add Property Criterion"
+msgstr "Adaugare criteriu de proprietate"
+
+#: lib/Admin.php:403
+msgid "Add State"
+msgstr "Adaugare stare"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Adaugare subiect"
+
+#: lib/Query.php:443
+msgid "Add Text Criterion"
+msgstr "Adaugare criteriu text"
+
+#: lib/Admin.php:279 lib/Admin.php:280
+msgid "Add Type"
+msgstr "Adaugare tip"
+
+#: admin.php:110 admin.php:115
+msgid "Add Type %s"
+msgstr "Adaugare tip %s"
+
+#: lib/Query.php:391
+msgid "Add User Criterion"
+msgstr "Adaugare criteriu utilizator"
+
+#: lib/Admin.php:217
+msgid "Add Users"
+msgstr "Adaugare utilizatori"
+
+#: lib/Admin.php:588
+msgid "Add Version"
+msgstr "Adaugare versiune"
+
+#: create.php:151
+msgid "Adding your ticket failed: %s."
+msgstr "Adaugarea tichetului esuata: %s."
+
+#: lib/Search.php:177
+msgid "Additional Comment"
+msgstr "Comentariu aditional"
+
+#: lib/api.php:81 templates/menu/menu.inc:23
+msgid "Admin"
+msgstr "Admin"
+
+#: lib/Whups.php:24 lib/Whups.php:25 admin.php:81
+msgid "Administration"
+msgstr "Administrare"
+
+#: create.php:158
+msgid "An appropriate person has been notified of this request."
+msgstr "Persoana potrivita a fost notificata de aceasta cerere."
+
+#: lib/Query.php:343 templates/queryrenderer.inc:90
+msgid "And"
+msgstr "Si"
+
+#: lib/Query.php:490 lib/Query.php:491 lib/Search.php:26 lib/Search.php:54
+#: lib/Search.php:55 search.php:50 search.php:51 search.php:53 search.php:67
+msgid "Any"
+msgstr "Orice"
+
+#: lib/Search.php:124 lib/Search.php:170 lib/Search.php:245 lib/Search.php:287
+#: lib/Search.php:351
+msgid "Any Group"
+msgstr "Orice grup"
+
+#: config/prefs.php.dist:58
+msgid "Ascending"
+msgstr "Crescator"
+
+#: details.php:46
+msgid "Assign Ticket"
+msgstr "Atribuire tichet"
+
+#: details.php:144
+msgid "Assign Ticket Succeeded"
+msgstr "Atribuire tichet reusita"
+
+#: lib/Whups.php:313 lib/Search.php:96 lib/Driver.php:64
+#: config/prefs.php.dist:47
+msgid "Assigned"
+msgstr "Atribuit"
+
+#: lib/Driver/sql.php:235
+msgid "Assigned ticket to %s"
+msgstr "Tichet atribuit lui %s"
+
+#: lib/Create.php:128 lib/Search.php:175
+msgid "Assignee"
+msgstr "Atribuire"
+
+#: query.php:47
+msgid "Attribute Criteria"
+msgstr "Criteriu atribut"
+
+#: lib/Admin.php:679 lib/Admin.php:723 lib/Admin.php:748
+msgid "Attribute Description"
+msgstr "Descriere atribut"
+
+#: lib/Admin.php:678 lib/Admin.php:701 lib/Admin.php:720 lib/Admin.php:745
+msgid "Attribute Name"
+msgstr "Nume atribut"
+
+#: lib/Admin.php:348
+msgid "Attributes for this Type"
+msgstr "Atribute pentru acest Tip"
+
+#: config/prefs.php.dist:129
+msgid "Autolink to other tickets in comments"
+msgstr "Link automat pentru alte tichete in comentarii"
+
+#: reports.php:22
+msgid "Average time a ticket is unresolved"
+msgstr "Tim mediu in care un tichet nu er rezolvat"
+
+#: lib/Query.php:350
+msgid "Branch Type"
+msgstr "Tip ramura"
+
+#: lib/Query.php:44
+msgid "Case Insensitive Substring"
+msgstr "Subsir caz insenzitiv"
+
+#: lib/Query.php:45
+msgid "Case Sensitive Substring"
+msgstr "Subsir caz senzitiv"
+
+#: templates/queryrenderer.inc:25
+msgid "Change"
+msgstr "Schimba"
+
+#: lib/Query.php:361
+msgid "Change Ticket Type"
+msgstr "Shimba tip tichet"
+
+#: config/prefs.php.dist:14
+msgid ""
+"Change display options such as the color scheme and how search results are "
+"sorted."
+msgstr ""
+"Schimbare optiuni afisaj precum schema de culor si modul in care rezultatele "
+" cautarii sunt sortate."
+
+#: config/prefs.php.dist:21
+msgid "Change options for email notifications of ticket activity."
+msgstr "Schimbare optiuni pentru notificari e-mail ale activitatzii tichetului."
+
+#: query.php:53
+msgid "Choose Action:"
+msgstr "Alegere actiune:"
+
+#: config/prefs.php.dist:139
+msgid "Chronological (oldest first)"
+msgstr "Cronologic (cele mai vechi primele)"
+
+#: config/templates.php.dist:59
+msgid "Comma Separated Values (CSV file)"
+msgstr "Valori separate prin virgula (fisier CSV)"
+
+#: lib/Search.php:132 lib/Search.php:255 lib/Search.php:297 lib/Search.php:330
+#: lib/Search.php:365 templates/queryrenderer.inc:104
+msgid "Comment"
+msgstr "Comentariu"
+
+#: templates/queryrenderer.inc:103
+msgid "Commentor"
+msgstr "Comentator"
+
+#: lib/Whups.php:18 lib/Whups.php:19 config/prefs.php.dist:71
+msgid "Create Ticket"
+msgstr "Creare Tichet"
+
+#: lib/Create.php:22
+msgid "Create Ticket - Stage 1"
+msgstr "Creare tichet - Faza 1"
+
+#: lib/Create.php:43
+msgid "Create Ticket - Stage 2"
+msgstr "Creare tichet - Faza 2"
+
+#: lib/Create.php:73
+msgid "Create Ticket - Stage 3"
+msgstr "Creare tichet - Faza 3"
+
+#: lib/Create.php:113
+msgid "Create Ticket - Stage 4"
+msgstr "Creare tichet - Faza 4"
+
+#: create.php:31
+msgid "Create Tickets"
+msgstr "Creare tichete"
+
+#: lib/Whups.php:312 lib/Search.php:95 config/prefs.php.dist:46
+msgid "Created"
+msgstr "Creat"
+
+#: query.php:182 query.php:197
+msgid "Current Query"
+msgstr "Chestionare curenta"
+
+#: lib/Query.php:366
+msgid "Current Type"
+msgstr "Tip curent"
+
+#: query.php:45
+msgid "Date Criteria"
+msgstr "Criteriu data"
+
+#: config/prefs.php.dist:102
+msgid "Date/Time format for search results"
+msgstr "Format Data/Timp pentru rezultate cautare"
+
+#: config/prefs.php.dist:49
+msgid "Default sorting criteria:"
+msgstr "Criteriu implicit de sortare:"
+
+#: config/prefs.php.dist:60
+msgid "Default sorting direction:"
+msgstr "Directie implicita de sortare:"
+
+#: query.php:54
+msgid "Delete"
+msgstr "Stergere"
+
+#: lib/Admin.php:691 admin.php:847
+msgid "Delete Attribute"
+msgstr "Stergere atribut"
+
+#: lib/Admin.php:735
+msgid "Delete Attribute Confirmation"
+msgstr "Confirmare stergere atribut"
+
+#: lib/Admin.php:115 admin.php:235
+msgid "Delete Queue"
+msgstr "Stergere modul"
+
+#: lib/Admin.php:191
+msgid "Delete Queue Confirmation"
+msgstr "Confirmare stergere modul"
+
+#: lib/Admin.php:517 admin.php:456
+msgid "Delete Priority"
+msgstr "Stergere prioritate"
+
+#: lib/Admin.php:561
+msgid "Delete Priority Confirmation"
+msgstr "Confirmare stergere prioritate"
+
+#: lib/Admin.php:423 admin.php:338
+msgid "Delete State"
+msgstr "Stergere stare"
+
+#: lib/Admin.php:473
+msgid "Delete State Confirmation"
+msgstr "Confirmare stergere stare"
+
+#: lib/Admin.php:29 admin.php:630
+msgid "Delete Subject"
+msgstr "Sterge subiect"
+
+#: lib/Admin.php:76
+msgid "Delete Subject Confirmation"
+msgstr "Confirmare stergere subiect"
+
+#: details.php:54
+msgid "Delete Ticket"
+msgstr "Stergere tichet"
+
+#: details.php:222
+msgid "Delete Ticket Succeeded"
+msgstr "Stergere tichet reusita"
+
+#: lib/Admin.php:295 admin.php:145
+msgid "Delete Type"
+msgstr "Stergere tip"
+
+#: lib/Admin.php:361
+msgid "Delete Type Confirmation"
+msgstr "Confirmare stergere tip"
+
+#: lib/Admin.php:604 admin.php:730
+msgid "Delete Version"
+msgstr "Stergere versiune"
+
+#: lib/Admin.php:648
+msgid "Delete Version Confirmation"
+msgstr "Confirmare stergere versiune"
+
+#: config/prefs.php.dist:59
+msgid "Descending"
+msgstr "Descrescator"
+
+#: lib/Create.php:102
+msgid "Description"
+msgstr "Descriere"
+
+#: config/prefs.php.dist:13
+msgid "Display Options"
+msgstr "Optiuni afisaj"
+
+#: query.php:55
+msgid "Edit"
+msgstr "Editare"
+
+#: lib/Admin.php:138 lib/Admin.php:318
+msgid "Edit %s"
+msgstr "Editare %s"
+
+#: lib/Admin.php:691 lib/Admin.php:712 admin.php:842
+msgid "Edit Attribute"
+msgstr "Editare atribut"
+
+#: lib/Admin.php:330 details.php:52
+msgid "Edit Attributes"
+msgstr "Editare atribute"
+
+#: lib/Admin.php:115 admin.php:229
+msgid "Edit Queue"
+msgstr "Editare modul"
+
+#: admin.php:57
+msgid "Edit Queues"
+msgstr "Editare module"
+
+#: lib/Admin.php:326 lib/Admin.php:374
+msgid "Edit Priorities"
+msgstr "Editare prioritati"
+
+#: lib/Admin.php:517 lib/Admin.php:538 admin.php:451
+msgid "Edit Priority"
+msgstr "Editare proritate"
+
+#: runquery.php:21
+msgid "Edit Query"
+msgstr "Editare chestionare"
+
+#: lib/Admin.php:423 lib/Admin.php:444 admin.php:333
+msgid "Edit State"
+msgstr "Editare stare"
+
+#: lib/Admin.php:322 lib/Admin.php:370
+msgid "Edit States"
+msgstr "Editare stari"
+
+#: lib/Admin.php:29 lib/Admin.php:49 admin.php:625
+msgid "Edit Subject"
+msgstr "Editare subiect"
+
+#: admin.php:59
+msgid "Edit Subjects"
+msgstr "Editare subiecte"
+
+#: lib/Admin.php:295 admin.php:139
+msgid "Edit Type"
+msgstr "Editare tip"
+
+#: admin.php:58
+msgid "Edit Types"
+msgstr "Editare tipuri"
+
+#: lib/Admin.php:604 lib/Admin.php:625 admin.php:725
+msgid "Edit Version"
+msgstr "Editare versiune"
+
+#: lib/Admin.php:690
+msgid "Edit or Delete Attributes"
+msgstr "Editare sau stergere atribute"
+
+#: lib/Admin.php:114
+msgid "Edit or Delete Queues"
+msgstr "Editare sau stergere module"
+
+#: lib/Admin.php:516
+msgid "Edit or Delete Priorities"
+msgstr "Editare sau stergere prioritati"
+
+#: lib/Admin.php:422
+msgid "Edit or Delete States"
+msgstr "Editare sau stergere stari"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Editare sau stergere subiecte"
+
+#: lib/Admin.php:294
+msgid "Edit or Delete Types"
+msgstr "Editare sau stergere tipuri"
+
+#: lib/Admin.php:603
+msgid "Edit or Delete Versions"
+msgstr "Editare sau stergere versiuni"
+
+#: lib/Admin.php:153
+msgid "Edit the permissions on this module"
+msgstr "Editare permisiuni pentru acest modul"
+
+#: lib/Admin.php:151
+msgid "Edit the users responsible for this module"
+msgstr "Editare utilizatori responsabili pentru acest modul"
+
+#: lib/Admin.php:152
+msgid "Edit the versions for this module"
+msgstr "Editare versiuni pentru modul"
+
+#: query.php:171
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "Eroare: chestionar necunoscut %s, intoarcere la proprietati"
+
+#: lib/Query.php:43
+msgid "Exact Match"
+msgstr "Potrivire exacta"
+
+#: runquery.php:68 runquery.php:84 query.php:37
+msgid "Execute Query"
+msgstr "Executa chestionare"
+
+#: lib/Admin.php:774
+msgid "For tickets from these modules"
+msgstr "Pentru tichete din aceste module"
+
+#: lib/Admin.php:776
+msgid "For tickets which are"
+msgstr "Pentru tichete care sunt"
+
+#: templates/menu/menu.inc:37
+msgid "Help"
+msgstr "Ajutor"
+
+#: lib/Search.php:65
+msgid "Hide Assigned"
+msgstr "Ascunde Atribuite"
+
+#: lib/Search.php:64
+msgid "Hide New"
+msgstr "Ascunde noi"
+
+#: lib/Search.php:66
+msgid "Hide Resolved"
+msgstr "Ascunde rezolvate"
+
+#: lib/Search.php:63
+msgid "Hide Unconfirmed"
+msgstr "Ascunde neconfirmate"
+
+#: query.php:57
+msgid "Hoist"
+msgstr "Ridicare"
+
+#: lib/Whups.php:305 lib/Query.php:493 templates/queryrenderer.inc:98
+#: config/prefs.php.dist:39
+msgid "Id"
+msgstr "Id"
+
+#: lib/Driver.php:159
+msgid "If you believe you have recieved this mail in error, please contact %s."
+msgstr "Daca ati primit acest mail din greseala, contactati %s."
+
+#: lib/Admin.php:779
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Daca selectati tichete fara proprietar, cui ar trebui trimis email ?"
+
+#: templates/comment.inc:43
+msgid "Initial state of '%s'"
+msgstr "Stare initiala de '%s'"
+
+#: query.php:58
+msgid "Insert And"
+msgstr "Inserare si"
+
+#: lib/Query.php:340
+msgid "Insert Branch"
+msgstr "Inserare ramura"
+
+#: query.php:60
+msgid "Insert Not"
+msgstr "Inserare nu"
+
+#: query.php:59
+msgid "Insert Or"
+msgstr "Inserare sau"
+
+#: query.php:61
+msgid "Insert Query"
+msgstr "Inserare chestionare"
+
+#: lib/Admin.php:166
+msgid "Keep a set of versions for this queue?"
+msgstr "Pastrare set de versiuni pentru acest modul?"
+
+#: config/prefs.php.dist:6
+msgid "Language"
+msgstr "Limba"
+
+#: lib/Query.php:621 runquery.php:23 query.php:38
+msgid "Load Query"
+msgstr "Incarcare chestionare"
+
+#: templates/menu/menu.inc:28
+msgid "Login"
+msgstr "Intrare"
+
+#: config/prefs.php.dist:100
+msgid "MM/DD/YY"
+msgstr "LL/ZZ/AA"
+
+#: config/prefs.php.dist:101
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "LL/ZZ/AA OO:MM:SS"
+
+#: lib/Query.php:550
+msgid "Match"
+msgstr "Potrivire"
+
+#: lib/Query.php:396 lib/Query.php:448 lib/Query.php:551
+msgid "Match Operator"
+msgstr "Operator potrivire"
+
+#: lib/Query.php:47
+msgid "Match Pattern"
+msgstr "Potrivire sablon"
+
+#: lib/Query.php:46
+msgid "Match Word"
+msgstr "Potrivire cuvant"
+
+#: reports.php:23
+msgid "Maximum time a ticket is unresolved"
+msgstr "Timp maxim de nerezolvare a unui tichet"
+
+#: reports.php:24
+msgid "Minimum time a ticket is unresolved"
+msgstr "Timp minim de nerezolvare a unui tichet"
+
+#: lib/Whups.php:310 templates/queryrenderer.inc:99 config/prefs.php.dist:44
+msgid "Queue"
+msgstr "Modul"
+
+#: lib/Admin.php:103 lib/Admin.php:160 lib/Admin.php:203
+msgid "Queue Description"
+msgstr "Descriere modul"
+
+#: lib/Admin.php:102 lib/Admin.php:124 lib/Admin.php:157 lib/Admin.php:200
+#: lib/Create.php:26 lib/Create.php:31 lib/Search.php:39 lib/Search.php:80
+msgid "Queue Name"
+msgstr "Nume modul"
+
+#: lib/Create.php:61 lib/Search.php:83
+msgid "Queue Version"
+msgstr "Versiune modul"
+
+#: admin.php:60
+msgid "Queue/Type Matrix"
+msgstr "Modul/Tip Matrice"
+
+#: search.php:73
+msgid "Queue: %s, Ticket: %s, Category %s"
+msgstr "Modul: %s, Tichet: %s, Categorie %s"
+
+#: config/prefs.php.dist:140
+msgid "Most recent first"
+msgstr "Cele mai recente primele"
+
+#: query.php:56
+msgid "Move"
+msgstr "Mutare"
+
+#: mybugs.php:22 templates/menu/menu.inc:8
+msgid "My %s"
+msgstr "%s mea(mele)"
+
+#: mybugs.php:44
+msgid "My Assigned Tickets"
+msgstr "Tichetele atribuite mie"
+
+#: config/prefs.php.dist:69
+msgid "My Bugs"
+msgstr "Problemele mele"
+
+#: mybugs.php:61
+msgid "My Open Requests"
+msgstr "Cererile deschise ale mele"
+
+#: search.php:121
+msgid "My Searches"
+msgstr "Cautarile mele"
+
+#: lib/Query.php:600 lib/Query.php:635
+msgid "Name"
+msgstr "Nume"
+
+#: config/templates.php.dist:44
+msgid "Name, Email Report"
+msgstr "Nume, raport email"
+
+#: lib/Driver.php:63
+msgid "New"
+msgstr "Nou(a)"
+
+#: lib/Search.php:296 lib/Search.php:329
+msgid "New Priority"
+msgstr "Prioritate noua"
+
+#: query.php:36
+msgid "New Query"
+msgstr "Chestionare noua"
+
+#: lib/Search.php:176 lib/Search.php:254
+msgid "New State"
+msgstr "Stare noua"
+
+#: lib/Block/summary.php:41 lib/api.php:107 templates/menu/menu.inc:11
+msgid "New Ticket"
+msgstr "Tichet nou"
+
+#: lib/Driver.php:85
+msgid "New comment for ticket %s"
+msgstr "Comentariu nou pentru tichetul %s"
+
+#: lib/Driver.php:70
+msgid "New ticket (%s): %s"
+msgstr "Tichet nou (%s): %s"
+
+#: lib/Admin.php:81 lib/Admin.php:196 lib/Admin.php:366 lib/Admin.php:478
+#: lib/Admin.php:566 lib/Admin.php:653 lib/Admin.php:740 lib/Search.php:209
+msgid "No"
+msgstr "Nu"
+
+#: lib/Driver/sql.php:1303
+msgid "No configuration information specified for SQL Bugs."
+msgstr "Nici o configuratie specificata pentru problemele SQL."
+
+#: lib/Driver.php:56
+msgid "No such backend '%s' found"
+msgstr "Nici un suport '%s' gasit"
+
+#: details.php:34
+msgid "No such ticket."
+msgstr "Nici un asemenea tichet."
+
+#: lib/Whups.php:342
+msgid "No tickets matched your search criteria."
+msgstr "Nici un tichet nu s-a potrivit criteriului de cautare."
+
+#: lib/Block/summary.php:90
+msgid "No tickets to display"
+msgstr "Nici un tichet de afisat"
+
+#: lib/Reports.php:64
+msgid "None"
+msgstr "Nici unul"
+
+#: lib/Query.php:345 templates/queryrenderer.inc:92
+msgid "Not"
+msgstr "Nu"
+
+#: query.php:95
+msgid "Not yet implemented..."
+msgstr "Neimplementat inca..."
+
+#: config/prefs.php.dist:20
+msgid "Notification Options"
+msgstr "Optiuni notificari"
+
+#: config/prefs.php.dist:120
+msgid "Only notify me of ticket changes from other users"
+msgstr "Notificare numai la schimbari tichet de catre alti utilizatori"
+
+#: templates/menu/menu.inc:18
+msgid "Options"
+msgstr "Optiuni"
+
+#: lib/Query.php:344 templates/queryrenderer.inc:91
+msgid "Or"
+msgstr "Sau"
+
+#: config/prefs.php.dist:12 config/prefs.php.dist:19
+msgid "Other Options"
+msgstr "Alte optiuni"
+
+#: lib/Whups.php:314 lib/Search.php:91 templates/queryrenderer.inc:101
+msgid "Owner"
+msgstr "Proprietar"
+
+#: lib/Query.php:349
+msgid "Path"
+msgstr "Cale"
+
+#: lib/Search.php:186 lib/Search.php:222 lib/Search.php:264 lib/Search.php:306
+msgid "Permission Denied."
+msgstr "Permisiune neacordata."
+
+#: lib/Admin.php:344 lib/Admin.php:387
+msgid "Priorities for this Type"
+msgstr "Prioritati pentru acest tip"
+
+#: lib/Create.php:100 lib/Whups.php:309 lib/Query.php:495 lib/Search.php:60
+#: lib/Search.php:89 templates/queryrenderer.inc:114 config/prefs.php.dist:43
+msgid "Priority"
+msgstr "Prioritate"
+
+#: lib/Admin.php:505 lib/Admin.php:549 lib/Admin.php:574
+msgid "Priority Description"
+msgstr "Descriere Prioritate"
+
+#: lib/Admin.php:504 lib/Admin.php:527 lib/Admin.php:546 lib/Admin.php:571
+msgid "Priority Name"
+msgstr "Nume prioritate"
+
+#: templates/comment.inc:82
+msgid "Private"
+msgstr "Privat"
+
+#: query.php:43
+msgid "Property Criteria"
+msgstr "Criteriu proprietate"
+
+#: lib/Whups.php:12 lib/Whups.php:13 query.php:143 templates/menu/menu.inc:13
+msgid "Query Builder"
+msgstr "Creator chestionare"
+
+#: lib/Query.php:101
+msgid "Query Parameters"
+msgstr "Parametri chestionare"
+
+#: runquery.php:73
+msgid "Query Results"
+msgstr "Rezultate chestionare"
+
+#: runquery.php:22
+msgid "Re-execute Query"
+msgstr "Re-executare chestionare"
+
+#: lib/Admin.php:751
+msgid "Really delete this attribute? This may cause data problems!!"
+msgstr "Stergere sigura a acestui atribut? Poate cauza probleme datelor!!"
+
+#: lib/Admin.php:206
+msgid "Really delete this queue? This may cause data problems!!"
+msgstr "Stergere sigura a acestui modul? Poate cauza probleme datelor!!"
+
+#: lib/Admin.php:577
+msgid "Really delete this priority? This may cause data problems!!"
+msgstr "Stergere sigura a acestei prioritati? Poate cauza probleme datelor!!"
+
+#: lib/Admin.php:490
+msgid "Really delete this state? This may cause data problems!!"
+msgstr "Stergere sigura a acestei stari? Poate cauza probleme datelor!!"
+
+#: lib/Admin.php:88
+msgid "Really delete this subject? This may cause data problems!!"
+msgstr "Stergere sigura a acestui subiect? Poate cauza probleme datelor!!"
+
+#: lib/Search.php:216
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Stergere sigura a acestui tichet? NU va fi arhivat, si va disparea definitiv."
+
+#: lib/Admin.php:390
+msgid "Really delete this type? This may cause data problems!!"
+msgstr "Stergere sigura a acestui tip? Poate cauza probleme datelor!!"
+
+#: lib/Admin.php:664
+msgid "Really delete this version? This may cause data problems!!"
+msgstr ""
+
+#: search.php:105
+msgid "Refine Search"
+msgstr "Redefinire cautare"
+
+#: search.php:103
+msgid "Refine search"
+msgstr "Redefinire cautare"
+
+#: admin.php:928
+msgid "Reminders were sent."
+msgstr "Aducerile aminte au fost trimise."
+
+#: lib/Admin.php:250
+msgid "Remove User"
+msgstr "Sterge utilizator"
+
+#: lib/Whups.php:30 lib/Whups.php:31 reports.php:26 templates/menu/menu.inc:14
+msgid "Reports"
+msgstr "Rapoarte"
+
+#: lib/Search.php:94 templates/queryrenderer.inc:102
+msgid "Requester"
+msgstr "Solicitator"
+
+#: lib/Driver/sql.php:1318
+msgid "Required 'database' not specified in bugs configuration."
+msgstr "'database' nespecificat in configuratia bugurilor."
+
+#: lib/Driver/sql.php:1309
+msgid "Required 'hostspec' not specified in bugs configuration."
+msgstr "'hostspec' nespecificat in configuratia bugurilor."
+
+#: lib/Driver/sql.php:1315
+msgid "Required 'password' not specified in bugs configuration."
+msgstr "'pasword' nespecificat in configuratia bugurilor."
+
+#: lib/Driver/sql.php:1306
+msgid "Required 'phptype' not specified in bugs configuration."
+msgstr "'phptype' nespecificat in configuratia bugurilor."
+
+#: lib/Driver/sql.php:1312
+msgid "Required 'username' not specified in bugs configuration."
+msgstr "'username' nespecificat in configuratia bugurilor."
+
+#: lib/Whups.php:315 lib/Search.php:97 lib/Driver.php:65
+#: config/prefs.php.dist:48
+msgid "Resolved"
+msgstr ""
+
+#: lib/Admin.php:252
+msgid "Responsible Users"
+msgstr "Utilizatori responsabili"
+
+#: lib/Admin.php:170
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Restrange subiectele tichetelor la o lista specificata?"
+
+#: templates/searchresults.inc:47
+msgid "Save"
+msgstr "Salvare"
+
+#: lib/Query.php:598 runquery.php:24 query.php:39
+msgid "Save Query"
+msgstr "Salvare chestionare"
+
+#: templates/searchresults.inc:41
+msgid "Save these results as: "
+msgstr "Salvare rezultate ca:"
+
+#: search.php:126 templates/menu/menu.inc:10
+msgid "Search"
+msgstr "Cautare"
+
+#: lib/Query.php:554
+msgid "Search %s Attribute"
+msgstr "Cautare atribut %s"
+
+#: lib/Query.php:397
+msgid "Search Assignee"
+msgstr "Cautare atribuit"
+
+#: lib/Query.php:558
+msgid "Search Attribute"
+msgstr "Cautare atribut"
+
+#: lib/Query.php:399 lib/Query.php:450
+msgid "Search Comments"
+msgstr "Cautare comentarii"
+
+#: lib/Query.php:398
+msgid "Search Requester"
+msgstr "Cautare solicitator"
+
+#: search.php:96
+msgid "Search Results"
+msgstr "Rezultate cautare"
+
+#: lib/Query.php:449
+msgid "Search Summary"
+msgstr "Cautare cuprins"
+
+#: lib/Whups.php:6 lib/Whups.php:7 search.php:27 search.php:124
+#: config/prefs.php.dist:70
+msgid "Search Tickets"
+msgstr "Cautare tichete"
+
+#: config/prefs.php.dist:72
+msgid "Select the view to display after login:"
+msgstr "Selectare tip vizualizare dupa intrare:"
+
+#: config/prefs.php.dist:30
+msgid "Select your preferred language:"
+msgstr "Selectare limba favorita:"
+
+#: lib/Admin.php:762 admin.php:61
+msgid "Send Reminders"
+msgstr "Trimite memorandum"
+
+#: lib/Admin.php:773
+msgid "Send only for this list of ticket ids"
+msgstr "Trimitere doar pentru aceasta lista de id-uri tichete"
+
+#: details.php:48 details.php:50
+msgid "Set Priority"
+msgstr "Setare prioritate"
+
+#: details.php:47
+msgid "Set State"
+msgstr "Setare stare"
+
+#: details.php:205
+msgid "Set Ticket Attributes"
+msgstr "Setare atribute tichet"
+
+#: details.php:124 details.php:184
+msgid "Set Ticket Priority"
+msgstr "Setare prioritate tichet"
+
+#: details.php:164
+msgid "Set Ticket State Succeeded"
+msgstr "Setare stare tichet reusita"
+
+#: config/prefs.php.dist:7
+msgid "Set your preferred display language."
+msgstr "Setare limba favorita."
+
+#: config/prefs.php.dist:111
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "Afisare \"(Acum X zile)\" in campul Data al rezultatelor cautarii?"
+
+#: config/prefs.php.dist:138
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Afisare comentarii cronologic, sau cele mai recente primele?"
+
+#: config/prefs.php.dist:89
+msgid "Show ticket IDs in the summary view?"
+msgstr "Afisare ID-uri tichete in cuprins?"
+
+#: config/prefs.php.dist:81
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Afisare tichete solicitate in cuprins?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Raport HTML simplu"
+
+#: templates/index/notconfigured.inc:39
+msgid "Some of WHUPS's configuration files are missing:"
+msgstr "Anumite fisiere de configurare WHUPS lipsesc:"
+
+#: templates/searchresults.inc:71
+msgid "Sort Direction"
+msgstr "Directie sortare"
+
+#: templates/searchresults.inc:72 templates/searchresults.inc:76
+msgid "Sort by %s"
+msgstr "Sortare dupa %s"
+
+#: lib/Whups.php:307 lib/Query.php:494 templates/queryrenderer.inc:109
+#: config/prefs.php.dist:41
+msgid "State"
+msgstr "Stare"
+
+#: lib/Admin.php:411 lib/Admin.php:461
+msgid "State Category"
+msgstr "Categorie stare"
+
+#: lib/Admin.php:410 lib/Admin.php:458 lib/Admin.php:487
+msgid "State Description"
+msgstr "Descriere stare"
+
+#: lib/Admin.php:409 lib/Admin.php:433 lib/Admin.php:455 lib/Admin.php:484
+msgid "State Name"
+msgstr "Nume stare"
+
+#: templates/comment.inc:46
+msgid "State changed to '%s'"
+msgstr "Stare schimbata in '%s'"
+
+#: templates/comment.inc:49
+msgid "State is '%s'"
+msgstr "Starea este '%s'"
+
+#: lib/Admin.php:340 lib/Admin.php:384
+msgid "States for this Type"
+msgstr "Stare pentru acest tip"
+
+#: lib/Create.php:101 config/prefs.php.dist:40
+msgid "Subject"
+msgstr "Subiect"
+
+#: lib/Admin.php:17 lib/Admin.php:38 lib/Admin.php:61 lib/Admin.php:85
+msgid "Subject Name"
+msgstr "Nume subiect"
+
+#: lib/Admin.php:173
+msgid "Subjects associated with this Queue"
+msgstr "Subiecte asociate cu acest modul"
+
+#: create.php:101
+msgid "Submit"
+msgstr "Trimitere"
+
+#: lib/Whups.php:306 templates/queryrenderer.inc:105
+msgid "Summary"
+msgstr "Cuprins"
+
+#: lib/Query.php:447
+msgid "Text"
+msgstr "Text"
+
+#: query.php:46
+msgid "Text Criteria"
+msgstr "Criteriu text"
+
+#: admin.php:809
+msgid "The attribute '%s' has been added to %s."
+msgstr "Atributul '%s' a fost adaugat la '%s'."
+
+#: admin.php:897
+msgid "The attribute has been deleted."
+msgstr "Atributul a fost sters."
+
+#: admin.php:866
+msgid "The attribute has been modified."
+msgstr "Atributul a fost modificat."
+
+#: admin.php:902
+msgid "The attribute was not deleted."
+msgstr "Atributul nu a fost sters."
+
+#: admin.php:205
+msgid "The queue '%s' has been created."
+msgstr "Modulul '%s' a fost creat."
+
+#: admin.php:277
+msgid "The queue has been deleted."
+msgstr "Modulul a fost sters."
+
+#: admin.php:257
+msgid "The queue has been modified."
+msgstr "Modulul a fost modificat."
+
+#: admin.php:282
+msgid "The queue was not deleted."
+msgstr "Modulul nu a fost sters."
+
+#: admin.php:418
+msgid "The priority '%s' has been added to %s."
+msgstr "Prioritatea '%s' a fost adaugata la %s."
+
+#: admin.php:505
+msgid "The priority has been deleted."
+msgstr "Prioritatea a fost stearsa."
+
+#: admin.php:475
+msgid "The priority has been modified."
+msgstr "Prioritatea a fost modificata."
+
+#: admin.php:510
+msgid "The priority was not deleted."
+msgstr "Prioritatea nu a fost stearsa."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "Modelul solicitat nu exista."
+
+#: admin.php:299
+msgid "The state '%s' has been added to %s."
+msgstr "Starea '%s' a fost adaugata la %s."
+
+#: admin.php:388
+msgid "The state has been deleted."
+msgstr "Starea a fost stearsa."
+
+#: admin.php:357
+msgid "The state has been modified."
+msgstr "Starea a fost modificata."
+
+#: admin.php:393
+msgid "The state was not deleted."
+msgstr "Starea nu a fost stearsa"
+
+#: admin.php:607
+msgid "The subject '%s' has been added."
+msgstr "Subiectul '%s' a fost adaugat."
+
+#: admin.php:669
+msgid "The subject has been deleted."
+msgstr "Subiectul a fost sters."
+
+#: admin.php:648
+msgid "The subject has been modified."
+msgstr "Subiectul a fost modificat."
+
+#: admin.php:674
+msgid "The subject was not deleted."
+msgstr "Subiectul nu a fost sters."
+
+#: admin.php:167
+msgid "The type '%s' has been modified."
+msgstr "Tipul '%s' a fost modificat."
+
+#: admin.php:185
+msgid "The type has been deleted."
+msgstr "Tipul a fost sters"
+
+#: admin.php:190
+msgid "The type was not deleted."
+msgstr "Tipul nu a fost sters."
+
+#: admin.php:691
+msgid "The version '%s' has been added to %s."
+msgstr "Versiunea '%s' a fost adaugata la %s."
+
+#: admin.php:779
+msgid "The version has been deleted."
+msgstr "Versiunea a fost stearsa."
+
+#: admin.php:749
+msgid "The version has been modified."
+msgstr "Versiunea a fost modificata."
+
+#: admin.php:784
+msgid "The version was not deleted."
+msgstr "Versiunea nu a fost stearsa."
+
+#: lib/Admin.php:697
+msgid "There are no attribute types to edit"
+msgstr "Nu exista tipuri de atribute de editat"
+
+#: lib/Query.php:557
+msgid "There are no attributes defined for the current type"
+msgstr "Nu exista atribute definite pentru tipul curent"
+
+#: lib/Admin.php:768
+msgid "There are no queues available."
+msgstr "Nu exista queue disponibile."
+
+#: lib/Admin.php:121
+msgid "There are no queues to edit"
+msgstr "Nu exista queue de editat"
+
+#: lib/Create.php:31
+msgid "There are no queues which you can create tickets in."
+msgstr "Nu exista queue in care sa se creeze tichete."
+
+#: lib/Search.php:30
+msgid "There are no queues which you can search."
+msgstr "Nu exista queue pe care sa se caute."
+
+#: lib/Admin.php:523
+msgid "There are no priorities to edit"
+msgstr "Nu exista prioritati editabile"
+
+#: lib/Admin.php:429
+msgid "There are no states to edit"
+msgstr "Nu exista stari editabile"
+
+#: lib/Admin.php:35
+msgid "There are no subjects to edit"
+msgstr "Nu exista subiecte editabile"
+
+#: lib/Create.php:48
+msgid ""
+"There are no ticket types associated with this module; until there are, you "
+"cannot create any tickets in this module."
+msgstr ""
+"Nu exista nici un tip de tichet asociat cu acest modul; pana vor exista, "
+"nu puteti crea nici un tichet in acest modul."
+
+#: lib/Admin.php:301
+msgid "There are no types to edit"
+msgstr "Nu exista tipuri editabile"
+
+#: lib/Admin.php:264
+msgid "There are no users responsible for this module."
+msgstr "Nu exista utilizatori responsabili pentru acest modul."
+
+#: lib/Create.php:125 lib/Search.php:164
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Nu exista utilizatori caruia sa li se atribuie acest tichet."
+
+#: lib/Admin.php:610
+msgid "There are no versions to edit"
+msgstr "Nu exista versiuni editabile"
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr "Nu exista date pentru acest raport."
+
+#: admin.php:546
+msgid "There was an error adding '%s' to the responsible list for '%s': %s"
+msgstr "S-a produs o eroare de adaugare '%s' in lista responsabili pentru '%s': %s"
+
+#: admin.php:609
+msgid "There was an error adding the subject: %s."
+msgstr "S-a produs o eroare in adaugarea subiectului: %s."
+
+#: admin.php:812
+msgid "There was an error creating the attribute: %s."
+msgstr "S-a produs o eroare in crearea atributului: %s"
+
+#: admin.php:213
+msgid "There was an error creating the module: %s."
+msgstr "S-a produs o eroare la crearea modulului: %s"
+
+#: admin.php:420
+msgid "There was an error creating the priority: %s."
+msgstr "S-a produs o eroare la crearea prioritatii: %s."
+
+#: admin.php:301
+msgid "There was an error creating the state: %s."
+msgstr "S-a produs o eroare la crearea starii: %s."
+
+#: admin.php:693
+msgid "There was an error creating the version: %s."
+msgstr "S-a produs o eroare la crearea versiunii: %s."
+
+#: admin.php:899
+msgid "There was an error deleting the attribute: %s."
+msgstr "S-a produs o eroare la stergerea atributului: %s"
+
+#: admin.php:279
+msgid "There was an error deleting the module: %s."
+msgstr "S-a produs o eroare la stergerea modulului: %s."
+
+#: admin.php:507
+msgid "There was an error deleting the priority: %s."
+msgstr "S-a produs o eroare la stergerea prioritatii: %s."
+
+#: admin.php:390
+msgid "There was an error deleting the state: %s."
+msgstr "S-a produs o eroare la stergerea starii: %s."
+
+#: admin.php:671
+msgid "There was an error deleting the subject: %s."
+msgstr "S-a produs o eroare la stergerea subiectului: %s."
+
+#: details.php:227
+msgid "There was an error deleting the ticket: %s"
+msgstr "S-a produs o eroare la stergerea tichetului: %s"
+
+#: admin.php:187
+msgid "There was an error deleting the type: %s."
+msgstr "S-a produs o eroare la stergerea tipului: %s."
+
+#: admin.php:781
+msgid "There was an error deleting the version: %s."
+msgstr "S-a produs o eroare la stergerea versiunii: %s."
+
+#: admin.php:873
+msgid "There was an error editing the attribute: %s."
+msgstr "S-a produs o eroare la editarea atributului: %s."
+
+#: admin.php:261
+msgid "There was an error editing the module: %s."
+msgstr "S-a produs o eroare la editarea modulului: %s."
+
+#: admin.php:480
+msgid "There was an error editing the priority: %s."
+msgstr "S-a produs o eroare la editarea prioritatii: %s."
+
+#: admin.php:362
+msgid "There was an error editing the state: %s."
+msgstr "S-a produs o eroare la editarea starii: %s."
+
+#: admin.php:653
+msgid "There was an error editing the subject: %s."
+msgstr "S-a produs o eroare la editarea subiectului: %s."
+
+#: admin.php:754
+msgid "There was an error editing the version: %s."
+msgstr "S-a produs o eroare la editarea versiunii: %s."
+
+#: mybugs.php:40
+msgid "There was an error listing your assigned tickets: %s"
+msgstr "S-a produs o eroare la listarea propriilor tichete: %s"
+
+#: mybugs.php:57
+msgid "There was an error listing your open requests: %s"
+msgstr "S-a produs o eroare la listarea propriilor cereri deschise: %s"
+
+#: admin.php:165
+msgid "There was an error modifying the type: %s."
+msgstr "S-a produs o eroare la modificarea tipului: %s."
+
+#: search.php:89
+msgid "There was an error performing your search: %s"
+msgstr "S-a produs o eroare la efectuarea cautarii: %s"
+
+#: admin.php:585
+msgid "There was an error removing '%s' from the responsible list for '%s': %s"
+msgstr "S-a produs o eroare la stergerea '%s' din lista responsabili pentru '%s': %s"
+
+#: templates/index/notconfigured.inc:58
+msgid ""
+"This file controls the default preferences for Whups, and also controls "
+"which preferences users can alter."
+msgstr ""
+"Acest fisier controleaza atat preferintele implicite pentru Whups, cat "
+"si alte preferinte pentru utilizatori."
+
+#: templates/index/notconfigured.inc:51
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Acest fisier controleaza schemva de culori si fonturi diferite de cele "
+"implicite Horde."
+
+#: templates/index/notconfigured.inc:65
+msgid ""
+"This file defines the templates that various parts of Whups use to format "
+"data."
+msgstr ""
+"Acest fisier defineste modelele pe care diverse parti din Whups le "
+"utilizeaza pentru formatarea datelor."
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Acesta nu este un model de rezultate de cautare."
+
+#: lib/Admin.php:54
+msgid "This is not a valid subject."
+msgstr "Acesta nu este un subiect valid."
+
+#: templates/index/notconfigured.inc:44
+msgid ""
+"This is the main WHUPS configuration file. It contains paths and options for "
+"all WHUPS scripts."
+msgstr ""
+"Acesta este principalul fisier de configurare WHUPS. Contine caile si "
+"optiunile pentru toate scripturile WHUPS."
+
+#: lib/Driver.php:156
+msgid "This mail was automatically generated by %s"
+msgstr "Acest mail a fost generat automat de %s"
+
+#: lib/Create.php:57
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this module, you will not "
+"be able to create tickets."
+msgstr ""
+"Acest modul necesita specificare de versiune, dar nu exista versiuni asociate "
+"cu el. Pana versiunile vor fi create pentru acest modul, nu veti putea "
+"sa creati tichete."
+
+#: details.php:291
+msgid "Ticket %s Comments"
+msgstr "Comentarii tichet %s"
+
+#: details.php:284
+msgid "Ticket %s Details"
+msgstr "Detalii tichet %s"
+
+#: lib/Driver.php:103
+msgid "Ticket %s has been assigned"
+msgstr "Tichetul %s a fost atribuit"
+
+#: lib/Driver.php:141
+msgid "Ticket %s has changed priority"
+msgstr "Tichetul %s si-a schimbat prioritatea"
+
+#: lib/Driver.php:123
+msgid "Ticket %s has changed state"
+msgstr "Tichetul %s si-a schimbat starea"
+
+#: lib/Driver/sql.php:603
+msgid "Ticket %s was not found."
+msgstr "Tichetul %s nu a fost gasit."
+
+#: details.php:236
+msgid "Ticket Details"
+msgstr "Detalii tichet"
+
+#: lib/Search.php:38
+msgid "Ticket ID"
+msgstr "ID tichet"
+
+#: lib/Create.php:99 lib/Search.php:57 lib/Search.php:88
+msgid "Ticket State"
+msgstr "Stare tichet"
+
+#: templates/reports/stats.inc:4
+msgid "Ticket Stats"
+msgstr "Stare tichet"
+
+#: lib/Search.php:79 lib/Search.php:213 lib/api.php:69
+msgid "Ticket Summary"
+msgstr "Cuprins tichet"
+
+#: lib/Create.php:52 lib/Search.php:87
+msgid "Ticket Type"
+msgstr "Tip tichet"
+
+#: lib/Admin.php:163
+msgid "Ticket Types associated with this Queue"
+msgstr "Tipuri tichet asociate cu acest modul"
+
+#: lib/Block/summary.php:68 lib/api.php:117
+msgid "Tickets assigned to you"
+msgstr "Tickete atribuite tie"
+
+#: lib/Search.php:40
+msgid "Tickets which are"
+msgstr "Tichete care sunt"
+
+#: lib/Block/summary.php:84 lib/api.php:133
+msgid "Tickets you requested"
+msgstr "Tichete solicitate"
+
+#: lib/Whups.php:308 templates/queryrenderer.inc:100 config/prefs.php.dist:42
+msgid "Type"
+msgstr "Tip"
+
+#: lib/Admin.php:283 lib/Admin.php:337 lib/Admin.php:381
+msgid "Type Description"
+msgstr "Descriere tip"
+
+#: lib/Admin.php:282 lib/Admin.php:304 lib/Admin.php:334 lib/Admin.php:378
+msgid "Type Name"
+msgstr "Nume tip"
+
+#: lib/Search.php:92
+msgid "Unassigned"
+msgstr "Neatribuit"
+
+#: lib/Admin.php:779
+msgid "Unassigned tickets"
+msgstr "Tichete neatribuite"
+
+#: lib/Driver.php:62
+msgid "Unconfirmed"
+msgstr "Neconfirmat"
+
+#: templates/queryrenderer.inc:139
+msgid "Unknown node type %s"
+msgstr "Tip nod %s necunoscut"
+
+#: lib/Admin.php:236 lib/Admin.php:238
+msgid "User"
+msgstr "Utilizator"
+
+#: query.php:44
+msgid "User Criteria"
+msgstr "Criteriu utilizator"
+
+#: lib/Query.php:395
+msgid "User ID"
+msgstr "ID utilizator"
+
+#: prefs.php:34
+msgid "User Options"
+msgstr "Optiuni utilizator"
+
+#: lib/Admin.php:176
+msgid "Users responsible for this Queue"
+msgstr "Utilizatori responsabili pentru acest modul"
+
+#: lib/Admin.php:268
+msgid "Users responsible for this module"
+msgstr "Utilizatori responsabili pentru acest modul"
+
+#: lib/Whups.php:311 config/prefs.php.dist:45
+msgid "Version"
+msgstr "Versiune"
+
+#: lib/Admin.php:592 lib/Admin.php:636 lib/Admin.php:661
+msgid "Version Description"
+msgstr "Descriere versiune"
+
+#: lib/Admin.php:591 lib/Admin.php:614 lib/Admin.php:633 lib/Admin.php:658
+msgid "Version Name"
+msgstr "Nume versiune"
+
+#: lib/Search.php:135 lib/Search.php:179 lib/Search.php:257 lib/Search.php:299
+#: lib/Search.php:367
+msgid "Viewable only by members of"
+msgstr "Vizualizabil doar de membri ai"
+
+#: templates/index/notconfigured.inc:4
+msgid "WHUPS is not properly configured"
+msgstr "WHUPS nu este corect configurat"
+
+#: config/prefs.php.dist:98
+msgid "Weekday Day Month"
+msgstr "Zi_saptamana Zi Luna"
+
+#: config/prefs.php.dist:99
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Zi_saptamana Zi Luna OO:MM:SS ZT"
+
+#: lib/Admin.php:81 lib/Admin.php:196 lib/Admin.php:366 lib/Admin.php:478
+#: lib/Admin.php:566 lib/Admin.php:653 lib/Admin.php:740 lib/Search.php:209
+msgid "Yes"
+msgstr "Da"
+
+#: lib/Driver/sql.php:606
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Nu aveti permisiunea de a accesa acest tichet (%s)."
+
+#: lib/Query.php:632
+msgid "You have no saved queries."
+msgstr "Nu aveti chestionari salvate."
+
+#: lib/Whups.php:336
+msgid "You must select at least one queue to send reminders for."
+msgstr "Trebuie sa selectati cel putin un modul pentru care se trimit memorandumuri."
+
+#: lib/Create.php:28 lib/Search.php:130 lib/Search.php:328
+msgid "Your Email Address"
+msgstr "Adresa ta de e-mail"
+
+#: config/prefs.php.dist:5
+msgid "Your Information"
+msgstr "Detalii personale"
+
+#: create.php:157
+msgid "Your ticket id is %s. "
+msgstr "Id-ul tichetului tau este %s."
+
+#: templates/queryrenderer.inc:129
+msgid "contains (case insensitive) substring"
+msgstr "contine (caz insenzitiv) subsirul"
+
+#: templates/queryrenderer.inc:130
+msgid "contains (case sensitive) substring"
+msgstr "contine (caz senzitiv) subsirul"
+
+#: templates/queryrenderer.inc:131
+msgid "contains the word"
+msgstr "contine cuvantul"
+
+#: templates/queryrenderer.inc:128
+msgid "is"
+msgstr "este"
+
+#: templates/queryrenderer.inc:126
+msgid "is greater than"
+msgstr "este mai mare ca"
+
+#: templates/queryrenderer.inc:127
+msgid "is less than"
+msgstr "este mai mic ca"
+
+#: templates/queryrenderer.inc:132
+msgid "matches the pattern"
+msgstr "se potriveste tiparului"
--- /dev/null
+# Russian translations for Whups package
+# Copyright
+# Illya Belov <belov@iop.irkps.ru>
+# Alexey Zakharov <baber@mosga.net>, 2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-12-25 20:01+0200\n"
+"PO-Revision-Date: 2006-01-15 11:00+0200\n"
+"Last-Translator: Alexey Zakharov <baber@mosga.net>\n"
+"Language-Team: Russian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.php:603
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr ""
+
+#: lib/Driver.php:278
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) íàïèñàë:"
+
+#: admin.php:567
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr ""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s äíåé"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s áóäåò óâåäîìëåí ïðè îáíîâëåíèè ýòîãî çàïðîñà"
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s áîëüøå íå áóäåò ïîëó÷àòü óâåäîìëåíèÿ ïî ýòîìó çàïðîñó"
+
+#: admin.php:81
+msgid "- Stage 1"
+msgstr "- Øàã 1"
+
+#: admin.php:86
+msgid "- Stage 2"
+msgstr "- Øàã 2"
+
+#: scripts/mail-filter.php:164
+msgid "--priority-name or --priority-id must specify a valid Priority."
+msgstr ""
+
+#: scripts/mail-filter.php:158
+msgid "--queue-name or --queue-id must specify a valid Queue."
+msgstr ""
+
+#: scripts/mail-filter.php:167
+msgid "--state-name or --state-id must specify a valid State."
+msgstr ""
+
+#: scripts/mail-filter.php:161
+msgid "--type-name or --type-id must specify a valid Type."
+msgstr ""
+
+#: templates/prevnext.inc:12
+#, fuzzy
+msgid "<<First"
+msgstr "Ïåðâûé"
+
+#: templates/prevnext.inc:13
+#, fuzzy
+msgid "<Prev"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íàçàä"
+
+#: lib/Block/summary.php:89
+msgid "<em>No summary</em>"
+msgstr ""
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "Äîñòóï çàïðåùåí äëÿ %s"
+
+#: lib/Admin.php:709
+msgid "Add Attribute"
+msgstr "Äîáàâèòü àòòðèáóò"
+
+#: lib/Query.php:764
+msgid "Add Attribute Criterion"
+msgstr ""
+
+#: query.php:205
+msgid "Add Criterion"
+msgstr "Äîáàâèòü êðèòåðèé"
+
+#: lib/Query.php:590
+msgid "Add Group Criterion"
+msgstr "Äîáàâèòü êðèòåðèè ãðóïïû"
+
+#: lib/Admin.php:533
+msgid "Add Priority"
+msgstr "Äîáàâèòü ïðèîðèòåò"
+
+#: lib/Query.php:669
+msgid "Add Property Criterion"
+msgstr "Äîáàâèòü êðèòåðèè ñâîéñòâà"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "Äîáàâèòü Òåìó"
+
+#: lib/Admin.php:441
+msgid "Add State"
+msgstr "Äîáàâèòü ñîñòîÿíèå"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Äîáàâèòü çàãëàâèå"
+
+#: lib/Query.php:625
+msgid "Add Text Criterion"
+msgstr "Äîáàâèòü êðèòåðèè òåêñòà"
+
+#: lib/Admin.php:298 lib/Admin.php:299
+msgid "Add Type"
+msgstr "Äîáàâèòü òèï"
+
+#: admin.php:81 admin.php:86
+#, php-format
+msgid "Add Type %s"
+msgstr "Äîáàâèòü òèï %s"
+
+#: lib/Query.php:537
+msgid "Add User Criterion"
+msgstr "Äîáàâèòü êðèòåðèè ïîëüçîâàòåëÿ"
+
+#: lib/Admin.php:229
+msgid "Add Users"
+msgstr "Äîáàâèòü ïîëüçîâàòåëåé"
+
+#: lib/Admin.php:621
+msgid "Add Version"
+msgstr "Äîáàâèòü âåðñèþ"
+
+# fuzzy
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Äîáàâèòü"
+
+#: ticket/create.php:154
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr ""
+
+#: admin.php:54 lib/api.php:694
+msgid "Administration"
+msgstr "Àäìèíèñòðèðîâàíèå"
+
+# fuzzy
+#: templates/queryrenderer.inc:90 lib/Query.php:518
+msgid "And"
+msgstr "È"
+
+#: search.php:39 search.php:103 search.php:105 search.php:120 search.php:136
+#: search.php:138 lib/Query.php:675 lib/Query.php:683 lib/Query.php:688
+#: lib/Query.php:695 lib/Query.php:700
+msgid "Any"
+msgstr "- Íå âàæíî -"
+
+# fuzzy
+#: ticket/update.php:75 ticket/people.php:90 ticket/type.php:45
+#: ticket/comment.php:41 ticket/queue.php:50
+msgid "Any Group"
+msgstr "Ëþáûå ãðóïïû"
+
+#: config/prefs.php.dist:47
+msgid "Ascending"
+msgstr "Ïî âîçðîñòàíèþ"
+
+#: lib/api.php:709
+#, fuzzy
+msgid "Assign"
+msgstr "Â ðàáîòå"
+
+#: ticket/people.php:128
+msgid "Assign Ticket Succeeded"
+msgstr ""
+
+#: lib/Whups.php:473 lib/Ticket.php:601 lib/Driver.php:142
+#: config/prefs.php.dist:36
+msgid "Assigned"
+msgstr "Â ðàáîòå"
+
+#: templates/comment.inc:66
+#, php-format
+msgid "Assigned to %s"
+msgstr ""
+
+#: admin.php:955
+msgid "Associations updated successfully."
+msgstr ""
+
+#: ticket/update.php:64 ticket/comment.php:29 lib/Create.php:124
+msgid "Attachment"
+msgstr "Âëîæåíèå"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Âëîæåíèå %s óäàëåíî"
+
+#: lib/Ticket.php:388
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Âëîæåíèå %s íå íàéäåíî"
+
+#: lib/Ticket.php:603
+msgid "Attachments"
+msgstr "Âëîæåíèÿ"
+
+#: query.php:139
+msgid "Attribute Criteria"
+msgstr "Àòòðèáóòû"
+
+# fuzzy
+#: lib/Admin.php:713 lib/Admin.php:759 lib/Admin.php:782
+msgid "Attribute Description"
+msgstr "Îïèñàíèå"
+
+#: lib/Admin.php:712 lib/Admin.php:737 lib/Admin.php:756 lib/Admin.php:779
+msgid "Attribute Name"
+msgstr "Àòòðèáóò"
+
+#: lib/Admin.php:370
+msgid "Attributes for this Type"
+msgstr "Àòòðèáóòû äëÿ ýòîãî Òèïà"
+
+#: config/prefs.php.dist:118
+msgid "Autolink to other tickets in comments?"
+msgstr "Àâòîìàòè÷åñêèå ññûëêè íà äðóãèå çàïðîñû â êîìåíòàðèÿõ"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Ñðåäíåå âðåìÿ ðåøåíèÿ ïî Îòâåòñòâåííûì"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Ñðåäíåå âðåìÿ ðåøåíèÿ ïî Òåìå"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Ñðåäíåå âðåìÿ ðåøåíèÿ ïî Çàïðîñèâøåìó"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Ñðåäíåå âðåìÿ ðåøåíèÿ çàïðîñà"
+
+#: lib/Query.php:523
+msgid "Branch Type"
+msgstr ""
+
+#: lib/Query.php:56
+msgid "Case Insensitive Substring"
+msgstr "÷àñòè÷íîå áåç ó÷åòà ðåãèñòðà"
+
+#: templates/queryrenderer.inc:27
+#, fuzzy
+msgid "Change"
+msgstr "Îòìåíèòü èçìåíåíèÿ\n"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Èçìåíèòü íàñòðîéêè îòîáðàæåíèÿ, íàïðèìåð ïîðÿäîê ñîðòèðîâêè ðåçóëüòàòîâ "
+"ïîèñêà"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Èçìåíèòü íàñòðîéêè ðàññûëêè óâåäîìëåíèé ïî ýëåêòðîííîé ïî÷òå"
+
+#: query.php:142
+msgid "Choose Action:"
+msgstr "Äåéñòâèå:"
+
+#: lib/Query.php:161
+msgid "Choose New Query instead of deleting the root node."
+msgstr ""
+
+#: lib/Create.php:33 lib/Create.php:67
+msgid "Choose:"
+msgstr "Âûáîð:"
+
+#: config/prefs.php.dist:128
+msgid "Chronological (oldest first)"
+msgstr " õðîíîëîãè÷åñêîì ïîðÿäêå"
+
+#: templates/savedsearches.inc:27
+msgid "Clear All Searches"
+msgstr "Î÷èñòèòü âñå ïîèñêîâûå çàïðîñû"
+
+#: lib/Admin.php:421
+msgid "Clone"
+msgstr "Êëîíèðîâàòü"
+
+#: lib/Admin.php:427
+msgid "Clone Description"
+msgstr "Êëîíèðîâàòü îïèñàíèå:"
+
+#: admin.php:120 lib/Admin.php:313
+msgid "Clone Type"
+msgstr "Êëîíèðîâàòü òèï"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "CSV-ôàéë"
+
+#: templates/queryrenderer.inc:101 templates/comment.inc:90
+#: templates/comment.inc:121 ticket/update.php:65 ticket/people.php:78
+#: ticket/type.php:35 ticket/comment.php:28 ticket/queue.php:38
+#: lib/Whups.php:193
+msgid "Comment"
+msgstr "Êîììåíòàðèé"
+
+#: ticket/comment.php:94
+msgid "Comment added"
+msgstr "Êîììåíòàðèé äîáàâëåí"
+
+#: ticket/comment.php:100
+#, php-format
+msgid "Comment on %s"
+msgstr "Êîììåíòàðèé äëÿ %s"
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr "Êîììåíòàòîð"
+
+#: lib/Admin.php:425
+#, php-format
+msgid "Copy of %s"
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:54
+msgid "Could not extract the requested file from the Zip archive."
+msgstr ""
+
+#: lib/Query.php:595
+msgid "Could not find any groups."
+msgstr "Íåò ãðóïï"
+
+#: lib/Mail.php:86
+#, fuzzy, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Íå ìîãó îòêðûòü ìîäóëü Maintenance_Task %s"
+
+# fuzzy
+#: lib/Admin.php:364
+msgid "Create Default Priorities"
+msgstr "Ñîçäàòü ïðèîðèòåòû ïî óìîë÷àíèþ"
+
+#: lib/Admin.php:354
+msgid "Create Default States"
+msgstr "Ñîçäàòü ñîñòîÿíèÿ ïî óìîë÷àíèþ"
+
+#: config/prefs.php.dist:60
+msgid "Create Ticket"
+msgstr "Ñîçäàòü çàïðîñ"
+
+#: lib/Create.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Ñîçäàíèå çàïðîñà - Øàã 1"
+
+#: lib/Create.php:58
+msgid "Create Ticket - Step 2"
+msgstr "Ñîçäàíèå çàïðîñà - Øàã 2"
+
+#: lib/Create.php:98
+msgid "Create Ticket - Step 3"
+msgstr "Ñîçäàíèå çàïðîñà - Øàã 3"
+
+#: lib/Create.php:142
+msgid "Create Ticket - Step 4"
+msgstr "Ñîçäàíèå çàïðîñà - Øàã 4"
+
+#: lib/Whups.php:472 lib/Ticket.php:600 config/prefs.php.dist:35
+msgid "Created"
+msgstr "Ñîçäàíî"
+
+#: lib/Ticket.php:471 lib/Ticket.php:486
+#, fuzzy
+msgid "Created By"
+msgstr "Ñîçäàíî"
+
+# fuzzy
+#: query.php:195 query.php:212
+msgid "Current Query"
+msgstr "Òåêóùàÿ Òåìà"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr ""
+
+#: lib/Ticket.php:531
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "ÍÅ ÎÒÂÅ×ÀÉÒÅ ÍÀ ÝÒÎ ÑÎÎÁÙÅÍÈÅ. ÝÒÎÒ EMAIL ÀÄÐÅÑ ÍÅ ÏÐÎÑÌÀÒÐÈÂÀÅÒÑß."
+
+#: config/prefs.php.dist:91
+msgid "Date/Time format for search results"
+msgstr "Ôîðìàò äàòû/âðåìåíè äëÿ ðåçóëüòàòîâ ïîèñêà"
+
+#: config/prefs.php.dist:38
+msgid "Default sorting criteria:"
+msgstr "Ñîðòèðîâêà ïî óìîë÷àíèþ:"
+
+#: config/prefs.php.dist:49
+msgid "Default sorting direction:"
+msgstr "Íàïðàâëåíèå ñîðòèðîâêè ïî óìîë÷àíèþ:"
+
+#: query.php:143 lib/Whups.php:202
+msgid "Delete"
+msgstr "Óäàëèòü"
+
+#: lib/Whups.php:641 lib/Whups.php:642
+#, php-format
+msgid "Delete %s"
+msgstr "Óäàëèòü %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Óäàëèòü %s?"
+
+#: admin.php:847 lib/Admin.php:725
+msgid "Delete Attribute"
+msgstr "Óäàëèòü àòðèáóò"
+
+#: lib/Admin.php:771
+msgid "Delete Attribute Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ àòðèáóòà"
+
+#: admin.php:485 lib/Admin.php:549
+msgid "Delete Priority"
+msgstr "Óäàëèòü ïðèîðèòåò"
+
+#: lib/Admin.php:595
+msgid "Delete Priority Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ ïðèîðèòåòà"
+
+#: lib/Query.php:145
+msgid "Delete Query"
+msgstr "Óäàëèòü çàïðîñ"
+
+#: lib/Query.php:882
+msgid "Delete Query?"
+msgstr "Óäàëèòü çàïðîñ?"
+
+#: admin.php:268 lib/Admin.php:119
+msgid "Delete Queue"
+msgstr "Óäàëèòü Òåìó"
+
+#: lib/Admin.php:204
+msgid "Delete Queue Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ Òåìû"
+
+#: templates/savedsearches.inc:45 templates/savedsearches.inc:46
+msgid "Delete Search"
+msgstr "Óäàëèòü ïîèñê"
+
+#: admin.php:375 lib/Admin.php:458
+msgid "Delete State"
+msgstr "Óäàëèòü ñîñòîÿíèå"
+
+#: lib/Admin.php:507
+msgid "Delete State Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ ñîñòîÿíèÿ"
+
+#: admin.php:646 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "Óäàëèòü òåìó"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ òåìû"
+
+#: admin.php:114 lib/Admin.php:313
+msgid "Delete Type"
+msgstr "Óäàëèòü òèï"
+
+#: lib/Admin.php:384
+msgid "Delete Type Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ òèïà"
+
+#: admin.php:738 lib/Admin.php:637
+msgid "Delete Version"
+msgstr "Óäàëèòü âåðñèþ"
+
+#: lib/Admin.php:683
+msgid "Delete Version Confirmation"
+msgstr "Ïîäòâåðæäåíèå óäàëåíèÿ âåðñèè"
+
+#: lib/Ticket.php:476 lib/Ticket.php:522
+msgid "Deleted Attachment"
+msgstr "Óäàëèòü âëîæåíèå"
+
+#: templates/comment.inc:62
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Óäàëèòü âëîæåíèå: %s"
+
+#: config/prefs.php.dist:48
+msgid "Descending"
+msgstr "Ïî óáûâàíèþ"
+
+#: lib/Create.php:125
+msgid "Description"
+msgstr "Îïèñàíèå:"
+
+# fuzzy
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Íàñòðîéêè îòîáðàæåíèÿ"
+
+#: lib/Whups.php:633
+msgid "Download"
+msgstr "Ñêà÷àòü"
+
+#: query.php:144
+msgid "Edit"
+msgstr "Ðåäàêòèðîâàíèå"
+
+#: lib/Admin.php:148 lib/Admin.php:338
+#, php-format
+msgid "Edit %s"
+msgstr "Ðåäàêòèðîâàíèå %s"
+
+#: admin.php:842 lib/Admin.php:725 lib/Admin.php:748
+msgid "Edit Attribute"
+msgstr "Ðåäàêòèðîâàòü àòòðèáóò"
+
+#: lib/Admin.php:372
+msgid "Edit Attributes"
+msgstr "Ðåäàêòèðîâàòü àòòðèáóòû"
+
+#: lib/Query.php:134
+msgid "Edit Permissions"
+msgstr "Ðåäàêòèðîâàòü ïðàâà"
+
+#: lib/Admin.php:362
+msgid "Edit Priorities"
+msgstr "Ðåäàêòèðîâàòü ïðèîðèòåòû"
+
+#: admin.php:480 lib/Admin.php:549 lib/Admin.php:572
+msgid "Edit Priority"
+msgstr "Ðåäàêòèðîâàòü ïðèîðèòåò"
+
+#: lib/Query.php:126
+msgid "Edit Query"
+msgstr "Ðåäàêòèðîâàòü"
+
+#: admin.php:262 lib/Admin.php:119 lib/Admin.php:122
+msgid "Edit Queue"
+msgstr "Ðåäàêòèðîâàòü Òåìó"
+
+#: admin.php:32 lib/Admin.php:121
+msgid "Edit Queues"
+msgstr "Ðåäàêòèðîâàòü Òåìû"
+
+#: admin.php:370 lib/Admin.php:458 lib/Admin.php:481
+msgid "Edit State"
+msgstr "Ðåäàêòèðîâàòü ñîñòîÿíèå"
+
+#: lib/Admin.php:352
+msgid "Edit States"
+msgstr "Ðåäàêòèðîâàòü ñîñòîÿíèÿ"
+
+#: admin.php:641 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "Ðåäàêòèðîâàòü çàãëàâèÿ"
+
+#: admin.php:34
+msgid "Edit Subjects"
+msgstr "Ðåäàêòèðîâàòü çàãëàâèÿ"
+
+#: admin.php:108 lib/Admin.php:313
+msgid "Edit Type"
+msgstr "Ðåäàêòèðîâàòü òèï"
+
+#: admin.php:33
+msgid "Edit Types"
+msgstr "Ðåäàêòèðîâàòü òèïû"
+
+#: admin.php:733 lib/Admin.php:637 lib/Admin.php:660
+msgid "Edit Version"
+msgstr "Ðåäàêòèðîâàòü âåðñèþ"
+
+#: lib/Admin.php:724
+msgid "Edit or Delete Attributes"
+msgstr "Äîáàâëåíè èëè Óäàëåíèå Àòòðèáóò"
+
+#: lib/Admin.php:548
+msgid "Edit or Delete Priorities"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Ïðèîðèòåòîâ"
+
+#: lib/Admin.php:118
+msgid "Edit or Delete Queues"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Òåì"
+
+#: lib/Admin.php:457
+msgid "Edit or Delete States"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Ñîñòîÿíèé"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Çàãëàâèé"
+
+#: lib/Admin.php:312
+msgid "Edit or Delete Types"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Òèïîâ"
+
+#: lib/Admin.php:636
+msgid "Edit or Delete Versions"
+msgstr "Ðåäàêòèðîâàíèå èëè Óäàëåíèå Âåðñèé"
+
+#: lib/Admin.php:191
+msgid "Edit the permissions on this queue"
+msgstr "Ðåäàêòèðîâàòü ïðàâà äëÿ ýòîé òåìû"
+
+#: lib/Admin.php:186
+msgid "Edit the users responsible for this queue"
+msgstr "Ðåäàêòèðîâàòü ïîëüçîâàòåëåé îòâåòñâåííûõ çà ýòó òåìó"
+
+#: lib/Admin.php:165
+msgid "Edit the versions for this queue"
+msgstr "Ðåäàêòèðîâàòü âåðñèè äëÿ ýòîé òåìû"
+
+# fuzzy
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "Äîáàâèòü àäðåñ:"
+
+# fuzzy
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Èñêëþ÷èòü àäðåñ:"
+
+#: query.php:171
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr ""
+
+#: lib/Query.php:55
+msgid "Exact Match"
+msgstr "Ïîëíîå"
+
+#: runquery.php:69 runquery.php:83 lib/Query.php:138
+msgid "Execute Query"
+msgstr "Âûïîëíèòü"
+
+#: lib/Admin.php:809
+msgid "For tickets from these queues"
+msgstr "Äëÿ Çàïðîñîâ ïî Òåìå"
+
+#: lib/Admin.php:813
+msgid "For tickets which are"
+msgstr "Äëÿ Çàïðîñîâ, êîòîðûå"
+
+#: templates/menu.inc:5 lib/Block/summary.php:29
+msgid "Go"
+msgstr "->"
+
+#: query.php:136
+msgid "Group Criteria"
+msgstr "Ãðóïïû"
+
+# fuzzy
+#: ticket/people.php:66 lib/Create.php:173
+#, fuzzy
+msgid "Group Owners"
+msgstr "Ãðóïïû"
+
+#: templates/queryrenderer.inc:98 lib/Query.php:596 lib/Query.php:598
+msgid "Groups"
+msgstr "Ãðóïïû"
+
+#: lib/api.php:697
+#, fuzzy
+msgid "Hidden Comments"
+msgstr "Êîìïàíèÿ"
+
+#: ticket/index.php:43 lib/Whups.php:189
+msgid "History"
+msgstr "Èñòîðèÿ"
+
+#: query.php:145
+#, fuzzy
+msgid "Hoist"
+msgstr "Íàñòðîéêè"
+
+#: templates/queryrenderer.inc:96 lib/Whups.php:464 lib/Query.php:671
+#: config/prefs.php.dist:28
+msgid "Id"
+msgstr ""
+
+#: search.php:52
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+"Åñëè âû íå âûáåðèòå íè îäíîãî ñîñòîÿíèÿ - Çàïðîñû íå áóäóò ôèëüòðîâàòüñÿ ïî "
+"ñîñòîÿíèþ"
+
+#: search.php:55
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+"Åñëè âû íå âûáåðèòå íè îäíîãî òèïà - Çàïðîñû íå áóäóò ôèëüòðîâàòüñÿ ïî òèïó"
+
+#: lib/Admin.php:816
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+"Ïðè âûáîðå Çàïðîñà, êîòîðîìó íå íàçíà÷åí âëàäåëåö - êîìó ïîëûëàòü e-mail?"
+
+# fuzzy
+#: query.php:146
+msgid "Insert And"
+msgstr "Äîáàâèòü È"
+
+#: lib/Query.php:515
+#, fuzzy
+msgid "Insert Branch"
+msgstr "Ñîîáùåíèå"
+
+# fuzzy
+#: query.php:148
+msgid "Insert Not"
+msgstr "Äîáàâèòü ÍÅ"
+
+# fuzzy
+#: query.php:147
+msgid "Insert Or"
+msgstr "Äîáàâèòü ÈËÈ"
+
+#: lib/Whups.php:160
+msgid "Invalid Ticket Id"
+msgstr "Íåâåðíûé ID Çàïðîñà"
+
+#: lib/Admin.php:162
+msgid "Keep a set of versions for this queue?"
+msgstr "Ïîääåðæêà ðàçíûõ âåðñèé äëÿ ýòîé òåìû?"
+
+#: templates/prevnext.inc:17
+#, fuzzy
+msgid "Last>>"
+msgstr "Ïîñëåäíèé"
+
+#: lib/Query.php:139 lib/Query.php:842
+msgid "Load Query"
+msgstr "Çàãðóçèòü"
+
+#: config/prefs.php.dist:89
+msgid "MM/DD/YY"
+msgstr "ÌÌ/ÄÄ/ÃÃ"
+
+#: config/prefs.php.dist:90
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "ÌÌ/ÄÄ/ÃÃ ××:ÌÌ:ÑÑ"
+
+#: lib/Admin.php:419
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Ñäåëàòü êëîí %s"
+
+#: lib/Query.php:770
+#, fuzzy
+msgid "Match"
+msgstr "Ïîèñê"
+
+#: lib/Query.php:540 lib/Query.php:628 lib/Query.php:771
+msgid "Match Operator"
+msgstr "Ñîâïàäåíèå"
+
+#: lib/Query.php:59
+msgid "Match Pattern"
+msgstr "Ìàñêà"
+
+#: lib/Query.php:58
+msgid "Match Word"
+msgstr "Ñëîâî"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Ìàêñèìàëüíîå âðåìÿ ðåøåíèÿ çàïðîñà"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Ìèíèìàëüíîå âðåìÿ ðåøåíèÿ çàïðîñà"
+
+#: config/prefs.php.dist:129
+msgid "Most recent first"
+msgstr "Ñíà÷àëà ñâåæèå"
+
+#: ticket/queue.php:173
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr ""
+
+#: mybugs.php:65
+#, php-format
+msgid "My %s"
+msgstr ""
+
+#: mybugs.php:44
+msgid "My Assigned Tickets"
+msgstr "Çàïðîñû ìíå"
+
+# fuzzy
+#: mybugs.php:60
+msgid "My Open Requests"
+msgstr "Çàïðîñû îò ìåíÿ"
+
+#: mybugs.php:83 search.php:191 lib/Block/myqueries.php:3
+#: lib/Block/myqueries.php:26
+msgid "My Queries"
+msgstr "Ìîè çàïðîñû"
+
+#: mybugs.php:79 search.php:187 lib/Block/mysearches.php:3
+#: lib/Block/mysearches.php:24
+msgid "My QuickSearches"
+msgstr "Áûñòðûé ïîèñê"
+
+#: config/prefs.php.dist:58
+msgid "My Tickets"
+msgstr "Ìîè çàïðîñû"
+
+#: lib/Ticket.php:537
+#, php-format
+msgid "NEW: %s"
+msgstr "ÍÎÂÛÉ: %s"
+
+#: lib/Query.php:819 lib/Query.php:857
+msgid "Name"
+msgstr "Èìÿ"
+
+#: lib/Admin.php:424
+msgid "Name of the cloned copy"
+msgstr "Èìÿ êëîíèðîâàííîé êîïèè"
+
+#: lib/Driver.php:141
+msgid "New"
+msgstr "Íîâûå"
+
+#: lib/Ticket.php:475 lib/Ticket.php:517
+msgid "New Attachment"
+msgstr "Íîâîå âëîæåíèå"
+
+#: templates/comment.inc:55 templates/comment.inc:57
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Íîâîå âëîæåíèå: %s"
+
+# fuzzy
+#: lib/Query.php:124 lib/Block/myqueries.php:27 lib/Block/myqueries.php:28
+msgid "New Query"
+msgstr "Íîâûé"
+
+#: ticket/queue.php:37
+msgid "New Queue"
+msgstr "Íîâàÿ Òåìà"
+
+#: ticket/people.php:75
+msgid "New State"
+msgstr "Íîâîå ñîñòîÿíèå"
+
+#: ticket/create.php:27 lib/Block/summary.php:28
+msgid "New Ticket"
+msgstr "Äîáàâèòü"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr ""
+
+#: templates/prevnext.inc:16
+#, fuzzy
+msgid "Next>"
+msgstr "Äàëåå"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "No"
+msgstr "Íåò"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr ""
+
+#: reports.php:17
+#, fuzzy
+msgid "No stats available."
+msgstr "Íåò äîñòóïíûõ íàñòðîåê."
+
+#: lib/Driver.php:319
+#, fuzzy, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Àäðåñàò óâåäîìëåíèÿ %s íå íàéäåí."
+
+#: lib/Whups.php:504
+msgid "No tickets matched your search criteria."
+msgstr "Íå íàéäåíî Çàïðîñîâ â ñîîòâåòñòâèè ñ óñëîâèÿìè ïîèñêà"
+
+#: lib/Block/summary.php:75
+msgid "No tickets to display"
+msgstr "Íåò çàìå÷àíèé äëÿ îòîáðàæåíèÿ"
+
+#: lib/Reports.php:88
+#, fuzzy
+msgid "None"
+msgstr "Òåëåôîí"
+
+#: templates/queryrenderer.inc:92 lib/Query.php:520
+#, fuzzy
+msgid "Not"
+msgstr "Íåò"
+
+#: query.php:77
+#, fuzzy
+msgid "Not yet implemented."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Íàñòðîéêè îïîâåùåíèÿ"
+
+#: config/prefs.php.dist:109
+msgid "Only notify me of ticket changes from other users"
+msgstr "Îïîâåùàòü ìåíÿ òîëüêî ïðè èçìåíåíèè çàïðîñà äðóãèìè ïîëüçîâàòåëÿìè"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Îòóðûòûå çàïðîñû ïî Îòâåòñòâåííûì"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Îòêðûòûå çàïðîñû ïî Ïðèîðèòåòó"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Îòêðûòûå çàïðîñû ïî Òåìå"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Îòêðûòûå çàïðîñû ïî Çàïðîñèâøåìó"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Îòêðûòûå çàïðîñû ïî Ñîñòîÿíèþ"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Îòêðûòûå çàïðîñû ïî Òèïó"
+
+#: templates/queryrenderer.inc:91 lib/Query.php:519
+msgid "Or"
+msgstr ""
+
+# fuzzy
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Íàñòðîéêè ïîëüçîâàòåëÿ"
+
+#: templates/queryrenderer.inc:97 ticket/people.php:60 ticket/people.php:72
+#: lib/Create.php:167 lib/Create.php:179 lib/Whups.php:471 lib/Ticket.php:474
+#: lib/Ticket.php:509 lib/Ticket.php:510 lib/Ticket.php:512 lib/Ticket.php:596
+msgid "Owners"
+msgstr "Âëàäåëåö"
+
+#: lib/Whups.php:196
+#, fuzzy
+msgid "People"
+msgstr "Ñöåíàðèé"
+
+#: lib/Whups.php:641
+#, fuzzy, php-format
+msgid "Permanently delete %s?"
+msgstr "Íåâîçìîæíî ñîåäèíèòüñÿ ñ SQL ñåðâåðîì."
+
+#: ticket/update.php:22 ticket/people.php:21 ticket/type.php:17
+#: ticket/delete.php:17 ticket/queue.php:17 ticket/deleteAttachment.php:17
+#, fuzzy
+msgid "Permission Denied"
+msgstr "Íàñòðîéêè ïîëüçîâàòåëÿ"
+
+#: ticket/update.php:83 ticket/delete.php:44
+#, fuzzy
+msgid "Permission Denied."
+msgstr "Ñîîáùåíèå"
+
+#: runquery.php:35 query.php:29 lib/Query.php:894
+#, fuzzy, php-format
+msgid "Permission denied."
+msgstr "Íàñòðîéêè ïîëüçîâàòåëÿ"
+
+#: lib/Admin.php:360 lib/Admin.php:402
+msgid "Priorities for this Type"
+msgstr "Ïðèîðèòåòû äëÿ ýòîãî òèïà:"
+
+#: templates/queryrenderer.inc:138 ticket/update.php:52 ticket/type.php:69
+#: ticket/queue.php:116 lib/Create.php:122 lib/Whups.php:468
+#: lib/Ticket.php:466 lib/Ticket.php:594 lib/Query.php:699
+#: config/prefs.php.dist:32
+msgid "Priority"
+msgstr "Ïðèîðèòåò"
+
+#: templates/comment.inc:99
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Ïðèîðèòåò ⇒ %s"
+
+# fuzzy
+#: lib/Admin.php:537 lib/Admin.php:583 lib/Admin.php:606
+msgid "Priority Description"
+msgstr "Îïèñàíèå"
+
+# fuzzy
+# fuzzy
+#: lib/Admin.php:536 lib/Admin.php:561 lib/Admin.php:580 lib/Admin.php:603
+msgid "Priority Name"
+msgstr "Ïðèîðèòåò"
+
+#: query.php:134
+msgid "Property Criteria"
+msgstr "Ñâîéñòâà"
+
+#: query.php:152
+msgid "Query Builder"
+msgstr ""
+
+#: lib/Query.php:95
+#, fuzzy
+msgid "Query Parameters"
+msgstr "Èìÿ"
+
+#: runquery.php:77
+#, fuzzy
+msgid "Query Results"
+msgstr "Ñáðîñèòü"
+
+#: search.php:48 templates/queryrenderer.inc:107 lib/Whups.php:469
+#: lib/Ticket.php:463 lib/Ticket.php:575 lib/Ticket.php:579 lib/Query.php:682
+#: config/prefs.php.dist:33
+msgid "Queue"
+msgstr "Òåìà"
+
+#: templates/comment.inc:107
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Òåìà ⇒ %s"
+
+#: lib/Admin.php:106 lib/Admin.php:155 lib/Admin.php:214
+msgid "Queue Description"
+msgstr "Îïèñàíèå Òåìû"
+
+#: lib/Admin.php:105 lib/Admin.php:134 lib/Admin.php:152 lib/Admin.php:211
+#: lib/Create.php:33 lib/Create.php:41
+msgid "Queue Name"
+msgstr "Òåìà"
+
+#: ticket/queue.php:85 lib/Create.php:80 lib/Ticket.php:584 lib/Ticket.php:588
+msgid "Queue Version"
+msgstr "Âåðñèÿ"
+
+#: admin.php:35 templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Òåìà/Òèï"
+
+#: search.php:139
+#, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s, Summary: %s"
+msgstr ""
+
+#: lib/api.php:156 lib/api.php:700
+msgid "Queues"
+msgstr "Òåìû"
+
+#: lib/Ticket.php:539
+#, php-format
+msgid "RESOLVED: %s"
+msgstr "ÂÛÏÎËÍÅÍÎ: %s"
+
+#: lib/Admin.php:786
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòîò àòòðèáóò? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: lib/Admin.php:610
+msgid "Really delete this priority? This may cause data problems!"
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòîò ïðèîðèòåò? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: lib/Query.php:885
+msgid "Really delete this query? This operation is not undoable."
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòîò çàïðîñ? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: lib/Admin.php:218
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòó òåìó? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: lib/Admin.php:522
+msgid "Really delete this state? This may cause data problems!"
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòî ñîñòîÿíèå? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!"
+msgstr "Äåéñòâèòåëüíî óäàëèòü ýòî çàãëàâèå? Âîçìîæíû ïðîáëåìû ñ äàííûìè!"
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+
+#: lib/Admin.php:406
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+
+#: lib/Admin.php:698
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+
+#: search.php:169
+msgid "Refine Search"
+msgstr "Ïîèñê"
+
+#: admin.php:922
+msgid "Reminders were sent."
+msgstr ""
+
+# fuzzy
+#: lib/Admin.php:267
+msgid "Remove User"
+msgstr "Óäàëèòü"
+
+#: ticket/watch.php:48
+#, fuzzy
+msgid "Remove Watcher"
+msgstr "Óäàëèòü ïàðó"
+
+#: reports.php:22
+#, fuzzy
+msgid "Reports"
+msgstr "Èìïîðò"
+
+#: templates/queryrenderer.inc:99 lib/Ticket.php:599
+msgid "Requester"
+msgstr "Äîáàâèë"
+
+#: lib/Whups.php:474 lib/Ticket.php:602 lib/Driver.php:143
+#: config/prefs.php.dist:37
+msgid "Resolved"
+msgstr "Âûïîëíåíî"
+
+#: lib/Admin.php:269
+msgid "Responsible Users"
+msgstr ""
+
+#: ticket/update.php:76
+msgid "Restrict Comment to:"
+msgstr ""
+
+#: lib/Admin.php:170
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Îãðàíè÷èòü çàãëàâèÿ çàïðîñîâ ñïèñêîì?"
+
+# fuzzy, php-format
+#: templates/prevnext.inc:25
+#, fuzzy
+msgid "Return to Search Results"
+msgstr "Ðåçóëüòàò ïîèñêà"
+
+# #-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#
+# fuzzy
+# fuzzy
+#: templates/searchresults.inc:96
+msgid "Save"
+msgstr "Ñîõðàíèòü"
+
+#: lib/Query.php:142 lib/Query.php:817
+msgid "Save Query"
+msgstr "Çàïèñàòü"
+
+#: templates/searchresults.inc:90
+msgid "Save these results as: "
+msgstr "Ñîõðàíèòü ðåçóëüòàò êàê:"
+
+#: lib/Query.php:774
+#, php-format
+msgid "Search %s Attribute"
+msgstr ""
+
+# fuzzy, php-format
+# fuzzy
+#: lib/Query.php:777
+msgid "Search Attribute"
+msgstr "Ïîèñê àòòðèáóòà:"
+
+# fuzzy
+#: lib/Query.php:543 lib/Query.php:630
+msgid "Search Comments"
+msgstr "Èñêàòü â êîììåíòàðèÿõ"
+
+# fuzzy, php-format
+# fuzzy
+#: lib/Query.php:541
+msgid "Search Owners"
+msgstr "Èñêàòü â Îòâåòñòâåííûõ"
+
+# fuzzy
+#: lib/Query.php:542
+msgid "Search Requester"
+msgstr "Èñêàòü â Çàïðîñèâøèõ"
+
+# fuzzy, php-format
+#: search.php:164
+msgid "Search Results"
+msgstr "Ðåçóëüòàò ïîèñêà"
+
+#: templates/prevnext.inc:21
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Ðåçóëüòàò ïîèñêà: %s èç %s"
+
+# fuzzy
+#: lib/Query.php:629
+msgid "Search Summary"
+msgstr "Êðàòêîå îáîáùåíèå:"
+
+# fuzzy, php-format
+#: search.php:64 search.php:180 config/prefs.php.dist:59
+msgid "Search Tickets"
+msgstr "Ïîèñê"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr ""
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr ""
+
+# fuzzy
+#: config/prefs.php.dist:61
+msgid "Select the view to display after login:"
+msgstr "Ðåæèì ðàáîòû ïîñëå âõîäà â Çàïðîñû:"
+
+#: admin.php:36 lib/Admin.php:797
+msgid "Send Reminders"
+msgstr "Îòïðàâëåíèå íàïîìèíàíèé"
+
+#: lib/Admin.php:808
+msgid "Send only for this list of ticket ids"
+msgstr "Îòïðàâëÿòü òîëüêî äëÿ óêàçàííûõ çàïðîñîâ:"
+
+#: lib/Whups.php:200
+msgid "Set Queue"
+msgstr "Çàäàòü Òåìó"
+
+#: ticket/queue.php:194 ticket/queue.php:203 ticket/queue.php:215
+msgid "Set Queue - Step 1"
+msgstr ""
+
+#: ticket/queue.php:195 ticket/queue.php:204
+msgid "Set Queue - Step 2"
+msgstr ""
+
+#: ticket/queue.php:205
+msgid "Set Queue - Step 3"
+msgstr ""
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Set Queue for %s"
+msgstr ""
+
+#: lib/Whups.php:201
+msgid "Set Type"
+msgstr ""
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr ""
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr ""
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr ""
+
+#: config/prefs.php.dist:100
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "Ïîêàçûâàòü (õ Äíåé íàçàä) â Äàòå ïðè ïîèñêå?"
+
+#: config/prefs.php.dist:127
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Ïîêàçûâàòü êîììåíòàðèè â õðîíîëîãè÷åñêîì ïîðÿäêå, èëè ñíà÷àëà ñâåæèå?"
+
+#: config/prefs.php.dist:78
+msgid "Show ticket IDs in the summary view?"
+msgstr "Ïîêàçûâàòü <u>ID Çàïðîñà</u> â Îáùåì îáçîðå?"
+
+#: config/prefs.php.dist:70
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Ïîêàçûâàòü <u>Çàïðîñû îò Âàñ</u> â Îáùåì îáçîðå?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Ïðîñòîé HTML îò÷åò"
+
+#: templates/searchresults.inc:115 templates/searchresults.inc:118
+#, fuzzy, php-format
+msgid "Sort by %s"
+msgstr "Èìïîðò"
+
+#: templates/queryrenderer.inc:130 ticket/update.php:49 ticket/type.php:68
+#: ticket/queue.php:115 lib/Whups.php:466 lib/Ticket.php:465
+#: lib/Ticket.php:593 lib/Query.php:694 config/prefs.php.dist:30
+msgid "State"
+msgstr "Ñîñòîÿíèå"
+
+#: templates/comment.inc:95
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Ñîñòîÿíèå ⇒ %s"
+
+# fuzzy
+#: lib/Admin.php:446 lib/Admin.php:495
+msgid "State Category"
+msgstr "Êàòåãîðèÿ"
+
+# fuzzy
+#: lib/Admin.php:445 lib/Admin.php:492 lib/Admin.php:518
+msgid "State Description"
+msgstr "Îïèñàíèå"
+
+# fuzzy
+#: lib/Admin.php:444 lib/Admin.php:470 lib/Admin.php:489 lib/Admin.php:515
+msgid "State Name"
+msgstr "Ñîñòîÿíèå"
+
+#: lib/Admin.php:350 lib/Admin.php:398
+msgid "States for this Type"
+msgstr "Ñîñòîÿíèÿ äëÿ ýòîãî òèïà:"
+
+#: lib/Create.php:123 config/prefs.php.dist:29
+msgid "Subject"
+msgstr "Çàãëàâèå"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Çàãëàâèå"
+
+#: lib/Admin.php:174
+msgid "Subjects associated with this Queue"
+msgstr "Çàãëàâèÿ, äîïóñòèìûå â äàííîé Òåìå"
+
+# fuzzy
+#: ticket/create.php:102
+msgid "Submit"
+msgstr " ÎÊ "
+
+#: admin.php:161
+#, fuzzy, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr ""
+
+#: templates/queryrenderer.inc:102 ticket/update.php:46 ticket/delete.php:34
+#: lib/Whups.php:465 lib/Ticket.php:473 lib/Ticket.php:488 lib/Ticket.php:489
+#: lib/Ticket.php:491 lib/Ticket.php:573
+msgid "Summary"
+msgstr "Ñâîäêà"
+
+#: templates/comment.inc:49
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Ñâîäêà ⇒ %s"
+
+#: search.php:50
+msgid "Summary like"
+msgstr "Ñâîäêà ñîäåðæèò òåêñò"
+
+#: templates/comment.inc:71
+#, php-format
+msgid "Taken from %s"
+msgstr ""
+
+# fuzzy
+#: lib/Query.php:627
+msgid "Text"
+msgstr "Òåêñò"
+
+#: query.php:138
+msgid "Text Criteria"
+msgstr "Òåêñò"
+
+#: view.php:44 lib/Ticket.php:339 lib/Ticket.php:377
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+
+#: admin.php:811
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr ""
+
+#: admin.php:893
+msgid "The attribute has been deleted."
+msgstr ""
+
+#: admin.php:864
+msgid "The attribute has been modified."
+msgstr ""
+
+#: admin.php:898
+#, fuzzy
+msgid "The attribute was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: admin.php:449
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr ""
+
+#: admin.php:530
+msgid "The priority has been deleted."
+msgstr ""
+
+#: admin.php:502
+msgid "The priority has been modified."
+msgstr ""
+
+#: admin.php:535
+msgid "The priority was not deleted."
+msgstr ""
+
+#: lib/Query.php:898
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr ""
+
+#: lib/Query.php:900
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr ""
+
+#: lib/Query.php:865
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr ""
+
+#: admin.php:240
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr ""
+
+#: admin.php:318
+msgid "The queue has been deleted."
+msgstr ""
+
+#: admin.php:290
+msgid "The queue has been modified."
+msgstr ""
+
+#: admin.php:323
+msgid "The queue was not deleted."
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:60
+msgid "The requested file does not exist in the Zip attachment."
+msgstr ""
+
+#: data.php:24
+#, fuzzy
+msgid "The requested template does not exist."
+msgstr "Àäðåñàò óâåäîìëåíèÿ %s íå íàéäåí."
+
+#: admin.php:338
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr ""
+
+#: admin.php:421
+msgid "The state has been deleted."
+msgstr ""
+
+#: admin.php:392
+msgid "The state has been modified."
+msgstr ""
+
+#: admin.php:426
+#, fuzzy
+msgid "The state was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: admin.php:625
+#, php-format
+msgid "The subject \"%s\" has been added."
+msgstr "Çàãëàâèå %s áûëî äîáàâëåíî"
+
+#: admin.php:681
+msgid "The subject has been deleted."
+msgstr "Çàãëàâèå áûëî óäàëåíî"
+
+#: admin.php:662
+msgid "The subject has been modified."
+msgstr "Çàãëàâèå èçìåíåíî"
+
+#: admin.php:686
+#, fuzzy
+msgid "The subject was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: ticket/delete.php:75
+#, fuzzy
+msgid "The ticket was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: admin.php:179
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr ""
+
+#: admin.php:221
+msgid "The type has been deleted."
+msgstr ""
+
+#: admin.php:226
+#, fuzzy
+msgid "The type was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: admin.php:701
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr ""
+
+#: admin.php:783
+#, fuzzy
+msgid "The version has been deleted."
+msgstr "Âàøè íàñòðîéêè áûëè îáíîâëåíû."
+
+#: admin.php:755
+msgid "The version has been modified."
+msgstr ""
+
+#: admin.php:788
+#, fuzzy
+msgid "The version was not deleted."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Íîâîå ñîîáùåíèå"
+
+#: lib/Admin.php:733
+msgid "There are no attribute types to edit"
+msgstr "Íåò àòòðèáóòîâ"
+
+#: lib/Query.php:777
+msgid "There are no attributes defined for the current type"
+msgstr "Íåò àòòðèáóòîâ, îïðåäåëåííûõ äëÿ äàííîãî òèïà"
+
+# fuzzy
+#: lib/Admin.php:557
+msgid "There are no priorities to edit"
+msgstr "Íåò ïðèîðèòåòîâ"
+
+# fuzzy
+#: lib/Admin.php:805
+msgid "There are no queues available."
+msgstr "Íåò äîñòóïíûõ òåì."
+
+#: lib/Admin.php:131
+msgid "There are no queues to edit"
+msgstr "Íåò òåì"
+
+#: lib/Create.php:41
+msgid "There are no queues which you can create tickets in."
+msgstr "Íåò òåì"
+
+#: search.php:42
+msgid "There are no queues which you can search."
+msgstr "Íåò òåì"
+
+#: lib/Admin.php:466
+msgid "There are no states to edit"
+msgstr "Íåò ñîñòîÿíèé"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "Íåò çàãëàâèé"
+
+#: lib/Create.php:64
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr "Íåò òåì"
+
+#: lib/Admin.php:321
+#, fuzzy
+msgid "There are no types to edit"
+msgstr "Íåò äîñòóïíûõ íàñòðîåê."
+
+#: lib/Admin.php:283
+msgid "There are no users responsible for this queue."
+msgstr "Íåò îòâåòñòâåííûõ çà äàííóþ Òåìó"
+
+#: ticket/people.php:71 lib/Create.php:178
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Íåò ïîëüçîâàòåëåé çà êåì ìîæíî çàêðåïèòü ýòî çàìå÷àíèå"
+
+#: lib/Admin.php:645
+msgid "There are no versions to edit"
+msgstr "Íåò âåðñèé äëÿ ðåäàêòèðîâàíèÿ"
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "Íåò äàííûõ äëÿ ýòîãî ãðàôèêà"
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Íåò äàííûõ äëÿ ýòîãî îò÷åòà"
+
+#: admin.php:569
+#, fuzzy, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:627
+#, fuzzy, php-format
+msgid "There was an error adding the subject: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:814
+#, fuzzy, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:451
+#, fuzzy, php-format
+msgid "There was an error creating the priority: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:248
+#, fuzzy, php-format
+msgid "There was an error creating the queue: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:340
+#, fuzzy, php-format
+msgid "There was an error creating the state: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:703
+#, fuzzy, php-format
+msgid "There was an error creating the version: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:895
+#, fuzzy, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:532
+#, fuzzy, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:320
+#, fuzzy, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:423
+#, fuzzy, php-format
+msgid "There was an error deleting the state: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:683
+#, fuzzy, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: ticket/delete.php:72
+#, fuzzy, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:223
+#, fuzzy, php-format
+msgid "There was an error deleting the type: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:785
+#, fuzzy, php-format
+msgid "There was an error deleting the version: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:871
+#, fuzzy, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:507
+#, fuzzy, php-format
+msgid "There was an error editing the priority: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:304
+#, fuzzy, php-format
+msgid "There was an error editing the queue: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:397
+#, fuzzy, php-format
+msgid "There was an error editing the state: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:667
+#, fuzzy, php-format
+msgid "There was an error editing the subject: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:760
+#, fuzzy, php-format
+msgid "There was an error editing the version: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: lib/Admin.php:243
+#, fuzzy, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: mybugs.php:39
+#, fuzzy, php-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: mybugs.php:55
+#, fuzzy, php-format
+msgid "There was an error listing your open requests: %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:177
+#, fuzzy, php-format
+msgid "There was an error modifying the type: %s."
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: search.php:158
+#, fuzzy, php-format
+msgid "There was an error performing your search: %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: admin.php:605
+#, fuzzy, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Ïðîáëåìà ïðè ïðîñìîòðå çàïðîøåííîãî ïèñüìà."
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr ""
+
+#: lib/Admin.php:57
+#, fuzzy
+msgid "This is not a valid subject."
+msgstr "Ýòî çíà÷åíèå äîëæíî áûòü ÷èñëîì."
+
+#: ticket/queue.php:80 lib/Create.php:75
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:485
+#, fuzzy
+msgid "Ticket"
+msgstr "Çàãîëîâîê"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr ""
+
+#: lib/api.php:746
+#, fuzzy, php-format
+msgid "Ticket %s - %s"
+msgstr "Çàïðîñû"
+
+#: lib/Driver/sql.php:869
+#, fuzzy, php-format
+msgid "Ticket %s was not found."
+msgstr "Àäðåñàò óâåäîìëåíèÿ %s íå íàéäåí."
+
+#: search.php:49
+msgid "Ticket ID"
+msgstr "ID çàìå÷àíèÿ"
+
+#: lib/Create.php:121
+msgid "Ticket State"
+msgstr "Ñîñòîÿíèå"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Ñòàòèñòèêà ïî çàïðîñàì:"
+
+#: lib/Block/summary.php:3
+#, fuzzy
+msgid "Ticket Summary"
+msgstr "Ãëàâíàÿ"
+
+#: lib/Create.php:69
+msgid "Ticket Type"
+msgstr "Òèï çàïðîñà"
+
+#: lib/Admin.php:158
+msgid "Ticket Types associated with this Queue"
+msgstr "Òèïû çàïðîñîâ, äîïóñòèìûå ïî ýòîé Òåìå"
+
+#: lib/Ticket.php:481
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr ""
+
+#: ticket/update.php:137
+#, fuzzy
+msgid "Ticket Updated"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Áûñòðûé ñòàðò"
+
+#: lib/api.php:767
+msgid "Tickets"
+msgstr "Çàïðîñû"
+
+#: lib/Block/summary.php:52
+msgid "Tickets assigned to you"
+msgstr ""
+
+#: search.php:52
+msgid "Tickets which are"
+msgstr "Ñîñòîÿíèå"
+
+#: lib/Block/summary.php:69
+msgid "Tickets you requested"
+msgstr ""
+
+#: templates/queryrenderer.inc:121 ticket/queue.php:88 lib/Whups.php:467
+#: lib/Ticket.php:467 lib/Ticket.php:592 lib/Query.php:674
+#: config/prefs.php.dist:31
+msgid "Type"
+msgstr "Òèï"
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Òèï ⇒ %s"
+
+#: lib/Admin.php:301 lib/Admin.php:345 lib/Admin.php:394
+msgid "Type Description"
+msgstr "Îïèñàíèå òèïà"
+
+#: lib/Admin.php:300 lib/Admin.php:324 lib/Admin.php:342 lib/Admin.php:391
+msgid "Type Name"
+msgstr "Èìÿ òèïà"
+
+#: search.php:55
+msgid "Types"
+msgstr "Òèï"
+
+#: lib/Ticket.php:597
+msgid "Unassigned"
+msgstr "Íå íàçíà÷åí"
+
+#: lib/Admin.php:816
+msgid "Unassigned tickets"
+msgstr "Íåíàçíà÷åííûå Çàïðîñû"
+
+#: lib/Driver.php:140
+msgid "Unconfirmed"
+msgstr "Íåïîäòâåðæäåíî"
+
+#: templates/queryrenderer.inc:148 templates/queryrenderer.inc:188
+#, php-format
+msgid "Unknown node type %s"
+msgstr ""
+
+#: templates/comment.inc:84 lib/Whups.php:191 lib/api.php:714
+#, fuzzy
+msgid "Update"
+msgstr "Îáíîâèòü"
+
+#: ticket/update.php:153
+#, fuzzy, php-format
+msgid "Update %s"
+msgstr "Ñîõðàíèòü íàñòðîéêè"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Îáíîâèòü àññîöèàöèè"
+
+#: ticket/people.php:134
+#, fuzzy, php-format
+msgid "Update People for %s"
+msgstr "Ñîõðàíèòü íàñòðîéêè"
+
+#: lib/Ticket.php:472 lib/Ticket.php:486
+#, fuzzy
+msgid "Updated By"
+msgstr ""
+"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n"
+"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n"
+"Áûñòðûé ñòàðò"
+
+# fuzzy
+#: lib/Admin.php:242 lib/Admin.php:252 lib/Admin.php:255
+msgid "User"
+msgstr "Ïîëüçîâàòåëü"
+
+# fuzzy
+#: query.php:135
+msgid "User Criteria"
+msgstr "Ïîëüçîâàòåëü"
+
+# fuzzy
+#: lib/Query.php:539
+msgid "User ID"
+msgstr "ID ïîëüçîâàòåëÿ"
+
+#: lib/Admin.php:184
+msgid "Users responsible for this Queue"
+msgstr "Îòâåòñòâåííûå ïî äàííîé òåìå"
+
+#: lib/Admin.php:287
+msgid "Users responsible for this queue"
+msgstr "Îòâåòñòâåííûå ïî äàííîé òåìå"
+
+# fuzzy
+#: templates/queryrenderer.inc:115 lib/Whups.php:470 lib/Ticket.php:464
+#: lib/Query.php:686 config/prefs.php.dist:34
+msgid "Version"
+msgstr "Âåðñèÿ"
+
+# fuzzy
+#: lib/Admin.php:625 lib/Admin.php:671 lib/Admin.php:694
+msgid "Version Description"
+msgstr "Îïèñàíèå âåðñèè"
+
+# fuzzy
+#: lib/Admin.php:624 lib/Admin.php:649 lib/Admin.php:668 lib/Admin.php:691
+msgid "Version Name"
+msgstr "Íàçâàíèå âåðñèè"
+
+#: templates/reports/graphs.inc:13
+msgid "View Graphs"
+msgstr "Ïðîñìîòð ãðàôèêîâ:"
+
+#: ticket/people.php:91 ticket/type.php:46 ticket/comment.php:42
+#: ticket/queue.php:51
+msgid "Viewable only by members of"
+msgstr ""
+
+# fuzzy
+#: lib/Whups.php:194
+msgid "Watch"
+msgstr "Îòñëåæèâàíèå"
+
+# fuzzy, php-format
+# fuzzy, php-format
+#: ticket/watch.php:76
+msgid "Watchers for %s"
+msgstr "Îòñëåæèâàþùèå çàïðîñ %s"
+
+#: config/prefs.php.dist:87
+msgid "Weekday Day Month"
+msgstr "Äåíü íåäåëè, Äåíü, Ìåñÿö"
+
+#: config/prefs.php.dist:88
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Äåíü íåäåëè, Äåíü, Ìåñÿö, ××:ÌÌ:ÑÑ"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "Yes"
+msgstr "Äà"
+
+#: view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr ""
+
+#: lib/Driver/sql.php:872
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr ""
+
+# fuzzy
+#: lib/Query.php:854
+#, fuzzy
+msgid "You have no saved queries."
+msgstr "Âû âûøëè èç ñèñòåìû."
+
+#: lib/Whups.php:498
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+# fuzzy
+#: ticket/comment.php:26 lib/Create.php:35
+msgid "Your Email Address"
+msgstr "Âàø Email:"
+
+#: ticket/create.php:157
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"ID Âàøåãî çàìå÷àíèÿ %s. Îòâåòñâåííûå ëèöà áóäóò èçâåùåíû î Âàøåì çàïðîñå."
+
+#: lib/Whups.php:563
+msgid "_Admin"
+msgstr ""
+
+#: lib/Whups.php:552
+#, php-format
+msgid "_My %s"
+msgstr "Ìîè %s"
+
+#: lib/Whups.php:555
+msgid "_New Ticket"
+msgstr "Äîáàâèòü"
+
+#: lib/Whups.php:557
+msgid "_Query Builder"
+msgstr "Ïîñòðîèòü îò÷åò"
+
+#: lib/Whups.php:559
+msgid "_Reports"
+msgstr "Ãðàôèêè"
+
+#: lib/Whups.php:554
+msgid "_Search"
+msgstr "Ïîèñê"
+
+#: templates/queryrenderer.inc:168
+msgid "contains (case insensitive) substring"
+msgstr ""
+
+#: templates/queryrenderer.inc:172
+msgid "contains (case sensitive) substring"
+msgstr ""
+
+#: templates/queryrenderer.inc:176
+#, fuzzy
+msgid "contains the word"
+msgstr "Ïàðîëü"
+
+#: scripts/mail-filter.php:176
+#, php-format
+msgid "error processing message: %s"
+msgstr ""
+
+#: lib/api.php:755
+msgid "estimated time"
+msgstr ""
+
+#: templates/queryrenderer.inc:164
+msgid "is"
+msgstr ""
+
+#: templates/queryrenderer.inc:156
+msgid "is greater than"
+msgstr ""
+
+#: templates/queryrenderer.inc:160
+msgid "is less than"
+msgstr ""
+
+#: templates/queryrenderer.inc:180
+msgid "matches the pattern"
+msgstr ""
--- /dev/null
+# Slovenian translations for Whups packaga
+# Slovenski prevod Whups paketa
+# Copyright 2006-2009 The Horde Project
+# This file is distributed under the same license as the horde package.
+# Automatically generated, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: whups\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2006-07-25 11:30+0200\n"
+"PO-Revision-Date: 2006-04-30 10:32+0100\n"
+"Last-Translator: duck@obala.net\n"
+"Language-Team: sl_SI <duck@obala.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.php:603
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" ni več zadolžene za \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: lib/Driver.php:307
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) je napisal:"
+
+#: admin.php:567
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s je bil dodan med zadolžene za \"%s\""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s dni"
+
+#: ticket/watch.php:58
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s bo opozoren ob spremembi te prijave."
+
+#: ticket/watch.php:70
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s ne bo več dobilval opozoril ob spremembi te prijave."
+
+#: admin.php:81
+msgid "- Stage 1"
+msgstr "- Korak 1"
+
+#: admin.php:86
+msgid "- Stage 2"
+msgstr "- Korak 2"
+
+#: scripts/mail-filter.php:164
+msgid "--priority-name or --priority-id must specify a valid Priority."
+msgstr ""
+
+#: scripts/mail-filter.php:158
+msgid "--queue-name or --queue-id must specify a valid Queue."
+msgstr ""
+
+#: scripts/mail-filter.php:167
+msgid "--state-name or --state-id must specify a valid State."
+msgstr ""
+
+#: scripts/mail-filter.php:161
+msgid "--type-name or --type-id must specify a valid Type."
+msgstr ""
+
+#: templates/prevnext.inc:12
+msgid "<<First"
+msgstr "<<Prvi"
+
+#: templates/prevnext.inc:13
+msgid "<Prev"
+msgstr "<Prejšnji"
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "Nimate pravice dostopati do %s"
+
+#: lib/Admin.php:709
+msgid "Add Attribute"
+msgstr "Dodaj latnost"
+
+#: lib/Query.php:764
+msgid "Add Attribute Criterion"
+msgstr "Dodaj lastnosti pogoja"
+
+#: mybugs.php:54
+msgid "Add Content"
+msgstr "Dodaj vsebino"
+
+#: query.php:206
+msgid "Add Criterion"
+msgstr "Dodaj pogoj"
+
+#: lib/Query.php:590
+msgid "Add Group Criterion"
+msgstr "Dodaj pogoj skupine"
+
+#: lib/Admin.php:533
+msgid "Add Priority"
+msgstr "Dodaj prioriteto"
+
+#: lib/Query.php:669
+msgid "Add Property Criterion"
+msgstr "Dodaj pogoj osnovnih podtkov"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "Dodaj skupino"
+
+#: lib/Admin.php:441
+msgid "Add State"
+msgstr "Dodaj status"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "Dodaj naslov"
+
+#: lib/Query.php:625
+msgid "Add Text Criterion"
+msgstr "Dodaj opisni pogoj"
+
+#: lib/Admin.php:298 lib/Admin.php:299
+msgid "Add Type"
+msgstr "Dodaj tip"
+
+#: admin.php:81 admin.php:86
+#, php-format
+msgid "Add Type %s"
+msgstr "Dodaj tip %s"
+
+#: lib/Query.php:537
+msgid "Add User Criterion"
+msgstr "Dodaj uporabnika kot pogoj"
+
+#: lib/Admin.php:229
+msgid "Add Users"
+msgstr "Dodaj uporabnika"
+
+#: lib/Admin.php:621
+msgid "Add Version"
+msgstr "Dodaj verzijo"
+
+#: ticket/watch.php:47
+msgid "Add Watcher"
+msgstr "Dodaj sleditelja"
+
+#: ticket/create.php:154
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Urejanje ni bilo mogoče: %s"
+
+#: admin.php:54 lib/api.php:694
+msgid "Administration"
+msgstr "Administracija"
+
+#: templates/queryrenderer.inc:90 lib/Query.php:518
+msgid "And"
+msgstr "In"
+
+#: search.php:39 search.php:103 search.php:105 search.php:120 search.php:136
+#: search.php:138 lib/Query.php:675 lib/Query.php:683 lib/Query.php:688
+#: lib/Query.php:695 lib/Query.php:700
+msgid "Any"
+msgstr "Katerakoli"
+
+#: ticket/update.php:75 ticket/people.php:90 ticket/type.php:45
+#: ticket/queue.php:50 lib/Forms/AddComment.php:37
+msgid "Any Group"
+msgstr "Katerakoli skupina"
+
+#: config/prefs.php.dist:55
+msgid "Ascending"
+msgstr "Naraščajoče"
+
+#: lib/api.php:709
+msgid "Assign"
+msgstr "Dodeli"
+
+#: ticket/people.php:128
+msgid "Assign Ticket Succeeded"
+msgstr "Dodeljevanje prijave uspešno"
+
+#: lib/Whups.php:498 lib/Ticket.php:601 lib/Driver.php:161
+#: config/prefs.php.dist:44
+msgid "Assigned"
+msgstr "Dodeljen"
+
+#: templates/comment.inc:66
+#, php-format
+msgid "Assigned to %s"
+msgstr "Dodeljena uporabniku %s"
+
+#: admin.php:955
+msgid "Associations updated successfully."
+msgstr "Povezave uspešno ažurirane."
+
+#: ticket/update.php:64 lib/Forms/CreateTicket.php:128
+#: lib/Forms/AddComment.php:24
+msgid "Attachment"
+msgstr "Priponka"
+
+#: ticket/deleteAttachment.php:29
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Priponka %s izbrisana."
+
+#: lib/Ticket.php:388
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Ne najdem priponke %s."
+
+#: lib/Ticket.php:603
+msgid "Attachments"
+msgstr "Priponke"
+
+#: query.php:140
+msgid "Attri_bute Criteria"
+msgstr "Lastnosti"
+
+#: lib/Admin.php:713 lib/Admin.php:759 lib/Admin.php:782
+msgid "Attribute Description"
+msgstr "Opis lastnosti"
+
+#: lib/Admin.php:712 lib/Admin.php:737 lib/Admin.php:756 lib/Admin.php:779
+msgid "Attribute Name"
+msgstr "Ime lastnosti"
+
+#: lib/Admin.php:370
+msgid "Attributes for this Type"
+msgstr "Lastnosti tega tipa"
+
+#: config/prefs.php.dist:117
+msgid "Autolink to other tickets in comments?"
+msgstr "Samodejno poveži prijave v komentarjih?"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "Poveprečno število dni zaključevanja po lastniku"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "Povrečno število dni potrebnih za zaključitev postav v skupini"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "Poveprečno število dni zaključevanja po priavitelju"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "Povrečni čas reševanje prijav."
+
+#: lib/Query.php:523
+msgid "Branch Type"
+msgstr ""
+
+#: lib/Query.php:56
+msgid "Case Insensitive Substring"
+msgstr "Ne loči med velike in male črke"
+
+#: templates/queryrenderer.inc:27
+msgid "Change"
+msgstr "Spremeni"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr "Premeni način razvrščanja rezultatov"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Spremeni nastavitve elektronskih sporočil ob spremembah prijav."
+
+#: query.php:143
+msgid "Choose Action:"
+msgstr "Izberi vkaz:"
+
+#: lib/Query.php:161
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Izberi novo skupino namesto izbrisa korenskega nivoja"
+
+#: lib/Forms/CreateTicket.php:37 lib/Forms/CreateTicket.php:64
+msgid "Choose:"
+msgstr "Izberi:"
+
+#: config/prefs.php.dist:127
+msgid "Chronological (oldest first)"
+msgstr "Kronološko (starejši bodo prvi)"
+
+#: templates/savedsearches.inc:27
+msgid "Clear All Searches"
+msgstr "Izbriši rezultate iskanja"
+
+#: lib/Admin.php:421
+msgid "Clone"
+msgstr "Podvoji"
+
+#: lib/Admin.php:427
+msgid "Clone Description"
+msgstr "Podvoji opis"
+
+#: admin.php:120 lib/Admin.php:313
+msgid "Clone Type"
+msgstr "Podvoji tip"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Z vejco ločene vrednosti (CSV datoteka)"
+
+#: templates/queryrenderer.inc:101 templates/comment.inc:90
+#: templates/comment.inc:121 ticket/update.php:65 ticket/people.php:78
+#: ticket/type.php:35 ticket/queue.php:38 lib/Forms/AddComment.php:23
+msgid "Comment"
+msgstr "Komentar"
+
+#: ticket/comment.php:69
+msgid "Comment added"
+msgstr "Komentar dodan"
+
+#: ticket/comment.php:34
+#, php-format
+msgid "Comment on %s"
+msgstr "Komentar na %s"
+
+#: templates/queryrenderer.inc:100
+msgid "Commentor"
+msgstr "Komentator"
+
+#: lib/Admin.php:425
+#, php-format
+msgid "Copy of %s"
+msgstr "Kopija %s"
+
+#: lib/MIME/Viewer/zip.php:54
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Ne morem izvoziti želene datoteke iz Zip datoteke."
+
+#: lib/Query.php:595
+msgid "Could not find any groups."
+msgstr "Ne najdem nikakršne skupin."
+
+#: lib/Mail.php:88
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Ne morem najti prijave \"%s\"."
+
+#: lib/Admin.php:364
+msgid "Create Default Priorities"
+msgstr "Tvori prenastavljene prioritete"
+
+#: lib/Admin.php:354
+msgid "Create Default States"
+msgstr "Tvori prenastavljene statuse"
+
+#: config/prefs.php.dist:68
+msgid "Create Ticket"
+msgstr "Tvori prijavo"
+
+#: lib/Forms/CreateTicket.php:23
+msgid "Create Ticket - Step 1"
+msgstr "Nova prijava - Korak 1"
+
+#: lib/Forms/CreateTicket.php:55
+msgid "Create Ticket - Step 2"
+msgstr "Nova prijava - Korak 1"
+
+#: lib/Forms/CreateTicket.php:95
+msgid "Create Ticket - Step 3"
+msgstr "Nova prijava - Korak 3"
+
+#: lib/Forms/CreateTicket.php:162
+msgid "Create Ticket - Step 4"
+msgstr "Nova prijava - Korak 4"
+
+#: lib/Whups.php:497 lib/Ticket.php:600 config/prefs.php.dist:43
+msgid "Created"
+msgstr "Tvorjenja"
+
+#: lib/Ticket.php:471 lib/Ticket.php:486
+msgid "Created By"
+msgstr "Prijava od"
+
+#: query.php:196 query.php:213
+msgid "Current Query"
+msgstr "Trenutna poizvedba"
+
+#: templates/queryrenderer.inc:25
+msgid "Current Ticket Type"
+msgstr "Tip trenutne prijave"
+
+#: lib/Ticket.php:531
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "NE ODGOVARJAJTE NA TO SPOROČILO. TEMU EMAIL NASLOVU NE SLEDIMO."
+
+#: config/prefs.php.dist:99
+msgid "Date/Time format for search results"
+msgstr "Oblika časa in datumov rezultatov iskanja"
+
+#: config/prefs.php.dist:46
+msgid "Default sorting criteria:"
+msgstr "Privzet način razvrščanja:"
+
+#: config/prefs.php.dist:57
+msgid "Default sorting direction:"
+msgstr "Privzeta smer razvrščanja"
+
+#: query.php:144
+msgid "Delete"
+msgstr "Izbriši"
+
+#: lib/Whups.php:668 lib/Whups.php:669
+#, php-format
+msgid "Delete %s"
+msgstr "Izbriši %s"
+
+#: ticket/delete.php:58
+#, php-format
+msgid "Delete %s?"
+msgstr "Zbrišem %s?"
+
+#: admin.php:847 lib/Admin.php:725
+msgid "Delete Attribute"
+msgstr "Izbriši lastnost"
+
+#: lib/Admin.php:771
+msgid "Delete Attribute Confirmation"
+msgstr "Potrditev izbrisa lastnosti"
+
+#: admin.php:485 lib/Admin.php:549
+msgid "Delete Priority"
+msgstr "Zbriši prioriteto"
+
+#: lib/Admin.php:595
+msgid "Delete Priority Confirmation"
+msgstr "Potrdite izbrisa prioritete"
+
+#: lib/Query.php:882
+msgid "Delete Query?"
+msgstr "Izbrišem poizvedbo?"
+
+#: admin.php:268 lib/Admin.php:119
+msgid "Delete Queue"
+msgstr "Izbriši skupino"
+
+#: lib/Admin.php:204
+msgid "Delete Queue Confirmation"
+msgstr "Potrditev izbrisa skupine"
+
+#: templates/savedsearches.inc:45 templates/savedsearches.inc:46
+msgid "Delete Search"
+msgstr "Izbriši iskanje"
+
+#: admin.php:375 lib/Admin.php:458
+msgid "Delete State"
+msgstr "Izbriši status"
+
+#: lib/Admin.php:507
+msgid "Delete State Confirmation"
+msgstr "Potrditev izbrisa statusa"
+
+#: admin.php:646 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "Izbriši postavko"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "Potrditev izbrisa postavke"
+
+#: admin.php:114 lib/Admin.php:313
+msgid "Delete Type"
+msgstr "Izbriši tip"
+
+#: lib/Admin.php:384
+msgid "Delete Type Confirmation"
+msgstr "Potrditev izbrisa tipa"
+
+#: admin.php:738 lib/Admin.php:637
+msgid "Delete Version"
+msgstr "Izbriši verzijo"
+
+#: lib/Admin.php:683
+msgid "Delete Version Confirmation"
+msgstr "Potrditev izbrisa verzije"
+
+#: lib/Ticket.php:476 lib/Ticket.php:522
+msgid "Deleted Attachment"
+msgstr "Izbriši priponko"
+
+#: templates/comment.inc:62
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Priponka %s izbrisana."
+
+#: config/prefs.php.dist:56
+msgid "Descending"
+msgstr "Padajoče"
+
+#: lib/Forms/CreateTicket.php:129
+msgid "Description"
+msgstr "Opis"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Nastavitve prikaza"
+
+#: lib/Whups.php:660
+msgid "Download"
+msgstr "Presnemi"
+
+#: lib/Query.php:138
+msgid "E_xecute Query"
+msgstr "Izedi poizvedbo"
+
+#: query.php:145
+msgid "Edit"
+msgstr "Uredi"
+
+#: lib/Admin.php:148 lib/Admin.php:338
+#, php-format
+msgid "Edit %s"
+msgstr "Uredi %s"
+
+#: admin.php:842 lib/Admin.php:725 lib/Admin.php:748
+msgid "Edit Attribute"
+msgstr "Uredi lastnost"
+
+#: lib/Admin.php:372
+msgid "Edit Attributes"
+msgstr "Uredi lastnosti"
+
+#: lib/Admin.php:362
+msgid "Edit Priorities"
+msgstr "Uredi prioritete"
+
+#: admin.php:480 lib/Admin.php:549 lib/Admin.php:572
+msgid "Edit Priority"
+msgstr "Uredi prioriteto"
+
+#: admin.php:262 lib/Admin.php:119 lib/Admin.php:122
+msgid "Edit Queue"
+msgstr "Uredi skupino"
+
+#: lib/Admin.php:121
+msgid "Edit Queues"
+msgstr "Uredi skupine"
+
+#: admin.php:34
+msgid "Edit S_ubjects"
+msgstr "Uredi postavke"
+
+#: admin.php:370 lib/Admin.php:458 lib/Admin.php:481
+msgid "Edit State"
+msgstr "Uredi status"
+
+#: lib/Admin.php:352
+msgid "Edit States"
+msgstr "Uredi statuse"
+
+#: admin.php:641 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "Uredi postavko"
+
+#: admin.php:108 lib/Admin.php:313
+msgid "Edit Type"
+msgstr "Uredi tip"
+
+#: admin.php:733 lib/Admin.php:637 lib/Admin.php:660
+msgid "Edit Version"
+msgstr "Uredi verzijo"
+
+#: lib/Query.php:134
+msgid "Edit _Permissions"
+msgstr "Uredi pravico"
+
+#: admin.php:33
+msgid "Edit _Types"
+msgstr "Uredi tip"
+
+#: lib/Admin.php:724
+msgid "Edit or Delete Attributes"
+msgstr "Uredi ali zbriši lastnost"
+
+#: lib/Admin.php:548
+msgid "Edit or Delete Priorities"
+msgstr "Uredi ali zbriši prioriteto"
+
+#: lib/Admin.php:118
+msgid "Edit or Delete Queues"
+msgstr "Uredi ali izbriši skupine"
+
+#: lib/Admin.php:457
+msgid "Edit or Delete States"
+msgstr "Uredi ali zbriši status"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "Uredi ali izbriši postavke"
+
+#: lib/Admin.php:312
+msgid "Edit or Delete Types"
+msgstr "Uredi ali zbriši tip"
+
+#: lib/Admin.php:636
+msgid "Edit or Delete Versions"
+msgstr "Uredi ali zbriši verzijo"
+
+#: lib/Admin.php:191
+msgid "Edit the permissions on this queue"
+msgstr "Uredi privlegije za to skupino"
+
+#: lib/Admin.php:186
+msgid "Edit the users responsible for this queue"
+msgstr "Uredi odgovorne za to skupino"
+
+#: lib/Admin.php:165
+msgid "Edit the versions for this queue"
+msgstr "Uredi verzije te skupine"
+
+#: ticket/watch.php:23
+msgid "Email address to notify"
+msgstr "Email naslovi za opozarjanje"
+
+#: ticket/watch.php:35
+msgid "Email address to remove"
+msgstr "Email naslov za odstranitev"
+
+#: query.php:172
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "Napak: Neznana poizveda za %s, prenstavljam na lastnosti"
+
+#: lib/Query.php:55
+msgid "Exact Match"
+msgstr "Je popolnoma enaka"
+
+#: runquery.php:69 runquery.php:83
+msgid "Execute Query"
+msgstr "Izvedi poizvedbo"
+
+#: lib/Admin.php:809
+msgid "For tickets from these queues"
+msgstr "Za prijave v tej skupini"
+
+#: lib/Admin.php:813
+msgid "For tickets which are"
+msgstr "Za prijave ki so"
+
+#: templates/menu.inc:5 lib/Block/summary.php:42
+msgid "Go"
+msgstr "Pojdi"
+
+#: lib/Block/summary.php:42
+msgid "GoTo: "
+msgstr "Pojdi na"
+
+#: ticket/people.php:66 lib/Forms/CreateTicket.php:193
+msgid "Group Owners"
+msgstr "Skupine odgovornih"
+
+#: templates/queryrenderer.inc:98 lib/Query.php:596 lib/Query.php:598
+msgid "Groups"
+msgstr "Skupine odgovornih"
+
+#: lib/Whups.php:208
+msgid "H_istory"
+msgstr "Zgodovina"
+
+#: lib/api.php:697
+msgid "Hidden Comments"
+msgstr "Skriti komentarji"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Zgodovina"
+
+#: query.php:146
+#, fuzzy
+msgid "Hoist"
+msgstr "Zgodovina"
+
+#: templates/queryrenderer.inc:96 lib/Whups.php:489 lib/Query.php:671
+#: config/prefs.php.dist:36
+msgid "Id"
+msgstr "Id"
+
+#: search.php:52
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr "Če ne izberete kategorije, filtriranje po kategorijah ne bo izvedeno"
+
+#: search.php:55
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr "Če ne izberete tipa, filtriranje po tipih ne bo izvedeno"
+
+#: lib/Admin.php:816
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr "Če ne izberete prijavo ki nima lastnika, komu naj pošljemo email?"
+
+#: query.php:147
+msgid "Insert And"
+msgstr "Dodaj Vsebuje"
+
+#: lib/Query.php:515
+#, fuzzy
+msgid "Insert Branch"
+msgstr "Dodaj ALI vsebuje"
+
+#: query.php:149
+msgid "Insert Not"
+msgstr "Dodaj NE vsebuje"
+
+#: query.php:148
+msgid "Insert Or"
+msgstr "Dodaj ALI vsebuje"
+
+#: lib/Whups.php:179
+msgid "Invalid Ticket Id"
+msgstr "Napačni ID Prijave"
+
+#: lib/Admin.php:162
+msgid "Keep a set of versions for this queue?"
+msgstr "Obdrži veruije v skupini?"
+
+#: templates/prevnext.inc:17
+msgid "Last>>"
+msgstr "Zadnji>>"
+
+#: lib/Query.php:842
+msgid "Load Query"
+msgstr "Prikliči poizvedbo"
+
+#: config/prefs.php.dist:97
+msgid "MM/DD/YY"
+msgstr "MM/DD/LL"
+
+#: config/prefs.php.dist:98
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "MM/DD/LL UU:MM::SS"
+
+#: lib/Admin.php:419
+#, php-format
+msgid "Make a clone of %s"
+msgstr "Podvoji %s"
+
+#: lib/Query.php:770
+msgid "Match"
+msgstr "Ustreza"
+
+#: lib/Query.php:540 lib/Query.php:628 lib/Query.php:771
+msgid "Match Operator"
+msgstr "Operator primerjanja"
+
+#: lib/Query.php:59
+msgid "Match Pattern"
+msgstr "Primerjaj z"
+
+#: lib/Query.php:58
+msgid "Match Word"
+msgstr "Prejaj besedo"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "Največ časa nerešenih prijav"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "Najhitreje rešena prijava"
+
+#: config/prefs.php.dist:128
+msgid "Most recent first"
+msgstr "Najnovejše na prvem mestu"
+
+#: ticket/queue.php:173
+#, fuzzy, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Premaknjena %s v \"%s\""
+
+#: mybugs.php:51
+#, php-format
+msgid "My %s"
+msgstr "Moje %s"
+
+#: mybugs_edit.php:30
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Moje %s :: Dodaj vsebino"
+
+#: search.php:192 lib/Block/myqueries.php:3 lib/Block/myqueries.php:26
+msgid "My Queries"
+msgstr "Moje poizvedbe"
+
+#: search.php:187 lib/Block/mysearches.php:3 lib/Block/mysearches.php:24
+msgid "My QuickSearches"
+msgstr "Moja hitra iskanja"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Moji zahtevki"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:66
+msgid "My Tickets"
+msgstr "Moje prijave"
+
+#: lib/Ticket.php:537
+#, fuzzy, php-format
+msgid "NEW: %s"
+msgstr "NOVA: %S"
+
+#: lib/Query.php:819 lib/Query.php:857
+msgid "Name"
+msgstr "Ime"
+
+#: lib/Admin.php:424
+msgid "Name of the cloned copy"
+msgstr "Ime podvojenega"
+
+#: lib/Query.php:124
+msgid "Ne_w Query"
+msgstr "Nova poizvedba"
+
+#: lib/Driver.php:160
+msgid "New"
+msgstr "Novo"
+
+#: lib/Ticket.php:475 lib/Ticket.php:517
+msgid "New Attachment"
+msgstr "Nova priponka"
+
+#: templates/comment.inc:55 templates/comment.inc:57
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Nova priponka: %s"
+
+#: lib/Block/myqueries.php:28
+msgid "New Query"
+msgstr "Nova poizvedba"
+
+#: ticket/queue.php:37
+msgid "New Queue"
+msgstr "Nova skupina"
+
+#: ticket/people.php:75
+msgid "New State"
+msgstr "Nov status"
+
+#: ticket/create.php:27 lib/Block/summary.php:27
+msgid "New Ticket"
+msgstr "Nova prijava"
+
+#: ticket/type.php:34
+msgid "New Type"
+msgstr "Nov tip"
+
+#: templates/prevnext.inc:16
+msgid "Next>"
+msgstr "Naslednji>"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "No"
+msgstr "Ne"
+
+#: lib/Block/myqueries.php:49
+msgid "No queries have been saved"
+msgstr "Ni shranjenih poizvedb"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr "Ni počiščenih iskanj"
+
+#: lib/Block/mysearches.php:43
+msgid "No searches have been saved"
+msgstr "Ni shranjeih iskanj"
+
+#: reports.php:17
+msgid "No stats available."
+msgstr "Ni razpoložljivih statusov"
+
+#: lib/Driver.php:348
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "Ne najdem vira podatkov \"%s\""
+
+#: lib/Block/mytickets.php:50 lib/Block/summary.php:87
+#: lib/Block/myrequests.php:51
+msgid "No summary"
+msgstr "Ni povzetka"
+
+#: lib/Block/mytickets.php:60 lib/Block/myrequests.php:61
+msgid "No tickets are assigned to you."
+msgstr "Ni vam dodljenih prijav"
+
+#: lib/Whups.php:529
+msgid "No tickets matched your search criteria."
+msgstr "NI prijav ki bi ustrezale iskalnim pogojem."
+
+#: lib/Block/summary.php:74
+msgid "No tickets to display"
+msgstr "Ni prijav za priz"
+
+#: lib/Reports.php:88
+msgid "None"
+msgstr "Nič"
+
+#: templates/queryrenderer.inc:92 lib/Query.php:520
+msgid "Not"
+msgstr "Ne"
+
+#: query.php:77
+msgid "Not yet implemented."
+msgstr "Ni podprto"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Nastavitve javljanja"
+
+#: config/prefs.php.dist:108
+msgid "Only notify me of ticket changes from other users"
+msgstr "Javi mi samo če je prijava spremenjena od drugega uporabnika"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "Odprte prijeva po uporabnika"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "Odprte prijave po prioriteti"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "Odprte prijave po skupini"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "Odprte prijave po prijavitelju"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "Odprte prijave statusu"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "Odprte prijave tipu"
+
+#: templates/queryrenderer.inc:91 lib/Query.php:519
+msgid "Or"
+msgstr "Ali"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "Ostale nastavitve"
+
+#: templates/queryrenderer.inc:97 ticket/people.php:60 ticket/people.php:72
+#: lib/Whups.php:496 lib/Ticket.php:474 lib/Ticket.php:509 lib/Ticket.php:510
+#: lib/Ticket.php:512 lib/Ticket.php:596 lib/Forms/CreateTicket.php:187
+#: lib/Forms/CreateTicket.php:199
+msgid "Owners"
+msgstr "Zadolženi"
+
+#: lib/Whups.php:668
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Dokončno izbrišem %s?"
+
+#: ticket/update.php:22 ticket/people.php:21 ticket/type.php:17
+#: ticket/delete.php:17 ticket/queue.php:17 ticket/deleteAttachment.php:17
+msgid "Permission Denied"
+msgstr "Dostop zavrnjen"
+
+#: ticket/update.php:83 ticket/delete.php:44
+msgid "Permission Denied."
+msgstr "Dostop zavrnjen."
+
+#: runquery.php:35 query.php:29 lib/Query.php:894
+#, php-format
+msgid "Permission denied."
+msgstr "Dostop zavrnjen."
+
+#: lib/Admin.php:360 lib/Admin.php:402
+msgid "Priorities for this Type"
+msgstr "Prioritete za tip"
+
+#: templates/queryrenderer.inc:138 ticket/update.php:52 ticket/type.php:69
+#: ticket/queue.php:116 lib/Whups.php:493 lib/Ticket.php:466
+#: lib/Ticket.php:594 lib/Query.php:699 lib/Forms/CreateTicket.php:126
+#: config/prefs.php.dist:40
+msgid "Priority"
+msgstr "Prioriteta"
+
+#: templates/comment.inc:99
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Priorteta ⇒ %s"
+
+#: lib/Admin.php:537 lib/Admin.php:583 lib/Admin.php:606
+msgid "Priority Description"
+msgstr "Opis prioritete"
+
+#: lib/Admin.php:536 lib/Admin.php:561 lib/Admin.php:580 lib/Admin.php:603
+msgid "Priority Name"
+msgstr "Ime prioritete"
+
+#: query.php:153
+msgid "Query Builder"
+msgstr "Tvorec poizvedb"
+
+#: lib/Query.php:95
+msgid "Query Parameters"
+msgstr "Lastnosti poizvedve"
+
+#: runquery.php:77
+msgid "Query Results"
+msgstr "Rezultati poizvedbe"
+
+#: search.php:48 templates/queryrenderer.inc:107 lib/Whups.php:494
+#: lib/Ticket.php:463 lib/Ticket.php:575 lib/Ticket.php:579 lib/Query.php:682
+#: config/prefs.php.dist:41
+msgid "Queue"
+msgstr "Skupina"
+
+#: templates/comment.inc:107
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Skupina ⇒ %s"
+
+#: lib/Admin.php:106 lib/Admin.php:155 lib/Admin.php:214
+msgid "Queue Description"
+msgstr "Odpis skupine"
+
+#: lib/Admin.php:105 lib/Admin.php:134 lib/Admin.php:152 lib/Admin.php:211
+#: lib/Forms/CreateTicket.php:27 lib/Forms/CreateTicket.php:37
+msgid "Queue Name"
+msgstr "Ime skupine"
+
+#: ticket/queue.php:85 lib/Ticket.php:584 lib/Ticket.php:588
+#: lib/Forms/CreateTicket.php:77
+msgid "Queue Version"
+msgstr "Verzije skupine"
+
+#: admin.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Matrica Skupin/Tipov"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Matrica Skupin/Tipov"
+
+#: search.php:139
+#, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s, Summary: %s"
+msgstr "Skupina: %s, Prijava: %s, Kategorija: %s, Tip: %s, Povzetek: %s"
+
+#: lib/api.php:156 lib/api.php:700
+msgid "Queues"
+msgstr "Skupine"
+
+#: lib/Ticket.php:539
+#, fuzzy, php-format
+msgid "RESOLVED: %s"
+msgstr "REŠENA: %S"
+
+#: lib/Admin.php:786
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati to lastnost? Lahko povzroči probleme v podatkih."
+
+#: lib/Admin.php:610
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati to prioriteto? Lahko povzroči probleme v podatkih."
+
+#: lib/Query.php:885
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+"Resnično želite izbrisati to poizvedbo? Lahko povzroči probleme v podatkih."
+
+#: lib/Admin.php:218
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati to skupino? Lahko povzroči probleme v podatkih."
+
+#: lib/Admin.php:522
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati ta status? Lahko povzroči probleme v podatkih."
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati ta postavko? Lahko povzroči probleme v podatkih."
+
+#: ticket/delete.php:38
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Resnično želite izrisati to prijavo? Podatki bodo v celoti odstranjenih za "
+"vedno."
+
+#: lib/Admin.php:406
+msgid "Really delete this type? This may cause data problems!"
+msgstr "Resnično želite izbrisati ta tip? Lahko povzroči probleme v podatkih."
+
+#: lib/Admin.php:698
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+"Resnično želite izbrisati to verzijo? Lahko povzroči probleme v podatkih."
+
+#: search.php:169
+msgid "Refine Search"
+msgstr "Bolj točno iskanje"
+
+#: admin.php:922
+msgid "Reminders were sent."
+msgstr "Opomniki so bili poslani."
+
+#: lib/Admin.php:267
+msgid "Remove User"
+msgstr "Odstrani uproabnika"
+
+#: ticket/watch.php:48
+msgid "Remove Watcher"
+msgstr "Odstrani sleditelja"
+
+#: reports.php:22
+msgid "Reports"
+msgstr "Poročila"
+
+#: templates/queryrenderer.inc:99 lib/Ticket.php:599
+msgid "Requester"
+msgstr "Prijavitelj"
+
+#: lib/Whups.php:499 lib/Ticket.php:602 lib/Driver.php:162
+#: config/prefs.php.dist:45
+msgid "Resolved"
+msgstr "Rešena"
+
+#: lib/Admin.php:269
+msgid "Responsible Users"
+msgstr "Odgovorni uporabniki"
+
+#: ticket/update.php:76
+msgid "Restrict Comment to:"
+msgstr "Omeji komentarje na:"
+
+#: lib/Admin.php:170
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "Omeji prijave postavk na določen spisek?"
+
+#: templates/prevnext.inc:25
+msgid "Return to Search Results"
+msgstr "Vrni se na rezultate iskanja"
+
+#: lib/Whups.php:219
+msgid "S_et Queue"
+msgstr "Določi skupino"
+
+#: lib/Query.php:142
+msgid "Sa_ve Query"
+msgstr "Shrani poizvedbo"
+
+#: templates/searchresults.inc:94
+msgid "Save"
+msgstr "Shrani"
+
+#: lib/Query.php:817
+msgid "Save Query"
+msgstr "Shrani poizvedbo"
+
+#: templates/searchresults.inc:88
+msgid "Save these results as: "
+msgstr "Shrani rezultate kot: "
+
+#: lib/Query.php:774
+#, fuzzy, php-format
+msgid "Search %s Attribute"
+msgstr "Išči &s lastnost"
+
+#: lib/Query.php:777
+msgid "Search Attribute"
+msgstr "Išči lastnost"
+
+#: lib/Query.php:543 lib/Query.php:630
+msgid "Search Comments"
+msgstr "Išči komentar"
+
+#: lib/Query.php:541
+msgid "Search Owners"
+msgstr "Išči lastnike"
+
+#: lib/Query.php:542
+msgid "Search Requester"
+msgstr "Išči prijavitelja"
+
+#: search.php:164
+msgid "Search Results"
+msgstr "Rezltati iskanja"
+
+#: templates/prevnext.inc:21
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Rezltati iskanja: %s of %s"
+
+#: lib/Query.php:629
+msgid "Search Summary"
+msgstr "Povzetek iskanja"
+
+#: search.php:64 search.php:180 config/prefs.php.dist:67
+msgid "Search Tickets"
+msgstr "Išči prijave"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr "Iskanje počiščeno."
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr "Iskanja počiščena."
+
+#: config/prefs.php.dist:69
+msgid "Select the view to display after login:"
+msgstr "Izberi prgled ob prijavi:"
+
+#: admin.php:36
+msgid "Sen_d Reminders"
+msgstr "Pošlji opomnike"
+
+#: lib/Admin.php:797
+msgid "Send Reminders"
+msgstr "Pošlji opomnike"
+
+#: lib/Admin.php:808
+msgid "Send only for this list of ticket ids"
+msgstr "Pošlji opomnike samo za prijave številka (id):"
+
+#: ticket/queue.php:194 ticket/queue.php:203 ticket/queue.php:215
+msgid "Set Queue - Step 1"
+msgstr "Nastavi skupino - Korak 1"
+
+#: ticket/queue.php:195 ticket/queue.php:204
+msgid "Set Queue - Step 2"
+msgstr "Nastavi skupino - Korak 2"
+
+#: ticket/queue.php:205
+msgid "Set Queue - Step 3"
+msgstr "Nastavi skupino - Korak 3"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Nastavi skupino za %s"
+
+#: ticket/type.php:137 ticket/type.php:146
+msgid "Set Type - Step 1"
+msgstr "Nastavi tip - Korak 1"
+
+#: ticket/type.php:138
+msgid "Set Type - Step 2"
+msgstr "Nastavi tip - Korak 2"
+
+#: ticket/type.php:124
+#, php-format
+msgid "Set Type for %s"
+msgstr "Nastavi tipe za %s"
+
+#: lib/Whups.php:220
+msgid "Set _Type"
+msgstr "Nastavi tip"
+
+#: config/prefs.php.dist:126
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+"Prikaž komentarje v kronološkem vrsnem redu ali najnovejši naj bodo prvi?"
+
+#: config/prefs.php.dist:86
+msgid "Show ticket IDs in the summary view?"
+msgstr "Prikaži IDje prijav v pregledu povzetkov?"
+
+#: config/prefs.php.dist:78
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Prikaži svoje prijave v povzetku?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Enostaveno HTML poročilo"
+
+#: templates/searchresults.inc:113 templates/searchresults.inc:116
+#, php-format
+msgid "Sort by %s"
+msgstr "Razvrsti po %s"
+
+#: lib/Forms/CreateTicket.php:121 lib/Forms/CreateTicket.php:143
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Spam Zaščita"
+
+#: templates/queryrenderer.inc:130 ticket/update.php:49 ticket/type.php:68
+#: ticket/queue.php:115 lib/Whups.php:491 lib/Ticket.php:465
+#: lib/Ticket.php:593 lib/Query.php:694 config/prefs.php.dist:38
+msgid "State"
+msgstr "Status"
+
+#: templates/comment.inc:95
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Status ⇒ %s"
+
+#: lib/Admin.php:446 lib/Admin.php:495
+msgid "State Category"
+msgstr "Kategorija statusa"
+
+#: lib/Admin.php:445 lib/Admin.php:492 lib/Admin.php:518
+msgid "State Description"
+msgstr "Opis statusa"
+
+#: lib/Admin.php:444 lib/Admin.php:470 lib/Admin.php:489 lib/Admin.php:515
+msgid "State Name"
+msgstr "Ime statusa"
+
+#: lib/Admin.php:350 lib/Admin.php:398
+msgid "States for this Type"
+msgstr "Statusi za tip"
+
+#: lib/Forms/CreateTicket.php:127 config/prefs.php.dist:37
+msgid "Subject"
+msgstr "Naslov"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Ime postavke"
+
+#: lib/Admin.php:174
+msgid "Subjects associated with this Queue"
+msgstr "Postavka povezana k tej skupini"
+
+#: ticket/create.php:102
+msgid "Submit"
+msgstr "Pošlji"
+
+#: admin.php:161
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Uspešno podvojen %s v %s."
+
+#: ticket/type.php:115
+msgid "Successfully changed ticket type."
+msgstr "Uspešno spremenjen tip prijave"
+
+#: templates/queryrenderer.inc:102 ticket/update.php:46 ticket/delete.php:34
+#: lib/Whups.php:490 lib/Ticket.php:473 lib/Ticket.php:488 lib/Ticket.php:489
+#: lib/Ticket.php:491 lib/Ticket.php:573
+msgid "Summary"
+msgstr "Povzetek"
+
+#: templates/comment.inc:49
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Povzetek ⇒ %s"
+
+#: search.php:50
+msgid "Summary like"
+msgstr "Povzetek podoben"
+
+#: templates/comment.inc:71
+#, php-format
+msgid "Taken from %s"
+msgstr "Vzet iz %s"
+
+#: lib/Query.php:627
+msgid "Text"
+msgstr "Besedilo"
+
+#: view.php:44 lib/Ticket.php:339 lib/Ticket.php:377
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "VFS vir podatkov mora biti nastavljen če želite uporabljati priponke"
+
+#: admin.php:811
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Lastnost \"%s\" je bila dodana k %s"
+
+#: admin.php:893
+msgid "The attribute has been deleted."
+msgstr "Lastnost je bila zbrisana."
+
+#: admin.php:864
+msgid "The attribute has been modified."
+msgstr "Lastnost je bila spremenjena."
+
+#: admin.php:898
+msgid "The attribute was not deleted."
+msgstr "Lastnost ni bila izbisana."
+
+#: admin.php:449
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Prioriteta \"%s\" je bila dodana k %s."
+
+#: admin.php:530
+msgid "The priority has been deleted."
+msgstr "Prioriteta je bila izbrisana."
+
+#: admin.php:502
+msgid "The priority has been modified."
+msgstr "Prioriteta je bila spremenjena."
+
+#: admin.php:535
+msgid "The priority was not deleted."
+msgstr "Prioriteta ni bila izbrisana."
+
+#: lib/Query.php:898
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "POizvedbe \"%s\" ni mogoče izbrisati: %s"
+
+#: lib/Query.php:900
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "Poizvedba \"%s\" je bila izbrisana."
+
+#: lib/Query.php:865
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "Poizvedba ne more biti naložena:"
+
+#: admin.php:240
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "Skupina \"%s\" je bila tvorjena."
+
+#: admin.php:318
+msgid "The queue has been deleted."
+msgstr "Skupina \"%s\" je bila izbrisana."
+
+#: admin.php:290
+msgid "The queue has been modified."
+msgstr "Skupina je bila spremenjena."
+
+#: admin.php:323
+msgid "The queue was not deleted."
+msgstr "Skupina je ni bila izbrisana."
+
+#: lib/MIME/Viewer/zip.php:60
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "zahtevana priponka ne obstaja v ZIP datoteki."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "Zahtevana šablona ne obstaja."
+
+#: admin.php:338
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Status \"%s\" je bil dodan k %s."
+
+#: admin.php:421
+msgid "The state has been deleted."
+msgstr "Status je bil izbrisan."
+
+#: admin.php:392
+msgid "The state has been modified."
+msgstr "Status je bil spremenjen."
+
+#: admin.php:426
+msgid "The state was not deleted."
+msgstr "Status ni bil izbrisan."
+
+#: admin.php:625
+#, php-format
+msgid "The subject \"%s\" has been added."
+msgstr "Postavka \"%s\" je bila dodana."
+
+#: admin.php:681
+msgid "The subject has been deleted."
+msgstr "Postavka je bila izbrisana."
+
+#: admin.php:662
+msgid "The subject has been modified."
+msgstr "Postavka je bila spremenjena."
+
+#: admin.php:686
+msgid "The subject was not deleted."
+msgstr "Postavka ni bila izbrisana."
+
+#: ticket/delete.php:75
+msgid "The ticket was not deleted."
+msgstr "Prijava ni bila izbrisana."
+
+#: admin.php:179
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Tip \"%s\" je bil spremenjen."
+
+#: admin.php:221
+msgid "The type has been deleted."
+msgstr "Tip je bil izbrisan."
+
+#: admin.php:226
+msgid "The type was not deleted."
+msgstr "Tip ni bil izbrisan."
+
+#: admin.php:701
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Verzija \"%s\" has je vila dodana k %s."
+
+#: admin.php:783
+msgid "The version has been deleted."
+msgstr "Verzija je bila izbrisana."
+
+#: admin.php:755
+msgid "The version has been modified."
+msgstr "Verzija je bila spremenjena."
+
+#: admin.php:788
+msgid "The version was not deleted."
+msgstr "Verzija ni bila izbrisana."
+
+#: lib/Admin.php:733
+msgid "There are no attribute types to edit"
+msgstr "Ni lastnosti tipa za urejanje"
+
+#: lib/Query.php:777
+msgid "There are no attributes defined for the current type"
+msgstr "Ni nastavljenih lastnosti za trenutni tip"
+
+#: lib/Admin.php:557
+msgid "There are no priorities to edit"
+msgstr "Ni prioritet za urejanje"
+
+#: lib/Admin.php:805
+msgid "There are no queues available."
+msgstr "Ni skupin na voljo."
+
+#: lib/Admin.php:131
+msgid "There are no queues to edit"
+msgstr "Ni skupin za urejanja"
+
+#: lib/Forms/CreateTicket.php:27
+msgid "There are no queues which you can create tickets in."
+msgstr "Ni skupin v katerih lahko tvorite prijave."
+
+#: search.php:42
+msgid "There are no queues which you can search."
+msgstr "Ni skupin v katerih bi lahko iskali."
+
+#: lib/Admin.php:466
+msgid "There are no states to edit"
+msgstr "Ni statusov za urejanje"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "Ni postavk za urejanje."
+
+#: lib/Forms/CreateTicket.php:61
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Ni tipov povezanih s to skupino; dokler niso, ne morete tvoriti prijav v "
+"njej."
+
+#: lib/Admin.php:321
+msgid "There are no types to edit"
+msgstr "Ni tipov za urejanje"
+
+#: lib/Admin.php:283
+msgid "There are no users responsible for this queue."
+msgstr "Ni odgovorih za to skupino."
+
+#: ticket/people.php:71 lib/Forms/CreateTicket.php:198
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Ni odgovornih katerim bi lahko dodelili prijavo."
+
+#: lib/Admin.php:645
+msgid "There are no versions to edit"
+msgstr "Ni verzij za urejanje."
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "Ni podatkov za pripravo grafa."
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "Ni podatkov za pripravo poročila.s"
+
+#: admin.php:569
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\": %s"
+msgstr "Prišlo je do napake pri dodajanju \"%s\" med odgovorne za \"%s\": %s"
+
+#: admin.php:627
+#, php-format
+msgid "There was an error adding the subject: %s."
+msgstr "Prišlo je do napake pri dodajanju postavke: %s."
+
+#: admin.php:814
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "Prišlo je do napake pri dodajanju atributa: %s."
+
+#: admin.php:451
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "Prišlo je do napake pri tvorjenju prioritete: %s"
+
+#: admin.php:248
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "Prišlo je do napake pri tvorjenju skupine: %s."
+
+#: admin.php:340
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "Prišlo je do napake pri tvorjenju statusa: %s"
+
+#: admin.php:703
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "Prišlo je do napake pri tvorjenju verzije: %s"
+
+#: admin.php:895
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "Prišlo je do napake pri izbrisu lastnosti: %s"
+
+#: admin.php:532
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "Prišlo je do napake pri izbrisu prioritete: %s"
+
+#: admin.php:320
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "Prišlo je do napake pri izbrisu statusa: %s"
+
+#: admin.php:423
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "Prišlo je do napake pri izbrisu statusa: %s"
+
+#: admin.php:683
+#, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr "Prišlo je do napake pri brisanju postavke: %s."
+
+#: ticket/delete.php:72
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "Prišlo je do napake pri izbrisu priajve: %s"
+
+#: admin.php:223
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "Prišlo je do napake pri izbrisu tipa: %s"
+
+#: admin.php:785
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "Prišlo je do napake pri urejanju verzije: %s"
+
+#: admin.php:871
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "Prišlo je do napake pri urejanju lastnosti: %s"
+
+#: admin.php:507
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "Prišlo je do napake pri urejanju prioritete: %s"
+
+#: admin.php:304
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "Prišlo je do napake pri urejanju skupine: %s."
+
+#: admin.php:397
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "Prišlo je do napake pri urejanju statusa: %s"
+
+#: admin.php:667
+#, php-format
+msgid "There was an error editing the subject: %s."
+msgstr "Prišlo je do napake pri urejanju posavke: %s."
+
+#: admin.php:760
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "Prišlo je do napake pri urejanju verzije: %s"
+
+#: lib/Admin.php:243
+#, fuzzy, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Prišlo je do napake pri branju spiska uporabnikov: %s."
+
+#: admin.php:177
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "Prišlo je do napake pri spreminjanju tipa: %s"
+
+#: search.php:158
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Prišlo je do napake pri izvjanju iskanja: %s"
+
+#: admin.php:605
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\": %s"
+msgstr "Prišlo je do napake brisanju \"%s\" iz spiska odgovornih za \"%s\": %s"
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Ni rezultatov iskanja v tej šabloni."
+
+#: lib/Admin.php:57
+msgid "This is not a valid subject."
+msgstr "Ni veljavne postavke."
+
+#: ticket/queue.php:80 lib/Forms/CreateTicket.php:72
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"Te skupine zahtevajo določitev veruije, ampak ni vezij povezanih z njimi."
+"Dokler niso ne morete tvorit prijav v njih."
+
+#: lib/Ticket.php:485
+msgid "Ticket"
+msgstr "Prijava"
+
+#: ticket/delete.php:68
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Prijava %d je bila izbrisana."
+
+#: lib/api.php:746
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Prijava %s - %s"
+
+#: lib/Driver/sql.php:869
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Ne najdem prijave %s"
+
+#: search.php:49
+msgid "Ticket ID"
+msgstr "Priajva Št."
+
+#: lib/Forms/CreateTicket.php:125
+msgid "Ticket State"
+msgstr "Satus prijave"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Prijava oddana"
+
+#: lib/Block/summary.php:3
+msgid "Ticket Summary"
+msgstr "Povzetek prijave"
+
+#: lib/Forms/CreateTicket.php:66
+msgid "Ticket Type"
+msgstr "Tip prijave"
+
+#: lib/Admin.php:158
+msgid "Ticket Types associated with this Queue"
+msgstr "Tip prijav povezani s to skupino"
+
+#: lib/Ticket.php:481
+#, php-format
+msgid "Ticket URL: %s\n"
+msgstr "Podrobnosti prijave: %s\n"
+
+#: ticket/update.php:137
+msgid "Ticket Updated"
+msgstr "Prijava žurirana"
+
+#: lib/api.php:767
+msgid "Tickets"
+msgstr "Prijave"
+
+#: lib/Block/summary.php:51
+msgid "Tickets assigned to you"
+msgstr "Tebi dodeljene prijave"
+
+#: search.php:52
+msgid "Tickets which are"
+msgstr "Prijave so"
+
+#: lib/Block/summary.php:68
+msgid "Tickets you requested"
+msgstr "Od vas oddane prijave"
+
+#: templates/queryrenderer.inc:121 ticket/queue.php:88 lib/Whups.php:492
+#: lib/Ticket.php:467 lib/Ticket.php:592 lib/Query.php:674
+#: config/prefs.php.dist:39
+msgid "Type"
+msgstr "Tip"
+
+#: templates/comment.inc:103
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Tip ⇒ %s"
+
+#: lib/Admin.php:301 lib/Admin.php:345 lib/Admin.php:394
+msgid "Type Description"
+msgstr "Opis tipa"
+
+#: lib/Admin.php:300 lib/Admin.php:324 lib/Admin.php:342 lib/Admin.php:391
+msgid "Type Name"
+msgstr "Ime tipa"
+
+#: search.php:55
+msgid "Types"
+msgstr "Tipi"
+
+#: lib/Ticket.php:597
+msgid "Unassigned"
+msgstr "Nedodeljena"
+
+#: lib/Admin.php:816
+msgid "Unassigned tickets"
+msgstr "Nedodljene prijave"
+
+#: lib/Driver.php:159
+msgid "Unconfirmed"
+msgstr "Nepotrjene"
+
+#: templates/queryrenderer.inc:148 templates/queryrenderer.inc:188
+#, php-format
+msgid "Unknown node type %s"
+msgstr "Neznan vozel prijave %s"
+
+#: templates/comment.inc:84 lib/api.php:714
+msgid "Update"
+msgstr "Ažuriraj"
+
+#: ticket/update.php:153
+#, php-format
+msgid "Update %s"
+msgstr "Ažuriraj %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Ažuriraj povezavo"
+
+#: ticket/people.php:134
+#, php-format
+msgid "Update People for %s"
+msgstr "Ažuriraj odgovorne za %s"
+
+#: lib/Ticket.php:472 lib/Ticket.php:486
+msgid "Updated By"
+msgstr "Spremenjena od"
+
+#: lib/Admin.php:242 lib/Admin.php:252 lib/Admin.php:255
+msgid "User"
+msgstr "Uporabnik"
+
+#: lib/Query.php:539
+msgid "User ID"
+msgstr "Uporabnik"
+
+#: lib/Admin.php:184
+msgid "Users responsible for this Queue"
+msgstr "Uporabiki odgovorni za to kupino"
+
+#: lib/Admin.php:287
+msgid "Users responsible for this queue"
+msgstr "Uporabiki odgovorni za to kupino"
+
+#: templates/queryrenderer.inc:115 lib/Whups.php:495 lib/Ticket.php:464
+#: lib/Query.php:686 config/prefs.php.dist:42
+msgid "Version"
+msgstr "Verzija"
+
+#: lib/Admin.php:625 lib/Admin.php:671 lib/Admin.php:694
+msgid "Version Description"
+msgstr "Opis verzije"
+
+#: lib/Admin.php:624 lib/Admin.php:649 lib/Admin.php:668 lib/Admin.php:691
+msgid "Version Name"
+msgstr "Ime verzije"
+
+#: templates/reports/graphs.inc:13
+msgid "View Graphs"
+msgstr "Preglej grafe"
+
+#: ticket/people.php:91 ticket/type.php:46 ticket/queue.php:51
+#: lib/Forms/AddComment.php:38
+msgid "Viewable only by members of"
+msgstr "Prikazani samo člani od"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Sledi tej prijavi"
+
+#: ticket/watch.php:76
+#, php-format
+msgid "Watchers for %s"
+msgstr "Sleditelji prijave %s"
+
+#: config/prefs.php.dist:95
+msgid "Weekday Day Month"
+msgstr "Dan v tednu, Dan, Mesec"
+
+#: config/prefs.php.dist:96
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Dan v tednu, Dan, Mesec UU:MM::SS TZ"
+
+#: ticket/delete.php:37 lib/Admin.php:90 lib/Admin.php:217 lib/Admin.php:405
+#: lib/Admin.php:521 lib/Admin.php:609 lib/Admin.php:697 lib/Admin.php:785
+#: lib/Query.php:884
+msgid "Yes"
+msgstr "Da"
+
+#: view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr "Nimate pravic za pogled te prijave."
+
+#: lib/Driver/sql.php:872
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Nimate pravic za dostop do prijave (%s)."
+
+#: lib/Query.php:854
+msgid "You have no saved queries."
+msgstr "Nimate shranjenih poizvedb."
+
+#: lib/Whups.php:523
+msgid "You must select at least one queue to send reminders for."
+msgstr "Izbrati morate vsaj eno skupino za poslati oponike."
+
+#: lib/Forms/CreateTicket.php:119 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "Vaš elektronski naslov"
+
+#: ticket/create.php:157
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+"Vaša prijava št. ID je %s. Ustrezena odgovorna oseba je bila obveščena o tem "
+"zahtevku."
+
+#: lib/Whups.php:588
+msgid "_Admin"
+msgstr "Administracija"
+
+#: lib/Whups.php:212
+msgid "_Comment"
+msgstr "Komentar"
+
+#: lib/Whups.php:221
+msgid "_Delete"
+msgstr "Izbriši"
+
+#: lib/Query.php:145
+msgid "_Delete Query"
+msgstr "Izbriši poizvedbo"
+
+#: lib/Query.php:126
+msgid "_Edit Query"
+msgstr "Uredi poizvedbo"
+
+#: admin.php:32
+msgid "_Edit Queues"
+msgstr "Uredi skupine"
+
+#: query.php:137
+msgid "_Group Criteria"
+msgstr "Skupine"
+
+#: lib/Query.php:139
+msgid "_Load Query"
+msgstr "Naloži poizvedbo"
+
+#: lib/Whups.php:577
+#, php-format
+msgid "_My %s"
+msgstr "Moje %s"
+
+#: lib/Whups.php:580
+msgid "_New Ticket"
+msgstr "Tvori prijavo"
+
+#: lib/Whups.php:215
+msgid "_People"
+msgstr "Odgovorni"
+
+#: query.php:135
+msgid "_Property Criteria"
+msgstr "Osnovno"
+
+#: lib/Whups.php:582
+msgid "_Query Builder"
+msgstr "Tvorec poizvedb"
+
+#: lib/Whups.php:584
+msgid "_Reports"
+msgstr "Poročila"
+
+#: lib/Whups.php:579
+msgid "_Search"
+msgstr "Išči"
+
+#: query.php:139
+msgid "_Text Criteria"
+msgstr "Opis"
+
+#: lib/Whups.php:210
+msgid "_Update"
+msgstr "Ažuriraj"
+
+#: query.php:136
+msgid "_User Criteria"
+msgstr "Uporabniki"
+
+#: lib/Whups.php:213
+msgid "_Watch"
+msgstr "Sledi"
+
+#: templates/queryrenderer.inc:168
+msgid "contains (case insensitive) substring"
+msgstr "vsebuje zvezo (neobčutljivo na velike/male)"
+
+#: templates/queryrenderer.inc:172
+msgid "contains (case sensitive) substring"
+msgstr "vsebuje zvezo (občutljivo na velike/male)"
+
+#: templates/queryrenderer.inc:176
+msgid "contains the word"
+msgstr "vsebuje besede"
+
+#: scripts/mail-filter.php:176
+#, php-format
+msgid "error processing message: %s"
+msgstr "napaka v procesiranju sporočila: %s"
+
+#: lib/api.php:755
+msgid "estimated time"
+msgstr "predviden čas"
+
+#: templates/queryrenderer.inc:164
+msgid "is"
+msgstr "je"
+
+#: templates/queryrenderer.inc:156
+msgid "is greater than"
+msgstr "je večji od"
+
+#: templates/queryrenderer.inc:160
+msgid "is less than"
+msgstr "je manjši od"
+
+#: templates/queryrenderer.inc:180
+msgid "matches the pattern"
+msgstr "ustreza primerjavi"
--- /dev/null
+# Turkish translations for Whups package
+# whups paketi için Türkçe çeviriler.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Akif Dinc <akif@dinc.org>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups H3 (2.0-cvs)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-10-30 16:08+0100\n"
+"PO-Revision-Date: 2008-10-31 18:30+0100\n"
+"Last-Translator: Akif Dinc <akif@dinc.org>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" artýk \"%s\" sorumlular arasýna girmiyor"
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#Id"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d þahýs takip ediyor, %d þahýs sorumlu"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s bilet var %s'de"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "tüm kuyruklarda %s %s bilet var"
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:497
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) dediki:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s \"%s\" için sorumlulara eklenmiþtir"
+
+#: templates/reports/stats.inc:15
+#, php-format
+msgid "%s days"
+msgstr "%s gün"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s bilet var %s'de"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "Tüm kuyruklarda %s bilet var"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "bu bilet güncelleþtirildiðinde %s bilgilendirilecektir"
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s'ye güncelleþtirme bilgileri artýk iletilmiyecektir"
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- 1 Basamak"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- 2 Basamak"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<Birinci"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<Bir Önce"
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "%s eriþim engellendi"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Öznitelik Ekle"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr "Öznitelik Kriteri Ekle"
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Ýçerik Ekle"
+
+#: query/index.php:233
+msgid "Add Criterion"
+msgstr "Kriter Ekle"
+
+#: lib/Forms/Query.php:320
+msgid "Add Date Criterion"
+msgstr "Tarih Kriteri Ekle"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr "Grup Kriteri Ekle"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Öncelik Ekle"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr "Öncelik Kriteri Ekle"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Kuyruk Ekle"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Durum Ekle"
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr "Yazý Kriteri Ekle"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Tür Ekle"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "%s Tür Ekle"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr "Kullanýcý Kriteri Ekle"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Kullanýcý Ekle"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Sürüm Ekle"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "Takip Eden Ekle"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Kaynak Ekle"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Biletinizi eklerken hata oldu: %s."
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Adres Rehberi"
+
+#: admin/index.php:54 lib/api.php:775
+msgid "Administration"
+msgstr "Yönetim"
+
+#: lib/Forms/Query.php:24 lib/Renderer/Query.php:77
+msgid "And"
+msgstr "Ve"
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:32
+msgid "Any"
+msgstr "Herhangi"
+
+#: ticket/type.php:42 ticket/queue.php:48
+msgid "Any Group"
+msgstr "Herhangi Bir Grup"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Artarak"
+
+#: lib/api.php:795
+msgid "Assign"
+msgstr "Atama"
+
+#: lib/Whups.php:688 lib/api.php:913 lib/Driver.php:198 lib/Ticket.php:986
+#: lib/Renderer/Query.php:156 config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Atanmýþ"
+
+#: lib/Forms/Query.php:333 lib/Forms/Search.php:62
+msgid "Assigned from"
+msgstr "Tarafýndan atanmýþ"
+
+#: lib/Forms/Query.php:334
+msgid "Assigned to"
+msgstr "Kiþiye Atanmýþ"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "%s kullnýcýya atanmýþ"
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr ""
+
+#: lib/Forms/AddComment.php:24 lib/Forms/EditTicket.php:126
+#: lib/Forms/CreateTicket.php:153
+msgid "Attachment"
+msgstr "Ek"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Eki olan %s silindi."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Ek olan %s bulunamadý"
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Ekler"
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr "Öz_nitelik Kriteri"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Öznitelik %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Öznitelik Tanýmý"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Öznitelik Adý"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Öznitelik Türü"
+
+#: lib/Forms/Search.php:20
+msgid "Attributes"
+msgstr "Öznitelikler"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "Bu Türe Öznitelikler"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Biletlerin içeriðinde diðer biletler ile link kurulsun mu?"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Mevcut Adresreberleri:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Mevcut kuyruklar:"
+
+#: reports.php:24
+msgid "Average days to close by Owner"
+msgstr ""
+
+#: reports.php:26
+msgid "Average days to close by Queue"
+msgstr ""
+
+#: reports.php:25
+msgid "Average days to close by Requester"
+msgstr "baþvuruculara göre kapatýlmasý için ortalama günler"
+
+#: reports.php:29
+msgid "Average time a ticket is unresolved"
+msgstr "Ortalama cözülmemiþ bilet zamaný"
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr "Þube Türü"
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr ""
+
+#: lib/Query.php:164
+msgid "Case Insensitive Substring"
+msgstr ""
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Deðiþ"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+"Görüntüleme ayarlarýný deðiþ, örneðin arama sonuçlarý nasýl kaydedilecek"
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Bilet aktivitelerinin eposta bildirme ayarlarýný deðiþ."
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr "Eylem Seç:"
+
+#: lib/Query.php:678
+msgid "Choose New Query instead of deleting the root node."
+msgstr "Kök düðümü silmektense yeni bir sorgulama seç."
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "Seç:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "TariheGöre (en eski ilk)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr "Klonla"
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr "Tanýmlamayý Klonla"
+
+#: admin/index.php:151 lib/Forms/Admin/Type.php:36
+msgid "Clone Type"
+msgstr "Türünü Klonla"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Virgülle ayrýlmýþ deðerler (CSV dosyasý)"
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Forms/AddComment.php:23
+#: lib/Forms/EditTicket.php:131 lib/Renderer/Query.php:88
+msgid "Comment"
+msgstr "Yorum"
+
+#: lib/Renderer/Comment.php:159
+#, php-format
+msgid "Comment #%d"
+msgstr "Yorum #%d"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d (Private)"
+msgstr "Yorum #%d (Gizli)"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "Yorum eklendi"
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr "%s'de yorum ekle"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "Yorumlayýcý"
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr "%s'nin kopyasý"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr ""
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "Herhangi bir grup bulunamadý."
+
+#: lib/Mail.php:101
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "\"%s\" bilet bulunamadý."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "Varsayýlan Durumu Oluþtur"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Bilet Oluþtur"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "Bilet Oluþtur - 1 Adým"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "Bilet Oluþtur - 2 Adým"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "Bilet Oluþtur - 3 Adým"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "Bilet Oluþtur - 4 Adým"
+
+#: lib/Whups.php:686 lib/api.php:918 lib/Ticket.php:971
+#: lib/Renderer/Query.php:141 config/prefs.php.dist:52
+msgid "Created"
+msgstr "Oluþturulma"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Tarafýndan Oluþturuldu"
+
+#: lib/Forms/Query.php:324 lib/Forms/Search.php:56
+msgid "Created from"
+msgstr "Tarihinden beri oluþturulmuþ"
+
+#: lib/Forms/Query.php:325
+msgid "Created to"
+msgstr "Tarihine kadar oluþturulmuþ"
+
+#: query/index.php:223 query/index.php:240
+msgid "Current Query"
+msgstr "Mevcut Sorgulama"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Mevcut Bilet Türü"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Arama sonuçlarý için Tarih / Zaman biçimi"
+
+#: lib/Forms/Search.php:55
+msgid "Dates"
+msgstr "Veriler"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Standart Bilet Türü"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Standart sýralama kriteri:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Standart sýralama yönü:"
+
+#: query/index.php:163
+msgid "Delete"
+msgstr "Sil"
+
+#: lib/Whups.php:870 lib/Whups.php:871
+#, php-format
+msgid "Delete %s"
+msgstr "Sil %s"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "%s silinsin mi?"
+
+#: admin/index.php:947 lib/Forms/Admin/Attribute.php:57
+msgid "Delete Attribute"
+msgstr "Özniteliði Sil"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "Özniteliði Silme Onayý"
+
+#: admin/index.php:1082 lib/Forms/Admin/Reply.php:36
+msgid "Delete Form Reply"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr ""
+
+#: admin/index.php:589 lib/Forms/Admin/Priority.php:36
+msgid "Delete Priority"
+msgstr "Öncelik Sil"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "Öncelik Silinmesi Onayý"
+
+#: lib/Forms/Query.php:447
+msgid "Delete Query?"
+msgstr "Sorgulama Silinsin Mi?"
+
+#: admin/index.php:332 lib/Forms/Admin/Queue.php:44
+msgid "Delete Queue"
+msgstr "Kuyruk Sil"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "Kuyruðu Silme Onayý"
+
+#: admin/index.php:454 lib/Forms/Admin/State.php:35
+msgid "Delete State"
+msgstr "Durum Sil"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "Durum Silme Onayý"
+
+#: admin/index.php:145 lib/Forms/Admin/Type.php:37
+msgid "Delete Type"
+msgstr "Türü Sil"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "Tür Silme Onayý"
+
+#: admin/index.php:816 lib/Forms/Admin/Version.php:36
+msgid "Delete Version"
+msgstr "Sürümü Sil"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "Sürümü Silme Onayý"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Eklentiyi Sil"
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Eklentiyi Sil: %s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Azalarak"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "Betimleme"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Görüntüleme Seçenekleri"
+
+#: lib/Whups.php:861
+msgid "Download"
+msgstr "Ýndir"
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr ""
+
+#: lib/api.php:922 lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976
+#: lib/Renderer/Query.php:161
+msgid "Due"
+msgstr "Vadesi"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:74 lib/Forms/CreateTicket.php:151
+msgid "Due Date"
+msgstr "Vadesi"
+
+#: lib/Forms/Query.php:336 lib/Forms/Search.php:64
+msgid "Due from"
+msgstr ""
+
+#: lib/Forms/Query.php:337
+msgid "Due to"
+msgstr ""
+
+#: lib/Query.php:230
+msgid "E_xecute Query"
+msgstr "Sorgulamayý _Yürüt"
+
+#: query/index.php:164
+msgid "Edit"
+msgstr "Düzenle"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr "Düzenle %s"
+
+#: admin/index.php:942 lib/Forms/Admin/Attribute.php:57
+#: lib/Forms/Admin/Attribute.php:86
+msgid "Edit Attribute"
+msgstr "Özniteliði Düzenle"
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "Öznitelikleri Düzenle"
+
+#: lib/Forms/Query.php:320
+msgid "Edit Date Criterion"
+msgstr "Tarih Kriterini Düzenle"
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr ""
+
+#: admin/index.php:1077 lib/Forms/Admin/Reply.php:36
+#: lib/Forms/Admin/Reply.php:64
+msgid "Edit Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr "Grup Kriterlerini Düzenle"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr ""
+
+#: admin/index.php:584 lib/Forms/Admin/Priority.php:36
+#: lib/Forms/Admin/Priority.php:59
+msgid "Edit Priority"
+msgstr "Önceliði Düzenle"
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr ""
+
+#: admin/index.php:326 lib/Forms/Admin/Queue.php:44
+#: lib/Forms/Admin/Queue.php:47
+msgid "Edit Queue"
+msgstr "Kuyruðu Düzenle"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Kuyruklarý Düzenle"
+
+#: admin/index.php:449 lib/Forms/Admin/State.php:35
+#: lib/Forms/Admin/State.php:56
+msgid "Edit State"
+msgstr "Durumu Düzenle"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "Durumlarý Düzenle"
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr ""
+
+#: admin/index.php:139 lib/Forms/Admin/Type.php:35
+msgid "Edit Type"
+msgstr "Türünü Düzenle"
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr "Kullanýcý Kriterlerini Düzenle"
+
+#: admin/index.php:811 lib/Forms/Admin/Version.php:36
+#: lib/Forms/Admin/Version.php:59
+msgid "Edit Version"
+msgstr "Sürümü Düzenle"
+
+#: lib/Query.php:226
+msgid "Edit _Permissions"
+msgstr "Ýzinlemeleri _Dzenle"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "Türleri Dü_zenle"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Öznitelikleri Düzenle veya Sil"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Kuyruðu Düzenle veya Sil"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Durumu Düzenle veya Sil"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Türünü Düzenle veya Sil"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Sürümünü Düzenle veya Sil"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr ""
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "Bildirilmesi istenen eposta adres"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "Silinmesi istenen eposta adres"
+
+#: lib/api.php:504
+msgid "Empty attachment"
+msgstr "Boþ ek"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr ""
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr ""
+
+#: lib/Query.php:163
+msgid "Exact Match"
+msgstr "Tam Uyum"
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr "Sorgulamayý Yürüt"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr ""
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Durumuna uyan biletler"
+
+#: lib/api.php:806
+msgid "Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr ""
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "Genel Seçenekler"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Git"
+
+#: lib/Forms/EditTicket.php:114 lib/Forms/CreateTicket.php:232
+msgid "Group Owners"
+msgstr "Grup Sahipleri"
+
+#: lib/Forms/Query.php:98 lib/Forms/Query.php:100 lib/Renderer/Query.php:85
+msgid "Groups"
+msgstr "Gruplar"
+
+#: lib/api.php:778
+msgid "Hidden Comments"
+msgstr "Gizli Yorumlar"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "Geçmiþ"
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr ""
+
+#: lib/Whups.php:671 lib/Whups.php:678 lib/Forms/Query.php:171
+#: lib/Renderer/Query.php:83 config/prefs.php.dist:45
+msgid "Id"
+msgstr "Id"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr "Atanmamýþ bilet seçtiðinizde, kime eposta gönderelim?"
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr "Ve (AND) Ekle"
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr "Þube Ekle"
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr "Hayýr (NOT) Ekle"
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr "Veya (OR) Ekle"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Geçersiz Kuyruk"
+
+#: lib/Whups.php:265 lib/api.php:495
+msgid "Invalid Ticket Id"
+msgstr "Geçersiz Bilet Id'si"
+
+#: lib/api.php:548
+msgid "Invalid argument: Missing attribute name or value."
+msgstr ""
+
+#: lib/api.php:533
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Geçersiz kuyruk"
+
+#: search/rss.php:30
+msgid "Invalid search"
+msgstr "Geçersiz arama"
+
+#: lib/api.php:397
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Geçersiz bilet verileri sunuldu: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr ""
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "Son>>"
+
+#: lib/Forms/Query.php:411
+msgid "Load Query"
+msgstr "Sorgulamayý Yükle"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Yükleniyor..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "AA/GG/YY"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "AA/GG/YY SS:DD:SS"
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr "%s'i klonla"
+
+#: lib/Forms/AddComment.php:38 lib/Forms/EditTicket.php:167
+msgid "Make this comment visible only to members of a group?"
+msgstr "Bu yorum sadece üyesi olan gruplara mý gösterilsin?"
+
+#: lib/Forms/Query.php:274
+msgid "Match"
+msgstr "Eþleþen"
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:275
+msgid "Match Operator"
+msgstr ""
+
+#: lib/Query.php:167
+msgid "Match Pattern"
+msgstr "Eþleþen Örüntü"
+
+#: lib/Query.php:166
+msgid "Match Word"
+msgstr "Eþleþen Kelime"
+
+#: reports.php:30
+msgid "Maximum time a ticket is unresolved"
+msgstr "En çok iþgal etmiþ açýk bilet zamaný"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr ""
+
+#: reports.php:31
+msgid "Minimum time a ticket is unresolved"
+msgstr "En az iþgal etmiþ açýk bilet zamaný"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "En sonu ilk yap"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Aþaðý indir"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Yukarý çýkar"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "%d biletini \"%s\" aktar"
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Benim %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Benim %s :: Ýçerik Ekle"
+
+#: search.php:178 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Benim Sorgulamalarým"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "Benim Baþvurularým "
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Benim Biletlerim"
+
+#: lib/api.php:884
+msgid "My tickets by assignment date"
+msgstr ""
+
+#: lib/api.php:883
+msgid "My tickets by creation date"
+msgstr ""
+
+#: lib/api.php:885
+msgid "My tickets by due date"
+msgstr ""
+
+#: lib/api.php:886
+msgid "My tickets by resolution date"
+msgstr ""
+
+#: lib/Forms/Query.php:422
+msgid "Name"
+msgstr "Ad"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr "Klonlanmýþ kopyanýn adý"
+
+#: lib/Query.php:216
+msgid "Ne_w Query"
+msgstr "Ye_ni Sorgulama"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Yeni"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Yeni Ek"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Yeni Ek: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "Yeni Kuyruk"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Yeni Bilet"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Yeni Tür"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Sonra>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Queue.php:174
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Type.php:176
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+msgid "No"
+msgstr ""
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "Kaydedilmiþ sorgulamalar yok"
+
+#: lib/Block/query.php:62 lib/Driver/sql.php:553
+msgid "No query to run"
+msgstr "Ýþlenebilineçek sorgulamalar yok"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Kullanýlabileçek sorgulamalar yok"
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+"Bu bilet için durum yok ve varsayýlan durumda bu bilet türü olan\"%s\" için "
+"belirlenmemiþ."
+
+#: reports.php:35
+msgid "No stats available."
+msgstr "Mevcut istatistik yok"
+
+#: lib/Driver.php:533
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr ""
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr ""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Size atanmýþ bilet yok"
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Atanmamýþ bilet yok!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Kuyrukta bilet yok."
+
+#: lib/Whups.php:720
+msgid "No tickets matched your search criteria."
+msgstr "Arama kriterlerinize uyan bilet yok."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:67
+msgid "None"
+msgstr "Hiç"
+
+#: lib/Forms/Query.php:26 lib/Renderer/Query.php:79
+msgid "Not"
+msgstr "Hayýr"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Bilgilendirilme Ayarlarý"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Sadece diðer kullanýcýlarýn deðiþmiþ biletleri mi bana bildirilsin?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Sadece yorumlarý deðiþmiþ bileler mi bana bildirilsin?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "Açýk"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "Açýk Biletler"
+
+#: reports.php:23
+msgid "Open Tickets by Owner"
+msgstr "Sahibine Göre Açýk Biletler"
+
+#: reports.php:21
+msgid "Open Tickets by Priority"
+msgstr "Önceliklere Göre Açýk Biletler"
+
+#: reports.php:18
+msgid "Open Tickets by Queue"
+msgstr "Kuyruða Göre Açýk Bilet"
+
+#: reports.php:22
+msgid "Open Tickets by Requester"
+msgstr "Baþvuruculara Göre Henüz Açýk Biletler"
+
+#: reports.php:19
+msgid "Open Tickets by State"
+msgstr "Duruma Göre Açýk Biletler"
+
+#: reports.php:20
+msgid "Open Tickets by Type"
+msgstr ""
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "%s'de Benim Sonuçlandýrýlmamýþ Biletlerim"
+
+#: queue/index.php:43 queue/index.php:57 queue/rss.php:119
+#, php-format
+msgid "Open tickets in %s"
+msgstr "%s'de açýk biletler"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "Tüm kuyruklardaki açýk biletler"
+
+#: lib/Forms/Query.php:25 lib/Renderer/Query.php:78
+msgid "Or"
+msgstr "Veya"
+
+#: lib/Whups.php:685 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Forms/EditTicket.php:104 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Renderer/Query.php:84
+msgid "Owners"
+msgstr "Sahipler"
+
+#: lib/Whups.php:870
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "%s tamamen silinsin mi?"
+
+#: ticket/delete.php:51 ticket/type.php:74 ticket/queue.php:131
+#: ticket/update.php:22 ticket/deleteAttachment.php:21
+msgid "Permission Denied"
+msgstr "Eriþim Ýzni Engellendi"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:197
+msgid "Permission Denied."
+msgstr "Eriþim Ýzni Engellendi."
+
+#: lib/Forms/Query.php:459 query/run.php:44 query/index.php:31
+#, php-format
+msgid "Permission denied."
+msgstr "Eriþim izni engellendi."
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr ""
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:673 lib/Whups.php:682
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Forms/EditTicket.php:68 lib/Forms/CreateTicket.php:147
+#: lib/Forms/Query.php:198 lib/Renderer/Query.php:125 config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Öncelik"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Öncelik ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Öncelik Tanýmlamasý"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Öncelik Adý"
+
+#: search.php:178
+msgid "Public Queries"
+msgstr "Herkese Açýk Sorgulamalar"
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr "Sorgulama Kurucusu"
+
+#: lib/Forms/Query.php:387
+msgid "Query Name"
+msgstr "Sorgulama Adý"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Sorgulama Parametreleri"
+
+#: lib/Block/query.php:3 lib/Block/query.php:49 query/run.php:79
+#: query/rss.php:63
+msgid "Query Results"
+msgstr "Sorgulama Sonuçlarý"
+
+#: lib/Forms/Query.php:389
+msgid "Query Slug"
+msgstr ""
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "Çalýþtýrýlmasý istenilen sorgulama"
+
+#: lib/Whups.php:683 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:40 lib/Renderer/Query.php:94 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "Kuyruk"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "Sorgulama ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Kuyruðun Ýçindekiler"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Kuyruk Betimlemesi"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "Kuyruk Epostasý"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Kuyruk Adý"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr ""
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Kuyruk Özeti"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "Kuyruk Sürümü"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Kuyruk/Türü Dize_y"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Kuyruk/Türü Dizey"
+
+#: lib/api.php:163 lib/api.php:781
+msgid "Queues"
+msgstr "Kuyruklar"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "A_rama Sonuçlarýna Geri Dön"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Query.php:450
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Bu bilet gerçekten silinsin mi? Arþive atýlmayacak ve tamamen yok olaçaktýr."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+
+#: lib/Mail.php:218
+msgid "Received message:"
+msgstr "Alýnmýþ Ýleti"
+
+#: search.php:162
+msgid "Refine Search"
+msgstr "Aramayý derinleþtir"
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr "Hatýrlatýcýlar gönderildi."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Kullanýcýyý Sil"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "Takipciyi Sil"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Kaynaðý Sil"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "Bu yoruma yanýt ver"
+
+#: reports.php:40
+msgid "Reports"
+msgstr "Raporlar"
+
+#: lib/Whups.php:684 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Baþvurucu"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr ""
+
+#: lib/Whups.php:689 lib/api.php:927 lib/Driver.php:199 lib/Ticket.php:991
+#: lib/Renderer/Query.php:151 config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Çözülmüþ"
+
+#: lib/Forms/Query.php:330 lib/Forms/Search.php:60
+msgid "Resolved from"
+msgstr "Tarihinden Beri Çözülmüþ"
+
+#: lib/Forms/Query.php:331
+msgid "Resolved to"
+msgstr "Tarihine Kadar Çözülmüþ"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "Sorumlu Kullanýcýlar"
+
+#: lib/Whups.php:310
+msgid "S_et Queue"
+msgstr "Kuyruðu Belirle"
+
+#: lib/Query.php:234
+msgid "Sa_ve Query"
+msgstr "Sorgulamayý _Kaydet"
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:385
+msgid "Save"
+msgstr "Kaydet"
+
+#: query/index.php:233
+msgid "Save Criterion"
+msgstr "Kriteri Kaydet"
+
+#: lib/Forms/Query.php:384
+msgid "Save Query"
+msgstr "Sorgulamayý kaydet"
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr "Sorgulama olarak Kaydet"
+
+#: search.php:155 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Ara"
+
+#: lib/Forms/Query.php:278
+#, php-format
+msgid "Search %s Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:272 lib/Forms/Query.php:281
+msgid "Search Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr "Yorumlarý Ara"
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr "Sahipleri Ara"
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr "Baþvuraný Ara"
+
+#: search.php:147 search/rss.php:55 search/rss.php:59
+msgid "Search Results"
+msgstr "Arama Sonuçlarý"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Arama Sonuçlarý: %s / %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr "Özetete Göre Ara"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Bilet Ara"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "Adres rehberi kaynaklarýný eklemek ve aramak için seçin."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr ""
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Seçilmiþ Adresrehberleri:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "_Hatýrlatýcý Gönder"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "Hatýrlatýcý Gönder"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Standart Önceliði Belirle"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Varsayýlan Durumu Belirle"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "Kuyruk Ayarla - 1 Adým"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "Kuyruk Ayarla - 2 Adým"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "Kuyruk Ayarla - 3 Adým"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "%s için Kuyruðu belirle"
+
+#: lib/api.php:800
+msgid "Set Requester"
+msgstr "Baþvuraný Belirle"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr ""
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr ""
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "%s için Türü belirle"
+
+#: lib/Whups.php:315
+msgid "Set _Type"
+msgstr "Türü Ayarla"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "Özet görünümde bilet ID'leri gösterilsin mi?"
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "Baþvuduðunuz biletler özet bakýþýnda gösterilsin mi?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Basit HTML Rapor"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr "%s göre sirala"
+
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+msgid "Spam protection"
+msgstr "Ýstenilmeyen Ýleti önlemi"
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:674 lib/Whups.php:680
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Forms/EditTicket.php:62 lib/Forms/Query.php:193
+#: lib/Renderer/Query.php:117 config/prefs.php.dist:47
+msgid "State"
+msgstr "Durum"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Durum ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Durum Kategorisi"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Durum Betimlemesi"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Durum Adý"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "Bu durum için türler"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Statüsü"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "Gönder"
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr "Bu sorgulamaya üye ol"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "%s'in %s'e klonlanmasý baþarýlý gerçekleþtirildi"
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Bilet türü baþarýyla deðiþtirildi"
+
+#: ticket/delete.php:30 lib/Whups.php:672 lib/Whups.php:679 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Forms/EditTicket.php:58
+#: lib/Forms/CreateTicket.php:152 lib/Renderer/Query.php:89
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Özet"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Özet ⇒ %s"
+
+#: lib/Forms/Search.php:43
+msgid "Summary like"
+msgstr "Özetine benzeyen"
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "%s'den alýnma"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr ""
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1306
+msgid "That queue slug is already taken. Please select another."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "Baþvurucunun Eposta Adresi"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr ""
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr ""
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr ""
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr ""
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr ""
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr ""
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr ""
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr ""
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr ""
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr ""
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr ""
+
+#: lib/Forms/Query.php:463
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr ""
+
+#: lib/Forms/Query.php:465
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr ""
+
+#: lib/Forms/Query.php:430
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr ""
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr ""
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr ""
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr ""
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr ""
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr ""
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr ""
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr ""
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "Durum silinmedi."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Bilet silinmedi."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr ""
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr ""
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr ""
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr ""
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr ""
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr ""
+
+#: lib/Forms/Query.php:281
+msgid "There are no attributes defined."
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr ""
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr ""
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr ""
+
+#: lib/Forms/Search.php:38
+msgid "There are no queues which you can search."
+msgstr ""
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr ""
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr "Bu rapor için veri bulunmamakta."
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr ""
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr ""
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr ""
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr ""
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr ""
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr ""
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr ""
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr ""
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr ""
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr ""
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr ""
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr ""
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr ""
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr ""
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr ""
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr ""
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr ""
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr ""
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr ""
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr ""
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr ""
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr ""
+
+#: search.php:140
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr ""
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr ""
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr ""
+
+#: lib/Forms/AddComment.php:37 lib/Forms/EditTicket.php:166
+msgid "This comment is visible to everyone"
+msgstr "Bu yorum herkese açýk"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+"Bu eposta adresi bir kuyruk için gönderilen bilgiler için kullanýlacaktýr."
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr ""
+
+#: lib/Query.php:435 lib/Query.php:668
+msgid "This query element cannot be edited."
+msgstr ""
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Bilet"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Bilet %d baþarýyla silinmiþtir."
+
+#: lib/api.php:850
+#, php-format
+msgid "Ticket %s - %s"
+msgstr ""
+
+#: lib/Driver/sql.php:1081
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Bilet %s bulunamadý."
+
+#: search.php:170
+msgid "Ticket Search"
+msgstr "Bilet Ara"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Bilet Durumu"
+
+#: templates/reports/stats.inc:1
+msgid "Ticket Stats"
+msgstr "Bilet Ýstatistikleri"
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Bilet Türü"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr ""
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "Bilet URL'si: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Bilet Güncelleþtirildi"
+
+#: lib/api.php:871
+msgid "Tickets"
+msgstr "Biletler"
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+
+#: ticket/queue.php:89 lib/Whups.php:681 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Forms/Query.php:174 lib/Renderer/Query.php:108
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr "Tür"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Tür Tanýmlamasý"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Tür Adý"
+
+#: search/rss.php:39
+#, php-format
+msgid "Type: %s; State: %s"
+msgstr ""
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Atanmamýþ"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Atanmamýþ Biletler"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Atanmamýþ biletler"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Tastiklenmemiþ"
+
+#: lib/Renderer/Query.php:167 lib/Renderer/Query.php:207
+#, php-format
+msgid "Unknown node type %s"
+msgstr ""
+
+#: lib/api.php:790
+msgid "Update"
+msgstr "Güncelle"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "%s Güncelle"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Ýliþkiyi Güncelle"
+
+#: lib/Whups.php:687 lib/Ticket.php:981 lib/Renderer/Query.php:146
+msgid "Updated"
+msgstr "Güncelleþtirilme"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Þahýs Tarafýndan Güncelleþtirildi"
+
+#: lib/Forms/Query.php:327 lib/Forms/Search.php:58
+msgid "Updated from"
+msgstr "Tarihinden beri Güncelleþtirilme"
+
+#: lib/Forms/Query.php:328
+msgid "Updated to"
+msgstr "Tarihine kadar Güncelleþtirilme"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "Kullanýcý"
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr "Kullanýcý ID'si"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "Bu Kuyrukdan sorumlu kullanýcýlar"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "Bu kuyruktan sorumlu kullanýcýlar"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Forms/Query.php:185
+#: lib/Renderer/Query.php:102 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Sürüm"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Sürüm Tanýmlamasý"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Sürüm Adý"
+
+#: ticket/type.php:43 ticket/queue.php:50
+msgid "Viewable only by members of"
+msgstr "Sadece þu grublarin üyeleri tarafýndan izlenebilsin"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Bu bileti takip et"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "%s takip edenler"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "Ýþgünü Gün Ay"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "Ýþgünü Gün Ay SS:DD:SS TZ"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449 lib/Forms/Admin/Queue.php:174
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Type.php:176
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/Attribute.php:149 lib/Forms/Admin/Priority.php:121
+msgid "Yes"
+msgstr "Evet"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "%d biletini bakmaya izniniz yok."
+
+#: lib/Driver/sql.php:1090
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Ýzniniz bu biletin (%s) eriþimine yok."
+
+#: lib/api.php:375
+msgid "You do not have permission to update this ticket."
+msgstr "Bu bileti güncelleþtirmeye izniniz yok"
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "Mevcut açýk baþvurularýnýz yok."
+
+#: lib/Block/query.php:28 lib/Forms/Query.php:419
+msgid "You have no saved queries."
+msgstr "Kaydedilmiþ sorgulamalarýnýz yok."
+
+#: lib/Whups.php:714
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+#: lib/Forms/AddComment.php:18 lib/Forms/CreateTicket.php:132
+msgid "Your Email Address"
+msgstr "Eposta adresiniz"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr "Bilet ID'niz %s. Bu baþvuru için sorumlu bir þahýsa haber verildi."
+
+#: lib/Mail.php:245
+msgid "[ Could not render body of message. ]"
+msgstr ""
+
+#: lib/Whups.php:778
+msgid "_Admin"
+msgstr "_Yönetim"
+
+#: lib/Whups.php:302
+msgid "_Comment"
+msgstr "_Yorum"
+
+#: query/index.php:157
+msgid "_Date Criteria"
+msgstr "_Veri Kriterleri"
+
+#: lib/Whups.php:320
+msgid "_Delete"
+msgstr "_Sil"
+
+#: lib/Query.php:237
+msgid "_Delete Query"
+msgstr "Sorgulamayý _Sil"
+
+#: lib/Query.php:218
+msgid "_Edit Query"
+msgstr "Sorgulamayý _Düzenle"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "Kuyruklarý _Düzenle"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr ""
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr "Kriterleri _Gruplaþtýr"
+
+#: lib/Whups.php:296
+msgid "_History"
+msgstr "_Geçmiþ"
+
+#: lib/Query.php:231
+msgid "_Load Query"
+msgstr "Sorgulamalarý _Yükle"
+
+#: lib/Whups.php:769
+#, php-format
+msgid "_My %s"
+msgstr "_Benim %s"
+
+#: lib/Whups.php:772
+msgid "_New Ticket"
+msgstr "_Yeni Bilet"
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr "Ö_zellik Kriteri"
+
+#: lib/Whups.php:773
+msgid "_Query Builder"
+msgstr "_Sorgulama Kurucusu"
+
+#: lib/Whups.php:774
+msgid "_Reports"
+msgstr "_Raporlar"
+
+#: lib/Whups.php:771
+msgid "_Search"
+msgstr "_Ara"
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr "_Yazý Kriteri"
+
+#: lib/Whups.php:298
+msgid "_Update"
+msgstr "_Güncelle"
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr "_Kullanýcý Kriteri"
+
+#: lib/Whups.php:306
+msgid "_Watch"
+msgstr "_Takip"
+
+#: lib/Renderer/Query.php:187
+msgid "contains (case insensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:191
+msgid "contains (case sensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:195
+msgid "contains the word"
+msgstr ""
+
+#: lib/Mail.php:95 lib/Mail.php:119 lib/Mail.php:147
+msgid "current user:"
+msgstr "mevcut kullanýcý:"
+
+#: lib/api.php:859
+msgid "estimated time"
+msgstr "tahmin zaman"
+
+#: lib/Renderer/Query.php:183
+msgid "is"
+msgstr ""
+
+#: lib/Renderer/Query.php:175
+msgid "is greater than"
+msgstr ""
+
+#: lib/Renderer/Query.php:179
+msgid "is less than"
+msgstr ""
+
+#: lib/Renderer/Query.php:199
+msgid "matches the pattern"
+msgstr ""
+
+#: lib/Forms/Search.php:57 lib/Forms/Search.php:59 lib/Forms/Search.php:61
+#: lib/Forms/Search.php:63 lib/Forms/Search.php:65
+msgid "to"
+msgstr ""
--- /dev/null
+# Ukrainian translations for Whups package.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the Whups package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Whups 1.0-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-11-28 12:45+0200\n"
+"PO-Revision-Date: 2008-12-05 12:00+0200\n"
+"Last-Translator: Andriy Kopystyansky <webmaster@polynet.lviv.ua>\n"
+"Language-Team: Ukrainian <anri@polynet.lviv.ua>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\" á³ëüøå íå º ñåðåä â³äïîâ³äàëüíèõ çà \"%s\""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr ""
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d îñ³á ñïîñòåð³ãàþòü, %d îñîáà â³äïîâ³äàëüíà"
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr "%s %s òàðíàí³â â %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s òàðãàí³â ó âñ³õ ÷åðãàõ"
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr ""
+
+#: lib/Driver.php:497
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) íàïèñàâ:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s äîäàíèé äî â³äïîâ³äàëüíèõ çà \"%s\""
+
+#: templates/reports/stats.inc:15
+#, php-format
+msgid "%s days"
+msgstr "%s äí³â"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s òàðãàí³â â %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s òàðãàí³â ó âñ³õ ÷åðãàõ"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "%s áóäå ïîâ³äîìëåíèé ïðè îíîâëåíí³ öüîãî çàïèòó."
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "%s á³ëüøå íå îòðèìóâàòèìå îíîâëåíü ùîäî öüîãî çàïèòó."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- Ñòàä³ÿ 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- Ñòàä³ÿ 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr ""
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr ""
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "Äîñòóï äî %s çàáîðîíåíî"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "Äîäàòè àòðèáóò"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr ""
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "Äîäàòè êîíòåíò"
+
+#: query/index.php:233
+msgid "Add Criterion"
+msgstr ""
+
+#: lib/Forms/Query.php:320
+msgid "Add Date Criterion"
+msgstr "Äîäàòè êðèòåð³é äàòè"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "Äîäàòè ïð³îðèòåò"
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "Äîäàòè ÷åðãó"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "Äîäàòè ñòàí"
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "Äîäàòè òèï"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "Äîäàòè òèï %s"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "Äîäàòè êîðèñòóâà÷³â"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "Äîäàòè âåðñ³þ"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "Äîäàòè ñïîñòåð³ãà÷à"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "Äîäàòè äæåðåëî"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "Âíåñåííÿ òàðãàíà íåâäàëå: %s."
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "Àäðåñíèêè"
+
+#: lib/api.php:775 admin/index.php:54
+msgid "Administration"
+msgstr "Àäì³í³ñòðóâàííÿ"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:24
+msgid "And"
+msgstr ""
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:32
+msgid "Any"
+msgstr ""
+
+#: ticket/type.php:42 ticket/queue.php:48
+msgid "Any Group"
+msgstr ""
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "Ïî çðîñòàííþ"
+
+#: lib/api.php:795
+msgid "Assign"
+msgstr "Ïðèçíà÷èòè"
+
+#: lib/Whups.php:684 lib/api.php:913 lib/Ticket.php:986 lib/Driver.php:198
+#: lib/Renderer/Query.php:156 config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "Ïðèçíà÷åíî"
+
+#: lib/Forms/Query.php:333 lib/Forms/Search.php:62
+msgid "Assigned from"
+msgstr "Ïðèçíà÷åíèé â³ä"
+
+#: lib/Forms/Query.php:334
+msgid "Assigned to"
+msgstr "Ïðèçíà÷åíî äëÿ"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "Ïðèçíà÷åíî äëÿ %s"
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr "Àñîö³àö³¿ îíîâëåíî óñï³øíî."
+
+#: lib/Forms/AddComment.php:24 lib/Forms/CreateTicket.php:153
+#: lib/Forms/EditTicket.php:126
+msgid "Attachment"
+msgstr "Äîäàòîê"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "Äîäàòîê %s âèòåðòî."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "Äîäàòîê %s íå çíàéäåíî."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "Äîäàòêè"
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr ""
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "Àòðèáóò %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Îïèñ àòðèáóòà"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "Íàçâà àòðèáóòà"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Òèï àòðèáóòà"
+
+#: lib/Forms/Search.php:20
+msgid "Attributes"
+msgstr "Àòðèáóòè"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "Àòðèáóòè äëÿ öüîãî òèïó"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "Àâòîìàòè÷íî ë³íêóâàòè ç ³íøèìè òàðãàíàìè â êîìåíòàðàõ?"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "Äîñòóïí³ Àäðåñíèêè:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "Äîñòóïí³ ÷åðãè:"
+
+#: reports.php:24
+msgid "Average days to close by Owner"
+msgstr ""
+
+#: reports.php:26
+msgid "Average days to close by Queue"
+msgstr ""
+
+#: reports.php:25
+msgid "Average days to close by Requester"
+msgstr ""
+
+#: reports.php:29
+msgid "Average time a ticket is unresolved"
+msgstr ""
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr ""
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr "Íå ìîæó àóòåíòèô³êóâàòèñü íà ïîøòîâîìó ñåðâåð³: "
+
+#: lib/Query.php:164
+msgid "Case Insensitive Substring"
+msgstr ""
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Çì³íèòè"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr "Çì³íèòè îïö³¿ â³äîáðàæåííÿ, òàê³ ÿê ñîòóâàííÿ ðåçóëüòàò³â ïîøóêó."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Çì³íèòè îïö³¿ äëÿ ïîâ³äîìëåííÿ ïîøòîþ ïðî àêòèâí³ñòü çàïèòó."
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr "Îáåð³òü ä³þ:"
+
+#: lib/Query.php:678
+msgid "Choose New Query instead of deleting the root node."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr "Âêàæ³òü ïîñë³äîâí³ñòü àäðåñíèê³â äëÿ ïîøóêó ïðè ðîçêðèòò³ àäðåñ."
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "Îáåð³òü:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "Õðîíîëîã³÷íî (ñïåðøó ñòàðø³)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+"Êëàöí³òü íà îäíîìó ç âèáðàíèõ àäðåñíèê³â, à ïîò³ì âèáåð³òü âñ³ ïîëÿ äëÿ "
+"ïîøóêó."
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:36 admin/index.php:151
+msgid "Clone Type"
+msgstr ""
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "Ðîçä³ëåí³ êîìîþ çíà÷åííÿ (ôàéë CSV)"
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Renderer/Query.php:88
+#: lib/Forms/AddComment.php:23 lib/Forms/EditTicket.php:131
+msgid "Comment"
+msgstr "Êîìåíòàð"
+
+#: lib/Renderer/Comment.php:159
+#, php-format
+msgid "Comment #%d"
+msgstr "Êîìåíòàð #%d"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d (Private)"
+msgstr "Êîìåíòàð #%d (Ïðèâàòíèé)"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "Êîìåíòàð äîäàíî"
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr ""
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "Íå ìîæó äîáóòè âêàçàíèé ôàéë ç Zip-àðõ³âó."
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "Íå çíàõîäæó æîäíî¿ ãðóïè."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "Íå ìîæó çíàéòè òàðãàíà \"%s\"."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr "Ñòâîðèòè òèïîâ³ ïð³îðèòåòè"
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "Ñòâîðèòè òèïîâ³ ñòàíè"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "Âíåñòè òàðãàíà"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "Âíåñåííÿ òàðãàíà - Êðîê 1"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "Âíåñåííÿ òàðãàíà - Êðîê 2"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "Âíåñåííÿ òàðãàíà - Êðîê 3"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "Âíåñåííÿ òàðãàíà - Êðîê 4"
+
+#: lib/Whups.php:682 lib/api.php:918 lib/Ticket.php:971
+#: lib/Renderer/Query.php:141 config/prefs.php.dist:52
+msgid "Created"
+msgstr "Ñòâîðåíî"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "Ñòâîðåíî"
+
+#: lib/Forms/Query.php:324 lib/Forms/Search.php:56
+msgid "Created from"
+msgstr "Ñòâîðåíèé â³ä"
+
+#: lib/Forms/Query.php:325
+msgid "Created to"
+msgstr "Ñòâîðåíèé äî"
+
+#: query/index.php:223 query/index.php:240
+msgid "Current Query"
+msgstr "Ïîòî÷íèé çàïèò"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "Ïîòî÷íèé òèï òàðãàíà"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "Íå â³äïîâ³äàéòå íà öüîãî ëèñòà. Öå ñëóæáîâà àäðåñà å-ïîøòè."
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "Ôîðìàò äàòè ³ ÷àñó äëÿ ðåçóëüòàò³â ïîøóêó"
+
+#: lib/Forms/Search.php:55
+msgid "Dates"
+msgstr "Äàòè"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "Òèï òàðãàíà çà çàìîâ÷óâàííÿì"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "Òèïîâèé êðèòåð³é ñîðòóâàííÿ:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "Òèïîâèé íàïðÿì ñîðòóâàííÿ:"
+
+#: query/index.php:163
+msgid "Delete"
+msgstr "Âèòåðòè"
+
+#: lib/Whups.php:866 lib/Whups.php:867
+#, php-format
+msgid "Delete %s"
+msgstr "Âèòåðòè %s"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "Âèòåðòè %s?"
+
+#: lib/Forms/Admin/Attribute.php:57 admin/index.php:947
+msgid "Delete Attribute"
+msgstr "Âèòåðòè àòðèáóò"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:36 admin/index.php:1082
+msgid "Delete Form Reply"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:36 admin/index.php:589
+msgid "Delete Priority"
+msgstr "Âèòåðòè ïð³îðèòåò"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr ""
+
+#: lib/Forms/Query.php:447
+msgid "Delete Query?"
+msgstr "Âèòåðòè çàïèò?"
+
+#: lib/Forms/Admin/Queue.php:44 admin/index.php:332
+msgid "Delete Queue"
+msgstr "Âèòåðòè ÷åðãó"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "ϳäòâåðäæåííÿ âèòèðàííÿ ÷åðãè"
+
+#: lib/Forms/Admin/State.php:35 admin/index.php:454
+msgid "Delete State"
+msgstr "Âèòåðòè ñòàí"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "ϳäòâåðäæåííÿ âèòèðàííÿ ñòàíó"
+
+#: lib/Forms/Admin/Type.php:37 admin/index.php:145
+msgid "Delete Type"
+msgstr "Âèòåðòè òèï"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "ϳäòâåðäæåííÿ âèòèðàííÿ òèïó"
+
+#: lib/Forms/Admin/Version.php:36 admin/index.php:816
+msgid "Delete Version"
+msgstr "Âèòåðòè âåðñ³þ"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "ϳäòâåðäæåííÿ âèòèðàííÿ âåðñ³¿"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "Âèòåðòèé äîäàòîê"
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "Âèòåðòèé äîäàòîê: %s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "Ïî ñïàäàííþ"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "Îïèñ"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Îïö³¿ â³äîáðàæåííÿ"
+
+#: lib/Whups.php:857
+msgid "Download"
+msgstr "Ñêà÷àòè"
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr "Ñêà÷àòè ö³ ðåçóëüòàòè ÿê: "
+
+#: lib/api.php:922 lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976
+#: lib/Renderer/Query.php:161
+msgid "Due"
+msgstr "Ó ïåð³îä"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "Ïðîòÿãîì ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "Äàòà ïî䳿"
+
+#: lib/Forms/Query.php:336 lib/Forms/Search.php:64
+msgid "Due from"
+msgstr "Ó ïåð³îä â³ä"
+
+#: lib/Forms/Query.php:337
+msgid "Due to"
+msgstr "Ó ïåð³îä äî"
+
+#: lib/Query.php:230
+msgid "E_xecute Query"
+msgstr ""
+
+#: query/index.php:164
+msgid "Edit"
+msgstr "Ðåäàãóâàòè"
+
+#: lib/Forms/Admin/Type.php:63 lib/Forms/Admin/Queue.php:82
+#, php-format
+msgid "Edit %s"
+msgstr "Ðåäàãóâàòè %s"
+
+#: lib/Forms/Admin/Attribute.php:57 lib/Forms/Admin/Attribute.php:86
+#: admin/index.php:942
+msgid "Edit Attribute"
+msgstr "Ðåäàãóâàòè àòðèáóò"
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "Ðåäàãóâàòè àòðèáóòè"
+
+#: lib/Forms/Query.php:320
+msgid "Edit Date Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:36 lib/Forms/Admin/Reply.php:64
+#: admin/index.php:1077
+msgid "Edit Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr "Ðåäàãóâàòè ïð³îðèòåòè"
+
+#: lib/Forms/Admin/Priority.php:36 lib/Forms/Admin/Priority.php:59
+#: admin/index.php:584
+msgid "Edit Priority"
+msgstr "Ðåäàãóâàòè ïð³îðèòåò"
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:44 lib/Forms/Admin/Queue.php:47
+#: admin/index.php:326
+msgid "Edit Queue"
+msgstr "Ðåäàãóâàòè ÷åðãó"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "Ðåäàãóâàòè ÷åðãè"
+
+#: lib/Forms/Admin/State.php:35 lib/Forms/Admin/State.php:56
+#: admin/index.php:449
+msgid "Edit State"
+msgstr "Ðåäàãóâàòè ñòàí"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "Ðåäàãóâàòè ñòàíè"
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:35 admin/index.php:139
+msgid "Edit Type"
+msgstr "Ðåäàãóâàòè òèï"
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:36 lib/Forms/Admin/Version.php:59
+#: admin/index.php:811
+msgid "Edit Version"
+msgstr "Ðåäàãóâàòè âåðñ³þ"
+
+#: lib/Query.php:226
+msgid "Edit _Permissions"
+msgstr "Ðåäàãóâàòè ïðàâà"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "Ðåäàãóâàòè Òèïè"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè àòðèáóòè"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè ïð³îðèòåòè"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè ÷åðãè"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè ñòàíè"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè òèïè"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "Ðåäàãóâàòè àáî âèòåðòè âåðñ³¿"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "Ðåäàãóâàòè ïðàâà íà öþ ÷åðãó"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "Ðåäàãóâàòè â³äïîâ³äàëüíèõ çà öþ ÷åðãó"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "Ðåäàãóâàòè âåðñ³¿ ö³º¿ ÷åðãè"
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "Àäðåñà å-ïîøòè äëÿ îïîâ³ùåííÿ"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "Àäðåñà å-ïîøòè äëÿ âèäàëåííÿ"
+
+#: lib/api.php:504
+msgid "Empty attachment"
+msgstr "Ïóñòèé äîäàòîê"
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr "Ïîìèëêà îáðîáêè ëèñòà:"
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr ""
+
+#: lib/Query.php:163
+msgid "Exact Match"
+msgstr ""
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr "Âèêîíàòè çàïèò"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "Ïîëÿ äëÿ ïîøóêó"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Äëÿ òàðãàí³â ç öèõ ÷åðã"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr ""
+
+#: lib/api.php:806
+msgid "Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr ""
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "Çàãàëüí³ îïö³¿"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "Äàë³"
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "Ãðóïîâàí³ âëàñíèêè"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr "Ãðóïè"
+
+#: lib/api.php:778
+msgid "Hidden Comments"
+msgstr "Ïðèõîâàí³ êîìåíòàð³"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "²ñòîð³ÿ"
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr ""
+
+#: lib/Whups.php:667 lib/Whups.php:674 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr ""
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr ""
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr ""
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr ""
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "Íåïðàâèëüíà ÷åðãà"
+
+#: lib/Whups.php:261 lib/api.php:495
+msgid "Invalid Ticket Id"
+msgstr "Íåêîðåêòíèé Id òàðãàíà"
+
+#: lib/api.php:548
+msgid "Invalid argument: Missing attribute name or value."
+msgstr ""
+
+#: lib/api.php:533
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "Íåïðàâèëüíà ÷åðãà"
+
+#: search/rss.php:30
+msgid "Invalid search"
+msgstr "Íåêîðåêòíèé ïîøóê"
+
+#: lib/api.php:397
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "Âêàçàíà íåêîðåêòíà äàòà òàðãàíà: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "Òðèìàòè íàá³ð âåðñ³é äëÿ ö³º¿ ÷åðãè?"
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr ""
+
+#: lib/Forms/Query.php:411
+msgid "Load Query"
+msgstr ""
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "Çàâàíòàæóþ..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr ""
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr ""
+
+#: lib/Forms/AddComment.php:38 lib/Forms/EditTicket.php:167
+msgid "Make this comment visible only to members of a group?"
+msgstr "Çðîáèòè öåé êîìåíòàð âèäèìèì ò³ëüêè äëÿ ÷ëåí³â ãðóïè?"
+
+#: lib/Forms/Query.php:274
+msgid "Match"
+msgstr ""
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:275
+msgid "Match Operator"
+msgstr ""
+
+#: lib/Query.php:167
+msgid "Match Pattern"
+msgstr ""
+
+#: lib/Query.php:166
+msgid "Match Word"
+msgstr ""
+
+#: reports.php:30
+msgid "Maximum time a ticket is unresolved"
+msgstr "Ìàêñèìàëüíèé ÷àñ, çà ÿêèé òàðãàí íå áóâ âèð³øåíèé"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "Ñïèñîê ìåíþ"
+
+#: reports.php:31
+msgid "Minimum time a ticket is unresolved"
+msgstr "̳í³ìàëüíèé ÷àñ, çà ÿêèé òàðãàí íå áóâ âèð³øåíèé"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "Ñïî÷àòêó ñâ³æ³ø³"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "Äîíèçó"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "Äîãîðè"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "Ïåðåíåñåíî òàðãàíà %d äî \"%s\""
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "Ìî¿ %s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "Ìî¿ %s :: Äîäàòè êîíòåíò"
+
+#: search.php:178 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "Ìî¿ çàïèòè"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr ""
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "Ìî¿ òàðãàíè"
+
+#: lib/api.php:884
+msgid "My tickets by assignment date"
+msgstr "Ìî¿ òàðãàíè ïî äàò³ ïðèçíà÷åííÿ"
+
+#: lib/api.php:883
+msgid "My tickets by creation date"
+msgstr "Ìî¿ òàðãàíè ïî äàò³ ñòâîðåííÿ"
+
+#: lib/api.php:885
+msgid "My tickets by due date"
+msgstr "Ìî¿ òàðãàíè çà ïåð³îäîì 䳿"
+
+#: lib/api.php:886
+msgid "My tickets by resolution date"
+msgstr "Ìî¿ òàðãàíè ïî äàò³ âèð³øåííÿ"
+
+#: lib/Forms/Query.php:422
+msgid "Name"
+msgstr "²ì'ÿ"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr ""
+
+#: lib/Query.php:216
+msgid "Ne_w Query"
+msgstr "Íîâèé çàïèò"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "Íîâèé"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "Íîâèé äîäàòîê"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "Íîâèé äîäàòîê: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "Íîâà ÷åðãà"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "Íîâèé òàðãàí"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Íîâèé òèï"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "Íàñòóïíèé>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449
+#: lib/Forms/Admin/Priority.php:121 lib/Forms/Admin/State.php:121
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Type.php:176 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/Queue.php:174
+msgid "No"
+msgstr "ͳ"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr ""
+
+#: lib/Driver/sql.php:553 lib/Block/query.php:62
+msgid "No query to run"
+msgstr ""
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "Íåìà äîñòóïíèõ ÷åðã."
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+
+#: reports.php:35
+msgid "No stats available."
+msgstr "Íåìà ñòàòèñòè÷íèõ äàíèõ."
+
+#: lib/Driver.php:533
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr ""
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr ""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "Æîäíîãî òàðãàíà Âàì íå ïðèçíà÷åíî."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "Æîäíîãî ïðèçíà÷åíîãî òàðãàíà!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "Æîäíîãî òàðãàíà â ÷åðç³."
+
+#: lib/Whups.php:716
+msgid "No tickets matched your search criteria."
+msgstr "Æîäåí òàðãàí íå â³äïîâ³äຠêðèòåð³þ ïîøóêó."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:67
+msgid "None"
+msgstr "Æîäåí"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:26
+msgid "Not"
+msgstr "Íå"
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "Îïö³¿ îïîâ³ùåíü"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Ñïîâ³ùàòè ìåíå ò³ëüêè êîëè òàðãàí çì³íåíèé ³íøèìè îñîáàìè?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Ñïîâ³ùàòè ìåíå ò³ëüêè êîëè òàðãàí çì³íåíèé ç êîìåíòàðåì?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr ""
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr ""
+
+#: reports.php:23
+msgid "Open Tickets by Owner"
+msgstr ""
+
+#: reports.php:21
+msgid "Open Tickets by Priority"
+msgstr ""
+
+#: reports.php:18
+msgid "Open Tickets by Queue"
+msgstr ""
+
+#: reports.php:22
+msgid "Open Tickets by Requester"
+msgstr ""
+
+#: reports.php:19
+msgid "Open Tickets by State"
+msgstr ""
+
+#: reports.php:20
+msgid "Open Tickets by Type"
+msgstr ""
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr ""
+
+#: queue/rss.php:119 queue/index.php:43 queue/index.php:57
+#, php-format
+msgid "Open tickets in %s"
+msgstr "³äêðèò³ òàðãàíè â %s"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr ""
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:25
+msgid "Or"
+msgstr "Àáî"
+
+#: lib/Whups.php:681 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "Âëàñíèêè"
+
+#: lib/Whups.php:866
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "Íàçàâæäè âèòåðòè %s?"
+
+#: ticket/type.php:74 ticket/delete.php:51 ticket/deleteAttachment.php:21
+#: ticket/update.php:22 ticket/queue.php:131
+msgid "Permission Denied"
+msgstr "Äîñòóï çàáîðîíåíèé"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:197
+msgid "Permission Denied."
+msgstr "Äîñòóï çàáîðîíåíèé."
+
+#: lib/Forms/Query.php:459 query/run.php:44 query/index.php:31
+#, php-format
+msgid "Permission denied."
+msgstr "Äîñòóï çàáîðîíåíèé."
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "Áóäü-ëàñêà, âèïðàâòå íåêîðåêòí³ àäðåñè."
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr "Ïð³îðèòåòè äëÿ öüîãî òèïó"
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:669 lib/Whups.php:678
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Renderer/Query.php:125 lib/Forms/Query.php:198
+#: lib/Forms/CreateTicket.php:147 lib/Forms/EditTicket.php:68
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Ïð³îðèòåò"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Ïð³îðèòåò ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Îïèñ ïð³îðèòåòó"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Íàçâà ïð³îðèòåòó"
+
+#: search.php:178
+msgid "Public Queries"
+msgstr "Ïóáë³÷í³ çàïèòè"
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr ""
+
+#: lib/Forms/Query.php:387
+msgid "Query Name"
+msgstr "Íàçâà çàïèòó"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "Ïàðàìåòðè çàïèòó"
+
+#: lib/Block/query.php:3 lib/Block/query.php:49 query/rss.php:63
+#: query/run.php:79
+msgid "Query Results"
+msgstr "Ðåçóëüòàòè çàïèòó"
+
+#: lib/Forms/Query.php:389
+msgid "Query Slug"
+msgstr ""
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr ""
+
+#: lib/Whups.php:679 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Renderer/Query.php:94 lib/Block/queuesummary.php:49
+#: lib/Block/queuecontents.php:32 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:40 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "×åðãà"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "×åðãà ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "Êîíòåíò ÷åðãè"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "Îïèñ ÷åðãè"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "Å-ïîøòà ÷åðãè"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "Íàçâà ÷åðãè"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr ""
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "Àíîòàö³ÿ ÷åðãè"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "Âåðñ³ÿ ÷åðãè"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "Ìàòðèöÿ ×åðãà/Òèï"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "Ìàòðèöÿ ×åðãà/Òèï"
+
+#: lib/api.php:163 lib/api.php:781
+msgid "Queues"
+msgstr "×åðãè"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "Ïîâåðíóòèñÿ äî ðåçóëüòàò³â ïîøóêó"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öåé àòðèáóò? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öåé ïð³îðèòåò? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: lib/Forms/Query.php:450
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öþ ÷åðãó? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öåé ñòàí? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+"Ñïðàâä³ âèòåðòè öüîãî òàðãàíà? ³í íå áóäà àðõ³âîâàíèé ³ áóäå âòðà÷åíèé "
+"íàçàâæäè."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öåé òèï? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr "Ñïðàâä³ âèòåðòè öþ âåðñ³þ? Öå ìîæå ñïðè÷èíèòè ïðîáëåìó ç äàíèìè!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "Îòðèìàí³ ëèñòè:"
+
+#: search.php:162
+msgid "Refine Search"
+msgstr "Óòî÷íèòè ïîøóê"
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr "Íàãàäóâàííÿ ðîç³ñëàíî."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "Âèäàëèòè êîðèñòóâà÷à"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "Âèäàëèòè ñïîñòåð³ãà÷à"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "Âèäàëèòè äæåðåëî"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "³äïîâ³ñòè íà öåé êîìåíòàð"
+
+#: reports.php:40
+msgid "Reports"
+msgstr "Çâ³òè"
+
+#: lib/Whups.php:680 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "Çàìîâíèê"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "Íåîáõ³äíèé àòðèáóò?"
+
+#: lib/Whups.php:685 lib/api.php:927 lib/Ticket.php:991 lib/Driver.php:199
+#: lib/Renderer/Query.php:151 config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "Âèêîíàíèé"
+
+#: lib/Forms/Query.php:330 lib/Forms/Search.php:60
+msgid "Resolved from"
+msgstr ""
+
+#: lib/Forms/Query.php:331
+msgid "Resolved to"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "³äïîâ³äàëüí³ êîðèñòóâà÷³"
+
+#: lib/Whups.php:306
+msgid "S_et Queue"
+msgstr "Âñòàíîâèòè ÷åðãó"
+
+#: lib/Query.php:234
+msgid "Sa_ve Query"
+msgstr "Çáåðåãòè çàïèò"
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:385
+msgid "Save"
+msgstr "Çáåðåãòè"
+
+#: query/index.php:233
+msgid "Save Criterion"
+msgstr "Çáåðåãòè êðèòåð³é"
+
+#: lib/Forms/Query.php:384
+msgid "Save Query"
+msgstr "Çáåðåãòè çàïèò"
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr "Çáåðåãòè ÿê Çàïèò"
+
+#: search.php:155 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "Ïîøóê"
+
+#: lib/Forms/Query.php:278
+#, php-format
+msgid "Search %s Attribute"
+msgstr "Çíàéòè %s àòðèáóò"
+
+#: lib/Forms/Query.php:272 lib/Forms/Query.php:281
+msgid "Search Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr ""
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr ""
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr ""
+
+#: search.php:147 search/rss.php:55 search/rss.php:59
+msgid "Search Results"
+msgstr "Ðåçóëüòàòè ïîøóêó"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "Ðåçóëüòàòè ïîøóêó: %s ç %s"
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr ""
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "Ïîøóê òàðãàí³â"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "Âêàæ³òü àäðåñíèêè äëÿ ïîøóêó ³ äîäàâàííÿ àäðåñ."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr "Âèáåð³òü âñ³ ïîëÿ äëÿ ïîøóêó ïðè ðîçêðèòò³ àäðåñ."
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr "Âèáåð³òü âèä, ÿêèé ïîêàçàòè ï³ñëÿ âõîäó:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "Âèáðàí³ Àäðåñíèêè:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "Âñòàíîâèòè òèïîâèé ïð³îðèòåò"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "Âñòàíîâèòè òèïîâèé ñòàí"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "Âñòàíîâèòè ÷åðãó - Êðîê 1"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "Âñòàíîâèòè ÷åðãó - Êðîê 2"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "Âñòàíîâèòè ÷åðãó - Êðîê 3"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "Âñòàíîâèòè ÷åðãó äëÿ %s"
+
+#: lib/api.php:800
+msgid "Set Requester"
+msgstr "Âñòàíîâèòè àâòîðà"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr "Âñòàíîâèòè òèï - Êðîê 1"
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr "Âñòàíîâ³òü òèï - Êðîê 2"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "Âñòàíîâèòè òèï äëÿ %s"
+
+#: lib/Whups.php:311
+msgid "Set _Type"
+msgstr "Âñòàíîâèòè òèï"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "Ïîêàçóâàòè êîìåíòàð³ â õðîíîëîã³÷íîìó ïîðÿäêó, ÷è ñïåðøó ñâ³æ³ø³?"
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr ""
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr ""
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "Ïðîñòèé HTML çâ³ò"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr "Ñîðòóâàòè ïî %s"
+
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+msgid "Spam protection"
+msgstr "Çàõèñò â³ä ñïàìó"
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:670 lib/Whups.php:676
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Renderer/Query.php:117 lib/Forms/Query.php:193
+#: lib/Forms/EditTicket.php:62 config/prefs.php.dist:47
+msgid "State"
+msgstr "Ñòàí"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "Ñòàí ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "Êàòåãîð³ÿ ñòàíó"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "Îïèñ ñòàíó"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "Íàçâà ñòàíó"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "Ñòàíè äëÿ öüîãî òèïó"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "Ñòàòóñ"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "³ä³ñëàòè"
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr ""
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr ""
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Óñï³øíî çì³íåíî òèï òàðãàíà."
+
+#: ticket/delete.php:30 lib/Whups.php:668 lib/Whups.php:675 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Renderer/Query.php:89
+#: lib/Forms/CreateTicket.php:152 lib/Forms/EditTicket.php:58
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr "Ðåçþìå"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "Ðåçþìå ⇒ %s"
+
+#: lib/Forms/Search.php:43
+msgid "Summary like"
+msgstr ""
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "Çàáðàíî â³ä %s"
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr "Òåêñò"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1306
+msgid "That queue slug is already taken. Please select another."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "Àäðåñà å-ïîøòè çàìîâíèêà"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+"VFS áóôåð ìóñèòü áóòè ñêîíô³ãóðîâàíèé, ùîá äîçâîëèòè çàêà÷óâàííÿ äîäàòê³â."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "Àòðèáóò \"%s\" äîäàíî äî %s."
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr "Àòðèáóò âèòåðòî."
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr "Àòðèáóò ìîäèô³êîâàíî."
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr "Àòðèáóò íå âèòåðòî."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "Âñòàíîâëåíî òèïîâèé ïð³îðèòåò."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "Âñòàíîâëåíî òèïîâèé ñòàí."
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr ""
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr ""
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr ""
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Ïð³îðèòåò \"%s\" äîäàíî äî %s."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "Ïð³îðèòåò âèòåðòî."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "Ïð³îðèòåò ìîäèô³êîâàíî."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "Ïð³îðèòåò íå âèòåðòèé."
+
+#: lib/Forms/Query.php:463
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr ""
+
+#: lib/Forms/Query.php:465
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr ""
+
+#: lib/Forms/Query.php:430
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr ""
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "×åðãó \"%s\" ñòâîðåíî."
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "×åðãó âèòåðòî."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "×åðãó ìîäèô³êîâàíî."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "×åðãó íå âèòåðòî."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "Âêàçàíèé ôàéë íå ³ñíóº â Zip-äîäàòêó."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "Âêàçàíîãî øàáëîíó íå ³ñíóº."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "Ñòàí \"%s\" äîäàíî äî %s."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "Ñòàí âèòåðòî."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "Ñòàí ìîäèô³êîâàíî."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "Ñòàí íå âèòåðòî."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Òàðãàíà íå âèòåðòî."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Òèï \"%s\" ìîäèô³êîâàíî."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "Òèï âèòåðòî."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "Òèï íå âèòåðòî."
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "Âåðñ³þ \"%s\" äîäàíî äî %s."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "Âåðñ³þ âèòåðòî."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "Âåðñ³þ ìîäèô³êîâàíî."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "Âåðñ³þ íå âèòåðòî."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "Íåìà æîäíîãî òèïó àòðèáóòà äëÿ ðåäàãóâàííÿ"
+
+#: lib/Forms/Query.php:281
+msgid "There are no attributes defined."
+msgstr "Íå âèçíà÷åíî æîäíîãî àòðèáóòà."
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr ""
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr ""
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "Íåìà æîäíî¿ äîñòóïíî¿ ÷åðãè."
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "Íåìà æîäíî¿ ÷åðãè äëÿ ðåäàãóâàííÿ"
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "Íåìà æîäíî¿ ÷åðãè, â ÿêó Âè ìîæåòå ïîäàòè òàðãàíà."
+
+#: lib/Forms/Search.php:38
+msgid "There are no queues which you can search."
+msgstr "Íåìà æîäíî¿ ÷åðãè, äîñòóïíî¿ Âàì äëÿ ïîøóêó."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "Íåìà ñòàí³â äëÿ ðåäàãóâàííÿ"
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"Íå âèçíà÷åíî æîäíîãî òèïó òàðãàíà, àñîö³éîâàíîãî ç ö³ºþ ÷åðãîþ; ïîêè íå áóäå "
+"âèçíà÷åíî, âè íå çìîæåòå ïîäàâàòè òàðãàí³â ó öþ ÷åðãó."
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr "Íåìà òèï³â äëÿ ðåäàãóâàííÿ"
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "Íåìà æîäíîãî â³äïîâ³äàëüíîãî çà öþ ÷åðãó."
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Íåìà æîäíîãî êîðèñòóâà÷à, êîìó ìîæíà ïðèçíà÷èòè öüîãî òàðãàíà."
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "Íåìà âåðñ³é äëÿ ðåäàãóâàííÿ"
+
+#: lib/Reports.php:143
+msgid "There is no data for this report."
+msgstr ""
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+"Òðàïèëàñü ïîìèëêà ïðè äîäàâàíí³ \"%s\" äî ñïèñêó â³äïîâ³äàëüíèõ çà \"%s\":"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "Òðàïèëàñü ïîìèëêà ñòâîðåííÿ àòðèáóòà:"
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr ""
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè ñòâîðåíí³ ïð³îðèòåòó:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè ñòâîðåíí³ ÷åðãè:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè ñòâîðåíí³ ñòàíó:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè ñòâîðåíí³ âåðñ³¿:"
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ àòðèáóòà:"
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr ""
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ ïð³îðèòåòó:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ ÷åðãè:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ ñòàíó:"
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ òàðãàíà:"
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ òèïó:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèòèðàíí³ âåðñ³¿:"
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr "Òðàïèëàñü ïîìèëêà ðåäàãóâàííÿ àòðèáóòà:"
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr ""
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "Òðàïèëàñü ïîìèëêà ðåäàãóâàííÿ ïð³îðèòåòó:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "Òðàïèëàñü ïîìèëêà ðåäàãóâàííÿ ÷åðãè:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "Òðàïèëàñü ïîìèëêà ðåäàãóâàííÿ ñòàíó:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "Òðàïèëàñü ïîìèëêà ðåäàãóâàííÿ âåðñ³¿:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "Òðàïèëàñü ïîìèëêà ïåðåãëÿäó êîðèñòóâà÷³â: %s; %s"
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr "Òðàïèëàñü ïîìèëêà çíàõîäæííÿ òàðãàí³â ó ö³é ÷åðç³: "
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè çì³í³ òèïó:"
+
+#: search.php:140
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Òðàïèëàñü ïîìèëêà ïðè âèêîíàíí³ âàøîãî ïîøóêó: %s"
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+"Òðàïèëàñü ïîìèëêà ïðè âèäàëåíí³ \"%s\" ç³ ñïèñêó â³äïîâ³äàëüíèõ çà \"%s\":"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr "Òðàïèëàñü ïîìèëêà âñòàíîâëåííÿ òèïîâîãî ïð³îðèòåòó:"
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr "Òðàïèëàñü ïîìèëêà âñòàíîâëåííÿ òèïîâîãî ñòàíó:"
+
+#: lib/Forms/AddComment.php:37 lib/Forms/EditTicket.php:166
+msgid "This comment is visible to everyone"
+msgstr "Öåé êîìåíòàð âèäèìèé äëÿ âñ³õ"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr ""
+
+#: lib/Query.php:435 lib/Query.php:668
+msgid "This query element cannot be edited."
+msgstr "Öåé åëåìåíò çàïèòó íå ìîæíà ðåäàãóâàòè."
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Òàðãàí"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Òàðãàíà %d âèòåðòî."
+
+#: lib/api.php:850
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Òàðãàí %s - %s"
+
+#: lib/Driver/sql.php:1081
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "Òàðãàíà %s íå çíàéäåíî."
+
+#: search.php:170
+msgid "Ticket Search"
+msgstr "Ïîøóê òàðãàíà"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Ñòàí òàðãàíà"
+
+#: templates/reports/stats.inc:1
+msgid "Ticket Stats"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Òèï òàðãàíà"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "Òèïè òàðãàí³â, àñîö³éîâàí³ ç ö³ºþ ÷åðãîþ"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "URL òàðãàíà: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Òàðãàíà îíîâëåíî"
+
+#: lib/api.php:871
+msgid "Tickets"
+msgstr "Òàðãàíè"
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"Äëÿ âèáîðó ê³ëüêîõ ïîë³â óòðèìóéòå íàòèñíåíîþ êëàâ³øó Control (PC) àáî "
+"Command (Mac)."
+
+#: ticket/queue.php:89 lib/Whups.php:677 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Renderer/Query.php:108 lib/Forms/Query.php:174
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr "Òèï"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Òèï ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Îïèñ òèïó"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Íàçâà òèïó"
+
+#: search/rss.php:39
+#, php-format
+msgid "Type: %s; State: %s"
+msgstr "Òèï: %s; Ñòàí: %s"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "Íåðèçíà÷åíèé"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "Íåïðèçíà÷åí³ òàðãàíè"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "Íåïðèçíà÷åí³ òàðãàíè"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "Íå ï³äòâåðäæåíèé"
+
+#: lib/Renderer/Query.php:167 lib/Renderer/Query.php:207
+#, php-format
+msgid "Unknown node type %s"
+msgstr ""
+
+#: lib/api.php:790
+msgid "Update"
+msgstr "Îíîâèòè"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "Îíîâèòè %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "Îíîâèòè àñîö³àö³¿"
+
+#: lib/Whups.php:683 lib/Ticket.php:981 lib/Renderer/Query.php:146
+msgid "Updated"
+msgstr "Îíîâëåíî"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "Îíîâëåíî"
+
+#: lib/Forms/Query.php:327 lib/Forms/Search.php:58
+msgid "Updated from"
+msgstr ""
+
+#: lib/Forms/Query.php:328
+msgid "Updated to"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "Êîðèñòóâà÷"
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr "ID êîðèñòóâà÷à"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "Êîðèñòóâà÷³, â³äïîâ³äàëüí³ çà öþ ÷åðãó"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "Êîðèñòóâà÷³, â³äïîâ³äàëüí³ çà öþ ÷åðãó"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr "Âåðñ³ÿ"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "Îïèñ âåðñ³¿"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "Íàçâà âåðñ³¿"
+
+#: ticket/type.php:43 ticket/queue.php:50
+msgid "Viewable only by members of"
+msgstr ""
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "Ñïîñòåð³ãàòè çà öèì òàðãàíîì"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "Ñïîñòåð³ãà÷³ çà %s"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr ""
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr ""
+
+#: ticket/delete.php:33 lib/Forms/Query.php:449
+#: lib/Forms/Admin/Priority.php:121 lib/Forms/Admin/State.php:121
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Type.php:176 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/Queue.php:174
+msgid "Yes"
+msgstr "Òàê"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "Âàì íå äîçâîëåíî îãëÿäàòè òàðãàíà %d."
+
+#: lib/Driver/sql.php:1090
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "Ó Âàñ íåìà ïðàâà äîñòóïó äî öüîãî òàðãàíà (%s)."
+
+#: lib/api.php:375
+msgid "You do not have permission to update this ticket."
+msgstr "Ó Âàñ íåìà ïðàâà îíîâëþâàòè öüîãî òàðãàíà."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr ""
+
+#: lib/Block/query.php:28 lib/Forms/Query.php:419
+msgid "You have no saved queries."
+msgstr ""
+
+#: lib/Whups.php:710
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+#: lib/Forms/AddComment.php:18 lib/Forms/CreateTicket.php:132
+msgid "Your Email Address"
+msgstr "Âàøà àäðåñà å-ïîøòè"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr "Íîìåð Âàøîãî òàðãàíà - %s. ³äïîâ³äíà îñîáà ñïîâ³ùåíà ïðî Âàø çàïèò."
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ Íå ìîæó â³äîáðàçèòè ò³ëî ëèñòà. ]"
+
+#: lib/Whups.php:774
+msgid "_Admin"
+msgstr "Àäì³í"
+
+#: lib/Whups.php:298
+msgid "_Comment"
+msgstr "Êîìåíòàð"
+
+#: query/index.php:157
+msgid "_Date Criteria"
+msgstr "Êðèòåð³é äàòè"
+
+#: lib/Whups.php:316
+msgid "_Delete"
+msgstr "Âèòåðòè"
+
+#: lib/Query.php:237
+msgid "_Delete Query"
+msgstr "Âèòåðòè çàïèò"
+
+#: lib/Query.php:218
+msgid "_Edit Query"
+msgstr ""
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "Ðåäàãóâàòè ÷åðãè"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr ""
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr ""
+
+#: lib/Whups.php:292
+msgid "_History"
+msgstr "²ñòîð³ÿ"
+
+#: lib/Query.php:231
+msgid "_Load Query"
+msgstr ""
+
+#: lib/Whups.php:765
+#, php-format
+msgid "_My %s"
+msgstr "_Mî¿ %s"
+
+#: lib/Whups.php:768
+msgid "_New Ticket"
+msgstr "Íîâèé òàðãàí"
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr ""
+
+#: lib/Whups.php:769
+msgid "_Query Builder"
+msgstr ""
+
+#: lib/Whups.php:770
+msgid "_Reports"
+msgstr "Çâ³òè"
+
+#: lib/Whups.php:767
+msgid "_Search"
+msgstr "Ïîøóê"
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr ""
+
+#: lib/Whups.php:294
+msgid "_Update"
+msgstr "Îíîâèòè"
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr ""
+
+#: lib/Whups.php:302
+msgid "_Watch"
+msgstr "Íàãëÿä"
+
+#: lib/Renderer/Query.php:187
+msgid "contains (case insensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:191
+msgid "contains (case sensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:195
+msgid "contains the word"
+msgstr "ì³ñòèòü ñëîâî"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "Ïîòî÷íèé êîðèñòóâà÷:"
+
+#: lib/api.php:859
+msgid "estimated time"
+msgstr "ïðîãíîçîâàíèé ÷àñ"
+
+#: lib/Renderer/Query.php:183
+msgid "is"
+msgstr "º"
+
+#: lib/Renderer/Query.php:175
+msgid "is greater than"
+msgstr "á³ëüøå, í³æ"
+
+#: lib/Renderer/Query.php:179
+msgid "is less than"
+msgstr "ìåíøå, í³æ"
+
+#: lib/Renderer/Query.php:199
+msgid "matches the pattern"
+msgstr ""
+
+#: lib/Forms/Search.php:57 lib/Forms/Search.php:59 lib/Forms/Search.php:61
+#: lib/Forms/Search.php:63 lib/Forms/Search.php:65
+msgid "to"
+msgstr "äî"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright YEAR Horde Project
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-08-01 10:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr ""
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr ""
+
+#: queue/rss.php:96
+#, php-format
+msgid "%s %s tickets in %s"
+msgstr ""
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr ""
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr ""
+
+#: lib/Driver.php:481
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr ""
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr ""
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr ""
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr ""
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr ""
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr ""
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr ""
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr ""
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr ""
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr ""
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr ""
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr ""
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr ""
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr ""
+
+#: query/index.php:229
+msgid "Add Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Add Group Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr ""
+
+#: lib/Forms/Query.php:168
+msgid "Add Property Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr ""
+
+#: lib/Forms/Query.php:125
+msgid "Add Text Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr ""
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr ""
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr ""
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr ""
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr ""
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr ""
+
+#: admin/index.php:54 lib/api.php:881
+msgid "Administration"
+msgstr ""
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:24
+msgid "And"
+msgstr ""
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:31
+msgid "Any"
+msgstr ""
+
+#: ticket/type.php:42 ticket/queue.php:48 lib/Forms/EditTicket.php:165
+#: lib/Forms/AddComment.php:37
+msgid "Any Group"
+msgstr ""
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr ""
+
+#: lib/api.php:901
+msgid "Assign"
+msgstr ""
+
+#: lib/Whups.php:684 lib/Ticket.php:986 lib/Driver.php:198 lib/api.php:1007
+#: config/prefs.php.dist:53
+msgid "Assigned"
+msgstr ""
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr ""
+
+#: admin/index.php:1202
+msgid "Associations updated successfully."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:153 lib/Forms/EditTicket.php:126
+#: lib/Forms/AddComment.php:24
+msgid "Attachment"
+msgstr ""
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr ""
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr ""
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr ""
+
+#: query/index.php:159
+msgid "Attri_bute Criteria"
+msgstr ""
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr ""
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr ""
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr ""
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr ""
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr ""
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr ""
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr ""
+
+#: lib/Forms/Query.php:29
+msgid "Branch Type"
+msgstr ""
+
+#: scripts/mail-filter.php:199
+msgid "Cannot authenticate at mail server:"
+msgstr ""
+
+#: lib/Query.php:159
+msgid "Case Insensitive Substring"
+msgstr ""
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr ""
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr ""
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr ""
+
+#: query/index.php:162
+msgid "Choose Action:"
+msgstr ""
+
+#: lib/Query.php:560
+msgid "Choose New Query instead of deleting the root node."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr ""
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr ""
+
+#: admin/index.php:151 lib/Forms/Admin/Type.php:36
+msgid "Clone Type"
+msgstr ""
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr ""
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Renderer/Query.php:88
+#: lib/Forms/EditTicket.php:131 lib/Forms/AddComment.php:23
+msgid "Comment"
+msgstr ""
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d"
+msgstr ""
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr ""
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr ""
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr ""
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr ""
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr ""
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr ""
+
+#: lib/Whups.php:682 lib/Ticket.php:971 lib/api.php:1012
+#: config/prefs.php.dist:52
+msgid "Created"
+msgstr ""
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr ""
+
+#: query/index.php:219 query/index.php:236
+msgid "Current Query"
+msgstr ""
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr ""
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr ""
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr ""
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr ""
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr ""
+
+#: query/index.php:163
+msgid "Delete"
+msgstr ""
+
+#: lib/Whups.php:866 lib/Whups.php:867
+#, php-format
+msgid "Delete %s"
+msgstr ""
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr ""
+
+#: admin/index.php:947 lib/Forms/Admin/Attribute.php:57
+msgid "Delete Attribute"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr ""
+
+#: admin/index.php:1082 lib/Forms/Admin/Reply.php:36
+msgid "Delete Form Reply"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr ""
+
+#: admin/index.php:589 lib/Forms/Admin/Priority.php:36
+msgid "Delete Priority"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr ""
+
+#: lib/Forms/Query.php:381
+msgid "Delete Query?"
+msgstr ""
+
+#: admin/index.php:332 lib/Forms/Admin/Queue.php:44
+msgid "Delete Queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr ""
+
+#: admin/index.php:454 lib/Forms/Admin/State.php:35
+msgid "Delete State"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr ""
+
+#: admin/index.php:145 lib/Forms/Admin/Type.php:37
+msgid "Delete Type"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr ""
+
+#: admin/index.php:816 lib/Forms/Admin/Version.php:36
+msgid "Delete Version"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr ""
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr ""
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr ""
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr ""
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr ""
+
+#: lib/Whups.php:857
+msgid "Download"
+msgstr ""
+
+#: templates/view/results.inc:90
+msgid "Download these results as: "
+msgstr ""
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:1016
+msgid "Due"
+msgstr ""
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr ""
+
+#: lib/Query.php:225
+msgid "E_xecute Query"
+msgstr ""
+
+#: query/index.php:164
+msgid "Edit"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr ""
+
+#: admin/index.php:942 lib/Forms/Admin/Attribute.php:57
+#: lib/Forms/Admin/Attribute.php:86
+msgid "Edit Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:266
+msgid "Edit Attribute Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr ""
+
+#: admin/index.php:1077 lib/Forms/Admin/Reply.php:36
+#: lib/Forms/Admin/Reply.php:64
+msgid "Edit Form Reply"
+msgstr ""
+
+#: lib/Forms/Query.php:90
+msgid "Edit Group Criterion"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr ""
+
+#: admin/index.php:584 lib/Forms/Admin/Priority.php:36
+#: lib/Forms/Admin/Priority.php:59
+msgid "Edit Priority"
+msgstr ""
+
+#: lib/Forms/Query.php:168
+msgid "Edit Property Criterion"
+msgstr ""
+
+#: admin/index.php:326 lib/Forms/Admin/Queue.php:44
+#: lib/Forms/Admin/Queue.php:47
+msgid "Edit Queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr ""
+
+#: admin/index.php:449 lib/Forms/Admin/State.php:35
+#: lib/Forms/Admin/State.php:56
+msgid "Edit State"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr ""
+
+#: lib/Forms/Query.php:125
+msgid "Edit Text Criterion"
+msgstr ""
+
+#: admin/index.php:139 lib/Forms/Admin/Type.php:35
+msgid "Edit Type"
+msgstr ""
+
+#: lib/Forms/Query.php:41
+msgid "Edit User Criterion"
+msgstr ""
+
+#: admin/index.php:811 lib/Forms/Admin/Version.php:36
+#: lib/Forms/Admin/Version.php:59
+msgid "Edit Version"
+msgstr ""
+
+#: lib/Query.php:221
+msgid "Edit _Permissions"
+msgstr ""
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr ""
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr ""
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr ""
+
+#: lib/api.php:668
+msgid "Empty attachment"
+msgstr ""
+
+#: scripts/mail-filter.php:188 scripts/mail-filter.php:208
+msgid "Error processing message:"
+msgstr ""
+
+#: query/index.php:191
+#, php-format
+msgid "Error: Unknown query form \"%s\", defaulting to properties"
+msgstr ""
+
+#: lib/Query.php:158
+msgid "Exact Match"
+msgstr ""
+
+#: query/run.php:111
+msgid "Execute Query"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr ""
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr ""
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr ""
+
+#: lib/api.php:912
+msgid "Form Replies"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr ""
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr ""
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr ""
+
+#: lib/api.php:884
+msgid "Hidden Comments"
+msgstr ""
+
+#: ticket/index.php:43
+msgid "History"
+msgstr ""
+
+#: query/index.php:165
+msgid "Hoist Children"
+msgstr ""
+
+#: lib/Whups.php:667 lib/Whups.php:674 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr ""
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+
+#: query/index.php:166
+msgid "Insert And"
+msgstr ""
+
+#: lib/Forms/Query.php:21
+msgid "Insert Branch"
+msgstr ""
+
+#: query/index.php:168
+msgid "Insert Not"
+msgstr ""
+
+#: query/index.php:167
+msgid "Insert Or"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr ""
+
+#: lib/Whups.php:261 lib/api.php:659
+msgid "Invalid Ticket Id"
+msgstr ""
+
+#: lib/api.php:707
+msgid "Invalid argument: Missing attribute name or value."
+msgstr ""
+
+#: lib/api.php:692
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr ""
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr ""
+
+#: lib/api.php:570
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr ""
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr ""
+
+#: lib/Forms/Query.php:345
+msgid "Load Query"
+msgstr ""
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr ""
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr ""
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr ""
+
+#: lib/Forms/Query.php:272
+msgid "Match"
+msgstr ""
+
+#: lib/Forms/Query.php:45 lib/Forms/Query.php:129 lib/Forms/Query.php:273
+msgid "Match Operator"
+msgstr ""
+
+#: lib/Query.php:162
+msgid "Match Pattern"
+msgstr ""
+
+#: lib/Query.php:161
+msgid "Match Word"
+msgstr ""
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr ""
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr ""
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr ""
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr ""
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr ""
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr ""
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr ""
+
+#: search.php:130 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr ""
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr ""
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr ""
+
+#: lib/api.php:978
+msgid "My tickets by assignment date"
+msgstr ""
+
+#: lib/api.php:977
+msgid "My tickets by creation date"
+msgstr ""
+
+#: lib/api.php:979
+msgid "My tickets by due date"
+msgstr ""
+
+#: lib/api.php:980
+msgid "My tickets by resolution date"
+msgstr ""
+
+#: lib/Forms/Query.php:356
+msgid "Name"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr ""
+
+#: lib/Query.php:211
+msgid "Ne_w Query"
+msgstr ""
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr ""
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr ""
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr ""
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr ""
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr ""
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr ""
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr ""
+
+#: ticket/delete.php:33 lib/Forms/Query.php:383 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "No"
+msgstr ""
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr ""
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr ""
+
+#: lib/Block/query.php:64 lib/Driver/sql.php:553
+msgid "No query to run"
+msgstr ""
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr ""
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr ""
+
+#: reports.php:19
+msgid "No stats available."
+msgstr ""
+
+#: lib/Driver.php:517
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr ""
+
+#: lib/View.php:33
+#, php-format
+msgid "No such view \"%s\" found"
+msgstr ""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr ""
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr ""
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr ""
+
+#: lib/Whups.php:716
+msgid "No tickets matched your search criteria."
+msgstr ""
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:88
+msgid "None"
+msgstr ""
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:26
+msgid "Not"
+msgstr ""
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr ""
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr ""
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr ""
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr ""
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr ""
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr ""
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr ""
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr ""
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr ""
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr ""
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr ""
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr ""
+
+#: queue/rss.php:119 queue/index.php:43 queue/index.php:57
+#, php-format
+msgid "Open tickets in %s"
+msgstr ""
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr ""
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:25
+msgid "Or"
+msgstr ""
+
+#: lib/Whups.php:681 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr ""
+
+#: lib/Whups.php:866
+#, php-format
+msgid "Permanently delete %s?"
+msgstr ""
+
+#: ticket/update.php:22 ticket/type.php:74 ticket/delete.php:51
+#: ticket/queue.php:131 ticket/deleteAttachment.php:21
+msgid "Permission Denied"
+msgstr ""
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:196
+msgid "Permission Denied."
+msgstr ""
+
+#: query/run.php:44 query/index.php:31 lib/Forms/Query.php:393
+#, php-format
+msgid "Permission denied."
+msgstr ""
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr ""
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:669 lib/Whups.php:678
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:147
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:198
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr ""
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr ""
+
+#: search.php:130
+msgid "Public Queries"
+msgstr ""
+
+#: query/index.php:172
+msgid "Query Builder"
+msgstr ""
+
+#: lib/Forms/Query.php:321
+msgid "Query Name"
+msgstr ""
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr ""
+
+#: query/rss.php:63 query/run.php:79 lib/Block/query.php:3
+#: lib/Block/query.php:51
+msgid "Query Results"
+msgstr ""
+
+#: lib/Forms/Query.php:323
+msgid "Query Slug"
+msgstr ""
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr ""
+
+#: lib/Whups.php:679 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Renderer/Query.php:94 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:39 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr ""
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr ""
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr ""
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr ""
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr ""
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr ""
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr ""
+
+#: lib/api.php:175 lib/api.php:887
+msgid "Queues"
+msgstr ""
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Query.php:384
+msgid "Really delete this query? This operation is not undoable."
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr ""
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr ""
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr ""
+
+#: search.php:114
+msgid "Refine Search"
+msgstr ""
+
+#: admin/index.php:1170
+msgid "Reminders were sent."
+msgstr ""
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr ""
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr ""
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr ""
+
+#: reports.php:24
+msgid "Reports"
+msgstr ""
+
+#: lib/Whups.php:680 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr ""
+
+#: lib/Whups.php:685 lib/Ticket.php:991 lib/Driver.php:199 lib/api.php:1021
+#: config/prefs.php.dist:54
+msgid "Resolved"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr ""
+
+#: lib/Forms/EditTicket.php:166
+msgid "Restrict Comment to:"
+msgstr ""
+
+#: lib/Whups.php:306
+msgid "S_et Queue"
+msgstr ""
+
+#: lib/Query.php:229
+msgid "Sa_ve Query"
+msgstr ""
+
+#: templates/view/results.inc:96 lib/Forms/Query.php:319
+msgid "Save"
+msgstr ""
+
+#: query/index.php:229
+msgid "Save Criterion"
+msgstr ""
+
+#: lib/Forms/Query.php:318
+msgid "Save Query"
+msgstr ""
+
+#: search.php:69 lib/Forms/Search.php:19
+msgid "Save as Query"
+msgstr ""
+
+#: search.php:107 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr ""
+
+#: lib/Forms/Query.php:276
+#, php-format
+msgid "Search %s Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:279
+msgid "Search Attribute"
+msgstr ""
+
+#: lib/Forms/Query.php:48 lib/Forms/Query.php:131
+msgid "Search Comments"
+msgstr ""
+
+#: lib/Forms/Query.php:46
+msgid "Search Owners"
+msgstr ""
+
+#: lib/Forms/Query.php:47
+msgid "Search Requester"
+msgstr ""
+
+#: search.php:99
+msgid "Search Results"
+msgstr ""
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr ""
+
+#: lib/Forms/Query.php:130
+msgid "Search Summary"
+msgstr ""
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr ""
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr ""
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr ""
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr ""
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr ""
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr ""
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr ""
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr ""
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr ""
+
+#: lib/api.php:906
+msgid "Set Requester"
+msgstr ""
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr ""
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr ""
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr ""
+
+#: lib/Whups.php:311
+msgid "Set _Type"
+msgstr ""
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr ""
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr ""
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+
+#: templates/view/results.inc:37 templates/view/results.inc:41
+#, php-format
+msgid "Sort by %s"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr ""
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:670 lib/Whups.php:676
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:193 config/prefs.php.dist:47
+msgid "State"
+msgstr ""
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr ""
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr ""
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr ""
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr ""
+
+#: query/run.php:93 query/run.php:94
+msgid "Subscribe to this query"
+msgstr ""
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr ""
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr ""
+
+#: ticket/delete.php:30 lib/Whups.php:668 lib/Whups.php:675 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Renderer/Query.php:89
+#: lib/Forms/CreateTicket.php:152 lib/Forms/EditTicket.php:58
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr ""
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Search.php:42
+msgid "Summary like"
+msgstr ""
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr ""
+
+#: lib/Forms/Query.php:128
+msgid "Text"
+msgstr ""
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1269
+msgid "That queue slug is already taken. Please select another."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr ""
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr ""
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:1006
+msgid "The attribute has been deleted."
+msgstr ""
+
+#: admin/index.php:974
+msgid "The attribute has been modified."
+msgstr ""
+
+#: admin/index.php:1015
+msgid "The attribute was not deleted."
+msgstr ""
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr ""
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr ""
+
+#: admin/index.php:1043
+#, php-format
+msgid "The form reply \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:1135
+msgid "The form reply has been deleted."
+msgstr ""
+
+#: admin/index.php:1108
+msgid "The form reply has been modified."
+msgstr ""
+
+#: admin/index.php:1144
+msgid "The form reply was not deleted."
+msgstr ""
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr ""
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr ""
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr ""
+
+#: lib/Forms/Query.php:397
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr ""
+
+#: lib/Forms/Query.php:399
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr ""
+
+#: lib/Forms/Query.php:364
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr ""
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr ""
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr ""
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr ""
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr ""
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr ""
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr ""
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr ""
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr ""
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr ""
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr ""
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr ""
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr ""
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr ""
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr ""
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr ""
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr ""
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr ""
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr ""
+
+#: lib/Forms/Query.php:279
+msgid "There are no attributes defined."
+msgstr ""
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr ""
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr ""
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr ""
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr ""
+
+#: lib/Forms/Search.php:37
+msgid "There are no queues which you can search."
+msgstr ""
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr ""
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr ""
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr ""
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr ""
+
+#: admin/index.php:1051
+msgid "There was an error creating the form reply:"
+msgstr ""
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr ""
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr ""
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr ""
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr ""
+
+#: admin/index.php:1010
+msgid "There was an error deleting the attribute:"
+msgstr ""
+
+#: admin/index.php:1139
+msgid "There was an error deleting the form reply:"
+msgstr ""
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr ""
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr ""
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr ""
+
+#: ticket/delete.php:75
+msgid "There was an error deleting the ticket:"
+msgstr ""
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr ""
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr ""
+
+#: admin/index.php:982
+msgid "There was an error editing the attribute:"
+msgstr ""
+
+#: admin/index.php:1104
+msgid "There was an error editing the form reply:"
+msgstr ""
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr ""
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr ""
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr ""
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr ""
+
+#: queue/index.php:52
+#, php-format
+msgid "There was an error locating tickets in this queue: "
+msgstr ""
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr ""
+
+#: search.php:92
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr ""
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr ""
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr ""
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr ""
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr ""
+
+#: lib/Query.php:377 lib/Query.php:550
+msgid "This query element cannot be edited."
+msgstr ""
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr ""
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr ""
+
+#: lib/api.php:949
+#, php-format
+msgid "Ticket %s - %s"
+msgstr ""
+
+#: lib/Driver/sql.php:1044
+#, php-format
+msgid "Ticket %s was not found."
+msgstr ""
+
+#: search.php:122
+msgid "Ticket Search"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr ""
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr ""
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr ""
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr ""
+
+#: lib/api.php:970
+msgid "Tickets"
+msgstr ""
+
+#: query/rss.php:70
+#, php-format
+msgid "Tickets matching the query \"%s\"."
+msgstr ""
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+
+#: ticket/queue.php:89 lib/Whups.php:677 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Renderer/Query.php:108 lib/Forms/Query.php:174
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr ""
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr ""
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr ""
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr ""
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr ""
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr ""
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr ""
+
+#: lib/Renderer/Query.php:141 lib/Renderer/Query.php:181
+#, php-format
+msgid "Unknown node type %s"
+msgstr ""
+
+#: lib/api.php:896
+msgid "Update"
+msgstr ""
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr ""
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr ""
+
+#: lib/Whups.php:683 lib/Ticket.php:981
+msgid "Updated"
+msgstr ""
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr ""
+
+#: lib/Forms/Query.php:44
+msgid "User ID"
+msgstr ""
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr ""
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr ""
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr ""
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr ""
+
+#: ticket/type.php:43 ticket/queue.php:50 lib/Forms/AddComment.php:38
+msgid "Viewable only by members of"
+msgstr ""
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr ""
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr ""
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr ""
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr ""
+
+#: ticket/delete.php:33 lib/Forms/Query.php:383 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "Yes"
+msgstr ""
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr ""
+
+#: lib/Driver/sql.php:1053
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr ""
+
+#: lib/api.php:548
+msgid "You do not have permission to update this ticket."
+msgstr ""
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr ""
+
+#: lib/Forms/Query.php:353 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr ""
+
+#: lib/Whups.php:710
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+#: lib/Forms/CreateTicket.php:132 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr ""
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr ""
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr ""
+
+#: lib/Whups.php:774
+msgid "_Admin"
+msgstr ""
+
+#: lib/Whups.php:298
+msgid "_Comment"
+msgstr ""
+
+#: lib/Whups.php:316
+msgid "_Delete"
+msgstr ""
+
+#: lib/Query.php:232
+msgid "_Delete Query"
+msgstr ""
+
+#: lib/Query.php:213
+msgid "_Edit Query"
+msgstr ""
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr ""
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr ""
+
+#: query/index.php:156
+msgid "_Group Criteria"
+msgstr ""
+
+#: lib/Whups.php:292
+msgid "_History"
+msgstr ""
+
+#: lib/Query.php:226
+msgid "_Load Query"
+msgstr ""
+
+#: lib/Whups.php:765
+#, php-format
+msgid "_My %s"
+msgstr ""
+
+#: lib/Whups.php:768
+msgid "_New Ticket"
+msgstr ""
+
+#: query/index.php:154
+msgid "_Property Criteria"
+msgstr ""
+
+#: lib/Whups.php:769
+msgid "_Query Builder"
+msgstr ""
+
+#: lib/Whups.php:770
+msgid "_Reports"
+msgstr ""
+
+#: lib/Whups.php:767
+msgid "_Search"
+msgstr ""
+
+#: query/index.php:158
+msgid "_Text Criteria"
+msgstr ""
+
+#: lib/Whups.php:294
+msgid "_Update"
+msgstr ""
+
+#: query/index.php:155
+msgid "_User Criteria"
+msgstr ""
+
+#: lib/Whups.php:302
+msgid "_Watch"
+msgstr ""
+
+#: lib/Renderer/Query.php:161
+msgid "contains (case insensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:165
+msgid "contains (case sensitive) substring"
+msgstr ""
+
+#: lib/Renderer/Query.php:169
+msgid "contains the word"
+msgstr ""
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr ""
+
+#: lib/api.php:958
+msgid "estimated time"
+msgstr ""
+
+#: lib/Renderer/Query.php:157
+msgid "is"
+msgstr ""
+
+#: lib/Renderer/Query.php:149
+msgid "is greater than"
+msgstr ""
+
+#: lib/Renderer/Query.php:153
+msgid "is less than"
+msgstr ""
+
+#: lib/Renderer/Query.php:173
+msgid "matches the pattern"
+msgstr ""
--- /dev/null
+# Whups Traditional Chinese Translation
+# Copyright 2002 David Chang.
+# David Chang <david@thbuo.gov.tw>, 2002.
+# liaobin <liaobin@jite.net>,2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: whups\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2004-03-22 16:07+0100\n"
+"PO-Revision-Date: 2003-01-08 10:53+0100\n"
+"Last-Translator: liaobin <liaobin@jite.net>\n"
+"Language-Team: Chinese <i18n@linux.net.cn>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: admin.php:597
+#, fuzzy, php-format
+msgid "%s added to those responsible for '%s'"
+msgstr "'%s' ÏÖÔÚ½«¶Ô '%s' µ£¸ºÔðÈÎ"
+
+#: templates/reports/stats.inc:20
+#, php-format
+msgid "%s days"
+msgstr "%s Ìì"
+
+#: templates/comment.inc:55
+#, php-format
+msgid "%s removed from this ticket by %s on %s"
+msgstr "%s ÒÑɾ³ý´Ó´Ë¹¤×÷µ¥±»%sÔÚ%s"
+
+#: admin.php:636
+#, php-format
+msgid "'%s' is no longer among those responsible for '%s'"
+msgstr "'%s' ½«²»ÔÙ¶Ô '%s' µ£¸ºÔðÈÎ"
+
+#: admin.php:79
+msgid "- Stage 1"
+msgstr "- ²½Öè 1"
+
+#: admin.php:84
+msgid "- Stage 2"
+msgstr "- ²½Öè 2"
+
+#: scripts/mail-filter.php:98
+msgid "--priority option must be supplied."
+msgstr "--ÓÅÏȼ¶Ñ¡Ïî±ØÐë±»Ö§³Ö¡£"
+
+#: scripts/mail-filter.php:70
+msgid "--queue option must be supplied."
+msgstr ""
+
+#: scripts/mail-filter.php:112
+msgid "--state option must be supplied."
+msgstr "--״̬ѡÏî±ØÐë±»Ö§³Ö¡£"
+
+#: scripts/mail-filter.php:84
+msgid "--type option must be supplied."
+msgstr "--ÀàÐÍÑ¡Ïî±ØÐë±»Ö§³Ö¡£"
+
+#: lib/Driver.php:277
+#, php-format
+msgid "-Added By: %s\n"
+msgstr "-±»: %s ÐÂÔö\n"
+
+#: lib/Driver.php:322 lib/Driver.php:343 lib/Driver.php:364 lib/Driver.php:384
+#, php-format
+msgid "-Client: %s"
+msgstr "-¿Í»§£º %s"
+
+#: lib/Driver.php:257 lib/Driver.php:275
+#, php-format
+msgid "-Client: %s\n"
+msgstr "-¿Í»§£º %s\n"
+
+#: lib/Driver.php:259
+#, php-format
+msgid "-Created By: %s\n"
+msgstr "-±»: %s ½¨Á¢\n"
+
+#: lib/Driver.php:345
+#, php-format
+msgid "-New Priority: %s"
+msgstr "-н¨ÓÅÏÈȨ: %s"
+
+#: lib/Driver.php:386
+#, php-format
+msgid "-New Queue: %s"
+msgstr "-н¨¶ÓÁÐ: %s"
+
+#: lib/Driver.php:324
+#, php-format
+msgid "-New State: %s"
+msgstr "-н¨×´Ì¬: %s"
+
+#: lib/Driver.php:366
+#, fuzzy, php-format
+msgid "-New Type: %s"
+msgstr "-н¨×´Ì¬: %s"
+
+#: lib/Driver.php:320 lib/Driver.php:341 lib/Driver.php:362
+#, php-format
+msgid "-Queue: %s"
+msgstr "-¶ÓÁÐ: %s"
+
+#: lib/Driver.php:255 lib/Driver.php:273
+#, php-format
+msgid "-Queue: %s\n"
+msgstr "-¶ÓÁÐ: %s\n"
+
+#: lib/Driver.php:260 lib/Driver.php:278 lib/Driver.php:325 lib/Driver.php:346
+#: lib/Driver.php:367 lib/Driver.php:387
+msgid "-Summary:"
+msgstr "-ժҪ:"
+
+#: lib/Driver.php:319 lib/Driver.php:340 lib/Driver.php:361 lib/Driver.php:382
+#, php-format
+msgid "-Ticket %s"
+msgstr "-¹¤×÷µ¥ %s"
+
+#: lib/Driver.php:254 lib/Driver.php:272
+#, php-format
+msgid "-Ticket %s\n"
+msgstr "-¹¤×÷µ¥ %s\n"
+
+#: lib/api.php:171
+msgid "<i>No summary</i>"
+msgstr "<i>ûÓÐÕªÒª</i>"
+
+#: view.php:55
+#, php-format
+msgid "Access denied to %s"
+msgstr "ûÓÐȨÏÞ %s"
+
+#: lib/Admin.php:719
+msgid "Add Attribute"
+msgstr "ÐÂÔöÊôÐÔ"
+
+#: lib/Query.php:536
+msgid "Add Attribute Criterion"
+msgstr "ÐÂÔöÊôÐÔ¹æÔò"
+
+#: details.php:39
+msgid "Add Comment"
+msgstr "ÐÂÔöÆÀÂÛ"
+
+#: details.php:105
+msgid "Add Comment Succeeded"
+msgstr "ÐÂÔöÆÀÂ۳ɹ¦"
+
+#: query.php:178
+msgid "Add Criterion"
+msgstr "ÐÂÔö¹æÔò"
+
+#: lib/Admin.php:543
+msgid "Add Priority"
+msgstr "ÐÂÔöÓÅÏÈȨ"
+
+#: lib/Query.php:481
+msgid "Add Property Criterion"
+msgstr "ÐÂÔöÌØÐÔ¹æÔò"
+
+#: lib/Admin.php:102 lib/Admin.php:103
+msgid "Add Queue"
+msgstr "ÐÂÔö¶ÓÁÐ"
+
+#: lib/Admin.php:451
+msgid "Add State"
+msgstr "ÐÂÔö״̬"
+
+#: lib/Admin.php:14 lib/Admin.php:15
+msgid "Add Subject"
+msgstr "ÐÂÔöÖ÷Ìâ"
+
+#: lib/Query.php:440
+msgid "Add Text Criterion"
+msgstr "ÐÂÔöÄÚÈݹæÔò"
+
+#: lib/Admin.php:308 lib/Admin.php:309
+msgid "Add Type"
+msgstr "ÐÂÔöÀàÐÍ"
+
+#: admin.php:79 admin.php:84
+#, php-format
+msgid "Add Type %s"
+msgstr "ÐÂÔöÀàÐÍ %s"
+
+#: lib/Query.php:389
+msgid "Add User Criterion"
+msgstr "ÐÂÔöÓû§¹æÔò"
+
+#: lib/Admin.php:245
+msgid "Add Users"
+msgstr "ÐÂÔöÓû§"
+
+#: lib/Admin.php:631
+msgid "Add Version"
+msgstr "ÐÂÔö°æ±¾"
+
+#: lib/Driver.php:189
+#, php-format
+msgid "Added a %s link to %s."
+msgstr "ÒÑÌí¼Ó%sÁ¬½Óµ½'%s"
+
+#: create.php:147
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "ÐÂÔö¹¤×÷µ¥Ê§°Ü: %s."
+
+#: lib/Search.php:175 lib/Search.php:236
+msgid "Additional Comment"
+msgstr "¸½¼ÓÆÀÂÛ"
+
+#: templates/menu/menu.inc:23 lib/api.php:146
+msgid "Admin"
+msgstr "¹ÜÀí"
+
+#: admin.php:50
+msgid "Administration"
+msgstr "¹ÜÀí"
+
+#: create.php:153
+msgid "An appropriate person has been notified of this request."
+msgstr "ÔÚÕâ´ÎµÄͶƱÖÐÒÑ֪ͨһλÊʵ±µÄÈËÔ±"
+
+#: templates/queryrenderer.inc:97 lib/Query.php:345
+msgid "And"
+msgstr "ÇÒ"
+
+#: search.php:49 search.php:59 search.php:62 search.php:78 search.php:95
+#: lib/Query.php:487 lib/Query.php:491 lib/Search.php:29 lib/Search.php:71
+#: lib/Search.php:75
+msgid "Any"
+msgstr "ÈκÏ"
+
+#: lib/Search.php:152 lib/Search.php:181 lib/Search.php:240 lib/Search.php:316
+#: lib/Search.php:356 lib/Search.php:414 lib/Search.php:483 lib/Search.php:585
+msgid "Any Group"
+msgstr "ÈκÎÓû§×é"
+
+#: config/prefs.php.dist:47
+msgid "Ascending"
+msgstr "ÓÉÏÈÖÁºó"
+
+#: details.php:42
+msgid "Assign Ticket"
+msgstr "·ÖÅ乤×÷µ¥"
+
+#: details.php:173
+msgid "Assign Ticket Succeeded"
+msgstr "·ÖÅ乤×÷µ¥³É¹¦"
+
+#: lib/Whups.php:321 lib/Search.php:116 lib/Driver.php:74
+#: config/prefs.php.dist:36
+msgid "Assigned"
+msgstr "ÒÑ·ÖÅä"
+
+#: lib/Driver.php:301
+#, php-format
+msgid "Assigned By : %s"
+msgstr "±»: %s ·ÖÅä"
+
+#: lib/Driver.php:300
+#, php-format
+msgid "Assigned To : %s"
+msgstr "ÒÑ·ÖÅ䏸: %s"
+
+#: admin.php:1012
+msgid "Associations updated successfully."
+msgstr "ÁªÏµ¸üгɹ¦¡£"
+
+#: lib/Search.php:174
+msgid "Attachment"
+msgstr "¸½¼þ"
+
+#: templates/comment.inc:105
+#, php-format
+msgid "Attachment '%s' uploaded by %s on %s"
+msgstr "¸½¼þ%sÒѱ»%sÔÚ%sÉÏ´«"
+
+#: details.php:129
+msgid "Attachment successfully uploaded"
+msgstr "¸½¼þÒѳɹ¦ÉÏ´«"
+
+#: lib/Search.php:118
+msgid "Attachments"
+msgstr "¸½¼þ"
+
+#: query.php:40
+msgid "Attribute Criteria"
+msgstr "ÊôÐÔ¹æÔò"
+
+#: lib/Admin.php:723 lib/Admin.php:769 lib/Admin.php:792
+msgid "Attribute Description"
+msgstr "ÊôÐÔÃèÊö"
+
+#: lib/Admin.php:722 lib/Admin.php:747 lib/Admin.php:766 lib/Admin.php:789
+msgid "Attribute Name"
+msgstr "ÊôÐÔÃû³Æ"
+
+#: lib/Admin.php:380
+msgid "Attributes for this Type"
+msgstr "´ËÊôÐÔµÄ״̬"
+
+#: config/prefs.php.dist:118
+msgid "Autolink to other tickets in comments?"
+msgstr "ÔÚÆÀÂÛÖÐ×Ô¶¯Á¬½Óµ½ÆäËü¹¤×÷µ¥?"
+
+#: lib/Reports.php:9
+msgid "Average days to close by Owner"
+msgstr "ÒÔÓµÓÐÕ߯½¾ùÈÕÊý¹Ø±Õ"
+
+#: lib/Reports.php:11
+msgid "Average days to close by Queue"
+msgstr "ÒÔ¶ÓÁÐÆ½¾ùÈÕÊý¹Ø±Õ"
+
+#: lib/Reports.php:10
+msgid "Average days to close by Requester"
+msgstr "ÒÔͶƱÕ߯½¾ùÈÕÊý¹Ø±Õ"
+
+#: lib/Reports.php:13
+msgid "Average time a ticket is unresolved"
+msgstr "ÒÔδ½â¾öƽ¾ùÈÕÊý¹Ø±Õ"
+
+#: scripts/mail-filter.php:94
+#, php-format
+msgid "Bad type `%s' for queue."
+msgstr "¶ÓÁдíÎóµÄÀàÐÍ%s"
+
+#: lib/Query.php:350
+msgid "Branch Type"
+msgstr "·ÖÖ§ÀàÐÍ"
+
+#: lib/Admin.php:156
+msgid "Can tickets in this Queue be assigned to any client?"
+msgstr "ÔÚÕâ¸ö¶ÓÁÐÖеŤ×÷µ¥ÄÜ·ÖÅ䏸Èκοͻ§Âð£¿"
+
+#: lib/Query.php:44
+msgid "Case Insensitive Substring"
+msgstr "×Ó×Ö·û´®²»·Ö´óСд"
+
+#: lib/Query.php:45
+msgid "Case Sensitive Substring"
+msgstr "×Ó×Ö·û´®Çø·Ö´óСд"
+
+#: templates/queryrenderer.inc:28
+msgid "Change"
+msgstr "±ä¸ü"
+
+#: lib/Query.php:361
+msgid "Change Ticket Type"
+msgstr "±ä¸ü¹¤×÷µ¥ÀàÐÍ"
+
+#: config/prefs.php.dist:11
+#, fuzzy
+msgid "Change display options such as how search results are sorted."
+msgstr "¸ü¸ÄÏÔʾѡÏî, Èç³ÊÏÖ·ç¸ñ,²éÕÒ½á¹ûÈçºÎÅÅÐòµÈ."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "¹¤×÷µ¥»î¶¯µÄÓʼþ֪ͨѡÏî±ä¸ü."
+
+#: query.php:45
+msgid "Choose Action:"
+msgstr "Ñ¡Ôñ»î¶¯:"
+
+#: config/prefs.php.dist:128
+msgid "Chronological (oldest first)"
+msgstr "°´Äê´ú˳Ðò(ÀϵÄÓÅÏÈ)"
+
+#: templates/savedsearches.inc:23
+msgid "Clear All Searches"
+msgstr "Çå¿ÕËùÓвéѯ"
+
+#: lib/Create.php:70 lib/Search.php:51 lib/Search.php:104
+msgid "Client"
+msgstr "¿Í»§"
+
+#: lib/Driver.php:298
+#, php-format
+msgid "Client : %s"
+msgstr "¿Í»§ £º%s"
+
+#: lib/Search.php:516
+msgid "Clients"
+msgstr "¿Í»§"
+
+#: lib/Admin.php:431
+msgid "Clone"
+msgstr "¿Ë¡"
+
+#: lib/Admin.php:437
+msgid "Clone Description"
+msgstr "¿Ë¡ÃèÊö"
+
+#: admin.php:120 lib/Admin.php:323
+msgid "Clone Type"
+msgstr "¿Ë¡ÀàÐÍ"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "¶ººÅ·Ö¸ôÖµ (CSV ÀàÐÍÎļþ)"
+
+#: templates/queryrenderer.inc:111 lib/Search.php:145 lib/Search.php:310
+#: lib/Search.php:350 lib/Search.php:390 lib/Search.php:408 lib/Search.php:477
+#: lib/Search.php:579
+msgid "Comment"
+msgstr "ÆÀÂÛ"
+
+#: lib/Driver.php:451
+#, fuzzy, php-format
+msgid "Comment by %s on %s:"
+msgstr "-%s ÓÚ %s ÆÀÂÛ:"
+
+#: templates/comment.inc:153
+#, fuzzy, php-format
+msgid "Comment from %s on %s"
+msgstr "-%s ÓÚ %s ÆÀÂÛ:"
+
+#: templates/queryrenderer.inc:110
+msgid "Commentor"
+msgstr "ÆÀÂÛÕß"
+
+#: lib/Admin.php:435
+#, php-format
+msgid "Copy of %s"
+msgstr "%sµÄ¿½±´"
+
+#: lib/Admin.php:374
+msgid "Create Default Priorities"
+msgstr "½¨Á¢Ä¬ÈÏÓÅÏȼ¶"
+
+#: lib/Admin.php:364
+msgid "Create Default States"
+msgstr "½¨Á¢Ä¬Èϲ½Öè"
+
+#: config/prefs.php.dist:60
+msgid "Create Ticket"
+msgstr "½¨Á¢¹¤×÷µ¥"
+
+#: lib/Create.php:24
+msgid "Create Ticket - Step 1"
+msgstr "½¨Á¢¹¤×÷µ¥ - ²½Öè 1"
+
+#: lib/Create.php:50
+msgid "Create Ticket - Step 2"
+msgstr "½¨Á¢¹¤×÷µ¥ - ²½Öè 2"
+
+#: lib/Create.php:95
+msgid "Create Ticket - Step 3"
+msgstr "½¨Á¢¹¤×÷µ¥ - ²½Öè 3"
+
+#: lib/Create.php:131
+msgid "Create Ticket - Step 4"
+msgstr "½¨Á¢¹¤×÷µ¥ - ²½Öè 4"
+
+#: lib/Whups.php:320 lib/Search.php:115 config/prefs.php.dist:35
+msgid "Created"
+msgstr "Òѽ¨Á¢"
+
+#: query.php:168 query.php:185
+msgid "Current Query"
+msgstr "Ŀǰ²éѯ"
+
+#: templates/queryrenderer.inc:26
+msgid "Current Ticket Type"
+msgstr "Ŀǰ¹¤×÷µ¥ÀàÐÍ"
+
+#: lib/Query.php:363
+msgid "Current Type"
+msgstr "ĿǰÀàÐÍ"
+
+#: config/prefs.php.dist:91
+msgid "Date/Time format for search results"
+msgstr "ÒÔ ÈÕÆÚ/ʱ¼ä Ϊ²éÕÒ½á¹ûµÄ¸ñʽ"
+
+#: config/prefs.php.dist:38
+msgid "Default sorting criteria:"
+msgstr "Ô¤ÉèÅÅÁйæÔò:"
+
+#: config/prefs.php.dist:49
+msgid "Default sorting direction:"
+msgstr "Ô¤ÉèÅÅÁз½Ïò:"
+
+#: query.php:46
+msgid "Delete"
+msgstr "ɾ³ý"
+
+#: admin.php:900 lib/Admin.php:735
+msgid "Delete Attribute"
+msgstr "ɾ³ýÊôÐÔ"
+
+#: lib/Admin.php:781
+msgid "Delete Attribute Confirmation"
+msgstr "ɾ³ýÊôÐÔÈ·ÈÏ"
+
+#: admin.php:509 lib/Admin.php:559
+msgid "Delete Priority"
+msgstr "ɾ³ýÓÅÏÈȨ"
+
+#: lib/Admin.php:605
+msgid "Delete Priority Confirmation"
+msgstr "ɾ³ýÓÅÏÈȨȷÈÏ"
+
+#: admin.php:277 lib/Admin.php:118
+msgid "Delete Queue"
+msgstr "ɾ³ý¶ÓÁÐ"
+
+#: lib/Admin.php:220
+msgid "Delete Queue Confirmation"
+msgstr "ɾ³ý¶ÓÁÐÈ·ÈÏ"
+
+#: templates/savedsearches.inc:29 templates/savedsearches.inc:30
+msgid "Delete Search"
+msgstr "ɾ³ý²éѯ"
+
+#: admin.php:391 lib/Admin.php:468
+msgid "Delete State"
+msgstr "ɾ³ý״̬"
+
+#: lib/Admin.php:517
+msgid "Delete State Confirmation"
+msgstr "ɾ³ý״̬ȷÈÏ"
+
+#: admin.php:683 lib/Admin.php:29
+msgid "Delete Subject"
+msgstr "ɾ³ýÖ÷Ìâ"
+
+#: lib/Admin.php:80
+msgid "Delete Subject Confirmation"
+msgstr "ɾ³ýÖ÷ÌâÈ·ÈÏ"
+
+#: details.php:52
+msgid "Delete Ticket"
+msgstr "ɾ³ý¹¤×÷µ¥"
+
+#: details.php:350
+msgid "Delete Ticket Succeeded"
+msgstr "ɾ³ý¹¤×÷µ¥³É¹¦"
+
+#: admin.php:114 lib/Admin.php:323
+msgid "Delete Type"
+msgstr "ɾ³ýÀàÐÍ"
+
+#: lib/Admin.php:394
+msgid "Delete Type Confirmation"
+msgstr "ɾ³ýÀàÐÍÈ·ÈÏ"
+
+#: admin.php:783 lib/Admin.php:647
+msgid "Delete Version"
+msgstr "ɾ³ý°æ±¾"
+
+#: lib/Admin.php:693
+msgid "Delete Version Confirmation"
+msgstr "ɾ³ý°æ±¾È·ÈÏ"
+
+#: config/prefs.php.dist:48
+msgid "Descending"
+msgstr "½µÐò"
+
+#: lib/Create.php:120
+msgid "Description"
+msgstr "ÃèÊö"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "ÏÔʾѡÏî"
+
+#: lib/Whups.php:451
+msgid "Download"
+msgstr "ÏÂÔØ"
+
+#: query.php:47
+msgid "Edit"
+msgstr "±à¼"
+
+#: lib/Admin.php:143 lib/Admin.php:348
+#, php-format
+msgid "Edit %s"
+msgstr "±à¼ %s"
+
+#: admin.php:895 lib/Admin.php:735 lib/Admin.php:758
+msgid "Edit Attribute"
+msgstr "±à¼ÊôÐÔ"
+
+#: details.php:49 lib/Admin.php:382
+msgid "Edit Attributes"
+msgstr "±à¼ÊôÐÔ"
+
+#: lib/Admin.php:372
+msgid "Edit Priorities"
+msgstr "±à¼ÓÅÏÈȨ"
+
+#: admin.php:504 lib/Admin.php:559 lib/Admin.php:582
+msgid "Edit Priority"
+msgstr "±à¼ÓÅÏÈȨ"
+
+#: runquery.php:24
+msgid "Edit Query"
+msgstr "±à¼²éѯ"
+
+#: admin.php:271 lib/Admin.php:118
+msgid "Edit Queue"
+msgstr "±à¼¶ÓÁÐ"
+
+#: admin.php:28
+msgid "Edit Queues"
+msgstr "±à¼¶ÓÁÐ"
+
+#: admin.php:386 lib/Admin.php:468 lib/Admin.php:491
+msgid "Edit State"
+msgstr "±à¼×´Ì¬"
+
+#: lib/Admin.php:362
+msgid "Edit States"
+msgstr "±à¼×´Ì¬"
+
+#: admin.php:678 lib/Admin.php:29 lib/Admin.php:51
+msgid "Edit Subject"
+msgstr "±à¼Ö÷Ìâ"
+
+#: admin.php:30
+msgid "Edit Subjects"
+msgstr "±à¼Ö÷Ìâ"
+
+#: admin.php:108 lib/Admin.php:323
+msgid "Edit Type"
+msgstr "±à¼ÀàÐÍ"
+
+#: admin.php:29
+msgid "Edit Types"
+msgstr "±à¼ÀàÐÍ"
+
+#: admin.php:778 lib/Admin.php:647 lib/Admin.php:670
+msgid "Edit Version"
+msgstr "±à¼°æ±¾"
+
+#: lib/Admin.php:734
+msgid "Edit or Delete Attributes"
+msgstr "±à¼»òɾ³ýÊôÐÔ"
+
+#: lib/Admin.php:558
+msgid "Edit or Delete Priorities"
+msgstr "±à¼»òɾ³ýÓÅÏÈȨ"
+
+#: lib/Admin.php:117
+msgid "Edit or Delete Queues"
+msgstr "±à¼»òɾ³ý¶ÓÁÐ"
+
+#: lib/Admin.php:467
+msgid "Edit or Delete States"
+msgstr "±à¼»òɾ³ý״̬"
+
+#: lib/Admin.php:28
+msgid "Edit or Delete Subjects"
+msgstr "±à¼»òɾ³ýÖ÷Ìâ"
+
+#: lib/Admin.php:322
+msgid "Edit or Delete Types"
+msgstr "±à¼»òɾ³ýÀàÐÍ"
+
+#: lib/Admin.php:646
+msgid "Edit or Delete Versions"
+msgstr "±à¼»òɾ³ý°æ±¾"
+
+#: lib/Admin.php:196
+msgid "Edit the permissions on this queue"
+msgstr "±à¼´Ë¶ÓÁеÄȨÏÞ"
+
+#: lib/Admin.php:191
+msgid "Edit the users responsible for this queue"
+msgstr "±à¼´Ë¶ÓÁеĸºÔðÈË"
+
+#: lib/Admin.php:171
+msgid "Edit the versions for this queue"
+msgstr "±à¼´Ë¶ÓÁеİ汾"
+
+#: lib/Search.php:45
+#, php-format
+msgid "Error fetching clients: %s"
+msgstr "»ñÈ¡¿Í»§´íÎó£º%s"
+
+#: query.php:156
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "´íÎó: À´×Ô %s µÄδ֪²éѯ,Ô¤ÉèΪÐÔÖÊ"
+
+#: lib/Query.php:43
+msgid "Exact Match"
+msgstr "¾«È·Æ¥Åä"
+
+#: runquery.php:70 runquery.php:86 query.php:30
+msgid "Execute Query"
+msgstr "Ö´Ðвéѯ"
+
+#: lib/Admin.php:819
+msgid "For tickets from these queues"
+msgstr ""
+
+#: lib/Admin.php:823
+msgid "For tickets which are"
+msgstr ""
+
+#: templates/menu/menu.inc:48
+msgid "Go"
+msgstr "תµ½"
+
+#: lib/Create.php:158 lib/Search.php:226
+msgid "Group Owners"
+msgstr "Óû§×éÓµÓÐÕß"
+
+#: templates/menu/menu.inc:37
+msgid "Help"
+msgstr "°ïÖú"
+
+#: lib/api.php:707
+msgid "Hidden Comments"
+msgstr "Òþ²ØÆÀÂÛ"
+
+#: lib/Search.php:81
+msgid "Hide Assigned"
+msgstr "Òþ²ØÒÑ·ÖÅä"
+
+#: lib/Search.php:80
+msgid "Hide New"
+msgstr "Òþ²ØÐ½¨"
+
+#: lib/Search.php:82
+msgid "Hide Resolved"
+msgstr "Òþ²ØÒѽâ¾ö"
+
+#: lib/Search.php:79
+msgid "Hide Unconfirmed"
+msgstr "Òþ²ØÎ´È·ÈÏ"
+
+#: query.php:49
+msgid "Hoist"
+msgstr "ÉýÆð"
+
+#: templates/queryrenderer.inc:105 lib/Whups.php:313 lib/Query.php:483
+#: config/prefs.php.dist:28
+msgid "Id"
+msgstr "Id"
+
+#: lib/Admin.php:159
+#, fuzzy
+msgid "If not, select clients associated with this Queue"
+msgstr "ÓëÕâ¸ö¶ÓÁÐÏà¹ØÁªµÄÖ÷Ìâ"
+
+#: lib/Driver.php:405
+#, php-format
+msgid "If you believe you have recieved this mail in error, please contact %s."
+msgstr "Èç¹ûÄú¾õµÃÊÕµÄÕâ·âÐżþÓдíÎó,ÇëÓë %s ÁªÂç."
+
+#: lib/Search.php:54
+msgid ""
+"If you don't select any categories, no filtering will be done on ticket "
+"category."
+msgstr ""
+
+#: lib/Search.php:57
+msgid ""
+"If you don't select any types, no filtering will be done on ticket type."
+msgstr ""
+
+#: lib/Admin.php:826
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr ""
+
+#: templates/comment.inc:74
+#, fuzzy, php-format
+msgid "Initial priority of '%s' set by %s on %s"
+msgstr ", ³õʼÓÅÏÈȨ '%s'."
+
+#: templates/comment.inc:94
+#, php-format
+msgid "Initial queue of '%s' set by %s on %s"
+msgstr ""
+
+#: templates/comment.inc:64
+#, fuzzy, php-format
+msgid "Initial state of '%s' set by %s on %s"
+msgstr "'%s' µÄ³õʼ״̬"
+
+#: templates/comment.inc:84
+#, fuzzy, php-format
+msgid "Initial type of '%s' set by %s on %s"
+msgstr "'%s' µÄ³õʼ״̬"
+
+#: query.php:50
+msgid "Insert And"
+msgstr "²åÈëÇÒ"
+
+#: lib/Query.php:342
+msgid "Insert Branch"
+msgstr "²åÈë·ÖÖ§"
+
+#: query.php:52
+msgid "Insert Not"
+msgstr "²åÈë²»ÊÇ"
+
+#: query.php:51
+msgid "Insert Or"
+msgstr "²åÈë»ò"
+
+#: query.php:53
+msgid "Insert Query"
+msgstr "²åÈë²éѯ"
+
+#: lib/Admin.php:169
+msgid "Keep a set of versions for this queue?"
+msgstr "Ϊ´Ë¶ÓÁй̶¨Ò»×é°æ±¾?"
+
+#: lib/Driver.php:191
+msgid "Link added."
+msgstr "Á¬½ÓÒÑÌí¼õ¡£"
+
+#: runquery.php:26 query.php:31 lib/Query.php:612
+msgid "Load Query"
+msgstr "¼ÓÔØ²éѯ"
+
+#: templates/menu/menu.inc:28
+msgid "Login"
+msgstr "怬"
+
+#: config/prefs.php.dist:89
+msgid "MM/DD/YY"
+msgstr "ÔÂ/ÈÕ/Äê"
+
+#: config/prefs.php.dist:90
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "ÔÂ/ÈÕ/Äê ʱ:·Ö:Ãë"
+
+#: lib/Admin.php:429
+#, php-format
+msgid "Make a clone of %s"
+msgstr "´´½¨%sµÄ¿Ë¡"
+
+#: lib/Query.php:542
+msgid "Match"
+msgstr "Æ¥Åä"
+
+#: lib/Query.php:392 lib/Query.php:443 lib/Query.php:543
+msgid "Match Operator"
+msgstr "Æ¥Åä·û"
+
+#: lib/Query.php:47
+msgid "Match Pattern"
+msgstr "ÓëÑù±¾Æ¥Åä"
+
+#: lib/Query.php:46
+msgid "Match Word"
+msgstr "Óë×Ö·û´®Æ¥Åä"
+
+#: lib/Reports.php:14
+msgid "Maximum time a ticket is unresolved"
+msgstr "Ò»¸ö¹¤×÷µ¥Î´½â¾öµÄ×î´óʱ¼ä"
+
+#: lib/Reports.php:15
+msgid "Minimum time a ticket is unresolved"
+msgstr "Ò»¸ö¹¤×÷µ¥Î´½â¾öµÄ×îСʱ¼ä"
+
+#: config/prefs.php.dist:129
+msgid "Most recent first"
+msgstr "×î½üµÄÓÅÏÈ"
+
+#: query.php:48
+msgid "Move"
+msgstr "ÒÆ¶¯"
+
+#: details.php:332
+#, php-format
+msgid "Moved ticket %d to '%s'"
+msgstr "ÒÆ¶¯¹¤×÷µ¥%dµ½%s"
+
+#: mybugs.php:61 templates/menu/menu.inc:8
+#, php-format
+msgid "My %s"
+msgstr "ÎÒµÄ %s"
+
+#: mybugs.php:42
+msgid "My Assigned Tickets"
+msgstr "ÎÒµÄÒÑ·ÖÅ乤×÷µ¥"
+
+#: mybugs.php:58
+msgid "My Open Requests"
+msgstr "ÎÒËù¿ª·ÅµÄͶƱ"
+
+#: mybugs.php:75 search.php:176
+msgid "My Searches"
+msgstr "ÎҵIJéÕÒ"
+
+#: config/prefs.php.dist:58
+msgid "My Tickets"
+msgstr "ÎҵŤ×÷µ¥"
+
+#: lib/Query.php:591 lib/Query.php:628
+msgid "Name"
+msgstr "Ãû³Æ"
+
+#: lib/Admin.php:434
+msgid "Name of the cloned copy"
+msgstr "¿Ë¡¿½±´µÄÃû³Æ"
+
+#: lib/Driver.php:73
+msgid "New"
+msgstr "ÐÂÔö"
+
+#: lib/Search.php:348 lib/Search.php:388
+msgid "New Priority"
+msgstr "ÐÂÔöÓÅÏÈȨ"
+
+#: query.php:29
+msgid "New Query"
+msgstr "ÐÂÔö²éѯ"
+
+#: lib/Search.php:476
+#, fuzzy
+msgid "New Queue"
+msgstr "ÐÂÔö²éѯ"
+
+#: lib/Search.php:235 lib/Search.php:308
+msgid "New State"
+msgstr "ÐÂÔö״̬"
+
+#: create.php:26 templates/menu/menu.inc:11 lib/Block/summary.php:24
+msgid "New Ticket"
+msgstr "ÐÂÔö¹¤×÷µ¥"
+
+#: lib/Search.php:407
+msgid "New Type"
+msgstr "ÐÂÔöÀàÐÍ"
+
+#: lib/Driver.php:270
+#, php-format
+msgid "New comment for ticket %s"
+msgstr "ÐÂÔö¹¤×÷µ¥ %s µÄÆÀÂÛ"
+
+#: lib/Driver.php:252
+#, php-format
+msgid "New ticket (%s): %s"
+msgstr "ÐÂÔö¹¤×÷µ¥ (%s): %s"
+
+#: lib/Admin.php:90 lib/Admin.php:233 lib/Admin.php:415 lib/Admin.php:531
+#: lib/Admin.php:619 lib/Admin.php:707 lib/Admin.php:795 lib/Search.php:280
+msgid "No"
+msgstr "·ñ"
+
+#: clearsearch.php:34
+msgid "No searches cleared."
+msgstr "ûÓвéѯ±»Çå¿Õ¡£"
+
+#: reports.php:17
+msgid "No stats available."
+msgstr "ûÓÐÓÐЧµÄ״̬¡£"
+
+#: lib/Driver.php:66
+#, php-format
+msgid "No such backend '%s' found"
+msgstr "ÕÒ²»µ½·þÎñ¶Ë '%s'"
+
+#: details.php:23
+msgid "No such ticket."
+msgstr "Î޴˹¤×÷µ¥."
+
+#: lib/Whups.php:352
+msgid "No tickets matched your search criteria."
+msgstr "ûÓй¤×÷µ¥·ûºÏÄúµÄ²éѯÌõ¼þ¡£"
+
+#: lib/Block/summary.php:75
+msgid "No tickets to display"
+msgstr "ûÓй¤×÷µ¥¿ÉÒÔÏÔʾ"
+
+#: lib/Reports.php:79
+msgid "None"
+msgstr "ÎÞ"
+
+#: templates/queryrenderer.inc:99 lib/Query.php:347
+msgid "Not"
+msgstr "²»ÊÇ"
+
+#: query.php:86
+msgid "Not yet implemented..."
+msgstr "ÉÐδÍê³É..."
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "֪ͨѡÏî"
+
+#: config/prefs.php.dist:109
+msgid "Only notify me of ticket changes from other users"
+msgstr "¹¤×÷µ¥±»ÆäËüÈ˱ä¸üʱֻ֪ͨÎÒ"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Owner"
+msgstr "ÒÔÓµÓÐÕß¿ªÆô¹¤×÷µ¥"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Priority"
+msgstr "ÒÔÓÅÏÈȨ¿ªÆô¹¤×÷µ¥"
+
+#: lib/Reports.php:3
+msgid "Open Tickets by Queue"
+msgstr "ÒÔ¶ÓÁпªÆô¹¤×÷µ¥"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by Requester"
+msgstr "ÒÔͶƱÕß¿ªÆô¹¤×÷µ¥"
+
+#: lib/Reports.php:4
+msgid "Open Tickets by State"
+msgstr "ÒÔ״̬¿ªÆô¹¤×÷µ¥"
+
+#: lib/Reports.php:5
+msgid "Open Tickets by Type"
+msgstr "ÒÔÀàÐÍ¿ªÆô¹¤×÷µ¥"
+
+#: templates/menu/menu.inc:18
+msgid "Options"
+msgstr "Ñ¡Ïî"
+
+#: templates/queryrenderer.inc:98 lib/Query.php:346
+msgid "Or"
+msgstr "»ò"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16
+msgid "Other Options"
+msgstr "ÆäËüÑ¡Ïî"
+
+#: templates/queryrenderer.inc:108
+msgid "Owner"
+msgstr "ÓµÓÐÕß"
+
+#: lib/Search.php:111
+msgid "Owner(s)"
+msgstr "ÓµÓÐÕß"
+
+#: lib/Create.php:152 lib/Create.php:164 lib/Whups.php:319 lib/Search.php:220
+#: lib/Search.php:232
+msgid "Owners"
+msgstr "ÓµÓÐÕß"
+
+#: lib/Query.php:349
+msgid "Path"
+msgstr "·¾¶"
+
+#: lib/Search.php:251 lib/Search.php:287 lib/Search.php:327 lib/Search.php:367
+#: lib/Search.php:425 lib/Search.php:456 lib/Search.php:494 lib/Search.php:525
+#: lib/Search.php:551
+msgid "Permission Denied."
+msgstr "ûÓÐȨÏÞ¡£"
+
+#: lib/Admin.php:370 lib/Admin.php:412
+msgid "Priorities for this Type"
+msgstr "´ËÀàÐ͵ÄÓÅÏÈȨ"
+
+#: templates/queryrenderer.inc:121 lib/Create.php:118 lib/Whups.php:317
+#: lib/Query.php:492 lib/Search.php:76 lib/Search.php:109 lib/Search.php:450
+#: lib/Search.php:545 config/prefs.php.dist:32
+msgid "Priority"
+msgstr "ÓÅÏÈȨ"
+
+#: lib/Admin.php:547 lib/Admin.php:593 lib/Admin.php:616
+msgid "Priority Description"
+msgstr "ÓÅÏÈȨµÄÃèÊö"
+
+#: lib/Admin.php:546 lib/Admin.php:571 lib/Admin.php:590 lib/Admin.php:613
+msgid "Priority Name"
+msgstr "ÓÅÏÈȨµÄÃû³Æ"
+
+#: templates/comment.inc:77
+#, fuzzy, php-format
+msgid "Priority changed to '%s' by %s on %s"
+msgstr ", ÓÅÏÈȨ±ä¸üΪ '%s'."
+
+#: templates/comment.inc:152
+msgid "Private"
+msgstr "˽ÓеÄ"
+
+#: query.php:36
+msgid "Property Criteria"
+msgstr "ÐÔÖʹæÔò"
+
+#: query.php:133 templates/menu/menu.inc:13
+msgid "Query Builder"
+msgstr "²éѯ½¨Á¢Õß"
+
+#: lib/Query.php:101
+msgid "Query Parameters"
+msgstr "²éÕÒ²ÎÊý"
+
+#: runquery.php:75
+msgid "Query Results"
+msgstr "²éÕÒ½á¹û"
+
+#: templates/queryrenderer.inc:106 lib/Whups.php:318 config/prefs.php.dist:33
+msgid "Queue"
+msgstr "¶ÓÁÐ"
+
+#: lib/Driver.php:296
+#, fuzzy, php-format
+msgid "Queue : %s"
+msgstr "-¶ÓÁÐ: %s"
+
+#: lib/Admin.php:106 lib/Admin.php:150 lib/Admin.php:230
+msgid "Queue Description"
+msgstr "¶ÓÁÐÃèÊö"
+
+#: lib/Admin.php:105 lib/Admin.php:129 lib/Admin.php:147 lib/Admin.php:227
+#: lib/Create.php:28 lib/Create.php:36 lib/Search.php:39 lib/Search.php:96
+msgid "Queue Name"
+msgstr "¶ÓÁÐÃû³Æ"
+
+#: lib/Create.php:83 lib/Search.php:99
+msgid "Queue Version"
+msgstr "¶ÓÁа汾"
+
+#: scripts/mail-filter.php:80
+#, fuzzy, php-format
+msgid "Queue `%s' does not exist."
+msgstr "µãÑ¡µÄÑù°å²¢²»´æÔÚ."
+
+#: templates/comment.inc:97
+#, fuzzy, php-format
+msgid "Queue changed to '%s' by %s on %s"
+msgstr "״̬Òѱä¸üΪ '%s'"
+
+#: admin.php:31 templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr ""
+
+#: search.php:102
+#, php-format
+msgid "Queue: %s, Client: %s, Ticket: %s, Category: %s, Type: %s"
+msgstr ""
+
+#: search.php:104
+#, fuzzy, php-format
+msgid "Queue: %s, Ticket: %s, Category: %s, Type: %s"
+msgstr "¶ÓÁÐ: %s ¹¤×÷µ¥: %s"
+
+#: lib/api.php:710
+msgid "Queues"
+msgstr "¶ÓÁÐ"
+
+#: runquery.php:25
+msgid "Re-execute Query"
+msgstr "ÖØÐÂÖ´Ðвéѯ"
+
+#: lib/Admin.php:796
+msgid "Really delete this attribute? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸öÊôÐÔ£¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Admin.php:620
+msgid "Really delete this priority? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸öÓÅÏÈ£¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Admin.php:234
+msgid "Really delete this queue? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸ö¶ÓÁУ¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Admin.php:532
+msgid "Really delete this state? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸ö״̬£¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Admin.php:91
+msgid "Really delete this subject? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâÖ÷Ì⣿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Search.php:281
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸ö¹¤×÷µ¥? ¹¤×÷µ¥ÉÐδ±¸·ÝÒò´Ë½«ÓÀ¾Ãɾ³ý."
+
+#: lib/Admin.php:416
+msgid "Really delete this type? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸öÀàÐÍ£¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: lib/Admin.php:708
+msgid "Really delete this version? This may cause data problems!!"
+msgstr "È·¶¨ÒªÉ¾³ýÕâ¸ö°æ±¾£¿ ÕâÓпÉÄܵ¼ÖÂÊý¾ÝÉϵÄÎÊÌâ !!"
+
+#: search.php:153
+msgid "Refine Search"
+msgstr "¸ß¼¶²éÕÒ"
+
+#: search.php:151
+msgid "Refine search"
+msgstr "¸ß¼¶²éÕÒ"
+
+#: admin.php:981
+msgid "Reminders were sent."
+msgstr ""
+
+#: lib/Admin.php:277
+msgid "Remove User"
+msgstr "ɾ³ýÓû§"
+
+#: reports.php:22 templates/menu/menu.inc:14
+msgid "Reports"
+msgstr "±¨±í"
+
+#: templates/queryrenderer.inc:109 lib/Search.php:114
+msgid "Requester"
+msgstr "ͶƱÕß"
+
+#: lib/Whups.php:322 lib/Search.php:117 lib/Driver.php:75
+#: config/prefs.php.dist:37
+msgid "Resolved"
+msgstr "Òѽâ¾ö"
+
+#: lib/Admin.php:279
+#, fuzzy
+msgid "Responsible Users"
+msgstr "ɾ³ýÓû§"
+
+#: lib/Admin.php:175
+msgid "Restrict ticket subjects to a specified list?"
+msgstr "ÏÞÖÆ¹¤×÷µ¥Ö÷Ìâ¸øÌØ¶¨µÄÃûµ¥?"
+
+#: templates/searchresults.inc:47
+msgid "Save"
+msgstr "±£´æ"
+
+#: runquery.php:27 query.php:32 lib/Query.php:589
+msgid "Save Query"
+msgstr "±£´æ²éѯ"
+
+#: templates/searchresults.inc:41
+msgid "Save these results as: "
+msgstr "Áí´æÕâЩ½á¹ûΪ: "
+
+#: search.php:170 templates/menu/menu.inc:10
+msgid "Search"
+msgstr "²éÕÒ"
+
+#: lib/Query.php:546
+#, php-format
+msgid "Search %s Attribute"
+msgstr "²éÕÒ %s ÊôÐÔ"
+
+#: lib/Query.php:549
+msgid "Search Attribute"
+msgstr "²éÕÒÊôÐÔ"
+
+#: lib/Query.php:395 lib/Query.php:445
+msgid "Search Comments"
+msgstr "²éÕÒÆÀÂÛ"
+
+#: lib/Query.php:393
+msgid "Search Owners"
+msgstr "²éÕÒÓµÓÐÕß"
+
+#: lib/Query.php:394
+msgid "Search Requester"
+msgstr "²éÕÒͶƱÕß"
+
+#: search.php:144
+msgid "Search Results"
+msgstr "²éÕÒ½á¹û"
+
+#: lib/Query.php:444
+msgid "Search Summary"
+msgstr "²éÕÒÕªÒª"
+
+#: search.php:26 search.php:168 config/prefs.php.dist:59
+msgid "Search Tickets"
+msgstr "²éÕÒ¹¤×÷µ¥"
+
+#: clearsearch.php:27
+msgid "Search cleared."
+msgstr "²éÕÒÒÑÇå³ý"
+
+#: clearsearch.php:30
+msgid "Searches cleared."
+msgstr "²éÕÒÒÑÇå³ý"
+
+#: config/prefs.php.dist:61
+msgid "Select the view to display after login:"
+msgstr "Ñ¡ÔñµÇ¼ºóµÄÏÔʾ·½Ê½:"
+
+#: admin.php:32 lib/Admin.php:807
+msgid "Send Reminders"
+msgstr ""
+
+#: lib/Admin.php:818
+msgid "Send only for this list of ticket ids"
+msgstr ""
+
+#: details.php:44 details.php:47
+msgid "Set Priority"
+msgstr "ÉèÖÃÓÅÏÈȨ"
+
+#: details.php:45
+msgid "Set Queue"
+msgstr "ÉèÖöÓÁÐ"
+
+#: details.php:43
+msgid "Set State"
+msgstr "ÉèÖÃ״̬"
+
+#: details.php:234
+msgid "Set Ticket Attributes"
+msgstr "ÉèÖù¤×÷µ¥ÊôÐÔ"
+
+#: details.php:153 details.php:213
+msgid "Set Ticket Priority"
+msgstr "ÉèÖù¤×÷µ¥ÓÅÏÈȨ"
+
+#: details.php:193
+msgid "Set Ticket State Succeeded"
+msgstr "ÉèÖù¤×÷µ¥×´Ì¬³É¹¦"
+
+#: details.php:269
+msgid "Set Ticket Type"
+msgstr "ÉèÖù¤×÷µ¥ÀàÐÍ"
+
+#: details.php:51
+msgid "Set Type"
+msgstr "ÉèÖÃÀàÐÍ"
+
+#: config/prefs.php.dist:100
+msgid "Show \"(X Days Ago)\" in Date field of search results?"
+msgstr "ÔÚ²éÕÒ½á¹ûÖÐÏÔʾ\"(¼¸Ììºó)\"µÄÈÕÆÚ×Ö¶Î?"
+
+#: config/prefs.php.dist:127
+msgid "Show comments in chronological order, or most recent first?"
+msgstr ""
+
+#: config/prefs.php.dist:78
+msgid "Show ticket IDs in the summary view?"
+msgstr "ÓÚÕªÒªÏÔʾÖÐÏÔʾ¹¤×÷µ¥Ê¶±ðÂë?"
+
+#: config/prefs.php.dist:70
+msgid "Show tickets you have requested in the summary view?"
+msgstr "ÓÚÕªÒªÏÔʾÖÐÏÔʾÄúËùµãÑ¡µÄ¹¤×÷µ¥?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "¼òµ¥µÄ HTML ±¨±í"
+
+#: templates/searchresults.inc:72
+msgid "Sort Direction"
+msgstr "ÅÅÁз½Ïò"
+
+#: templates/searchresults.inc:73 templates/searchresults.inc:77
+#, php-format
+msgid "Sort by %s"
+msgstr "ÒÑ %s ÅÅÁÐ"
+
+#: templates/queryrenderer.inc:116 lib/Whups.php:315 lib/Query.php:488
+#: lib/Search.php:449 lib/Search.php:544 config/prefs.php.dist:30
+msgid "State"
+msgstr "״̬"
+
+#: lib/Driver.php:302
+#, fuzzy, php-format
+msgid "State : %s"
+msgstr "-״̬: %s"
+
+#: lib/Admin.php:456 lib/Admin.php:505
+msgid "State Category"
+msgstr "״̬·ÖÀà"
+
+#: lib/Admin.php:455 lib/Admin.php:502 lib/Admin.php:528
+msgid "State Description"
+msgstr "״̬ÃèÊö"
+
+#: lib/Admin.php:454 lib/Admin.php:480 lib/Admin.php:499 lib/Admin.php:525
+msgid "State Name"
+msgstr "״̬Ãû³Æ"
+
+#: templates/comment.inc:67
+#, fuzzy, php-format
+msgid "State changed to '%s' by %s on %s"
+msgstr "״̬Òѱä¸üΪ '%s'"
+
+#: lib/Admin.php:360 lib/Admin.php:408
+msgid "States for this Type"
+msgstr "´ËÀàÐ͵Ä״̬"
+
+#: lib/Create.php:119 config/prefs.php.dist:29
+msgid "Subject"
+msgstr "Ö÷Ìâ"
+
+#: lib/Admin.php:17 lib/Admin.php:40 lib/Admin.php:65 lib/Admin.php:87
+msgid "Subject Name"
+msgstr "Ö÷ÌâÃû³Æ"
+
+#: lib/Admin.php:179
+msgid "Subjects associated with this Queue"
+msgstr "ÓëÕâ¸ö¶ÓÁÐÏà¹ØÁªµÄÖ÷Ìâ"
+
+#: create.php:96
+msgid "Submit"
+msgstr "Ìá½»"
+
+#: admin.php:163
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "Òѳɹ¦¿Ë¡%sΪ%s"
+
+#: templates/queryrenderer.inc:112 lib/Whups.php:314
+msgid "Summary"
+msgstr "ժҪ"
+
+#: lib/Driver.php:304
+msgid "Summary:"
+msgstr "ժҪ:"
+
+#: lib/Query.php:442
+msgid "Text"
+msgstr "ÄÚÈÝ"
+
+#: query.php:39
+msgid "Text Criteria"
+msgstr "ÄÚÈݹæÔò"
+
+#: view.php:44 lib/Driver.php:218
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "VFS·þÎñÆ÷ÐèÒªÅäÖÃÔÊÐí¸½¼þÉÏ´«¡£"
+
+#: admin.php:862
+#, php-format
+msgid "The attribute '%s' has been added to %s."
+msgstr "´ËÊôÐÔ '%s' Òѱ»ÐÂÔöµ½ %s."
+
+#: admin.php:950
+msgid "The attribute has been deleted."
+msgstr "´ËÊôÐÔÒѱ»É¾³ý."
+
+#: admin.php:919
+msgid "The attribute has been modified."
+msgstr "´ËÊôÐÔÒѱ»ÐÞ¸Ä."
+
+#: admin.php:955
+msgid "The attribute was not deleted."
+msgstr "´ËÊôÐÔ²¢Î´±»É¾³ý."
+
+#: admin.php:471
+#, php-format
+msgid "The priority '%s' has been added to %s."
+msgstr "´ËÓÅÏÈȨ '%s' Òѱ»ÐÂÔöµ½ %s."
+
+#: admin.php:558
+msgid "The priority has been deleted."
+msgstr "´ËÓÅÏÈȨÒѱ»É¾³ý."
+
+#: admin.php:528
+msgid "The priority has been modified."
+msgstr "´ËÓÅÏÈȨÒѱ»ÐÞ¸Ä."
+
+#: admin.php:563
+msgid "The priority was not deleted."
+msgstr "´ËÓÅÏÈȨ²¢Î´±»É¾³ý."
+
+#: admin.php:247
+#, php-format
+msgid "The queue '%s' has been created."
+msgstr "´Ë¶ÓÁÐ '%s' Òѱ»½¨Á¢."
+
+#: admin.php:330
+msgid "The queue has been deleted."
+msgstr "´Ë¶ÓÁÐÒѱ»É¾³ý."
+
+#: admin.php:310
+msgid "The queue has been modified."
+msgstr "´Ë¶ÓÁÐÒѱ»ÐÞ¸Ä."
+
+#: admin.php:335
+msgid "The queue was not deleted."
+msgstr "´Ë¶ÓÁв¢Î´±»É¾³ý."
+
+#: data.php:24
+msgid "The requested template does not exist."
+msgstr "µãÑ¡µÄÑù°å²¢²»´æÔÚ."
+
+#: admin.php:352
+#, php-format
+msgid "The state '%s' has been added to %s."
+msgstr "´Ë״̬ '%s' Òѱ»ÐÂÔöµ½ %s."
+
+#: admin.php:441
+msgid "The state has been deleted."
+msgstr "´Ë״̬Òѱ»É¾³ý."
+
+#: admin.php:410
+msgid "The state has been modified."
+msgstr "´Ë״̬Òѱ»ÐÞ¸Ä."
+
+#: admin.php:446
+msgid "The state was not deleted."
+msgstr "´Ë״̬²¢Î´±»É¾³ý."
+
+#: admin.php:660
+#, php-format
+msgid "The subject '%s' has been added."
+msgstr "´ËÖ÷Ìâ '%s' Òѱ»ÐÂÔö."
+
+#: admin.php:722
+msgid "The subject has been deleted."
+msgstr "´ËÖ÷ÌâÒѱ»É¾³ý."
+
+#: admin.php:701
+msgid "The subject has been modified."
+msgstr "´ËÖ÷ÌâÒѱ»ÐÞ¸Ä."
+
+#: admin.php:727
+msgid "The subject was not deleted."
+msgstr "´ËÖ÷ÌⲢδ±»É¾³ý."
+
+#: details.php:359
+msgid "The ticket was not deleted."
+msgstr "´Ë¹¤×÷µ¥Î´±»É¾³ý."
+
+#: admin.php:182
+#, php-format
+msgid "The type '%s' has been modified."
+msgstr "´ËÀàÐÍ '%s' Òѱ»ÐÞ¸Ä."
+
+#: admin.php:226
+msgid "The type has been deleted."
+msgstr "´ËÀàÐÍÒѱ»É¾³ý."
+
+#: admin.php:231
+msgid "The type was not deleted."
+msgstr "´ËÀàÐͲ¢Î´±»É¾³ý."
+
+#: admin.php:744
+#, php-format
+msgid "The version '%s' has been added to %s."
+msgstr "´Ë°æ±¾ '%s' Òѱ»Ôö¼Óµ½ %s."
+
+#: admin.php:832
+msgid "The version has been deleted."
+msgstr "´Ë°æ±¾Òѱ»É¾³ý."
+
+#: admin.php:802
+msgid "The version has been modified."
+msgstr "´Ë°æ±¾Òѱ»ÐÞ¸Ä."
+
+#: admin.php:837
+msgid "The version was not deleted."
+msgstr "´Ë°æ±¾²¢Î´±»É¾³ý."
+
+#: lib/Admin.php:743
+msgid "There are no attribute types to edit"
+msgstr "ûÓÐÊôÐÔÀàÐͿɹ©±à¼"
+
+#: lib/Query.php:549
+msgid "There are no attributes defined for the current type"
+msgstr "ĿǰÕâ¸öÀàÐÍûÓж¨ÒåÊôÐÔ."
+
+#: lib/Create.php:65
+#, fuzzy
+msgid ""
+"There are no clients associated with this module; until there are, you "
+"cannot create any tickets in this module."
+msgstr ""
+"ûÓй¤×÷µ¥ÀàÐÍͬÕâ¸ö¶ÓÁйØÁª£»³ý·ÇÓÐÒ»¸ö¹ØÁª£¬·ñÔòÄú²»ÄÜÔڴ˶ÓÁÐÖд´½¨Èκι¤"
+"×÷µ¥¡£"
+
+#: lib/Admin.php:567
+msgid "There are no priorities to edit"
+msgstr "ûÓÐÓÅÏÈȨ¿É¹©±à¼"
+
+#: lib/Admin.php:815
+msgid "There are no queues available."
+msgstr "ûÓÐÓÐЧ¶ÓÁÐ"
+
+#: lib/Admin.php:126
+msgid "There are no queues to edit"
+msgstr "ûÓжÓÁпɹ©±à¼"
+
+#: lib/Create.php:36
+msgid "There are no queues which you can create tickets in."
+msgstr "ûÓжÓÁпɹ©Äú½¨Á¢¹¤×÷µ¥."
+
+#: lib/Search.php:32
+msgid "There are no queues which you can search."
+msgstr "ûÓжÓÁпɹ©Äú²éÕÒ."
+
+#: lib/Admin.php:476
+msgid "There are no states to edit"
+msgstr "ûÓÐ״̬¿É¹©±à¼"
+
+#: lib/Admin.php:37
+msgid "There are no subjects to edit"
+msgstr "ûÓÐÖ÷Ìâ¿É¹©±à¼"
+
+#: lib/Create.php:57
+msgid ""
+"There are no ticket types associated with this module; until there are, you "
+"cannot create any tickets in this module."
+msgstr ""
+"ûÓй¤×÷µ¥ÀàÐÍͬÕâ¸ö¶ÓÁйØÁª£»³ý·ÇÓÐÒ»¸ö¹ØÁª£¬·ñÔòÄú²»ÄÜÔڴ˶ÓÁÐÖд´½¨Èκι¤"
+"×÷µ¥¡£"
+
+#: lib/Admin.php:331
+msgid "There are no types to edit"
+msgstr "ûÓÐÀàÐͿɹ©±à¼"
+
+#: lib/Admin.php:293
+msgid "There are no users responsible for this queue."
+msgstr "Õâ¸ö¶ÓÁÐûÓиºÔðÈË."
+
+#: lib/Create.php:163 lib/Search.php:231
+msgid "There are no users to which this ticket can be assigned."
+msgstr "Ôڴ˹¤×÷µ¥ÖÐûÓÐÓû§¿É¹©·ÖÅä."
+
+#: lib/Admin.php:655
+msgid "There are no versions to edit"
+msgstr "ûÓа汾¿É¹©±à¼"
+
+#: graph.php:30
+msgid "There is no data for this graph."
+msgstr "´ËͼÐÎÖÐûÓÐÊý¾Ý."
+
+#: lib/Reports.php:154
+msgid "There is no data for this report."
+msgstr "´Ë±¨±íÖÐûÓÐÊý¾Ý."
+
+#: admin.php:599
+#, php-format
+msgid "There was an error adding '%s' to the responsible list for '%s': %s"
+msgstr "ÐÂÔö '%s' µ½¸ºÔðÃûµ¥ '%s': %s ʱ·¢ÉúÒ»¸ö´íÎó"
+
+#: admin.php:662
+#, php-format
+msgid "There was an error adding the subject: %s."
+msgstr "ÐÂÔöÖ÷Ìâ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:865
+#, php-format
+msgid "There was an error creating the attribute: %s."
+msgstr "½¨Á¢ÊôÐÔ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:473
+#, php-format
+msgid "There was an error creating the priority: %s."
+msgstr "½¨Á¢ÓÅÏÈȨ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:255
+#, php-format
+msgid "There was an error creating the queue: %s."
+msgstr "½¨Á¢¶ÓÁÐ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:354
+#, php-format
+msgid "There was an error creating the state: %s."
+msgstr "½¨Á¢×´Ì¬: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:746
+#, php-format
+msgid "There was an error creating the version: %s."
+msgstr "½¨Á¢°æ±¾: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:952
+#, php-format
+msgid "There was an error deleting the attribute: %s."
+msgstr "ɾ³ýÊôÐÔ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:560
+#, php-format
+msgid "There was an error deleting the priority: %s."
+msgstr "ɾ³ýÓÅÏÈȨ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:332
+#, php-format
+msgid "There was an error deleting the queue: %s."
+msgstr "ɾ³ý¶ÓÁÐ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:443
+#, php-format
+msgid "There was an error deleting the state: %s."
+msgstr "ɾ³ý״̬: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:724
+#, php-format
+msgid "There was an error deleting the subject: %s."
+msgstr "ɾ³ýÖ÷Ìâ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: details.php:355
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "ɾ³ý¹¤×÷µ¥: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:228
+#, php-format
+msgid "There was an error deleting the type: %s."
+msgstr "ɾ³ýÀàÐÍ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:834
+#, php-format
+msgid "There was an error deleting the version: %s."
+msgstr "ɾ³ý°æ±¾: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:926
+#, php-format
+msgid "There was an error editing the attribute: %s."
+msgstr "±à¼ÊôÐÔ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:533
+#, php-format
+msgid "There was an error editing the priority: %s."
+msgstr "±à¼ÓÅÏÈȨ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:314
+#, php-format
+msgid "There was an error editing the queue: %s."
+msgstr "±à¼¶ÓÁÐ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:415
+#, php-format
+msgid "There was an error editing the state: %s."
+msgstr "±à¼×´Ì¬: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:706
+#, php-format
+msgid "There was an error editing the subject: %s."
+msgstr "±à¼Ö÷Ìâ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:807
+#, php-format
+msgid "There was an error editing the version: %s."
+msgstr "±à¼°æ±¾: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: mybugs.php:37
+#, php-format
+msgid "There was an error listing your assigned tickets: %s"
+msgstr "ÁгöÄúÒÑ·ÖÅäµÄ¹¤×÷µ¥: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: mybugs.php:53
+#, php-format
+msgid "There was an error listing your open requests: %s"
+msgstr "ÁгöÄúËù¿ª·ÅµÄͶƱ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:180
+#, php-format
+msgid "There was an error modifying the type: %s."
+msgstr "ÐÞ¸ÄÀàÐÍ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: search.php:137
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "Ö´ÐвéÕÒ: %s ʱ·¢ÉúÒ»¸ö´íÎó."
+
+#: admin.php:638
+#, php-format
+msgid "There was an error removing '%s' from the responsible list for '%s': %s"
+msgstr "ɾ³ý '%s' ×Ô¸ºÔðÃûµ¥ '%s': %s ʱ·¢ÉúÒ»¸ö´íÎó"
+
+#: data.php:27
+msgid "This is not a search results template."
+msgstr "Õâ²»ÊÇÒ»¸ö²éÕÒ½á¹ûµÄÄ£°æ."
+
+#: lib/Admin.php:57
+msgid "This is not a valid subject."
+msgstr "Õâ²»ÊÇÒ»¸öºÏ·¨µÄÖ÷Ìâ."
+
+#: lib/Driver.php:402
+#, php-format
+msgid "This mail was automatically generated by %s"
+msgstr "ÕâÊÇÒ»·âÓÉ %s ×Ô¶¯²úÉúµÄÐżþ"
+
+#: lib/Create.php:78
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this module, you will not "
+"be able to create tickets."
+msgstr ""
+"Õâ¸ö¶ÓÁбØÐëÒªÄúΪËüÖ¸¶¨Ò»¸ö°æ±¾,µ«ÊDz¢Ã»Óа汾ÓëÆäÏà¹ØÁª.Äú½«ÎÞ·¨½¨Á¢¹¤×÷µ¥,"
+"Ö±µ½ÄúΪ´ËÒ»¶ÓÁн¨Á¢°æ±¾."
+
+#: lib/Driver.php:295
+#, php-format
+msgid "Ticket : %s"
+msgstr "¹¤×÷µ¥ £º %s"
+
+#: templates/menu/menu.inc:48
+msgid "Ticket #"
+msgstr "¹¤×÷µ¥ #"
+
+#: details.php:534
+#, php-format
+msgid "Ticket %s Comments"
+msgstr "¹¤×÷µ¥ %s µÄÆÀÂÛ"
+
+#: details.php:527
+#, php-format
+msgid "Ticket %s Details"
+msgstr "¹¤×÷µ¥ %s µÄϸ½Ú"
+
+#: lib/Driver.php:291
+#, php-format
+msgid "Ticket %s has been assigned"
+msgstr "¹¤×÷µ¥ %s µÄ·ÖÅäÒѱä¸ü"
+
+#: lib/Driver.php:380
+#, php-format
+msgid "Ticket %s has changed module"
+msgstr "¹¤×÷µ¥ %s µÄÄ£¿éÒѱä¸ü"
+
+#: lib/Driver.php:338
+#, php-format
+msgid "Ticket %s has changed priority"
+msgstr "¹¤×÷µ¥ %s µÄÓÅÏÈȨÒѱä¸ü"
+
+#: lib/Driver.php:317
+#, php-format
+msgid "Ticket %s has changed state"
+msgstr "¹¤×÷µ¥ %s µÄ״̬Òѱä¸ü"
+
+#: lib/Driver.php:359
+#, php-format
+msgid "Ticket %s has changed type"
+msgstr "¹¤×÷µ¥ %s µÄÀàÐÍÒѱä¸ü"
+
+#: lib/Driver/sql.php:898
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "ÕÒ²»µ½¹¤×÷µ¥ %s ."
+
+#: details.php:367
+msgid "Ticket Details"
+msgstr "¹¤×÷µ¥Ï¸½Ú"
+
+#: lib/Search.php:38
+msgid "Ticket ID"
+msgstr "¹¤×÷µ¥Ê¶±ðºÅÂë"
+
+#: lib/Create.php:117 lib/Search.php:72 lib/Search.php:108
+msgid "Ticket State"
+msgstr "¹¤×÷µ¥×´Ì¬"
+
+#: templates/reports/stats.inc:4
+msgid "Ticket Stats"
+msgstr "¹¤×÷µ¥Í³¼Æ"
+
+#: lib/Search.php:95 lib/Search.php:277 lib/api.php:139
+msgid "Ticket Summary"
+msgstr "¹¤×÷µ¥ÕªÒª"
+
+#: lib/Create.php:72 lib/Search.php:107
+msgid "Ticket Type"
+msgstr "¹¤×÷µ¥ÀàÐÍ"
+
+#: lib/Admin.php:165
+msgid "Ticket Types associated with this Queue"
+msgstr "Óë´Ë¶ÓÁÐÓйØÁªµÄ¹¤×÷µ¥ÀàÐÍ"
+
+#: lib/Driver.php:293
+#, fuzzy, php-format
+msgid "Ticket URL: %s"
+msgstr "-¹¤×÷µ¥ %s"
+
+#: templates/comment.inc:50
+#, php-format
+msgid "Ticket assigned to %s by %s on %s"
+msgstr "¹¤×÷µ¥ÒÑ·ÖÅ䏸%s±»%sÔÚ%s"
+
+#: lib/Block/summary.php:52
+msgid "Tickets assigned to you"
+msgstr "ÒÑ·ÖÅ䏸ÄúµÄ¹¤×÷µ¥"
+
+#: lib/Search.php:54
+msgid "Tickets which are"
+msgstr ""
+
+#: lib/Block/summary.php:69
+msgid "Tickets you requested"
+msgstr "ÄúÒѵãÑ¡µÄ¹¤×÷µ¥"
+
+#: templates/queryrenderer.inc:107 lib/Whups.php:316 lib/Search.php:519
+#: config/prefs.php.dist:31
+msgid "Type"
+msgstr "ÀàÐÍ"
+
+#: lib/Admin.php:311 lib/Admin.php:355 lib/Admin.php:404
+msgid "Type Description"
+msgstr "ÀàÐÍÃèÊö"
+
+#: lib/Admin.php:310 lib/Admin.php:334 lib/Admin.php:352 lib/Admin.php:401
+msgid "Type Name"
+msgstr "ÀàÐÍÃû³Æ"
+
+#: templates/comment.inc:87
+#, fuzzy, php-format
+msgid "Type changed to '%s' by %s on %s"
+msgstr "״̬Òѱä¸üΪ '%s'"
+
+#: lib/Search.php:57
+msgid "Types"
+msgstr "ÀàÐÍ"
+
+#: lib/Search.php:112
+msgid "Unassigned"
+msgstr "δ±»·ÖÅä"
+
+#: lib/Admin.php:826
+msgid "Unassigned tickets"
+msgstr "δ·ÖÅäµÄ¹¤×÷µ¥"
+
+#: lib/Driver.php:72
+msgid "Unconfirmed"
+msgstr "δȷÈÏ"
+
+#: templates/queryrenderer.inc:146
+#, php-format
+msgid "Unknown node type %s"
+msgstr "δ֪µÄ½Úµã(node)ÀàÐÍ %s"
+
+#: templates/admin/mtmatrix.inc:28
+msgid "Update Associations"
+msgstr "¸üйØÁª"
+
+#: details.php:40
+msgid "Upload Attachment"
+msgstr "ÉÏ´«¸½¼þ"
+
+#: lib/Admin.php:263 lib/Admin.php:265
+msgid "User"
+msgstr "Óû§"
+
+#: query.php:37
+msgid "User Criteria"
+msgstr "Óû§¹æÔò"
+
+#: lib/Query.php:391
+msgid "User ID"
+msgstr "Óû§ID"
+
+#: lib/Admin.php:189
+msgid "Users responsible for this Queue"
+msgstr "¶ÓÁиºÔðÈË"
+
+#: lib/Admin.php:297
+msgid "Users responsible for this queue"
+msgstr "¶ÓÁиºÔðÈË"
+
+#: config/prefs.php.dist:34
+msgid "Version"
+msgstr "°æ±¾"
+
+#: lib/Admin.php:635 lib/Admin.php:681 lib/Admin.php:704
+msgid "Version Description"
+msgstr "°æ±¾ÃèÊö"
+
+#: lib/Admin.php:634 lib/Admin.php:659 lib/Admin.php:678 lib/Admin.php:701
+msgid "Version Name"
+msgstr "°æ±¾Ãû³Æ"
+
+#: templates/reports/graphs.inc:14
+msgid "View Graphs"
+msgstr "ÏÔʾͼÐÎ"
+
+#: lib/Search.php:156 lib/Search.php:185 lib/Search.php:244 lib/Search.php:320
+#: lib/Search.php:360 lib/Search.php:418 lib/Search.php:487 lib/Search.php:589
+msgid "Viewable only by members of"
+msgstr "Ö»ÓгÉÔ±¿ÉÒÔÏÔʾ"
+
+#: config/prefs.php.dist:87
+msgid "Weekday Day Month"
+msgstr "ÐÇÆÚ ÈÕ ÔÂ"
+
+#: config/prefs.php.dist:88
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "ÐÇÆÚ ÈÕ Ô ʱ:·Ö:Ãë Ê±Çø"
+
+#: lib/Admin.php:90 lib/Admin.php:233 lib/Admin.php:415 lib/Admin.php:531
+#: lib/Admin.php:619 lib/Admin.php:707 lib/Admin.php:795 lib/Search.php:280
+msgid "Yes"
+msgstr "ÊÇ"
+
+#: details.php:75 view.php:40
+msgid "You are not allowed to view this ticket."
+msgstr "ÄúûÓв鿴´Ë¹¤×÷µ¥µÄȨÏÞ."
+
+#: lib/Driver/sql.php:901
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "ÄúûÓдæÈ¡´Ë¹¤×÷µ¥ (%s) µÄȨÏÞ."
+
+#: lib/Query.php:625
+msgid "You have no saved queries."
+msgstr "ûÓÐÄúµÄÒѱ£´æ²éѯÊý¾Ý."
+
+#: lib/Whups.php:346
+msgid "You must select at least one queue to send reminders for."
+msgstr ""
+
+#: lib/Admin.php:206
+msgid "You must select clients."
+msgstr "Äú±ØÐëÑ¡ÔñÒ»¸ö¿Í»§"
+
+#: lib/Create.php:30 lib/Search.php:143 lib/Search.php:172 lib/Search.php:385
+msgid "Your Email Address"
+msgstr "ÄúµÄµç×ÓÓʼþµØÖ·"
+
+#: create.php:152
+#, php-format
+msgid "Your ticket id is %s. "
+msgstr "ÄúµÄ¹¤×÷µ¥Ê¶±ðºÅÂëΪ %s. "
+
+#: scripts/mail-filter.php:108
+#, fuzzy, php-format
+msgid "bad priority `%s' for type."
+msgstr "´ËÀàÐ͵ÄÓÅÏÈȨ"
+
+#: scripts/mail-filter.php:122
+#, fuzzy, php-format
+msgid "bad state `%s' for type."
+msgstr "´ËÀàÐ͵Ä״̬"
+
+#: templates/queryrenderer.inc:136
+msgid "contains (case insensitive) substring"
+msgstr "°üº¬(²»·Ö´óСд)×Ó×Ö·û´®"
+
+#: templates/queryrenderer.inc:137
+msgid "contains (case sensitive) substring"
+msgstr "°üº¬(Çø·Ö´óСд)×Ó×Ö·û´®"
+
+#: templates/queryrenderer.inc:138
+msgid "contains the word"
+msgstr "°üº¬Õâ¸ö×Ö"
+
+#: scripts/mail-filter.php:133
+#, php-format
+msgid "error processing message: %s"
+msgstr ""
+
+#: templates/queryrenderer.inc:135
+msgid "is"
+msgstr "ÊÇ"
+
+#: templates/queryrenderer.inc:133
+msgid "is greater than"
+msgstr "´óÓÚ"
+
+#: templates/queryrenderer.inc:134
+msgid "is less than"
+msgstr "СÓÚ"
+
+#: templates/queryrenderer.inc:139
+msgid "matches the pattern"
+msgstr "ÓëÑù±¾Æ¥Åä"
--- /dev/null
+# Whups Traditional Chinese Translation
+# Copyright 2002 David Chang.±i¨}¤å,¥xÆW
+# David Chang <david@tmv.gov.tw>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: whups 1.0\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-06-25 09:07+0800\n"
+"PO-Revision-Date: 2008-03-20 10:53+0100\n"
+"Last-Translator: David Chang <david@tmv.gov.tw>\n"
+"Language-Team: Traditional Chinese <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=BIG5\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: admin/index.php:745
+#, php-format
+msgid "\"%s\" is no longer among those responsible for \"%s\""
+msgstr "\"%s\"±N¤£¦A¹ï\"%s\"¾át³d¥ô"
+
+#: templates/menu.inc:5
+msgid "#Id"
+msgstr "#³æ¸¹"
+
+#: templates/ticket/watchers.inc:3
+#, php-format
+msgid "%d people watching, %d people responsible"
+msgstr "%d Ó¤HÆ[¹î, %d Ó¤H©Ó¿ì"
+
+#: queue/rss.php:96
+msgid "%s %s tickets in %s"
+msgstr "%s %s Ápô³æ©ó %s"
+
+#: queue/rss.php:100
+#, php-format
+msgid "%s %s tickets in all queues"
+msgstr "%s %s Ápô³æ¦b©Ò¦³¤ÀÃþ"
+
+#: lib/Renderer/Comment.php:120
+#, php-format
+msgid "%s ⇒ %s"
+msgstr "%s ⇒ %s"
+
+#: lib/Driver.php:481
+#, php-format
+msgid "%s (%s) wrote:"
+msgstr "%s (%s) µû½×:"
+
+#: admin/index.php:700
+#, php-format
+msgid "%s added to those responsible for \"%s\""
+msgstr "%s¤w¥[¤J\"%s\"ªº©Ó¿ì¦W³æ¤¤"
+
+#: templates/reports/stats.inc:17
+#, php-format
+msgid "%s days"
+msgstr "%s ¤Ñ"
+
+#: queue/rss.php:104
+#, php-format
+msgid "%s tickets in %s"
+msgstr "%s Ápô³æ¦b %s"
+
+#: queue/rss.php:108
+#, php-format
+msgid "%s tickets in all queues"
+msgstr "%s Ápô³æ¦b©Ò¦³¤ÀÃþ¤¤"
+
+#: ticket/watch.php:60
+#, php-format
+msgid "%s will be notified when this ticket is updated."
+msgstr "Ápô³æÅܧó®É±N¦Û°Ê³qª¾%s."
+
+#: ticket/watch.php:72
+#, php-format
+msgid "%s will no longer receive updates for this ticket."
+msgstr "Ápô³æÅܧó®É%s±N¤£¦A¦¬¨ì³qª¾."
+
+#: admin/index.php:109
+msgid "- Stage 1"
+msgstr "- ¨BÆJ 1"
+
+#: admin/index.php:114
+msgid "- Stage 2"
+msgstr "- ¨BÆJ 2"
+
+#: scripts/mail-filter.php:172
+msgid "--queue-name or --queue-id must specify a valid and public queue."
+msgstr "--queue-name ©Î --queue-id ¥²¶·«ü©w¤@Ó¦³®Ä»P¶}©ñªº¤ÀÃþ."
+
+#: templates/prevnext.inc:16
+msgid "<<First"
+msgstr "<<²Ä¤@µ§"
+
+#: templates/prevnext.inc:20
+msgid "<Prev"
+msgstr "<¤W¤@µ§"
+
+#: view.php:69
+#, php-format
+msgid "Access denied to %s"
+msgstr "¦s¨ú %s ¾D©Ú"
+
+#: lib/Forms/Admin/Attribute.php:22
+msgid "Add Attribute"
+msgstr "·s¼WÄÝ©Ê"
+
+#: lib/Forms/Query.php:266
+msgid "Add Attribute Criterion"
+msgstr "·s¼WÄݩʳW«h"
+
+#: mybugs.php:55
+msgid "Add Content"
+msgstr "·s¼W¤º®e"
+
+#: query.php:212
+msgid "Add Criterion"
+msgstr "·s¼W³W«h"
+
+#: lib/Forms/Admin/Reply.php:22
+msgid "Add Form Reply"
+msgstr "·s¼W¦^Âм˥»"
+
+#: lib/Forms/Query.php:92
+msgid "Add Group Criterion"
+msgstr "·s¼W¸s²Õ³W«h"
+
+#: lib/Forms/Admin/Priority.php:20
+msgid "Add Priority"
+msgstr "·s¼WÀu¥ýÅv"
+
+#: lib/Forms/Query.php:169
+msgid "Add Property Criterion"
+msgstr "·s¼W¯S©Ê³W«h"
+
+#: lib/Forms/Admin/Queue.php:20 lib/Forms/Admin/Queue.php:21
+msgid "Add Queue"
+msgstr "·s¼W¤ÀÃþ"
+
+#: lib/Forms/Admin/State.php:20
+msgid "Add State"
+msgstr "·s¼Wª¬ºA"
+
+#: lib/Forms/Query.php:127
+msgid "Add Text Criterion"
+msgstr "·s¼W¤º®e³W«h"
+
+#: lib/Forms/Admin/Type.php:20 lib/Forms/Admin/Type.php:21
+msgid "Add Type"
+msgstr "·s¼WÃþ«¬"
+
+#: admin/index.php:109 admin/index.php:114
+#, php-format
+msgid "Add Type %s"
+msgstr "·s¼WÃþ«¬ %s"
+
+#: lib/Forms/Query.php:41
+msgid "Add User Criterion"
+msgstr "·s¼W¨Ï¥ÎªÌ³W«h"
+
+#: lib/Forms/Admin/User.php:21
+msgid "Add Users"
+msgstr "·s¼W¨Ï¥ÎªÌ"
+
+#: lib/Forms/Admin/Version.php:20
+msgid "Add Version"
+msgstr "·s¼Wª©¥»"
+
+#: ticket/watch.php:48
+msgid "Add Watcher"
+msgstr "·s¼Wq¾\ªÌ"
+
+#: templates/prefs/sourceselect.inc:298
+msgid "Add source"
+msgstr "·s¼W³q°T¿ý"
+
+#: ticket/create.php:55
+#, php-format
+msgid "Adding your ticket failed: %s."
+msgstr "·s¼WÁpô³æ¥¢±Ñ: %s."
+
+#: config/prefs.php.dist:24
+msgid "Address Books"
+msgstr "³q°T¿ý"
+
+#: admin/index.php:54 lib/api.php:881
+msgid "Administration"
+msgstr "ºÞ²z"
+
+#: lib/Renderer/Query.php:77 lib/Forms/Query.php:22
+msgid "And"
+msgstr "¥B"
+
+#: lib/Forms/Query.php:175 lib/Forms/Query.php:182 lib/Forms/Query.php:187
+#: lib/Forms/Query.php:194 lib/Forms/Query.php:199 lib/Forms/Search.php:28
+msgid "Any"
+msgstr "¥ô¦X"
+
+#: ticket/type.php:42 ticket/queue.php:48 lib/Forms/EditTicket.php:165
+#: lib/Forms/AddComment.php:37
+msgid "Any Group"
+msgstr "¥ô¤@¸s²Õ"
+
+#: config/prefs.php.dist:64
+msgid "Ascending"
+msgstr "¤W¤É"
+
+#: lib/api.php:901
+msgid "Assign"
+msgstr "¾Ö¦³ªÌ"
+
+#: lib/Whups.php:654 lib/Ticket.php:986 lib/Driver.php:198 lib/api.php:1007
+#: config/prefs.php.dist:53
+msgid "Assigned"
+msgstr "¤w«ü¬£"
+
+#: lib/Renderer/Comment.php:73
+#, php-format
+msgid "Assigned to %s"
+msgstr "¤w«ü¬£µ¹ %s"
+
+#: admin/index.php:1201
+msgid "Associations updated successfully."
+msgstr "ÃöÁp¤w§ó·s¦¨¥\."
+
+#: lib/Forms/CreateTicket.php:153 lib/Forms/EditTicket.php:126
+#: lib/Forms/AddComment.php:24
+msgid "Attachment"
+msgstr "ªþ¥ó"
+
+#: ticket/deleteAttachment.php:32
+#, php-format
+msgid "Attachment %s deleted."
+msgstr "ªþ¥ó%s¤w§R°£."
+
+#: lib/Ticket.php:499
+#, php-format
+msgid "Attachment %s not found."
+msgstr "§ä¤£¨ìªþ¥[ÀÉ®×%s."
+
+#: lib/Ticket.php:996
+msgid "Attachments"
+msgstr "ªþ¥ó"
+
+#: query.php:143
+msgid "Attri_bute Criteria"
+msgstr "ÄÝ©Ê_b"
+
+#: lib/Driver.php:117
+#, php-format
+msgid "Attribute %d"
+msgstr "ÄÝ©Ê %d"
+
+#: lib/Forms/Admin/Attribute.php:26 lib/Forms/Admin/Attribute.php:96
+#: lib/Forms/Admin/Attribute.php:142
+msgid "Attribute Description"
+msgstr "Äݩʴyz"
+
+#: lib/Forms/Admin/Attribute.php:25 lib/Forms/Admin/Attribute.php:74
+#: lib/Forms/Admin/Attribute.php:93 lib/Forms/Admin/Attribute.php:139
+msgid "Attribute Name"
+msgstr "ÄݩʦWºÙ"
+
+#: lib/Forms/Admin/Attribute.php:31 lib/Forms/Admin/Attribute.php:103
+msgid "Attribute Type"
+msgstr "Äݩʪ¬ºA"
+
+#: lib/Forms/Admin/Type.php:114
+msgid "Attributes for this Type"
+msgstr "¦¹Äݩʪºª¬ºA"
+
+#: config/prefs.php.dist:135
+msgid "Autolink to other tickets in comments?"
+msgstr "¦bµû½×¤¤¦Û°Ê³sµ²¨ì¨ä¥LªºÁpô³æ?"
+
+#: templates/prefs/sourceselect.inc:291 templates/prefs/sourceselect.inc:293
+msgid "Available Address books:"
+msgstr "¥i¥Îªº³q°T¿ý:"
+
+#: scripts/mail-filter.php:174
+msgid "Available queues:"
+msgstr "¥i¥Îªº¤ÀÃþ:"
+
+#: lib/Reports.php:12
+msgid "Average days to close by Owner"
+msgstr "¥H¾Ö¦³ªÌ¬°°ò·Ç,¥§¡µ²®×¤Ñ¼Æ"
+
+#: lib/Reports.php:14
+msgid "Average days to close by Queue"
+msgstr "¥H¤ÀÃþp¬°°ò·Ç,¥§¡µ²®×¤Ñ¼Æ"
+
+#: lib/Reports.php:13
+msgid "Average days to close by Requester"
+msgstr "¥H«Ø¥ß¤Hû¬°°ò·Ç,¥§¡µ²®×¤Ñ¼Æ"
+
+#: lib/Reports.php:19
+msgid "Average time a ticket is unresolved"
+msgstr "¥¼¸Ñ¨M¥§¡¤Ñ¼Æ"
+
+#: lib/Forms/Query.php:27
+msgid "Branch Type"
+msgstr "¤À¤äÃþ«¬"
+
+#: scripts/mail-filter.php:201
+msgid "Cannot authenticate at mail server:"
+msgstr "µLªk³q¹L¶l¥ó¦øªA¾¹»{ÃÒ: "
+
+#: lib/Query.php:52
+msgid "Case Insensitive Substring"
+msgstr "¤l¦r¦ê¤£¤À¤j¤p¼g"
+
+#: templates/renderer/querysetcurrenttype.inc:6
+msgid "Change"
+msgstr "Åܧó"
+
+#: config/prefs.php.dist:11
+msgid "Change display options such as how search results are sorted."
+msgstr "§ó§ïÅã¥Ü¿ï¶µ, ¦p·j´Mµ²ªG¦p¦ó±Æ§Çµ¥."
+
+#: config/prefs.php.dist:18
+msgid "Change options for email notifications of ticket activity."
+msgstr "Ápô³æ¬¡°Êªº¶l¥ó³qª¾¿ï¶µÅܧó."
+
+#: query.php:146
+msgid "Choose Action:"
+msgstr "¿ï¾Ü¾Þ§@:"
+
+#: lib/Query.php:222
+msgid "Choose New Query instead of deleting the root node."
+msgstr "¿ï¾Ü·sªº¬d¸ß¥H¥N´À®Ú³¡¸`ÂI§R°£."
+
+#: templates/prefs/sourceselect.inc:287
+msgid "Choose the order of address books to search when expanding addresses."
+msgstr "¿ï¾Ü³q°T¿ý·j´M¶¶§Ç,¥H«K©m¦WÁr´ú."
+
+#: lib/Forms/CreateTicket.php:47 lib/Forms/CreateTicket.php:77
+msgid "Choose:"
+msgstr "¿ï¾Ü:"
+
+#: config/prefs.php.dist:145
+msgid "Chronological (oldest first)"
+msgstr "¦~¥N¶¶§Ç±Æ¦C (ªº¥ý)"
+
+#: templates/prefs/sourceselect.inc:317
+msgid ""
+"Click on one of your selected address books and then select all fields to "
+"search."
+msgstr "¬°¨C¤@¥»¿ï¾Üªº³q°T¿ý³]©wÁr´úªºÄæ¦ì."
+
+#: lib/Forms/Admin/Type.php:195
+msgid "Clone"
+msgstr "½Æ»s"
+
+#: lib/Forms/Admin/Type.php:202
+msgid "Clone Description"
+msgstr "½Æ»s´yz"
+
+#: admin/index.php:151 lib/Forms/Admin/Type.php:36
+msgid "Clone Type"
+msgstr "½Æ»sÃþ«¬"
+
+#: config/templates.php.dist:43
+msgid "Comma Separated Values (CSV file)"
+msgstr "³rÂI¤À¹jÈ (CSV «¬ºAÀÉ®×)"
+
+#: ticket/type.php:32 ticket/queue.php:35 lib/Renderer/Query.php:88
+#: lib/Forms/EditTicket.php:131 lib/Forms/AddComment.php:23
+msgid "Comment"
+msgstr "µû½×"
+
+#: lib/Renderer/Comment.php:157
+#, php-format
+msgid "Comment #%d"
+msgstr "µû½× #%d"
+
+#: ticket/comment.php:70
+msgid "Comment added"
+msgstr "µû½×¤w¼W¥["
+
+#: ticket/comment.php:35
+#, php-format
+msgid "Comment on %s"
+msgstr "µû½×©ó %s"
+
+#: lib/Renderer/Query.php:87
+msgid "Commentor"
+msgstr "µû½×ªÌ"
+
+#: lib/Forms/Admin/Type.php:200
+#, php-format
+msgid "Copy of %s"
+msgstr "%s ªº½Æ»s"
+
+#: lib/MIME/Viewer/zip.php:52
+msgid "Could not extract the requested file from the Zip archive."
+msgstr "µLªk¦Û Zip Ãþ«¬ªº§¨±aÀɮ׸ÑÀ£ÁY."
+
+#: lib/Forms/Query.php:97
+msgid "Could not find any groups."
+msgstr "§ä¤£¨ì¥ô¦óªº¸s²Õ."
+
+#: lib/Mail.php:100
+#, php-format
+msgid "Could not find ticket \"%s\"."
+msgstr "§ä¤£¨ìÁpô³æ \"%s\"."
+
+#: lib/Forms/Admin/Type.php:102
+msgid "Create Default Priorities"
+msgstr "«Ø¥ß¹w³]ªºÀu¥ýÅv"
+
+#: lib/Forms/Admin/Type.php:85
+msgid "Create Default States"
+msgstr "«Ø¥ß¹w³]ªºª¬ºA"
+
+#: config/prefs.php.dist:77
+msgid "Create Ticket"
+msgstr "«Ø¥ßÁpô³æ"
+
+#: lib/Forms/CreateTicket.php:28
+msgid "Create Ticket - Step 1"
+msgstr "«Ø¥ßÁpô³æ - ¨BÆJ 1"
+
+#: lib/Forms/CreateTicket.php:65
+msgid "Create Ticket - Step 2"
+msgstr "«Ø¥ßÁpô³æ - ¨BÆJ 2"
+
+#: lib/Forms/CreateTicket.php:112
+msgid "Create Ticket - Step 3"
+msgstr "«Ø¥ßÁpô³æ - ¨BÆJ 3"
+
+#: lib/Forms/CreateTicket.php:197
+msgid "Create Ticket - Step 4"
+msgstr "«Ø¥ßÁpô³æ - ¨BÆJ 4"
+
+#: lib/Whups.php:652 lib/Ticket.php:971 lib/api.php:1012
+#: config/prefs.php.dist:52
+msgid "Created"
+msgstr "«Ø¥ß¤é"
+
+#: lib/Ticket.php:614 lib/Ticket.php:640
+msgid "Created By"
+msgstr "«Ø¥ß¤Hû"
+
+#: query.php:203 query.php:219
+msgid "Current Query"
+msgstr "¥Ø«e¬d¸ß"
+
+#: templates/renderer/querysetcurrenttype.inc:4
+msgid "Current Ticket Type"
+msgstr "¥Ø«eÁpô³æªºÃþ«¬"
+
+#: lib/Ticket.php:725
+msgid "DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED."
+msgstr "½Ð¤Å¦^Âгo¤@«Ê¶l¥ó.¦¹¶l¥ó¦a§}µL¤H¨ü²z."
+
+#: config/prefs.php.dist:108
+msgid "Date/Time format for search results"
+msgstr "¥H ¤é´Á/®É¶¡ ¬°·j´Mµ²ªGªº®æ¦¡"
+
+#: lib/Forms/Admin/Queue.php:106
+msgid "Default Ticket Type"
+msgstr "¹w³]Ápô³æÃþ«¬"
+
+#: config/prefs.php.dist:55
+msgid "Default sorting criteria:"
+msgstr "¹w³]±Æ¦C³W«h:"
+
+#: config/prefs.php.dist:66
+msgid "Default sorting direction:"
+msgstr "¹w³]±Æ¦C¤è¦V:"
+
+#: query.php:147
+msgid "Delete"
+msgstr "§R°£"
+
+#: lib/Whups.php:836 lib/Whups.php:837
+#, php-format
+msgid "Delete %s"
+msgstr "§R°£ %s"
+
+#: ticket/delete.php:61
+#, php-format
+msgid "Delete %s?"
+msgstr "§R°£ %s?"
+
+#: admin/index.php:947 lib/Forms/Admin/Attribute.php:57
+msgid "Delete Attribute"
+msgstr "§R°£ÄÝ©Ê"
+
+#: lib/Forms/Admin/Attribute.php:132
+msgid "Delete Attribute Confirmation"
+msgstr "§R°£ÄݩʽT»{"
+
+#: admin/index.php:1081 lib/Forms/Admin/Reply.php:36
+msgid "Delete Form Reply"
+msgstr "§R°£¦^Âм˥»"
+
+#: lib/Forms/Admin/Reply.php:94
+msgid "Delete Form Reply Confirmation"
+msgstr "½T»{§R°£¦^Âм˥»"
+
+#: admin/index.php:589 lib/Forms/Admin/Priority.php:36
+msgid "Delete Priority"
+msgstr "§R°£Àu¥ýÅv"
+
+#: lib/Forms/Admin/Priority.php:107
+msgid "Delete Priority Confirmation"
+msgstr "§R°£Àu¥ýÅv½T»{"
+
+#: lib/Forms/Query.php:377
+msgid "Delete Query?"
+msgstr "§R°£¬d¸ß?"
+
+#: admin/index.php:332 lib/Forms/Admin/Queue.php:44
+msgid "Delete Queue"
+msgstr "§R°£¤ÀÃþ"
+
+#: lib/Forms/Admin/Queue.php:159
+msgid "Delete Queue Confirmation"
+msgstr "§R°£¤ÀÃþ½T»{"
+
+#: admin/index.php:454 lib/Forms/Admin/State.php:35
+msgid "Delete State"
+msgstr "§R°£ª¬ºA"
+
+#: lib/Forms/Admin/State.php:107
+msgid "Delete State Confirmation"
+msgstr "§R°£ª¬ºA½T»{"
+
+#: admin/index.php:145 lib/Forms/Admin/Type.php:37
+msgid "Delete Type"
+msgstr "§R°£Ãþ«¬"
+
+#: lib/Forms/Admin/Type.php:149
+msgid "Delete Type Confirmation"
+msgstr "§R°£Ãþ«¬½T»{"
+
+#: admin/index.php:816 lib/Forms/Admin/Version.php:36
+msgid "Delete Version"
+msgstr "§R°£ª©¥»"
+
+#: lib/Forms/Admin/Version.php:82
+msgid "Delete Version Confirmation"
+msgstr "§R°£ª©¥»½T»{"
+
+#: lib/Ticket.php:619 lib/Ticket.php:717
+msgid "Deleted Attachment"
+msgstr "¤w§R°£ªºªþ¥ó"
+
+#: lib/Renderer/Comment.php:68
+#, php-format
+msgid "Deleted Attachment: %s"
+msgstr "¤w§R°£ªºªþ¥ó:%s"
+
+#: config/prefs.php.dist:65
+msgid "Descending"
+msgstr "¤U°"
+
+#: lib/Forms/CreateTicket.php:154
+msgid "Description"
+msgstr "´yz"
+
+#: config/prefs.php.dist:10
+msgid "Display Options"
+msgstr "Åã¥Ü¿ï¶µ"
+
+#: lib/Whups.php:827
+msgid "Download"
+msgstr "¤U¸ü"
+
+#: lib/Ticket.php:611 lib/Ticket.php:808 lib/Ticket.php:976 lib/api.php:1016
+msgid "Due"
+msgstr "¦³®Ä´Á"
+
+#: lib/Renderer/Comment.php:128
+#, php-format
+msgid "Due ⇒ %s"
+msgstr "¦³®Ä´Á ⇒ %s"
+
+#: lib/Forms/CreateTicket.php:151 lib/Forms/EditTicket.php:74
+msgid "Due Date"
+msgstr "¦³®Ä´Á"
+
+#: lib/Query.php:199
+msgid "E_xecute Query"
+msgstr "°õ¦æ_x"
+
+#: query.php:148
+msgid "Edit"
+msgstr "½s¿è"
+
+#: lib/Forms/Admin/Queue.php:82 lib/Forms/Admin/Type.php:63
+#, php-format
+msgid "Edit %s"
+msgstr "½s¿è %s"
+
+#: admin/index.php:942 lib/Forms/Admin/Attribute.php:57
+#: lib/Forms/Admin/Attribute.php:86
+msgid "Edit Attribute"
+msgstr "½s¿èÄÝ©Ê"
+
+#: lib/Forms/Admin/Type.php:119
+msgid "Edit Attributes"
+msgstr "½s¿èÄÝ©Ê"
+
+#: lib/Forms/Admin/Type.php:135
+msgid "Edit Form Replies"
+msgstr "½s¿è¦^Âм˥»"
+
+#: admin/index.php:1076 lib/Forms/Admin/Reply.php:36
+#: lib/Forms/Admin/Reply.php:64
+msgid "Edit Form Reply"
+msgstr "½s¿è¦^Âм˥»"
+
+#: lib/Forms/Admin/Type.php:98
+msgid "Edit Priorities"
+msgstr "½s¿èÀu¥ýÅv"
+
+#: admin/index.php:584 lib/Forms/Admin/Priority.php:36
+#: lib/Forms/Admin/Priority.php:59
+msgid "Edit Priority"
+msgstr "½s¿èÀu¥ýÅv"
+
+#: admin/index.php:326 lib/Forms/Admin/Queue.php:44
+#: lib/Forms/Admin/Queue.php:47
+msgid "Edit Queue"
+msgstr "½s¿è¤ÀÃþ"
+
+#: lib/Forms/Admin/Queue.php:46
+msgid "Edit Queues"
+msgstr "½s¿è¤ÀÃþ"
+
+#: admin/index.php:449 lib/Forms/Admin/State.php:35
+#: lib/Forms/Admin/State.php:56
+msgid "Edit State"
+msgstr "½s¿èª¬ºA"
+
+#: lib/Forms/Admin/Type.php:81
+msgid "Edit States"
+msgstr "½s¿èª¬ºA"
+
+#: admin/index.php:139 lib/Forms/Admin/Type.php:35
+msgid "Edit Type"
+msgstr "½s¿èÃþ«¬"
+
+#: admin/index.php:811 lib/Forms/Admin/Version.php:36
+#: lib/Forms/Admin/Version.php:59
+msgid "Edit Version"
+msgstr "½s¿èª©¥»"
+
+#: lib/Query.php:195
+msgid "Edit _Permissions"
+msgstr "Åv_P"
+
+#: admin/index.php:34
+msgid "Edit _Types"
+msgstr "½s¿èÃþ«¬_T"
+
+#: lib/Forms/Admin/Attribute.php:56
+msgid "Edit or Delete Attributes"
+msgstr "½s¿è©Î§R°£ÄÝ©Ê"
+
+#: lib/Forms/Admin/Reply.php:35
+msgid "Edit or Delete Form Replies"
+msgstr "½s¿è©Î§R°£¦^Âм˥»"
+
+#: lib/Forms/Admin/Priority.php:35
+msgid "Edit or Delete Priorities"
+msgstr "½s¿è©Î§R°£Àu¥ýÅv"
+
+#: lib/Forms/Admin/Queue.php:43
+msgid "Edit or Delete Queues"
+msgstr "½s¿è©Î§R°£¤ÀÃþ"
+
+#: lib/Forms/Admin/State.php:34
+msgid "Edit or Delete States"
+msgstr "½s¿è©Î§R°£ª¬ºA"
+
+#: lib/Forms/Admin/Type.php:34
+msgid "Edit or Delete Types"
+msgstr "½s¿è©Î§R°£Ãþ«¬"
+
+#: lib/Forms/Admin/Version.php:35
+msgid "Edit or Delete Versions"
+msgstr "½s¿è©Î§R°£ª©¥»"
+
+#: lib/Forms/Admin/Reply.php:81
+msgid "Edit the permissions on this form reply"
+msgstr "½s¿è¦¹¦^Âм˥»ªºÅv"
+
+#: lib/Forms/Admin/Queue.php:144
+msgid "Edit the permissions on this queue"
+msgstr "½s¿è¦¹¤ÀÃþªºÅv"
+
+#: lib/Forms/Admin/Queue.php:136
+msgid "Edit the users responsible for this queue"
+msgstr "½s¿è¦¹¤ÀÃþªº©Ó¿ì¤H"
+
+#: lib/Forms/Admin/Queue.php:118
+msgid "Edit the versions for this queue"
+msgstr "½s¿è¦¹¤ÀÃþªºª©¥»"
+
+#: ticket/watch.php:24
+msgid "Email address to notify"
+msgstr "¥H¦¹¹q¤l¶l¥ó¦í§}³qª¾"
+
+#: ticket/watch.php:36
+msgid "Email address to remove"
+msgstr "¦Ûq¾\¦W³æ¤¤²¾°£¦¹¹q¤l¶l¥ó¦í§}"
+
+#: lib/api.php:668
+msgid "Empty attachment"
+msgstr "¥h°£ªþ¥ó"
+
+#: scripts/mail-filter.php:190 scripts/mail-filter.php:210
+msgid "Error processing message:"
+msgstr "³B²z¶l¥ó®Éµo¥Í¿ù»~:"
+
+#: query.php:175
+#, php-format
+msgid "Error: Unknown query form %s, defaulting to properties"
+msgstr "¿ù»~: ¨Ó¦Û %s ªº¥¼ª¾¬d¸ß,¹w³]¬°©Ê½è"
+
+#: lib/Query.php:51
+msgid "Exact Match"
+msgstr "§¹¥þ§k¦X"
+
+#: runquery.php:91
+msgid "Execute Query"
+msgstr "°õ¦æ"
+
+#: templates/prefs/sourceselect.inc:327
+msgid "Fields to search"
+msgstr "·j´MÄæ¦ì"
+
+#: lib/Forms/Admin.php:35
+msgid "For tickets from these queues"
+msgstr "Ápô³æÄÝ©ó¤ÀÃþ"
+
+#: lib/Forms/Admin.php:39
+msgid "For tickets which are"
+msgstr "Ápô³æªºª¬ºA¬O"
+
+#: lib/api.php:912
+msgid "Form Replies"
+msgstr "¦^Âм˥»"
+
+#: lib/Forms/Admin/Type.php:130
+msgid "Form Replies for this Type"
+msgstr "¦¹Ãþ«¬ªº¦^Âм˥»"
+
+#: lib/Forms/Admin/Reply.php:25 lib/Forms/Admin/Reply.php:52
+#: lib/Forms/Admin/Reply.php:71 lib/Forms/Admin/Reply.php:101
+msgid "Form Reply Name"
+msgstr "¦^Âм˥»¦WºÙ"
+
+#: lib/Forms/Admin/Reply.php:26 lib/Forms/Admin/Reply.php:74
+#: lib/Forms/Admin/Reply.php:104
+msgid "Form Reply Text"
+msgstr "¦^Âм˥»¤º®e"
+
+#: lib/Forms/EditTicket.php:143
+msgid "Form Reply:"
+msgstr "¦^Âм˥»:"
+
+#: config/prefs.php.dist:9 config/prefs.php.dist:16 config/prefs.php.dist:23
+msgid "General Options"
+msgstr "¤@¯ë¿ï¶µ"
+
+#: templates/menu.inc:5
+msgid "Go"
+msgstr "«e©¹"
+
+#: lib/Forms/CreateTicket.php:232 lib/Forms/EditTicket.php:114
+msgid "Group Owners"
+msgstr "©Ó¿ì¸s²Õ"
+
+#: lib/Renderer/Query.php:85 lib/Forms/Query.php:98 lib/Forms/Query.php:100
+msgid "Groups"
+msgstr "¸s²Õ"
+
+#: lib/api.php:884
+msgid "Hidden Comments"
+msgstr "ÁôÂõû½×"
+
+#: ticket/index.php:43
+msgid "History"
+msgstr "¾ú¥v"
+
+#: query.php:149
+msgid "Hoist"
+msgstr "¤É°_"
+
+#: lib/Whups.php:637 lib/Whups.php:644 lib/Renderer/Query.php:83
+#: lib/Forms/Query.php:171 config/prefs.php.dist:45
+msgid "Id"
+msgstr "¸¹½X"
+
+#: lib/Forms/Admin.php:42
+msgid ""
+"If you select any tickets that do not have an owner, who should we send "
+"email to?"
+msgstr "¦pªG©Ò¿ï¾ÜªºÁpô³æ¨S¦³¾Ö¦³ªÌ,À³¸Ó¶Ç°e¹q¤l¶l¥óµ¹½Ö?"
+
+#: query.php:150
+msgid "Insert And"
+msgstr "´¡¤J¥B"
+
+#: lib/Forms/Query.php:19
+msgid "Insert Branch"
+msgstr "´¡¤J¤À¤ä"
+
+#: query.php:152
+msgid "Insert Not"
+msgstr "´¡¤J¤£¬O"
+
+#: query.php:151
+msgid "Insert Or"
+msgstr "´¡¤J©Î"
+
+#: lib/Forms/Admin/Queue.php:77 lib/Forms/Admin/Queue.php:78
+msgid "Invalid Queue"
+msgstr "µL®Äªº¤ÀÃþ"
+
+#: lib/Whups.php:231 lib/api.php:659
+msgid "Invalid Ticket Id"
+msgstr "µL®ÄªºÁpô³æ¸¹½X"
+
+#: lib/api.php:707
+msgid "Invalid argument: Missing attribute name or value."
+msgstr "µL®Äªº°Ñ¼Æ: §ä¤£¨ìÄݩʦWºÙ©ÎÈ."
+
+#: lib/api.php:692
+msgid "Invalid arguments: Must supply a ticket number and new attributes."
+msgstr "µL®Ä°Ñ¼Æ: ½Ð¿é¤JÁpô³æ¸¹½X¨Ã¥B·s¼WÄÝ©Ê."
+
+#: queue/index.php:30
+msgid "Invalid queue"
+msgstr "µL®Äªº¤ÀÃþ"
+
+#: lib/api.php:570
+#, php-format
+msgid "Invalid ticket data supplied: %s"
+msgstr "©Ò´£¨ÑªºÁpô³æ¸ê®ÆµL®Ä: %s"
+
+#: lib/Forms/Admin/Queue.php:113
+msgid "Keep a set of versions for this queue?"
+msgstr "¬°¦¹¤ÀÃþ³]©wª©¥»?"
+
+#: templates/prevnext.inc:30
+msgid "Last>>"
+msgstr "³Ì«áµ§>>"
+
+#: lib/Forms/Query.php:341
+msgid "Load Query"
+msgstr "¸ü¤J"
+
+#: lib/Forms/VarRenderer.php:46
+msgid "Loading..."
+msgstr "¸ü¤J¤¤..."
+
+#: config/prefs.php.dist:106
+msgid "MM/DD/YY"
+msgstr "¤ë/¤é/¦~"
+
+#: config/prefs.php.dist:107
+msgid "MM/DD/YY HH:MM:SS"
+msgstr "¤ë/¤é/¦~ ®É:¤À:¬í"
+
+#: lib/Forms/Admin/Type.php:193
+#, php-format
+msgid "Make a clone of %s"
+msgstr "½Æ»s %s"
+
+#: lib/Forms/Query.php:271
+msgid "Match"
+msgstr "§k¦X"
+
+#: lib/Forms/Query.php:44 lib/Forms/Query.php:130 lib/Forms/Query.php:272
+msgid "Match Operator"
+msgstr "§k¦Xµ{«×"
+
+#: lib/Query.php:55
+msgid "Match Pattern"
+msgstr "»P¼Ë¥»§k¦X"
+
+#: lib/Query.php:54
+msgid "Match Word"
+msgstr "»P¦r¦ê§k¦X"
+
+#: lib/Reports.php:20
+msgid "Maximum time a ticket is unresolved"
+msgstr "¥¼¸Ñ¨M³Ìªø¤Ñ¼Æ"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "¥\¯àªí"
+
+#: lib/Reports.php:21
+msgid "Minimum time a ticket is unresolved"
+msgstr "¥¼¸Ñ¨M³Ìµu¤Ñ¼Æ"
+
+#: config/prefs.php.dist:146
+msgid "Most recent first"
+msgstr "³Ìªñªº¤@µ§"
+
+#: templates/prefs/sourceselect.inc:312
+msgid "Move down"
+msgstr "¤U²¾"
+
+#: templates/prefs/sourceselect.inc:310
+msgid "Move up"
+msgstr "¤W²¾"
+
+#: ticket/queue.php:181
+#, php-format
+msgid "Moved ticket %d to \"%s\""
+msgstr "·h²¾Ápô³æ %d ¨ì \"%s\""
+
+#: mybugs.php:54
+#, php-format
+msgid "My %s"
+msgstr "§Úªº%s"
+
+#: mybugs_edit.php:33
+#, php-format
+msgid "My %s :: Add Content"
+msgstr "§Úªº %s :: ·s¼W¤º®e"
+
+#: search.php:106 lib/Block/myqueries.php:3 lib/Block/myqueries.php:24
+msgid "My Queries"
+msgstr "§Úªº¬d¸ß"
+
+#: lib/Block/myrequests.php:3 lib/Block/myrequests.php:24
+msgid "My Requests"
+msgstr "§Ú©Ò«Ø¥ßªºÁpô³æ"
+
+#: lib/Block/mytickets.php:3 lib/Block/mytickets.php:24
+#: config/prefs.php.dist:75
+msgid "My Tickets"
+msgstr "«ü¬£µ¹§ÚªºÁpô³æ"
+
+#: lib/api.php:978
+msgid "My tickets by assignment date"
+msgstr "§ÚªºÁpô³æ¨Ì«ü¬£¤é"
+
+#: lib/api.php:977
+msgid "My tickets by creation date"
+msgstr "§ÚªºÁpô³æ¨Ì«Ø¥ß¤é"
+
+#: lib/api.php:979
+msgid "My tickets by due date"
+msgstr "§ÚªºÁpô³æ¨Ì¦³®Ä´Á"
+
+#: lib/api.php:980
+msgid "My tickets by resolution date"
+msgstr "§ÚªºÁpô³æ¨Ì¸Ñ¨M¤é"
+
+#: lib/Forms/Query.php:320 lib/Forms/Query.php:352
+msgid "Name"
+msgstr "¦WºÙ"
+
+#: lib/Forms/Admin/Type.php:198
+msgid "Name of the cloned copy"
+msgstr "½Æ»s«áªº¦WºÙ"
+
+#: lib/Query.php:185
+msgid "Ne_w Query"
+msgstr "·s¼W_w"
+
+#: lib/Driver.php:197
+msgid "New"
+msgstr "·s¼W"
+
+#: lib/Ticket.php:618 lib/Ticket.php:711
+msgid "New Attachment"
+msgstr "·s¼Wªþ¥ó"
+
+#: lib/Renderer/Comment.php:58 lib/Renderer/Comment.php:62
+#, php-format
+msgid "New Attachment: %s"
+msgstr "·s¼Wªþ¥ó: %s"
+
+#: ticket/queue.php:32
+msgid "New Queue"
+msgstr "¤ÀÃþ"
+
+#: ticket/create.php:67 lib/Block/tree_menu.php:21
+msgid "New Ticket"
+msgstr "·s¼WÁpô³æ"
+
+#: ticket/type.php:31
+msgid "New Type"
+msgstr "Ãþ«¬"
+
+#: templates/prevnext.inc:26
+msgid "Next>"
+msgstr "¤U¤@µ§>"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:379 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "No"
+msgstr "§_"
+
+#: lib/Ticket.php:100
+#, php-format
+msgid ""
+"No priority for this ticket and no default priority for ticket type \"%s\" "
+"specified."
+msgstr "³oÓÃþ«¬ \"%s\" ©|¥¼³]©wÀu¥ýÅv¥H¤Î¹w³]Àu¥ýÅv."
+
+#: lib/Block/myqueries.php:46
+msgid "No queries have been saved."
+msgstr "¨S¦³¥ô¦ó¬d¸ß³QÀx¦s."
+
+#: lib/Block/query.php:64 lib/Driver/sql.php:553
+msgid "No query to run"
+msgstr "µL¬d¸ß¥i¨Ñ°õ¦æ"
+
+#: lib/Block/queuecontents.php:25
+msgid "No queues available."
+msgstr "µL¥i¥Îªº¤ÀÃþ."
+
+#: lib/Ticket.php:92
+#, php-format
+msgid ""
+"No state for this ticket and no default state for ticket type \"%s\" "
+"specified."
+msgstr "³oÓÁpô³æ \"%s\" ©|¥¼³]©wª¬ºA¥H¤Î¹w³]ª¬ºA."
+
+#: reports.php:19
+msgid "No stats available."
+msgstr "µL¥i¥Î¤§²Îpªí."
+
+#: lib/Driver.php:517
+#, php-format
+msgid "No such backend \"%s\" found"
+msgstr "µL¦¹¦øªAºÝ \"%s\""
+
+#: lib/View.php:33
+msgid "No such view \"%s\" found"
+msgstr "§ä¤£¨ìÀ˵ø \"%s\""
+
+#: lib/Block/mytickets.php:45
+msgid "No tickets are assigned to you."
+msgstr "µL¥ô¦óÁpô³æ«ü¬£µ¹§A."
+
+#: lib/Block/unassigned.php:45
+msgid "No tickets are unassigned!"
+msgstr "µL¥ô¦ó¥¼«ü¬£ªºÁpô³æ!"
+
+#: lib/Block/queuecontents.php:62 lib/Block/queuecontents.php:73
+msgid "No tickets in queue."
+msgstr "¤ÀÃþ¤¤¨S¦³Ápô³æ."
+
+#: lib/Whups.php:686
+msgid "No tickets matched your search criteria."
+msgstr "¨S¦³Ápô³æ²Å¦X·j´M±ø¥ó."
+
+#: lib/Ticket.php:84
+#, php-format
+msgid "No type for this ticket and no default type for queue \"%s\" specified."
+msgstr "³oÓÃþ§O \"%s\" ©|¥¼³]©wÃþ«¬¥H¤Î¹w³]Ãþ«¬."
+
+#: templates/prefs/sourceselect.inc:35 lib/Reports.php:88
+msgid "None"
+msgstr "µL"
+
+#: lib/Renderer/Query.php:79 lib/Forms/Query.php:24
+msgid "Not"
+msgstr "¤£¬O"
+
+#: query.php:80
+msgid "Not yet implemented."
+msgstr "©|¥¼§¹¦¨."
+
+#: config/prefs.php.dist:17
+msgid "Notification Options"
+msgstr "³qª¾¿ï¶µ"
+
+#: config/prefs.php.dist:117
+msgid "Only notify me of ticket changes from other users?"
+msgstr "Ápô³æ³Q¨ä¥L¤HÅܧó®É¥u³qª¾§Ú?"
+
+#: config/prefs.php.dist:126
+msgid "Only notify me of ticket changes with comments?"
+msgstr "Ápô³æ³Q¥[µùµû½×®É¥u³qª¾§Ú?"
+
+#: queue/rss.php:43
+msgid "Open"
+msgstr "¶}±Ò"
+
+#: lib/Block/queuesummary.php:49
+msgid "Open Tickets"
+msgstr "©|¥¼µ²®×ªºÁpô³æ"
+
+#: lib/Reports.php:11
+msgid "Open Tickets by Owner"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥H¾Ö¦³ªÌ¬°°ò·Ç"
+
+#: lib/Reports.php:9
+msgid "Open Tickets by Priority"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥HÀu¥ýÅv¬°°ò·Ç"
+
+#: lib/Reports.php:6
+msgid "Open Tickets by Queue"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥H¤ÀÃþ¬°°ò·Ç"
+
+#: lib/Reports.php:10
+msgid "Open Tickets by Requester"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥H«Ø¥ß¤Hû¬°°ò·Ç"
+
+#: lib/Reports.php:7
+msgid "Open Tickets by State"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥Hª¬ºA¬°°ò·Ç"
+
+#: lib/Reports.php:8
+msgid "Open Tickets by Type"
+msgstr "©|¥¼µ²®×ªºÁpô³æ--¥HÃþ«¬¬°°ò·Ç"
+
+#: lib/Block/queuecontents.php:47
+#, php-format
+msgid "Open Tickets in %s"
+msgstr "%s ¤¤©|¥¼µ²®×ªºÁpô³æ"
+
+#: queue/rss.php:119 queue/index.php:43 queue/index.php:57
+#, php-format
+msgid "Open tickets in %s"
+msgstr "%s ¤¤©|¥¼µ²®×ªºÁpô³æ"
+
+#: queue/rss.php:121
+msgid "Open tickets in all queues."
+msgstr "¥þ³¡¥¼µ²®×ªºÁpô³æ."
+
+#: lib/Renderer/Query.php:78 lib/Forms/Query.php:23
+msgid "Or"
+msgstr "©Î"
+
+#: lib/Whups.php:651 lib/Ticket.php:617 lib/Ticket.php:701 lib/Ticket.php:702
+#: lib/Ticket.php:705 lib/Ticket.php:812 lib/Ticket.php:833 lib/Ticket.php:958
+#: lib/Renderer/Query.php:84 lib/Forms/CreateTicket.php:225
+#: lib/Forms/CreateTicket.php:243 lib/Forms/EditTicket.php:104
+msgid "Owners"
+msgstr "©Ó¿ì¤Hû"
+
+#: lib/Whups.php:836
+#, php-format
+msgid "Permanently delete %s?"
+msgstr "¥Ã¤[§R°£%s?"
+
+#: ticket/update.php:22 ticket/type.php:74 ticket/delete.php:51
+#: ticket/queue.php:131 ticket/deleteAttachment.php:21
+msgid "Permission Denied"
+msgstr "¦s¨ú¾D©Ú"
+
+#: ticket/delete.php:40 lib/Forms/EditTicket.php:196
+msgid "Permission Denied."
+msgstr "¦s¨ú¾D©Ú."
+
+#: runquery.php:37 query.php:32 lib/Forms/Query.php:389
+#, php-format
+msgid "Permission denied."
+msgstr "¦s¨ú¾D©Ú"
+
+#: lib/Imple/ContactAutoCompleter.php:227
+msgid "Please resolve ambiguous or invalid addresses."
+msgstr "½Ð«·s¿é¤J¥¿½Tªº¹q¶l¦a§}."
+
+#: lib/Forms/Admin/Type.php:93 lib/Forms/Admin/Type.php:171
+msgid "Priorities for this Type"
+msgstr "¦¹Ãþ«¬ªºÀu¥ýÅv"
+
+#: ticket/type.php:66 ticket/queue.php:117 lib/Whups.php:639 lib/Whups.php:648
+#: lib/Ticket.php:610 lib/Ticket.php:807 lib/Ticket.php:953
+#: lib/Renderer/Query.php:125 lib/Forms/CreateTicket.php:147
+#: lib/Forms/EditTicket.php:68 lib/Forms/Query.php:198
+#: config/prefs.php.dist:49
+msgid "Priority"
+msgstr "Àu¥ýÅv"
+
+#: lib/Renderer/Comment.php:115
+#, php-format
+msgid "Priority ⇒ %s"
+msgstr "Àu¥ýÅv ⇒ %s"
+
+#: lib/Forms/Admin/Priority.php:24 lib/Forms/Admin/Priority.php:70
+#: lib/Forms/Admin/Priority.php:118
+msgid "Priority Description"
+msgstr "Àu¥ýÅvªº´yz"
+
+#: lib/Forms/Admin/Priority.php:23 lib/Forms/Admin/Priority.php:48
+#: lib/Forms/Admin/Priority.php:67 lib/Forms/Admin/Priority.php:94
+#: lib/Forms/Admin/Priority.php:115
+msgid "Priority Name"
+msgstr "Àu¥ýÅvªº¦WºÙ"
+
+#: search.php:106
+msgid "Public Queries"
+msgstr "¤½¶}¬d¸ß"
+
+#: query.php:156
+msgid "Query Builder"
+msgstr "¬d¸ß²£¥Í¾¹"
+
+#: lib/Forms/QueryParameterForm.php:20
+msgid "Query Parameters"
+msgstr "¬d¸ß°Ñ¼Æ"
+
+#: runquery.php:72 lib/Block/query.php:3 lib/Block/query.php:51
+msgid "Query Results"
+msgstr "¬d¸ßµ²ªG"
+
+#: lib/Block/query.php:33
+msgid "Query to run"
+msgstr "°õ¦æ"
+
+#: lib/Whups.php:649 lib/Ticket.php:606 lib/Ticket.php:803 lib/Ticket.php:918
+#: lib/Ticket.php:923 lib/Renderer/Query.php:94 lib/Forms/Query.php:181
+#: lib/Forms/Search.php:36 lib/Block/queuecontents.php:32
+#: lib/Block/queuesummary.php:49 config/prefs.php.dist:50
+msgid "Queue"
+msgstr "¤ÀÃþ"
+
+#: lib/Renderer/Comment.php:100
+#, php-format
+msgid "Queue ⇒ %s"
+msgstr "¤ÀÃþ ⇒ %s"
+
+#: lib/Block/queuecontents.php:3 lib/Block/queuecontents.php:49
+msgid "Queue Contents"
+msgstr "¤ÀÃþ¤º®e"
+
+#: lib/Forms/Admin/Queue.php:24 lib/Forms/Admin/Queue.php:89
+#: lib/Forms/Admin/Queue.php:170
+msgid "Queue Description"
+msgstr "¤ÀÃþ´yz"
+
+#: lib/Forms/Admin/Queue.php:30 lib/Forms/Admin/Queue.php:97
+msgid "Queue Email"
+msgstr "¤ÀÃþªº Email ¦a§}"
+
+#: lib/Forms/CreateTicket.php:34 lib/Forms/CreateTicket.php:45
+#: lib/Forms/Admin/Queue.php:23 lib/Forms/Admin/Queue.php:60
+#: lib/Forms/Admin/Queue.php:85 lib/Forms/Admin/Queue.php:166
+msgid "Queue Name"
+msgstr "¤ÀÃþ¦WºÙ"
+
+#: lib/Forms/Admin/Queue.php:26 lib/Forms/Admin/Queue.php:93
+msgid "Queue Slug"
+msgstr "¤ÀÃþ¼ÐÃD"
+
+#: lib/Block/queuesummary.php:3 lib/Block/queuesummary.php:24
+msgid "Queue Summary"
+msgstr "¤ÀÃþºKn"
+
+#: ticket/queue.php:86 lib/Ticket.php:932 lib/Ticket.php:938
+#: lib/Forms/CreateTicket.php:93
+msgid "Queue Version"
+msgstr "¤ÀÃþª©¥»"
+
+#: admin/index.php:35
+msgid "Queue/Type Matri_x"
+msgstr "¤ÀÃþ/Ãþ«¬ ÃöÁp_x"
+
+#: templates/admin/mtmatrix.inc:6
+msgid "Queue/Type Matrix"
+msgstr "¤ÀÃþ/Ãþ«¬ ÃöÁp"
+
+#: lib/api.php:175 lib/api.php:887
+msgid "Queues"
+msgstr "¤ÀÃþ"
+
+#: templates/prevnext.inc:32
+msgid "Re_turn to Search Results"
+msgstr "¦^·j´Mµ²ªG_t"
+
+#: lib/Forms/Admin/Attribute.php:147
+msgid "Really delete this attribute? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓÄݩʡH ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: lib/Forms/Admin/Reply.php:108
+msgid "Really delete this form reply?"
+msgstr "½T©w§R°£¦¹¦^Âм˥»?"
+
+#: lib/Forms/Admin/Priority.php:122
+msgid "Really delete this priority? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓÀu¥ý¡H ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: lib/Forms/Query.php:380
+msgid "Really delete this query? This operation is not undoable."
+msgstr "¯uªºn§R°£³oÓ¬d¸ß¶Ü? ³o¶µ¾Þ§@±NµLªk«ì´_."
+
+#: lib/Forms/Admin/Queue.php:176
+msgid "Really delete this queue? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓ¤ÀÃþ¡H ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: lib/Forms/Admin/State.php:122
+msgid "Really delete this state? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓª¬ºA¡H ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: ticket/delete.php:34
+msgid ""
+"Really delete this ticket? It will NOT be archived, and will be gone forever."
+msgstr "½T©wn§R°£³oÓÁpô³æ? Ápô³æ©|¥¼³Æ¥÷¦]¦¹±N¥Ã¤[§R°£."
+
+#: lib/Forms/Admin/Type.php:178
+msgid "Really delete this type? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓÃþ«¬¡H ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: lib/Forms/Admin/Version.php:97
+msgid "Really delete this version? This may cause data problems!"
+msgstr "½T©wn§R°£³oÓª©¥»¡H ³o¦³¥i¯à¾ÉP¸ê®Æ¤Wªº°ÝÃD !!"
+
+#: lib/Mail.php:217
+msgid "Received message:"
+msgstr "¤wŪ¨úªº¶l¥ó:"
+
+#: search.php:87
+msgid "Refine Search"
+msgstr "«·s·j´M"
+
+#: admin/index.php:1169
+msgid "Reminders were sent."
+msgstr "´£¥Ü¤w°e¥X."
+
+#: lib/Forms/Admin/User.php:59
+msgid "Remove User"
+msgstr "²¾°£¨Ï¥ÎªÌ"
+
+#: ticket/watch.php:49
+msgid "Remove Watcher"
+msgstr "²¾°£q¾\ªÌ"
+
+#: templates/prefs/sourceselect.inc:300
+msgid "Remove source"
+msgstr "²¾°£³q°T¿ý"
+
+#: lib/Renderer/Comment.php:95
+msgid "Reply to this comment"
+msgstr "¦^ÂÐ"
+
+#: reports.php:24
+msgid "Reports"
+msgstr "³øªí"
+
+#: lib/Whups.php:650 lib/Ticket.php:965 lib/Renderer/Query.php:86
+msgid "Requester"
+msgstr "«Ø¥ß¤Hû"
+
+#: lib/Forms/Admin/Attribute.php:28 lib/Forms/Admin/Attribute.php:99
+msgid "Required Attribute?"
+msgstr "¥²¶·nªºÄÝ©Ê?"
+
+#: lib/Whups.php:655 lib/Ticket.php:991 lib/Driver.php:199 lib/api.php:1021
+#: config/prefs.php.dist:54
+msgid "Resolved"
+msgstr "¤w¸Ñ¨M"
+
+#: lib/Forms/Admin/User.php:61
+msgid "Responsible Users"
+msgstr "©Ó¿ì¤Hû"
+
+#: lib/Forms/EditTicket.php:166
+msgid "Restrict Comment to:"
+msgstr "¥iÀ˵ø¦¹µû½×ªº¸s²Õ:"
+
+#: lib/Whups.php:276
+msgid "S_et Queue"
+msgstr "³]©w¤ÀÃþ_e"
+
+#: lib/Query.php:203
+msgid "Sa_ve Query"
+msgstr "Àx¦s_v"
+
+#: templates/view/results.inc:36 lib/Forms/Query.php:318
+msgid "Save"
+msgstr "Àx¦s"
+
+#: lib/Forms/Query.php:317
+msgid "Save Query"
+msgstr "Àx¦s"
+
+#: templates/view/results.inc:30
+msgid "Save these results as: "
+msgstr "¥t¦s³o¨Çµ²ªG¬°: "
+
+#: search.php:55 lib/Block/tree_menu.php:30
+msgid "Search"
+msgstr "·j´M"
+
+#: lib/Forms/Query.php:275
+#, php-format
+msgid "Search %s Attribute"
+msgstr "·j´M %s ÄÝ©Ê"
+
+#: lib/Forms/Query.php:278
+msgid "Search Attribute"
+msgstr "·j´MÄÝ©Ê"
+
+#: lib/Forms/Query.php:47 lib/Forms/Query.php:132
+msgid "Search Comments"
+msgstr "·j´Mµû½×"
+
+#: lib/Forms/Query.php:45
+msgid "Search Owners"
+msgstr "·j´M¾Ö¦³ªÌ"
+
+#: lib/Forms/Query.php:46
+msgid "Search Requester"
+msgstr "·j´M«Ø¥ß¤Hû"
+
+#: search.php:79
+msgid "Search Results"
+msgstr "·j´Mµ²ªG"
+
+#: templates/prevnext.inc:38
+#, php-format
+msgid "Search Results: %s of %s"
+msgstr "·j´Mµ²ªG: %s ¦@ %s"
+
+#: lib/Forms/Query.php:131
+msgid "Search Summary"
+msgstr "·j´MºKn"
+
+#: config/prefs.php.dist:76
+msgid "Search Tickets"
+msgstr "·j´MÁpô³æ"
+
+#: config/prefs.php.dist:25
+msgid "Select address book sources for adding and searching for addresses."
+msgstr "¿ï¾Ü³q°T¿ý¥H·j´M¤Î·s¼W¦a§}."
+
+#: templates/prefs/sourceselect.inc:319
+msgid "Select all fields to search when expanding addresses."
+msgstr "·í°õ¦æ©m¦WÁr´ú®É,¿ï¾Ü©Ò¦³Äæ¦ì¥H§Q·j´M."
+
+#: config/prefs.php.dist:78
+msgid "Select the view to display after login:"
+msgstr "¿ï¾Üµn¤J«áªºÀ˵ø¤è¦¡:"
+
+#: templates/prefs/sourceselect.inc:303 templates/prefs/sourceselect.inc:305
+msgid "Selected Address books:"
+msgstr "¤w¿ï¾Üªº³q°T¿ý:"
+
+#: admin/index.php:36
+msgid "Sen_d Reminders"
+msgstr "¶Ç°e´£¥Ü_d"
+
+#: lib/Forms/Admin.php:23
+msgid "Send Reminders"
+msgstr "¶Ç°e´£¥Ü"
+
+#: lib/Forms/Admin.php:34
+msgid "Send only for this list of ticket ids"
+msgstr "¥u¶Ç°e³o¨Ç½s¸¹ªºÁpô³æ"
+
+#: lib/Forms/Admin/Priority.php:80 lib/Forms/Admin/Priority.php:82
+msgid "Set Default Priority"
+msgstr "³]©w¬°¹w³]ªºÀu¥ýÅv"
+
+#: lib/Forms/Admin/State.php:80 lib/Forms/Admin/State.php:82
+msgid "Set Default State"
+msgstr "³]©w¬°¹w³]ªºª¬ºA"
+
+#: ticket/queue.php:201 ticket/queue.php:210 ticket/queue.php:222
+msgid "Set Queue - Step 1"
+msgstr "³]©w¤ÀÃþ - ¨BÆJ 1"
+
+#: ticket/queue.php:202 ticket/queue.php:211
+msgid "Set Queue - Step 2"
+msgstr "³]©w¤ÀÃþ - ¨BÆJ 2"
+
+#: ticket/queue.php:212
+msgid "Set Queue - Step 3"
+msgstr "³]©w¤ÀÃþ - ¨BÆJ 3"
+
+#: ticket/queue.php:189
+#, php-format
+msgid "Set Queue for %s"
+msgstr "³]©w %s ªº¤ÀÃþ"
+
+#: lib/api.php:906
+msgid "Set Requester"
+msgstr "³]©w«Ø¥ß¤Hû"
+
+#: ticket/type.php:139 ticket/type.php:148
+msgid "Set Type - Step 1"
+msgstr "³]©wÃþ«¬ - ¨BÆJ 1"
+
+#: ticket/type.php:140
+msgid "Set Type - Step 2"
+msgstr "³]©wÃþ«¬ - ¨BÆJ 2"
+
+#: ticket/type.php:127
+#, php-format
+msgid "Set Type for %s"
+msgstr "³]©w %s ªºÃþ«¬"
+
+#: lib/Whups.php:281
+msgid "Set _Type"
+msgstr "³]©wÃþ«¬_T"
+
+#: config/prefs.php.dist:144
+msgid "Show comments in chronological order, or most recent first?"
+msgstr "«ö¦~¥N¶¶§Ç,©ÎªÌ³Ìªñªº¤@Ó¨ÓÅã¥Üµû½×?"
+
+#: config/prefs.php.dist:95
+msgid "Show ticket IDs in the summary view?"
+msgstr "©óºKnÀ˵ø¤¤Åã¥ÜÁpô³æ¸¹½X?"
+
+#: config/prefs.php.dist:87
+msgid "Show tickets you have requested in the summary view?"
+msgstr "©óºKnÀ˵ø¤¤Åã¥Ü§A©ÒÂI¿ïªºÁpô³æ?"
+
+#: config/templates.php.dist:16
+msgid "Simple HTML Report"
+msgstr "²³æªº HTML ³øªí"
+
+#: lib/Forms/Admin/Queue.php:27
+#, php-format
+msgid ""
+"Slugs allows direct access to this queue's open tickets by visiting: %s. "
+"<br /> Slug names may contain only letters, numbers or the _ (underscore) "
+"character."
+msgstr ""
+"§Ö±¶ºô§}´£¨Ñ¤@Óª½±µ¦s¨ú¦¹Ãþ§O¤¤¥¼µ²®×Ápô³æªººô§}: %s <br />§Ö±¶ºô§}¥i¥H¬O¥ô"
+"¦ó^¤å,¼Æ¦r©Î¬O _ (©³½u)©Ò²Õ¦¨."
+
+#: templates/view/results.inc:51 templates/view/results.inc:55
+#, php-format
+msgid "Sort by %s"
+msgstr "¤w %s ±Æ¦C"
+
+#: lib/Forms/CreateTicket.php:136 lib/Forms/CreateTicket.php:175
+#: lib/Forms/AddComment.php:20 lib/Forms/AddComment.php:51
+msgid "Spam protection"
+msgstr "Spam ¨¾Å@"
+
+#: ticket/type.php:65 ticket/queue.php:116 lib/Whups.php:640 lib/Whups.php:646
+#: lib/Ticket.php:609 lib/Ticket.php:806 lib/Ticket.php:949
+#: lib/Renderer/Query.php:117 lib/Forms/EditTicket.php:62
+#: lib/Forms/Query.php:193 config/prefs.php.dist:47
+msgid "State"
+msgstr "ª¬ºA"
+
+#: lib/Renderer/Comment.php:110
+#, php-format
+msgid "State ⇒ %s"
+msgstr "ª¬ºA ⇒ %s"
+
+#: lib/Forms/Admin/State.php:25 lib/Forms/Admin/State.php:70
+msgid "State Category"
+msgstr "ª¬ºA¤ÀÃþ"
+
+#: lib/Forms/Admin/State.php:24 lib/Forms/Admin/State.php:67
+#: lib/Forms/Admin/State.php:118
+msgid "State Description"
+msgstr "ª¬ºAªº´yz"
+
+#: lib/Forms/Admin/State.php:23 lib/Forms/Admin/State.php:47
+#: lib/Forms/Admin/State.php:64 lib/Forms/Admin/State.php:96
+#: lib/Forms/Admin/State.php:115
+msgid "State Name"
+msgstr "ª¬ºA¦WºÙ"
+
+#: lib/Forms/Admin/Type.php:76 lib/Forms/Admin/Type.php:165
+msgid "States for this Type"
+msgstr "¦¹Ãþ«¬ªºª¬ºA"
+
+#: templates/ticket/watchers.inc:1
+msgid "Status"
+msgstr "ª¬ºA"
+
+#: ticket/create.php:146
+msgid "Submit"
+msgstr "´£¥æ"
+
+#: admin/index.php:198
+#, php-format
+msgid "Successfully Cloned %s to %s."
+msgstr "¤w¦¨¥\ªº½Æ»s %s ¨ì %s ."
+
+#: ticket/type.php:118
+msgid "Successfully changed ticket type."
+msgstr "Ápô³æªºÃþ«¬¤wÅܧ󧹦¨."
+
+#: ticket/delete.php:30 lib/Whups.php:638 lib/Whups.php:645 lib/Ticket.php:616
+#: lib/Ticket.php:643 lib/Ticket.php:646 lib/Ticket.php:650 lib/Ticket.php:812
+#: lib/Ticket.php:821 lib/Ticket.php:912 lib/Renderer/Query.php:89
+#: lib/Forms/CreateTicket.php:152 lib/Forms/EditTicket.php:58
+#: config/prefs.php.dist:46
+msgid "Summary"
+msgstr "ºKn"
+
+#: lib/Renderer/Comment.php:51
+#, php-format
+msgid "Summary ⇒ %s"
+msgstr "ºKn ⇒ %s"
+
+#: lib/Forms/Search.php:39
+msgid "Summary like"
+msgstr "ºKn¬Û¦ü"
+
+#: lib/Renderer/Comment.php:79
+#, php-format
+msgid "Taken from %s"
+msgstr "¸Ñ°£ %s ªº«ü¬£"
+
+#: lib/Forms/Query.php:129
+msgid "Text"
+msgstr "¤º®e"
+
+#: lib/Driver/sql.php:80 lib/Driver/sql.php:1269
+msgid "That queue slug is already taken. Please select another."
+msgstr "¸ÓÃþ§Oªº§Ö±¶ºô§}¤w¨Ï¥Î. ½Ð¥t¿ï¨ä¥L."
+
+#: lib/Forms/CreateTicket.php:129
+msgid "The Requester's Email Address"
+msgstr "«Ø¥ß¤Hûªº Email"
+
+#: view.php:58 lib/Ticket.php:439 lib/Ticket.php:487
+msgid "The VFS backend needs to be configured to enable attachment uploads."
+msgstr "n±Ò¥Îªþ¥ó¤W¶Ç¥\¯à«e,µêÀÀÀɮרt²Î(VFS)¦øªAºÝ¥²¶·³]©w§¹¦¨."
+
+#: admin/index.php:906
+#, php-format
+msgid "The attribute \"%s\" has been added to %s."
+msgstr "ÄÝ©Ê\"%s\"¤w³Q·s¼W¨ì%s."
+
+#: admin/index.php:1005
+msgid "The attribute has been deleted."
+msgstr "¦¹Äݩʤw³Q§R°£."
+
+#: admin/index.php:973
+msgid "The attribute has been modified."
+msgstr "¦¹Äݩʤw³Q×§ï."
+
+#: admin/index.php:1014
+msgid "The attribute was not deleted."
+msgstr "¦¹Äݩʨå¼³Q§R°£."
+
+#: admin/index.php:642
+msgid "The default priority has been set."
+msgstr "¹w³]ªºÀu¥ýÅv¤w³]©w§¹¦¨."
+
+#: admin/index.php:506
+msgid "The default state has been set."
+msgstr "¹w³]ªºª¬ºA¤w³]©w§¹¦¨."
+
+#: admin/index.php:1042
+msgid "The form reply \"%s\" has been added to %s."
+msgstr "¦^Âм˥» \"%s\" ¤w³Q·s¼W¨ì %s."
+
+#: admin/index.php:1134
+msgid "The form reply has been deleted."
+msgstr "¦^Âм˥»¤w¸g§R°£."
+
+#: admin/index.php:1107
+msgid "The form reply has been modified."
+msgstr "¦^Âм˥»¤w³Q×§ï."
+
+#: admin/index.php:1143
+msgid "The form reply was not deleted."
+msgstr "¦^Âм˥»¨Ã¥¼³Q§R°£."
+
+#: admin/index.php:556
+#, php-format
+msgid "The priority \"%s\" has been added to %s."
+msgstr "Àu¥ýÅv\"%s\"¤w³Q·s¼W¨ì%s."
+
+#: admin/index.php:661
+msgid "The priority has been deleted."
+msgstr "¦¹Àu¥ýÅv¤w³Q§R°£."
+
+#: admin/index.php:609
+msgid "The priority has been modified."
+msgstr "¦¹Àu¥ýÅv¤w³Q×§ï."
+
+#: admin/index.php:670
+msgid "The priority was not deleted."
+msgstr "¦¹Àu¥ýÅv¨Ã¥¼³Q§R°£."
+
+#: lib/Forms/Query.php:393
+#, php-format
+msgid "The query \"%s\" couldn't be deleted: %s"
+msgstr "¬d¸ß\"%s\"µLªk³Q§R°£:%s"
+
+#: lib/Forms/Query.php:395
+#, php-format
+msgid "The query \"%s\" has been deleted."
+msgstr "¬d¸ß\"%s\"¤w³Q§R°£."
+
+#: lib/Forms/Query.php:360
+#, php-format
+msgid "The query couldn't be loaded:"
+msgstr "¬d¸ßµLªk³Q¸ü¤J:"
+
+#: admin/index.php:300
+#, php-format
+msgid "The queue \"%s\" has been created."
+msgstr "¤ÀÃþ\"%s\"¤w³Q«Ø¥ß."
+
+#: admin/index.php:392
+msgid "The queue has been deleted."
+msgstr "¦¹¤ÀÃþ¤w³Q§R°£."
+
+#: admin/index.php:359
+msgid "The queue has been modified."
+msgstr "¦¹¤ÀÃþ¤w³Q×§ï."
+
+#: admin/index.php:400
+msgid "The queue was not deleted."
+msgstr "¦¹¤ÀÃþ¨Ã¥¼³Q§R°£."
+
+#: lib/MIME/Viewer/zip.php:58
+msgid "The requested file does not exist in the Zip attachment."
+msgstr "¦b Zip ªþ¥ó¤¤§ä¤£¨ì©Ò¶·nªºÀÉ®×."
+
+#: data.php:26
+msgid "The requested template does not exist."
+msgstr "ÂI¿ïªº¼ËªO¨Ã¤£¦s¦b."
+
+#: admin/index.php:422
+#, php-format
+msgid "The state \"%s\" has been added to %s."
+msgstr "ª¬ºA\"%s\"¤w³Q·s¼W¨ì%s."
+
+#: admin/index.php:525
+msgid "The state has been deleted."
+msgstr "¦¹ª¬ºA¤w³Q§R°£."
+
+#: admin/index.php:475
+msgid "The state has been modified."
+msgstr "¦¹ª¬ºA¤w³Q×§ï."
+
+#: admin/index.php:533
+msgid "The state was not deleted."
+msgstr "¦¹ª¬ºA¨Ã¥¼³Q§R°£."
+
+#: ticket/delete.php:78
+msgid "The ticket was not deleted."
+msgstr "Ápô³æ¨Ã¥¼³Q§R°£."
+
+#: admin/index.php:223
+#, php-format
+msgid "The type \"%s\" has been modified."
+msgstr "Ãþ«¬\"%s\"¤w³Q×§ï."
+
+#: admin/index.php:272
+msgid "The type has been deleted."
+msgstr "¦¹Ãþ«¬¤w³Q§R°£."
+
+#: admin/index.php:280
+msgid "The type was not deleted."
+msgstr "¦¹Ãþ«¬¨Ã¥¼³Q§R°£."
+
+#: admin/index.php:776
+#, php-format
+msgid "The version \"%s\" has been added to %s."
+msgstr "ª©¥»\"%s\"¤w³Q¼W¥[¨ì%s."
+
+#: admin/index.php:865
+msgid "The version has been deleted."
+msgstr "¦¹ª©¥»¤w³Q§R°£."
+
+#: admin/index.php:835
+msgid "The version has been modified."
+msgstr "¦¹ª©¥»¤w³Q×§ï."
+
+#: admin/index.php:873
+msgid "The version was not deleted."
+msgstr "¦¹ª©¥»¨Ã¥¼³Q§R°£."
+
+#: lib/Forms/Admin/Attribute.php:70
+msgid "There are no attribute types to edit"
+msgstr "¨S¦³ÄÝ©ÊÃþ«¬¥i¨Ñ½s¿è"
+
+#: lib/Forms/Query.php:278
+msgid "There are no attributes defined."
+msgstr "¨S¦³©w¸q¥ô¦XÄÝ©Ê."
+
+#: lib/Forms/Admin/Reply.php:48
+msgid "There are no form replies to edit"
+msgstr "¨S¦³¦^Âм˥»¥i¨Ñ½s¿è"
+
+#: lib/Block/queuesummary.php:44
+msgid "There are no open tickets."
+msgstr "¨S¦³©|¥¼µ²®×ªºÁpô³æ."
+
+#: lib/Forms/Admin/Priority.php:44 lib/Forms/Admin/Priority.php:90
+msgid "There are no priorities to edit"
+msgstr "¨S¦³Àu¥ýÅv¥i¨Ñ½s¿è"
+
+#: lib/Forms/Admin.php:31
+msgid "There are no queues available."
+msgstr "µL¥i¥Îªº¤ÀÃþ¦s¦b."
+
+#: lib/Forms/Admin/Queue.php:57
+msgid "There are no queues to edit"
+msgstr "¨S¦³¤ÀÃþ¥i¨Ñ½s¿è"
+
+#: lib/Forms/CreateTicket.php:35
+msgid "There are no queues which you can create tickets in."
+msgstr "¨S¦³¤ÀÃþ¥i¨Ñ§A«Ø¥ßÁpô³æ."
+
+#: lib/Forms/Search.php:34
+msgid "There are no queues which you can search."
+msgstr "¨S¦³¤ÀÃþ¥i¨Ñ§A·j´M."
+
+#: lib/Forms/Admin/State.php:43 lib/Forms/Admin/State.php:92
+msgid "There are no states to edit"
+msgstr "¨S¦³ª¬ºA¥i¨Ñ½s¿è"
+
+#: lib/Forms/CreateTicket.php:72
+msgid ""
+"There are no ticket types associated with this queue; until there are, you "
+"cannot create any tickets in this queue."
+msgstr ""
+"¨S¦³¥ô¦óÃþ«¬»P³oÓ¼Ò²Õ¬ÛÃöÁp;§A±NµLªk«Ø¥ßÁpô³æ,°£«D§A¬°¦¹¼Ò²Õ«Ø¥ßÃþ«¬."
+
+#: lib/Forms/Admin/Type.php:45
+msgid "There are no types to edit"
+msgstr "¨S¦³Ãþ«¬¥i¨Ñ½s¿è"
+
+#: lib/Forms/Admin/User.php:75
+msgid "There are no users responsible for this queue."
+msgstr "³oÓ¤ÀÃþ¨S¦³©Ó¿ì¤H."
+
+#: lib/Forms/CreateTicket.php:242
+msgid "There are no users to which this ticket can be assigned."
+msgstr "¦b¦¹Ápô³æ¤¤¨S¦³¨Ï¥ÎªÌ¥i¨Ñ«ü¬£."
+
+#: lib/Forms/Admin/Version.php:44
+msgid "There are no versions to edit"
+msgstr "¨S¦³ª©¥»¥i¨Ñ½s¿è"
+
+#: lib/Reports.php:161
+msgid "There is no data for this report."
+msgstr "¦¹³øªí¤¤¨S¦³¸ê®Æ."
+
+#: admin/index.php:705
+#, php-format
+msgid "There was an error adding \"%s\" to the responsible list for \"%s\":"
+msgstr "·s¼W \"%s\" ¨ì \"%s\" ªº©Ó¿ì¦W³æ®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:911
+msgid "There was an error creating the attribute:"
+msgstr "«Ø¥ßÄݩʮɵo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:1050
+msgid "There was an error creating the form reply:"
+msgstr "«Ø¥ß¦^Âм˥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:561
+msgid "There was an error creating the priority:"
+msgstr "«Ø¥ßÀu¥ýÅv®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:309
+msgid "There was an error creating the queue:"
+msgstr "«Ø¥ß¤ÀÃþ®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:426
+msgid "There was an error creating the state:"
+msgstr "«Ø¥ßª¬ºA®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:780
+msgid "There was an error creating the version:"
+msgstr "«Ø¥ßª©¥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:1009
+msgid "There was an error deleting the attribute:"
+msgstr "§R°£Äݩʮɵo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:1138
+msgid "There was an error deleting the form reply:"
+msgstr "§R°£¦^Âм˥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:665
+msgid "There was an error deleting the priority:"
+msgstr "§R°£Àu¥ýÅv®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:395
+msgid "There was an error deleting the queue:"
+msgstr "§R°£¤ÀÃþ®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:528
+msgid "There was an error deleting the state:"
+msgstr "§R°£ª¬ºA®Éµo¥Í¤@Ó¿ù»~:"
+
+#: ticket/delete.php:75
+#, php-format
+msgid "There was an error deleting the ticket: %s"
+msgstr "§R°£Ápô³æ: %s ®Éµo¥Í¤@Ó¿ù»~."
+
+#: admin/index.php:275
+msgid "There was an error deleting the type:"
+msgstr "§R°£Ãþ«¬®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:868
+msgid "There was an error deleting the version:"
+msgstr "§R°£ª©¥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:981
+msgid "There was an error editing the attribute:"
+msgstr "½s¿èÄݩʮɵo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:1103
+msgid "There was an error editing the form reply:"
+msgstr "½s¿è¦^Âм˥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:615
+msgid "There was an error editing the priority:"
+msgstr "½s¿èÀu¥ýÅv®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:375
+msgid "There was an error editing the queue:"
+msgstr "½s¿è¤ÀÃþ®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:480
+msgid "There was an error editing the state:"
+msgstr "½s¿èª¬ºA®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:841
+msgid "There was an error editing the version:"
+msgstr "½s¿èª©¥»®Éµo¥Í¤@Ó¿ù»~:"
+
+#: lib/Forms/Admin/User.php:35
+#, php-format
+msgid "There was an error listing users: %s; %s"
+msgstr "¦C¥X¨Ï¥ÎªÌ: %s; %s ®Éµo¥Í¤@Ó¿ù»~."
+
+#: queue/index.php:52
+msgid "There was an error locating tickets in this queue: "
+msgstr "´M§ä¤ÀÃþ¤¤ªºÁpô³æ®Éµo¥Í¤@Ó¿ù»~: "
+
+#: admin/index.php:219
+msgid "There was an error modifying the type:"
+msgstr "×§ïÃþ«¬®Éµo¥Í¤@Ó¿ù»~:"
+
+#: search.php:72
+#, php-format
+msgid "There was an error performing your search: %s"
+msgstr "°õ¦æ·j´M: %s ®Éµo¥Í¤@Ó¿ù»~."
+
+#: admin/index.php:750
+#, php-format
+msgid ""
+"There was an error removing \"%s\" from the responsible list for \"%s\":"
+msgstr "¦Û \"%2$s\" ªº©Ó¿ì¦W³æ²¾°£ \"%1$s\" ®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:638
+msgid "There was an error setting the default priority:"
+msgstr "³]©w¹w³]Àu¥ýÅv®Éµo¥Í¤@Ó¿ù»~:"
+
+#: admin/index.php:502
+msgid "There was an error setting the default state:"
+msgstr "³]©w¹w³]ª¬ºA®Éµo¥Í¤@Ó¿ù»~:"
+
+#: lib/Forms/Admin/Queue.php:31
+msgid ""
+"This email address will be used when sending notifications for any queue "
+"tickets."
+msgstr "³oÓ email ¦a§}±N¥Î¨Ó³qª¾©Ò¦³ÄÝ©ó¦¹Ãþ§OªºÁpô³æ."
+
+#: data.php:29
+msgid "This is not a search results template."
+msgstr "³o¤£¬O¤@Ó·j´Mµ²ªGªº¼Ë¦¡."
+
+#: ticket/queue.php:81 lib/Forms/CreateTicket.php:88
+msgid ""
+"This queue requires that you specify a version, but there are no versions "
+"associated with it. Until versions are created for this queue, you will not "
+"be able to create tickets."
+msgstr ""
+"³oÓ¤ÀÃþ»Ýn§A¬°¥¦«ü©w¤@Óª©¥»,¦ý¬O¥Ø«e¨Ã¨S¦³¥ô¦óª©¥»»P¨ä¬ÛÃöÁp.§A±NµLªk«Ø¥ß"
+"Ápô³æ,ª½¨ì§A¬°¦¹¤@¤ÀÃþ«Ø¥ßª©¥»."
+
+#: lib/Ticket.php:638 lib/Ticket.php:820
+msgid "Ticket"
+msgstr "Ápô³æ"
+
+#: ticket/delete.php:71
+#, php-format
+msgid "Ticket %d has been deleted."
+msgstr "Ápô³æ %d ¤w³Q§R°£."
+
+#: lib/api.php:949
+#, php-format
+msgid "Ticket %s - %s"
+msgstr "Ápô³æ %s - %s"
+
+#: lib/Driver/sql.php:1044
+#, php-format
+msgid "Ticket %s was not found."
+msgstr "§ä¤£¨ìÁpô³æ %s ."
+
+#: search.php:98
+msgid "Ticket Search"
+msgstr "Ápô³æ·j´M"
+
+#: lib/Forms/CreateTicket.php:142
+msgid "Ticket State"
+msgstr "Ápô³æª¬ºA"
+
+#: templates/reports/stats.inc:3
+msgid "Ticket Stats"
+msgstr "Ápô³æ²Îp"
+
+#: lib/Forms/CreateTicket.php:80
+msgid "Ticket Type"
+msgstr "Ápô³æÃþ«¬"
+
+#: lib/Forms/Admin/Queue.php:103
+msgid "Ticket Types associated with this Queue"
+msgstr "»P¦¹¤ÀÃþ¦³ÃöÁpªºÁpô³æÃþ«¬"
+
+#: lib/Ticket.php:633
+#, php-format
+msgid "Ticket URL: %s"
+msgstr "Ápô³æºô§}: %s"
+
+#: ticket/update.php:94
+msgid "Ticket Updated"
+msgstr "Ápô³æ¤w§ó·s"
+
+#: lib/api.php:970
+msgid "Tickets"
+msgstr "Ápô³æ"
+
+#: templates/prefs/sourceselect.inc:322
+msgid ""
+"To select multiple fields, hold down the Control (PC) or Command (Mac) while "
+"clicking."
+msgstr ""
+"¦pªGn½Æ¿ïÄæ¦ì,½Ð¦bÂI¿ï·Æ¹«ªº®É¦P®É«ö ControlÁä(Ó¤H¹q¸£) ©Î CommandÁä(Ä«ªG¹q"
+"¸£)."
+
+#: ticket/queue.php:89 lib/Whups.php:647 lib/Ticket.php:608 lib/Ticket.php:805
+#: lib/Ticket.php:945 lib/Renderer/Query.php:108 lib/Forms/Query.php:174
+#: config/prefs.php.dist:48
+msgid "Type"
+msgstr "Ãþ«¬"
+
+#: lib/Renderer/Comment.php:105
+#, php-format
+msgid "Type ⇒ %s"
+msgstr "Ãþ«¬ ⇒ %s"
+
+#: lib/Forms/Admin/Type.php:23 lib/Forms/Admin/Type.php:70
+#: lib/Forms/Admin/Type.php:160
+msgid "Type Description"
+msgstr "Ãþ«¬´yz"
+
+#: lib/Forms/Admin/Type.php:22 lib/Forms/Admin/Type.php:48
+#: lib/Forms/Admin/Type.php:67 lib/Forms/Admin/Type.php:156
+msgid "Type Name"
+msgstr "Ãþ«¬¦WºÙ"
+
+#: lib/Ticket.php:961
+msgid "Unassigned"
+msgstr "¥¼«ü¬£"
+
+#: lib/Block/unassigned.php:3 lib/Block/unassigned.php:24
+msgid "Unassigned Tickets"
+msgstr "¥¼³Q«ü¬£Ápô³æ"
+
+#: lib/Forms/Admin.php:42
+msgid "Unassigned tickets"
+msgstr "¥¼³Q«ü¬£Ápô³æ"
+
+#: lib/Driver.php:196
+msgid "Unconfirmed"
+msgstr "¥¼½T»{"
+
+#: lib/Renderer/Query.php:141 lib/Renderer/Query.php:181
+#, php-format
+msgid "Unknown node type %s"
+msgstr "¥¼ª¾ªº¸`ÂI(node)Ãþ«¬ %s"
+
+#: lib/api.php:896
+msgid "Update"
+msgstr "Åܧó"
+
+#: ticket/update.php:108
+#, php-format
+msgid "Update %s"
+msgstr "§ó·s %s"
+
+#: templates/admin/mtmatrix.inc:29
+msgid "Update Associations"
+msgstr "§ó·sÃöÁp"
+
+#: lib/Whups.php:653 lib/Ticket.php:981
+msgid "Updated"
+msgstr "Åܧó¤é"
+
+#: lib/Ticket.php:615 lib/Ticket.php:640
+msgid "Updated By"
+msgstr "§ó·sªÌ"
+
+#: lib/Forms/Admin/User.php:34 lib/Forms/Admin/User.php:44
+#: lib/Forms/Admin/User.php:47
+msgid "User"
+msgstr "¨Ï¥ÎªÌ"
+
+#: lib/Forms/Query.php:43
+msgid "User ID"
+msgstr "¨Ï¥ÎªÌÃѧO¸¹½X"
+
+#: lib/Forms/Admin/Queue.php:131
+msgid "Users responsible for this Queue"
+msgstr "¤ÀÃþ©Ó¿ì¤H"
+
+#: lib/Forms/Admin/User.php:79
+msgid "Users responsible for this queue"
+msgstr "³oÓ¤ÀÃþªº©Ó¿ì¤H"
+
+#: lib/Ticket.php:607 lib/Ticket.php:804 lib/Renderer/Query.php:102
+#: lib/Forms/Query.php:185 config/prefs.php.dist:51
+msgid "Version"
+msgstr "ª©¥»"
+
+#: lib/Forms/Admin/Version.php:24 lib/Forms/Admin/Version.php:70
+#: lib/Forms/Admin/Version.php:93
+msgid "Version Description"
+msgstr "ª©¥»´yz"
+
+#: lib/Forms/Admin/Version.php:23 lib/Forms/Admin/Version.php:48
+#: lib/Forms/Admin/Version.php:67 lib/Forms/Admin/Version.php:90
+msgid "Version Name"
+msgstr "ª©¥»¦WºÙ"
+
+#: ticket/type.php:43 ticket/queue.php:50 lib/Forms/AddComment.php:38
+msgid "Viewable only by members of"
+msgstr "¥iÀ˵ø¦¹µû½×ªº¸s²Õ"
+
+#: lib/Forms/AddComment.php:25
+msgid "Watch this ticket"
+msgstr "q¾\¦¹Ápô³æ"
+
+#: ticket/watch.php:78
+#, php-format
+msgid "Watchers for %s"
+msgstr "%sªºq¾\ªÌ"
+
+#: config/prefs.php.dist:104
+msgid "Weekday Day Month"
+msgstr "¬P´Á ¤é ¤ë"
+
+#: config/prefs.php.dist:105
+msgid "Weekday Day Month HH:MM:SS TZ"
+msgstr "¬P´Á ¤é ¤ë ®É:¤À:¬í ®É°Ï"
+
+#: ticket/delete.php:33 lib/Forms/Query.php:379 lib/Forms/Admin/Version.php:96
+#: lib/Forms/Admin/State.php:121 lib/Forms/Admin/Priority.php:121
+#: lib/Forms/Admin/Queue.php:174 lib/Forms/Admin/Attribute.php:149
+#: lib/Forms/Admin/Reply.php:110 lib/Forms/Admin/Type.php:176
+msgid "Yes"
+msgstr "¬O"
+
+#: view.php:54
+#, php-format
+msgid "You are not allowed to view ticket %d."
+msgstr "§A¥¼³Q±ÂÅvÀ˵øÁpô³æ %d."
+
+#: lib/Driver/sql.php:1053
+#, php-format
+msgid "You do not have permission to access this ticket (%s)."
+msgstr "§A¨S¦³¦s¨ú¦¹Ápô³æ (%s) ªºÅv."
+
+#: lib/api.php:548
+msgid "You do not have permission to update this ticket."
+msgstr "§A¨S¦³Åܧó¦¹Ápô³æªºÅv."
+
+#: lib/Block/myrequests.php:46
+msgid "You have no open requests."
+msgstr "¨S¦³Ápô³æ¥¼«ü¬£."
+
+#: lib/Forms/Query.php:349 lib/Block/query.php:28
+msgid "You have no saved queries."
+msgstr "¨S¦³Àx¦sªº¬d¸ß."
+
+#: lib/Whups.php:680
+msgid "You must select at least one queue to send reminders for."
+msgstr "§A¥²¶·¿ï¾Ü¦Ü¤Ö¤@Ó¤ÀÃþ¥H¶Ç°e´£¥Ü."
+
+#: lib/Forms/CreateTicket.php:132 lib/Forms/AddComment.php:18
+msgid "Your Email Address"
+msgstr "§Aªº¹q¤l¶l¥ó¦a§}"
+
+#: ticket/create.php:60
+#, php-format
+msgid ""
+"Your ticket ID is %s. An appropriate person has been notified of this "
+"request."
+msgstr "§AªºÁpô³æ¸¹½X(ID)¬° %s. ¤w³qª¾¤@¦ì¾A·íªº¤Hû"
+
+#: lib/Mail.php:244
+msgid "[ Could not render body of message. ]"
+msgstr "[ µLªk¶}±ÒŪ¨ú¶l¥ó¥»¤å. ]"
+
+#: lib/Whups.php:744
+msgid "_Admin"
+msgstr "ºÞ²z_A"
+
+#: lib/Whups.php:268
+msgid "_Comment"
+msgstr "µû½×_C"
+
+#: lib/Whups.php:286
+msgid "_Delete"
+msgstr "§R°£_D"
+
+#: lib/Query.php:206
+msgid "_Delete Query"
+msgstr "§R°£_D"
+
+#: lib/Query.php:187
+msgid "_Edit Query"
+msgstr "½s¿è_E"
+
+#: admin/index.php:33
+msgid "_Edit Queues"
+msgstr "½s¿è¤ÀÃþ_E"
+
+#: templates/menu.inc:5
+msgid "_Go"
+msgstr "«e©¹_G"
+
+#: query.php:140
+msgid "_Group Criteria"
+msgstr "¸s²Õ_G"
+
+#: lib/Whups.php:262
+msgid "_History"
+msgstr "¾ú¥v_H"
+
+#: lib/Query.php:200
+msgid "_Load Query"
+msgstr "¸ü¤J_L"
+
+#: lib/Whups.php:735
+#, php-format
+msgid "_My %s"
+msgstr "§Úªº%s_M"
+
+#: lib/Whups.php:738
+msgid "_New Ticket"
+msgstr "·s¼WÁpô³æ_N"
+
+#: query.php:138
+msgid "_Property Criteria"
+msgstr "©Ê½è_P"
+
+#: lib/Whups.php:739
+msgid "_Query Builder"
+msgstr "¬d¸ß²£¥Í¾¹_Q"
+
+#: lib/Whups.php:740
+msgid "_Reports"
+msgstr "³øªí_R"
+
+#: lib/Whups.php:737
+msgid "_Search"
+msgstr "·j´M_S"
+
+#: query.php:142
+msgid "_Text Criteria"
+msgstr "¤º®e_T"
+
+#: lib/Whups.php:264
+msgid "_Update"
+msgstr "Åܧó_U"
+
+#: query.php:139
+msgid "_User Criteria"
+msgstr "¨Ï¥ÎªÌ_U"
+
+#: lib/Whups.php:272
+msgid "_Watch"
+msgstr "q¾\_W"
+
+#: lib/Renderer/Query.php:161
+msgid "contains (case insensitive) substring"
+msgstr "¥]§t(¤£¤À¤j¤p¼g)¤l¦r¦ê"
+
+#: lib/Renderer/Query.php:165
+msgid "contains (case sensitive) substring"
+msgstr "¥]§t(°Ï¤À¤j¤p¼g)¤l¦r¦ê"
+
+#: lib/Renderer/Query.php:169
+msgid "contains the word"
+msgstr "¥]§t³oÓ¦r"
+
+#: lib/Mail.php:94 lib/Mail.php:118 lib/Mail.php:146
+msgid "current user:"
+msgstr "¥Ø«e¨Ï¥ÎªÌ:"
+
+#: lib/api.php:958
+msgid "estimated time"
+msgstr "¹w¦ô®É¶¡"
+
+#: lib/Renderer/Query.php:157
+msgid "is"
+msgstr "¬O"
+
+#: lib/Renderer/Query.php:149
+msgid "is greater than"
+msgstr "¤j©ó"
+
+#: lib/Renderer/Query.php:153
+msgid "is less than"
+msgstr "¤p©ó"
+
+#: lib/Renderer/Query.php:173
+msgid "matches the pattern"
+msgstr "»P¼Ë¥»§k¦X"
--- /dev/null
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^([0-9]+)/?$ run.php?query=$1 [QSA]
+ RewriteRule ^([0-9]+)/rss/?$ rss.php?query=$1 [QSA]
+ RewriteRule ^([a-zA-Z0-9_]+)/?$ run.php?slug=$1 [QSA]
+ RewriteRule ^([a-zA-Z0-9_]+)/rss/?$ rss.php?slug=$1 [QSA]
+</IfModule>
--- /dev/null
+<?php
+/**
+ * $Horde: whups/query/index.php,v 1.90 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once WHUPS_BASE . '/lib/Query.php';
+require_once WHUPS_BASE . '/lib/Forms/Query.php';
+require_once WHUPS_BASE . '/lib/Renderer/Query.php';
+
+$vars = Horde_Variables::getDefaultVariables();
+$qManager = new Whups_QueryManager();
+
+// Set up the page config vars.
+$showEditQuery = true;
+$showExtraForm = null;
+
+// Find our current query.
+if (isset($_SESSION['whups']['query'])) {
+ $whups_query = unserialize($_SESSION['whups']['query']);
+ if (!$whups_query->hasPermission(Horde_Auth::getAuth(), Horde_Perms::READ)) {
+ $notification->push(_("Permission denied."), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+ }
+} else {
+ $whups_query = $qManager->newQuery();
+}
+
+// Find the current criteria form, and default to the user form if not
+// present.
+if (!isset($_SESSION['whups']['query_form'])) {
+ $_SESSION['whups']['query_form'] = 'props';
+}
+$vars->set('whups_query_form', $_SESSION['whups']['query_form']);
+
+// What now? First check the result of the query edit action dropdown, as this
+// action overrides the form it sits within.
+if ($vars->get('qaction1') || $vars->get('qaction2')) {
+ $action = $vars->get('qaction1') ? $vars->get('qaction1') : $vars->get('qaction2');
+
+ switch ($action) {
+ // Query actions.
+ case 'deleteNode':
+ $whups_query->deleteNode($vars->get('path'));
+ $vars->remove('path');
+ break;
+
+ case 'hoist':
+ $whups_query->hoist($vars->get('path'));
+ break;
+
+ case 'branch':
+ $form = new InsertBranchForm($vars);
+ break;
+
+ case 'not':
+ $path = $whups_query->insertBranch($vars->get('path'), QUERY_TYPE_NOT);
+ $vars->set('path', $path);
+ break;
+
+ case 'and':
+ $path = $whups_query->insertBranch($vars->get('path'), QUERY_TYPE_AND);
+ $vars->set('path', $path);
+ break;
+
+ case 'or':
+ $path = $whups_query->insertBranch($vars->get('path'), QUERY_TYPE_OR);
+ $vars->set('path', $path);
+ break;
+
+ case 'edit':
+ $_SESSION['whups']['query_form'] = $whups_query->pathToForm($vars);
+ if (is_a($_SESSION['whups']['query_form'], 'PEAR_Error')) {
+ $notification->push($_SESSION['whups']['query_form']);
+ $_SESSION['whups']['query_form'] = 'props';
+ }
+ $vars->set('edit', true);
+ break;
+ }
+
+ $vars->remove('qaction1');
+ $vars->remove('qaction2');
+} elseif ($vars->get('formname')) {
+ // Now check for submitted forms.
+ $class = $vars->get('formname');
+ $form = new $class($vars);
+ if ($form->validate($vars)) {
+ if ($vars->get('edit')) {
+ $whups_query->deleteNode($vars->get('path'));
+ $path = Whups_Query::stringToPath($vars->get('path'));
+ array_pop($path);
+ $vars->set('path', Whups_Query::pathToString($path));
+ $vars->remove('edit');
+ }
+ $form->execute($vars);
+ $vars->remove('action');
+ }
+} elseif ($vars->get('action') != '') {
+ // Last, check for actions from tabs.
+ $action = $vars->get('action');
+
+ switch ($action) {
+ // Current form actions.
+ case 'props':
+ case 'user':
+ case 'group':
+ case 'date':
+ case 'text':
+ case 'attribs':
+ $_SESSION['whups']['query_form'] = $action;
+ break;
+
+ // Global query options
+ case 'new':
+ unset($whups_query);
+ $whups_query = $qManager->newQuery();
+ break;
+
+ case 'delete':
+ $showExtraForm = 'DeleteQueryForm';
+ $showEditQuery = false;
+ break;
+
+ case 'save':
+ $showExtraForm = 'ChooseQueryNameForSaveForm';
+ $showEditQuery = false;
+ break;
+
+ case 'load':
+ $showExtraForm = 'ChooseQueryNameForLoadForm';
+ $showEditQuery = false;
+ break;
+ }
+}
+
+// Query actions.
+$queryTabs = $whups_query->getTabs($vars);
+
+// Criterion form types.
+$queryurl = Horde::applicationUrl('query/index.php');
+$vars->set('action', $_SESSION['whups']['query_form']);
+$criteriaTabs = new Horde_Ui_Tabs('action', $vars);
+$criteriaTabs->preserve('path', $vars->get('path'));
+$criteriaTabs->addTab(_("_Property Criteria"), $queryurl, 'props');
+$criteriaTabs->addTab(_("_User Criteria"), $queryurl, 'user');
+$criteriaTabs->addTab(_("_Group Criteria"), $queryurl, 'group');
+$criteriaTabs->addTab(_("_Date Criteria"), $queryurl, 'date');
+$criteriaTabs->addTab(_("_Text Criteria"), $queryurl, 'text');
+$criteriaTabs->addTab(_("Attri_bute Criteria"), $queryurl, 'attribs');
+
+$qops = array(
+ '' => _("Choose Action:"),
+ 'deleteNode' => _("Delete"),
+ 'edit' => _("Edit"),
+ 'hoist' => _("Hoist Children"),
+ 'and' => _("Insert And"),
+ 'or' => _("Insert Or"),
+ 'not' => _("Insert Not"),
+);
+
+// Start the page.
+$title = _("Query Builder");
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+
+echo $queryTabs->render(Horde_Util::getFormData('action', 'edit'));
+
+if ($showExtraForm !== null) {
+ $form = new $showExtraForm($vars);
+ $form->renderActive($form->getRenderer(), $vars, 'index.php');
+ echo '<br class="spacer" />';
+}
+
+/* Get the general query renderer object. */
+$queryRenderer = new Horde_Form_Renderer_Query();
+
+if ($showEditQuery) {
+ // Get our current form.
+ switch ($_SESSION['whups']['query_form']) {
+ default:
+ printf(_("Error: Unknown query form \"%s\", defaulting to properties"),
+ $_SESSION['whups']['query_form']);
+ // Fall through.
+
+ case 'props':
+ $form = new PropertyCriterionForm($vars);
+ break;
+
+ case 'user':
+ $form = new UserCriterionForm($vars);
+ break;
+
+ case 'group':
+ $form = new GroupCriterionForm($vars);
+ break;
+
+ case 'text':
+ $form = new TextCriterionForm($vars);
+ break;
+
+ case 'attribs':
+ $form = new AttributeCriterionForm($vars);
+ break;
+
+ case 'date':
+ $form = new DateCriterionForm($vars);
+ break;
+ }
+
+ $renderer = $form->getRenderer();
+ $form->open($renderer, $vars, 'index.php', 'post');
+
+ $queryRenderer->beginActive(_("Current Query"));
+ $queryRenderer->edit($qops, $form->getName(), 1);
+ $queryRenderer->renderFormActive($whups_query, $vars);
+ $queryRenderer->edit($qops, $form->getName(), 2);
+ $renderer->end();
+
+ echo '<br />' . $criteriaTabs->render();
+
+ $renderer->beginActive($form->getTitle());
+ $renderer->renderFormActive($form, $vars);
+ $renderer->submit($vars->get('edit') ? _("Save Criterion") : _("Add Criterion"));
+ $renderer->end();
+
+ $form->close($renderer);
+} else {
+ // Show query readonly.
+ $renderer = new Horde_Form_Renderer();
+ $renderer->beginActive(_("Current Query"));
+ $queryRenderer->renderFormInactive($whups_query, $vars);
+ $renderer->end();
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
+
+$_SESSION['whups']['query'] = serialize($whups_query);
--- /dev/null
+<?php
+/**
+ * Whups RSS feed.
+ *
+ * $Horde: whups/query/rss.php,v 1.8 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2008-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ * @author Jan Schneider <jan@horde.org>
+ */
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Query.php';
+require_once 'Horde/Template.php';
+
+$qManager = new Whups_QueryManager();
+$vars = new Horde_Variables();
+
+// See if we were passed a slug or id. Slug is tried first.
+$whups_query = null;
+$slug = Horde_Util::getFormData('slug');
+if ($slug) {
+ $whups_query = $qManager->getQueryBySlug($slug);
+} else {
+ $whups_query = $qManager->getQuery(Horde_Util::getFormData('query'));
+}
+
+if (!isset($whups_query) ||
+ is_a($whups_query, 'PEAR_Error') ||
+ $whups_query->parameters ||
+ !$whups_query->hasPermission(Horde_Auth::getAuth(), Horde_Perms::READ)) {
+ exit;
+}
+
+$tickets = $whups_driver->executeQuery($whups_query, $vars);
+if (is_a($tickets, 'PEAR_Error') || !count($tickets)) {
+ exit;
+}
+
+Whups::sortTickets($tickets, 'date_updated', 'desc');
+$cnt = 0;
+foreach (array_keys($tickets) as $i) {
+ $description = 'Type: ' . $tickets[$i]['type_name'] . '; State: '
+ . $tickets[$i]['state_name'];
+
+ $items[$i]['title'] = htmlspecialchars(sprintf('[%s] %s',
+ $tickets[$i]['id'],
+ $tickets[$i]['summary']));
+ $items[$i]['description'] = htmlspecialchars($description);
+ $items[$i]['url'] = Whups::urlFor('ticket', $tickets[$i]['id'], true, -1);
+ $items[$i]['pubDate'] = htmlspecialchars(date('r', $tickets[$i]['timestamp']));
+}
+
+$template = new Horde_Template();
+$template->set('charset', Horde_Nls::getCharset());
+$template->set('xsl', $registry->get('themesuri') . '/feed-rss.xsl');
+$template->set('pubDate', htmlspecialchars(date('r')));
+$template->set('title', htmlspecialchars($whups_query->name ? $whups_query->name : _("Query Results")));
+$template->set('items', $items, true);
+$url_param = isset($slug)
+ ? array('slug' => $slug)
+ : array('id' => Horde_Util::getFormData('query'));
+$template->set('url', Whups::urlFor('query', $url_param, true, -1));
+$template->set('rss_url', Whups::urlFor('query_rss', $url_param, true, -1));
+$template->set('description', htmlspecialchars(sprintf(_("Tickets matching the query \"%s\"."), $whups_query->name)));
+
+$browser->downloadHeaders((isset($slug) ? $slug : 'query') . '.rss', 'text/xml', true);
+echo $template->fetch(WHUPS_TEMPLATES . '/rss/items.rss');
--- /dev/null
+<?php
+/**
+ * $Horde: whups/query/run.php,v 1.56 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once WHUPS_BASE . '/lib/Query.php';
+require_once WHUPS_BASE . '/lib/Forms/QueryParameterForm.php';
+require WHUPS_BASE . '/lib/Renderer/Query.php';
+require_once WHUPS_BASE . '/lib/View.php';
+
+$vars = Horde_Variables::getDefaultVariables();
+$qManager = new Whups_QueryManager();
+
+// Load the current query. If we have a 'slug' or 'query' parameter, that
+// overrides and we load in that from the query store. Slug is tried
+// first. Otherwise we use the query that is currently in our session.
+$whups_query = null;
+if ($vars->exists('slug')) {
+ $whups_query = $qManager->getQueryBySlug($vars->get('slug'));
+} elseif ($vars->exists('query')) {
+ $whups_query = $qManager->getQuery($vars->get('query'));
+} elseif (isset($_SESSION['whups']['query'])) {
+ $whups_query = unserialize($_SESSION['whups']['query']);
+}
+
+// If we have an error, or if we still don't have a query, or if we don't have
+// read permissions on the requested query, go to the initial Whups page.
+if (!isset($whups_query) ||
+ is_a($whups_query, 'PEAR_Error') ||
+ !$whups_query->hasPermission(Horde_Auth::getAuth(), Horde_Perms::READ)) {
+ if (is_a($whups_query, 'PEAR_Error')) {
+ $notification->push($whups_query);
+ } elseif (isset($whups_query)) {
+ $notification->push(_("Permission denied."), 'horde.error');
+ }
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+// Query actions.
+$tabs = $whups_query->getTabs($vars);
+
+$renderer = new Horde_Form_Renderer();
+
+// Update sorting preferences.
+if (Horde_Util::getFormData('sortby') !== null) {
+ $prefs->setValue('sortby', Horde_Util::getFormData('sortby'));
+}
+if (Horde_Util::getFormData('sortdir') !== null) {
+ $prefs->setValue('sortdir', Horde_Util::getFormData('sortdir'));
+}
+
+$tickets = null;
+$isvalid = false;
+if (!$whups_query->parameters) {
+ $isvalid = true;
+} else {
+ $form = new QueryParameterForm($whups_query, $vars);
+ if ($vars->get('formname') == 'queryparameters') {
+ $isvalid = $form->validate($vars);
+ }
+}
+
+if ($isvalid) {
+ $tickets = $whups_driver->executeQuery($whups_query, $vars);
+ $_SESSION['whups']['last_search'] = Horde::applicationUrl('query/run.php');
+}
+
+$title = $whups_query->name ? $whups_query->name : _("Query Results");
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+
+echo $tabs->render($vars->get('action') ? $vars->get('action') : 'run');
+
+if (!is_null($tickets)) {
+ Whups::sortTickets($tickets);
+ $subscription = null;
+ if (isset($whups_query->id)) {
+ $params = empty($whups_query->slug)
+ ? array('id' => $whups_query->id)
+ : array('slug' => $whups_query->slug);
+ $subscription = Horde::link(Whups::urlFor('query_rss', $params, true, -1),
+ _("Subscribe to this query"))
+ . Horde::img('feed.png', _("Subscribe to this query"), null,
+ $GLOBALS['registry']->getImageDir('horde'))
+ . '</a>';
+ }
+ $results = Whups_View::factory(
+ 'Results',
+ array('title' => $title,
+ 'results' => $tickets,
+ 'extra' => $subscription,
+ 'values' => Whups::getSearchResultColumns(),
+ 'url' => Horde::applicationUrl('query/run.php')));
+
+ $results->html();
+} else {
+ $form->open($renderer, $vars, 'query/run.php');
+ $renderer->beginActive($form->getTitle());
+ $renderer->renderFormActive($form, $vars);
+ $renderer->submit(_("Execute Query"));
+ $renderer->end();
+ $form->close($renderer);
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
+
+$_SESSION['whups']['query'] = serialize($whups_query);
--- /dev/null
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^([0-9]+)/?$ index.php?id=$1 [QSA]
+ RewriteRule ^([0-9]+)/rss/?$ rss.php?id=$1 [QSA]
+ RewriteRule ^([a-zA-Z0-9_]+)/?$ index.php?slug=$1 [QSA]
+ RewriteRule ^([a-zA-Z0-9_]+)/rss/?$ rss.php?slug=$1 [QSA]
+</IfModule>
--- /dev/null
+<?php
+/**
+ * Allows direct access to open tickets in specified queue.
+ *
+ * $Horde: whups/queue/index.php,v 1.8 2009/06/10 05:25:29 slusarz Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Michael J. Rubinsk <mrubinsk@horde.org>
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/View.php';
+
+// See if we were passed a slug or id. Slug is tried first.
+$slug = Horde_Util::getFormData('slug');
+if ($slug) {
+ $queue = $whups_driver->getQueueBySlugInternal($slug);
+ $id = $queue['id'];
+} else {
+ $id = Horde_Util::getFormData('id');
+ $queue = $whups_driver->getQueue($id);
+}
+
+if (!$id || is_a($queue, 'PEAR_Error')) {
+ $notification->push(_("Invalid queue"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl(basename($prefs->getValue('whups_default_view')) . '.php', true));
+ exit;
+}
+
+// Update sorting preferences.
+if (Horde_Util::getFormData('sortby') !== null) {
+ $prefs->setValue('sortby', Horde_Util::getFormData('sortby'));
+}
+if (Horde_Util::getFormData('sortdir') !== null) {
+ $prefs->setValue('sortdir', Horde_Util::getFormData('sortdir'));
+}
+
+$title = sprintf(_("Open tickets in %s"), $queue['name']);
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+
+$criteria = array('queue' => $id,
+ 'category' => array('unconfirmed', 'new', 'assigned'));
+
+$tickets = $whups_driver->getTicketsByProperties($criteria);
+if (is_a($tickets, 'PEAR_Error')) {
+ $notification->push(sprintf(_("There was an error locating tickets in this queue: "), $tickets->getMessage()), 'horde.error');
+} else {
+ Whups::sortTickets($tickets);
+ $values = Whups::getSearchResultColumns();
+ $self = Whups::urlFor('queue', $queue);
+ $results = Whups_View::factory('Results', array('title' => sprintf(_("Open tickets in %s"), $queue['name']),
+ 'results' => $tickets,
+ 'values' => $values,
+ 'url' => $self));
+ $_SESSION['whups']['last_search'] = $self;
+ $results->html();
+
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Whups RSS feed.
+ *
+ * $Horde: whups/queue/rss.php,v 1.20 2009/07/09 08:18:48 slusarz Exp $
+ *
+ * Copyright 2007-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Michael J. Rubinsky <mrubinsk@horde.org>
+ */
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once 'Horde/Template.php';
+
+// See if we were passed a slug or id. Slug is tried first.
+$slug = Horde_Util::getFormData('slug');
+if ($slug) {
+ $queue = $whups_driver->getQueueBySlugInternal($slug);
+ // Bad queue slug?
+ if (!count($queue)) {
+ exit;
+ }
+ $id = $queue['id'];
+} else {
+ $id = Horde_Util::getFormData('id');
+ $queue = $whups_driver->getQueue($id);
+}
+
+// If a specific state_category is not specified, default to returning all
+// open tickets.
+$state_category = Horde_Util::getFormData('state');
+if ($state_category) {
+ require_once 'Horde/String.php';
+ $state_display = Horde_String::ucFirst($state_category);
+ // When specifying an explicit state, limit the feed to 10.
+ $limit = 10;
+ $state_category = array($state_category);
+} else {
+ $state_category = array('unconfirmed', 'new', 'assigned');
+ $state_display = _("Open");
+ $limit = 0;
+}
+
+$criteria = array();
+
+// See if we are requesting a specific type_id (for bug, feature etc...)
+$typeId = Horde_Util::getFormData('type_id');
+if (is_numeric($typeId)) {
+ $type = $whups_driver->getType($typeId);
+ if (!is_a($type, 'PEAR_Error')) {
+ $criteria['type'] = array($typeId);
+ } else {
+ unset($type);
+ }
+}
+
+if (!$id && !$state_category && !$typeId) {
+ exit;
+}
+
+$criteria['category'] = $state_category;
+if ($id) {
+ $criteria['queue'] = $id;
+}
+
+$tickets = $whups_driver->getTicketsByProperties($criteria);
+if (is_a($tickets, 'PEAR_Error') || !count($tickets)) {
+ exit;
+}
+
+Whups::sortTickets($tickets, 'date_updated', 'desc');
+$cnt = 0;
+foreach (array_keys($tickets) as $i) {
+ if ($limit > 0 && $cnt++ == $limit) {
+ break;
+ }
+ $description = 'Type: ' . $tickets[$i]['type_name'] . '; State: '
+ . $tickets[$i]['state_name'];
+
+ $items[$i]['title'] = htmlspecialchars(sprintf('[%s] %s',
+ $tickets[$i]['id'],
+ $tickets[$i]['summary']));
+ $items[$i]['description'] = htmlspecialchars($description);
+ $items[$i]['url'] = Whups::urlFor('ticket', $tickets[$i]['id'], true, -1);
+ $items[$i]['pubDate'] = htmlspecialchars(date('r', $tickets[$i]['timestamp']));
+}
+
+$template = new Horde_Template();
+$template->set('charset', Horde_Nls::getCharset());
+$template->set('xsl', $registry->get('themesuri') . '/feed-rss.xsl');
+$template->set('pubDate', htmlspecialchars(date('r')));
+if (isset($type) && isset($queue['name'])) {
+ $rss_title = sprintf(_("%s %s tickets in %s"),
+ $state_display,
+ $type['name'], $queue['name']);
+} elseif (isset($type)) {
+ $rss_title = sprintf(_("%s %s tickets in all queues"),
+ $state_display,
+ $type['name']);
+} elseif (isset($queue['name'])) {
+ $rss_title = sprintf(_("%s tickets in %s"),
+ $state_display,
+ $queue['name']);
+} else {
+ $rss_title = sprintf(_("%s tickets in all queues"), $state_display);
+}
+$template->set('title', htmlspecialchars($rss_title));
+$template->set('items', $items, true);
+$template->set('url',
+ Horde_Util::addParameter(Horde::applicationUrl('queue/', true, -1),
+ 'id', $id));
+$template->set('rss_url',
+ Horde_Util::addParameter(Horde::applicationUrl('rss.php', true, -1),
+ 'id', $id));
+if (isset($queue['name'])) {
+ $description = sprintf(_("Open tickets in %s"), $queue['name']);
+} else {
+ $description = _("Open tickets in all queues.");
+}
+$template->set('description', htmlspecialchars($description));
+
+$browser->downloadHeaders((isset($queue['name']) ? $queue['name'] : 'horde') . '.rss', 'text/xml', true);
+echo $template->fetch(WHUPS_TEMPLATES . '/rss/items.rss');
--- /dev/null
+<?php
+/**
+ * $Horde: whups/reports.php,v 1.45 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__));
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Reports.php';
+
+/* Supported graph types. Unused at the moment. */
+$graphs = array('open|queue_name' => array('chart', _("Open Tickets by Queue")),
+ 'open|state_name' => array('chart', _("Open Tickets by State")),
+ 'open|type_name' => array('chart', _("Open Tickets by Type")),
+ 'open|priority_name' => array('chart', _("Open Tickets by Priority")),
+ 'open|user_id_requester' => array('chart', _("Open Tickets by Requester")),
+ 'open|owner' => array('chart', _("Open Tickets by Owner")),
+ '@closed:avg:open|owner' => array('plot', _("Average days to close by Owner")),
+ '@closed:avg:open|user_id_requester' => array('plot', _("Average days to close by Requester")),
+ '@closed:avg:open|queue_name' => array('plot', _("Average days to close by Queue")));
+
+/* Supported statistic types. */
+$stats = array('avg|open' => _("Average time a ticket is unresolved"),
+ 'max|open' => _("Maximum time a ticket is unresolved"),
+ 'min|open' => _("Minimum time a ticket is unresolved"));
+
+$queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ);
+if (!count($queues)) {
+ $notification->push(_("No stats available."));
+}
+
+$reporter = new Whups_Reports($whups_driver);
+
+$title = _("Reports");
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+if (count($queues)) {
+ require WHUPS_TEMPLATES . '/reports/stats.inc';
+}
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+Deny from all
--- /dev/null
+#!/usr/bin/php
+<?php
+/**
+ * Bugzilla Import Script.
+ *
+ * This script imports the contents of an existing Bugzilla bug database into
+ * a Whups database.
+ *
+ * $Horde: whups/scripts/bugzilla-import.php,v 1.17 2009/09/07 08:58:19 jan Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Jon Parise <jon@horde.org>
+ */
+
+/* CONFIGURATION */
+$BUGZILLA_DSN = 'mysql://root:password@localhost/bugzilla';
+$BUGZILLA_STATES = array('NEW', 'ASSIGNED', 'RESOLVED', 'REOPENED', 'CLOSED');
+$BUGZILLA_BUG_TYPE = array('Bug', 'Imported Bugzilla Bug');
+$BUGZILLA_PRIORITIES = array('P1', 'P2', 'P3', 'P4', 'P5');
+
+
+@define('HORDE_BASE', dirname(__FILE__) . '/../..');
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+
+/* Do CLI checks and environment setup first. */
+require_once HORDE_BASE . '/lib/core.php';
+
+/* Make sure no one runs this from the web. */
+if (!Horde_Cli::runningFromCLI()) {
+ exit("Must be run from the command line\n");
+}
+
+/* Load the command line environment. */
+Horde_Cli::init();
+$cli =& Horde_Cli::singleton();
+
+/* Load the Whups libraries. */
+require_once HORDE_BASE . '/lib/core.php';
+
+$registry = Horde_Registry::singleton();
+$registry->pushApp('whups', false);
+$conf = &$GLOBALS['conf'];
+
+require_once WHUPS_BASE . '/lib/Whups.php';
+require_once WHUPS_BASE . '/lib/Driver.php';
+
+$GLOBALS['whups_driver'] = Whups_Driver::factory();
+$GLOBALS['whups_driver']->initialise();
+
+/* Load the PEAR DB library. We'll use it to read the Bugzilla database. */
+require_once 'DB.php';
+
+function sectionHeader($text)
+{
+ global $cli;
+ $cli->writeln($cli->bold($text));
+}
+
+function error($text, $error = null)
+{
+ global $cli;
+
+ if (is_a($error, 'PEAR_Error')) {
+ $text .= ' (' . $error->getMessage() . ')';
+ }
+ $cli->message($text, 'cli.error');
+}
+
+function success($text)
+{
+ global $cli;
+
+ $cli->message($text, 'cli.success');
+}
+
+function info($text)
+{
+ global $cli;
+
+ $cli->message($text, 'cli.message');
+}
+
+/* Connect to the Bugzilla database. */
+$bugzilla = DB::connect($BUGZILLA_DSN);
+if (is_a($bugzilla, 'PEAR_Error')) {
+ error('Failed to connect to Bugzilla database', $bugzilla);
+ exit;
+}
+
+// Set DB portability options
+switch ($bugzilla->phptype) {
+case 'mssql':
+ $bugzilla->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS | DB_PORTABILITY_RTRIM);
+ break;
+default:
+ $bugzilla->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS);
+}
+
+$bugzilla->setFetchMode(DB_FETCHMODE_ASSOC);
+
+sectionHeader('Creating Types');
+$type = $whups_driver->addType($BUGZILLA_BUG_TYPE[0], $BUGZILLA_BUG_TYPE[1]);
+if (is_a($type, 'PEAR_Error')) {
+ error("Failed to add '" . $BUGZILLA_BUG_TYPE[0] . "' type", $type);
+ exit;
+}
+info("Created '" . $BUGZILLA_BUG_TYPE[0] . "' type");
+$cli->writeln();
+
+sectionHeader('Creating States');
+$states = array();
+foreach ($BUGZILLA_STATES as $state) {
+ $result = $whups_driver->addState($type, $state, "Bugzilla - $state", $state);
+ if (is_a($result, 'PEAR_Error')) {
+ error("Failed to add '$state' state", $result);
+ continue;
+ }
+ $states[$state] = $result;
+ info("Created '$state' state");
+}
+$cli->writeln();
+
+sectionHeader('Creating Priorities');
+$priorities = array();
+foreach ($BUGZILLA_PRIORITIES as $priority) {
+ $result = $whups_driver->addPriority($type, $priority, "Bugzilla - $priority");
+ if (is_a($result, 'PEAR_Error')) {
+ error("Failed to add '$priority' priority", $result);
+ continue;
+ }
+ $priorities[$priority] = $result;
+ info("Created '$priority' priority");
+}
+$cli->writeln();
+
+/* Create a mapping of products and components. */
+$components = array();
+
+sectionHeader('Importing Components');
+$res = $bugzilla->query('select value, program, description from components');
+while ($row = $res->fetchRow()) {
+ $result = $whups_driver->addQueue($row['value'], $row['description']);
+ if (is_a($result, 'PEAR_Error')) {
+ error('Failed to add queue: ' . $row['value'], $result);
+ continue;
+ }
+
+ /* Set the queue's parameters. */
+ $whups_driver->updateQueue($result,
+ $row['value'],
+ $row['description'],
+ array($type),
+ false);
+
+ /* Add this component to the map. */
+ $components[($row['program'])][] = $row['value'];
+
+ success('Created queue: ' . $row['value']);
+}
+$cli->writeln();
+
+/* Get a mapping of queue IDs to queue names. */
+$queues = $whups_driver->getQueues();
+
+/* Maintain a mapping of version names. */
+$versions = array();
+
+sectionHeader('Importing Versions');
+$res = $bugzilla->query('select value, program from versions');
+while ($row = $res->fetchRow()) {
+ /* Bugzilla manages versions on a per-product basis. Whups manages
+ * versions on a per-queue (i.e., per-component) basis. Add this
+ * product's versions to each each of its components. */
+ foreach ($components[($row['program'])] as $component) {
+ $queueID = array_search($component, $queues);
+
+ if ($queueID === false) {
+ error('Unknown queue: ' . $component);
+ continue;
+ }
+
+ $result = $whups_driver->addVersion($queueID, $row['value'], '', true, 0);
+ if (is_a($result, 'PEAR_Error')) {
+ error('Failed to add version: ' . $row['value'], $result);
+ continue;
+ }
+
+ $versions[$queueID][($row['value'])] = $result;
+ success('Added version: ' . $row['value'] . " ($component)");
+ }
+}
+$cli->writeln();
+
+/* Maintain a mapping of Bugzilla userid's to email addresses. */
+$profiles = array();
+
+sectionHeader('Loading Profiles');
+$res = $bugzilla->query('select userid, login_name from profiles');
+while ($row = $res->fetchRow()) {
+ $profiles[($row['userid'])] = $row['login_name'];
+}
+info('Loaded ' . count($profiles) . ' profiles');
+$cli->writeln();
+
+sectionHeader('Importing Bugs');
+$res = $bugzilla->query('select * from bugs');
+while ($row = $res->fetchRow()) {
+ $info = array();
+
+ $info['queue'] = array_search($row['component'], $queues);
+ if ($info['queue'] === false) {
+ error('Unknown queue: ' . $row['component']);
+ continue;
+ }
+
+ $info['version'] = null;
+ if (isset($versions[($info['queue'])][($row['version'])])) {
+ $info['version'] = $versions[($info['queue'])][($row['version'])];
+ }
+
+ $info['type'] = $type;
+
+ if (!isset($priorities[($row['priority'])])) {
+ error('Unknown priority: ' . $row['priority']);
+ continue;
+ }
+ $info['priority'] = $priorities[($row['priority'])];
+
+ if (!isset($states[($row['bug_status'])])) {
+ error('Unknown state: ' . $row['bug_status']);
+ continue;
+ }
+ $info['state'] = $states[($row['bug_status'])];
+
+ if (isset($profiles[($row['reporter'])])) {
+ $info['user_email'] = $profiles[($row['reporter'])];
+ }
+
+ $info['summary'] = htmlspecialchars($row['short_desc']);
+ $info['comment'] = $row['long_desc'];
+
+ $result = $whups_driver->addTicket($info);
+ if (is_a($result, 'PEAR_Error')) {
+ error('Failed to add ticket', $result);
+ continue;
+ }
+
+ success('Added new ticket ' . $result . ' to ' . $row['component']);
+}
+$cli->writeln();
--- /dev/null
+#!/usr/bin/env php
+<?php
+/**
+ * This script accepts a MIME message on standard input or from a mail server
+ * and creates a new ticket from its contents.
+ *
+ * $Horde: whups/scripts/mail-filter.php,v 1.40 2009/07/26 19:53:06 chuck Exp $
+ */
+
+function usage()
+{
+ $argv = Console_Getopt::readPHPArgv();
+ $cmd = basename($argv[0]);
+ echo <<<EOU
+Usage: $cmd [options]
+
+This script parses MIME messages and creates new tickets from their contents.
+Single messages can be passed to the script on standard input. If the --mail
+parameters are used, all messages from a mail server folder are processed
+instead.
+
+Options:
+ -h, --help Give this help.
+ -a, --default-auth A default user to set as the ticket requester, if the
+ requester cannot be determined from the message.
+ -q, --queue-name The name of the queue where the ticket should be
+ added.
+ -Q, --queue-id The (numerical) ID of the queue where the ticket
+ should be added.
+ -g, --guess-queue Guess the correct queue name from the subject. If no
+ (substring) match is found, fall back to -Q or -q.
+ -k, --ticket Add the message as a comment to this ticket instead
+ of creating a new ticket.
+ --mail-host The IMAP/POP3 server to get the messages from.
+ Defaults to "localhost".
+ --mail-user The user name for the mail server.
+ --mail-pass The password for the mail server.
+ --mail-port The mail server port. Defaults to "143".
+ --mail-protocol The mail server protocol. Defaults to "imap/notls".
+ --mail-folder The folder on the mail server. Defaults to "INBOX".
+
+IDs are preferred over names because they are faster to process and avoid
+character set ambiguities.
+
+EOU;
+}
+
+function _dump($hash)
+{
+ $dump = '';
+ if (empty($hash)) {
+ return $dump;
+ }
+ $idlen = max(array_map('strlen', array_keys($hash)));
+ foreach ($hash as $id => $value) {
+ $dump .= sprintf("\n%${idlen}d: %s", $id, $value);
+ }
+ return $dump;
+}
+
+$whups_authentication = 'none';
+require_once dirname(__FILE__) . '/../lib/base.php';
+
+// Make sure no one runs this from the web.
+if (!Horde_Cli::runningFromCLI()) {
+ exit("Must be run from the command line\n");
+}
+
+// Load the CLI environment - make sure there's no time limit, init some
+// variables, etc.
+Horde_Cli::init();
+$cli = Horde_Cli::singleton();
+
+// Set server name.
+$conf['server']['name'] = $conf['mail']['server_name'];
+$conf['server']['port'] = $conf['mail']['server_port'];
+
+// Read command-line parameters.
+$info = array();
+$mail = array('host' => 'localhost',
+ 'pass' => '',
+ 'port' => 143,
+ 'protocol' => 'imap/notls',
+ 'folder' => 'INBOX');
+$from_mail = false;
+$options = Console_Getopt::getopt(Console_Getopt::readPHPArgv(),
+ 'ha:q:Q:gk:',
+ array('help',
+ 'default-auth=',
+ 'queue-name=', 'queue-id=',
+ 'guess-queue',
+ 'ticket=',
+ 'mail-host=', 'mail-user=',
+ 'mail-pass=', 'mail-port=',
+ 'mail-protocol=', 'mail-folder='));
+if (is_a($options, 'PEAR_Error')) {
+ usage();
+ $cli->fatal($options->getMessage());
+}
+
+// Convert options into a hash. This is possible because all options are only
+// allowed once.
+$opts_hash = array();
+list($opts, $args) = $options;
+foreach ($opts as $opt) {
+ list($optName, $optValue) = $opt;
+ switch ($optName) {
+ case 'h': $optName = '--help'; break;
+ case 'a': $optName = '--default-auth'; break;
+ case 'k': $optName = '--ticket'; break;
+ case 'q': $optName = '--queue-name'; break;
+ case 'Q': $optName = '--queue-id'; break;
+ case 'g': $optName = '--guess-queue'; break;
+ }
+ $opts_hash[$optName] = is_null($optValue) ? true : $optValue;
+}
+
+// Process options in this order because some depend on others.
+if (isset($opts_hash['--help'])) {
+ usage();
+ exit;
+}
+if (isset($opts_hash['--default-auth'])) {
+ $info['default_auth'] = $opts_hash['--default-auth'];
+ Horde_Auth::setAuth($info['default_auth'], array());
+}
+if (isset($opts_hash['--ticket'])) {
+ $info['ticket'] = (int)$opts_hash['--ticket'];
+}
+if (isset($opts_hash['--guess-queue'])) {
+ $info['guess-queue'] = true;
+}
+if (isset($opts_hash['--queue-name'])) {
+ $queues = $whups_driver->getQueues();
+ foreach ($queues as $queueId => $queueName) {
+ if (strcasecmp($queueName, $opts_hash['--queue-name']) == 0) {
+ $info['queue'] = $queueId;
+ break;
+ }
+ }
+}
+if (isset($opts_hash['--queue-id'])) {
+ $queues = $whups_driver->getQueues();
+ foreach ($queues as $queueId => $queueName) {
+ if (strcasecmp($queueId, $opts_hash['--queue-id']) == 0) {
+ $info['queue'] = $queueId;
+ break;
+ }
+ }
+}
+foreach (array('host', 'user', 'pass', 'port', 'protocol', 'folder') as $opt) {
+ if (isset($opts_hash['--mail-' . $opt])) {
+ $mail[$opt] = $opts_hash['--mail-' . $opt];
+ }
+}
+
+// Sanity check options.
+if (empty($info['ticket'])) {
+ if (empty($info['queue'])) {
+ usage();
+ $msg = _("--queue-name or --queue-id must specify a valid and public queue.");
+ if (isset($queues)) {
+ $msg .= ' ' . _("Available queues:") . _dump($queues);
+ }
+ $cli->fatal($msg);
+ }
+}
+
+// Set charset to UTF-8 for most flexible conversion between email charset and
+// backend charset.
+Horde_Nls::setCharsetEnvironment('UTF-8');
+
+// Read and parse the message.
+if (empty($mail['user'])) {
+ $result = Whups_Mail::processMail($cli->readStdin(), $info);
+ if (is_a($result, 'PEAR_Error')) {
+ $cli->fatal(_("Error processing message:") . ' ' . $result->getMessage() . ' ' . $result->getUserInfo());
+ }
+} else {
+ $messages = array();
+ $imap = @imap_open(sprintf('{%s:%d/%s}%s',
+ $mail['host'],
+ $mail['port'],
+ $mail['protocol'],
+ $mail['folder']),
+ $mail['user'], $mail['pass']);
+ if (!$imap) {
+ $cli->fatal(_("Cannot authenticate at mail server:") . ' ' . implode('; ', imap_errors()));
+ }
+ $mailbox = imap_search($imap, 'ALL', SE_UID);
+ if ($mailbox) {
+ foreach ($mailbox as $uid) {
+ $message = imap_fetchheader($imap, $uid, FT_UID)
+ . imap_body($imap, $uid, FT_UID);
+ $result = Whups_Mail::processMail($message, $info);
+ if (is_a($result, 'PEAR_Error')) {
+ $cli->message(_("Error processing message:") . ' ' . $result->getMessage() . ' ' . $result->getUserInfo(), 'cli.error');
+ } else {
+ imap_delete($imap, $uid, FT_UID);
+ }
+ }
+ }
+ imap_expunge($imap);
+ imap_close($imap);
+}
+
+exit(0);
--- /dev/null
+#!/usr/bin/php
+<?php
+/**
+ * Obliterate Whups Data.
+ *
+ * This script deletes all queues, types, and tickets from the current Whups
+ * database.
+ *
+ * $Horde: whups/scripts/obliterate.php,v 1.10 2009/07/09 06:09:04 slusarz Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * @author Jon Parise <jon@horde.org>
+ */
+@define('HORDE_BASE', dirname(__FILE__) . '/../..');
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+
+/* Do CLI checks and environment setup first. */
+require_once HORDE_BASE . '/lib/core.php';
+
+/* Make sure no one runs this from the web. */
+if (!Horde_Cli::runningFromCLI()) {
+ exit("Must be run from the command line\n");
+}
+
+/* Load the command line environment. */
+Horde_Cli::init();
+$cli = &Horde_Cli::singleton();
+
+$confirm = $cli->prompt('Are you sure you want to obliterate all Whups data?',
+ array('n' => 'No', 'y' => 'Yes'));
+$cli->writeln();
+if ($confirm !== 'y') {
+ exit;
+}
+
+/* Load the Whups libraries. */
+require_once HORDE_BASE . '/lib/core.php';
+
+$registry = Horde_Registry::singleton();
+$registry->pushApp('whups', false);
+$conf = &$GLOBALS['conf'];
+
+require_once WHUPS_BASE . '/lib/Whups.php';
+require_once WHUPS_BASE . '/lib/Driver.php';
+
+$GLOBALS['whups_driver'] = Whups_Driver::factory();
+$GLOBALS['whups_driver']->initialise();
+
+$cli->writeln($cli->bold('Obliterating queues'));
+$queues = $whups_driver->getQueues();
+foreach ($queues as $queue_id => $queue_name) {
+ $cli->message("Deleting queue: $queue_name");
+ $whups_driver->deleteQueue($queue_id);
+}
+$cli->writeln();
+
+$cli->writeln($cli->bold('Obliterating types'));
+$types = $whups_driver->getAllTypes();
+foreach ($types as $type_id => $type_name) {
+ $cli->message("Deleting type: $type_name");
+ $whups_driver->deleteType($type_id);
+}
+$cli->writeln();
+
+$cli->writeln($cli->bold('Obliterating tickets'));
+$tickets = $whups_driver->_getAll('select ticket_id from whups_tickets');
+foreach ($tickets as $ticket) {
+ $info = array('id' => $ticket['ticket_id']);
+ $cli->message('Deleting ticket: ' . $info['id']);
+ $whups_driver->deleteTicket($info);
+}
+$cli->writeln();
--- /dev/null
+#!/usr/bin/env php
+<?php
+/**
+ * $Horde: whups/scripts/reminders.php,v 1.20 2009/08/24 09:04:03 jan Exp $
+ *
+ * Copyright 2003-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+// Do CLI checks and environment setup first.
+require_once dirname(__FILE__) . '/../../lib/core.php';
+
+// Make sure no one runs this from the web.
+if (!Horde_Cli::runningFromCLI()) {
+ exit("Must be run from the command line\n");
+}
+
+// Load the CLI environment - make sure there's no time limit, init
+// some variables, etc.
+Horde_Cli::init();
+
+// Include needed libraries.
+$whups_authentication = 'none';
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once WHUPS_BASE . '/lib/Scheduler/whups.php';
+
+// Get an instance of the Whups scheduler.
+$reminder = Horde_Scheduler::unserialize('Horde_Scheduler_whups');
+
+// Check for and send reminders.
+$reminder->run();
--- /dev/null
+--
+-- $Horde: whups/scripts/sql/whups.mssql.sql,v 1.27 2009/10/20 21:28:28 jan Exp $
+--
+-- Copyright 2001-2005 Robert E. Coyle <robertecoyle@hotmail.com>
+--
+-- See the enclosed file LICENSE for license information (BSD). If you
+-- did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+--
+-- Database definitions for Whups
+
+CREATE TABLE whups_tickets (
+ ticket_id INT NOT NULL, -- unique ticket id
+ ticket_summary VARCHAR(255), -- summary of the ticket
+ user_id_requester VARCHAR(255) NOT NULL, -- user id of the creator of this ticket
+ queue_id INT NOT NULL, -- queue id that this ticket refers to
+ version_id INT, -- version id that this ticket refers to
+ type_id INT NOT NULL, -- id into the type table, describing the type of ticket
+ state_id INT NOT NULL, -- state of this ticket, meaning depends on the type of the ticket
+ priority_id INT NOT NULL, -- priority, meaning depends on the type of the ticket
+ ticket_timestamp INT NOT NULL, -- redundant but useful, mirrored in the comment and log
+ ticket_due INT, -- optional ticket due date
+ date_updated INT, -- date of last update
+ date_assigned INT, -- date of assignment
+ date_resolved INT, -- date of resolving
+--
+ PRIMARY KEY (ticket_id)
+);
+CREATE INDEX whups_ticket_queue_idx ON whups_tickets (queue_id);
+CREATE INDEX whups_ticket_state_idx ON whups_tickets (state_id);
+CREATE INDEX whups_ticket_requester_idx ON whups_tickets (user_id_requester);
+CREATE INDEX whups_ticket_version_idx ON whups_tickets (version_id);
+CREATE INDEX whups_ticket_priority_idx ON whups_tickets (priority_id);
+
+CREATE TABLE whups_ticket_owners (
+ ticket_id INT NOT NULL,
+ ticket_owner VARCHAR(255) NOT NULL
+--
+ PRIMARY KEY (ticket_id, ticket_owner)
+);
+CREATE INDEX whups_ticket_owner_ticket_idx ON whups_ticket_owners (ticket_id);
+CREATE INDEX whups_ticket_owner_owner_idx ON whups_ticket_owners (ticket_owner);
+
+CREATE TABLE whups_guests (
+ guest_id VARCHAR(255) NOT NULL,
+ guest_email VARCHAR(255) NOT NULL,
+--
+ PRIMARY KEY (guest_id)
+);
+
+CREATE TABLE whups_queues (
+ queue_id INT NOT NULL,
+ queue_name VARCHAR(64) NOT NULL,
+ queue_description VARCHAR(255),
+ queue_versioned SMALLINT DEFAULT 0 NOT NULL,
+ queue_slug VARCHAR(64),
+ queue_email VARCHAR(64),
+--
+ PRIMARY KEY (queue_id)
+);
+
+CREATE TABLE whups_queues_users (
+ queue_id INT NOT NULL,
+ user_uid VARCHAR(250) NOT NULL,
+--
+ PRIMARY KEY (queue_id, user_uid)
+);
+
+CREATE TABLE whups_types (
+ type_id INT NOT NULL,
+ type_name VARCHAR(64) NOT NULL,
+ type_description VARCHAR(255),
+--
+ PRIMARY KEY (type_id)
+);
+
+CREATE TABLE whups_types_queues (
+ type_id INT NOT NULL,
+ queue_id INT NOT NULL,
+ type_default SMALLINT DEFAULT 0 NOT NULL
+);
+CREATE INDEX whups_type_queue_idx ON whups_types_queues (queue_id, type_id);
+
+CREATE TABLE whups_states (
+ state_id INT NOT NULL,
+ type_id INT NOT NULL,
+ state_name VARCHAR(64) NOT NULL,
+ state_description VARCHAR(255),
+ state_category VARCHAR(16),
+ state_default SMALLINT DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (state_id)
+);
+CREATE INDEX whups_state_type_idx ON whups_states (type_id);
+CREATE INDEX whups_state_category_idx ON whups_states (state_category);
+
+CREATE TABLE whups_replies (
+ type_id INT NOT NULL,
+ reply_id INT NOT NULL,
+ reply_name VARCHAR(255) NOT NULL,
+ reply_text VARCHAR(MAX) NOT NULL,
+--
+ PRIMARY KEY (reply_id)
+);
+CREATE INDEX whups_reply_type_idx ON whups_replies (type_id);
+CREATE INDEX whups_reply_name_idx ON whups_replies (reply_name);
+
+CREATE TABLE whups_attributes_desc (
+ attribute_id INT NOT NULL,
+ type_id INT NOT NULL,
+ attribute_name VARCHAR(64) NOT NULL,
+ attribute_description VARCHAR(255),
+ attribute_type VARCHAR(255) DEFAULT 'text' NOT NULL,
+ attribute_params VARCHAR(MAX),
+ attribute_required SMALLINT,
+--
+ PRIMARY KEY (attribute_id)
+);
+
+CREATE TABLE whups_attributes (
+ ticket_id INT NOT NULL,
+ attribute_id INT NOT NULL,
+ attribute_value VARCHAR(255)
+);
+
+CREATE TABLE whups_comments (
+ comment_id INT NOT NULL,
+ ticket_id INT NOT NULL,
+ user_id_creator VARCHAR(255) NOT NULL,
+ comment_text VARCHAR(MAX),
+ comment_timestamp INT,
+--
+ PRIMARY KEY (comment_id)
+);
+CREATE INDEX whups_comment_ticket_idx ON whups_comments (ticket_id);
+
+CREATE TABLE whups_logs (
+ log_id INT NOT NULL,
+ transaction_id INT NOT NULL,
+ ticket_id INT NOT NULL,
+ log_timestamp INT NOT NULL,
+ log_type VARCHAR(255) NOT NULL,
+ log_value VARCHAR(255),
+ log_value_num INT,
+ user_id VARCHAR(255) NOT NULL,
+--
+ PRIMARY KEY (log_id)
+);
+
+CREATE INDEX whups_log_transaction_idx ON whups_logs (transaction_id);
+CREATE INDEX whups_log_ticket_id_idx ON whups_logs (ticket_id);
+CREATE INDEX whups_log_timestamp_idx ON whups_logs (log_timestamp);
+
+CREATE TABLE whups_priorities (
+ priority_id INT NOT NULL,
+ type_id INT NOT NULL,
+ priority_name VARCHAR(64),
+ priority_description VARCHAR(255),
+ priority_default SMALLINT DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (priority_id)
+);
+
+CREATE TABLE whups_versions (
+ version_id INT NOT NULL,
+ queue_id INT NOT NULL,
+ version_name VARCHAR(64),
+ version_description VARCHAR(255),
+ version_active INT DEFAULT 1,
+--
+ PRIMARY KEY (version_id)
+);
+CREATE INDEX whups_versions_active_idx ON whups_versions (version_active);
+
+CREATE TABLE whups_ticket_listeners (
+ ticket_id INT NOT NULL,
+ user_uid VARCHAR(255) NOT NULL
+);
+CREATE INDEX whups_ticket_listeners_ticket_idx ON whups_ticket_listeners (ticket_id);
+
+CREATE TABLE whups_queries (
+ query_id INT NOT NULL,
+ query_parameters VARCHAR(MAX),
+ query_object VARCHAR(MAX),
+--
+ PRIMARY KEY (query_id)
+);
+
+CREATE TABLE whups_shares (
+ share_id INT NOT NULL,
+ share_name VARCHAR(255) NOT NULL,
+ share_owner VARCHAR(255) NOT NULL,
+ share_flags SMALLINT DEFAULT 0 NOT NULL,
+ perm_creator SMALLINT DEFAULT 0 NOT NULL,
+ perm_default SMALLINT DEFAULT 0 NOT NULL,
+ perm_guest SMALLINT DEFAULT 0 NOT NULL,
+ attribute_name VARCHAR(255) NOT NULL,
+ attribute_slug VARCHAR(255),
+--
+ PRIMARY KEY (share_id)
+);
+
+CREATE INDEX whups_shares_share_name_idx ON whups_shares (share_name);
+CREATE INDEX whups_shares_share_owner_idx ON whups_shares (share_owner);
+CREATE INDEX whups_shares_perm_creator_idx ON whups_shares (perm_creator);
+CREATE INDEX whups_shares_perm_default_idx ON whups_shares (perm_default);
+CREATE INDEX whups_shares_perm_guest_idx ON whups_shares (perm_guest);
+
+CREATE TABLE whups_shares_groups (
+ share_id INT NOT NULL,
+ group_uid VARCHAR(255) NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_groups_share_id_idx ON whups_shares_groups (share_id);
+CREATE INDEX whups_shares_groups_group_uid_idx ON whups_shares_groups (group_uid);
+CREATE INDEX whups_shares_groups_perm_idx ON whups_shares_groups (perm);
+
+CREATE TABLE whups_shares_users (
+ share_id INT NOT NULL,
+ user_uid VARCHAR(255) NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_users_share_id_idx ON whups_shares_users (share_id);
+CREATE INDEX whups_shares_users_user_uid_idx ON whups_shares_users (user_uid);
+CREATE INDEX whups_shares_users_perm_idx ON whups_shares_users (perm);
--- /dev/null
+--
+-- $Horde: whups/scripts/sql/whups.oci8.sql,v 1.28 2009/10/20 21:28:28 jan Exp $
+--
+-- Copyright 2001-2005 Robert E. Coyle <robertecoyle@hotmail.com>
+--
+-- See the enclosed file LICENSE for license information (BSD). If you
+-- did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+--
+-- Database definitions for Whups
+
+CREATE TABLE whups_tickets (
+ ticket_id NUMBER(16) NOT NULL, -- unique ticket id
+ ticket_summary VARCHAR2(255), -- summary of the ticket
+ user_id_requester VARCHAR2(255) NOT NULL, -- user id of the creator of this ticket
+ queue_id NUMBER(16) NOT NULL, -- queue id that this ticket refers to
+ version_id NUMBER(16), -- version id that this ticket refers to
+ type_id NUMBER(16) NOT NULL, -- id into the type table, describing the type of ticket
+ state_id NUMBER(16) NOT NULL, -- state of this ticket, meaning depends on the type of the ticket
+ priority_id NUMBER(16) NOT NULL, -- priority, meaning depends on the type of the ticket
+ ticket_timestamp NUMBER(16) NOT NULL, -- redundant but useful, mirrored in the comment and log
+ ticket_due NUMBER(16), -- optional ticket due date
+ date_updated NUMBER(16), -- date of last update
+ date_assigned NUMBER(16), -- date of assignment
+ date_resolved NUMBER(16), -- date of resolving
+--
+ PRIMARY KEY (ticket_id)
+);
+CREATE INDEX whups_ticket_queue_idx ON whups_tickets (queue_id);
+CREATE INDEX whups_ticket_state_idx ON whups_tickets (state_id);
+CREATE INDEX whups_ticket_requester_idx ON whups_tickets (user_id_requester);
+CREATE INDEX whups_ticket_version_idx ON whups_tickets (version_id);
+CREATE INDEX whups_ticket_priority_idx ON whups_tickets (priority_id);
+
+CREATE TABLE whups_ticket_owners (
+ ticket_id NUMBER(16) NOT NULL,
+ ticket_owner VARCHAR2(255) NOT NULL
+--
+ PRIMARY KEY (ticket_id, ticket_owner)
+);
+CREATE INDEX whups_ticket_owner_ticket_idx ON whups_ticket_owners (ticket_id);
+CREATE INDEX whups_ticket_owner_owner_idx ON whups_ticket_owners (ticket_owner);
+
+CREATE TABLE whups_guests (
+ guest_id VARCHAR2(255) NOT NULL,
+ guest_email VARCHAR2(255) NOT NULL,
+--
+ PRIMARY KEY (guest_id)
+);
+
+CREATE TABLE whups_queues (
+ queue_id NUMBER(16) NOT NULL,
+ queue_name VARCHAR2(64) NOT NULL,
+ queue_description VARCHAR2(255),
+ queue_versioned NUMBER(1) DEFAULT 0 NOT NULL,
+ queue_slug VARCHAR2(64),
+ queue_email VARCHAR2(64),
+--
+ PRIMARY KEY (queue_id)
+);
+
+CREATE TABLE whups_queues_users (
+ queue_id NUMBER(16) NOT NULL,
+ user_uid VARCHAR2(255) NOT NULL,
+--
+ PRIMARY KEY (queue_id, user_uid)
+);
+
+CREATE TABLE whups_types (
+ type_id NUMBER(16) NOT NULL,
+ type_name VARCHAR2(64) NOT NULL,
+ type_description VARCHAR2(255),
+--
+ PRIMARY KEY (type_id)
+);
+
+CREATE TABLE whups_types_queues (
+ type_id NUMBER(16) NOT NULL,
+ queue_id NUMBER(16) NOT NULL,
+ type_default NUMBER(1) DEFAULT 0 NOT NULL
+);
+CREATE INDEX whups_type_queue_idx ON whups_types_queues (queue_id, type_id);
+
+CREATE TABLE whups_states (
+ state_id NUMBER(16) NOT NULL,
+ type_id NUMBER(16) NOT NULL,
+ state_name VARCHAR2(64) NOT NULL,
+ state_description VARCHAR2(255),
+ state_category VARCHAR2(16),
+ state_default NUMBER(1) DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (state_id)
+);
+CREATE INDEX whups_state_type_idx ON whups_states (type_id);
+CREATE INDEX whups_state_category_idx ON whups_states (state_category);
+
+CREATE TABLE whups_replies (
+ type_id NUMBER(16) NOT NULL,
+ reply_id NUMBER(16) NOT NULL,
+ reply_name VARCHAR2(255) NOT NULL,
+ reply_text CLOB NOT NULL,
+--
+ PRIMARY KEY (reply_id)
+);
+CREATE INDEX whups_reply_type_idx ON whups_replies (type_id);
+CREATE INDEX whups_reply_name_idx ON whups_replies (reply_name);
+
+CREATE TABLE whups_attributes_desc (
+ attribute_id NUMBER(16) NOT NULL,
+ type_id NUMBER(16) NOT NULL,
+ attribute_name VARCHAR2(64) NOT NULL,
+ attribute_description VARCHAR2(255),
+ attribute_type VARCHAR2(255) DEFAULT 'text' NOT NULL,
+ attribute_params CLOB,
+ attribute_required NUMBER(8),
+--
+ PRIMARY KEY (attribute_id)
+);
+
+CREATE TABLE whups_attributes (
+ ticket_id NUMBER(16) NOT NULL,
+ attribute_id NUMBER(16) NOT NULL,
+ attribute_value VARCHAR2(255)
+);
+
+CREATE TABLE whups_comments (
+ comment_id NUMBER(16) NOT NULL,
+ ticket_id NUMBER(16) NOT NULL,
+ user_id_creator VARCHAR2(255) NOT NULL,
+ comment_text CLOB,
+ comment_timestamp NUMBER(16),
+--
+ PRIMARY KEY (comment_id)
+);
+CREATE INDEX whups_comment_ticket_idx ON whups_comments (ticket_id);
+
+CREATE TABLE whups_logs (
+ log_id NUMBER(16) NOT NULL,
+ transaction_id NUMBER(16) NOT NULL,
+ ticket_id NUMBER(16) NOT NULL,
+ log_timestamp NUMBER(16) NOT NULL,
+ log_type VARCHAR2(255) NOT NULL,
+ log_value VARCHAR2(255),
+ log_value_num NUMBER(16),
+ user_id VARCHAR2(255) NOT NULL,
+--
+ PRIMARY KEY (log_id)
+);
+
+CREATE INDEX whups_log_transaction_idx ON whups_logs (transaction_id);
+CREATE INDEX whups_log_ticket_id_idx ON whups_logs (ticket_id);
+CREATE INDEX whups_log_timestamp_idx ON whups_logs (log_timestamp);
+
+CREATE TABLE whups_priorities (
+ priority_id NUMBER(16) NOT NULL,
+ type_id NUMBER(16) NOT NULL,
+ priority_name VARCHAR2(64),
+ priority_description VARCHAR2(255),
+ priority_default NUMBER(1) DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (priority_id)
+);
+
+CREATE TABLE whups_versions (
+ version_id NUMBER(16) NOT NULL,
+ queue_id NUMBER(16) NOT NULL,
+ version_name VARCHAR2(64),
+ version_description VARCHAR2(255),
+ version_active NUMBER(1) DEFAULT 1,
+--
+ PRIMARY KEY (version_id)
+);
+CREATE INDEX whups_versions_active_idx ON whups_versions (version_active);
+
+CREATE TABLE whups_ticket_listeners (
+ ticket_id NUMBER(16) NOT NULL,
+ user_uid VARCHAR2(255) NOT NULL
+);
+CREATE INDEX whups_ticket_listeners_ticket_idx ON whups_ticket_listeners (ticket_id);
+
+CREATE TABLE whups_queries (
+ query_id NUMBER(16) NOT NULL,
+ query_parameters CLOB,
+ query_object CLOB,
+--
+ PRIMARY KEY (query_id)
+);
+
+CREATE TABLE whups_shares (
+ share_id NUMBER(16) NOT NULL,
+ share_name VARCHAR2(255) NOT NULL,
+ share_owner VARCHAR2(255) NOT NULL,
+ share_flags NUMBER(8) DEFAULT 0 NOT NULL,
+ perm_creator NUMBER(8) DEFAULT 0 NOT NULL,
+ perm_default NUMBER(8) DEFAULT 0 NOT NULL,
+ perm_guest NUMBER(8) DEFAULT 0 NOT NULL,
+ attribute_name VARCHAR2(255) NOT NULL,
+ attribute_slug VARCHAR2(255),
+--
+ PRIMARY KEY (share_id)
+);
+
+CREATE INDEX whups_shares_share_name_idx ON whups_shares (share_name);
+CREATE INDEX whups_shares_share_owner_idx ON whups_shares (share_owner);
+CREATE INDEX whups_shares_perm_creator_idx ON whups_shares (perm_creator);
+CREATE INDEX whups_shares_perm_default_idx ON whups_shares (perm_default);
+CREATE INDEX whups_shares_perm_guest_idx ON whups_shares (perm_guest);
+
+CREATE TABLE whups_shares_groups (
+ share_id NUMBER(16) NOT NULL,
+ group_uid VARCHAR2(255) NOT NULL,
+ perm NUMBER(8) NOT NULL
+);
+
+CREATE INDEX whups_shares_groups_share_id_idx ON whups_shares_groups (share_id);
+CREATE INDEX whups_shares_groups_group_uid_idx ON whups_shares_groups (group_uid);
+CREATE INDEX whups_shares_groups_perm_idx ON whups_shares_groups (perm);
+
+CREATE TABLE whups_shares_users (
+ share_id NUMBER(16) NOT NULL,
+ user_uid VARCHAR2(255) NOT NULL,
+ perm NUMBER(8) NOT NULL
+);
+
+CREATE INDEX whups_shares_users_share_id_idx ON whups_shares_users (share_id);
+CREATE INDEX whups_shares_users_user_uid_idx ON whups_shares_users (user_uid);
+CREATE INDEX whups_shares_users_perm_idx ON whups_shares_users (perm);
--- /dev/null
+--
+-- $Horde: whups/scripts/sql/whups.sql,v 1.32 2009/10/20 21:28:28 jan Exp $
+--
+-- Copyright 2001-2005 Robert E. Coyle <robertecoyle@hotmail.com>
+--
+-- See the enclosed file LICENSE for license information (BSD). If you
+-- did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+--
+-- Database definitions for Whups
+
+CREATE TABLE whups_tickets (
+ ticket_id INT NOT NULL, -- unique ticket id
+ ticket_summary VARCHAR(255), -- summary of the ticket
+ user_id_requester VARCHAR(255) NOT NULL, -- user id of the creator of this ticket
+ queue_id INT NOT NULL, -- queue id that this ticket refers to
+ version_id INT, -- version id that this ticket refers to
+ type_id INT NOT NULL, -- id into the type table, describing the type of ticket
+ state_id INT NOT NULL, -- state of this ticket, meaning depends on the type of the ticket
+ priority_id INT NOT NULL, -- priority, meaning depends on the type of the ticket
+ ticket_timestamp INT NOT NULL, -- redundant but useful, mirrored in the comment and log
+ ticket_due INT, -- optional ticket due date
+ date_updated INT, -- date of last update
+ date_assigned INT, -- date of assignment
+ date_resolved INT, -- date of resolving
+--
+ PRIMARY KEY (ticket_id)
+);
+CREATE INDEX whups_ticket_queue_idx ON whups_tickets (queue_id);
+CREATE INDEX whups_ticket_state_idx ON whups_tickets (state_id);
+CREATE INDEX whups_ticket_requester_idx ON whups_tickets (user_id_requester);
+CREATE INDEX whups_ticket_version_idx ON whups_tickets (version_id);
+CREATE INDEX whups_ticket_priority_idx ON whups_tickets (priority_id);
+
+CREATE TABLE whups_ticket_owners (
+ ticket_id INT NOT NULL,
+ ticket_owner VARCHAR(255) NOT NULL,
+--
+ PRIMARY KEY (ticket_id, ticket_owner)
+);
+CREATE INDEX whups_ticket_owner_ticket_idx ON whups_ticket_owners (ticket_id);
+CREATE INDEX whups_ticket_owner_owner_idx ON whups_ticket_owners (ticket_owner);
+
+CREATE TABLE whups_guests (
+ guest_id VARCHAR(255) NOT NULL,
+ guest_email VARCHAR(255) NOT NULL,
+--
+ PRIMARY KEY (guest_id)
+);
+
+CREATE TABLE whups_queues (
+ queue_id INT NOT NULL,
+ queue_name VARCHAR(64) NOT NULL,
+ queue_description VARCHAR(255),
+ queue_versioned SMALLINT DEFAULT 0 NOT NULL,
+ queue_slug VARCHAR(64),
+ queue_email VARCHAR(64),
+--
+ PRIMARY KEY (queue_id)
+);
+
+CREATE TABLE whups_queues_users (
+ queue_id INT NOT NULL,
+ user_uid VARCHAR(250) NOT NULL,
+--
+ PRIMARY KEY (queue_id, user_uid)
+);
+
+CREATE TABLE whups_types (
+ type_id INT NOT NULL,
+ type_name VARCHAR(64) NOT NULL,
+ type_description VARCHAR(255),
+--
+ PRIMARY KEY (type_id)
+);
+
+CREATE TABLE whups_types_queues (
+ type_id INT NOT NULL,
+ queue_id INT NOT NULL,
+ type_default SMALLINT DEFAULT 0 NOT NULL
+);
+CREATE INDEX whups_type_queue_idx ON whups_types_queues (queue_id, type_id);
+
+CREATE TABLE whups_states (
+ state_id INT NOT NULL,
+ type_id INT NOT NULL,
+ state_name VARCHAR(64) NOT NULL,
+ state_description VARCHAR(255),
+ state_category VARCHAR(16),
+ state_default SMALLINT DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (state_id)
+);
+CREATE INDEX whups_state_type_idx ON whups_states (type_id);
+CREATE INDEX whups_state_category_idx ON whups_states (state_category);
+
+CREATE TABLE whups_replies (
+ type_id INT NOT NULL,
+ reply_id INT NOT NULL,
+ reply_name VARCHAR(255) NOT NULL,
+ reply_text TEXT NOT NULL,
+--
+ PRIMARY KEY (reply_id)
+);
+CREATE INDEX whups_reply_type_idx ON whups_replies (type_id);
+CREATE INDEX whups_reply_name_idx ON whups_replies (reply_name);
+
+CREATE TABLE whups_attributes_desc (
+ attribute_id INT NOT NULL,
+ type_id INT NOT NULL,
+ attribute_name VARCHAR(64) NOT NULL,
+ attribute_description VARCHAR(255),
+ attribute_type VARCHAR(255) DEFAULT 'text' NOT NULL,
+ attribute_params TEXT,
+ attribute_required SMALLINT,
+--
+ PRIMARY KEY (attribute_id)
+);
+
+CREATE TABLE whups_attributes (
+ ticket_id INT NOT NULL,
+ attribute_id INT NOT NULL,
+ attribute_value VARCHAR(255)
+);
+
+CREATE TABLE whups_comments (
+ comment_id INT NOT NULL,
+ ticket_id INT NOT NULL,
+ user_id_creator VARCHAR(255) NOT NULL,
+ comment_text TEXT,
+ comment_timestamp INT,
+--
+ PRIMARY KEY (comment_id)
+);
+CREATE INDEX whups_comment_ticket_idx ON whups_comments (ticket_id);
+
+CREATE TABLE whups_logs (
+ log_id INT NOT NULL,
+ transaction_id INT NOT NULL,
+ ticket_id INT NOT NULL,
+ log_timestamp INT NOT NULL,
+ log_type VARCHAR(255) NOT NULL,
+ log_value VARCHAR(255),
+ log_value_num INT,
+ user_id VARCHAR(255) NOT NULL,
+--
+ PRIMARY KEY (log_id)
+);
+CREATE INDEX whups_log_transaction_idx ON whups_logs (transaction_id);
+CREATE INDEX whups_log_ticket_id_idx ON whups_logs (ticket_id);
+CREATE INDEX whups_log_timestamp_idx ON whups_logs (log_timestamp);
+
+CREATE TABLE whups_priorities (
+ priority_id INT NOT NULL,
+ type_id INT NOT NULL,
+ priority_name VARCHAR(64),
+ priority_description VARCHAR(255),
+ priority_default SMALLINT DEFAULT 0 NOT NULL,
+--
+ PRIMARY KEY (priority_id)
+);
+CREATE INDEX whups_priority_type_idx ON whups_priorities (type_id);
+
+CREATE TABLE whups_versions (
+ version_id INT NOT NULL,
+ queue_id INT NOT NULL,
+ version_name VARCHAR(64),
+ version_description VARCHAR(255),
+ version_active INT DEFAULT 1,
+--
+ PRIMARY KEY (version_id)
+);
+CREATE INDEX whups_versions_active_idx ON whups_versions (version_active);
+
+CREATE TABLE whups_ticket_listeners (
+ ticket_id INT NOT NULL,
+ user_uid VARCHAR(255) NOT NULL
+);
+CREATE INDEX whups_ticket_listeners_ticket_idx ON whups_ticket_listeners (ticket_id);
+
+CREATE TABLE whups_queries (
+ query_id INT NOT NULL,
+ query_parameters TEXT,
+ query_object TEXT,
+--
+ PRIMARY KEY (query_id)
+);
+
+CREATE TABLE whups_shares (
+ share_id INT NOT NULL,
+ share_name VARCHAR(255) NOT NULL,
+ share_owner VARCHAR(255) NOT NULL,
+ share_flags SMALLINT DEFAULT 0 NOT NULL,
+ perm_creator SMALLINT DEFAULT 0 NOT NULL,
+ perm_default SMALLINT DEFAULT 0 NOT NULL,
+ perm_guest SMALLINT DEFAULT 0 NOT NULL,
+ attribute_name VARCHAR(255) NOT NULL,
+ attribute_slug VARCHAR(255),
+--
+ PRIMARY KEY (share_id)
+);
+
+CREATE INDEX whups_shares_share_name_idx ON whups_shares (share_name);
+CREATE INDEX whups_shares_share_owner_idx ON whups_shares (share_owner);
+CREATE INDEX whups_shares_perm_creator_idx ON whups_shares (perm_creator);
+CREATE INDEX whups_shares_perm_default_idx ON whups_shares (perm_default);
+CREATE INDEX whups_shares_perm_guest_idx ON whups_shares (perm_guest);
+
+CREATE TABLE whups_shares_groups (
+ share_id INT NOT NULL,
+ group_uid VARCHAR(255) NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_groups_share_id_idx ON whups_shares_groups (share_id);
+CREATE INDEX whups_shares_groups_group_uid_idx ON whups_shares_groups (group_uid);
+CREATE INDEX whups_shares_groups_perm_idx ON whups_shares_groups (perm);
+
+CREATE TABLE whups_shares_users (
+ share_id INT NOT NULL,
+ user_uid VARCHAR(255) NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_users_share_id_idx ON whups_shares_users (share_id);
+CREATE INDEX whups_shares_users_user_uid_idx ON whups_shares_users (user_uid);
+CREATE INDEX whups_shares_users_perm_idx ON whups_shares_users (perm);
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<database>
+
+ <name><variable>name</variable></name>
+ <create>false</create>
+ <overwrite>false</overwrite>
+
+ <table>
+
+ <name>whups_attributes</name>
+
+ <declaration>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>attribute_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>attribute_value</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_attributes_desc</name>
+
+ <declaration>
+
+ <field>
+ <name>attribute_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>attribute_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>attribute_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>attribute_type</name>
+ <type>text</type>
+ <default>text</default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>attribute_required</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>attribute_params</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <index>
+ <name>whups_attributes_desc_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>attribute_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_comments</name>
+
+ <declaration>
+
+ <field>
+ <name>comment_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>user_id_creator</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>comment_text</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>comment_timestamp</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <index>
+ <name>whups_comment_ticket</name>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_comments_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>comment_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_guests</name>
+
+ <declaration>
+
+ <field>
+ <name>guest_id</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>guest_email</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>whups_guests_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>guest_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_logs</name>
+
+ <declaration>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>log_timestamp</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>user_id</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>log_type</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>log_value</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>log_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>transaction_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>log_value_num</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <index>
+ <name>log_ticket_id</name>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>log_timestamp</name>
+ <field>
+ <name>log_timestamp</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_priorities</name>
+
+ <declaration>
+
+ <field>
+ <name>priority_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>priority_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>priority_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>priority_default</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <index>
+ <name>whups_priority_type</name>
+ <field>
+ <name>type_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_priorities_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>priority_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_queries</name>
+
+ <declaration>
+
+ <field>
+ <name>query_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>query_parameters</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <field>
+ <name>query_object</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ <index>
+ <name>whups_queries_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>query_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_queues</name>
+
+ <declaration>
+
+ <field>
+ <name>queue_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>queue_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>queue_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>queue_versioned</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <field>
+ <name>queue_slug</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>queue_email</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
+ <index>
+ <name>whups_queue_slug</name>
+ <field>
+ <name>queue_slug</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_queues_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>queue_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_queues_users</name>
+
+ <declaration>
+
+ <field>
+ <name>queue_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>user_uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>250</length>
+ </field>
+
+ <index>
+ <name>whups_queues_users_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>queue_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>user_uid</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_replies</name>
+
+ <declaration>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>reply_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>reply_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>reply_text</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ </field>
+
+ <index>
+ <name>whups_reply_type</name>
+ <field>
+ <name>type_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_reply_name</name>
+ <field>
+ <name>reply_name</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_replies_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>reply_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_shares</name>
+
+ <declaration>
+
+ <field>
+ <name>share_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>share_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>share_owner</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>32</length>
+ </field>
+
+ <field>
+ <name>share_flags</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <field>
+ <name>perm_creator</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <field>
+ <name>perm_default</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <field>
+ <name>perm_guest</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <field>
+ <name>attribute_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>attribute_slug</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>whups_shares_share_name</name>
+ <field>
+ <name>share_name</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_share_owner</name>
+ <field>
+ <name>share_owner</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_perm_creator</name>
+ <field>
+ <name>perm_creator</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_perm_default</name>
+ <field>
+ <name>perm_default</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_perm_guest</name>
+ <field>
+ <name>perm_guest</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>share_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_shares_groups</name>
+
+ <declaration>
+
+ <field>
+ <name>share_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>group_uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>perm</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <index>
+ <name>whups_shares_groups_share_id</name>
+ <field>
+ <name>share_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_groups_group_uid</name>
+ <field>
+ <name>group_uid</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_groups_perm</name>
+ <field>
+ <name>perm</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_shares_users</name>
+
+ <declaration>
+
+ <field>
+ <name>share_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>user_uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>32</length>
+ </field>
+
+ <field>
+ <name>perm</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <index>
+ <name>whups_shares_users_share_id</name>
+ <field>
+ <name>share_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_users_user_uid</name>
+ <field>
+ <name>user_uid</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_shares_users_perm</name>
+ <field>
+ <name>perm</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_states</name>
+
+ <declaration>
+
+ <field>
+ <name>state_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>state_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>state_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>state_category</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>16</length>
+ </field>
+
+ <field>
+ <name>state_default</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <index>
+ <name>whups_state_type</name>
+ <field>
+ <name>type_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_state_category</name>
+ <field>
+ <name>state_category</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_states_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>state_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_ticket_listeners</name>
+
+ <declaration>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>user_uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>whups_ticket_listeners_ticket</name>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_ticket_owners</name>
+
+ <declaration>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>ticket_owner</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>ticket_id</name>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>ticket_owner</name>
+ <field>
+ <name>ticket_owner</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_owner_ticket</name>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_owner_owner</name>
+ <field>
+ <name>ticket_owner</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_tickets</name>
+
+ <declaration>
+
+ <field>
+ <name>ticket_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>ticket_summary</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>user_id_requester</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>queue_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>version_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>state_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>priority_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>ticket_timestamp</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>ticket_due</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>date_updated</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>date_assigned</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>date_resolved</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>4</length>
+ </field>
+
+ <index>
+ <name>whups_ticket_queue</name>
+ <field>
+ <name>queue_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_state</name>
+ <field>
+ <name>state_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_requester</name>
+ <field>
+ <name>user_id_requester</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_version</name>
+ <field>
+ <name>version_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_ticket_priority</name>
+ <field>
+ <name>priority_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_tickets_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>ticket_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_types</name>
+
+ <declaration>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>type_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <index>
+ <name>whups_types_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>type_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_types_queues</name>
+
+ <declaration>
+
+ <field>
+ <name>type_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>queue_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>type_default</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <length>2</length>
+ </field>
+
+ <index>
+ <name>whups_type_queue</name>
+ <field>
+ <name>queue_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ <field>
+ <name>type_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_users_queries</name>
+
+ <declaration>
+
+ <field>
+ <name>user_uid</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>query_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>query_object</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ </field>
+
+ </declaration>
+
+ </table>
+
+ <table>
+
+ <name>whups_versions</name>
+
+ <declaration>
+
+ <field>
+ <name>version_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>queue_id</name>
+ <type>integer</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>4</length>
+ </field>
+
+ <field>
+ <name>version_name</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
+ <name>version_description</name>
+ <type>text</type>
+ <default></default>
+ <notnull>false</notnull>
+ <length>255</length>
+ </field>
+
+ <field>
+ <name>version_active</name>
+ <type>integer</type>
+ <default>1</default>
+ <length>1</length>
+ </field>
+
+ <index>
+ <name>whups_versions_pKey</name>
+ <primary>true</primary>
+ <field>
+ <name>version_id</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ <index>
+ <name>whups_versions_active</name>
+ <field>
+ <name>version_active</name>
+ <sorting>ascending</sorting>
+ </field>
+ </index>
+
+ </declaration>
+
+ </table>
+
+</database>
--- /dev/null
+-- Script to add due date to whups_tickets table\r
+--\r
+-- $Horde: whups/scripts/upgrades/2006-07-12_add_due_date.sql,v 1.1 2006/07/19 02:54:31 chuck Exp $\r
+--\r
+\r
+ALTER TABLE whups_tickets ADD ticket_due INT;\r
--- /dev/null
+DROP TABLE whups_queues_subjects;
+DROP TABLE whups_subjects;
+ALTER TABLE whups_queues DROP COLUMN queue_subjectlist;
+DROP TABLE whups_subjects_seq;
--- /dev/null
+ALTER TABLE whups_types_queues ADD COLUMN type_default SMALLINT DEFAULT 0 NOT NULL;
+ALTER TABLE whups_states ADD COLUMN state_default SMALLINT DEFAULT 0 NOT NULL;
+ALTER TABLE whups_priorities ADD COLUMN priority_default SMALLINT DEFAULT 0 NOT NULL;
--- /dev/null
+-- $Horde: whups/scripts/upgrades/2008-04-29_add_sql_share_tables.sql,v 1.3 2009/10/20 21:28:28 jan Exp $
+
+CREATE TABLE whups_shares (
+ share_id INT NOT NULL,
+ share_name VARCHAR(255) NOT NULL,
+ share_owner VARCHAR(255) NOT NULL,
+ share_flags SMALLINT DEFAULT 0 NOT NULL,
+ perm_creator SMALLINT DEFAULT 0 NOT NULL,
+ perm_default SMALLINT DEFAULT 0 NOT NULL,
+ perm_guest SMALLINT DEFAULT 0 NOT NULL,
+ attribute_name VARCHAR(255) NOT NULL,
+ PRIMARY KEY (share_id)
+);
+
+CREATE INDEX whups_shares_share_name_idx ON whups_shares (share_name);
+CREATE INDEX whups_shares_share_owner_idx ON whups_shares (share_owner);
+CREATE INDEX whups_shares_perm_creator_idx ON whups_shares (perm_creator);
+CREATE INDEX whups_shares_perm_default_idx ON whups_shares (perm_default);
+CREATE INDEX whups_shares_perm_guest_idx ON whups_shares (perm_guest);
+
+CREATE TABLE whups_shares_groups (
+ share_id INT NOT NULL,
+ group_uid INT NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_groups_share_id_idx ON whups_shares_groups (share_id);
+CREATE INDEX whups_shares_groups_group_uid_idx ON whups_shares_groups (group_uid);
+CREATE INDEX whups_shares_groups_perm_idx ON whups_shares_groups (perm);
+
+CREATE TABLE whups_shares_users (
+ share_id INT NOT NULL,
+ user_uid VARCHAR(32) NOT NULL,
+ perm SMALLINT NOT NULL
+);
+
+CREATE INDEX whups_shares_users_share_id_idx ON whups_shares_users (share_id);
+CREATE INDEX whups_shares_users_user_uid_idx ON whups_shares_users (user_uid);
+CREATE INDEX whups_shares_users_perm_idx ON whups_shares_users (perm);
--- /dev/null
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_description_new VARCHAR2(255);
+UPDATE whups_attributes_desc SET attribute_description_new = attribute_description;
+ALTER TABLE whups_attributes_desc DROP COLUMN attribute_description;
+ALTER TABLE whups_attributes_desc RENAME COLUMN attribute_description_new TO attribute_description;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_type VARCHAR2(255) DEFAULT 'text';
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_params CLOB;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_required NUMBER(8);
--- /dev/null
+BEGIN;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_description_new VARCHAR(255);
+UPDATE whups_attributes_desc SET attribute_description_new = attribute_description;
+ALTER TABLE whups_attributes_desc DROP attribute_description;
+ALTER TABLE whups_attributes_desc RENAME attribute_description_new TO attribute_description;
+COMMIT;
+
+BEGIN;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_type VARCHAR(255);
+ALTER TABLE whups_attributes_desc ALTER COLUMN attribute_type SET DEFAULT 'text';
+COMMIT;
+
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_params TEXT;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_required SMALLINT;
--- /dev/null
+ALTER TABLE whups_attributes_desc CHANGE COLUMN attribute_description attribute_description VARCHAR(255);
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_type VARCHAR(255) DEFAULT 'text';
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_params TEXT;
+ALTER TABLE whups_attributes_desc ADD COLUMN attribute_required SMALLINT;
--- /dev/null
+ALTER TABLE whups_queues ADD COLUMN queue_email VARCHAR(64);
--- /dev/null
+ALTER TABLE whups_shares CHANGE share_owner share_owner VARCHAR(255);
+ALTER TABLE whups_shares_users CHANGE user_uid user_uid VARCHAR(255);
\ No newline at end of file
--- /dev/null
+CREATE TABLE whups_replies (
+ type_id INT NOT NULL,
+ reply_id INT NOT NULL,
+ reply_name VARCHAR(255) NOT NULL,
+ reply_text TEXT NOT NULL,
+--
+ PRIMARY KEY (reply_id)
+);
+CREATE INDEX whups_reply_type_idx ON whups_replies (type_id);
+CREATE INDEX whups_reply_name_idx ON whups_replies (reply_name);
--- /dev/null
+ALTER TABLE whups_shares ADD COLUMN attribute_slug VARCHAR(255);
--- /dev/null
+ALTER TABLE whups_shares_groups CHANGE group_uid group_uid VARCHAR(255);
+
--- /dev/null
+ALTER TABLE whups_versions ADD COLUMN version_active INT;
+UPDATE whups_versions SET version_active = 1;
+ALTER TABLE whups_versions ALTER COLUMN version_active SET DEFAULT 1;
+CREATE INDEX whups_versions_active_idx ON whups_versions (version_active);
--- /dev/null
+ALTER TABLE whups_versions ADD COLUMN version_active INT DEFAULT 1;
+CREATE INDEX whups_versions_active_idx ON whups_versions (version_active);
--- /dev/null
+#!/usr/bin/env php
+<?php
+/**
+ * This script migrates Whups' share data from the datatree
+ * Horde_Share driver to the new SQL Horde_Share driver. You should
+ * run the 2008-04-29_add_sql_share_tables.sql upgrade script before
+ * executing this script.
+ *
+ * $Horde: whups/scripts/upgrades/convert_datatree_shares_to_sql.php,v 1.9 2009/09/02 13:43:42 jan Exp $
+ */
+
+@define('AUTH_HANDLER', true);
+@define('HORDE_BASE', dirname(__FILE__) . '/../../..');
+
+/* Set up the CLI environment */
+require_once HORDE_BASE . '/lib/core.php';
+if (!Horde_Cli::runningFromCli()) {
+ exit("Must be run from the command line\n");
+}
+$cli = &Horde_Cli::singleton();
+$cli->init();
+
+/* Grab what we need to steal the DB config */
+require_once HORDE_BASE . '/config/conf.php';
+require_once 'MDB2.php';
+
+$config = $GLOBALS['conf']['sql'];
+unset($config['charset']);
+$db = MDB2::factory($config);
+$db->setOption('seqcol_name', 'id');
+
+$error_cnt = 0;
+$delete_dt_data = false;
+$answer = $cli->prompt('Do you want to keep your old datatree data or delete it?', array('Keep', 'Delete'));
+if ($answer == 1) {
+ $delete_dt_data = true;
+}
+$answer = $cli->prompt(sprintf("Data will be copied into the new tables, and %s be deleted from the datatree.\n Is this what you want?", (($delete_dt_data) ? 'WILL' : 'WILL NOT')), array('y' => 'Yes', 'n' => 'No'));
+if ($answer != 'y') {
+ exit;
+}
+
+/* Get the share entries */
+$shares_result = $db->query('SELECT datatree_id, datatree_name FROM horde_datatree WHERE group_uid = \'horde.shares.whups\'');
+if (is_a($shares_result, 'PEAR_Error')) {
+ die($shares_result->toString());
+}
+
+$query = $db->prepare('SELECT attribute_name, attribute_key, attribute_value FROM horde_datatree_attributes WHERE datatree_id = ?');
+$maxId = 0;
+while ($row = $shares_result->fetchRow(MDB2_FETCHMODE_ASSOC)) {
+ $share_id = $row['datatree_id'];
+ $share_name = $row['datatree_name'];
+ $maxId = max($maxId, $share_id);
+
+ /* Build an array to hold the new row data */
+ $data = array('share_id' => $share_id,
+ 'share_name' => $share_name);
+
+ $query_result = $query->execute($share_id);
+ $rows = $query_result->fetchAll(MDB2_FETCHMODE_ASSOC);
+ if (!count($rows)) {
+ continue;
+ }
+ $users = array();
+ $groups = array();
+
+ foreach ($rows as $row) {
+ if ($row['attribute_name'] == 'perm_groups') {
+ /* Group table entry */
+ $groups[] = array('share_id' => $data['share_id'],
+ 'group_uid' => $row['attribute_key'],
+ 'perm' => $row['attribute_value']);
+ } elseif ($row['attribute_name'] == 'perm_users') {
+ /* User table entry */
+ $users[] = array('share_id' => $data['share_id'],
+ 'user_uid' => $row['attribute_key'],
+ 'perm' => $row['attribute_value']);
+ } else {
+ /* Everything else goes in the main share table */
+ switch ($row['attribute_name']) {
+ case 'perm_creator':
+ case 'perm_default':
+ case 'perm_guest':
+ $data[$row['attribute_name']] = $row['attribute_value'];
+ break;
+
+ case 'owner':
+ $data['share_owner'] = $row['attribute_value'];
+ break;
+
+ case 'name':
+ // Note the key to the $data array is not related to
+ // the attribute_name field in the dt_attributes table.
+ $data['attribute_name'] = $row['attribute_value'];
+ break;
+
+ case 'slug':
+ // Note the key to the $data array is not related to
+ // the attribute_name field in the dt_attributes table.
+ $data['attribute_slug'] = $row['attribute_value'];
+ break;
+ }
+ }
+ }
+
+ /* Set flags */
+ $data['share_flags'] = 0;
+ if (count($users)) {
+ $data['share_flags'] |= 1;
+ }
+ if (count($groups)) {
+ $data['share_flags'] |= 2;
+ }
+
+ /* Insert the new data */
+ $cli->message('Migrating share data for share_id: ' . $share_id, 'cli.message');
+ $result = insertData('whups_shares', $data);
+ if (is_a($result, 'PEAR_Error')) {
+ ++$error_cnt;
+ $cli->message($result->toString(), 'cli.error');
+ }
+ if (count($groups)) {
+ foreach ($groups as $group) {
+ $result = insertData('whups_shares_groups', $group);
+ if (is_a($result, 'PEAR_Error')) {
+ ++$error_cnt;
+ $cli->message($result->getMessage(), 'cli.error');
+ }
+ }
+ }
+ if (count($users)) {
+ foreach ($users as $user) {
+ $result = insertData('whups_shares_users', $user);
+ if (is_a($result, 'PEAR_Error')) {
+ ++$error_cnt;
+ $cli->message($result->getMessage(), 'cli.error');
+ }
+ }
+ }
+
+ /* Delete the datatree data, but ONLY if it was requested */
+ if ($delete_dt_data && !$error_cnt) {
+ $cli->message('DELETING datatree data for share_id: ' . $share_id, 'cli.message');
+ $delete = $db->prepare('DELETE FROM horde_datatree_attributes WHERE datatree_id = ?', null, MDB2_PREPARE_MANIP);
+ $delete->execute(array($share_id));
+ $delete->free();
+
+ $delete = $db->prepare('DELETE FROM horde_datatree WHERE datatree_id = ?', null, MDB2_PREPARE_MANIP);
+ $delete->execute(array($share_id));
+ $delete->free();
+ }
+
+ /* Cleanup */
+ $query_result->free();
+ unset($row, $rows, $data, $groups, $users);
+}
+
+while ($nextId = $db->nextId('whups_shares') < $maxId) {
+}
+
+if ($error_cnt) {
+ $cli->message(sprintf("Encountered %u errors. No data was deleted from your database.", $error_cnt));
+}
+echo "\nDone.\n";
+
+/**
+ * Helper function
+ */
+function insertData($table, $data)
+{
+ $fields = array_keys($data);
+ $values = array_map(array($GLOBALS['db'], 'quote'), array_values($data));
+
+ return $GLOBALS['db']->exec('INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')');
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/search.php,v 1.128 2009/07/08 18:30:05 slusarz Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+/**
+ * Construct the URL back to a supplied search
+ */
+function _getSearchUrl($vars)
+{
+ $qUrl = '';
+
+ $queue = (int)$vars->get('queue');
+ $qUrl = Horde_Util::addParameter($qUrl, array('queue' => $queue));
+
+ $summary = $vars->get('summary');
+ if ($summary) {
+ $qUrl = Horde_Util::addParameter($qUrl, 'summary', $summary);
+ }
+
+ $states = $vars->get('states');
+ if (is_array($states)) {
+ foreach ($states as $type => $state) {
+ if (is_array($state)) {
+ foreach ($state as $s) {
+ $qUrl = Horde_Util::addParameter($qUrl, "states[$type][]", $s);
+ }
+ } else {
+ $qUrl = Horde_Util::addParameter($qUrl, "states[$type]", $state);
+ }
+ }
+ }
+
+ return substr($qUrl, 1);
+}
+
+require_once dirname(__FILE__) . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Query.php';
+require_once WHUPS_BASE . '/lib/Forms/Search.php';
+require_once WHUPS_BASE . '/lib/View.php';
+
+$renderer = new Horde_Form_Renderer();
+$beendone = false;
+$vars = Horde_Variables::getDefaultVariables();
+
+// Update sorting preferences.
+if (Horde_Util::getFormData('sortby') !== null) {
+ $prefs->setValue('sortby', Horde_Util::getFormData('sortby'));
+}
+if (Horde_Util::getFormData('sortdir') !== null) {
+ $prefs->setValue('sortdir', Horde_Util::getFormData('sortdir'));
+}
+
+$form = new SearchForm($vars);
+$results = null;
+if (($vars->get('formname') || $vars->get('summary') || $vars->get('states') ||
+ Horde_Util::getFormData('haveSearch', false)) && $form->validate($vars, true)) {
+
+ $form->getInfo($vars, $info);
+ if ($vars->get('submitbutton') == _("Save as Query")) {
+ require_once WHUPS_BASE . '/lib/Query.php';
+ $qManager = new Whups_QueryManager();
+ $whups_query = $qManager->newQuery();
+ if (strlen($info['summary'])) {
+ $whups_query->insertCriterion('', CRITERION_SUMMARY, null,
+ OPERATOR_CI_SUBSTRING, $info['summary']);
+ }
+ if ($vars->get('queue')) {
+ $whups_query->insertCriterion('', CRITERION_QUEUE, null,
+ OPERATOR_EQUAL, $info['queue']);
+ }
+ foreach (array('ticket_timestamp', 'date_updated', 'date_resolved', 'date_assigned', 'date_due') as $date_field) {
+ if (!empty($info[$date_field]['from']) || !empty($info[$date_field]['to'])) {
+ $path = $whups_query->insertBranch('', QUERY_TYPE_AND);
+ break;
+ }
+ }
+ if (!empty($info['ticket_timestamp']['from'])) {
+ $whups_query->insertCriterion($path, CRITERION_TIMESTAMP, null,
+ OPERATOR_GREATER, $info['ticket_timestamp']['from']);
+ }
+ if (!empty($info['ticket_timestamp']['to'])) {
+ $whups_query->insertCriterion($path, CRITERION_TIMESTAMP, null,
+ OPERATOR_LESS, $info['ticket_timestamp']['to']);
+ }
+ if (!empty($info['date_updated']['from'])) {
+ $whups_query->insertCriterion($path, CRITERION_UPDATED, null,
+ OPERATOR_GREATER, $info['date_updated']['from']);
+ }
+ if (!empty($info['date_updated']['to'])) {
+ $whups_query->insertCriterion($path, CRITERION_UPDATED, null,
+ OPERATOR_LESS, $info['date_updated']['to']);
+ }
+ if (!empty($info['date_resolved']['from'])) {
+ $whups_query->insertCriterion($path, CRITERION_RESOLVED, null,
+ OPERATOR_GREATER, $info['date_resolved']['from']);
+ }
+ if (!empty($info['date_resolved']['to'])) {
+ $whups_query->insertCriterion($path, CRITERION_RESOLVED, null,
+ OPERATOR_LESS, $info['date_resolved']['to']);
+ }
+ if (!empty($info['date_assigned']['from'])) {
+ $whups_query->insertCriterion($path, CRITERION_ASSIGNED, null,
+ OPERATOR_GREATER, $info['date_assigned']['from']);
+ }
+ if (!empty($info['date_assigned']['to'])) {
+ $whups_query->insertCriterion($path, CRITERION_ASSIGNED, null,
+ OPERATOR_LESS, $info['date_assigned']['to']);
+ }
+ if (!empty($info['date_due']['from'])) {
+ $whups_query->insertCriterion($path, CRITERION_DUE, null,
+ OPERATOR_GREATER, $info['date_due']['from']);
+ }
+ if (!empty($info['date_due']['to'])) {
+ $whups_query->insertCriterion($path, CRITERION_DUE, null,
+ OPERATOR_LESS, $info['date_due']['to']);
+ }
+ if ($info['state_id']) {
+ $path = $whups_query->insertBranch('', QUERY_TYPE_OR);
+ foreach ($info['state_id'] as $state) {
+ $whups_query->insertCriterion($path, CRITERION_STATE, null,
+ OPERATOR_EQUAL, $state);
+ }
+ }
+ $_SESSION['whups']['query'] = serialize($whups_query);
+ header('Location: ' . Horde::applicationUrl(Horde_Util::addParameter('query/index.php', 'action', 'save'), true));
+ exit;
+ }
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ $notification->push(sprintf(_("There was an error performing your search: %s"), $tickets->getMessage()), 'horde.error');
+ } else {
+ Whups::sortTickets($tickets);
+
+ $_SESSION['whups']['last_search'] = Horde::applicationUrl('search.php?' . _getSearchUrl($vars));
+ $results = Whups_View::factory(
+ 'Results',
+ array('title' => _("Search Results"),
+ 'results' => $tickets,
+ 'values' => Whups::getSearchResultColumns(),
+ 'url' => $_SESSION['whups']['last_search']));
+ $beendone = true;
+ }
+}
+
+$title = _("Search");
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+
+if ($results) {
+ $results->html();
+ if (is_object($form)) {
+ $form->setTitle(_("Refine Search"));
+ $form->renderActive($renderer, $vars, 'search.php', 'get');
+ echo '<br />';
+ }
+}
+
+if (!$beendone) {
+ // Front search page.
+ $form->setTitle(_("Ticket Search"));
+ $form->renderActive($renderer, $vars, 'search.php', 'get');
+ echo '<br class="spacer" />';
+}
+
+$qManager = new Whups_QueryManager();
+$myqueries = Whups_View::factory(
+ 'SavedQueries',
+ array('title' => Horde_Auth::getAuth() ? _("My Queries") : _("Public Queries"),
+ 'results' => $qManager->listQueries(Horde_Auth::getAuth(), true)));
+$myqueries->html();
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/search/rss.php,v 1.5 2009/07/09 08:18:48 slusarz Exp $
+ *
+ * Copyright 2008-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Duck <duck@obala.net>
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once WHUPS_BASE . '/lib/Forms/Search.php';
+require_once 'Horde/Template.php';
+
+$vars = Horde_Variables::getDefaultVariables();
+$limit = (int)$vars->get('limit');
+$form = new SearchForm($vars);
+
+if ($form->validate($vars, true)) {
+ $form->getInfo($vars, $info);
+ $tickets = $whups_driver->getTicketsByProperties($info);
+ if (is_a($tickets, 'PEAR_Error')) {
+ Horde::fatal($tickets, __FILE__, __LINE__);
+ }
+ Whups::sortTickets($tickets, 'date_updated', 'desc');
+} else {
+ Horde::fatal(_("Invalid search"), __FILE__, __LINE__);
+}
+
+$count = 0;
+$items = array();
+foreach (array_keys($tickets) as $i) {
+ if ($limit > 0 && $count++ == $limit) {
+ break;
+ }
+ $description = sprintf(_("Type: %s; State: %s"),
+ $tickets[$i]['type_name'],
+ $tickets[$i]['state_name']);
+
+ $items[$i]['title'] = htmlspecialchars(sprintf('[%s] %s',
+ $tickets[$i]['id'],
+ $tickets[$i]['summary']));
+ $items[$i]['description'] = htmlspecialchars($description);
+ $items[$i]['url'] = Whups::urlFor('ticket', $tickets[$i]['id'], true, -1);
+ $items[$i]['pubDate'] = htmlspecialchars(date('r', $tickets[$i]['timestamp']));
+}
+
+$template = new Horde_Template();
+$template->set('charset', Horde_Nls::getCharset());
+$template->set('xsl', $registry->get('themesuri') . '/feed-rss.xsl');
+$template->set('pubDate', htmlspecialchars(date('r')));
+$template->set('title', _("Search Results"));
+$template->set('items', $items, true);
+$template->set('url', Horde::applicationUrl('search.php'));
+$template->set('rss_url', Horde::selfUrl());
+$template->set('description', _("Search Results"));
+
+$browser->downloadHeaders('search.rss', 'text/xml', true);
+echo $template->fetch(WHUPS_TEMPLATES . '/rss/items.rss');
--- /dev/null
+Deny from all
--- /dev/null
+<form action="<?php echo htmlspecialchars(Horde::selfUrl(false, false)) ?>" method="post" name="matrix">
+<?php Horde_Util::pformInput() ?>
+<input type="hidden" name="formname" value="mtmatrix" />
+
+<h1 class="header">
+ <?php echo _("Queue/Type Matrix") ?>
+</h1>
+
+<table width="100%" cellspacing="0" class="linedRow">
+<!-- Header row of types -->
+ <tr>
+ <th class="control"> </th>
+<?php foreach ($types as $tid => $type): ?>
+ <th class="control" style="text-align:center" valign="bottom"><strong><?php echo Horde::link(Horde_Util::addParameter($tlink, 'type', $tid), $type) . htmlspecialchars($type) ?></a></strong></th>
+<?php endforeach; ?>
+ </tr>
+
+<!-- List each queue once for each type -->
+<?php foreach ($queues as $mid => $queue): $selected = $whups_driver->getTypes($mid); ?>
+ <tr>
+ <td class="rightAlign"><strong><?php echo Horde::link(Horde_Util::addParameter($mlink, 'queue', $mid), $queue) . htmlspecialchars($queue) ?></a></strong> </td>
+<?php foreach ($types as $tid => $type): ?>
+ <td style="text-align:center"><input type="checkbox" class="checkbox" name="matrix[<?php echo (int)$mid ?>][<?php echo (int)$tid ?>]"<?php if (!empty($selected[$tid])) echo ' checked="checked"' ?> /></td>
+<?php endforeach; ?>
+ </tr>
+<?php endforeach; ?>
+</table>
+
+<div><input type="submit" class="button" value="<?php echo _("Update Associations") ?>" /></div>
+
+</form>
--- /dev/null
+<?php
+if (isset($language)) {
+ header('Content-type: text/html; charset=' . Horde_Nls::getCharset());
+ header('Vary: Accept-Language');
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<!-- Whups: Copyright 2002-2009 The Horde Project. Whups is under a Horde license. -->
+<!-- Horde Project: http://www.horde.org/ | Whups: http://www.horde.org/whups/ -->
+<!-- Horde Licenses: http://www.horde.org/licenses/ -->
+<?php echo !empty($language) ? '<html lang="' . strtr($language, '_', '-') . '">' : '<html>' ?>
+<head>
+<?php
+
+$page_title = $GLOBALS['registry']->get('name');
+if (!empty($title)) $page_title .= ' :: ' . $title;
+if (!empty($refresh_time) && !empty($refresh_url)) {
+ echo "<meta http-equiv=\"refresh\" content=\"$refresh_time;url=$refresh_url\" />\n";
+}
+
+Horde::includeScriptFiles();
+
+if (isset($ticket)) {
+ echo '<link rel="alternate" type="application/rss+xml" title="' . htmlspecialchars('[#' . $ticket->getId() . '] ' . $ticket->get('summary')) . '" href="' . Whups::urlFor('ticket_rss', $ticket->getId(), true, -1) . '" />';
+}
+if (isset($whups_query) && isset($whups_query->id)) {
+ echo '<link rel="alternate" type="application/rss+xml" title="' . htmlspecialchars($whups_query->name) . '" href="' . Whups::urlFor('query_rss', empty($whups_query->slug) ? array('id' => $whups_query->id) : array('slug' => $whups_query->slug), true, -1) . '" />';
+}
+
+?>
+<title><?php echo htmlspecialchars($page_title) ?></title>
+<link href="<?php echo $GLOBALS['registry']->getImageDir()?>/favicon.ico" rel="SHORTCUT ICON" />
+<link href="<?php echo Horde::applicationUrl('opensearch.php', true, -1) ?>" rel="search" type="application/opensearchdescription+xml" title="<?php echo $registry->get('name') . ' (' . Horde::applicationUrl('', true) . ')' ?>" />
+<?php Horde::includeStylesheetFiles() ?>
+</head>
+
+<body<?php if ($bc = Horde_Util::nonInputVar('bodyClass')) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
--- /dev/null
+<form name="tjump" method="get" action="<?php echo Horde::applicationUrl('ticket/', false, -1) ?>">
+<?php echo Horde_Util::formInput() ?>
+<div id="menu">
+ <span class="rightFloat">
+ <input type="text" size="8" name="id" value="<?php echo _("#Id") ?>" onfocus="this.value='';" <?php echo Horde::getAccessKeyAndTitle(_("_Go")) ?> /> <input type="submit" onclick="if (!document.tjump.id.value) return false;" class="button" value="<?php echo _("Go") ?>" />
+ </span>
+ <?php echo Whups::getMenu('string') ?>
+ <br class="clear" />
+</div>
+</form>
+<?php echo Horde_Util::nonInputVar('menuBottom'); $GLOBALS['notification']->notify(array('listeners' => 'status')) ?>
--- /dev/null
+<?php
+if ($registry->hasMethod('contacts/sources')) {
+ $selected = explode("\t", $prefs->getValue('search_sources'));
+ $readable = $registry->call('contacts/sources');
+ $writeable = $registry->call('contacts/sources', true);
+
+ $nbReadSources = count(array_keys($readable));
+ $nbWriteSources = count(array_keys($writeable));
+
+ if (count($selected) == 1 && empty($selected[0])) {
+ $selected = array();
+ }
+
+ if ($nbReadSources == 1) {
+ // Only one source, no need to display the selection widget
+ $selected = array_keys($readable);
+ $readSelect = '';
+ }
+
+ $prefSelect = '';
+ foreach ($selected as $source) {
+ if (!empty($readable[$source])) {
+ $prefSelect .= '<option value="' . $source . '">' . $readable[$source] . "</option>\n";
+ }
+ }
+
+ $readSelect = '';
+ if (!is_a($readable, 'PEAR_Error') && is_array($readable)) {
+ foreach (array_diff(array_keys($readable), $selected) as $source) {
+ $readSelect .= '<option value="' . $source . '">' . $readable[$source] . "</option>\n";
+ }
+ }
+
+ if (!is_a($writeable, 'PEAR_Error') && is_array($writeable)) {
+ $writeSelect = '<option value="">' . _("None") . '</option>' . "\n";
+ $writeSource = '';
+ foreach ($writeable as $source => $name) {
+ $sel = $prefs->getValue('add_source') == $source ? ' selected="selected"' : '';
+ $writeSelect .= '<option value="' . $source . '"' . "$sel>" . $name . "</option>\n";
+ $writeSource = $source;
+ }
+ }
+
+ $selected_fields = array();
+ $search_field_pref = $prefs->getValue('search_fields');
+ if (!empty($search_field_pref)) {
+ $selected_fields = explode("\n", $prefs->getValue('search_fields'));
+ foreach ($selected_fields as $field) {
+ $field = trim($field);
+ if (!empty($field)) {
+ $tmp = explode("\t", $field);
+ if (count($tmp) > 1) {
+ $source = array_splice($tmp, 0, 1);
+ $selected_fields[$source[0]] = $tmp;
+ }
+ }
+ }
+ }
+
+ $search_fields = array();
+ if (!is_a($readable, 'PEAR_Error') && is_array($readable)) {
+ foreach (array_keys($readable) as $source) {
+ $search_fields[$source] = $registry->call('contacts/fields', $source);
+ }
+ }
+
+ $js = "var searchFields = [];\n";
+ $source_count = 0;
+ foreach ($search_fields as $source => $fields) {
+ $js .= "searchFields[$source_count] = [];\n";
+ $js .= "searchFields[$source_count][0] = '$source';\n";
+
+ $field_count = 1;
+ foreach ($fields as $field) {
+ if ($field['search']) {
+ $marked = isset($selected_fields[$source]) && in_array($field['name'], $selected_fields[$source]) ? 'true' : 'false';
+ $js .= "searchFields[$source_count][$field_count] = ['" . $field['name'] . "', '" . $field['label'] . "', $marked];\n";
+ $field_count++;
+ }
+ }
+
+ $source_count++;
+ }
+}
+?>
+
+<?php if (!$prefs->isLocked('search_sources') && (!empty($readSelect) || !empty($prefSelect))): ?>
+<script type="text/javascript">
+function deselectHeaders()
+{
+ document.prefs.unselected_search_sources[0].selected = false;
+ document.prefs.selected_search_sources[0].selected = false;
+}
+
+function resetHidden()
+{
+ var tmp = '';
+ for (i = 1; i < document.prefs.selected_search_sources.length; i++) {
+ tmp += document.prefs.selected_search_sources[i].value;
+ if (i < document.prefs.selected_search_sources.length - 1)
+ tmp += "\t";
+ }
+
+ document.prefs.search_sources.value = tmp;
+}
+
+function addSource()
+{
+ for (i = 1; i < document.prefs.unselected_search_sources.length; i++) {
+ if (document.prefs.unselected_search_sources[i].selected) {
+ document.prefs.selected_search_sources[document.prefs.selected_search_sources.length] = new Option(document.prefs.unselected_search_sources[i].text, document.prefs.unselected_search_sources[i].value);
+ document.prefs.unselected_search_sources[i] = null;
+ i--;
+ }
+ }
+
+ resetHidden();
+}
+
+function removeSource()
+{
+ for (i = 1; i < document.prefs.selected_search_sources.length; i++) {
+ if (document.prefs.selected_search_sources[i].selected) {
+ document.prefs.unselected_search_sources[document.prefs.unselected_search_sources.length] = new Option(document.prefs.selected_search_sources[i].text, document.prefs.selected_search_sources[i].value)
+ document.prefs.selected_search_sources[i] = null;
+ i--;
+ }
+ }
+
+ resetHidden();
+}
+
+function moveSourceUp()
+{
+ var sel = document.prefs.selected_search_sources.selectedIndex;
+
+ if (sel == -1 || document.prefs.selected_search_sources.length <= 2) return;
+
+ // deselect everything but the first selected item
+ document.prefs.selected_search_sources.selectedIndex = sel;
+
+ if (sel == 1) {
+ tmp = document.prefs.selected_search_sources[sel];
+ document.prefs.selected_search_sources[sel] = null;
+ document.prefs.selected_search_sources[document.prefs.selected_search_sources.length] = tmp;
+ document.prefs.selected_search_sources.selectedIndex = document.prefs.selected_search_sources.length - 1;
+ } else {
+ tmp = [];
+ for (i = 1; i < document.prefs.selected_search_sources.length; i++) {
+ tmp[i - 1] = new Option(document.prefs.selected_search_sources[i].text, document.prefs.selected_search_sources[i].value)
+ }
+
+ for (i = 0; i < tmp.length; i++) {
+ if (i + 1 == sel - 1) {
+ document.prefs.selected_search_sources[i + 1] = tmp[i + 1];
+ } else if (i + 1 == sel) {
+ document.prefs.selected_search_sources[i + 1] = tmp[i - 1];
+ } else {
+ document.prefs.selected_search_sources[i + 1] = tmp[i];
+ }
+ }
+
+ document.prefs.selected_search_sources.selectedIndex = sel - 1;
+ }
+
+ resetHidden();
+}
+
+function moveSourceDown()
+{
+ var sel = document.prefs.selected_search_sources.selectedIndex;
+
+ if (sel == -1 || document.prefs.selected_search_sources.length <= 2) return;
+
+ // deselect everything but the first selected item
+ document.prefs.selected_search_sources.selectedIndex = sel;
+
+ if (sel == document.prefs.selected_search_sources.length - 1) {
+ tmp = [];
+ for (i = 1; i < document.prefs.selected_search_sources.length; i++) {
+ tmp[i - 1] = new Option(document.prefs.selected_search_sources[i].text, document.prefs.selected_search_sources[i].value)
+ }
+
+ document.prefs.selected_search_sources[1] = tmp[tmp.length - 1];
+ for (i = 0; i < tmp.length - 1; i++) {
+ document.prefs.selected_search_sources[i + 2] = tmp[i];
+ }
+
+ document.prefs.selected_search_sources.selectedIndex = 1;
+ } else {
+ tmp = [];
+ for (i = 1; i < document.prefs.selected_search_sources.length; i++) {
+ tmp[i - 1] = new Option(document.prefs.selected_search_sources[i].text, document.prefs.selected_search_sources[i].value)
+ }
+
+ for (i = 0; i < tmp.length; i++) {
+ if (i + 1 == sel) {
+ document.prefs.selected_search_sources[i + 1] = tmp[i + 1];
+ } else if (i + 1 == sel + 1) {
+ document.prefs.selected_search_sources[i + 1] = tmp[i - 1];
+ } else {
+ document.prefs.selected_search_sources[i + 1] = tmp[i];
+ }
+ }
+
+ document.prefs.selected_search_sources.selectedIndex = sel + 1;
+ }
+
+ resetHidden();
+}
+
+<?php echo $js ?>
+
+var selectedIndex = false;
+var selectedValue = false;
+var nbSources = <?php echo $nbReadSources ?>;
+<?php if ($nbReadSources == 1): ?>
+selectedIndex = 1;
+selectedValue = "<?php echo $selected[0] ?>";
+<?php endif; ?>
+
+function updateSearchFields()
+{
+ var f = document.prefs;
+ <?php if ($nbReadSources > 1): ?>
+ selectedIndex = f.selected_search_sources.selectedIndex;
+ <?php endif; ?>
+ var fieldString = '';
+
+ while (f.search_fields.length > 0) {
+ f.search_fields.options[f.search_fields.length-1] = null;
+ }
+
+ if (selectedIndex < 1) {
+ return;
+ }
+
+ <?php if ($nbReadSources > 1): ?>
+ selectedValue = f.selected_search_sources.options[selectedIndex].value;
+ <?php endif; ?>
+
+ for (var i = 0; i < searchFields.length; i++) {
+ if (i > 0) {
+ fieldString += "\n";
+ }
+ fieldString += searchFields[i][0];
+ for (var j = 1; j < searchFields[i].length; j++) {
+ if (searchFields[i][j][2]) {
+ fieldString += "\t" + searchFields[i][j][0];
+ }
+
+ if (searchFields[i][0] == selectedValue) {
+ f.search_fields.options[f.search_fields.length] = new Option(searchFields[i][j][1], searchFields[i][j][0]);
+ if (searchFields[i][j][2]) {
+ f.search_fields.options[f.search_fields.length - 1].selected = true;
+ }
+ }
+ }
+ }
+
+ f.search_fields_string.value = fieldString;
+}
+
+function changeSearchFields()
+{
+ var f = document.prefs;
+ <?php if ($nbReadSources > 1): ?>
+ selectedIndex = f.selected_search_sources.selectedIndex;
+ selectedValue = f.selected_search_sources.options[selectedIndex].value;
+ <?php endif; ?>
+
+ for (var i = 0; i < searchFields.length; i++) {
+ if (searchFields[i][0] == selectedValue) {
+ for (var j = 1; j < searchFields[i].length; j++) {
+ searchFields[i][j][2] = f.search_fields.options[j - 1].selected;
+ }
+ updateSearchFields();
+ return;
+ }
+ }
+}
+</script>
+
+<br />
+<input type="hidden" name="search_sources" value="<?php echo implode("\t", $selected) ?>" />
+<?php if ($nbReadSources > 1): ?>
+<?php echo _("Choose the order of address books to search when expanding addresses.") ?><br />
+<table>
+ <tr>
+ <td>
+ <label for="unselected_search_sources" class="hidden"><?php echo _("Available Address books:") ?></label>
+ <select id="unselected_search_sources" name="unselected_search_sources" multiple="multiple" size="5" style="width:20em" onchange="deselectHeaders()">
+ <option value=""><?php echo _("Available Address books:") ?></option>
+ <?php echo $readSelect ?>
+ </select>
+ </td>
+ <td>
+ <a href="#" onclick="addSource(); return false;"><?php echo Horde::img(isset($GLOBALS['nls']['rtl'][$GLOBALS['language']]) ? 'lhand.png' : 'rhand.png', _("Add source"), null, $registry->getImageDir('horde')) ?></a>
+ <br />
+ <a href="#" onclick="removeSource(); return false;"><?php echo Horde::img(isset($GLOBALS['nls']['rtl'][$GLOBALS['language']]) ? 'rhand.png' : 'lhand.png', _("Remove source"), null, $registry->getImageDir('horde')) ?></a>
+ </td>
+ <td>
+ <label for="selected_search_sources" class="hidden"><?php echo _("Selected Address books:") ?></label>
+ <select name="selected_search_sources" multiple="multiple" size="5" style="width:20em" onchange="deselectHeaders();updateSearchFields();">
+ <option value=""><?php echo _("Selected Address books:") ?></option>
+ <?php echo $prefSelect ?>
+ </select>
+ </td>
+ <td>
+ <a href="#" onclick="moveSourceUp(); return false;"><?php echo Horde::img('nav/up.png', _("Move up"), null, $registry->getImageDir('horde')) ?></a>
+ <br />
+ <a href="#" onclick="moveSourceDown(); return false;"><?php echo Horde::img('nav/down.png', _("Move down"), null, $registry->getImageDir('horde')) ?></a>
+ </td>
+ </tr>
+</table>
+
+<?php echo _("Click on one of your selected address books and then select all fields to search.") ?><br />
+<?php else: ?>
+<?php echo _("Select all fields to search when expanding addresses.") ?><br />
+<?php endif; ?>
+
+<?php echo _("To select multiple fields, hold down the Control (PC) or Command (Mac) while clicking.") ?><br />
+<input type="hidden" name="search_fields_string" />
+<table>
+ <tr>
+ <td>
+ <label for="search_fields" class="hidden"><?php echo _("Fields to search") ?></label>
+ <select id="search_fields" name="search_fields" multiple="multiple" size="5" style="width:20em" onchange="changeSearchFields()">
+ <option><?php echo str_repeat(' ', 50) ?></option>
+ </select>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+updateSearchFields();
+</script>
+<?php endif; ?>
--- /dev/null
+<?php
+// If we have a saved list of ticket ids in the session, display the prev/next
+// navigation.
+if (!isset($_SESSION['whups']['tickets']) ||
+ !is_array($_SESSION['whups']['tickets']) ||
+ ($list_length = count($_SESSION['whups']['tickets'])) <= 1 ||
+ ($this_ticket = array_search($ticket->getId(), $_SESSION['whups']['tickets'])) === false) {
+ return;
+}
+
+$prevnext_links = array();
+if ($this_ticket != 0) {
+ $prevnext_links[] = Horde::link(
+ Whups::urlFor('ticket',
+ $_SESSION['whups']['tickets'][0]))
+ . htmlspecialchars(_("<<First")) . '</a>';
+ $prevnext_links[] = Horde::link(
+ Whups::urlFor('ticket',
+ $_SESSION['whups']['tickets'][$this_ticket - 1]))
+ . htmlspecialchars(_("<Prev")) . '</a>';
+}
+if ($this_ticket + 1 != $list_length) {
+ $prevnext_links[] = Horde::link(
+ Whups::urlFor('ticket',
+ $_SESSION['whups']['tickets'][$this_ticket + 1]))
+ . htmlspecialchars(_("Next>")) . '</a>';
+ $prevnext_links[] = Horde::link(
+ Whups::urlFor('ticket',
+ $_SESSION['whups']['tickets'][$list_length - 1]))
+ . htmlspecialchars(_("Last>>")) . '</a>';
+}
+$label = _("Re_turn to Search Results");
+$ak = Horde::getAccessKey($label);
+$label = Horde::highlightAccessKey($label, $ak);
+?>
+<div id="searchnav">
+ <p>
+ <strong><?php printf(_("Search Results: %s of %s"), $this_ticket + 1, count($_SESSION['whups']['tickets'])) ?></strong>
+ <small>
+ [ <?php echo implode(' ', $prevnext_links) ?> ]
+ <?php if (!empty($_SESSION['whups']['last_search'])): ?>
+ [ <?php echo Horde::link(Horde_Util::addParameter($_SESSION['whups']['last_search'], 'haveSearch', true), '', '', '', '', '', $ak) . $label ?></a> ]
+ <?php endif; ?>
+ </small>
+ </p>
+</div>
--- /dev/null
+<tr><td class="item1"><table cellspacing="3"><tr><td>
+ <select name="qaction<?php echo $id ?>" onchange="document.<?php echo $formname ?>.submit()">
+<?php foreach ($operations as $value => $name) { ?>
+ <option value="<?php echo $value ?>"><?php echo $name ?></option>
+<?php } ?>
+ </select>
+</td></tr></table></td></tr>
\ No newline at end of file
--- /dev/null
+ <tr><td class="<?php echo $class ?>">
+ <input type="radio" name="path" style="vertical-align: middle;" value="<?php echo $pathstring ?>"<?php echo $extra ?>/>
+ <?php echo $space ?>
+ <span style="vertical-align: middle;"><?php echo $text ?></span>
+ </td></tr>
\ No newline at end of file
--- /dev/null
+<tr class="item0"><td>
+ <table cellspacing="4">
+ <tr class="item0">
+ <td nowrap="nowrap"><strong><?php echo _("Current Ticket Type") ?></strong></td>
+ <td><select name="ttype"><?php echo $droptext ?></select></td>
+ <td><input class="button" type="submit" value="<?php echo _("Change") ?>" /></td>
+ <td width="70%"> </td>
+ </tr>
+ </table>
+</td></tr>
\ No newline at end of file
--- /dev/null
+<h1 class="header"><?php echo _("Ticket Stats") ?></h1>
+<table class="item" width="100%" cellspacing="1">
+ <tr class="item">
+<?php foreach ($stats as $label): ?>
+ <th nowrap="nowrap" align="left"><?php echo $label ?></th>
+<?php endforeach; ?>
+ </tr><tr class="item">
+<?php
+foreach ($stats as $stat => $label):
+ $time = $reporter->getTime($stat, 'type_name');
+ if (is_a($time, 'PEAR_Error')):
+?>
+ <td><?php echo $time->getMessage() ?></td>
+<?php else: ?>
+ <td><?php foreach ($time as $type => $type_time) echo $type . ': ' . sprintf(_("%s days"), $type_time) . '<br />' ?></td>
+<?php endif; endforeach; ?>
+ </tr>
+</table>
--- /dev/null
+<?xml version="1.0" encoding="<tag:charset />"?>
+<?xml-stylesheet href="<tag:xsl />" type="text/xsl"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+ <channel>
+ <title><tag:title /></title>
+ <pubDate><tag:pubDate /></pubDate>
+ <link><tag:url /></link>
+ <atom:link rel="self" type="application/rss+xml" title="<tag:title />" href="<tag:rss_url />" />
+ <description><tag:description /></description>
+
+ <if:items>
+ <loop:items>
+ <item>
+ <title><tag:items.title /></title>
+ <description><tag:items.description /></description>
+ <pubDate><tag:items.pubDate /></pubDate>
+ <link><tag:items.url /></link>
+ </item>
+ </loop:items>
+ </if:items>
+
+ </channel>
+</rss>
--- /dev/null
+<h1 class="header"><?php echo _("Status") ?></h1>
+<div class="rowOdd">
+ <?php printf(_("%d people watching, %d people responsible"),
+ count($whups_driver->getListeners($id, false, false, false)),
+ count($whups_driver->getOwners($id))) ?>
+</div>
+<br class="spacer" />
\ No newline at end of file
--- /dev/null
+<script type="text/javascript">
+var PREFS_UPDATE_TIMEOUT;
+
+function table_sortCallback(tableId, column, sortDown)
+{
+ if (typeof PREFS_UPDATE_TIMEOUT != "undefined") {
+ window.clearTimeout(PREFS_UPDATE_TIMEOUT);
+ }
+
+ PREFS_UPDATE_TIMEOUT = window.setTimeout('doResort("' + column + '", "' + sortDown + '")', 500);
+}
+
+function doResort(column, sortDown)
+{
+ baseurl = '<?php echo addslashes(html_entity_decode($_SESSION['whups']['last_search'])) ?>';
+ try {
+ new Ajax.Request(baseurl, { parameters: { 'sortby': encodeURIComponent(column), sortdir: encodeURIComponent(sortDown) } });
+ } catch (e) {}
+}
+</script>
+
+<table width="100%" cellspacing="0">
+ <tr>
+ <td class="header nowrap"><?php echo $this->_params['title'] . ' (' . count($this->_params['results']) . ')' ?></td>
+ <td class="header nowrap rightAlign"><?php echo isset($this->_params['extra']) ? $this->_params['extra'] : ' ' ?></td>
+ </tr>
+</table>
+<?php if (count($this->_params['results'])): ?>
+<!-- Results Begin -->
+<table class="tickets striped sortable" id="sresults_<?php echo $this->_id ?>" width="100%" cellspacing="0">
+<?php
+ echo '<thead><tr class="item nowrap leftAlign">';
+ foreach ($this->_params['values'] as $name => $value) {
+ if ($sortby == $value) {
+ $class = ' class="' . $sortdirclass . '"';
+ $revurl = Horde_Util::addParameter($this->_params['url'], 'sortdir', ($sortdir ? 0 : 1));
+ $sortlink = Horde::link($revurl, sprintf(_("Sort by %s"), $name), 'sortlink') . $name . '</a> ';
+ } else {
+ $class = '';
+ $url = Horde_Util::addParameter($this->_params['url'], 'sortby', $value);
+ $sortlink = Horde::link($url, sprintf(_("Sort by %s"), $name), 'sortlink') . $name . '</a> ';
+ }
+
+ echo '<th id="' . $value . '"' . $class . '>' . $sortlink . '</th>';
+ }
+ echo '</tr></thead><tbody>';
+
+ foreach ($this->_params['results'] as $info) {
+ echo '<tr>';
+
+ $url = Whups::urlFor('ticket', $info['id']);
+
+ foreach ($this->_params['values'] as $name => $value) {
+ $thevalue = isset($info[$value]) ? $info[$value] : '';
+
+ if ($value == 'timestamp' || substr($value, 0, 5) == 'date_') {
+ $sortval = (strlen($thevalue) ? ' sortval="' . $thevalue . '"' : '');
+ $thevalue = Horde_Form_Type_date::getFormattedTime($thevalue, $prefs->getValue('report_time_format'), false);
+ } elseif ($value == 'user_id_requester') {
+ $thevalue = Whups::formatUser($thevalue, false, true, true);
+ } elseif ($value == 'id' || $value == 'summary') {
+ $sortval = '';
+ $thevalue = Horde::link($url) . '<strong>' . htmlspecialchars($thevalue) . '</strong></a>';
+ } elseif ($value == 'owners') {
+ $sortval = '';
+ if (!empty($info['owners'])) {
+ $owners = array();
+ foreach ($thevalue as $owner) {
+ $owners[] = Whups::formatUser($owner, false);
+ }
+ $thevalue = implode(', ', $owners);
+ }
+ }
+
+ echo '<td' . $sortval . '>' . (strlen($thevalue) ? $thevalue : ' ') . '</td>';
+ }
+
+ echo '</tr>';
+ }
+?>
+</tbody>
+</table>
+<?php if (Horde_Auth::getAuth()): ?>
+<table width="100%" cellspacing="0">
+ <tr>
+ <td class="smallheader nowrap">
+ <form action="<?php echo Horde::downloadUrl('report.html', null, Horde::applicationUrl('data.php')) ?>" method="post" name="datagen">
+ <?php Horde_Util::pformInput() ?>
+ <input type="hidden" name="ids" value="<?php echo implode(',', $ids) ?>" />
+ <?php echo _("Download these results as: ") ?>
+ <select name="template">
+ <?php foreach (Whups::listTemplates('searchresults') as $name => $label): ?>
+ <option value="<?php echo $name ?>"><?php echo htmlspecialchars($label) ?></option>
+ <?php endforeach; ?>
+ </select>
+ <input type="submit" class="button" value="<?php echo _("Save") ?>" />
+ </form>
+ </td>
+ </tr>
+</table>
+<?php endif; endif; ?>
+<!-- Results End -->
+<br class="spacer" />
\ No newline at end of file
--- /dev/null
+<?php if ($header): ?>
+<h1 class="header">
+ <?php echo htmlspecialchars($this->_params['title']); ?>
+</h1>
+<?php endif; ?>
+<table cellspacing="0" class="tickets striped">
+<?php foreach ($this->_params['results'] as $id => $result): ?>
+ <tr><td><?php echo Horde::link(Whups::urlFor('query', empty($result['slug']) ? array('id' => $id) : array('slug' => $result['slug']))) . htmlspecialchars($result['name']) ?></a></td></tr>
+<?php endforeach; ?>
+</table>
--- /dev/null
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rss="http://purl.org/rss/1.0/"
+ xmlns:atom="http://www.w3.org/2005/Atom">
+
+ <xsl:output indent="yes" encoding="UTF-8"/>
+
+ <xsl:template match="/rss|/atom:feed">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="/rss/channel/title"/>
+ </title>
+ <style type="text/css">
+ img {
+ border: 0;
+ padding: 5px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>
+ You're viewing an XML content feed which is
+ intended to be viewed within a feed aggregator.
+ </p>
+
+ <h3>Subscribe to <xsl:value-of select="/rss/channel/title"/></h3>
+
+ <p>
+ Subscribe now in your favorite RSS aggregator:
+ </p>
+
+ <xsl:variable name="resource" select="/rss/channel/atom:link"/>
+
+ <div>
+ <a href="http://www.rojo.com/add-subscription?resource={$resource}">
+ <img src="http://www.rojo.com/skins/static/images/add-to-rojo.gif" alt="Subscribe in Rojo"/>
+ </a>
+
+ <a href="http://add.my.yahoo.com/rss?url={$resource}">
+ <img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" alt="Add to My yahoo" />
+ </a>
+
+ <a href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url={$resource}">
+ <img src="http://www.newsgator.com/images/ngsub1.gif" alt="Subscribe in NewsGator Online"/>
+ </a>
+
+ <a href="http://www.bloglines.com/sub/{$resource}">
+ <img src="http://www.bloglines.com/images/sub_modern5.gif" alt="Subscribe with Bloglines"/>
+ </a>
+
+ <a href="http://fusion.google.com/add?feedurl={$resource}">
+ <img src="http://buttons.googlesyndication.com/fusion/add.gif" alt="Subscribe with Google Reader"/>
+ </a>
+ </div>
+
+ <p>
+ <h3>Preview</h3>
+ </p>
+
+ <xsl:apply-templates select="/rss/channel/item" />
+
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="item">
+ <xsl:variable name="link" select="link"/>
+ <p>
+ <a href="{$link}">
+ <xsl:value-of select="title"/>
+ </a>
+ </p>
+ </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+/**
+ * $Horde: whups/themes/hordeweb/screen.css,v 1.4 2008/04/03 14:47:16 jan Exp $
+ */
+
+#searchnav {
+ background: #cfc;
+ color: #063;
+ border: none;
+ padding: 2px 5px;
+ margin-left: 0;
+ margin-right: 0;
+ -moz-border-radius: 8px;
+ -webkit-border-radius: 8px;
+}
+#searchnav p {
+ background: none;
+}
+
+div#comments {
+ margin: 0;
+}
+
+.c_l, .c_r, .c_m, .c_b {
+ background: #cfc;
+ color: #063;
+ border: 1px solid #cfc;
+}
+.c_l {
+ padding-left: 5px;
+ -moz-border-radius-topleft: 8px;
+ -webkit-border-top-left-radius: 8px;
+}
+.c_r {
+ padding-right: 5px;
+ -moz-border-radius-topright: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+
+table.tickets th {
+ background: #cfc;
+ color: #063;
+}
--- /dev/null
+/**
+ * $Horde: whups/themes/screen.css,v 1.17 2008/08/05 22:37:34 bklang Exp $
+ */
+
+del {
+ background: transparent;
+}
+
+#searchnav {
+ border: 1px solid #ccc;
+ padding: 2px;
+ margin: 8px;
+}
+#searchnav p {
+ margin: 0;
+ background: #e9e9e9;
+}
+
+.query {
+ background: #cdcdcd;
+}
+
+div#comments {
+ margin: .5em;
+}
+div#comments div {
+ margin-top: .4em;
+}
+.comment-body {
+ background: #fff;
+ color: #000;
+ padding: 1em;
+ font-size: 100%;
+ font-family: "Lucida Console",Courier,"Courier New";
+}
+.pc_l {
+ background: #eee;
+ border-left: 8px solid #900;
+ border-top: 2px solid #900;
+}
+.pc_r {
+ background: #eee;
+ border-right: 8px solid #900;
+ border-top: 2px solid #900;
+}
+.pc_m {
+ background: #eee;
+ border-top: 2px solid #900;
+}
+.pc_b {
+ background: #eee;
+ border-left: 8px solid #900;
+ border-right: 8px solid #900;
+ border-bottom: 2px solid #900;
+}
+.c_l {
+ background: #eee;
+ border-left: 8px solid #ccc;
+ border-top: 2px solid #ccc;
+}
+.c_r {
+ background: #eee;
+ border-right: 8px solid #ccc;
+ border-top: 2px solid #ccc;
+}
+.c_m {
+ background: #eee;
+ border-top: 2px solid #ccc;
+}
+.c_b {
+ background: #eee;
+ border-left: 8px solid #ccc;
+ border-right: 8px solid #ccc;
+ border-bottom: 2px solid #ccc;
+}
+
+/* Search result tables */
+table.tickets {
+ width: 100%;
+ /* width: 99%;
+ margin: 0 0 8px 5px; */
+ border-top: 1px solid #ddd;
+ border-left: 1px solid #ddd;
+}
+table.tickets th {
+ padding: 3px;
+ background: #e9e9e9;
+ border-right: 1px solid #ccc;
+ text-align: left;
+}
+table.tickets td {
+ padding: 3px;
+ border-right: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+}
+table.tickets th.sortup {
+ background: #bbcbff url("graphics/za.png") center left no-repeat;
+ padding-left: 10px;
+}
+table.tickets th.sortdown {
+ background: #bbcbff url("graphics/az.png") center left no-repeat;
+ padding-left: 10px;
+}
+
+/* Autocomplete styles. */
+.autocomplete {
+ background: #f4f4f4;
+ border: 1px solid #d4d4d4;
+ position: absolute;
+ padding: 2px 2px 2px 2px;
+}
+.autocomplete ul {
+ margin: 1px;
+ padding: 1px;
+ list-style-type: none;
+}
+.autocomplete ul li {
+ padding-top: 3px;
+ padding-bottom: 3px;
+ cursor: pointer;
+ text-decoration: underline;
+ font-size: 90%;
+ color: #000;
+}
+.autocomplete ul .selected {
+ background: gray;
+ color: #fff;
+}
--- /dev/null
+/**
+ * $Horde: whups/themes/silver/screen.css,v 1.1 2008/03/27 17:45:34 jan Exp $
+ */
+
+table.tickets th.sortup {
+ background: #ccc url("graphics/za.png") center left no-repeat;
+}
+table.tickets th.sortdown {
+ background: #ccc url("graphics/az.png") center left no-repeat;
+}
--- /dev/null
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^([0-9]+)$ index.php?id=$1 [QSA,L]
+ RewriteRule ^([0-9]+)/rss/?$ rss.php?id=$1 [QSA,L]
+ RewriteRule ^([0-9]+)/([a-z]+)(\.php)?$ $2.php?id=$1 [QSA,L]
+</IfModule>
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/comment.php,v 1.32 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+require_once WHUPS_BASE . '/lib/Forms/AddComment.php';
+
+$ticket = Whups::getCurrentTicket();
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($ticket->getDetails() as $varname => $value) {
+ $vars->add($varname, $value);
+}
+if ($tid = $vars->get('transaction')) {
+ $history = Whups::permissionsFilter($whups_driver->getHistory($ticket->getId()),
+ 'comment', Horde_Perms::READ);
+ if (!empty($history[$tid]['comment'])) {
+ $private = false;
+ foreach ($history[$tid]['changes'] as $change) {
+ if (!empty($change['private'])) {
+ if (!$GLOBALS['perms']->hasPermission('whups:comments:' . $change['value'], Horde_Auth::getAuth(), Horde_Perms::READ)) {
+ $private = true;
+ break;
+ }
+ }
+ }
+
+ if (!$private) {
+ $flowed = new Horde_Text_Flowed(preg_replace("/\s*\n/U", "\n", $history[$tid]['comment']));
+ $vars->set('newcomment', $flowed->toFlowed(true));
+ }
+ }
+}
+
+$title = sprintf(_("Comment on %s"), '[#' . $id . '] ' . $ticket->get('summary'));
+$commentForm = new AddCommentForm($vars, $title);
+if ($vars->get('formname') == 'addcommentform' && $commentForm->validate($vars)) {
+ $commentForm->getInfo($vars, $info);
+
+ // Add comment.
+ if (!empty($info['newcomment'])) {
+ $ticket->change('comment', $info['newcomment']);
+ }
+
+ if (!empty($info['user_email'])) {
+ $ticket->change('comment-email', $info['user_email']);
+ }
+
+ // Add attachment if one was uploaded.
+ if (!empty($info['newattachment']['name'])) {
+ $ticket->change('attachment', array('name' => $info['newattachment']['name'],
+ 'tmp_name' => $info['newattachment']['tmp_name']));
+ }
+
+ // Add watch
+ if (!empty($info['add_watch'])) {
+ $whups_driver->addListener($ticket->getId(), '**' . $info['user_email']);
+ }
+
+ // If there was a new comment and permissions were specified on
+ // it, set them.
+ if (!empty($info['group'])) {
+ $ticket->change('comment-perms', $info['group']);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(_("Comment added"), 'horde.success');
+ $ticket->show();
+ }
+}
+
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('comment');
+
+$commentForm->renderActive(new Horde_Form_Renderer(), $vars, 'comment.php', 'post');
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/create.php,v 1.31 2009/07/08 18:30:08 slusarz Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Forms/CreateTicket.php';
+require_once WHUPS_BASE . '/lib/Forms/VarRenderer.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+$empty = '';
+$beendone = 0;
+$wereerrors = 0;
+
+$vars = Horde_Variables::getDefaultVariables($empty);
+$formname = $vars->get('formname');
+
+$form1 = new CreateStep1Form($vars);
+$form2 = new CreateStep2Form($vars);
+$form3 = new CreateStep3Form($vars);
+$form4 = new CreateStep4Form($vars);
+$r = new Horde_Form_Renderer(
+ array('varrenderer_driver' => 'whups'));
+
+$valid4 = $form4->validate($vars) &&
+ $vars->get('formname') == 'createstep4form';
+$valid3 = $form3->validate($vars, true);
+$valid2 = $form2->validate($vars, !$form1->isSubmitted());
+$valid1 = $form1->validate($vars, true);
+$doAssignForm = Horde_Auth::getAuth() &&
+ $whups_driver->isCategory('assigned', $vars->get('state'));
+
+if ($valid1 && $valid2 && $valid3 &&
+ // Don't validate the assignment form if it isn't being used.
+ (!$doAssignForm || $valid4)) {
+
+ $form1->getInfo($vars, $info);
+ $form2->getInfo($vars, $info);
+ $form3->getInfo($vars, $info);
+ if ($doAssignForm) {
+ $form4->getInfo($vars, $info);
+ }
+
+ $ticket = Whups_Ticket::newTicket($info, Horde_Auth::getAuth());
+ if (is_a($ticket, 'PEAR_Error')) {
+ Horde::logMessage($ticket, __FILE__, __LINE__, PEAR_LOG_ERR);
+ $notification->push(sprintf(_("Adding your ticket failed: %s."),
+ $ticket->getMessage()),
+ 'horde.error');
+ header('Location: ' . Horde::applicationUrl('ticket/create.php', true));
+ } else {
+ $notification->push(sprintf(_("Your ticket ID is %s. An appropriate person has been notified of this request."), $ticket->getId()), 'horde.success');
+ $ticket->show();
+ }
+ exit;
+}
+
+// Start the page.
+$title = _("New Ticket");
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+
+if ($valid3 && $valid2 && $valid1) {
+ $form4->open($r, $vars, 'create.php', 'post');
+
+ // Preserve previous forms.
+ $form1->preserve($vars);
+ $r->_name = $form1->getName();
+ $r->beginInactive($form1->getTitle());
+ $r->renderFormInactive($form1, $vars);
+ $r->end();
+ echo '<br />';
+
+ $form2->preserve($vars);
+ $r->_name = $form2->getName();
+ $r->beginInactive($form2->getTitle());
+ $r->renderFormInactive($form2, $vars);
+ $r->end();
+ echo '<br />';
+
+ $form3->preserve($vars);
+ $r->_name = $form3->getName();
+ $r->beginInactive($form3->getTitle());
+ $r->renderFormInactive($form3, $vars);
+ $r->end();
+ echo '<br />';
+
+ // Preserve an uploaded file if there was one.
+ $form3->getInfo($vars, $info);
+ if (!empty($info['newattachment']['name'])) {
+ $file_name = $info['newattachment']['name'];
+
+ $tmp_file_path = tempnam(Horde::getTempDir(), 'att');
+ if (move_uploaded_file($info['newattachment']['tmp_name'],
+ $tmp_file_path)) {
+ $_SESSION['whups']['deferred_attachment'][$file_name] =
+ $tmp_file_path;
+ $vars->set('deferred_attachment', $file_name);
+ $form3->preserveVarByPost($vars, 'deferred_attachment');
+ }
+ }
+
+ // Render the 4th stage form.
+ if ($formname != 'createstep4form') {
+ $form4->clearValidation();
+ }
+ $r->_name = $form4->getName();
+ $r->beginActive($form4->getTitle());
+ $r->renderFormActive($form4, $vars);
+ $r->submit();
+ $r->end();
+ $form3->close($r);
+
+ $beendone = 1;
+} elseif ($valid2 && $valid1) {
+ $form3->open($r, $vars, 'create.php', 'post');
+
+ // Render the stage 1 form readonly.
+ $form1->preserve($vars);
+ $r->beginInactive($form1->getTitle());
+ $r->renderFormInactive($form1, $vars);
+ $r->end();
+ echo '<br />';
+
+ // Render the stage 2 form readonly.
+ $form2->preserve($vars);
+ $r->beginInactive($form2->getTitle());
+ $r->renderFormInactive($form2, $vars);
+ $r->end();
+ echo '<br />';
+
+ // Render the third stage form.
+ if ($formname != 'createstep3form') {
+ $form3->clearValidation();
+ }
+ $r->beginActive($form3->getTitle());
+ $r->renderFormActive($form3, $vars);
+ $r->submit(_("Submit"), true);
+ $r->end();
+
+ $form3->close($r);
+
+ $beendone = 1;
+} else {
+ if ($valid1) {
+ $form2->open($r, $vars, 'create.php', 'post');
+
+ // Render the original form readonly.
+ $form1->preserve($vars);
+ $r->beginInactive($form1->getTitle());
+ $r->renderFormInactive($form1, $vars);
+ $r->end();
+ echo '<br />';
+
+ // Render the second stage form.
+ if ($formname != 'createstep2form') {
+ $form2->clearValidation();
+ }
+ $r->beginActive($form2->getTitle());
+ $r->renderFormActive($form2, $vars);
+ $r->submit();
+ $r->end();
+
+ $form2->close($r);
+
+ $beendone = 1;
+ } else {
+ if ($formname != 'createstep1form') {
+ $form1->clearValidation();
+ }
+ $form1->open($r, $vars, 'create.php', 'post');
+ $r->beginActive($form1->getTitle());
+ $r->renderFormActive($form1, $vars);
+ $r->submit();
+ $r->end();
+ $form1->close($r);
+ }
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * Displays and handles the form to delete a ticket.
+ *
+ * $Horde: whups/ticket/delete.php,v 1.27 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+class DeleteTicketForm extends Horde_Form {
+
+ var $_queue;
+
+ function DeleteTicketForm(&$vars, $title = '')
+ {
+ parent::Horde_Form($vars, $title, 'deleteticketform');
+
+ $info = $GLOBALS['whups_driver']->getTicketDetails($vars->get('id'));
+ $this->_queue = $info['queue'];
+ $this->addHidden('', 'id', 'int', true, true);
+ $summary = &$this->addVariable(_("Summary"), 'summary', 'text', false,
+ true);
+ $summary->setDefault($info['summary']);
+ $yesno = array(0 => _("No"), 1 => _("Yes"));
+ $this->addVariable(_("Really delete this ticket? It will NOT be archived, and will be gone forever."), 'yesno', 'enum', true, false, null, array($yesno));
+ }
+
+ function validate(&$vars)
+ {
+ if (!Whups::hasPermission($this->_queue, 'queue', Horde_Perms::DELETE)) {
+ $this->setError('yesno', _("Permission Denied."));
+ }
+
+ return parent::validate($vars);
+ }
+
+}
+
+$ticket = Whups::getCurrentTicket();
+$details = $ticket->getDetails();
+if (!Whups::hasPermission($details['queue'], 'queue', Horde_Perms::DELETE)) {
+ $notification->push(_("Permission Denied"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($details as $varname => $value) {
+ $vars->add($varname, $value);
+}
+$title = sprintf(_("Delete %s?"), '[#' . $id . '] ' . $ticket->get('summary'));
+$deleteform = new DeleteTicketForm($vars, $title);
+
+if ($vars->get('formname') == 'deleteticketform') {
+ if ($deleteform->validate($vars)) {
+ if ($vars->get('yesno') == 1) {
+ $deleteform->getInfo($vars, $info);
+ $result = $whups_driver->deleteTicket($info);
+
+ if (!is_a($result, 'PEAR_Error')) {
+ $notification->push(sprintf(_("Ticket %d has been deleted."), $info['id']), 'horde.success');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+ } else {
+ $notification->push(_("There was an error deleting the ticket:") . ' ' . $result->getMessage(), 'horde.error');
+ }
+ } else {
+ $notification->push(_("The ticket was not deleted."), 'horde.message');
+ }
+ }
+}
+
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('delete');
+
+$deleteform->renderActive($deleteform->getRenderer(), $vars, 'delete.php', 'post');
+echo '<br />';
+
+$form = new TicketDetailsForm($vars, $ticket);
+$ticket->setDetails($vars);
+
+$r = $form->getRenderer();
+$r->beginInactive($title);
+$r->renderFormInactive($form, $vars);
+$r->end();
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * Displays and handles the form to delete an attachment from the ticket.
+ *
+ * $Horde: whups/ticket/deleteAttachment.php,v 1.10 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+$ticket = Whups::getCurrentTicket();
+if (!Whups::hasPermission($ticket->get('queue'), 'queue', Horde_Perms::DELETE)) {
+ $notification->push(_("Permission Denied"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+$file = basename(Horde_Util::getFormData('file'));
+$ticket->change('delete-attachment', $file);
+$result = $ticket->commit();
+if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+} else {
+ $notification->push(sprintf(_("Attachment %s deleted."), $file), 'horde.success');
+}
+
+if ($url = Horde_Util::getFormData('url')) {
+ header('Location: ' . $url);
+} else {
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+}
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/index.php,v 1.39 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+require_once WHUPS_BASE . '/lib/Renderer/Comment.php';
+
+$ticket = Whups::getCurrentTicket();
+$vars = Horde_Variables::getDefaultVariables();
+$ticket->setDetails($vars);
+
+$title = '[#' . $ticket->getId() . '] ' . $ticket->get('summary');
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $ticket->getId());
+echo $tabs->render('history');
+
+$form = new TicketDetailsForm($vars, $ticket);
+
+$renderer = $form->getRenderer();
+$renderer->_name = $form->getName();
+$renderer->beginInactive($title);
+$renderer->renderFormInactive($form, $vars);
+$renderer->end();
+
+echo '<br class="spacer" />';
+
+$comment = new Horde_Form_Renderer_Comment();
+$comment->begin(_("History"));
+$history = Whups::permissionsFilter($whups_driver->getHistory($ticket->getId()),
+ 'comment', Horde_Perms::READ);
+$chtml = array();
+foreach ($history as $transaction => $comment_values) {
+ $chtml[] = $comment->render($transaction, new Horde_Variables($comment_values));
+}
+if ($prefs->getValue('comment_sort_dir')) {
+ $chtml = array_reverse($chtml);
+}
+echo implode('', $chtml);
+$comment->end();
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * Displays and handles the form to move a ticket to a different queue.
+ *
+ * $Horde: whups/ticket/queue.php,v 1.33 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+/**
+ * Queue editing forms.
+ */
+class SetQueueStep1Form extends Horde_Form {
+
+ function SetQueueStep1Form(&$vars, $title = '')
+ {
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+
+ /* Queues. */
+ $this->addVariable(
+ _("New Queue"), 'queue', 'enum', true, false, null,
+ array(Whups::permissionsFilter($GLOBALS['whups_driver']->getQueues(),
+ 'queue', Horde_Perms::EDIT)));
+ $this->addVariable(_("Comment"), 'newcomment', 'longtext', false);
+
+ /* Group restrictions. */
+ if (Horde_Auth::isAdmin('whups:admin', Horde_Perms::EDIT) ||
+ $GLOBALS['perms']->hasPermission('whups:hiddenComments',
+ Horde_Auth::getAuth(), Horde_Perms::EDIT)) {
+ $groups = &Group::singleton();
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ if ($mygroups) {
+ foreach (array_keys($mygroups) as $gid) {
+ $grouplist[$gid] = $groups->getGroupName($gid, true);
+ }
+ asort($grouplist);
+ $grouplist = array_merge(array(0 => _("Any Group")),
+ $grouplist);
+ $this->addVariable(_("Viewable only by members of"), 'group',
+ 'enum', true, false, null,
+ array($grouplist));
+ }
+ }
+ }
+
+}
+
+class SetQueueStep2Form extends Horde_Form {
+
+ function SetQueueStep2Form(&$vars, $title = '')
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addHidden('', 'group', 'int', false, true);
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addHidden('', 'newcomment', 'longtext', false, true);
+
+ /* Give the user an opportunity to check that type, version,
+ * etc. are still valid. */
+ $queue = $vars->get('queue');
+
+ $info = $whups_driver->getQueue($queue);
+ if (!empty($info['versioned'])) {
+ $versions = $whups_driver->getVersions($vars->get('queue'));
+ if (count($versions) == 0) {
+ $vtype = 'invalid';
+ $v_params = array(_("This queue requires that you specify a version, but there are no versions associated with it. Until versions are created for this queue, you will not be able to create tickets."));
+ } else {
+ $vtype = 'enum';
+ $v_params = array($versions);
+ }
+ $this->addVariable(_("Queue Version"), 'version', $vtype, true, false, null, $v_params);
+ }
+
+ $this->addVariable(_("Type"), 'type', 'enum', true, false, null, array($whups_driver->getTypes($queue)));
+ }
+
+}
+
+class SetQueueStep3Form extends Horde_Form {
+
+ function SetQueueStep3Form(&$vars, $title = '')
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addHidden('', 'group', 'int', false, true);
+ $this->addHidden('', 'queue', 'int', true, true);
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'newcomment', 'longtext', false, true);
+
+ $info = $whups_driver->getQueue($vars->get('queue'));
+ if (!empty($info['versioned'])) {
+ $this->addHidden('', 'version', 'int', true, true);
+ }
+
+ /* Give user an opportunity to check that state and priority
+ * are still valid. */
+ $type = $vars->get('type');
+ $this->addVariable(_("State"), 'state', 'enum', true, false, null, array($whups_driver->getStates($type)));
+ $this->addVariable(_("Priority"), 'priority', 'enum', true, false, null, array($whups_driver->getPriorities($type)));
+ }
+
+}
+
+$ticket = Whups::getCurrentTicket();
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($ticket->getDetails() as $varname => $value) {
+ $vars->add($varname, $value);
+}
+
+// Check permissions on this ticket.
+if (!Whups::hasPermission($ticket->get('queue'), 'queue', Horde_Perms::DELETE)) {
+ $notification->push(_("Permission Denied"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+$form = $vars->get('formname');
+$action = '';
+
+if ($form == 'setqueuestep1form') {
+ $setqueueform = new SetQueueStep1Form($vars);
+ if ($setqueueform->validate($vars)) {
+ $action = 'sq2';
+ }
+}
+
+if ($form == 'setqueuestep2form') {
+ $setqueueform = new SetQueueStep2Form($vars);
+ if ($setqueueform->validate($vars)) {
+ $action = 'sq3';
+ } else {
+ $action = 'sq2';
+ }
+}
+
+if ($form == 'setqueuestep3form') {
+ $smform3 = new SetQueueStep3Form($vars);
+ if ($smform3->validate($vars)) {
+ $smform3->getInfo($vars, $info);
+
+ $ticket->change('queue', $info['queue']);
+ $ticket->change('type', $info['type']);
+ $ticket->change('state', $info['state']);
+ $ticket->change('priority', $info['priority']);
+
+ if (!empty($info['version'])) {
+ $ticket->change('version', $info['version']);
+ }
+
+ if (!empty($info['newcomment'])) {
+ $ticket->change('comment', $info['newcomment']);
+ }
+
+ if (!empty($info['group'])) {
+ $ticket->change('comment-perms', $info['group']);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(sprintf(_("Moved ticket %d to \"%s\""), $id, $ticket->get('queue_name')), 'horde.success');
+ $ticket->show();
+ }
+ } else {
+ $action = 'sq3';
+ }
+}
+
+$title = sprintf(_("Set Queue for %s"), '[#' . $id . '] ' . $ticket->get('summary'));
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('queue');
+
+$r = new Horde_Form_Renderer();
+
+switch ($action) {
+case 'sq2':
+ $form1 = new SetQueueStep1Form($vars, _("Set Queue - Step 1"));
+ $form2 = new SetQueueStep2Form($vars, _("Set Queue - Step 2"));
+
+ $form1->renderInactive($r, $vars);
+ echo '<br />';
+ $form2->renderActive($r, $vars, 'queue.php', 'post');
+ break;
+
+case 'sq3':
+ $form1 = new SetQueueStep1Form($vars, _("Set Queue - Step 1"));
+ $form2 = new SetQueueStep2Form($vars, _("Set Queue - Step 2"));
+ $form3 = new SetQueueStep3Form($vars, _("Set Queue - Step 3"));
+
+ $form1->renderInactive($r, $vars);
+ echo '<br />';
+ $form2->renderInactive($r, $vars);
+ echo '<br />';
+ $form3->renderActive($r, $vars, 'queue.php', 'post');
+ break;
+
+default:
+ $form1 = new SetQueueStep1Form($vars, _("Set Queue - Step 1"));
+ $form1->renderActive($r, $vars, 'queue.php', 'post');
+ break;
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/rss.php,v 1.16 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once 'Horde/Template.php';
+
+$ticket = Horde_Util::getFormData('id');
+$ticket = preg_replace('|\D|', '', $ticket);
+if (!$ticket) {
+ exit;
+}
+
+// Get the ticket details first.
+$details = $whups_driver->getTicketDetails($ticket);
+if (is_a($details, 'PEAR_Error')) {
+ exit;
+}
+
+// Check permissions on this ticket.
+if (!count(Whups::permissionsFilter(array($details['queue'] => ''), 'queue', Horde_Perms::READ))) {
+ exit;
+}
+
+$history = Whups::permissionsFilter($whups_driver->getHistory($ticket),
+ 'comment', Horde_Perms::READ);
+$items = array();
+$self = Whups::urlFor('ticket', $ticket, true, -1);
+foreach (array_keys($history) as $i) {
+ if (!isset($history[$i]['comment_text'])) {
+ continue;
+ }
+ $items[$i]['title'] = htmlspecialchars(substr($history[$i]['comment_text'], 0, 60));
+ $items[$i]['description'] = htmlspecialchars($history[$i]['comment_text']);
+ $items[$i]['pubDate'] = htmlspecialchars(date('r', $history[$i]['timestamp']));
+ $items[$i]['url'] = $self . '#t' . $i;
+}
+
+$template = new Horde_Template();
+$template->set('charset', Horde_Nls::getCharset());
+$template->set('xsl', $registry->get('themesuri') . '/feed-rss.xsl');
+$template->set('pubDate', htmlspecialchars(date('r')));
+$template->set('title', htmlspecialchars($details['summary']));
+$template->set('items', $items, true);
+$template->set('url', Whups::urlFor('ticket', $ticket, true));
+$template->set('rss_url', Whups::urlFor('ticket_rss', $ticket, true));
+$template->set('description', htmlspecialchars($details['summary']));
+
+$browser->downloadHeaders($details['summary'] . '.rss',
+ 'text/xml', true);
+echo $template->fetch(WHUPS_TEMPLATES . '/rss/items.rss');
--- /dev/null
+<?php
+/**
+ * Displays and handles the form to change the ticket type.
+ *
+ * $Horde: whups/ticket/type.php,v 1.27 2009/07/08 18:30:08 slusarz Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+class SetTypeStep1Form extends Horde_Form {
+
+ function SetTypeStep1Form(&$vars, $title = '')
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+
+ /* Types */
+ $queue = $vars->get('queue');
+ $this->addVariable(_("New Type"), 'type', 'enum', true, false, null, array($whups_driver->getTypes($queue)));
+ $this->addVariable(_("Comment"), 'newcomment', 'longtext', false);
+
+ /* Group restrictions. */
+ $groups = &Group::singleton();
+ $mygroups = $groups->getGroupMemberships(Horde_Auth::getAuth());
+ if ($mygroups) {
+ foreach (array_keys($mygroups) as $gid) {
+ $grouplist[$gid] = $groups->getGroupName($gid, true);
+ }
+ asort($grouplist);
+ $grouplist = array_merge(array(0 => _("Any Group")), $grouplist);
+ $this->addVariable(_("Viewable only by members of"), 'group', 'enum', true, false, null, array($grouplist));
+ }
+ }
+
+}
+
+class SetTypeStep2Form extends Horde_Form {
+
+ function SetTypeStep2Form(&$vars, $title = '')
+ {
+ global $whups_driver;
+
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addHidden('', 'group', 'int', false, false);
+ $this->addHidden('', 'type', 'int', true, true);
+ $this->addHidden('', 'newcomment', 'longtext', false, true);
+
+ /* Give user an opportunity to check that state and priority
+ * are still valid. */
+ $type = $vars->get('type');
+ $this->addVariable(_("State"), 'state', 'enum', true, false, null, array($whups_driver->getStates($type)));
+ $this->addVariable(_("Priority"), 'priority', 'enum', true, false, null, array($whups_driver->getPriorities($type)));
+ }
+
+}
+
+$ticket = Whups::getCurrentTicket();
+$details = $ticket->getDetails();
+if (!Whups::hasPermission($details['queue'], 'queue', 'update')) {
+ $notification->push(_("Permission Denied"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($ticket->getDetails() as $varname => $value) {
+ $vars->add($varname, $value);
+}
+$action = $vars->get('action');
+$form = $vars->get('formname');
+
+/* Set Type action. */
+if ($form == 'settypestep1form') {
+ $settypeform = new SetTypeStep1Form($vars);
+ if ($settypeform->validate($vars)) {
+ $action = 'st2';
+ } else {
+ $action = 'st';
+ }
+}
+
+if ($form == 'settypestep2form') {
+ $settypeform = new SetTypeStep2Form($vars);
+ if ($settypeform->validate($vars)) {
+ $settypeform->getInfo($vars, $info);
+
+ $ticket->change('type', $info['type']);
+ $ticket->change('state', $info['state']);
+ $ticket->change('priority', $info['priority']);
+
+ if (!empty($info['newcomment'])) {
+ $ticket->change('comment', $info['newcomment']);
+ }
+
+ if (!empty($info['group'])) {
+ $ticket->change('comment-perms', $info['group']);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(_("Successfully changed ticket type."), 'horde.success');
+ $ticket->show();
+ }
+ } else {
+ $notification->push(var_export($settypeform->_errors), 'horde.error');
+ $action = 'st2';
+ }
+}
+
+$title = sprintf(_("Set Type for %s"), '[#' . $id . '] ' . $ticket->get('summary'));
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('type');
+
+$r = new Horde_Form_Renderer();
+
+switch ($action) {
+case 'st2':
+ $form1 = new SetTypeStep1Form($vars, _("Set Type - Step 1"));
+ $form2 = new SetTypeStep2Form($vars, _("Set Type - Step 2"));
+
+ $form1->renderInactive($r, $vars);
+ echo '<br />';
+ $form2->renderActive($r, $vars, 'type.php', 'post');
+ break;
+
+default:
+ $form1 = new SetTypeStep1Form($vars, _("Set Type - Step 1"));
+ $form1->renderActive($r, $vars, 'type.php', 'post');
+ break;
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/update.php,v 1.46 2009-11-27 02:48:40 mrubinsk Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+require_once WHUPS_BASE . '/lib/Forms/EditTicket.php';
+
+$ticket = Whups::getCurrentTicket();
+
+if (!Whups::hasPermission($ticket->get('queue'), 'queue', 'update')) {
+ $notification->push(_("Permission Denied"), 'horde.error');
+ header('Location: ' . Horde::applicationUrl($prefs->getValue('whups_default_view') . '.php', true));
+ exit;
+}
+
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($ticket->getDetails() as $varname => $value) {
+ $vars->add($varname, $value);
+}
+if ($tid = $vars->get('transaction')) {
+ $history = Whups::permissionsFilter($whups_driver->getHistory($ticket->getId()),
+ 'comment', Horde_Perms::READ);
+ if (!empty($history[$tid]['comment'])) {
+ // If this was a restricted comment, load the group_id it was
+ // restricted to and default to keeping that restriction on
+ // the reply.
+ foreach ($history[$tid]['changes'] as $change) {
+ if (!empty($change['private'])) {
+ $permission = $GLOBALS['perms']->getPermission('whups:comments:' . $change['value']);
+ if (!is_a($permission, 'PEAR_Error')) {
+ $group_id = array_shift(array_keys($permission->getGroupPermissions()));
+ $vars->set('group', $group_id);
+ }
+ break;
+ }
+ }
+
+ $flowed = new Horde_Text_Flowed(preg_replace("/\s*\n/U", "\n", $history[$tid]['comment']));
+ $vars->set('newcomment', $flowed->toFlowed(true));
+ }
+}
+
+// Edit action.
+if ($vars->get('formname') == 'editticketform') {
+ $editform = new EditTicketForm($vars, $ticket);
+ if ($editform->validate($vars)) {
+ $editform->getInfo($vars, $info);
+
+ $ticket->change('summary', $info['summary']);
+ $ticket->change('state', $info['state']);
+ $ticket->change('priority', $info['priority']);
+ $ticket->change('due', $info['due']);
+ if (!empty($info['version'])) {
+ $ticket->change('version', $info['version']);
+ }
+ if (!empty($info['newcomment'])) {
+ $ticket->change('comment', $info['newcomment']);
+ }
+
+ // Update user and group assignments.
+ if (Whups::hasPermission($vars->get('queue'), 'queue', 'assign')) {
+ $ticket->change('owners', array_merge(isset($info['owners']) ? $info['owners'] : array(),
+ isset($info['group_owners']) ? $info['group_owners'] : array()));
+ }
+
+ // Update attributes.
+ $whups_driver->setAttributes($info, $ticket);
+
+ // Add attachment if one was uploaded.
+ if (!empty($info['newattachment']['name'])) {
+ $ticket->change('attachment', array('name' => $info['newattachment']['name'],
+ 'tmp_name' => $info['newattachment']['tmp_name']));
+ }
+
+ // If there was a new comment and permissions were specified
+ // on it, set them.
+ if (!empty($info['group'])) {
+ $ticket->change('comment-perms', $info['group']);
+ }
+
+ $result = $ticket->commit();
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(_("Ticket Updated"), 'horde.success');
+ $ticket->show();
+ }
+ }
+}
+
+$title = '[#' . $id . '] ' . $ticket->get('summary');
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('update');
+
+$form = new EditTicketForm($vars, $ticket, sprintf(_("Update %s"), $title));
+$form->renderActive($form->getRenderer(), $vars, 'update.php', 'post');
+echo '<br class="spacer" />';
+
+$form = new TicketDetailsForm($vars, $ticket, $title);
+$ticket->setDetails($vars);
+$form->renderInactive($form->getRenderer(), $vars);
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/ticket/watch.php,v 1.16 2009/07/01 18:30:21 selsky Exp $
+ *
+ * Copyright 2001-2002 Robert E. Coyle <robertecoyle@hotmail.com>
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ */
+
+@define('WHUPS_BASE', dirname(__FILE__) . '/..');
+require_once WHUPS_BASE . '/lib/base.php';
+require_once WHUPS_BASE . '/lib/Ticket.php';
+
+class AddListenerForm extends Horde_Form {
+
+ function AddListenerForm(&$vars, $title = '')
+ {
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addVariable(_("Email address to notify"), 'add_listener', 'email', true);
+ }
+
+}
+
+class DeleteListenerForm extends Horde_Form {
+
+ function DeleteListenerForm(&$vars, $title = '')
+ {
+ parent::Horde_Form($vars, $title);
+
+ $this->addHidden('', 'id', 'int', true, true);
+ $this->addVariable(_("Email address to remove"), 'del_listener', 'email', true);
+ }
+
+}
+
+$ticket = Whups::getCurrentTicket();
+$vars = Horde_Variables::getDefaultVariables();
+$vars->set('id', $id = $ticket->getId());
+foreach ($ticket->getDetails() as $varname => $value) {
+ $vars->add($varname, $value);
+}
+
+$addform = new AddListenerForm($vars, _("Add Watcher"));
+$delform = new DeleteListenerForm($vars, _("Remove Watcher"));
+
+if ($vars->get('formname') == 'addlistenerform') {
+ if ($addform->validate($vars)) {
+ $addform->getInfo($vars, $info);
+
+ $result = $whups_driver->addListener($id, '**' . $info['add_listener']);
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $ticket->notify($info['add_listener'], false, array('**' . $info['add_listener']));
+ $notification->push(sprintf(_("%s will be notified when this ticket is updated."), $info['add_listener']), 'horde.success');
+ $ticket->show();
+ }
+ }
+} elseif ($vars->get('formname') == 'deletelistenerform') {
+ if ($delform->validate($vars)) {
+ $delform->getInfo($vars, $info);
+
+ $result = $whups_driver->deleteListener($id, '**' . $info['del_listener']);
+ if (is_a($result, 'PEAR_Error')) {
+ $notification->push($result, 'horde.error');
+ } else {
+ $notification->push(sprintf(_("%s will no longer receive updates for this ticket."), $info['del_listener']), 'horde.success');
+ $ticket->show();
+ }
+ }
+}
+
+$title = sprintf(_("Watchers for %s"), '[#' . $id . '] ' . $ticket->get('summary'));
+require WHUPS_TEMPLATES . '/common-header.inc';
+require WHUPS_TEMPLATES . '/menu.inc';
+require WHUPS_TEMPLATES . '/prevnext.inc';
+
+$tabs = Whups::getTicketTabs($vars, $id);
+echo $tabs->render('watch');
+
+require WHUPS_TEMPLATES . '/ticket/watchers.inc';
+
+$r = new Horde_Form_Renderer();
+
+$addform->renderActive($r, $vars, 'watch.php', 'post');
+echo '<br class="spacer" />';
+
+$delform->renderActive($r, $vars, 'watch.php', 'post');
+echo '<br class="spacer" />';
+
+$form = new TicketDetailsForm($vars, $ticket, '[#' . $id . '] ' . $ticket->get('summary'));
+$ticket->setDetails($vars);
+$form->renderInactive($form->getRenderer(), $vars);
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+<?php
+/**
+ * $Horde: whups/view.php,v 1.33 2009-11-27 02:48:39 mrubinsk Exp $
+ *
+ * Copyright 2003-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file LICENSE for license information (BSD). If you
+ * did not receive this file, see http://www.horde.org/licenses/bsdl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+define('WHUPS_BASE', dirname(__FILE__));
+require_once WHUPS_BASE . '/lib/base.php';
+
+$actionID = Horde_Util::getFormData('actionID');
+$id = Horde_Util::getFormData('ticket');
+$filename = Horde_Util::getFormData('file');
+$type = Horde_Util::getFormData('type');
+
+// Get the ticket details first.
+if (empty($id)) {
+ exit;
+}
+$details = $whups_driver->getTicketDetails($id);
+if (is_a($details, 'PEAR_Error')) {
+ if ($details->code === 0) {
+ // No permissions to this ticket.
+ $url = Horde::url($registry->get('webroot', 'horde') . '/login.php', true);
+ $url = Horde_Util::addParameter($url, 'url', Horde::selfUrl(true));
+ header('Location: ' . $url);
+ exit;
+ } else {
+ Horde::fatal($details->getMessage(), __FILE__, __LINE__);
+ }
+}
+
+// Check permissions on this ticket.
+if (!count(Whups::permissionsFilter($whups_driver->getHistory($id), 'comment', Horde_Perms::READ))) {
+ Horde::fatal(sprintf(_("You are not allowed to view ticket %d."), $id), __FILE__, __LINE__);
+}
+
+if (empty($conf['vfs']['type'])) {
+ Horde::fatal(_("The VFS backend needs to be configured to enable attachment uploads."), __FILE__, __LINE__);
+}
+
+require_once 'VFS.php';
+$vfs = VFS::factory($conf['vfs']['type'], Horde::getDriverConfig('vfs'));
+if (is_a($vfs, 'PEAR_Error')) {
+ Horde::fatal($vfs, __FILE__, __LINE__);
+} else {
+ $data = $vfs->read(WHUPS_VFS_ATTACH_PATH . '/' . $id, $filename);
+}
+if (is_a($data, 'PEAR_Error')) {
+ Horde::fatal(sprintf(_("Access denied to %s"), $filename), __FILE__, __LINE__);
+}
+
+/* Run through action handlers */
+switch ($actionID) {
+case 'download_file':
+ $browser->downloadHeaders($filename, null, false, strlen($data));
+ echo $data;
+ exit;
+
+case 'view_file':
+ $mime_part = new Horde_Mime_Part();
+ $mime_part->setType(Horde_Mime_Magic::extToMime($type));
+ $mime_part->setContents($data);
+ $mime_part->setName($filename);
+
+ $viewer = Horde_Mime_Viewer::factory($mime_part);
+
+ $ret = $viewer->render('full');
+ reset($ret);
+ $key = key($ret);
+
+ if (strpos($ret[$key]['type'], 'text/html') !== false) {
+ require WHUPS_BASE . '/templates/common-header.inc';
+ echo $ret[$key]['data'];
+ require $registry->get('templates', 'horde') . '/common-footer.inc';
+ } else {
+ $browser->downloadHeaders($ret[$key]['name'], $ret[$key]['type'], true, strlen($ret[$key]['data']));
+ echo $ret[$key]['data'];
+ }
+ exit;
+}