From: Michael M Slusarz Date: Sat, 25 Jul 2009 20:22:08 +0000 (-0600) Subject: Import nag from CVS HEAD X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=9cd8bf7a40411347cf2b363a35cb3392d3b88d09;p=horde.git Import nag from CVS HEAD --- diff --git a/.gitignore b/.gitignore index ccc4a102c..243f3580e 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,5 @@ imp/config/*.txt ingo/config/*.php jeta/config/*.php kronolith/config/*.php +nag/config/*.php turba/config/*.php diff --git a/nag/COPYING b/nag/COPYING new file mode 100644 index 000000000..a6b67561a --- /dev/null +++ b/nag/COPYING @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/nag/README b/nag/README new file mode 100644 index 000000000..69ed6ea4b --- /dev/null +++ b/nag/README @@ -0,0 +1,88 @@ +What is Nag? +============ + +:Last update: $Date: 2005/08/23 09:54:40 $ +:Revision: $Revision: 1.10 $ +:Contact: nag@lists.horde.org + +.. contents:: Contents +.. section-numbering:: + +Nag is the Horde task list application. It stores todo items, things due +later this week, etc. It is very similar in functionality to the Palm ToDo +application. + +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/ + + +Obtaining Nag +------------- + +Further information on Nag and the latest version can be obtained at + + http://www.horde.org/nag/ + + +Documentation +------------- + +The following documentation is available in the Nag distribution: + +:README_: This file +:COPYING_: Copyright and license information +:`docs/CHANGES`_: Changes by release +:`docs/CREDITS`_: Project developers +:`docs/INSTALL`_: Installation instructions and notes +:`docs/TODO`_: Development TODO list +:`docs/UPGRADING`_: Pointers on upgrading from previous Nag versions + + +Installation +------------ + +Instructions for installing Nag can be found in the file INSTALL_ in the +``docs/`` directory of the Nag distribution. + + +Assistance +---------- + +If you encounter problems with Nag, 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 COPYING_ in the +Nag distribution. + +Thanks, + +The Horde team + + +.. _README: ?f=README.html +.. _COPYING: http://www.horde.org/licenses/gpl.php +.. _docs/CHANGES: ?f=CHANGES.html +.. _docs/CREDITS: ?f=CREDITS.html +.. _INSTALL: +.. _docs/INSTALL: ?f=INSTALL.html +.. _docs/TODO: ?f=TODO.html +.. _docs/UPGRADING: ?f=UPGRADING.html diff --git a/nag/config/.htaccess b/nag/config/.htaccess new file mode 100644 index 000000000..3a4288278 --- /dev/null +++ b/nag/config/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/nag/config/conf.xml b/nag/config/conf.xml new file mode 100644 index 000000000..5098eddec --- /dev/null +++ b/nag/config/conf.xml @@ -0,0 +1,33 @@ + + + + + Storage System Settings + + sql + + + + nag_tasks + + + + + + + + + Menu settings + + true + true + + + + + + + diff --git a/nag/config/hooks.php.dist b/nag/config/hooks.php.dist new file mode 100644 index 000000000..cf9e0b261 --- /dev/null +++ b/nag/config/hooks.php.dist @@ -0,0 +1,26 @@ +\0', $text); +// $text = preg_replace('/(bug|ticket|request|enhancement|issue):\s*#?(\d+)/i', '\0', $text); +// +// $text = preg_replace_callback('/\[\[note: ?(.*)\]\]/i', create_function('$m', 'return \'\' . htmlspecialchars($m[0]) . \'\';'), $text); +// $text = preg_replace_callback('/\[\[task: ?(.*)\]\]/i', create_function('$m', 'return \'\' . htmlspecialchars($m[0]) . \'\';'), $text); +// +// return $text; +// } +// } + +// if (!function_exists('_nag_hook_description_help')) { +// function _nag_hook_description_help() +// { +// return '

To create a link to a bug, use #123 where 123 is the bug number. To create a link to another task, use [[task: name]], where name is the beginning of the task name. To create a link to a note, use [[note: title]] where title is the beginning of the note title.

'; +// } +// } diff --git a/nag/config/menu.php.dist b/nag/config/menu.php.dist new file mode 100644 index 000000000..1e96670cd --- /dev/null +++ b/nag/config/menu.php.dist @@ -0,0 +1,41 @@ + 'http://www.example.com/', + * 'text' => 'Example, Inc.', + * 'icon' => 'example.png', + * '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'; + * + * $Id$ + */ + +$_menu = array(); + +/* Add your custom entries below this line. */ diff --git a/nag/config/prefs.php.dist b/nag/config/prefs.php.dist new file mode 100644 index 000000000..65968d4b0 --- /dev/null +++ b/nag/config/prefs.php.dist @@ -0,0 +1,238 @@ + _("General Options"), + 'label' => _("Display Options"), + 'desc' => _("Change your task sorting and display options."), + 'members' => array('tasklist_columns', 'sortby', 'altsortby', 'sortdir'), +); + +$prefGroups['deletion'] = array( + 'column' => _("General Options"), + 'label' => _("Delete Confirmation"), + 'desc' => _("Delete button behaviour"), + 'members' => array('delete_opt'), +); + +$prefGroups['tasks'] = array( + 'column' => _("General Options"), + 'label' => _("Task Defaults"), + 'desc' => _("Defaults for new tasks"), + 'members' => array('default_due', 'default_due_days', 'defaultduetimeselect'), +); + +$prefGroups['share'] = array( + 'column' => _("Task List and Share Options"), + 'label' => _("Default Task List"), + 'desc' => _("Choose your default task list."), + 'members' => array('tasklistselect'), +); + +$prefGroups['notification'] = array( + 'column' => _("Task List and Share Options"), + 'label' => _("Notifications"), + 'desc' => _("Choose if you want to be notified of task changes and task alarms."), + 'members' => array('task_notification'), +); +if (!empty($GLOBALS['conf']['alarms']['driver'])) { + $prefGroups['notification']['members'][] = 'task_alarms'; +} + +$_show_external = array(); +if ($GLOBALS['registry']->hasMethod('getListTypes', 'whups')) { + $_show_external['whups'] = $GLOBALS['registry']->get('name', 'whups'); +} +if (count($_show_external)) { + $prefGroups['external'] = array( + 'column' => _("Task List and Share Options"), + 'label' => _("External Data"), + 'desc' => _("Show data from other applications or sources."), + 'members' => array('show_external'), + ); +} + +// columns in the list view +$_prefs['tasklist_columns'] = array( + 'value' => 'a:3:{i:0;s:8:"priority";i:1;s:3:"due";i:2;s:8:"category";}', + 'locked' => false, + 'shared' => false, + 'type' => 'multienum', + 'enum' => array('tasklist' => _("Task List"), + 'priority' => _("Priority"), + 'assignee' => _("Assignee"), + 'due' => _("Due Date"), + 'estimate' => _("Estimated Time"), + 'category' => _("Category")), + 'desc' => _("Select the columns that should be shown in the list view:") +); + +// show the task list options panel? +// a value of 0 = no, 1 = yes +$_prefs['show_panel'] = array( + 'value' => 1, + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', +); + +// user preferred sorting column +$_prefs['sortby'] = array( + 'value' => Nag::SORT_PRIORITY, + 'locked' => false, + 'shared' => false, + 'type' => 'enum', + 'enum' => array(Nag::SORT_PRIORITY => _("Priority"), + Nag::SORT_NAME => _("Task Name"), + Nag::SORT_CATEGORY => _("Category"), + Nag::SORT_DUE => _("Due Date"), + Nag::SORT_COMPLETION => _("Completed?"), + Nag::SORT_ESTIMATE => _("Estimated Time"), + Nag::SORT_ASSIGNEE => _("Assignee"), + Nag::SORT_OWNER => _("Task List")), + 'desc' => _("Sort tasks by:"), +); + +// alternate sort column +$_prefs['altsortby'] = array( + 'value' => Nag::SORT_CATEGORY, + 'locked' => false, + 'shared' => false, + 'type' => 'enum', + 'enum' => array(Nag::SORT_PRIORITY => _("Priority"), + Nag::SORT_NAME => _("Task Name"), + Nag::SORT_CATEGORY => _("Category"), + Nag::SORT_DUE => _("Due Date"), + Nag::SORT_COMPLETION => _("Completed?"), + Nag::SORT_ESTIMATE => _("Estimated Time"), + Nag::SORT_ASSIGNEE => _("Assignee"), + Nag::SORT_OWNER => _("Task List")), + 'desc' => _("Then:"), +); + +// user preferred sorting direction +$_prefs['sortdir'] = array( + 'value' => Nag::SORT_ASCEND, + 'locked' => false, + 'shared' => false, + 'type' => 'enum', + 'enum' => array(Nag::SORT_ASCEND => _("Ascending"), + Nag::SORT_DESCEND => _("Descending")), + 'desc' => _("Sort direction:"), +); + +// preference for delete confirmation dialog. +$_prefs['delete_opt'] = array( + 'value' => 1, + 'locked' => false, + 'shared' => false, + 'type' => 'checkbox', + 'desc' => _("Do you want to confirm deleting entries?"), +); + +// default to tasks having a due date? +$_prefs['default_due'] = array( + 'value' => 0, + 'locked' => false, + 'shared' => false, + 'type' => 'checkbox', + 'desc' => _("When creating a new task, should it default to having a due date?"), +); + +// default number of days out for due dates +$_prefs['default_due_days'] = array( + 'value' => 1, + 'locked' => false, + 'shared' => false, + 'type' => 'number', + 'desc' => _("When creating a new task, how many days in the future should the default due date be (0 means today)?"), +); + +// default due time +$_prefs['default_due_time'] = array( + 'value' => 'now', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', +); + +// default due time selection widget +$_prefs['defaultduetimeselect'] = array('type' => 'special'); + +// new task notifications +$_prefs['task_notification'] = array( + 'value' => '', + 'locked' => false, + 'shared' => false, + 'type' => 'enum', + 'enum' => array('' => _("No"), + 'owner' => _("On my task lists only"), + 'show' => _("On all shown task lists"), + 'read' => _("On all task lists I have read access to")), + 'desc' => _("Choose if you want to be notified of new, edited, and deleted tasks by email:"), +); + +// alarm methods +$_prefs['task_alarms'] = array( + 'value' => 'a:1:{s:6:"notify";a:0:{}}', + 'locked' => false, + 'shared' => false, + 'type' => 'alarm', + 'desc' => _("Choose how you want to receive reminders for tasks with alarms:"), +); + +// show data from other applications that can be listed as tasks? +if (count($_show_external)) { + $_prefs['show_external'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'multienum', + 'enum' => $_show_external, + 'desc' => _("Show data from any of these other applications in your task list?"), + ); +} + +// show complete/incomplete tasks? +$_prefs['show_completed'] = array( + 'value' => 1, + 'locked' => false, + 'shared' => false, + 'type' => 'enum', + 'enum' => array(1 => _("All tasks"), + 0 => _("Incomplete tasks"), + 2 => _("Complete tasks")), + 'desc' => _("Show complete, incomplete, or all tasks in the task list?"), +); + +// user task categories +$_prefs['task_categories'] = array( + 'value' => '', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit' +); + +// default task list selection widget +$_prefs['tasklistselect'] = array('type' => 'special'); + +// default tasklists +// Set locked to true if you don't want users to have multiple task lists. +$_prefs['default_tasklist'] = array( + 'value' => Horde_Auth::getAuth() ? Horde_Auth::getAuth() : 0, + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', +); + +// store the task lists to diplay +$_prefs['display_tasklists'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', +); diff --git a/nag/data.php b/nag/data.php new file mode 100644 index 000000000..aeafac77f --- /dev/null +++ b/nag/data.php @@ -0,0 +1,232 @@ + + */ + +function _cleanup() +{ + global $import_step; + $import_step = 1; + return Horde_Data::IMPORT_FILE; +} + +require_once dirname(__FILE__) . '/lib/base.php'; + +if (!$conf['menu']['import_export']) { + require NAG_BASE . '/index.php'; + exit; +} + +/* Importable file types. */ +$file_types = array('csv' => _("CSV"), + 'vtodo' => _("iCalendar (vTodo)")); + +/* Templates for the different import steps. */ +$templates = array( + Horde_Data::IMPORT_CSV => array($registry->get('templates', 'horde') . '/data/csvinfo.inc'), + Horde_Data::IMPORT_MAPPED => array($registry->get('templates', 'horde') . '/data/csvmap.inc'), + Horde_Data::IMPORT_DATETIME => array($registry->get('templates', 'horde') . '/data/datemap.inc') +); +if (Nag::hasPermission('max_tasks') !== true && + Nag::hasPermission('max_tasks') <= Nag::countTasks()) { + $message = @htmlspecialchars(sprintf(_("You are not allowed to create more than %d tasks."), Nag::hasPermission('max_tasks')), ENT_COMPAT, Horde_Nls::getCharset()); + if (!empty($conf['hooks']['permsdenied'])) { + $message = Horde::callHook('_perms_hook_denied', array('nag:max_tasks'), 'horde', $message); + } + $notification->push($message, 'horde.warning', array('content.raw')); + $templates[Horde_Data::IMPORT_FILE] = array(NAG_TEMPLATES . '/data/export.inc'); +} else { + $templates[Horde_Data::IMPORT_FILE] = array(NAG_TEMPLATES . '/data/import.inc', NAG_TEMPLATES . '/data/export.inc'); +} + +/* Field/clear name mapping. */ +$app_fields = array( + 'name' => _("Name"), + 'desc' => _("Description"), + 'category' => _("Category"), + 'assignee' => _("Assignee"), + 'due' => _("Due By"), + 'alarm' => _("Alarm"), + 'start' => _("Start"), + 'priority' => _("Priority"), + 'private' => _("Private Task"), + 'estimate' => _("Estimated Time"), + 'completed' => _("Completion Status"), + 'completed_date' => _("Completion Date"), + 'uid' => _("Unique ID") +); + +/* Date/time fields. */ +$time_fields = array('due' => 'datetime'); + +/* Initial values. */ +$param = array('time_fields' => $time_fields, + 'file_types' => $file_types); +$import_format = Horde_Util::getFormData('import_format', ''); +$import_step = Horde_Util::getFormData('import_step', 0) + 1; +$next_step = Horde_Data::IMPORT_FILE; +$actionID = Horde_Util::getFormData('actionID'); +$error = false; + +/* Loop through the action handlers. */ +switch ($actionID) { +case 'export': + $exportID = Horde_Util::getFormData('exportID'); + $tasklists = Horde_Util::getFormData('exportList', $display_tasklists); + if (!is_array($tasklists)) { + $tasklists = array($tasklists); + } + + /* Get the full, sorted task list. */ + $tasks = Nag::listTasks(null, null, null, $tasklists, + Horde_Util::getFormData('exportTasks')); + if (is_a($tasks, 'PEAR_Error')) { + $notification->push($tasks); + $error = true; + } elseif (!$tasks->hasTasks()) { + $notification->push(_("There were no tasks to export."), 'horde.message'); + $error = true; + } else { + $tasks->reset(); + switch ($exportID) { + case Horde_Data::EXPORT_CSV: + $data = array(); + while ($task = $tasks->each()) { + $task = $task->toHash(); + unset($task['task_id']); + $task['desc'] = str_replace(',', '', $task['desc']); + unset($task['tasklist_id']); + unset($task['parent']); + unset($task['view_link']); + unset($task['complete_link']); + unset($task['edit_link']); + unset($task['delete_link']); + $data[] = $task; + } + $csv = Horde_Data::singleton('csv'); + $csv->exportFile(_("tasks.csv"), $data, true); + exit; + + case Horde_Data::EXPORT_ICALENDAR: + require_once NAG_BASE . '/lib/version.php'; + $iCal = new Horde_iCalendar(); + $iCal->setAttribute( + 'PRODID', + '-//The Horde Project//Nag ' . NAG_VERSION . '//EN'); + while ($task = $tasks->each()) { + $iCal->addComponent($task->toiCalendar($iCal)); + } + $data = $iCal->exportvCalendar(); + $browser->downloadHeaders(_("tasks.ics"), 'text/calendar', false, strlen($data)); + echo $data; + exit; + } + } + break; + +case Horde_Data::IMPORT_FILE: + $_SESSION['import_data']['target'] = Horde_Util::getFormData('tasklist_target'); + break; +} + +if (!$error) { + $data = Horde_Data::singleton($import_format); + if (is_a($data, 'PEAR_Error')) { + $notification->push(_("This file format is not supported."), 'horde.error'); + $next_step = Horde_Data::IMPORT_FILE; + } else { + $next_step = $data->nextStep($actionID, $param); + if (is_a($next_step, 'PEAR_Error')) { + $notification->push($next_step->getMessage(), 'horde.error'); + $next_step = $data->cleanup(); + } + } +} + +/* We have a final result set. */ +if (is_array($next_step)) { + /* Create a category manager. */ + require_once 'Horde/Prefs/CategoryManager.php'; + $cManager = new Prefs_CategoryManager(); + $categories = $cManager->get(); + + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($_SESSION['import_data']['target']); + $max_tasks = Nag::hasPermission('max_tasks'); + $num_tasks = Nag::countTasks(); + $result = null; + foreach ($next_step as $row) { + if ($max_tasks !== true && $num_tasks >= $max_tasks) { + $message = @htmlspecialchars(sprintf(_("You are not allowed to create more than %d tasks."), Nag::hasPermission('max_tasks')), ENT_COMPAT, Horde_Nls::getCharset()); + if (!empty($conf['hooks']['permsdenied'])) { + $message = Horde::callHook('_perms_hook_denied', array('nag:max_tasks'), 'horde', $message); + } + $notification->push($message, 'horde.error', array('content.raw')); + break; + } + + if (!is_array($row)) { + if (!is_a($row, 'Horde_iCalendar_vtodo')) { + continue; + } + $task = new Nag_Task(); + $task->fromiCalendar($row); + $row = $task->toHash(); + foreach ($app_fields as $field => $null) { + if (!isset($row[$field])) { + $row[$field] = ''; + } + } + } + + $result = $storage->add($row['name'], $row['desc'], $row['start'], + $row['due'], $row['priority'], + $row['estimate'], $row['completed'], + $row['category'], $row['alarm'], $row['uid'], + isset($row['parent']) ? $row['parent'] : '', + $row['private'], Horde_Auth::getAuth(), + $row['assignee']); + if (is_a($result, 'PEAR_Error')) { + break; + } + + if (!empty($row['category']) && + !in_array($row['category'], $categories)) { + $cManager->add($row['category']); + $categories[] = $row['category']; + } + + $num_tasks++; + } + + + if (!count($next_step)) { + $notification->push(sprintf(_("The %s file didn't contain any tasks."), + $file_types[$_SESSION['import_data']['format']]), 'horde.error'); + } elseif (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf(_("There was an error importing the data: %s"), + $result->getMessage()), 'horde.error'); + } else { + $notification->push(sprintf(_("%s successfully imported"), + $file_types[$_SESSION['import_data']['format']]), 'horde.success'); + } + $next_step = $data->cleanup(); +} + +$title = _("Import/Export Tasks"); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; + +foreach ($templates[$next_step] as $template) { + require $template; + echo '
'; +} + +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/docs/CHANGES b/nag/docs/CHANGES new file mode 100644 index 000000000..3da593b43 --- /dev/null +++ b/nag/docs/CHANGES @@ -0,0 +1,487 @@ +-------- +v3.0-git +-------- + +[cjh] Quick Add support: there is a javascript UI element for quickly adding + tasks, and an API method (tasks/quickAdd) that provides the same + functionality. +[jan] Add individual notification methods for single tasks (Alfonso Marín + Marín ). + + +---------- +v2.3.3-cvs +---------- + +[jan] Show application name as task list name when listing external tasks. +[jan] Fix importing vTodo data including more iCalendar components. + + +------ +v2.3.2 +------ + +[jan] Don't allow to set alarms if no due date has been set. +[cjh] Work around BC break with Horde versions before 3.2 (Bug #7820). +[cjh] Add URL access to tasks by "starts-with" search on the task name. +[cjh] Add hooks for altering the displayed task description and showing help + text next to the task description entry field. +[cjh] Add estimated time to the fields available in the task list. +[jan] Fix link escaping in notification messages (Alfonso Marín Marín + , Bug #7509). + + +------ +v2.3.1 +------ + +[cjh] Add a PostgreSQL-specific upgrade script for 2.2 to 2.3. +[cjh] Fix fatal error when completing tasks (Bug #7400). +[mms] Upgrade prototype.js to v1.6.0.3. + + +---- +v2.3 +---- + +[jan] Change group field in shares table to work with LDAP groups (Bug #6883). +[jan] Log completion date if adding a completed task (Bug #7275). +[jan] Fix user name conversion with user hooks in the task list panel + (Bug #7366). +[jan] Fix displayed WebDAV subscription URLs in the task list manager. + + +-------- +v2.3-RC1 +-------- + +[jan] Log moving of tasks in the history backend (Bug #3207). +[jan] Fix deleting all tasks over WebDAV (Bug #7004). +[jan] Add Estonian translation (Alar Sing ). +[jan] Send a more detailed notification message and use the recipient's + preferred language and date/time format after a task has changed. +[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV + ). +[jan] Fix task relationship getting lost when importing tasks + (tkrah@fachschaft.imn.htwk-leipzig.de, bb.apc.ag, Bug #6770). +[jan] Add preference to set columns for the list view. +[jan] Allow to set task assignee. +[jan] Add options to export screen for choosing task lists and task states. +[mjr] Remove user permissions on all shares when deleting a user. +[mjr] Fix issue with removeUserData api that caused the deleted user's task list + to not be deleted (Bug #6969). + + +---- +v2.2 +---- + +[cjh] Improve resource usage in datatree_to_sql share migration script + (Bug #6740). +[jan] Allow to import all fields that can be exported. +[cjh] Fix displayed WebDAV subscription URLs in the panel (Bug #6709). + + +-------- +v2.2-RC3 +-------- + +[bak] Move tasklists into per-owner subdirectories when viewed through WebDAV. + (Request #6595) +[cjh] Apply fix for http://dev.rubyonrails.org/ticket/11473 to prototype.js + (Request #6590). +[cjh] Add an upgrade script for the new SQL share driver (Request #6109). +[jan] Correctly determine default task list in the API (SyncML, WebDAV). +[cjh] Show who created or made the last change to a task along with the date + (Request #6305). +[jan] Add Turkish translation (METU ). + + +-------- +v2.2-RC2 +-------- + +[jan] SECURITY: Fix privilege escalation in Horde API. +[cjh] SECURITY: Fix missing ownership validation on share changes. +[cjh] Fix sorting tasks by Task list. +[jan] Fix tasks losing their parent task when being completed (Bug #6035). +[cjh] Add the ability to filter the list of task lists in the panel. +[cjh] New share management UI that doesn't require JavaScript. +[jan] Fix 2006-04-18_add_creator_and_assignee_fields.php upgrade script. + + +-------- +v2.2-RC1 +-------- + +[jan] Implement WebDAV access. +[jan] Add exportTasklist() API method. +[jan] Add SQL upgrade script. +[jan] Show estimated time including sub-tasks. +[cjh] Fix generation of UIDs with PHP 5.2+. + + +---------- +v2.2-ALPHA +---------- + +[cjh] Add preferences for turning due dates on by default, setting the + default due date's number of days in the future, and setting the + default due date's time. +[cjh] Add vCalendar 2.0 alarm export (munzli@olmero.ch, Bug #4851). +[jan] Add sub-tasks. +[jan] Add start dates for tasks. +[jan] Add support for the Horde_Alarm framework (requires Horde 3.2). +[cjh] Default to a javascript quick search, if available, with options + for the full search and a direct link to full search if javascript + is unavailable. +[cjh] Allow explicitly searching All, Incomplete, or Completed tasks + (Request #4222). +[cjh] Allow configuring the tasklists that the task summary block shows, + and let the user set a title for the block to differentiate multiple + instances (Request #2388). +[cjh] Show task description tooltips in the task summary block (Request #3444). +[cjh] Store completion date and add history entries for task completion. +[cjh] Move tasklist selection/deselection to a collapsible panel. +[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines. + (Request #4080) +[cjh] Allow using the checkboxes to mark tasks as incomplete as well + as complete (michael.sheldon@credativ.de, Request #4250). +[cjh] Sort date fields correctly with JS table sorting. +[jan] Add private flag. +[jan] Add a field for estimated time being spent on a task. +[mdj] Add support for split read/write database. +[mdj] Add failover support for SQL backend. +[cjh] Add a tree block for showing current alarms. + + +------ +v2.1.4 +------ + +[jan] SECURITY: Fix privilege escalation in Horde API. +[cjh] SECURITY: Fix missing ownership validation on share changes. +[cjh] Send iCalendar data as UTF-8. + + +------ +v2.1.3 +------ + +[jan] Show alarms for overdue tasks too. +[jan] Add Catalan translation (Jordi Giralt ). + + +------ +v2.1.2 +------ + +[jan] Show error message if imported file didn't contain tasks. +[jan] Add categories from imported contacts to the user's categories. +[jan] Fix import of CSV data. +[jan] Add Slovenian translation (Duck ). +[jan] Show personal tasklist by default with disabled preferences (Bug #4078). + + +------ +v2.1.1 +------ + +[jan] Only load completed/incomplete tasks from backend where sufficient + (Request #2387). +[jan] Don't show tooltips for tasks without read permissions (Bug #3836). +[jan] Fix fatal error when dealing with very old tasks that don't have a UID + yet (Bug #3818). +[jan] Add 1.1 to 2.x upgrade script for Oracle. + + +---- +v2.1 +---- + +[ben] Better support for MS-SQL. + + +-------- +v2.1-RC1 +-------- + +[jan] Add Portuguese translation (Manuel Menezes de Sequeira + ). +[jan] Add preference to send email notifications to users when tasks have + been added, edited, or deleted in their calendars (kevin_myer@iu13.org, + Request #2332). +[jan] Confirm task deletions (Request #1155). +[jan] Add CLI script to import vTodo data. +[cjh] Add support for dynamic re-sorting of the task list, including saving + the sort preferences on any changes. +[cjh] Deprecate the DataTree tasks driver. +[cjh] Make the completed checkbox in task view functional + (martin@mein-horde.de, Bug #2157). +[mas] Change any output of and tags to and for better + accessibility support. +[jan] Add permissions to restrict number of tasks. +[jan] Add print view to task list (kevin_myer@iu13.org, Bug #1875). +[cjh] Add ics.php, which can be used for integration with Sunbird, + iCal, et. al. +[jan] Show category colors in portal block (Brandon Knitter + , Bug #1126). + + +------ +v2.0.4 +------ + +[cjh] Close several XSS vulnerabilities with task and tasklist data. + + +------ +v2.0.3 +------ + +[jan] Allow to import more than one task from vTodo data at once. + + +------ +v2.0.2 +------ + +[cjh] Add a PostgreSQL upgrade script (Bug #1780). +[cjh] Use bind variables in the SQL driver (selsky@columbia.edu, Bug #1681). +[cjh] Fix problem where you couldn't select any tasklists once you'd + deselected all of them. +[jan] Add shortcut icon (favicon.ico). +[jan] Fix warnings if no tasks to export exist. +[jan] Fix CSV imports (Bug #1387). +[cjh] Allow hiding the Task List column in the List view. + + +------ +v2.0.1 +------ + +[jan] Allow to select the "Unfiled" category in the portal block (Mathieu + Clabaut , Bug #1237). +[cjh] Don't highlight the New Task menu item when editing tasks. +[cjh] Use a checkbox for editing completed/incomplete in the task + edit view, to match the list view (Bug #1212). +[jan] Fix print button. +[jan] Add Japanese translation (Hiromi Kimura ). + + +---- +v2.0 +---- + +[cjh] UIDs need to be stored in the History system with a nag: prefix and + with the tasklist_id so as not to confuse different instances of the + same task (if two users both have a task on their seperate tasklists, + they should have unique histories for that task). +[jan] Fix upgrade script to create unique IDs. + + +-------- +v2.0-RC3 +-------- + +[jan] Add Polish translation (Piotr Kuczynski ). +[cjh] Add My Tasklists menu entry. + + +-------- +v2.0-RC2 +-------- + +[jan] Add Latvian translation (Janis Eisaks ). + + +-------- +v2.0-RC1 +-------- + +[jan] Tweak layout of the summary block. + + +--------- +v2.0-BETA +--------- + +[jan] Add special black-on-white styles for message printing. +[cjh] Users can now specify a secondary sort column + (Andrew Coleman ). +[cjh] Preserve searches while re-sorting (Francois Marier ). +[jan] Add access keys. +[cjh] Add Kolab drivers (Stuart Bingë ). + + +---------- +v2.0-ALPHA +---------- + +[cjh] GUIDs now only contain nag: and the task ID - sharename is not needed. +[cjh] Task IDs are now 32-character unique strings, to be useable as GUIDs. + The SQL table definition has changed; conversion scripts are in scripts/. +[jan] Add Indonesian language (Slamin ). +[cjh] Add import and export in vTodo (iCalendar) format. +[cjh] Make sure that the correct categories for a task's current tasklist + are always used. +[cjh] Track addition, modification, and deletion of tasks + with the Horde History:: API. +[cjh] Change how tasks are stored in the SQL driver. scripts/create_sequence.php + will update an existing database with no loss of data. +[cjh] Show tooltips containing task descriptions. +[cjh] Add a preference for the default category + (Brian Keifer ). +[cjh] Make the due date in the summary block configurable + (Mathieu CLABAUT ). +[cjh] Add task alarms (Mathieu CLABAUT ). +[jan] Add UTF-8 support and charset parameter for backend drivers. +[cjh] Only show selected task categories on the summary screen + (John Morrissey ). +[cjh] Much more comprehensive permissions checking, and support for + guest access. +[cjh] Use the global shares editing page for changing/assigning share permissions. +[cjh] Add options for showing, sorting by, and grouping by task owner + (Brian Keifer ). +[mac] Allow importing onto any available Task list. +[cjh] Add an option to show only complete tasks, and add links on the + task view to switch between all, complete, and incomplete. +[mac] Add shared task lists. + + +------ +v1.1.3 +------ + +[jan] Close XSS when setting the parent frame's page title by javascript (cjh). + + +------ +v1.1.2 +------ + +[jan] Add Polish translation (Piotr Kuczynski ). +[cjh] Fix changing of task attributes that have not been set previously + (rvs@angara.ru, Bug #569). + + +------ +v1.1.1 +------ + +[jan] Add Indonesian language (Slamin ). +[jan] Add Arabic (Syria) translation (Platinum Development Team + ). +[jan] Add Romanian translation (Eugen Hoanca , + Marius Dragulescu ). +[jon] Display the task navbar above the description in the task view, as well + (John Morrissey ). + + +---- +v1.1 +---- + +[jan] Add Greek translation (Stefanos I. Dimitriou ). +[jan] Add print task button (mac). +[jan] Add Slovak translation (Ivan Noris ). +[jan] Add ability to create new categories (mac). +[jan] Add Nag::addParameter(). +[jan] Add Norwegian Bokmaal translation (Torstein S. Hansen ). +[jan] Add Bulgarian translation (Miroslav Pendev ). +[jan] Add preferences for showing priorities and due dates in the summary + (Brian Keifer ). +[jan] Add Lithuanian translation (Darius Matuliauskas ). +[jan] Replace ). +[jan] Add Danish translation (Martin List-Petersen ). + + +---- +v1.0 +---- + +[jan] Add Hungarian translation (Laszlo L. Tornoci ). +[jan] Add Simplified Chinese translation (Peter Wang ). +[jan] Add Korean translation (J.I Kim ). +[jan] Add Norwegian Nynorsk translation (Per-Stian Vatne ). +[cjh] Completed tasks aren't overdue, no matter what the due date. +[cjh] Filter out completed tasks earlier if requested, so the task count + is correct. +[cjh] Simplify color scheme a bit. +[cjh] Add category column. +[cjh] Remove task_added column. +[cjh] Keep track of when a task was last modified (for sync purposes). +[jan] Add Finnish translation (Tero Matinlassi ). +[jan] Add Brazilian Portuguese translation (Antonio Dias ). +[cjh] Close a potential problem with register_globals On and $js_onLoad. +[cjh] Add new task link to the summary (Quinn Wilson ). +[cjh] Use the new PrefsUI class. +[cjh] Remove the STORAGE_* constants in favor of PEAR_Errors. +[cjh] Add a preference to not show completed tasks in the task list. +[cjh] Fix completion widget in the task modification screen. +[jon] Adapt to the new Horde::img() syntax. +[cjh] Switch output compression to ob_gzhandler(). +[cjh] Use NAG_TEMPLATES constant for all template paths. +[cjh] Use $registry->get() for all Registry information. +[cjh] Prefix all application constants with NAG_. +[cjh] Use the new Notification system. +[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. +[jan] Add Swedish translation (Andreas Dahlén ). +[jan] Add Traditional Chinese translation (David Chang ). +[bjn] Change 'en' and 'en_EN' locales to 'en_US' (default). +[cjh] Change Nag_Storage:: to Nag_Driver::. +[cjh] Allow setting priority for multiple tasks in the list view. +[cjh] Change task priorities to be 1-5 (matches Palm todo list). +[jon] Apply a "strike-through" style to closed (completed) tasks. +[jon] Remove task dependency code. +[jon] Add completion status. (Paul Cooper ) +[jan] Add French translation (Mikhaël Janson ). +[cjh] Let the Registry handle retrieving preferences. +[jan] Due tasks can now be shown in Kronolith. +[jan] Add Italian translation (Giovanni Meneghetti ). +[cjh] Add Czech translation (pchytil@asp.ogi.edu). +[cjh] Add Russian translation (Ignat Ikryanov ). +[avsm] Replace $conf['paths'] with the $registry equivalents. +[jon] Updated to reflect the changes in PEAR DB's quoteString(). +[cjh] Add $conf['menu']['apps'] support. +[cjh] Add low and high priority icons. +[cjh] Show a note icon if a task has a description. +[jon] Added the concept of task priorities (low, medium, high). +[jon] Return to the task detail view after additions or modifications. +[jon] Allow a task to be dependent on another task. +[cjh] Add translation framework. +[jon] Added Nag::formatDate() to format internal date values. + + +------ +v0.0.1 +------ + +[cjh] Start application-specific constants at 100 and prefix them with NAG_. +[cjh] Add a Horde summary API function. +[jon] Added initial help text. +[cjh] Use prefs.gif and generic prefs templates from Horde. +[jon] Display task descriptions using a proportional (fixed) font. +[jon] Added externally-accessible API for registry integration. +[jon] HORDE_BASE is now defined in lib/base.php instead of config/conf.php. +[jon] Added detailed installation documentation (docs/INSTALL). +[jon] Moved task retrieval out of base.php for more efficiency and granularity. +[jon] Display overdue tasks in a different color. +[jon] Added status support for Horde messages / errors. +[cjh] Make multiple task deletion from the task list work. +[cjh] Make task storage work when deleting more than one task. +[jon] Added rudimentary searching capabilities. +[cjh] Define the HORDE_BASE constant in config/conf.php, and use it when + referring to any of Horde's files. +[jon] Added the ability to add, remove, and delete tasks. +[jon] Made the task view date and time formats separately configurable. +[jon] Added individual task viewing (with descriptions). +[jon] Added sorting to the task list. +[jon] Added initial preferences support. +[jon] Added an initial "List Tasks" implementation +[jon] Added the 'sql' storage implementation. diff --git a/nag/docs/CREDITS b/nag/docs/CREDITS new file mode 100644 index 000000000..dc299f109 --- /dev/null +++ b/nag/docs/CREDITS @@ -0,0 +1,83 @@ +====================== + Nag Development Team +====================== + + +Core Developers +=============== + +- Chuck Hagenbuch +- Jan Schneider + + +Localization +============ + +===================== ====================================================== +Arabic (Syria) Platinum Development Team +Basque Euskal Herriko Unibertsitatea +Brazilian Portuguese Antonio Dias + Fabio Gomes + Luis Felipe Marzagao + Eduardo de Carli +Bulgarian Miroslav Pendev +Catalan Jordi Giralt +Chinese (Simplified) Peter Wang +Chinese (Traditional) David Chang +Czech Pavel Chytil +Danish Martin List-Petersen + Brian Truelsen + Niels Baggesen +Dutch Jan Kuipers + Ariën Huisken +Estonian Alar Sing +Finnish Tero Matinlassi + Leena Heino +French Mikhaël Janson + Benoit St-André + Pierre Lachance + Thierry Thomas + Yannick Sebastia +German Jan Schneider +Greek Stefanos I. Dimitriou + Silligardos Xristoforos + Anagnostopoulos Apostolis + Konstantinos C. Milosis +Hungarian Laszlo L. Tornoci +Indonesian Slamin +Italian Giovanni Meneghetti + Marco Pirovano + Cristian Manoni +Japanese Hiromi Kimura +Korean J.I Kim +Latvian Janis Eisaks +Lithuanian Darius Matuliauskas + Vilius Å umskas +Norwegian Bokmaal Torstein S. Hansen +Norwegian Nynorsk Per-Stian Vatne +Polish Piotr Kuczynski + Piotr Adamcio + Tadeusz Lesiecki + Piotr Tarnowski +Portuguese Manuel Menezes de Sequeira +Romanian Eugen Hoanca + Marius Dragulescu +Russian Ignat Ikryanov + Alexey Zakharov +Slovak Ivan Noris + Martin MatuÅ¡ka +Slovenian Duck +Spanish Raúl Alvarez Venegas + Manuel Perez Ayala +Swedish Andreas Dahlén + Joaquim Homrighausen +Turkish Istanbul Technical University IT Department + + Middle East Technical University +===================== ====================================================== + + +Inactive Developers +=================== + +- Jon Parise diff --git a/nag/docs/INSTALL b/nag/docs/INSTALL new file mode 100644 index 000000000..26e8a4703 --- /dev/null +++ b/nag/docs/INSTALL @@ -0,0 +1,199 @@ +================ + Installing Nag +================ + +:Contact: nag@lists.horde.org + +.. contents:: Contents +.. section-numbering:: + +This document contains instructions for installing the Nag web-based todo list +application on your system. + +For information on the capabilities and features of Nag, see the file README_ +in the top-level directory of the Nag distribution. + + +Obtaining Nag +============= + +Nag can be obtained from the Horde website and FTP server, at + + http://www.horde.org/nag/ + + ftp://ftp.horde.org/pub/nag/ + +Bleeding-edge development versions of Nag are available via CVS; see the file +`docs/HACKING`_ in the Horde distribution for information on accessing the +Horde CVS repository. + + +Prerequisites +============= + +To function properly, Nag requires the following: + +1. A working Horde installation. + + Nag runs within the `Horde Application Framework`_, a set of common tools + for Web applications written in PHP. You must install Horde before + installing Nag. + + .. _`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 Nag's prerequisites are also Horde prerequisites. Be sure to have + completed all of the steps in the INSTALL_ file for the Horde Framework + before installing Nag. + +2. SQL support in PHP *or* a configured Kolab Server. + + Nag will store its data in either an SQL database or on a Kolab Server. + If you use SQL, build PHP with whichever SQL driver you require; see the + Horde INSTALL_ file for details. + + +Installing Nag +============== + +Nag 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, Nag is installed directly underneath Horde in the webserver's +document tree. + +Since Nag 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 webserver's default document root of ``/usr/local/apache/htdocs``, +you would type:: + + cd /usr/local/apache/htdocs/horde + tar zxvf /path/to/nag-x.y.z.tar.gz + mv nag-x.y.z nag + +and would then find Nag at the URL:: + + http://your-server/horde/nag/ + + +Configuring Nag +=============== + +1. Configuring Horde for Nag + + a. Register the application + + In ``horde/config/registry.php``, find the ``applications['nag']`` + stanza. The default settings here should be okay, but you can change + them if desired. If you have changed the location of Nag relative to + Horde, either in the URL, in the filesystem or both, you must update the + ``fileroot`` and ``webroot`` settings to their correct values. + + b. Configuring a DataTree backend + + Nag requires a permanent ``DataTree`` backend in Horde to manage + tasklists and to add tasks to tasklists. If you didn't setup a DataTree + backend yet, go to the configuration interface, select Horde from the + list of applications and select a driver different than ``None`` on the + ``DataTree System`` tab. Make sure that you ran the necessary scripts + to create a storage backend for the DataTree system, e.g. one of the + ``create.*.sql`` or ``horde_datatree.*.sql`` SQL scripts in + ``horde/scripts/sql/``. You should have done this already during the + installation of Horde. + +2. Creating the database table + + The specific steps to create the Nag database table depend on which + database you've chosen to use. If you've chosen to use the Kolab driver, + skip this step. + + First, look in ``scripts/sql/`` 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. (Note that executing the script as + the "horde" user will probably fail when granting privileges.) + + If such a script does not exist, you'll need to build your own, using the + file nag.sql as a starting point. If you need assistance in creating + databases, you may wish to let us know on the Nag mailing list. + +3. Configuring Nag + + To configure Nag, 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 + + Documentation on the format of those files can be found in each file. With + the exception of the ``conf.*`` files (see below), the other files in + ``config/`` need only be modified if you wish to customize Nag's appearance + or behavior, as the defaults will be correct for most sites. + + You must login to Horde as a Horde Administrator to finish the + configuration of Nag. 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 ``Tasks`` from the selection list of + applications. Fill in or change any configuration values as needed. When + done click on ``Generate Tasks Configuration`` to generate the ``conf.php`` + file. If your web server doesn't have write permissions to the Nag + 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 ``nag/config/conf.php``. + + Note for international users: Nag 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 Nag + + Use Nag to create, modify, and delete todos. Test at least the following: + + - Creating a new todo item + - Modifying a todo item + - Completing a todo item + - Deleting a todo item + + +Obtaining Support +================= + +If you encounter problems with Nag, 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 Nag is free software written by volunteers. For +information on reasonable support expectations, please read + + http://www.horde.org/support.php + +Thanks for using Nag! + +The Horde team + + +.. _README: ?f=README.html +.. _`docs/HACKING`: ../../horde/docs/?f=HACKING.html +.. _INSTALL: +.. _`horde/docs/INSTALL`: ../../horde/docs/?f=INSTALL.html +.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/?f=TRANSLATIONS.html diff --git a/nag/docs/RELEASE_NOTES b/nag/docs/RELEASE_NOTES new file mode 100644 index 000000000..b7e8d1b9f --- /dev/null +++ b/nag/docs/RELEASE_NOTES @@ -0,0 +1,48 @@ +notes['fm']['focus'] = 4; + +/* Mailing list release notes. */ +$this->notes['ml']['changes'] = <<notes['fm']['changes'] = <<notes['name'] = 'Nag'; +$this->notes['fm']['project'] = 'nag'; +$this->notes['fm']['branch'] = 'Horde 3'; diff --git a/nag/docs/TODO b/nag/docs/TODO new file mode 100644 index 000000000..0994b4200 --- /dev/null +++ b/nag/docs/TODO @@ -0,0 +1,18 @@ +=========================== + Nag Development TODO List +=========================== + +:Contact: nag@lists.horde.org + +- Allow resorting search results. + +- Send email warnings as due dates approach. + +- Next/Previous buttons in the task view. + +- Adopt some UI enhancements from Palm ToDo app - dropdown list of categories + to filter by category, view tasks due today, etc. + +- Ability to purge completed tasks. + +- Automatically publish tasks in iCalendar format. diff --git a/nag/docs/UPGRADING b/nag/docs/UPGRADING new file mode 100644 index 000000000..86430e4df --- /dev/null +++ b/nag/docs/UPGRADING @@ -0,0 +1,81 @@ +=============== + Upgrading Nag +=============== + +:Contact: nag@lists.horde.org + + +These are instructions to upgrade from earlier Nag versions. Please backup +your existing data before running any of the steps described below. You can't +use the updated data with your old Nag version anymore. + + +Upgrading Nag from 2.2.x to 2.3.x +================================= + +Some fields in the SQL share driver tables have been changed. Execute the +provided SQL script to update your database if you are using the native SQL +share driver. + + mysql --user=root --password= < scripts/upgrades/2.2_to_2.3.sql + + +Upgrading Nag from 2.1.x to 2.2.x +================================= + + +SQL Backends +------------ + +A few new fields have been added to the default SQL table layout. + +Execute the provided SQL script to update your data to the new Nag version, +e.g.:: + + mysql --user=root --password= < scripts/upgrades/2.1_to_2.2.sql + +You also have to execute the provided PHP script:: + + php scripts/upgrades/2006-04-18_add_creator_and_assignee_fields.php + + +New Beta SQL Share Driver Support +--------------------------------- + +A new beta-level SQL Horde_Share driver has been added in Horde 3.2. This driver +offers significant performance improvements over the existing Datatree driver, +but it has not received the same level of testing, thus the beta designation. +In order to make use of this driver, you must be using Horde 3.2-RC3 or +later. The new tables needed for this driver already should have been created +by the step above. + +If you want to use the new SQL Share driver, you must also execute the +provided PHP script to migrate your existing share data to the new format:: + + php scripts/upgrades/convert_datatree_shares_to_sql.php + + +Upgrading Nag from 1.1.x to 2.0.x +================================= + + +SQL Backends +------------ + +Two new fields have been added to the default SQL table layout. The new +``task_uid`` field provides a global unique ID to task items, the +``task_alarm`` allows you to set alarm notification on due dates. + +Execute the provided SQL script to update your data to the new Nag version:: + + mysql --user=root --password= < scripts/upgrades/1.1_to_2.0.mysql.sql + + +Categories +---------- + +Categories are now being maintained centrally for all Horde applications that +support them. To convert the old task categories execute the provided PHP +script:: + + php scripts/upgrades/2004-05-13_convert_categories_to_strings.php diff --git a/nag/docs/vtodo/todo.ics b/nag/docs/vtodo/todo.ics new file mode 100644 index 000000000..181f4c55f --- /dev/null +++ b/nag/docs/vtodo/todo.ics @@ -0,0 +1,23 @@ +BEGIN:VCALENDAR + +BEGIN:VTODO +DTSTAMP:19980130T134500Z +SEQUENCE:2 +UID:<1234@example.com> +ORGANIZER:MAILTO: +ATTENDEE;PARTSTAT=ACCEPTED:MAILTO: +DUE:19980415T235959 +STATUS:NEEDS-ACTION +SUMMARY:Submit Income Taxes + +BEGIN:VALARM +ACTION:AUDIO +TRIGGER;VALUE=DATE-TIME:19980403T120000 +ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-files/ssbanner.aud +REPEAT:4 +DURATION:PT1H +END:VALARM + +END:VTODO + +END:VCALENDAR diff --git a/nag/ics.php b/nag/ics.php new file mode 100644 index 000000000..5878b4e0c --- /dev/null +++ b/nag/ics.php @@ -0,0 +1,76 @@ + + */ + +$nag_session_control = 'none'; +require_once dirname(__FILE__) . '/lib/base.php'; +require_once 'Horde/Identity.php'; + +// We want to always generate UTF-8 iCalendar data. +Horde_Nls::setCharset('UTF-8'); + +// Determine which tasklist to export. +$tasklist = Horde_Util::getFormData('t'); +if (empty($tasklist) && $pathInfo = Horde_Util::getPathInfo()) { + $tasklist = basename($pathInfo); +} + +$share = $nag_shares->getShare($tasklist); +if (is_a($share, 'PEAR_Error')) { + header('HTTP/1.0 400 Bad Request'); + echo '400 Bad Request'; + exit; +} + +// First try guest permissions. +if (!$share->hasPermission('', PERMS_READ)) { + // Authenticate. + $auth = Horde_Auth::singleton($conf['auth']['driver']); + if (!isset($_SERVER['PHP_AUTH_USER']) || + !$auth->authenticate($_SERVER['PHP_AUTH_USER'], + array('password' => isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null)) || + !$share->hasPermission(Horde_Auth::getAuth(), PERMS_READ)) { + header('WWW-Authenticate: Basic realm="Nag iCalendar Interface"'); + header('HTTP/1.0 401 Unauthorized'); + echo '401 Unauthorized'; + exit; + } +} + +$cache = Horde_Cache::singleton($conf['cache']['driver'], Horde::getDriverConfig('cache', $conf['cache']['driver'])); +$key = 'nag.ics.' . $tasklist; + +$ics = $cache->get($key, 360); +if (!$ics) { + $iCal = new Horde_iCalendar(); + $iCal->setAttribute('X-WR-CALNAME', $share->get('name')); + + $storage = Nag_Driver::singleton($tasklist); + $result = $storage->retrieve(); + if (is_a($result, 'PEAR_Error')) { + Horde::fatal($result, __FILE__, __LINE__); + } + + $identity = Identity::singleton('none', $share->get('owner')); + $storage->tasks->reset(); + while ($task = $storage->tasks->each() ) { + $iCal->addComponent($task->toiCalendar($iCal)); + } + + $ics = $iCal->exportvCalendar(); + $cache->set($key, $ics); +} + +$browser->downloadHeaders($tasklist . '.ics', + 'text/calendar; charset=' . Horde_Nls::getCharset(), + true, + strlen($ics)); +echo $ics; diff --git a/nag/index.php b/nag/index.php new file mode 100644 index 000000000..0b44c6002 --- /dev/null +++ b/nag/index.php @@ -0,0 +1,21 @@ +_params['block_title']) + ? $this->_params['block_title'] + : $registry->get('name'); + return Horde::link(Horde::applicationUrl($registry->getInitialPage(), + true)) + . htmlspecialchars($label) . ''; + } + + function _params() + { + require_once dirname(__FILE__) . '/../base.php'; + require_once 'Horde/Prefs/CategoryManager.php'; + $cManager = new Prefs_CategoryManager(); + $categories = array(); + foreach ($cManager->get() as $c) { + $categories[$c] = $c; + } + $categories['unfiled'] = _("Unfiled"); + + $tasklists = array(); + foreach (Nag::listTasklists() as $id => $tasklist) { + $tasklists[$id] = $tasklist->get('name'); + } + + return array('block_title' => array( + 'type' => 'text', + 'name' => _("Block title"), + 'default' => $GLOBALS['registry']->get('name')), + 'show_pri' => array( + 'type' => 'checkbox', + 'name' => _("Show priorities?"), + 'default' => 1), + 'show_actions' => array( + 'type' => 'checkbox', + 'name' => _("Show action buttons?"), + 'default' => 1), + 'show_due' => array( + 'type' => 'checkbox', + 'name' => _("Show due dates?"), + 'default' => 1), + 'show_tasklist' => array( + 'type' => 'checkbox', + 'name' => _("Show tasklist name?"), + 'default' => 1), + 'show_alarms' => array( + 'type' => 'checkbox', + 'name' => _("Show task alarms?"), + 'default' => 1), + 'show_category' => array( + 'type' => 'checkbox', + 'name' => _("Show task category?"), + 'default' => 1), + 'show_overdue' => array( + 'type' => 'checkbox', + 'name' => _("Always show overdue tasks?"), + 'default' => 1), + 'show_completed' => array( + 'type' => 'checkbox', + 'name' => _("Always show completed and future tasks?"), + 'default' => 1), + 'show_tasklists' => array( + 'type' => 'multienum', + 'name' => _("Show tasks from these tasklists"), + 'default' => array(Horde_Auth::getAuth()), + 'values' => $tasklists), + 'show_categories' => array( + 'type' => 'multienum', + 'name' => _("Show tasks from these categories"), + 'default' => array(), + 'values' => $categories)); + } + + function _content() + { + global $registry, $prefs; + require_once dirname(__FILE__) . '/../base.php'; + + $now = time(); + $html = ''; + + if (!empty($this->_params['show_alarms'])) { + $messages = array(); + $alarmList = Nag::listAlarms($now); + if (is_a($alarmList, 'PEAR_Error')) { + return '' . htmlspecialchars($alarmList->getMessage()) + . ''; + } + foreach ($alarmList as $task) { + $differential = $task->due - $now; + $key = $differential; + while (isset($messages[$key])) { + $key++; + } + $viewurl = Horde_Util::addParameter( + 'view.php', + array('task' => $task->id, + 'tasklist' => $task->tasklist)); + $link = Horde::link( + htmlspecialchars(Horde::applicationUrl($viewurl, true))) + . (!empty($task->name) + ? htmlspecialchars($task->name) : _("[none]")) + . ''; + if ($differential >= -60 && $differential < 60) { + $messages[$key] = sprintf(_("%s is due now."), $link); + } elseif ($differential >= 60) { + $messages[$key] = sprintf( + _("%s is due in %s"), + $link, Nag::secondsToString($differential)); + } + } + + ksort($messages); + foreach ($messages as $message) { + $html .= '' + . Horde::img('alarm_small.png') . '  ' + . $message . ''; + } + + if (!empty($messages)) { + $html .= '
'; + } + } + + $i = 0; + $tasks = Nag::listTasks( + null, null, null, + isset($this->_params['show_tasklists']) + ? $this->_params['show_tasklists'] + : array_keys(Nag::listTasklists(false, PERMS_READ)), + empty($this->_params['show_completed']) ? 0 : 1); + if (is_a($tasks, 'PEAR_Error')) { + return '' . htmlspecialchars($tasks->getMessage()) . ''; + } + + $tasks->reset(); + while ($task = $tasks->each()) { + // Only print tasks due in the past if the show_overdue flag is + // on. Only display selected categories (possibly unfiled). + if (($task->due > 0 && + $now > $task->due && + empty($this->_params['show_overdue'])) || + (!empty($this->_params['show_categories']) && + (!in_array($task->category, $this->_params['show_categories']) && + !(empty($task->category) && + in_array('unfiled', $this->_params['show_categories']))))) { + continue; + } + + if ($task->completed) { + $style = 'closed'; + } elseif (!empty($task->due) && $task->due < $now) { + $style = 'overdue'; + } else { + $style = ''; + } + + $html .= ''; + + if (!empty($this->_params['show_actions'])) { + $taskurl = Horde_Util::addParameter( + 'task.php', + array('task' => $task->id, + 'tasklist' => $task->tasklist, + 'url' => Horde::selfUrl(true))); + $label = sprintf(_("Edit \"%s\""), $task->name); + $html .= ''; + if ($task->completed) { + $html .= ''; + } else { + $label = sprintf(_("Complete \"%s\""), $task->name); + $html .= ''; + } + } + + if (!empty($this->_params['show_pri'])) { + $html .= ''; + } + + if (!empty($this->_params['show_tasklist'])) { + $owner = $task->tasklist; + $shares = &Horde_Share::singleton($registry->getApp()); + $share = $shares->getShare($owner); + if (!is_a($share, 'PEAR_Error')) { + $owner = $share->get('name'); + } + $html .= ''; + } + + $html .= ''; + + if (!empty($this->_params['show_category'])) { + $html .= ''; + } + $html .= "\n"; + } + + if (empty($html)) { + return '' . _("No tasks to display") . ''; + } + + return '' + . '
' + . Horde::link(htmlspecialchars(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'modify_task'), true)), $label) + . Horde::img('edit.png', $label, null, + $registry->getImageDir('horde')) + . '' + . Horde::img('checked.png', _("Completed")) . '' + . Horde::link(htmlspecialchars(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task'), true)), $label) + . Horde::img('unchecked.png', $label) . ' ' + . Nag::formatPriority($task->priority) . ' ' + . htmlspecialchars($owner) . ' '; + + $viewurl = Horde_Util::addParameter( + 'view.php', + array('task' => $task->id, + 'tasklist' => $task->tasklist)); + $html .= $task->treeIcons() + . Horde::link( + htmlspecialchars(Horde::applicationUrl($viewurl, true)), + $task->desc) + . (!empty($task->name) + ? htmlspecialchars($task->name) : _("[none]")) + . ''; + + if ($task->due > 0 && + empty($task->completed) && + !empty($this->_params['show_due'])) { + $html .= ' (' + . strftime($prefs->getValue('date_format'), $task->due) + . ')'; + } + + $html .= '' + . htmlspecialchars($task->category + ? $task->category : _("Unfiled")) + . '
' + . $html . '
'; + } + +} diff --git a/nag/lib/Block/tree_alarms.php b/nag/lib/Block/tree_alarms.php new file mode 100644 index 000000000..619dfc464 --- /dev/null +++ b/nag/lib/Block/tree_alarms.php @@ -0,0 +1,85 @@ + $task) { + if ($horde_alarm && + $horde_alarm->isSnoozed($task->uid, Horde_Auth::getAuth())) { + continue; + } + $alarmCount++; + $differential = $task->due - $now; + if ($differential >= 60) { + $title = sprintf(_("%s is due in %s"), $task->name, Nag::secondsToString($differential)); + } else { + $title = sprintf(_("%s is due now."), $task->name); + } + + $url = Horde_Util::addParameter(Horde::applicationUrl('view.php'), + array('task' => $task->id, + 'tasklist' => $task->tasklist)); + $tree->addNode($parent . $taskId, + $parent, + $task->name, + $indent + 1, + false, + array('icon' => 'alarm.png', + 'icondir' => $GLOBALS['registry']->getImageDir(), + 'title' => $title, + 'url' => $url)); + } + + if ($GLOBALS['registry']->get('url', $parent)) { + $purl = $GLOBALS['registry']->get('url', $parent); + } elseif ($GLOBALS['registry']->get('status', $parent) == 'heading' || + !$GLOBALS['registry']->get('webroot')) { + $purl = null; + } else { + $purl = Horde::url($GLOBALS['registry']->getInitialPage($parent)); + } + $pnode_params = array('url' => $purl, + 'icon' => $GLOBALS['registry']->get('icon', $parent), + 'icondir' => ''); + + $pnode_params = array('url' => $purl, + 'icon' => $GLOBALS['registry']->get('icon', $parent), + 'icondir' => ''); + $pnode_name = $GLOBALS['registry']->get('name', $parent); + if ($alarmCount) { + $pnode_name = '' . $pnode_name . ''; + } + + $tree->addNode($parent, + $GLOBALS['registry']->get('menu_parent', $parent), + $pnode_name, + $indent, + false, + $pnode_params); + } + +} diff --git a/nag/lib/Block/tree_menu.php b/nag/lib/Block/tree_menu.php new file mode 100644 index 000000000..1e548462f --- /dev/null +++ b/nag/lib/Block/tree_menu.php @@ -0,0 +1,52 @@ +getImageDir(); + + $tree->addNode($parent . '__new', + $parent, + _("New Task"), + $indent + 1, + false, + array('icon' => 'add.png', + 'icondir' => $icondir, + 'url' => $add)); + + foreach (Nag::listTasklists() as $name => $tasklist) { + $tree->addNode($parent . $name . '__new', + $parent . '__new', + sprintf(_("in %s"), $tasklist->get('name')), + $indent + 2, + false, + array('icon' => 'add.png', + 'icondir' => $icondir, + 'url' => Horde_Util::addParameter($add, array('tasklist_id' => $name)))); + } + + $tree->addNode($parent . '__search', + $parent, + _("Search"), + $indent + 1, + false, + array('icon' => 'search.png', + 'icondir' => $registry->getImageDir('horde'), + 'url' => Horde::applicationUrl('search.php'))); + } + +} diff --git a/nag/lib/Driver.php b/nag/lib/Driver.php new file mode 100644 index 000000000..0dba8a0d3 --- /dev/null +++ b/nag/lib/Driver.php @@ -0,0 +1,468 @@ + + * @author Jan Schneider + * @package Nag + */ +class Nag_Driver +{ + /** + * A Nag_Task instance holding the current task list. + * + * @var Nag_Task + */ + var $tasks; + + /** + * String containing the current tasklist. + * + * @var string + */ + var $_tasklist = ''; + + /** + * Hash containing connection parameters. + * + * @var array + */ + var $_params = array(); + + /** + * An error message to throw when something is wrong. + * + * @var string + */ + var $_errormsg; + + /** + * Constructor - just store the $params in our newly-created + * object. All other work is done by initialize(). + * + * @param array $params Any parameters needed for this driver. + */ + function Nag_Driver($params = array(), $errormsg = null) + { + $this->tasks = new Nag_Task(); + $this->_params = $params; + if (is_null($errormsg)) { + $this->_errormsg = _("The Tasks backend is not currently available."); + } else { + $this->_errormsg = $errormsg; + } + } + + /** + * List all alarms near $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array An array of tasks that have alarms that match. + */ + function listAlarms($date) + { + if (!$this->tasks->count()) { + $result = $this->retrieve(0); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + $alarms = array(); + $this->tasks->reset(); + while ($task = $this->tasks->each()) { + if ($task->alarm && + ($task->due - ($task->alarm * 60)) <= $date) { + $alarms[$task_id] = $task; + } + } + return $alarms; + } + + /** + * Generate a universal / unique identifier for a task. This is + * NOT something that we expect to be able to parse into a + * tasklist and a taskId. + * + * @return string A nice unique string (should be 255 chars or less). + */ + function generateUID() + { + return date('YmdHis') . '.' + . substr(str_pad(base_convert(microtime(), 10, 36), 16, uniqid(mt_rand()), STR_PAD_LEFT), -16) + . '@' . $GLOBALS['conf']['server']['name']; + } + + /** + * Attempts to return a concrete Nag_Driver instance based on $driver. + * + * @param string $tasklist The name of the tasklist to load. + * + * @param string $driver The type of concrete Nag_Driver subclass + * to return. The is based on the storage + * driver ($driver). The code is dynamically + * included. + * + * @param array $params (optional) A hash containing any additional + * configuration or connection parameters a + * subclass might need. + * + * @return mixed The newly created concrete Nag_Driver instance, or + * false on an error. + */ + function factory($tasklist = '', $driver = null, $params = null) + { + if (is_null($driver)) { + $driver = $GLOBALS['conf']['storage']['driver']; + } + + $driver = ucfirst(basename($driver)); + + if (is_null($params)) { + $params = Horde::getDriverConfig('storage', $driver); + } + + require_once dirname(__FILE__) . '/Driver/' . $driver . '.php'; + $class = 'Nag_Driver_' . $driver; + if (class_exists($class)) { + $nag = new $class($tasklist, $params); + $result = $nag->initialize(); + if (is_a($result, 'PEAR_Error')) { + $nag = new Nag_Driver($params, sprintf(_("The Tasks backend is not currently available: %s"), $result->getMessage())); + } + } else { + $nag = new Nag_Driver($params, sprintf(_("Unable to load the definition of %s."), $class)); + } + + return $nag; + } + + /** + * Attempts to return a reference to a concrete Nag_Driver + * instance based on $driver. It will only create a new instance + * if no Nag_Driver instance with the same parameters currently + * exists. + * + * This should be used if multiple storage sources are required. + * + * This method must be invoked as: $var =& Nag_Driver::singleton() + * + * @param string $tasklist The name of the tasklist to load. + * + * @param string $driver The type of concrete Nag_Driver subclass + * to return. The is based on the storage + * driver ($driver). The code is dynamically + * included. + * + * @param array $params (optional) A hash containing any additional + * configuration or connection parameters a + * subclass might need. + * + * @return mixed The created concrete Nag_Driver instance, or false + * on error. + */ + function &singleton($tasklist = '', $driver = null, $params = null) + { + static $instances = array(); + + if (is_null($driver)) { + $driver = $GLOBALS['conf']['storage']['driver']; + } + + if (is_null($params)) { + $params = Horde::getDriverConfig('storage', $driver); + } + + $signature = serialize(array($tasklist, $driver, $params)); + if (!isset($instances[$signature])) { + $instances[$signature] =& Nag_Driver::factory($tasklist, $driver, $params); + } + + return $instances[$signature]; + } + + /** + * Adds a task and handles notification. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification methods. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * + * @return array array(ID,UID) of new task + */ + function add($name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', $alarm = 0, + $methods = null, $uid = null, $parent = '', $private = false, + $owner = null, $assignee = null) + { + if (is_null($uid)) { + $uid = $this->generateUID(); + } + if (is_null($owner)) { + $owner = Horde_Auth::getAuth(); + } + + $taskId = $this->_add($name, $desc, $start, $due, $priority, $estimate, + $completed, $category, $alarm, $methods, $uid, $parent, + $private, $owner, $assignee); + if (is_a($taskId, 'PEAR_Error')) { + return $taskId; + } + $task = $this->get($taskId); + + /* Log the creation of this item in the history log. */ + $history = Horde_History::singleton(); + $history->log('nag:' . $this->_tasklist . ':' . $uid, array('action' => 'add'), true); + + /* Log completion status changes. */ + if ($completed) { + $history->log('nag:' . $this->_tasklist . ':' . $uid, array('action' => 'complete'), true); + } + + /* Notify users about the new event. */ + $result = Nag::sendNotification('add', $task); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR); + } + + /* Add an alarm if necessary. */ + if (!empty($GLOBALS['conf']['alarms']['driver']) && !empty($alarm)) { + $alarm = $task->toAlarm(); + if ($alarm) { + $alarm['start'] = new Horde_Date($alarm['start']); + require_once 'Horde/Alarm.php'; + $horde_alarm = Horde_Alarm::factory(); + $horde_alarm->set($alarm); + } + } + + return array($taskId, $uid); + } + + /** + * Modifies an existing task and handles notification. + * + * @param string $taskId The task to modify. + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification + * methods. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * @param string $tasklist The new tasklist. + */ + function modify($taskId, $name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', + $alarm = 0, $methods = null, $parent = '', $private = false, + $owner = null, $assignee = null, $completed_date = null, + $tasklist = null) + { + /* Retrieve unmodified task. */ + $task = $this->get($taskId); + if (is_a($task, 'PEAR_Error')) { + return $task; + } + + /* Avoid circular reference. */ + if ($parent == $taskId) { + $parent = ''; + } + + $modify = $this->_modify($taskId, $name, $desc, $start, $due, + $priority, $estimate, $completed, $category, + $alarm, $methods, $parent, $private, $owner, + $assignee, $completed_date); + if (is_a($modify, 'PEAR_Error')) { + return $modify; + } + + /* Update alarm if necessary. */ + if (!empty($GLOBALS['conf']['alarms']['driver'])) { + require_once 'Horde/Alarm.php'; + $horde_alarm = Horde_Alarm::factory(); + if (empty($alarm) || $completed) { + $horde_alarm->delete($task->uid); + } else { + $task = $this->get($taskId); + $alarm = $task->toAlarm(); + if ($alarm) { + $alarm['start'] = new Horde_Date($alarm['start']); + $horde_alarm->set($alarm); + } + } + } + + $new_task = $this->get($task->id); + $log_tasklist = $this->_tasklist; + if (!is_null($tasklist) && $task->tasklist != $tasklist) { + /* Moving the task to another tasklist. */ + $share = $GLOBALS['nag_shares']->getShare($task->tasklist); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + if (!$share->hasPermission(Horde_Auth::getAuth(), PERMS_DELETE)) { + $GLOBALS['notification']->push(sprintf(_("Access denied removing task from %s."), $share->get('name')), 'horde.error'); + return false; + } + + $share = $GLOBALS['nag_shares']->getShare($tasklist); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + if (!$share->hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + $GLOBALS['notification']->push(sprintf(_("Access denied moving the task to %s."), $share->get('name')), 'horde.error'); + } + + $moved = $this->_move($task->id, $tasklist); + if (is_a($moved, 'PEAR_Error')) { + return $moved; + } + $new_storage = Nag_Driver::singleton($tasklist); + $new_task = $new_storage->get($task->id); + + /* Log the moving of this item in the history log. */ + if (!empty($task->uid)) { + $history = Horde_History::singleton(); + $history->log('nag:' . $task->tasklist . ':' . $task->uid, array('action' => 'delete'), true); + $history->log('nag:' . $tasklist . ':' . $task->uid, array('action' => 'add'), true); + $log_tasklist = $tasklist; + } + } + + /* Log the modification of this item in the history log. */ + if (!empty($task->uid)) { + $history = Horde_History::singleton(); + $history->log('nag:' . $log_tasklist . ':' . $task->uid, array('action' => 'modify'), true); + } + + /* Log completion status changes. */ + if ($task->completed != $completed) { + $history = Horde_History::singleton(); + $attributes = array('action' => 'complete'); + if (!$completed) { + $attributes['ts'] = 0; + } + $history->log('nag:' . $log_tasklist . ':' . $task->uid, $attributes, true); + } + + /* Notify users about the changed event. */ + $result = Nag::sendNotification('edit', $new_task, $task); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR); + } + + return true; + } + + /** + * Deletes a task and handles notification. + * + * @param string $taskId The task to delete. + */ + function delete($taskId) + { + /* Get the task's details for use later. */ + $task = $this->get($taskId); + + $delete = $this->_delete($taskId); + if (is_a($delete, 'PEAR_Error')) { + return $delete; + } + + /* Log the deletion of this item in the history log. */ + if (!empty($task->uid)) { + $history = Horde_History::singleton(); + $history->log('nag:' . $this->_tasklist . ':' . $task->uid, array('action' => 'delete'), true); + } + + /* Notify users about the deleted event. */ + $result = Nag::sendNotification('delete', $task); + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR); + } + + /* Delete alarm if necessary. */ + if (!empty($GLOBALS['conf']['alarms']['driver']) && + !empty($task->alarm)) { + require_once 'Horde/Alarm.php'; + $horde_alarm = Horde_Alarm::factory(); + $horde_alarm->delete($task->uid); + } + + return true; + } + + /** + * Retrieves tasks from the database. + * + * @return mixed True on success, PEAR_Error on failure. + */ + function retrieve() + { + return PEAR::raiseError($this->_errormsg); + } + + /** + * Retrieves sub-tasks from the database. + * + * @param string $parentId The parent id for the sub-tasks to retrieve. + * + * @return array List of sub-tasks. + */ + function getChildren($parentId) + { + return PEAR::raiseError($this->_errormsg); + } + + /** + * Retrieves one task from the database. + * + * @param string $taskId The id of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function get($taskId) + { + return PEAR::raiseError($this->_errormsg); + } + + /** + * Retrieves one task from the database by UID. + * + * @param string $uid The UID of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function getByUID($uid) + { + return PEAR::raiseError($this->_errormsg); + } + +} diff --git a/nag/lib/Driver/Kolab.php b/nag/lib/Driver/Kolab.php new file mode 100644 index 000000000..abd520660 --- /dev/null +++ b/nag/lib/Driver/Kolab.php @@ -0,0 +1,1104 @@ + + * @author Thomas Jarosch + * @author Stuart Binge + * @package Nag + */ +class Nag_Driver_Kolab extends Nag_Driver +{ + /** + * Our Kolab server connection. + * + * @var Kolab + */ + protected $_kolab = null; + + /** + * The wrapper to decide between the Kolab implementation + * + * @var Nag_Driver_Kolab_Wrapper + */ + protected $_wrapper = null; + + /** + * Constructs a new Kolab storage object. + * + * @param string $tasklist The tasklist to load. + * @param array $params A hash containing connection parameters. + */ + public function __construct($tasklist, $params = array()) + { + if (empty($tasklist)) { + $tasklist = Horde_Auth::getAuth(); + } + + $this->_tasklist = $tasklist; + + $this->_kolab = new Kolab(); + if (empty($this->_kolab->version)) { + $wrapper = 'Nag_Driver_kolab_Wrapper_Old'; + } else { + $wrapper = 'Nag_Driver_Kolab_Wrapper_New'; + } + + $this->_wrapper = new $wrapper($this->_tasklist, $this->_kolab); + } + + /** + * Attempts to open a Kolab Groupware folder. + * + * @return boolean True on success, PEAR_Error on failure. + */ + publi function initialize() + { + return $this->_wrapper->connect(); + } + + /** + * Retrieves one task from the store. + * + * @param string $taskId The id of the task to retrieve. + * + * @return array The array of task attributes. + */ + public function get($taskId) + { + return $this->_wrapper->get($taskId); + } + + /** + * Retrieves one task from the database by UID. + * + * @param string $uid The UID of the task to retrieve. + * + * @return array The array of task attributes. + */ + public function getByUID($uid) + { + return $this->_wrapper->getByUID($uid); + } + + /** + * Adds a task to the backend storage. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification methods. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * + * @return string The Nag ID of the new task. + */ + protected function _add($name, $desc, $start = 0, $due = 0, $priority = 0, + $completed = 0, $estimate = 0.0, $category = '', + $alarm = 0, $methods = null, $uid = null, + $parent = null, $private = false, $owner = null, + $assignee = null) + { + return $this->_wrapper->add($name, $desc, $start, $due, $priority, + $completed, $estimate, $category, $alarm, + $uid, $parent, $private, $owner, $assignee); + } + + /** + * Modifies an existing task. + * + * @param string $taskId The task to modify. + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification + * methods. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * + * @return boolean Indicates if the modification was successfull. + */ + protected function _modify($taskId, $name, $desc, $start = 0, $due = 0, + $priority = 0, $estimate = 0.0, $completed = 0, + $category = '', $alarm = 0, $methods = null, + $parent = null, $private = false, $owner = null, + $assignee = null, $completed_date = null) + { + return $this->_wrapper->modify($taskId, $name, $desc, $start, $due, + $priority, $estimate, $completed, + $category, $alarm, $parent, $private, + $owner, $assignee, $completed_date); + } + + /** + * Moves a task to a different tasklist. + * + * @param string $taskId The task to move. + * @param string $newTasklist The new tasklist. + */ + protected function _move($taskId, $newTasklist) + { + return $this->_wrapper->move($taskId, $newTasklist); + } + + /** + * Deletes a task from the backend. + * + * @param string $taskId The task to delete. + */ + protected function _delete($taskId) + { + return $this->_wrapper->delete($taskId); + } + + /** + * Deletes all tasks from the backend. + */ + public function deleteAll() + { + return $this->_wrapper->deleteAll(); + } + + /** + * Retrieves tasks from the Kolab server. + * + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks). + * + * @return mixed True on success, PEAR_Error on failure. + */ + public function retrieve($completed = 1) + { + $tasks = $this->_wrapper->retrieve($completed); + if (is_a($tasks, 'PEAR_Error')) { + return $tasks; + } + + $this->tasks = $tasks; + + return true; + } + + /** + * Lists all alarms near $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array An array of tasks that have alarms that match. + */ + public function listAlarms($date) + { + return $this->_wrapper->listAlarms($date); + } + + /** + * Retrieves sub-tasks from the database. + * + * @param string $parentId The parent id for the sub-tasks to retrieve. + * + * @return array List of sub-tasks. + */ + public function getChildren($parentId) + { + return $this->_wrapper->getChildren($parentId); + } +} + +/** + * Horde Nag wrapper to distinguish between both Kolab driver implementations. + * + * @author Gunnar Wrobel + * @package Nag + */ + +class Nag_Driver_kolab_wrapper { + + /** + * Indicates if the wrapper has connected or not + * + * @var boolean + */ + var $_connected = false; + + /** + * String containing the current tasklist name. + * + * @var string + */ + var $_tasklist = ''; + + /** + * Our Kolab server connection. + * + * @var Kolab + */ + var $_kolab = null; + + /** + * Constructor + * + * @param string $tasklist The tasklist to load. + * @param Horde_Kolab $kolab The Kolab connection object + */ + function Nag_Driver_kolab_wrapper($tasklist, $kolab) + { + $this->_tasklist = $tasklist; + $this->_kolab = $kolab; + } + + /** + * Connect to the Kolab backend + * + * @param int $loader The version of the XML + * loader + * + * @return mixed True on success, a PEAR error otherwise + */ + function connect($loader = 0) + { + if ($this->_connected) { + return true; + } + + $result = $this->_kolab->open($this->_tasklist, $loader); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $this->_connected = true; + + return true; + } +} + +/** + * Old Nag driver for the Kolab IMAP server. + * + * @author Gunnar Wrobel + * @author Stuart Binge + * @package Nag + */ +class Nag_Driver_kolab_wrapper_old extends Nag_Driver_kolab_wrapper { + + function _buildTask() + { + $private = Horde_String::lower($this->_kolab->getVal('sensitivity')); + $private = ($private == 'private' || $private == 'confidential'); + + return array( + 'tasklist_id' => $this->_tasklist, + 'task_id' => $this->_kolab->getUID(), + 'uid' => $this->_kolab->getUID(), + 'owner' => Horde_Auth::getAuth(), + 'name' => $this->_kolab->getStr('summary'), + 'desc' => $this->_kolab->getStr('body'), + 'category' => $this->_kolab->getStr('categories'), + 'due' => Kolab::decodeDateOrDateTime($this->_kolab->getVal('due-date')), + 'priority' => $this->_kolab->getVal('priority'), + 'parent' => $this->_kolab->getVal('parent'), + 'estimate' => (float)$this->_kolab->getVal('priority'), + 'completed' => Kolab::percentageToBoolean($this->_kolab->getVal('completed')), + 'alarm' => $this->_kolab->getVal('alarm'), + 'private' => $private, + ); + } + + /** + * Retrieves one task from the store. + * + * @param string $taskId The id of the task to retrieve. + * + * @return array The array of task attributes. + */ + function get($taskId) + { + $result = $this->_kolab->loadObject($taskId); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return new Nag_Task($this->_buildTask()); + } + + /** + * Retrieves one task from the database by UID. + * + * @param string $uid The UID of the task to retrieve. + * + * @return array The array of task attributes. + */ + function getByUID($uid) + { + return PEAR::raiseError("Not supported"); + } + + /** + * @todo Utilize $owner, $assignee, and $completed_date + * parameters. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * + * @return string The ID of the task. + */ + function _setObject($name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', + $alarm = 0, $parent = null, $private = false, + $owner = null, $assignee = null, $completed_date = null) + { + if ($due == 0) { + $alarm = 0; + } + + $this->_kolab->setStr('summary', $name); + $this->_kolab->setStr('body', $desc); + $this->_kolab->setStr('categories', $category); + $this->_kolab->setVal('priority', $priority); + $this->_kolab->setVal('estimate', number_format($priority, 2)); + $this->_kolab->setVal('completed', Kolab::booleanToPercentage($completed)); + $this->_kolab->setVal('start-date', Kolab::encodeDateTime($start)); + $this->_kolab->setVal('due-date', Kolab::encodeDateTime($due)); + $this->_kolab->setVal('alarm', $alarm); + if ($parent) { + $this->_kolab->setVal('parent', $parent); + } + if ($private) { + $this->_kolab->setVal('sensitivity', 'private'); + } + + $result = $this->_kolab->saveObject(); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return $this->_kolab->getUID(); + } + + /** + * Adds a task to the backend storage. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * + * @return string The Nag ID of the new task. + */ + function add($name, $desc, $start = 0, $due = 0, $priority = 0, + $completed = 0, $estimate = 0.0, $category = '', $alarm = 0, + $uid = null, $parent = null, $private = false, $owner = null, + $assignee = null) + { + // Usually provided by the generic Driver class + if ($uid !== null) { + $uid = $this->generateUID(); + } + + // Load the object into the kolab driver + $object = $this->_kolab->newObject($uid); + if (is_a($object, 'PEAR_Error')) { + return $object; + } + + return $this->_setObject($name, $desc, $start, $due, $priority, + $completed, $estimate, $category, $alarm, + $parent, $private, $owner, $assignee); + } + + /** + * Modifies an existing task. + * + * @param string $taskId The task to modify. + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * + * @return boolean Indicates if the modification was successfull. + */ + function modify($taskId, $name, $desc, $start = 0, $due = 0, + $priority = 0, $estimate = 0.0, $completed = 0, + $category = '', $alarm = 0, $parent = null, + $private = false, $owner = null, $assignee = null, + $completed_date = null) + { + // Load the object into the kolab driver + $result = $this->_kolab->loadObject($taskId); + if (is_a($object, 'PEAR_Error')) { + return $object; + } + + $result = $this->_setObject($name, $desc, $start, $due, $priority, + $estimate, $completed, $category, $alarm, + $parent, $private, $owner, $assignee, + $completed_date); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return $result == $taskId; + } + + /** + * Moves a task to a different tasklist. + * + * @param string $taskId The task to move. + * @param string $newTasklist The new tasklist. + */ + function move($taskId, $newTasklist) + { + return $this->_kolab->moveObject($taskId, $newTasklist); + } + + /** + * Deletes a task from the backend. + * + * @param string $taskId The task to delete. + */ + function delete($taskId) + { + return $this->_kolab->removeObjects($taskId); + } + + /** + * Deletes all tasks from the backend. + */ + function deleteAll() + { + return $this->_kolab->removeAllObjects(); + } + + /** + * Retrieves tasks from the Kolab server. + * + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks, + * 3 = future tasks, 4 = future and incomplete + * tasks). + * + * @return mixed True on success, PEAR_Error on failure. + */ + function retrieve($completed = 1) + { + $tasks = array(); + + $msg_list = $this->_kolab->listObjects(); + if (is_a($msg_list, 'PEAR_Error')) { + return $msg_list; + } + + if (empty($msg_list)) { + return true; + } + + foreach ($msg_list as $msg) { + $result = $this->_kolab->loadObject($msg, true); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + $complete = Kolab::percentageToBoolean($this->_kolab->getVal('completed')); + $start_date = Kolab::decodeDateOrDateTime($this->_kolab->getVal('start-date')); + if (($completed == 0 && ($complete || $start_date > time())) || + ($completed == 2 && !$complete) || + ($completed == 3 && + ($complete || $start_date == 0 || $start_date < time())) || + ($completed == 4 && $complete)) { + continue; + } + $tasks[$this->_kolab->getUID()] = new Nag_Task($this->_buildTask()); + } + + return $tasks; + } + + /** + * Lists all alarms near $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array An array of tasks that have alarms that match. + */ + function listAlarms($date) + { + $tasks = array(); + + $msg_list = $this->_kolab->listObjects(); + if (is_a($msg_list, 'PEAR_Error')) { + return $msg_list; + } + + if (empty($msg_list)) { + return $tasks; + } + + foreach ($msg_list as $msg) { + $result = $this->_kolab->loadObject($msg, true); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $task = new Nag_Task($this->_buildTask()); + + if ($task['alarm'] > 0 && $task['due'] >= time() && $task['due'] - ($task['alarm'] * 60) <= $date) { + $tasks[$this->_kolab->getUID()] = $task; + } + } + + return $tasks; + } + + /** + * Retrieves sub-tasks from the database. + * + * @param string $parentId The parent id for the sub-tasks to retrieve. + * + * @return array List of sub-tasks. + */ + function getChildren($parentId) + { + $tasks = array(); + + $msg_list = $this->_kolab->listObjects(); + if (is_a($msg_list, 'PEAR_Error')) { + return $msg_list; + } + + if (empty($msg_list)) { + return $tasks; + } + + foreach ($msg_list as $msg) { + $result = $this->_kolab->loadObject($msg, true); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + if ($this->_kolab->getVal('parent') != $parentId) { + continue; + } + $task = new Nag_Task($this->_buildTask()); + $children = $this->getChildren($task->id); + if (is_a($children, 'PEAR_Error')) { + return $children; + } + $task->mergeChildren($children); + $tasks[] = $task; + } + + return $tasks; + } +} + + +/** + * New Nag driver for the Kolab IMAP server. + * + * @author Gunnar Wrobel + * @package Nag + */ +class Nag_Driver_kolab_wrapper_new extends Nag_Driver_kolab_wrapper { + + /** + * Shortcut to the imap connection + * + * @var Kolab_IMAP + */ + var $_store = null; + + /** + * Connect to the Kolab backend + * + * @return mixed True on success, a PEAR error otherwise + */ + function connect() + { + if ($this->_connected) { + return true; + } + + $result = parent::connect(1); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $this->_store = $this->_kolab->_storage; + + return true; + } + + /** + * Split the tasklist name of the id. We use this to make ids + * unique across folders. + * + * @param string $id The ID of the task appended with the tasklist + * name. + * + * @return array The task id and tasklist name + */ + function _splitId($id) + { + $split = explode('@', $id, 2); + if (count($split) == 2) { + list($id, $tasklist) = $split; + } else if (count($split) == 1) { + $tasklist = Horde_Auth::getAuth(); + } + return array($id, $tasklist); + } + + /** + * Append the tasklist name to the id. We use this to make ids + * unique across folders. + * + * @param string $id The ID of the task + * + * @return string The task id appended with the tasklist + * name. + */ + function _uniqueId($id) + { + if ($this->_tasklist == Horde_Auth::getAuth()) { + return $id; + } + return $id . '@' . $this->_tasklist; + } + + /** + * Retrieves one task from the store. + * + * @param string $taskId The id of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function get($taskId) + { + list($taskId, $tasklist) = $this->_splitId($taskId); + + if ($this->_store->objectUidExists($taskId)) { + $task = $this->_store->getObject($taskId); + return new Nag_Task($this->_buildTask($task)); + } else { + return PEAR::raiseError(sprintf(_('Nag/kolab: Did not find task %s'), $taskId)); + } + } + + /** + * Retrieves one task from the database by UID. + * + * @param string $uid The UID of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function getByUID($uid) + { + list($taskId, $tasklist) = $this->_splitId($uid); + + if ($this->_tasklist != $tasklist) { + $this->_tasklist = $tasklist; + $this->_connected = false; + $this->connect(); + } + + return $this->get($taskId); + } + + /** + * Add or modify a task. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * + * @return mixed The id of the task if successful, a PEAR error + * otherwise + */ + function _setObject($name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', + $alarm = 0, $uid = null, $parent = null, + $private = false, $owner = null, $assignee = null, + $completed_date = null) + { + if (empty($uid)) { + $task_uid = $this->_store->generateUID(); + $old_uid = null; + } else { + list($task_uid, $tasklist) = $this->_splitId($uid); + $old_uid = $task_uid; + } + + if ($parent) { + list($parent, $dummy) = $this->_splitId($parent); + } + + if ($private) { + $sensitivity = 'private'; + } else { + $sensitivity = 'public'; + } + + $result = $this->_store->save(array( + 'uid' => $task_uid, + 'name' => $name, + 'body' => $desc, + 'start' => $start, + 'due' => $due, + 'priority' => $priority, + 'completed' => $completed, + 'categories' => $category, + 'alarm' => $alarm, + 'parent' => $parent, + 'sensitivity' => $sensitivity, + 'estimate' => $estimate, + 'completed_date' => $completed_date, + 'creator' => array( + 'smpt-address' => $owner, + ), + 'organizer' => array( + 'smpt-address' => $assignee, + ), + ), + $old_uid); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return $task_uid; + } + + /** + * Adds a task to the backend storage. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * + * @return mixed The id of the task if successful, a PEAR error + * otherwise + */ + function add($name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', $alarm = 0, + $uid = null, $parent = null, $private = false, $owner = null, + $assignee = null) + { + return $this->_setObject($name, $desc, $start, $due, $priority, + $estimate, $completed, $category, $alarm, + null, $parent, $private, $owner, $assignee); + } + + /** + * Modifies an existing task. + * + * @param string $taskId The task to modify. + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + * + * @return mixed The id of the task if successful, a PEAR error + * otherwise + */ + function modify($taskId, $name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', + $alarm = 0, $parent = null, $private = false, + $owner = null, $assignee = null, $completed_date = null) + { + $result = $this->_setObject($name, $desc, $start, $due, $priority, + $estimate, $completed, $category, $alarm, + $taskId, $parent, $private, $owner, $assignee, + $completed_date); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return $result == $taskId; + } + + /** + * Moves a task to a different tasklist. + * + * @param string $taskId The task to move. + * @param string $newTasklist The new tasklist. + * + * @return mixed True on success, PEAR_Error on failure. + */ + function move($taskId, $newTasklist) + { + list($taskId, $tasklist) = $this->_splitId($taskId); + + return $this->_store->move($taskId, $newTasklist); + } + + /** + * Deletes a task from the backend. + * + * @param string $taskId The task to delete. + */ + function delete($taskId) + { + list($taskId, $tasklist) = $this->_splitId($taskId); + + return $this->_store->delete($taskId); + } + + /** + * Deletes all tasks from the backend. + */ + function deleteAll() + { + return $this->_store->deleteAll(); + } + + /** + * Retrieves tasks from the Kolab server. + * + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks, + * 3 = future tasks, 4 = future and incomplete + * tasks). + * + * @return mixed True on success, PEAR_Error on failure. + */ + function retrieve($completed = 1) + { + $dict = array(); + $tasks = new Nag_Task(); + + $task_list = $this->_store->getObjects(); + if (is_a($task_list, 'PEAR_Error')) { + return $task_list; + } + + if (empty($task_list)) { + return $tasks; + } + + foreach ($task_list as $task) { + $tuid = $this->_uniqueId($task['uid']); + $t = new Nag_Task($this->_buildTask($task)); + $complete = $t->completed; + if (empty($t->start)) { + $start = null; + } else { + $start = $t->start; + } + + if (($completed == 0 && ($complete || $start > time())) || + ($completed == 2 && !$complete) || + ($completed == 3 && + ($complete || $start == 0 || $start < time())) || + ($completed == 4 && $complete)) { + continue; + } + if (empty($t->parent_id)) { + $tasks->add($t); + } else { + $dict[$tuid] = $t; + } + } + + /* Build a tree from the subtasks. */ + foreach (array_keys($dict) as $key) { + $task = $tasks->get($dict[$key]->parent_id); + if ($task) { + $task->add($dict[$key]); + } elseif (isset($dict[$dict[$key]->parent_id])) { + $dict[$dict[$key]->parent_id]->add($dict[$key]); + } else { + $tasks->add($dict[$key]); + } + } + + return $tasks; + } + + /** + * Build a task based a data array + * + * @param array $task The data for the task + * + * @return array The converted data array representing the task + */ + function _buildTask($task) + { + $task['tasklist_id'] = $this->_tasklist; + $task['task_id'] = $this->_uniqueId($task['uid']); + + if (!empty($task['parent'])) { + $task['parent'] = $this->_uniqueId($task['parent']); + } + + $task['category'] = $task['categories']; + unset($task['categories']); + + $task['desc'] = $task['body']; + unset($task['body']); + + if ($task['sensitivity'] == 'public') { + $task['private'] = false; + } else { + $task['private'] = true; + } + unset($task['sensitivity']); + + $share = $GLOBALS['nag_shares']->getShare($this->_tasklist); + $task['owner'] = $share->get('owner'); + + return $task; + } + + /** + * Lists all alarms near $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array An array of tasks that have alarms that match. + */ + function listAlarms($date) + { + $task_list = $this->_store->getObjects(); + if (is_a($task_list, 'PEAR_Error')) { + return $task_list; + } + + if (empty($task_list)) { + return array(); + } + + $tasks = array(); + foreach ($task_list as $task) { + $tuid = $this->_uniqueId($task['uid']); + $t = new Nag_Task($this->_buildTask($task)); + if ($t->alarm && $t->due && + $t->due - $t->alarm * 60 < $date) { + $tasks[] = $t; + } + } + + return $tasks; + } + + /** + * Retrieves sub-tasks from the database. + * + * @param string $parentId The parent id for the sub-tasks to retrieve. + * + * @return array List of sub-tasks. + */ + function getChildren($parentId) + { + list($parentId, $tasklist) = $this->_splitId($parentId); + + $task_list = $this->_store->getObjects(); + if (is_a($task_list, 'PEAR_Error')) { + return $task_list; + } + + if (empty($task_list)) { + return array(); + } + + $tasks = array(); + + foreach ($task_list as $task) { + if ($task['parent'] != $parentId) { + continue; + } + $t = new Nag_Task($this->_buildTask($task)); + $children = $this->getChildren($t->id); + if (is_a($children, 'PEAR_Error')) { + return $children; + } + $t->mergeChildren($children); + $tasks[] = $t; + } + + return $tasks; + } +} diff --git a/nag/lib/Driver/Sql.php b/nag/lib/Driver/Sql.php new file mode 100644 index 000000000..16003130a --- /dev/null +++ b/nag/lib/Driver/Sql.php @@ -0,0 +1,643 @@ + + * 'phptype' The database type (e.g. 'pgsql', 'mysql', etc.). + * 'charset' The database's internal charset. + * + * Required by some database implementations:
+ *   'hostspec'     The hostname of the database server.
+ *   'protocol'     The communication protocol ('tcp', 'unix', etc.).
+ *   'database'     The name of the database.
+ *   'username'     The username with which to connect to the database.
+ *   'password'     The password associated with 'username'.
+ *   'options'      Additional options to pass to the database.
+ *   'tty'          The TTY on which to connect to the database.
+ *   'port'         The port on which to connect to the database.
+ * + * Optional values when using separate reading and writing servers, for example + * in replication settings:
+ *   'splitread'   Boolean, whether to implement the separation or not.
+ *   'read'        Array containing the parameters which are different for
+ *                 the read database connection, currently supported
+ *                 only 'hostspec' and 'port' parameters.
+ * + * Optional parameters:
+ *   'table'     The name of the tasks table in 'database'.  Default is
+ *               'nag_tasks'.
+ * + * The table structure can be created by the scripts/sql/nag.sql script. + * + * $Horde: nag/lib/Driver/sql.php,v 1.105 2009/07/15 01:54:58 chuck Exp $ + * + * 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 Jon Parise + * @package Nag + */ +class Nag_Driver_Sql extends Nag_Driver { + + /** + * Handle for the current database connection. + * + * @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; + + /** + * Constructs a new SQL storage object. + * + * @param string $tasklist The tasklist to load. + * @param array $params A hash containing connection parameters. + */ + public function __construct($tasklist, $params = array()) + { + $this->_tasklist = $tasklist; + $this->_params = $params; + } + + /** + * Retrieves one task from the database. + * + * @param string $taskId The id of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function get($taskId) + { + /* Build the SQL query. */ + $query = sprintf('SELECT * FROM %s WHERE task_owner = ? and task_id = ?', + $this->_params['table']); + $values = array($this->_tasklist, $taskId); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::get(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Execute the query. */ + $result = $this->_db->query($query, $values); + + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (is_a($row, 'PEAR_Error')) { + return $row; + } + if ($row === null) { + return PEAR::raiseError(_("Task ID not found")); + } + + /* Decode and return the task. */ + return new Nag_Task($this->_buildTask($row)); + } + + /** + * Retrieves one task from the database by UID. + * + * @param string $uid The UID of the task to retrieve. + * + * @return Nag_Task A Nag_Task object. + */ + function getByUID($uid) + { + /* Build the SQL query. */ + $query = sprintf('SELECT * FROM %s WHERE task_uid = ?', + $this->_params['table']); + $values = array($uid); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::getByUID(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Execute the query. */ + $result = $this->_db->query($query, $values); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (is_a($row, 'PEAR_Error')) { + return $row; + } + if ($row === null) { + return PEAR::raiseError(_("Task UID not found")); + } + + /* Decode and return the task. */ + $this->_tasklist = $row['task_owner']; + return new Nag_Task($this->_buildTask($row)); + } + + /** + * Adds a task to the backend storage. + * + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification methods. + * @param string $uid A Unique Identifier for the task. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * + * @return string The Nag ID of the new task. + */ + function _add($name, $desc, $start = 0, $due = 0, $priority = 0, + $estimate = 0.0, $completed = 0, $category = '', $alarm = 0, + $methods = null, $uid = null, $parent = '', $private = false, + $owner = null, $assignee = null) + { + $taskId = md5(uniqid(mt_rand(), true)); + if ($uid === null) { + $uid = $this->generateUID(); + } + + $query = sprintf( + 'INSERT INTO %s (task_owner, task_creator, task_assignee, ' + . 'task_id, task_name, task_uid, task_desc, task_start, task_due, ' + . 'task_priority, task_estimate, task_completed, task_category, ' + . 'task_alarm, task_alarm_methods, task_private, task_parent) ' + . 'VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', + $this->_params['table']); + $values = array($this->_tasklist, + $owner, + $assignee, + $taskId, + Horde_String::convertCharset($name, Horde_Nls::getCharset(), $this->_params['charset']), + Horde_String::convertCharset($uid, Horde_Nls::getCharset(), $this->_params['charset']), + Horde_String::convertCharset($desc, Horde_Nls::getCharset(), $this->_params['charset']), + (int)$start, + (int)$due, + (int)$priority, + number_format($estimate, 2), + (int)$completed, + Horde_String::convertCharset($category, Horde_Nls::getCharset(), $this->_params['charset']), + (int)$alarm, + serialize(Horde_String::convertCharset($methods, Horde_Nls::getCharset(), $this->_params['charset'])), + (int)$private, + Horde_String::convertCharset($parent, Horde_Nls::getCharset(), $this->_params['charset'])); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::_add(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Attempt the insertion query. */ + $result = $this->_write_db->query($query, $values); + + /* Return an error immediately if the query failed. */ + if (is_a($result, 'PEAR_Error')) { + Horde::logMessage($result, __FILE__, __LINE__, PEAR_LOG_ERR); + return $result; + } + + return $taskId; + } + + /** + * Modifies an existing task. + * + * @param string $taskId The task to modify. + * @param string $name The name (short) of the task. + * @param string $desc The description (long) of the task. + * @param integer $start The start date of the task. + * @param integer $due The due date of the task. + * @param integer $priority The priority of the task. + * @param float $estimate The estimated time to complete the task. + * @param integer $completed The completion state of the task. + * @param string $category The category of the task. + * @param integer $alarm The alarm associated with the task. + * @param array $methods The overridden alarm notification + * methods. + * @param string $parent The parent task. + * @param boolean $private Whether the task is private. + * @param string $owner The owner of the event. + * @param string $assignee The assignee of the event. + * @param integer $completed_date The task's completion date. + */ + function _modify($taskId, $name, $desc, $start = 0, $due = 0, + $priority = 0, $estimate = 0.0, $completed = 0, + $category = '', $alarm = 0, $methods = null, + $parent = '', $private = false, $owner = null, + $assignee = null, $completed_date = null) + { + $query = sprintf('UPDATE %s SET' . + ' task_creator = ?, ' . + ' task_assignee = ?, ' . + ' task_name = ?, ' . + ' task_desc = ?, ' . + ' task_start = ?, ' . + ' task_due = ?, ' . + ' task_priority = ?, ' . + ' task_estimate = ?, ' . + ' task_completed = ?, ' . + ' task_completed_date = ?, ' . + ' task_category = ?, ' . + ' task_alarm = ?, ' . + ' task_alarm_methods = ?, ' . + ' task_parent = ?, ' . + ' task_private = ? ' . + 'WHERE task_owner = ? AND task_id = ?', + $this->_params['table']); + $values = array($owner, + $assignee, + Horde_String::convertCharset($name, Horde_Nls::getCharset(), $this->_params['charset']), + Horde_String::convertCharset($desc, Horde_Nls::getCharset(), $this->_params['charset']), + (int)$start, + (int)$due, + (int)$priority, + number_format($estimate, 2), + (int)$completed, + (int)$completed_date, + Horde_String::convertCharset($category, Horde_Nls::getCharset(), $this->_params['charset']), + (int)$alarm, + serialize(Horde_String::convertCharset($methods, Horde_Nls::getCharset(), $this->_params['charset'])), + Horde_String::convertCharset($parent, Horde_Nls::getCharset(), $this->_params['charset']), + (int)$private, + $this->_tasklist, + $taskId); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::modify(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Attempt the update query. */ + $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; + } + + /** + * Moves a task to a different tasklist. + * + * @param string $taskId The task to move. + * @param string $newTasklist The new tasklist. + */ + function _move($taskId, $newTasklist) + { + $query = sprintf('UPDATE %s SET task_owner = ? WHERE task_owner = ? AND task_id = ?', + $this->_params['table']); + $values = array($newTasklist, $this->_tasklist, $taskId); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::move(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Attempt the move query. */ + $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; + } + + /** + * Deletes a task from the backend. + * + * @param string $taskId The task to delete. + */ + function _delete($taskId) + { + /* Get the task's details for use later. */ + $task = $this->get($taskId); + + $query = sprintf('DELETE FROM %s WHERE task_owner = ? AND task_id = ?', + $this->_params['table']); + $values = array($this->_tasklist, $taskId); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::delete(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Attempt the delete query. */ + $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; + } + + /** + * Deletes all tasks from the backend. + * + * @return mixed True on success, PEAR_Error on failure. + */ + function deleteAll() + { + $query = sprintf('DELETE FROM %s WHERE task_owner = ?', + $this->_params['table']); + $values = array($this->_tasklist); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::deleteAll(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Attempt the delete query. */ + $result = $this->_write_db->query($query, $values); + + return is_a($result, 'PEAR_Error') ? $result : true; + } + + /** + * Retrieves tasks from the database. + * + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks, + * 3 = future tasks, 4 = future and incomplete + * tasks). + * + * @return mixed True on success, PEAR_Error on failure. + */ + function retrieve($completed = 1) + { + /* Build the SQL query. */ + $query = sprintf('SELECT * FROM %s WHERE task_owner = ?', + $this->_params['table']); + $values = array($this->_tasklist); + switch ($completed) { + case 0: + $query .= ' AND task_completed = 0 AND (task_start IS NULL OR task_start = 0 OR task_start < ?)'; + $values[] = time(); + break; + case 2: + $query .= ' AND task_completed = 1'; + break; + case 3: + $query .= ' AND task_completed = 0 AND task_start > ?'; + $values[] = time(); + break; + case 4: + $query .= ' AND task_completed = 0'; + break; + } + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::retrieve(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Execute the query. */ + $result = $this->_db->query($query, $values); + + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (is_a($row, 'PEAR_Error')) { + return $row; + } + + /* Store the retrieved values in a fresh task list. */ + $this->tasks = new Nag_Task(); + $dict = array(); + while ($row && !is_a($row, 'PEAR_Error')) { + $task = new Nag_Task($this->_buildTask($row)); + + /* Add task directly if it is a root task, otherwise store it in + * the dictionary. */ + if (empty($row['task_parent'])) { + $this->tasks->add($task); + } else { + $dict[$row['task_id']] = $task; + } + + /* Advance to the new row in the result set. */ + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + } + $result->free(); + + /* Build a tree from the subtasks. */ + foreach (array_keys($dict) as $key) { + $task = $this->tasks->get($dict[$key]->parent_id); + if ($task) { + $task->add($dict[$key]); + } elseif (isset($dict[$dict[$key]->parent_id])) { + $dict[$dict[$key]->parent_id]->add($dict[$key]); + } else { + $this->tasks->add($dict[$key]); + } + } + + return true; + } + + /** + * Retrieves sub-tasks from the database. + * + * @param string $parentId The parent id for the sub-tasks to retrieve. + * + * @return array List of sub-tasks. + */ + function getChildren($parentId) + { + /* Build the SQL query. */ + $query = sprintf('SELECT * FROM %s WHERE task_owner = ? AND task_parent = ?', + $this->_params['table']); + $values = array($this->_tasklist, $parentId); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql::getChildren(): %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Execute the query. */ + $result = $this->_db->query($query, $values); + + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + if (is_a($row, 'PEAR_Error')) { + return $row; + } + + /* Store the retrieved values in a fresh task list. */ + $tasks = array(); + while ($row && !is_a($row, 'PEAR_Error')) { + $task = new Nag_Task($this->_buildTask($row)); + $children = $this->getChildren($task->id); + if (is_a($children, 'PEAR_Error')) { + return $children; + } + $task->mergeChildren($children); + $tasks[] = $task; + + /* Advance to the new row in the result set. */ + $row = $result->fetchRow(DB_FETCHMODE_ASSOC); + } + $result->free(); + + return $tasks; + } + + /** + * Lists all alarms near $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array An array of tasks that have alarms that match. + */ + function listAlarms($date) + { + $q = 'SELECT * FROM ' . $this->_params['table']; + $q .= ' WHERE task_owner = ?'; + $q .= ' AND task_alarm > 0'; + $q .= ' AND (task_due - (task_alarm * 60) <= ?)'; + $q .= ' AND task_completed = 0'; + $values = array($this->_tasklist, $date); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('SQL alarms list by %s: table = %s; query = "%s"', + Horde_Auth::getAuth(), $this->_params['table'], $q), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + + /* Run the query. */ + $qr = $this->_db->getAll($q, $values, DB_FETCHMODE_ASSOC); + if (is_a($qr, 'PEAR_Error')) { + return $qr; + } + + $tasks = array(); + foreach ($qr as $row) { + $tasks[$row['task_id']] = new Nag_Task($this->_buildTask($row)); + } + return $tasks; + } + + /** + */ + function _buildTask($row) + { + /* Make sure tasks always have a UID. */ + if (empty($row['task_uid'])) { + $row['task_uid'] = $this->generateUID(); + + $query = 'UPDATE ' . $this->_params['table'] . + ' SET task_uid = ?' . + ' WHERE task_owner = ? AND task_id = ?'; + $values = array($row['task_uid'], $row['task_owner'], $row['task_id']); + + /* Log the query at a DEBUG log level. */ + Horde::logMessage(sprintf('Nag_Driver_Sql adding missing UID: %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + $this->_write_db->query($query, $values); + } + + /* Create a new task based on $row's values. */ + return array('tasklist_id' => $row['task_owner'], + 'task_id' => $row['task_id'], + 'uid' => Horde_String::convertCharset($row['task_uid'], $this->_params['charset']), + 'parent' => $row['task_parent'], + 'owner' => $row['task_creator'], + 'assignee' => $row['task_assignee'], + 'name' => Horde_String::convertCharset($row['task_name'], $this->_params['charset']), + 'desc' => Horde_String::convertCharset($row['task_desc'], $this->_params['charset']), + 'category' => Horde_String::convertCharset($row['task_category'], $this->_params['charset']), + 'start' => $row['task_start'], + 'due' => $row['task_due'], + 'priority' => $row['task_priority'], + 'estimate' => (float)$row['task_estimate'], + 'completed' => $row['task_completed'], + 'completed_date' => isset($row['task_completed_date']) ? $row['task_completed_date'] : null, + 'alarm' => $row['task_alarm'], + 'methods' => Horde_String::convertCharset(@unserialize($row['task_alarm_methods']), $this->_params['charset']), + 'private' => $row['task_private']); + } + + /** + * Attempts to open a connection to the SQL server. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function initialize() + { + Horde::assertDriverConfig($this->_params, 'storage', + array('phptype', 'charset')); + + if (!isset($this->_params['database'])) { + $this->_params['database'] = ''; + } + if (!isset($this->_params['username'])) { + $this->_params['username'] = ''; + } + if (!isset($this->_params['hostspec'])) { + $this->_params['hostspec'] = ''; + } + if (!isset($this->_params['table'])) { + $this->_params['table'] = 'nag_tasks'; + } + + /* 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']), + 'ssl' => !empty($this->_params['ssl']))); + if (is_a($this->_write_db, 'PEAR_Error')) { + return $this->_write_db; + } + + /* 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']), + 'ssl' => !empty($params['ssl']))); + if (is_a($this->_db, 'PEAR_Error')) { + return $this->_db; + } + + /* 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 the writer too. */ + $this->_db =& $this->_write_db; + } + + return true; + } + +} diff --git a/nag/lib/Forms/CreateTaskList.php b/nag/lib/Forms/CreateTaskList.php new file mode 100644 index 000000000..837dee4d1 --- /dev/null +++ b/nag/lib/Forms/CreateTaskList.php @@ -0,0 +1,51 @@ + + * @since Nag 2.2 + * @package Nag + */ +class Nag_CreateTaskListForm extends Horde_Form { + + function Nag_CreateTaskListForm(&$vars) + { + parent::Horde_Form($vars, _("Create Task List")); + + $this->addVariable(_("Task List Name"), 'name', 'text', true); + $this->addVariable(_("Task List Description"), 'description', 'longtext', false, false, null, array(4, 60)); + + $this->setButtons(array(_("Create"))); + } + + function execute() + { + // Create new share. + $tasklist = $GLOBALS['nag_shares']->newShare(md5(microtime())); + if (is_a($tasklist, 'PEAR_Error')) { + return $tasklist; + } + $tasklist->set('name', $this->_vars->get('name')); + $tasklist->set('desc', $this->_vars->get('description')); + return $GLOBALS['nag_shares']->addShare($tasklist); + } + +} diff --git a/nag/lib/Forms/DeleteTaskList.php b/nag/lib/Forms/DeleteTaskList.php new file mode 100644 index 000000000..aa077b814 --- /dev/null +++ b/nag/lib/Forms/DeleteTaskList.php @@ -0,0 +1,91 @@ + + * @since Nag 2.2 + * @package Nag + */ +class Nag_DeleteTaskListForm extends Horde_Form { + + /** + * Task list being deleted + */ + var $_tasklist; + + function Nag_DeleteTaskListForm(&$vars, &$tasklist) + { + $this->_tasklist = &$tasklist; + parent::Horde_Form($vars, sprintf(_("Delete %s"), $tasklist->get('name'))); + + $this->addHidden('', 't', 'text', true); + $this->addVariable(sprintf(_("Really delete the task list \"%s\"? This cannot be undone and all data on this task list will be permanently removed."), $this->_tasklist->get('name')), 'desc', 'description', false); + + $this->setButtons(array(_("Delete"), _("Cancel"))); + } + + function execute() + { + // If cancel was clicked, return false. + if ($this->_vars->get('submitbutton') == _("Cancel")) { + return false; + } + + if ($this->_tasklist->get('owner') != Horde_Auth::getAuth()) { + return PEAR::raiseError(_("Permission denied")); + } + + // Delete the task list. + $storage = &Nag_Driver::singleton($this->_tasklist->getName()); + $result = $storage->deleteAll(); + if (is_a($result, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Unable to delete \"%s\": %s"), $this->_tasklist->get('name'), $result->getMessage())); + } else { + // Remove share and all groups/permissions. + $result = $GLOBALS['nag_shares']->removeShare($this->_tasklist); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + + // Make sure we still own at least one task list. + if (count(Nag::listTasklists(true)) == 0) { + // If the default share doesn't exist then create it. + if (!$GLOBALS['nag_shares']->exists(Horde_Auth::getAuth())) { + require_once 'Horde/Identity.php'; + $identity = &Identity::singleton(); + $name = $identity->getValue('fullname'); + if (trim($name) == '') { + $name = Horde_Auth::removeHook(Horde_Auth::getAuth()); + } + $tasklist = &$GLOBALS['nag_shares']->newShare(Horde_Auth::getAuth()); + if (is_a($tasklist, 'PEAR_Error')) { + return; + } + $tasklist->set('name', sprintf(_("%s's Task List"), $name)); + $GLOBALS['nag_shares']->addShare($tasklist); + } + } + + return true; + } + +} diff --git a/nag/lib/Forms/EditTaskList.php b/nag/lib/Forms/EditTaskList.php new file mode 100644 index 000000000..a1071291f --- /dev/null +++ b/nag/lib/Forms/EditTaskList.php @@ -0,0 +1,57 @@ + + * @since Nag 2.2 + * @package Nag + */ +class Nag_EditTaskListForm extends Horde_Form { + + /** + * Task list being edited + */ + var $_tasklist; + + function Nag_EditTaskListForm(&$vars, &$tasklist) + { + $this->_tasklist = &$tasklist; + parent::Horde_Form($vars, sprintf(_("Edit %s"), $tasklist->get('name'))); + + $this->addHidden('', 't', 'text', true); + $this->addVariable(_("Task List Name"), 'name', 'text', true); + $this->addVariable(_("Task List Description"), 'description', 'longtext', false, false, null, array(4, 60)); + + $this->setButtons(array(_("Save"))); + } + + function execute() + { + $this->_tasklist->set('name', $this->_vars->get('name')); + $this->_tasklist->set('desc', $this->_vars->get('description')); + $result = $this->_tasklist->save(); + if (is_a($result, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Unable to save task list \"%s\": %s"), $id, $result->getMessage())); + } + return true; + } + +} diff --git a/nag/lib/Forms/task.php b/nag/lib/Forms/task.php new file mode 100644 index 000000000..ac61e066a --- /dev/null +++ b/nag/lib/Forms/task.php @@ -0,0 +1,314 @@ + + * @since Nag 1.2 + * @package Nag + */ +class Nag_TaskForm extends Horde_Form { + + var $delete; + + function Nag_TaskForm(&$vars, $title = '', $delete = false) + { + parent::Horde_Form($vars, $title); + $this->delete = $delete; + + $tasklists = Nag::listTasklists(false, PERMS_EDIT); + $tasklist_enums = array(); + foreach ($tasklists as $tl_id => $tl) { + $tasklist_enums[$tl_id] = $tl->get('name'); + } + + $tasklist = $vars->get('tasklist_id'); + if (empty($tasklist)) { + reset($tasklists); + $tasklist = key($tasklists); + } + $tasks = Nag::listTasks(null, null, null, array($tasklist), 4); + $task_enums = array('' => _("No parent task")); + $tasks->reset(); + while ($task = $tasks->each()) { + if ($vars->get('task_id') == $task->id) { + continue; + } + $task_enums[htmlspecialchars($task->id)] = str_repeat(' ', $task->indent * 4) . htmlentities($task->name, ENT_COMPAT, Horde_Nls::getCharset()); + } + $users = array(); + $share = &$GLOBALS['nag_shares']->getShare($tasklist); + if (!is_a($share, 'PEAR_Error')) { + $users = $share->listUsers(PERMS_READ); + $groups = $share->listGroups(PERMS_READ); + if (count($groups)) { + require_once 'Horde/Group.php'; + $horde_group = &Group::singleton(); + foreach ($groups as $group) { + $users = array_merge($users, + $horde_group->listAllUsers($group)); + } + } + $users = array_flip($users); + } + if (count($users)) { + require_once 'Horde/Identity.php'; + foreach (array_keys($users) as $user) { + $identity = &Identity::singleton('none', $user); + $fullname = $identity->getValue('fullname'); + $users[$user] = strlen($fullname) ? $fullname : $user; + } + } + $priorities = array(1 => '1 ' . _("(highest)"), 2 => 2, 3 => 3, + 4 => 4, 5 => '5 ' . _("(lowest)")); + + $this->addHidden('', 'actionID', 'text', true); + $this->addHidden('', 'task_id', 'text', false); + $this->addHidden('', 'old_tasklist', 'text', false); + + $this->addVariable(_("Name"), 'name', 'text', true); + if (!$GLOBALS['prefs']->isLocked('default_tasklist') && + count($tasklists) > 1) { + $v = &$this->addVariable(_("Task List"), 'tasklist_id', 'enum', true, false, false, array($tasklist_enums)); + $v->setAction(Horde_Form_Action::factory('reload')); + } + + $v = &$this->addVariable(_("Parent task"), 'parent', 'enum', false, false, false, array($task_enums)); + $v->setOption('htmlchars', true); + + if (class_exists('Horde_Form_Type_category')) { + $this->addVariable(_("Category"), 'category', 'category', false); + } else { + require_once 'Horde/Prefs/CategoryManager.php'; + require_once 'Horde/Array.php'; + $values = Horde_Array::valuesToKeys(Prefs_CategoryManager::get()); + $this->addVariable(_("Category"), 'category', 'enum', false, false, false, array($values, _("Unfiled"))); + } + + $this->addVariable(_("Assignee"), 'assignee', 'enum', false, false, + null, array($users, _("None"))); + $this->addVariable(_("Private?"), 'private', 'boolean', false); + $this->addVariable(_("Due By"), 'due', 'nag_due', false); + $this->addVariable(_("Delay Start Until"), 'start', 'nag_start', false); + $this->addVariable(_("Alarm"), 'alarm', 'nag_alarm', false); + $v = &$this->addVariable(_("Notification"), 'methods', 'nag_method', false); + $v->setAction(Horde_Form_Action::factory('reload')); + + $v = &$this->addVariable(_("Priority"), 'priority', 'enum', false, false, false, array($priorities)); + $v->setDefault(3); + + $this->addVariable(_("Estimated Time"), 'estimate', 'number', false); + $this->addVariable(_("Completed?"), 'completed', 'boolean', false); + $this->addVariable(_("Description"), 'desc', 'longtext', false, false, + Horde::callHook('_nag_hook_description_help', array(), 'nag', '')); + + $buttons = array(_("Save")); + if ($delete) { + $buttons[] = _("Delete this task"); + } + $this->setButtons($buttons); + } + + function renderActive() + { + return parent::renderActive(new Nag_TaskForm_Renderer(array('varrenderer_driver' => array('nag', 'nag')), $this->delete), $this->_vars, 'task.php', 'post'); + } + +} + +class Nag_TaskForm_Renderer extends Horde_Form_Renderer { + + var $delete; + + function Nag_TaskForm_Renderer($params = array(), $delete = false) + { + parent::Horde_Form_Renderer($params); + $this->delete = $delete; + } + + function _renderSubmit($submit, $reset) + { +?>
+ " /> +delete): ?> + " /> + +
+
+ + * @since Nag 3.0 + * @package Nag + */ +class Horde_Form_Type_nag_method extends Horde_Form_Type { + + function getInfo(&$vars, &$var, &$info) + { + $info = $var->getValue($vars); + if (empty($info['on'])) { + $info = array(); + return; + } + + $types = $vars->get('task_alarms'); + $info = array(); + if (!empty($types)) { + foreach ($types as $type) { + $info[$type] = array(); + switch ($type){ + case 'notify': + $info[$type]['sound'] = $vars->get('task_alarms_sound'); + break; + case 'mail': + $info[$type]['email'] = $vars->get('task_alarms_email'); + break; + case 'popup': + break; + } + } + } + } + + function isValid(&$var, &$vars, $value, &$message) + { + $alarm = $vars->get('alarm'); + if ($value['on'] && !$alarm['on']){ + $message = _("An alarm must be set to specify a notification method"); + return false; + } + return true; + } + +} + +/** + * The Horde_Form_Type_nag_alarm class provides a form field for editing task + * alarms. + * + * @author Jan Schneider + * @since Nag 2.2 + * @package Nag + */ +class Horde_Form_Type_nag_alarm extends Horde_Form_Type { + + function getInfo(&$vars, &$var, &$info) + { + $info = $var->getValue($vars); + if (!$info['on']) { + $info = 0; + } + $info = $info['value'] * $info['unit']; + } + + function isValid(&$var, &$vars, $value, &$message) + { + if ($value['on']) { + if ($vars->get('due_type') == 'none') { + $message = _("A due date must be set to enable alarms."); + return false; + } + if (empty($value['value'])) { + $message = _("The alarm value must not be empty."); + return false; + } + } + + return true; + } + +} + +/** + * The Horde_Form_Type_nag_due class provides a form field for editing + * task due dates. + * + * @author Chuck Hagenbuch + * @since Nag 2.2 + * @package Nag + */ +class Horde_Form_Type_nag_due extends Horde_Form_Type { + + function getInfo(&$vars, &$var, &$info) + { + $due_type = $vars->get('due_type'); + $due = $vars->get('due'); + if (is_array($due)) { + $due_day = !empty($due['day']) ? $due['day'] : null; + $due_month = !empty($due['month']) ? $due['month'] : null; + $due_year = !empty($due['year']) ? $due['year'] : null; + $due_hour = Horde_Util::getFormData('due_hour'); + $due_minute = Horde_Util::getFormData('due_minute'); + if (!$GLOBALS['prefs']->getValue('twentyFour')) { + $due_am_pm = Horde_Util::getFormData('due_am_pm'); + if ($due_am_pm == 'pm') { + if ($due_hour < 12) { + $due_hour = $due_hour + 12; + } + } else { + // Adjust 12:xx AM times. + if ($due_hour == 12) { + $due_hour = 0; + } + } + } + + $due = (int)strtotime("$due_month/$due_day/$due_year $due_hour:$due_minute"); + } + + $info = strcasecmp($due_type, 'none') ? $due : 0; + } + + function isValid(&$var, &$vars, $value, &$message) + { + return true; + } + +} + +/** + * The Horde_Form_Type_nag_start class provides a form field for editing + * task delayed start dates. + * + * @author Chuck Hagenbuch + * @since Nag 2.2 + * @package Nag + */ +class Horde_Form_Type_nag_start extends Horde_Form_Type { + + function getInfo(&$vars, &$var, &$info) + { + $start_type = $vars->get('start_date'); + $start = $vars->get('start'); + if (is_array($start)) { + $start_day = !empty($start['day']) ? $start['day'] : null; + $start_month = !empty($start['month']) ? $start['month'] : null; + $start_year = !empty($start['year']) ? $start['year'] : null; + $start = (int)strtotime("$start_month/$start_day/$start_year"); + } + + $info = strcasecmp($start_type, 'none') ? $start : 0; + } + + function isValid(&$var, &$vars, $value, &$message) + { + return true; + } + +} diff --git a/nag/lib/Nag.php b/nag/lib/Nag.php new file mode 100644 index 000000000..66fa2cebf --- /dev/null +++ b/nag/lib/Nag.php @@ -0,0 +1,1375 @@ + + * @package Nag + */ +class Nag +{ + /** + * Sort by task name. + */ + const SORT_NAME = 'name'; + + /** + * Sort by priority. + */ + const SORT_PRIORITY = 'priority'; + + /** + * Sort by due date. + */ + const SORT_DUE = 'due'; + + /** + * Sort by completion. + */ + const SORT_COMPLETION = 'completed'; + + /** + * Sort by category. + */ + const SORT_CATEGORY = 'category'; + + /** + * Sort by owner. + */ + const SORT_OWNER = 'tasklist'; + + /** + * Sort by estimate. + */ + const SORT_ESTIMATE = 'estimate'; + + /** + * Sort by assignee. + */ + const SORT_ASSIGNEE = 'assignee'; + + /** + * Sort in ascending order. + */ + const SORT_ASCEND = 0; + + /** + * Sort in descending order. + */ + const SORT_DESCEND = 1; + + public static function secondsToString($seconds) + { + $hours = floor($seconds / 3600); + $minutes = ($seconds / 60) % 60; + + if ($hours > 1) { + if ($minutes == 0) { + return sprintf(_("%d hours"), $hours); + } elseif ($minutes == 1) { + return sprintf(_("%d hours, %d minute"), $hours, $minutes); + } else { + return sprintf(_("%d hours, %d minutes"), $hours, $minutes); + } + } elseif ($hours == 1) { + if ($minutes == 0) { + return sprintf(_("%d hour"), $hours); + } elseif ($minutes == 1) { + return sprintf(_("%d hour, %d minute"), $hours, $minutes); + } else { + return sprintf(_("%d hour, %d minutes"), $hours, $minutes); + } + } else { + if ($minutes == 0) { + return _("no time"); + } elseif ($minutes == 1) { + return sprintf(_("%d minute"), $minutes); + } else { + return sprintf(_("%d minutes"), $minutes); + } + } + } + + /** + * Retrieves the current user's task list from storage. + * + * This function will also sort the resulting list, if requested. + * + * @param string $sortby The field by which to sort (Nag::SORT_*). + * @param integer $sortdir The direction by which to sort + * (Nag::SORT_ASCEND, Nag::SORT_DESCEND). + * @param string $altsortby The secondary sort field. + * @param array $tasklists An array of tasklist to display or + * null/empty to display taskslists + * $GLOBALS['display_tasklists']. + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks, + * 3 = future tasks, 4 = future and incomplete + * tasks). + * + * @return Nag_Task A list of the requested tasks. + */ + function listTasks($sortby = null, + $sortdir = null, + $altsortby = null, + $tasklists = null, + $completed = null) + { + global $prefs, $registry; + + if (is_null($sortby)) { + $sortby = $prefs->getValue('sortby'); + } + if (is_null($sortdir)) { + $sortdir = $prefs->getValue('sortdir'); + } + if (is_null($altsortby)) { + $altsortby = $prefs->getValue('altsortby'); + } + + if (is_null($tasklists)) { + $tasklists = $GLOBALS['display_tasklists']; + } + if (!is_array($tasklists)) { + $tasklists = array($tasklists); + } + if (is_null($completed)) { + $completed = $prefs->getValue('show_completed'); + } + + $tasks = new Nag_Task(); + foreach ($tasklists as $tasklist) { + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($tasklist); + + /* Retrieve the tasklist from storage. */ + $result = $storage->retrieve($completed); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + $tasks->mergeChildren($storage->tasks->children); + } + + /* Process all tasks. */ + $tasks->process(); + + /* We look for registered apis that support listAs(taskHash). */ + $apps = @unserialize($prefs->getValue('show_external')); + if (is_array($apps)) { + foreach ($apps as $app) { + if ($app != 'nag' && + $registry->hasMethod('getListTypes', $app)) { + $types = $registry->callByPackage($app, 'getListTypes'); + if (is_a($types, 'PEAR_Error')) { + continue; + } + if (!empty($types['taskHash'])) { + $newtasks = $registry->callByPackage($app, 'listAs', array('taskHash')); + if (is_a($newtasks, 'PEAR_Error')) { + Horde::logMessage($newtasks, __FILE__, __LINE__, PEAR_LOG_ERR); + } else { + foreach ($newtasks as $task) { + $task['tasklist_id'] = '**EXTERNAL**'; + $task['tasklist_name'] = $registry->get('name', $app); + $tasks->add(new Nag_Task($task)); + } + } + } + } + } + } + + /* Sort the array. */ + $tasks->sort($sortby, $sortdir, $altsortby); + + return $tasks; + } + + /** + * Returns a single task. + * + * @param string $tasklist A tasklist. + * @param string $task A task id. + * + * @return array The task hash. + */ + function getTask($tasklist, $task) + { + $storage = Nag_Driver::singleton($tasklist); + $task = $storage->get($task); + if (is_a($task, 'PEAR_Error')) { + return $task; + } + $task->process(); + return $task; + } + + /** + * Returns the number of taks in task lists that the current user owns. + * + * @return integer The number of tasks that the user owns. + */ + function countTasks() + { + static $count; + if (isset($count)) { + return $count; + } + + $tasklists = Nag::listTasklists(true, PERMS_ALL); + + $count = 0; + foreach (array_keys($tasklists) as $tasklist) { + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($tasklist); + $storage->retrieve(); + + /* Retrieve the task list from storage. */ + $count += $storage->tasks->count(); + } + + return $count; + } + + /** + * Imports one or more tasks parsed from a string. + * + * @param string $text The text to parse into + * @param string $tasklist The tasklist into which the task will be + * imported. If 'null', the user's default + * tasklist will be used. + * + * @return array The UIDs of all tasks that were added. + */ + public static function createTasksFromText($text, $tasklist = null) + { + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_EDIT); + } + if (!array_key_exists($tasklist, Nag::listTasklists(false, PERMS_EDIT))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $storage = Nag_Driver::singleton($tasklist); + $dateParser = Horde_Date_Parser::factory(); + + $quickParser = new Nag_QuickParser(); + $tasks = $quickParser->parse($text); + + $uids = array(); + foreach ($tasks as &$task) { + if (!is_array($task)) { + $name = $task; + $task = array($name); + } + + $r = $dateParser->parse($task[0], array('return' => 'result')); + if ($d = $r->guess()) { + $name = $r->untaggedText(); + $due = $d->timestamp(); + } else { + $name = $task[0]; + $due = 0; + } + + if (isset($task['parent'])) { + $newTask = $storage->add($name, '', 0, $due, 3, 0.0, 0, '', 0, null, null, $tasks[$task['parent']]['id']); + } else { + $newTask = $storage->add($name, '', 0, $due, 3); + } + if (is_a($newTask, 'PEAR_Error')) { + return $newTask; + } + $uids[] = $newTask[1]; + $task['id'] = $newTask[0]; + } + + return $uids; + } + + /** + * Returns all the alarms active right on $date. + * + * @param integer $date The unix epoch time to check for alarms. + * + * @return array The alarms (taskId) active on $date. + */ + function listAlarms($date, $tasklists = null) + { + if (is_null($tasklists)) { + $tasklists = $GLOBALS['display_tasklists']; + } + + $tasks = array(); + foreach ($tasklists as $tasklist) { + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($tasklist); + + /* Retrieve the alarms for the task list. */ + $newtasks = $storage->listAlarms($date); + if (is_a($newtasks, 'PEAR_Error')) { + return $newtasks; + } + + /* Don't show an alarm for complete tasks. */ + foreach ($newtasks as $taskID => $task) { + if (!empty($task->completed)) { + unset($newtasks[$taskID]); + } + } + + $tasks = array_merge($tasks, $newtasks); + } + + return $tasks; + } + + /** + * Lists all task lists a user has access to. + * + * @param boolean $owneronly Only return tasklists that this user owns? + * Defaults to false. + * @param integer $permission The permission to filter tasklists by. + * + * @return array The task lists. + */ + function listTasklists($owneronly = false, $permission = PERMS_SHOW) + { + $tasklists = $GLOBALS['nag_shares']->listShares(Horde_Auth::getAuth(), $permission, $owneronly ? Horde_Auth::getAuth() : null, 0, 0, 'name'); + if (is_a($tasklists, 'PEAR_Error')) { + Horde::logMessage($tasklists, __FILE__, __LINE__, PEAR_LOG_ERR); + return array(); + } + + return $tasklists; + } + + /** + * Filters data based on permissions. + * + * @param array $in The data we want filtered. + * @param string $filter What type of data we are filtering. + * @param integer $permission The PERMS_* constant we will filter on. + * + * @return array The filtered data. + */ + function permissionsFilter($in, $permission = PERMS_READ) + { + // FIXME: Must find a way to check individual tasklists for + // permission. Can't specify attributes as it does not check for the + // 'key' attribute, only 'name' and 'value'. + return $in; + + // Broken code: + $out = array(); + + foreach ($in as $sourceId => $source) { + if ($in->hasPermission($permission)) { + $out[$sourceId] = $source; + } + } + + return $out; + } + + /** + * Returns the default tasklist for the current user at the specified + * permissions level. + */ + function getDefaultTasklist($permission = PERMS_SHOW) + { + global $prefs; + + $default_tasklist = $prefs->getValue('default_tasklist'); + $tasklists = Nag::listTasklists(false, $permission); + + if (isset($tasklists[$default_tasklist])) { + return $default_tasklist; + } elseif ($prefs->isLocked('default_tasklist')) { + return Horde_Auth::getAuth(); + } elseif (count($tasklists)) { + reset($tasklists); + return key($tasklists); + } + + return false; + } + + /** + * Builds the HTML for a priority selection widget. + * + * @param string $name The name of the widget. + * @param integer $selected The default selected priority. + * + * @return string The HTML "; + for ($priority = 1; $priority <= 5; $priority++) { + $html .= "'; + } + $html .= "\n"; + + return $html; + } + + /** + * Builds the HTML for a checkbox widget. + * + * @param string $name The name of the widget. + * @param integer $checked The default checkbox state. + * + * @return string HTML for a checkbox representing the completion state. + */ + function buildCheckboxWidget($name, $checked = 0) + { + $name = htmlspecialchars($name); + return "'; + } + + /** + * Formats the given Unix-style date string. + * + * @param string $unixdate The Unix-style date value to format. + * @param boolean $hours Whether to add hours. + * + * @return string The formatted due date string. + */ + function formatDate($unixdate = '', $hours = true) + { + global $prefs; + + if (empty($unixdate)) { + return ''; + } + + $date = strftime($prefs->getValue('date_format'), $unixdate); + if (!$hours) { + return $date; + } + + return sprintf(_("%s at %s"), + $date, + strftime($prefs->getValue('twentyFour') ? '%H:%M' : '%I:%M %p', $unixdate)); + } + + /** + * Returns the string representation of the given completion status. + * + * @param int $completed The completion value. + * + * @return string The HTML representation of $completed. + */ + function formatCompletion($completed) + { + return $completed ? + Horde::img('checked.png', _("Completed")) : + Horde::img('unchecked.png', _("Not Completed")); + } + + /** + * Returns a colored representation of a priority. + * + * @param int $priority The priority level. + * + * @return string The HTML representation of $priority. + */ + function formatPriority($priority) + { + return '' . (int)$priority . + ''; + } + + /** + * Returns the string matching the given alarm value. + * + * @param int $value The alarm value in minutes. + * + * @return string The formatted alarm string. + */ + function formatAlarm($value) + { + if ($value) { + if ($value % 10080 == 0) { + $alarm_value = $value / 10080; + $alarm_unit = _("Week(s)"); + } elseif ($value % 1440 == 0) { + $alarm_value = $value / 1440; + $alarm_unit = _("Day(s)"); + } elseif ($value % 60 == 0) { + $alarm_value = $value / 60; + $alarm_unit = _("Hour(s)"); + } else { + $alarm_value = $value; + $alarm_unit = _("Minute(s)"); + } + $alarm_text = "$alarm_value $alarm_unit"; + } else { + $alarm_text = _("None"); + } + return $alarm_text; + } + + /** + * Returns the full name and a compose to message an assignee. + * + * @param string $assignee The assignee's user name. + * @param boolean $link Whether to link to an email compose screen. + * + * @return string The formatted assignee name. + */ + function formatAssignee($assignee, $link = false) + { + if (!strlen($assignee)) { + return ''; + } + + require_once 'Horde/Identity.php'; + $identity = Identity::singleton('none', $assignee); + $fullname = $identity->getValue('fullname'); + if (!strlen($fullname)) { + $fullname = $assignee; + } + $email = $identity->getValue('from_addr'); + if ($link && !empty($email) && + $GLOBALS['registry']->hasMethod('mail/compose')) { + return Horde::link($GLOBALS['registry']->call( + 'mail/compose', + array(array('to' => $email)))) + . @htmlspecialchars($fullname . ' <' . $email . '>', + ENT_COMPAT, Horde_Nls::getCharset()) + . ''; + } else { + return @htmlspecialchars($fullname, ENT_COMPAT, Horde_Nls::getCharset()); + } + } + + /** + * Returns the specified permission for the current user. + * + * @since Nag 2.1 + * + * @param string $permission A permission, currently only 'max_tasks'. + * + * @return mixed The value of the specified permission. + */ + function hasPermission($permission) + { + global $perms; + + if (!$perms->exists('nag:' . $permission)) { + return true; + } + + $allowed = $perms->getPermissions('nag:' . $permission); + if (is_array($allowed)) { + switch ($permission) { + case 'max_tasks': + $allowed = max($allowed); + break; + } + } + + return $allowed; + } + + /** + * Initial app setup code. + */ + function initialize() + { + /* Store the request timestamp if it's not already present. */ + if (!isset($_SERVER['REQUEST_TIME'])) { + $_SERVER['REQUEST_TIME'] = time(); + } + + // Update the preference for what task lists to display. If the user + // doesn't have any selected task lists for view then fall back to + // some available list. + $GLOBALS['display_tasklists'] = @unserialize($GLOBALS['prefs']->getValue('display_tasklists')); + if (!$GLOBALS['display_tasklists']) { + $GLOBALS['display_tasklists'] = array(); + } + if (($tasklistId = Horde_Util::getFormData('display_tasklist')) !== null) { + if (is_array($tasklistId)) { + $GLOBALS['display_tasklists'] = $tasklistId; + } else { + if (in_array($tasklistId, $GLOBALS['display_tasklists'])) { + $key = array_search($tasklistId, $GLOBALS['display_tasklists']); + unset($GLOBALS['display_tasklists'][$key]); + } else { + $GLOBALS['display_tasklists'][] = $tasklistId; + } + } + } + + // Make sure all task lists exist now, to save on checking later. + $_temp = $GLOBALS['display_tasklists']; + $GLOBALS['all_tasklists'] = Nag::listTasklists(); + $GLOBALS['display_tasklists'] = array(); + foreach ($_temp as $id) { + if (isset($GLOBALS['all_tasklists'][$id])) { + $GLOBALS['display_tasklists'][] = $id; + } + } + + if (count($GLOBALS['display_tasklists']) == 0) { + $lists = Nag::listTasklists(true); + if (!Horde_Auth::getAuth()) { + /* All tasklists for guests. */ + $GLOBALS['display_tasklists'] = array_keys($lists); + } else { + /* Make sure at least the default tasklist is visible. */ + $default_tasklist = Nag::getDefaultTasklist(PERMS_READ); + if ($default_tasklist) { + $GLOBALS['display_tasklists'] = array($default_tasklist); + } + + /* If the user's personal tasklist doesn't exist, then create it. */ + if (!$GLOBALS['nag_shares']->exists(Horde_Auth::getAuth())) { + require_once 'Horde/Identity.php'; + $identity = Identity::singleton(); + $name = $identity->getValue('fullname'); + if (trim($name) == '') { + $name = Horde_Auth::removeHook(Horde_Auth::getAuth()); + } + $share = $GLOBALS['nag_shares']->newShare(Horde_Auth::getAuth()); + $share->set('name', sprintf(_("%s's Task List"), $name)); + $GLOBALS['nag_shares']->addShare($share); + + /* Make sure the personal tasklist is displayed by default. */ + if (!in_array(Horde_Auth::getAuth(), $GLOBALS['display_tasklists'])) { + $GLOBALS['display_tasklists'][] = Horde_Auth::getAuth(); + } + } + } + } + + $GLOBALS['prefs']->setValue('display_tasklists', serialize($GLOBALS['display_tasklists'])); + } + + /** + * Build Nag's list of menu items. + */ + function getMenu($returnType = 'object') + { + global $conf, $registry, $print_link; + + $menu = new Horde_Menu(); + $menu->add(Horde::applicationUrl('list.php'), _("_List Tasks"), 'nag.png', null, null, null, basename($_SERVER['PHP_SELF']) == 'index.php' ? 'current' : null); + if (Nag::getDefaultTasklist(PERMS_EDIT) && + (!empty($conf['hooks']['permsdenied']) || + Nag::hasPermission('max_tasks') === true || + Nag::hasPermission('max_tasks') > Nag::countTasks())) { + $menu->add(Horde::applicationUrl(Horde_Util::addParameter('task.php', 'actionID', 'add_task')), _("_New Task"), 'add.png', null, null, null, Horde_Util::getFormData('task') ? '__noselection' : null); + if ($GLOBALS['browser']->hasFeature('dom')) { + $menu->add('', _("_Quick Add"), 'add.png', null, null, 'Nag.quickAddPanel.show(); $(\'quickText\').focus(); return false;', Horde_Util::getFormData('task') ? 'quickAdd __noselection' : 'quickAdd'); + } + } + + /* Search. */ + $menu->add(Horde::applicationUrl('search.php'), _("_Search"), 'search.png', $registry->getImageDir('horde')); + + /* Import/Export. */ + if ($conf['menu']['import_export']) { + $menu->add(Horde::applicationUrl('data.php'), _("_Import/Export"), 'data.png', $registry->getImageDir('horde')); + } + + /* Print. */ + if ($conf['menu']['print'] && isset($print_link)) { + $menu->add($print_link, _("_Print"), 'print.png', $registry->getImageDir('horde'), '_blank', 'popup(this.href); return false;', '__noselection'); + } + + if ($returnType == 'object') { + return $menu; + } else { + return $menu->render(); + } + } + + function status() + { + global $notification; + + if (empty($GLOBALS['conf']['alarms']['driver'])) { + // Get any alarms in the next hour. + $now = time(); + $alarmList = Nag::listAlarms($now); + if (is_a($alarmList, 'PEAR_Error')) { + Horde::logMessage($alarmList, __FILE__, __LINE__, PEAR_LOG_ERR); + $notification->push($alarmList, 'horde.error'); + } else { + $messages = array(); + foreach ($alarmList as $task) { + $differential = $task->due - $now; + $key = $differential; + while (isset($messages[$key])) { + $key++; + } + if ($differential >= -60 && $differential < 60) { + $messages[$key] = array(sprintf(_("%s is due now."), $task->name), 'nag.alarm'); + } elseif ($differential >= 60) { + $messages[$key] = array(sprintf(_("%s is due in %s"), $task->name, + Nag::secondsToString($differential)), 'nag.alarm'); + } + } + + ksort($messages); + foreach ($messages as $message) { + $notification->push($message[0], $message[1]); + } + } + } + + // Check here for guest task lists so that we don't get multiple + // messages after redirects, etc. + if (!Horde_Auth::getAuth() && !count(Nag::listTasklists())) { + $notification->push(_("No task lists are available to guests.")); + } + + // Display all notifications. + $notification->notify(array('listeners' => 'status')); + } + + /** + * Sends email notifications that a task has been added, edited, or + * deleted to users that want such notifications. + * + * @param string $action The event action. One of "add", "edit", or + * "delete". + * @param Nag_Task $task The changed task. + * @param Nag_Task $old_task The original task if $action is "edit". + */ + function sendNotification($action, $task, $old_task = null) + { + if (!in_array($action, array('add', 'edit', 'delete'))) { + return PEAR::raiseError('Unknown event action: ' . $action); + } + + $share = $GLOBALS['nag_shares']->getShare($task->tasklist); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + require_once 'Horde/Group.php'; + require_once 'Horde/Identity.php'; + + $groups = Group::singleton(); + $recipients = array(); + $identity = Identity::singleton(); + $from = $identity->getDefaultFromAddress(true); + + $owner = $share->get('owner'); + $recipients[$owner] = Nag::_notificationPref($owner, 'owner'); + + foreach ($share->listUsers(PERMS_READ) as $user) { + if (empty($recipients[$user])) { + $recipients[$user] = Nag::_notificationPref($user, 'read', $task->tasklist); + } + } + foreach ($share->listGroups(PERMS_READ) as $group) { + $group = $groups->getGroupById($group); + if (is_a($group, 'PEAR_Error')) { + continue; + } + $group_users = $group->listAllUsers(); + if (is_a($group_users, 'PEAR_Error')) { + Horde::logMessage($group_users, __FILE__, __LINE__, PEAR_LOG_ERR); + continue; + } + foreach ($group_users as $user) { + if (empty($recipients[$user])) { + $recipients[$user] = Nag::_notificationPref($user, 'read', $task->tasklist); + } + } + } + + $addresses = array(); + foreach ($recipients as $user => $vals) { + if (!$vals) { + continue; + } + $identity = Identity::singleton('none', $user); + $email = $identity->getValue('from_addr'); + if (strpos($email, '@') === false) { + continue; + } + list($mailbox, $host) = explode('@', $email); + if (!isset($addresses[$vals['lang']][$vals['tf']][$vals['df']])) { + $addresses[$vals['lang']][$vals['tf']][$vals['df']] = array(); + } + $addresses[$vals['lang']][$vals['tf']][$vals['df']][] = Horde_Mime_Address::writeAddress($mailbox, $host, $identity->getValue('fullname')); + } + + if (!$addresses) { + return; + } + + list($mail_driver, $mail_params) = Horde::getMailerConfig(); + $mail = new Horde_Mime_Mail(); + require_once NAG_BASE . '/lib/version.php'; + $mail->addHeader('User-Agent', 'Nag ' . NAG_VERSION); + $mail->addHeader('Precedence', 'bulk'); + $mail->addHeader('Auto-Submitted', 'auto-generated'); + $mail->addHeader('From', $from); + + foreach ($addresses as $lang => $twentyFour) { + Horde_Nls::setLanguageEnvironment($lang); + + $view_link = Horde_Util::addParameter(Horde::applicationUrl('view.php', true), + array('tasklist' => $task->tasklist, + 'task' => $task->id), + null, false); + + switch ($action) { + case 'add': + $subject = _("Task added:"); + $notification_message = _("You requested to be notified when tasks are added to your task lists.") + . "\n\n" + . ($task->due + ? _("The task \"%s\" has been added to task list \"%s\", with a due date of: %s.") + : _("The task \"%s\" has been added to task list \"%s\".")) + . "\n" + . str_replace('%', '%%', $view_link); + break; + + case 'edit': + $subject = _("Task modified:"); + $notification_message = _("You requested to be notified when tasks are edited on your task lists.") + . "\n\n" + . _("The task \"%s\" has been edited on task list \"%s\".") + . "\n" + . str_replace('%', '%%', $view_link) + . "\n\n" + . _("Changes made for this task:"); + if ($old_task->name != $task->name) { + $notification_message .= "\n - " + . sprintf(_("Changed name from \"%s\" to \"%s\""), + $old_task->name, $task->name); + } + if ($old_task->tasklist != $task->tasklist) { + $old_share = $GLOBALS['nag_shares']->getShare($old_task->tasklist); + $notification_message .= "\n - " + . sprintf(_("Changed task list from \"%s\" to \"%s\""), + $old_share->get('name'), $share->get('name')); + } + if ($old_task->parent_id != $task->parent_id) { + $old_parent = $old_task->getParent(); + if (!is_a($old_parent, 'PEAR_Error')) { + $parent = $task->getParent(); + if (!is_a($parent, 'PEAR_Error')) { + $notification_message .= "\n - " + . sprintf(_("Changed parent task from \"%s\" to \"%s\""), + $old_parent ? $old_parent->name : _("no parent"), + $parent ? $parent->name : _("no parent")); + } + } + } + if ($old_task->category != $task->category) { + $notification_message .= "\n - " + . sprintf(_("Changed category from \"%s\" to \"%s\""), + $old_task->category, $task->category); + } + if ($old_task->assignee != $task->assignee) { + require_once 'Horde/Identity.php'; + $identity = Identity::singleton('none', $old_task->assignee); + $old_name = $identity->getValue('fullname'); + if (!strlen($old_name)) { + $old_name = $old_task->assignee; + } + $identity = Identity::singleton('none', $task->assignee); + $new_name = $identity->getValue('fullname'); + if (!strlen($new_name)) { + $new_name = $new_task->assignee; + } + $notification_message .= "\n - " + . sprintf(_("Changed assignee from \"%s\" to \"%s\""), + $old_name, $new_name); + } + if ($old_task->private != $task->private) { + $notification_message .= "\n - " + . ($task->private ? _("Turned privacy on") : _("Turned privacy off")); + } + if ($old_task->due != $task->due) { + $notification_message .= "\n - " + . sprintf(_("Changed due date from %s to %s"), + $old_task->due ? Nag::formatDate($old_task->due) : _("no due date"), + $task->due ? Nag::formatDate($task->due) : _("no due date")); + } + if ($old_task->start != $task->start) { + $notification_message .= "\n - " + . sprintf(_("Changed start date from %s to %s"), + $old_task->start ? Nag::formatDate($old_task->start) : _("no start date"), + $task->start ? Nag::formatDate($task->start) : _("no start date")); + } + if ($old_task->alarm != $task->alarm) { + $notification_message .= "\n - " + . sprintf(_("Changed alarm from %s to %s"), + Nag::formatAlarm($old_task->alarm), Nag::formatAlarm($task->alarm)); + } + if ($old_task->priority != $task->priority) { + $notification_message .= "\n - " + . sprintf(_("Changed priority from %s to %s"), + $old_task->priority, $task->priority); + } + if ($old_task->estimate != $task->estimate) { + $notification_message .= "\n - " + . sprintf(_("Changed estimate from %s to %s"), + $old_task->estimate, $task->estimate); + } + if ($old_task->completed != $task->completed) { + $notification_message .= "\n - " + . sprintf(_("Changed completion from %s to %s"), + $old_task->completed ? _("completed") : _("not completed"), + $task->completed ? _("completed") : _("not completed")); + } + if ($old_task->desc != $task->desc) { + $notification_message .= "\n - " . _("Changed description"); + } + break; + + case 'delete': + $subject = _("Task deleted:"); + $notification_message = + _("You requested to be notified when tasks are deleted from your task lists.") + . "\n\n" + . _("The task \"%s\" has been deleted from task list \"%s\"."); + break; + } + + $mail->addHeader('Subject', $subject . ' ' . $task->name, Horde_Nls::getCharset()); + + foreach ($twentyFour as $tf => $dateFormat) { + foreach ($dateFormat as $df => $df_recipients) { + $message = sprintf($notification_message, + $task->name, + $share->get('name'), + $task->due ? strftime($df, $task->due) . ' ' . date($tf ? 'H:i' : 'h:ia', $task->due) : ''); + if (strlen(trim($task->desc))) { + $message .= "\n\n" . _("Task description:") . "\n\n" . $task->desc; + } + + $mail->setBody($message, Horde_Nls::getCharset()); + $mail->clearRecipients(); + $mail->addRecipients($df_recipients); + + Horde::logMessage(sprintf('Sending event notifications for %s to %s', + $task->name, implode(', ', $df_recipients)), + __FILE__, __LINE__, PEAR_LOG_INFO); + $sent = $mail->send($mail_driver, $mail_params); + if (is_a($sent, 'PEAR_Error')) { + return $sent; + } + } + } + } + } + + /** + * Returns the real name, if available, of a user. + * + * @since Nag 2.2 + */ + function getUserName($uid) + { + static $names = array(); + + if (!isset($names[$uid])) { + require_once 'Horde/Identity.php'; + $ident = Identity::singleton('none', $uid); + $ident->setDefault($ident->getDefault()); + $names[$uid] = $ident->getValue('fullname'); + if (empty($names[$uid])) { + $names[$uid] = $uid; + } + } + + return $names[$uid]; + } + + /** + * Returns whether a user wants email notifications for a tasklist. + * + * @access private + * + * @todo This method is causing a memory leak somewhere, noticeable if + * importing a large amount of events. + * + * @param string $user A user name. + * @param string $mode The check "mode". If "owner", the method checks + * if the user wants notifications only for + * tasklists he owns. If "read", the method checks + * if the user wants notifications for all + * tasklists he has read access to, or only for + * shown tasklists and the specified tasklist is + * currently shown. + * @param string $tasklist The name of the tasklist if mode is "read". + * + * @return boolean True if the user wants notifications for the tasklist. + */ + function _notificationPref($user, $mode, $tasklist = null) + { + $prefs = Prefs::singleton($GLOBALS['conf']['prefs']['driver'], + 'nag', $user, '', null, + false); + $prefs->retrieve(); + $vals = array('lang' => $prefs->getValue('language'), + 'tf' => $prefs->getValue('twentyFour'), + 'df' => $prefs->getValue('date_format')); + + if ($prefs->getValue('task_notification_exclude_self') && + $user == Horde_Auth::getAuth()) { + return false; + } + + $notification = $prefs->getValue('task_notification'); + switch ($notification) { + case 'owner': + return $mode == 'owner' ? $vals : false; + case 'read': + return $mode == 'read' ? $vals : false; + case 'show': + if ($mode == 'read') { + $display_tasklists = unserialize($prefs->getValue('display_tasklists')); + return in_array($tasklist, $display_tasklists) ? $vals : false;; + } + } + + return false; + } + + /** + * Comparison function for sorting tasks by create date (not currently used + * as it would require accessing Horde_History for each task) and id. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal (though no tasks should ever be + * equal in this comparison). + */ + function _sortByIdentity($a, $b) + { + return strcmp($a->id, $b->id); + } + + /** + * Comparison function for sorting tasks by priority. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByPriority($a, $b) + { + if ($a->priority == $b->priority) { + return self::_sortByIdentity($a, $b); + } + return ($a->priority > $b->priority) ? 1 : -1; + } + + /** + * Comparison function for reverse sorting tasks by priority. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByPriority($a, $b) + { + if ($a->priority == $b->priority) { + return self::_sortByIdentity($b, $a); + } + return ($a->priority > $b->priority) ? -1 : 1; + } + + /** + * Comparison function for sorting tasks by name. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByName($a, $b) + { + return strcasecmp($a->name, $b->name); + } + + /** + * Comparison function for reverse sorting tasks by name. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByName($a, $b) + { + return strcasecmp($b->name, $a->name); + } + + /** + * Comparison function for sorting tasks by assignee. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByAssignee($a, $b) + { + return strcasecmp($a->assignee, $b->assignee); + } + + /** + * Comparison function for reverse sorting tasks by assignee. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByAssignee($a, $b) + { + return strcasecmp($b->assignee, $a->assignee); + } + + /** + * Comparison function for sorting tasks by assignee. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByEstimate($a, $b) + { + $a_est = $a->estimation(); + $b_est = $b->estimation(); + if ($a_est == $b_est) { + return self::_sortByIdentity($a, $b); + } + return ($a_est > $b_est) ? 1 : -1; + } + + /** + * Comparison function for reverse sorting tasks by name. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByEstimate($a, $b) + { + $a_est = $a->estimation(); + $b_est = $b->estimation(); + if ($a_est == $b_est) { + return self::_sortByIdentity($b, $a); + } + return ($a_est > $b_est) ? -1 : 1; + } + + /** + * Comparison function for sorting tasks by category. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByCategory($a, $b) + { + return strcasecmp($a->category ? $a->category : _("Unfiled"), + $b->category ? $b->category : _("Unfiled")); + } + + /** + * Comparison function for reverse sorting tasks by category. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByCategory($a, $b) + { + return strcasecmp($b->category ? $b->category : _("Unfiled"), + $a->category ? $a->category : _("Unfiled")); + } + + /** + * Comparison function for sorting tasks by due date. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByDue($a, $b) + { + if ($a->due == $b->due) { + return self::_sortByIdentity($a, $b); + } + + // Treat empty due dates as farthest into the future. + if ($a->due == 0) { + return 1; + } + if ($b->due == 0) { + return -1; + } + + return ($a->due > $b->due) ? 1 : -1; + } + + /** + * Comparison function for reverse sorting tasks by due date. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater, + * 0 if they are equal. + */ + function _rsortByDue($a, $b) + { + if ($a->due == $b->due) { + return self::_sortByIdentity($b, $a); + } + + // Treat empty due dates as farthest into the future. + if ($a->due == 0) { + return -1; + } + if ($b->due == 0) { + return 1; + } + + return ($a->due < $b->due) ? 1 : -1; + } + + /** + * Comparison function for sorting tasks by completion status. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByCompletion($a, $b) + { + if ($a->completed == $b->completed) { + return self::_sortByIdentity($a, $b); + } + return ($a->completed > $b->completed) ? -1 : 1; + } + + /** + * Comparison function for reverse sorting tasks by completion status. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByCompletion($a, $b) + { + if ($a->completed == $b->completed) { + return self::_sortByIdentity($b, $a); + } + return ($a->completed < $b->completed) ? -1 : 1; + } + + /** + * Comparison function for sorting tasks by owner. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer 1 if task one is greater, -1 if task two is greater; + * 0 if they are equal. + */ + function _sortByOwner($a, $b) + { + $ashare = $GLOBALS['nag_shares']->getShare($a->tasklist); + $bshare = $GLOBALS['nag_shares']->getShare($b->tasklist); + + $aowner = $a->tasklist; + $bowner = $b->tasklist; + + if (!is_a($ashare, 'PEAR_Error') && $aowner != $ashare->get('owner')) { + $aowner = $ashare->get('name'); + } + if (!is_a($bshare, 'PEAR_Error') && $bowner != $bshare->get('owner')) { + $bowner = $bshare->get('name'); + } + + $diff = strcasecmp($aowner, $bowner); + if ($diff == 0) { + return self::_sortByIdentity($a, $b); + } else { + return $diff; + } + } + + /** + * Comparison function for reverse sorting tasks by owner. + * + * @param array $a Task one. + * @param array $b Task two. + * + * @return integer -1 if task one is greater, 1 if task two is greater; + * 0 if they are equal. + */ + function _rsortByOwner($a, $b) + { + $ashare = $GLOBALS['nag_shares']->getShare($a->tasklist); + $bshare = $GLOBALS['nag_shares']->getShare($b->tasklist); + + $aowner = $a->tasklist; + $bowner = $b->tasklist; + + if (!is_a($ashare, 'PEAR_Error') && $aowner != $ashare->get('owner')) { + $aowner = $ashare->get('name'); + } + if (!is_a($bshare, 'PEAR_Error') && $bowner != $bshare->get('owner')) { + $bowner = $bshare->get('name'); + } + + $diff = strcasecmp($bowner, $aowner); + if ($diff == 0) { + return self::_sortByIdentity($b, $a); + } else { + return $diff; + } + } + +} diff --git a/nag/lib/Notification/Listener/Status.php b/nag/lib/Notification/Listener/Status.php new file mode 100644 index 000000000..77f707bad --- /dev/null +++ b/nag/lib/Notification/Listener/Status.php @@ -0,0 +1,25 @@ + + * @package Horde_Notification + */ +class Nag_Notification_Listener_Status extends Horde_Notification_Listener_Status +{ + /** + * Constructor. + */ + public function __construct() + { + parent::__construct(); + + $this->_handles['nag.alarm'] = array($GLOBALS['registry']->getImageDir() . '/alarm.png', _("Alarm")); + } + +} diff --git a/nag/lib/QuickParser.php b/nag/lib/QuickParser.php new file mode 100644 index 000000000..fd45a3dbb --- /dev/null +++ b/nag/lib/QuickParser.php @@ -0,0 +1,57 @@ +_indentStack = $stack; + } + + public function parse($text) + { + $text = str_replace("\t", ' ', $text); + $lines = preg_split('/[\r\n]+/', $text, -1, PREG_SPLIT_NO_EMPTY); + + $parents = array(); + $tasks = array(); + foreach ($lines as $line) { + $line = rtrim($line); + if (preg_match('/^\s*$/', $line)) { continue; } + + $indented = preg_match('/^([*-\s]+)(.*)$/', $line, $matches); + if (!$indented) { + $tasks[] = $line; + $parents[$this->_indentStack->peek()] = count($tasks) - 1; + } else { + $line = $matches[2]; + $indent = strlen($matches[1]); + if ($indent == $this->_indentStack->peek()) { + $parent = $parents[$this->_indentStack->peek(2)]; + $tasks[] = array($line, 'parent' => $parent); + } elseif ($indent > $this->_indentStack->peek()) { + $parent = $parents[$this->_indentStack->peek()]; + $this->_indentStack->push($indent); + $tasks[] = array($line, 'parent' => $parent); + $parents[$this->_indentStack->peek()] = count($tasks) - 1; + } else { + while ($this->_indentStack->pop() > $indent); + + $parents[$indent] = $parents[$this->_indentStack->peek()]; + $this->_indentStack->pop(); $this->_indentStack->push($indent); + $parent = $parents[$this->_indentStack->peek()]; + if ($parent !== null) { + $tasks[] = array($line, 'parent' => $parent); + } else { + $tasks[] = $line; + } + $parents[$this->_indentStack->peek()] = count($tasks) - 1; + } + } + } + + return $tasks; + } + +} diff --git a/nag/lib/Task.php b/nag/lib/Task.php new file mode 100644 index 000000000..188cddf04 --- /dev/null +++ b/nag/lib/Task.php @@ -0,0 +1,966 @@ + + * @package Nag + */ +class Nag_Task { + + /** + * The task id. + * + * @var string + */ + var $id; + + /** + * This task's tasklist id. + * + * @var string + */ + var $tasklist; + + /** + * The task uid. + * + * @var string + */ + var $uid; + + /** + * The task owner. + * + * @var string + */ + var $owner; + + /** + * The task assignee. + * + * @var string + */ + var $assignee; + + /** + * The task title. + * + * @var string + */ + var $name; + + /** + * The task decription. + * + * @var string + */ + var $desc; + + /** + * The start date timestamp. + * + * @var integer + */ + var $start; + + /** + * The due date timestamp. + * + * @var integer + */ + var $due; + + /** + * The task priority. + * + * @var integer + */ + var $priority; + + /** + * The estimated task length. + * + * @var float + */ + var $estimate; + + /** + * Whether the task is completed. + * + * @var boolean + */ + var $completed; + + /** + * The completion date timestamp. + * + * @var integer + */ + var $completed_date; + + /** + * The task category + * + * @var string + */ + var $category; + + /** + * The task alarm threshold. + * + * @var integer + */ + var $alarm; + + /** + * The particular alarm methods overridden for this task. + * + * @var array + */ + var $methods; + + /** + * Whether the task is private. + * + * @var boolean + */ + var $private; + + /** + * URL to view the task. + * + * @var string + */ + var $view_link; + + /** + * URL to complete the task. + * + * @var string + */ + var $complete_link; + + /** + * URL to edit the task. + * + * @var string + */ + var $edit_link; + + /** + * URL to delete the task. + * + * @var string + */ + var $delete_link; + + /** + * The parent task's id. + * + * @var string + */ + var $parent_id = ''; + + /** + * The parent task. + * + * @var Nag_Task + */ + var $parent; + + /** + * The sub-tasks. + * + * @var array + */ + var $children = array(); + + /** + * This task's idention (child) level. + * + * @var integer + */ + var $indent = 0; + + /** + * Whether this is the last sub-task. + * + * @var boolean + */ + var $lastChild; + + /** + * Internal flag. + * + * @var boolean + * @see each() + */ + var $_inlist = false; + + /** + * Internal pointer. + * + * @var integer + * @see each() + */ + var $_pointer; + + /** + * Task id => pointer dictionary. + * + * @var array + */ + var $_dict = array(); + + /** + * Constructor. + * + * Takes a hash and returns a nice wrapper around it. + * + * @param array $task A task hash. + */ + function Nag_Task($task = null) + { + if ($task) { + $this->merge($task); + } + } + + /** + * Merges a task hash into this task object. + * + * @param array $task A task hash. + */ + function merge($task) + { + foreach ($task as $key => $val) { + if ($key == 'tasklist_id') { + $key = 'tasklist'; + } elseif ($key == 'task_id') { + $key = 'id'; + } elseif ($key == 'parent') { + $key = 'parent_id'; + } + $this->$key = $val; + } + } + + /** + * Saves this task in the storage backend. + */ + function save() + { + $storage = Nag_Driver::singleton($this->tasklist); + return $storage->modify($this->id, + $this->name, + $this->desc, + $this->start, + $this->due, + $this->priority, + $this->estimate, + $this->completed, + $this->category, + $this->alarm, + $this->methods, + $this->parent_id, + $this->private, + $this->owner, + $this->assignee, + $this->completed_date); + } + + /** + * Returns the parent task of this task, if one exists. + * + * @return Nag_Task The parent task, null if none exists, PEAR_Error on + * failure. + */ + function getParent() + { + if (!$this->parent_id) { + return null; + } + return Nag::getTask($this->tasklist, $this->parent_id); + } + + /** + * Adds a sub task to this task. + * + * @param Nag_Task $task A sub task. + */ + function add($task) + { + $this->_dict[$task->id] = count($this->children); + $task->parent = $this; + $this->children[] = $task; + } + + /** + * Loads all sub-tasks. + */ + function loadChildren() + { + $storage = Nag_Driver::singleton($this->tasklist); + $children = $storage->getChildren($this->id); + if (!is_a($children, 'PEAR_Error')) { + $this->children = $children; + } + } + + /** + * Merges an array of tasks into this task's children. + * + * @param array $children A list of Nag_Tasks. + * + */ + function mergeChildren($children) + { + for ($i = 0, $c = count($children); $i < $c; ++$i) { + $this->add($children[$i]); + } + } + + /** + * Returns a sub task by its id. + * + * The methods goes recursively through all sub tasks until it finds the + * searched task. + * + * @param string $key A task id. + * + * @return Nag_Task The searched task or null. + */ + function get($key) + { + if (isset($this->_dict[$key])) { + $task = $this->children[$this->_dict[$key]]; + } else { + $task = null; + } + return $task; + } + + /** + * Returns whether this is a task (not a container) or contains any sub + * tasks. + * + * @return boolean True if this is a task or has sub tasks. + */ + function hasTasks() + { + if ($this->id) { + return true; + } + return $this->hasSubTasks(); + } + + /** + * Returns whether this task contains any sub tasks. + * + * @return boolean True if this task has sub tasks. + */ + function hasSubTasks() + { + foreach ($this->children as $task) { + if ($task->hasTasks()) { + return true; + } + } + return false; + } + + /** + * Returns whether all sub tasks are completed. + * + * @return boolean True if all sub tasks are completed. + */ + function childrenCompleted() + { + foreach ($this->children as $task) { + if (!$task->completed || !$task->childrenCompleted()) { + return false; + } + } + return true; + } + + /** + * Returns the number of tasks including this and any sub tasks. + * + * @return integer The number of tasks and sub tasks. + */ + function count() + { + $count = $this->id ? 1 : 0; + foreach ($this->children as $task) { + $count += $task->count(); + } + return $count; + } + + /** + * Returns the estimated length for this and any sub tasks. + * + * @return integer The estimated length sum. + */ + function estimation() + { + $estimate = $this->estimate; + foreach ($this->children as $task) { + $estimate += $task->estimation(); + } + return $estimate; + } + + /** + * Format the description - link URLs, etc. + * + * @return string + */ + function getFormattedDescription() + { + $desc = Horde_Text_Filter::filter($this->desc, 'text2html', array('parselevel' => Horde_Text_Filter_Text2html::MICRO)); + $desc = Horde::callHook('_nag_hook_format_description', array($desc), 'nag', $desc); + return $desc; + } + + /** + * Resets the tasks iterator. + * + * Call this each time before looping through the tasks. + * + * @see each() + */ + function reset() + { + foreach (array_keys($this->children) as $key) { + $this->children[$key]->reset(); + } + $this->_pointer = 0; + $this->_inlist = false; + } + + /** + * Returns the next task iterating through all tasks and sub tasks. + * + * Call reset() each time before looping through the tasks: + * + * $tasks->reset(); + * while ($task = $tasks->each() { + * ... + * } + * + * @see reset() + */ + function each() + { + if ($this->id && !$this->_inlist) { + $this->_inlist = true; + return $this; + } + if ($this->_pointer >= count($this->children)) { + $task = false; + return $task; + } + $next = $this->children[$this->_pointer]->each(); + if ($next) { + return $next; + } + $this->_pointer++; + return $this->each(); + } + + /** + * Processes a list of tasks by adding action links, obscuring details of + * private tasks and calculating indentation. + * + * @param integer $indent The indention level of the tasks. + */ + function process($indent = 0) + { + /* Link cache. */ + static $view_url_list, $task_url_list; + + /* Set indention. */ + $this->indent = $indent; + if ($this->id) { + ++$indent; + } + + /* Process children. */ + for ($i = 0, $c = count($this->children); $i < $c; ++$i) { + $this->children[$i]->process($indent); + } + + /* Mark last child. */ + if (count($this->children)) { + $this->children[count($this->children) - 1]->lastChild = true; + } + + /* Only process further if this is really a (parent) task, not only a + * task list container. */ + if (!$this->id) { + return; + } + + if (!isset($view_url_list[$this->tasklist])) { + $view_url_list[$this->tasklist] = Horde_Util::addParameter(Horde::applicationUrl('view.php'), 'tasklist', $this->tasklist); + $task_url_list[$this->tasklist] = Horde_Util::addParameter(Horde::applicationUrl('task.php'), 'tasklist', $this->tasklist); + } + + /* Obscure private tasks. */ + if ($this->private && $this->owner != Horde_Auth::getAuth()) { + $this->name = _("Private Task"); + $this->desc = ''; + $this->category = _("Private"); + } + + /* Create task links. */ + $this->view_link = Horde_Util::addParameter($view_url_list[$this->tasklist], 'task', $this->id); + + $task_url_task = Horde_Util::addParameter($task_url_list[$this->tasklist], 'task', $this->id); + $this->complete_link = Horde_Util::addParameter($task_url_task, 'actionID', 'complete_task'); + $this->edit_link = Horde_Util::addParameter($task_url_task, 'actionID', 'modify_task'); + $this->delete_link = Horde_Util::addParameter($task_url_task, 'actionID', 'delete_tasks'); + } + + /** + * Returns the HTML code for any tree icons, when displaying this task in + * a tree view. + * + * @return string The HTML code for necessary tree icons. + */ + function treeIcons() + { + $treedir = $GLOBALS['registry']->getImageDir('horde'); + $html = ''; + + $parent = $this->parent; + for ($i = 1; $i < $this->indent; ++$i) { + if ($parent && $parent->lastChild) { + $html = Horde::img('tree/blank.png', '', '', $treedir) . $html; + } else { + $html = Horde::img('tree/line.png', '|', '', $treedir) . $html; + } + $parent = $parent->parent; + } + if ($this->indent) { + if ($this->lastChild) { + $html .= Horde::img(empty($GLOBALS['nls']['rtl'][$GLOBALS['language']]) ? 'tree/joinbottom.png' : 'tree/rev-joinbottom.png', '\\', '', $treedir); + } else { + $html .= Horde::img(empty($GLOBALS['nls']['rtl'][$GLOBALS['language']]) ? 'tree/join.png' : 'tree/rev-join.png', '+', '', $treedir); + } + } + + return $html; + } + + /** + * Sorts sub tasks by the given criteria. + * + * @param string $sortby The field by which to sort + * (Nag::SORT_PRIORITY, Nag::SORT_NAME + * Nag::SORT_DUE, Nag::SORT_COMPLETION). + * @param integer $sortdir The direction by which to sort + * (Nag::SORT_ASCEND, Nag::SORT_DESCEND). + * @param string $altsortby The secondary sort field. + */ + function sort($sortby, $sortdir, $altsortby) + { + /* Sorting criteria for the task list. */ + $sort_functions = array( + Nag::SORT_PRIORITY => 'ByPriority', + Nag::SORT_NAME => 'ByName', + Nag::SORT_CATEGORY => 'ByCategory', + Nag::SORT_DUE => 'ByDue', + Nag::SORT_COMPLETION => 'ByCompletion', + Nag::SORT_ASSIGNEE => 'ByAssignee', + Nag::SORT_ESTIMATE => 'ByEstimate', + Nag::SORT_OWNER => 'ByOwner' + ); + + /* Sort the array if we have a sort function defined for this + * field. */ + if (isset($sort_functions[$sortby])) { + $prefix = ($sortdir == Nag::SORT_DESCEND) ? '_rsort' : '_sort'; + usort($this->children, array('Nag', $prefix . $sort_functions[$sortby])); + if (isset($sort_functions[$altsortby]) && $altsortby !== $sortby) { + $task_buckets = array(); + for ($i = 0, $c = count($this->children); $i < $c; ++$i) { + if (!isset($task_buckets[$this->children[$i]->$sortby])) { + $task_buckets[$this->children[$i]->$sortby] = array(); + } + $task_buckets[$this->children[$i]->$sortby][] = $this->children[$i]; + } + $tasks = array(); + foreach ($task_buckets as $task_bucket) { + usort($task_bucket, array('Nag', $prefix . $sort_functions[$altsortby])); + $tasks = array_merge($tasks, $task_bucket); + } + $this->children = $tasks; + } + + /* Mark last child. */ + for ($i = 0, $c = count($this->children); $i < $c; ++$i) { + $this->children[$i]->lastChild = false; + } + if (count($this->children)) { + $this->children[count($this->children) - 1]->lastChild = true; + } + + for ($i = 0, $c = count($this->children); $i < $c; ++$i) { + $this->_dict[$this->children[$i]->id] = $i; + $this->children[$i]->sort($sortby, $sortdir, $altsortby); + } + } + } + + /** + * Returns a hash representation for this task. + * + * @return array A task hash. + */ + function toHash() + { + return array('tasklist_id' => $this->tasklist, + 'task_id' => $this->id, + 'uid' => $this->uid, + 'parent' => $this->parent_id, + 'owner' => $this->owner, + 'assignee' => $this->assignee, + 'name' => $this->name, + 'desc' => $this->desc, + 'category' => $this->category, + 'start' => $this->start, + 'due' => $this->due, + 'priority' => $this->priority, + 'estimate' => $this->estimate, + 'completed' => $this->completed, + 'completed_date' => $this->completed_date, + 'alarm' => $this->alarm, + 'methods' => $this->methods, + 'private' => $this->private); + } + + /** + * Returns a simple object suitable for json transport representing this + * task. + * + * @param boolean $full Whether to return all event details. + * + * @return object A simple object. + */ + function toJson($full = false) + { + $json = new stdClass; + $json->l = $this->tasklist; + $json->n = $this->name; + if ($this->desc) { + //TODO: Get the proper amount of characters, and cut by last + //whitespace + $json->sd = Horde_String::substr($this->desc, 0, 80); + } + $json->cp = $this->completed; + if ($this->due) { + $date = new Horde_Date($this->due); + $json->du = $date->toJson(); + } + if ($this->start) { + $date = new Horde_Date($this->start); + $json->s = $date->toJson(); + } + $json->pr = $this->priority; + + if ($full) { + // @todo: do we really need all this? + $json->id = $this->id; + $json->de = $this->desc; + $json->ui = $this->uid; + $json->p = $this->parent_id; + $json->o = $this->owner; + $json->as = $this->assignee; + $json->ct = $this->category; + $json->e = $this->estimate; + if ($this->completed_date) { + $date = new Horde_Date($this->completed_date); + $json->cd = $date->toJson(); + } + $json->a = $this->alarm; + $json->m = $this->methods; + $json->pv = $this->private; + } + + return $json; + } + + /** + * Returns an alarm hash of this task suitable for Horde_Alarm. + * + * @param string $user The user to return alarms for. + * @param Prefs $prefs A Prefs instance. + * + * @return array Alarm hash or null. + */ + function toAlarm($user = null, $prefs = null) + { + if (empty($this->alarm) || $this->completed) { + return; + } + + if (empty($user)) { + $user = Horde_Auth::getAuth(); + } + if (empty($prefs)) { + $prefs = $GLOBALS['prefs']; + } + + $methods = !empty($this->methods) ? $this->methods : @unserialize($prefs->getValue('task_alarms')); + if (!$methods) { + $methods = array(); + } + + if (isset($methods['notify'])) { + $methods['notify']['show'] = array( + '__app' => $GLOBALS['registry']->getApp(), + 'task' => $this->id, + 'tasklist' => $this->tasklist); + if (!empty($methods['notify']['sound'])) { + if ($methods['notify']['sound'] == 'on') { + // Handle boolean sound preferences; + $methods['notify']['sound'] = $GLOBALS['registry']->get('themesuri') . '/sounds/theetone.wav'; + } else { + // Else we know we have a sound name that can be + // served from Horde. + $methods['notify']['sound'] = $GLOBALS['registry']->get('themesuri', 'horde') . '/sounds/' . $methods['notify']['sound']; + } + } + } + if (isset($methods['popup'])) { + $methods['popup']['message'] = $this->name; + if (!empty($this->desc)) { + $methods['popup']['message'] .= "\n\n" . $this->desc; + } + } + if (isset($methods['mail'])) { + $methods['mail']['body'] = sprintf( + _("We would like to remind you of this due task.\n\n%s\n\nDate: %s\nTime: %s\n\n%s"), + $this->name, + strftime($prefs->getValue('date_format'), $this->due), + date($prefs->getValue('twentyFour') ? 'H:i' : 'h:ia', $this->due), + $this->desc); + } + return array( + 'id' => $this->uid, + 'user' => $user, + 'start' => $this->due - $this->alarm * 60, + 'methods' => array_keys($methods), + 'params' => $methods, + 'title' => $this->name, + 'text' => $this->desc); + } + + /** + * Exports this task in iCalendar format. + * + * @param Horde_iCalendar $calendar A Horde_iCalendar object that acts as + * the container. + * + * @return Horde_iCalendar_vtodo A vtodo component of this task. + */ + function toiCalendar($calendar) + { + $vTodo = Horde_iCalendar::newComponent('vtodo', $calendar); + $v1 = $calendar->getAttribute('VERSION') == '1.0'; + + $vTodo->setAttribute('UID', $this->uid); + + if (!empty($this->assignee)) { + $vTodo->setAttribute('ORGANIZER', $this->assignee); + } + + if (!empty($this->name)) { + $vTodo->setAttribute('SUMMARY', $this->name); + } + + if (!empty($this->desc)) { + $vTodo->setAttribute('DESCRIPTION', $this->desc); + } + + if (isset($this->priority)) { + $vTodo->setAttribute('PRIORITY', $this->priority); + } + + if (!empty($this->parent_id)) { + $vTodo->setAttribute('RELATED-TO', $this->parent->uid); + } + + if ($this->private) { + $vTodo->setAttribute('CLASS', 'PRIVATE'); + } + + if (!empty($this->start)) { + $vTodo->setAttribute('DTSTART', $this->start); + } + + if ($this->due) { + $vTodo->setAttribute('DUE', $this->due); + + if ($this->alarm) { + if ($v1) { + $vTodo->setAttribute('AALARM', $this->due - $this->alarm * 60); + } else { + $vAlarm = Horde_iCalendar::newComponent('valarm', $vTodo); + $vAlarm->setAttribute('ACTION', 'DISPLAY'); + $vAlarm->setAttribute('TRIGGER;VALUE=DURATION', '-PT' . $this->alarm . 'M'); + $vTodo->addComponent($vAlarm); + } + } + } + + if ($this->completed) { + $vTodo->setAttribute('STATUS', 'COMPLETED'); + $vTodo->setAttribute('COMPLETED', $this->completed_date ? $this->completed_date : time()); + } else { + if ($v1) { + $vTodo->setAttribute('STATUS', 'NEEDS ACTION'); + } else { + $vTodo->setAttribute('STATUS', 'NEEDS-ACTION'); + } + } + + if (!empty($this->category)) { + $vTodo->setAttribute('CATEGORIES', $this->category); + } + + /* Get the task's history. */ + $history = Horde_History::singleton(); + $log = $history->getHistory('nag:' . $this->tasklist . ':' . $this->uid); + if ($log && !is_a($log, 'PEAR_Error')) { + foreach ($log->getData() as $entry) { + switch ($entry['action']) { + case 'add': + $created = $entry['ts']; + break; + + case 'modify': + $modified = $entry['ts']; + break; + } + } + } + if (!empty($created)) { + $vTodo->setAttribute($v1 ? 'DCREATED' : 'CREATED', $created); + if (empty($modified)) { + $modified = $created; + } + } + if (!empty($modified)) { + $vTodo->setAttribute('LAST-MODIFIED', $modified); + } + + return $vTodo; + } + + /** + * Creates a task from a Horde_iCalendar_vtodo object. + * + * @param Horde_iCalendar_vtodo $vTodo The iCalendar data to update from. + */ + function fromiCalendar($vTodo) + { + $name = $vTodo->getAttribute('SUMMARY'); + if (!is_array($name) && !is_a($name, 'PEAR_Error')) { + $this->name = $name; + } + + $assignee = $vTodo->getAttribute('ORGANIZER'); + if (!is_array($assignee) && !is_a($assignee, 'PEAR_Error')) { + $this->assignee = $assignee; + } + + $uid = $vTodo->getAttribute('UID'); + if (!is_array($uid) && !is_a($uid, 'PEAR_Error')) { + $this->uid = $uid; + } + + $relations = $vTodo->getAttribute('RELATED-TO'); + if (!is_a($relations, 'PEAR_Error')) { + if (!is_array($relations)) { + $relations = array($relations); + } + $params = $vTodo->getAttribute('RELATED-TO', true); + foreach ($relations as $id => $relation) { + if (empty($params[$id]['RELTYPE']) || + Horde_String::upper($params[$id]['RELTYPE']) == 'PARENT') { + $storage = Nag_Driver::singleton($this->tasklist); + + $parent = $storage->getByUID($relation); + if (!is_a($parent, 'PEAR_Error')) { + $this->parent_id = $parent->id; + } + break; + } + } + } + + $start = $vTodo->getAttribute('DTSTART'); + if (!is_a($start, 'PEAR_Error')) { + if (!is_array($start)) { + // Date-Time field + $this->start = $start; + } else { + // Date field + $this->start = mktime(0, 0, 0, (int)$start['month'], (int)$start['mday'], (int)$start['year']); + } + } + + $due = $vTodo->getAttribute('DUE'); + if (!is_array($due) && !is_a($due, 'PEAR_Error') && !empty($due)) { + $this->due = $due; + } + + // vCalendar 1.0 alarms + $alarm = $vTodo->getAttribute('AALARM'); + if (!is_array($alarm) && !is_a($alarm, 'PEAR_Error') && + !empty($alarm) && !empty($this->due)) { + $this->alarm = intval(($this->due - $alarm) / 60); + if ($this->alarm === 0) { + // We don't support alarms exactly at due date. + $this->alarm = 1; + } + } + + // @TODO: vCalendar 2.0 alarms + + $desc = $vTodo->getAttribute('DESCRIPTION'); + if (!is_array($desc) && !is_a($desc, 'PEAR_Error')) { + $this->desc = $desc; + } + + $priority = $vTodo->getAttribute('PRIORITY'); + if (!is_array($priority) && !is_a($priority, 'PEAR_Error')) { + $this->priority = $priority; + } + + $cat = $vTodo->getAttribute('CATEGORIES'); + if (!is_array($cat) && !is_a($cat, 'PEAR_Error')) { + $this->category = $cat; + } + + $status = $vTodo->getAttribute('STATUS'); + if (!is_array($status) && !is_a($status, 'PEAR_Error')) { + $this->completed = !strcasecmp($status, 'COMPLETED'); + } + + $class = $vTodo->getAttribute('CLASS'); + if (!is_array($class) && !is_a($class, 'PEAR_Error')) { + $class = Horde_String::upper($class); + $this->private = $class == 'PRIVATE' || $class == 'CONFIDENTIAL'; + } + } + +} diff --git a/nag/lib/UI/VarRenderer/nag.php b/nag/lib/UI/VarRenderer/nag.php new file mode 100644 index 000000000..27df2cb8f --- /dev/null +++ b/nag/lib/UI/VarRenderer/nag.php @@ -0,0 +1,412 @@ + + * @package Nag + */ +class Horde_UI_VarRenderer_nag extends Horde_UI_VarRenderer_html { + + function _renderVarInput_nag_method($form, &$var, &$vars) + { + $varname = @htmlspecialchars($var->getVarName(), ENT_QUOTES, $this->_charset); + $varvalue = $var->getValue($vars); + if (isset($varvalue['on'])) { + // Submitted form. + $methods = array(); + $types = $vars->get('task_alarms'); + if (!empty($varvalue['on']) && !empty($types)) { + foreach ($types as $type) { + $methods[$type] = array(); + switch ($type){ + case 'notify': + $methods[$type]['sound'] = $vars->get('task_alarms_sound'); + break; + case 'mail': + $methods[$type]['email'] = $vars->get('task_alarms_email'); + break; + case 'popup': + break; + } + } + } + } else { + // Prefilled form. + $methods = $varvalue; + } + + printf('
', + $varname, + $varname, + !empty($methods) ? '' : ' checked="checked"', + $this->_getActionScripts($form, $var), + $varname, + _("Use default notification method")); + printf('', + $varname, + !empty($methods) ? ' checked="checked"' : '', + $this->_getActionScripts($form, $var), + $varname, + _("Use custom notification method")); + + if (!empty($methods)) { + echo '
'; + + global $registry, $prefs; + $pref = 'task_alarms'; + $_prefs = array($pref => array('desc' => '')); + $helplink = ''; + $original_value = $prefs->getValue($pref); + if (!empty($methods)) { + $prefs->setValue($pref, serialize($methods)); + } + include $GLOBALS['registry']->get('templates', 'horde') . '/prefs/alarm.inc'; + if (!empty($methods)) { + $prefs->setValue($pref, $original_value); + } + } + } + + function _renderVarInput_nag_start($form, &$var, &$vars) + { + $var->type->getInfo($vars, $var, $task_start); + if ($task_start == 0) { + $start_date = getdate(time() + 604800); // About a week from now + } else { + $start_date = getdate($task_start); + } + + $javascript_start = 'onchange="document.' . $form->getName() . '.start_date[1].checked = true;"'; + + /* Set up the radio buttons. */ + $no_start_checked = ($task_start == 0) ? 'checked="checked" ' : ''; + $specified_start_checked = ($task_start > 0) ? 'checked="checked" ' : ''; +?> + /> + +
+ + /> + + + + +buildDayWidget('start[day]', $start_date['mday'], $javascript_start) . ' ' . $this->buildMonthWidget('start[month]', $start_date['mon'], $javascript_start) . ' ' . $this->buildYearWidget('start[year]', 3, $start_date['year'], $javascript_start) ?> +hasFeature('javascript')) { +Horde::addScriptFile('open_calendar.js', 'horde'); +echo ''; +echo Horde::link('#', _("Select a date"), '', '', 'openCalendar(\'startimg\', \'start\', \'document.' . $form->getName() . '.start_date[1].checked = true;\'); return false;') . Horde::img('calendar.png', _("Calendar"), 'align="top" id="startimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; +} ?> +type->getInfo($vars, $var, $task_due); + if ($task_due == 0) { + $date = '+' . (int)$GLOBALS['prefs']->getValue('default_due_days') . ' days'; + $time = $GLOBALS['prefs']->getValue('default_due_time'); + if ($time == 'now') { + $time = ''; + } else { + $time = ' ' . $time; + } + $due_date = getdate(strtotime($date . $time)); + + // Default to having a due date for new tasks if the + // default_due preference is set. + if (!$vars->exists('task_id') && $GLOBALS['prefs']->getValue('default_due')) { + $task_due = strtotime($date . $time); + } + } else { + $due_date = getdate($task_due); + } + + $javascript_due = 'onchange="document.' . $form->getName() . '.due_type[1].checked = true;"'; + $hour_widget = $this->buildHourWidget('due_hour', $due_date['hours'], $javascript_due); + $minute_widget = $this->buildMinuteWidget('due_minute', 15, $due_date['minutes'], $javascript_due); + $am_pm_widget = $this->buildAmPmWidget('due_am_pm', $due_date['hours'], $javascript_due, $javascript_due); + + /* Set up the radio buttons. */ + $none_checked = ($task_due == 0) ? 'checked="checked" ' : ''; + $specified_checked = ($task_due > 0) ? 'checked="checked" ' : ''; +?> + /> + +
+ + /> + + + + +buildDayWidget('due[day]', $due_date['mday'], $javascript_due) . ' ' . $this->buildMonthWidget('due[month]', $due_date['mon'], $javascript_due) . ' ' . $this->buildYearWidget('due[year]', 3, $due_date['year'], $javascript_due) ?> +hasFeature('javascript')) { +echo ''; +echo Horde::link('#', _("Select a date"), '', '', 'openCalendar(\'dueimg\', \'due\', \'document.' . $form->getName() . '.due_type[1].checked = true;\'); return false;') . Horde::img('calendar.png', _("Calendar"), 'align="top" id="dueimg"', $GLOBALS['registry']->getImageDir('horde')) . ''; +} ?> +
+ + + + + +getVarName(), ENT_QUOTES, $this->_charset); + $value = $var->getValue($vars); + if (!is_array($value)) { + if ($value) { + if ($value % 10080 == 0) { + $value = array('value' => $value / 10080, 'unit' => 10080); + } elseif ($value % 1440 == 0) { + $value = array('value' => $value / 1440, 'unit' => 1440); + } elseif ($value % 60 == 0) { + $value = array('value' => $value / 60, 'unit' => 60); + } else { + $value = array('value' => $value, 'unit' => 1); + } + $value['on'] = true; + } + } + $units = array(1 => _("Minute(s)"), 60 => _("Hour(s)"), + 1440 => _("Day(s)"), 10080 => _("Week(s)")); + $options = ''; + foreach ($units as $unit => $label) { + $options .= ''; + } + + return sprintf('
', + $varname, + $varname, + $value['on'] ? '' : ' checked="checked"', + $varname, + _("None")) + . sprintf('', + $varname, + $value['on'] ? ' checked="checked"' : '') + . sprintf('', + $varname, + $varname, + $value['on'] ? htmlspecialchars($value['value']) : 15) + . sprintf(' ', + $varname, + $varname, + $options); + } + + /** + * Generates the HTML for a day selection widget. + * + * @param string $name The name of the widget. + * @param integer $default The value to select by default. Range: 1-31 + * @param string $params Any additional parameters to include in the + * widget. + */ + function buildDayWidget($name, $default = null, $params = null) + { + $id = str_replace(array('[', ']'), array('_', ''), $name); + + $html = '\n"; + } + + /** + * Generates the HTML for a month selection widget. + * + * @param string $name The name of the widget. + * @param integer $default The value to select by default. + * @param string $params Any additional parameters to include in the + * widget. + */ + function buildMonthWidget($name, $default = null, $params = null) + { + $id = str_replace(array('[', ']'), array('_', ''), $name); + + $html = '\n"; + } + + /** + * Generates the HTML for a year selection widget. + * + * @param integer $name The name of the widget. + * @param integer $years The number of years to include. + * If (+): future years + * If (-): past years + * @param string $default The timestamp to select by default. + * @param string $params Any additional parameters to include in the + * widget. + */ + function buildYearWidget($name, $years, $default = null, $params = null) + { + $curr_year = date('Y'); + $yearlist = array(); + + $startyear = (!is_null($default) && ($default < $curr_year) && ($years > 0)) ? $default : $curr_year; + $startyear = min($startyear, $startyear + $years); + for ($i = 0; $i <= abs($years); $i++) { + $yearlist[] = $startyear++; + } + if ($years < 0) { + $yearlist = array_reverse($yearlist); + } + + $id = str_replace(array('[', ']'), array('_', ''), $name); + + $html = '\n"; + } + + /** + * Generates the HTML for an hour selection widget. + * + * @param string $name The name of the widget. + * @param integer $default The timestamp to select by default. + * @param string $params Any additional parameters to include in the + * widget. + */ + function buildHourWidget($name, $default = null, $params = null) + { + global $prefs; + if (!$prefs->getValue('twentyFour')) { + $default = ($default + 24) % 12; + } + + $html = ''; + } + + function buildAmPmWidget($name, $default = 'am', $amParams = null, $pmParams = null) + { + global $prefs; + if ($prefs->getValue('twentyFour')) { + return; + } + + if (is_numeric($default)) { + $default = date('a', mktime($default)); + } + if ($default == 'am') { + $am = ' checked="checked"'; + $pm = ''; + } else { + $am = ''; + $pm = ' checked="checked"'; + } + + $html = '  '; + $html .= ''; + + return $html; + } + + /** + * Generates the HTML for a minute selection widget. + * + * @param string $name The name of the widget. + * @param integer $increment The increment between minutes. + * @param integer $default The timestamp to select by default. + * @param string $params Any additional parameters to include in the + * widget. + */ + function buildMinuteWidget($name, $increment = 1, $default = null, + $params = null) + { + $html = '\n"; + } + +} diff --git a/nag/lib/api.php b/nag/lib/api.php new file mode 100644 index 000000000..5d3035dd6 --- /dev/null +++ b/nag/lib/api.php @@ -0,0 +1,1459 @@ + array(), + 'type' => '{urn:horde}hashHash' +); + +$_services['removeUserData'] = array( + 'args' => array('user' => 'string'), + 'type' => 'boolean' +); + +$_services['show'] = array( + 'link' => '%application%/view.php?tasklist=|tasklist|&task=|task|&uid=|uid|', +); + +$_services['browse'] = array( + 'args' => array('path' => 'string'), + 'type' => '{urn:horde}hashHash', +); + +$_services['put'] = array( + 'args' => array('path' => 'string', 'content' => 'string', 'content_type' => 'string'), + 'type' => 'int', +); + +$_services['path_delete'] = array( + 'args' => array('path' => 'string'), + 'type' => 'boolean', +); + +$_services['addTasklist'] = array( + 'args' => array('name' => 'string', 'description' => 'string'), + 'type' => 'string', +); + +$_services['listTasklists'] = array( + 'args' => array('owneronly' => 'boolean', 'permission' => 'int'), + 'type' => '{urn:horde}stringArray', +); + +$_services['listTasks'] = array( + 'args' => array('sortby' => 'string', 'sortdir' => 'int', 'altsortby' => 'string', 'tasklists' => '{urn:horde}stringArray', 'completed' => 'int', 'json' => 'boolean'), + 'type' => '{urn:horde}stringArray', +); + +$_services['listAlarms'] = array( + 'args' => array('time' => 'int', 'user' => 'string'), + 'type' => '{urn:horde}hashHash' +); + +$_services['list'] = array( + 'args' => array(), + 'type' => '{urn:horde}stringArray', +); + +$_services['listBy'] = array( + 'args' => array('action' => 'string', 'timestamp' => 'int'), + 'type' => '{urn:horde}stringArray', +); + +$_services['getActionTimestamp'] = array( + 'args' => array('uid' => 'string', 'action' => 'string', 'tasklist' => 'string'), + 'type' => 'int', +); + +$_services['import'] = array( + 'args' => array('content' => 'string', 'contentType' => 'string', 'tasklist' => 'string'), + 'type' => 'string', +); + +$_services['quickAdd'] = array( + 'args' => array('content' => 'string', 'tasklist' => 'string'), + 'type' => '{urn:horde}stringArray', +); + +$_services['export'] = array( + 'args' => array('uid' => 'string', 'contentType' => '{urn:horde}stringArray'), + 'type' => 'string', +); + +$_services['exportTasklist'] = array( + 'args' => array('tasklist' => 'string', 'contentType' => 'string'), + 'type' => 'string' +); + +$_services['delete'] = array( + 'args' => array('uid' => '{urn:horde}stringArray'), + 'type' => 'boolean', +); + +$_services['replace'] = array( + 'args' => array('uid' => 'string', 'content' => 'string', 'contentType' => 'string'), + 'type' => 'boolean', +); + +$_services['listCostObjects'] = array( + 'args' => array('criteria' => '{urn:horde}hash'), + 'type' => '{urn:horde}stringArray' +); + +$_services['listTimeObjectCategories'] = array( + 'type' => '{urn:horde}stringArray' +); + +$_services['listTimeObjects'] = array( + 'args' => array('start' => 'int', 'end' => 'int'), + 'type' => '{urn:horde}hashHash' +); + +$_services['completeTask'] = array( + 'args' => array('task_id' => 'string', 'tasklist_id' => 'string'), + 'type' => 'boolean' +); + +/** + * Returns a list of available permissions. + * + * @return array An array describing all available permissions. + */ +function _nag_perms() +{ + $perms = array(); + $perms['tree']['nag']['max_tasks'] = false; + $perms['title']['nag:max_tasks'] = _("Maximum Number of Tasks"); + $perms['type']['nag:max_tasks'] = 'int'; + + return $perms; +} + +/** + * Removes user data. + * + * @param string $user Name of user to remove data for. + * + * @return mixed true on success | PEAR_Error on failure + */ +function _nag_removeUserData($user) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (!Horde_Auth::isAdmin() && $user != Horde_Auth::getAuth()) { + return PEAR::raiseError(_("You are not allowed to remove user data.")); + } + + /* Error flag */ + $hasError = false; + + /* Get the share for later deletion */ + $share = $GLOBALS['nag_shares']->getShare($user); + if(is_a($share, 'PEAR_Error')) { + Horde::logMessage($share->getMessage(), __FILE__, __LINE__, PEAR_LOG_ERR); + unset($share); + } else { + /* Get the list of all tasks */ + $tasks = Nag::listTasks(null, null, null, $user, 1); + if (is_a($tasks, 'PEAR_Error')) { + $hasError = true; + Horde::logMessage($share->getMessage(), __FILE__, __LINE__, PEAR_LOG_ERR); + } else { + $uids = array(); + $tasks->reset(); + while ($task = $tasks->each()) { + $uids[] = $task->uid; + } + + /* ... and delete them. */ + foreach ($uids as $uid) { + _nag_delete($uid); + } + } + } + + /* Now delete history as well. */ + $history = Horde_History::singleton(); + if (method_exists($history, 'removeByParent')) { + $histories = $history->removeByParent('nag:' . $user); + } else { + /* Remove entries 100 at a time. */ + $all = $history->getByTimestamp('>', 0, array(), 'nag:' . $user); + if (is_a($all, 'PEAR_Error')) { + Horde::logMessage($all, __FILE__, __LINE__, PEAR_LOG_ERR); + } else { + $all = array_keys($all); + while (count($d = array_splice($all, 0, 100)) > 0) { + $history->removebyNames($d); + } + } + } + + /* ...and finally, delete the actual share */ + if (!empty($share)) { + $result = $GLOBALS['nag_shares']->removeShare($share); + if (is_a($result, 'PEAR_Error')) { + $hasError = true; + Horde::logMessage($result->getMessage(), __FILE__, __LINE__, PEAR_LOG_ERR); + } + } + + /* Now remove perms for this user from all other shares */ + $shares = $GLOBALS['nag_shares']->listShares($user); + if (is_a($shares, 'PEAR_Error')) { + $hasError = true; + Horde::logMessage($shares, __FILE__, __LINE__, PEAR_LOG_ERR); + } + foreach ($shares as $share) { + $share->removeUser($user); + } + + if ($hasError) { + return PEAR::raiseError(sprintf(_("There was an error removing tasks for %s. Details have been logged."), $user)); + } else { + return true; + } +} + +/** + * Retrieves the current user's task list from storage. + * + * This function will also sort the resulting list, if requested. + * + * @param string $sortby The field by which to sort + * (NAG_SORT_PRIORITY, NAG_SORT_NAME + * NAG_SORT_DUE, NAG_SORT_COMPLETION). + * @param integer $sortdir The direction by which to sort + * @param string $altsortby The secondary sort field. + * @param array $tasklists An array of tasklist to display or + * null/empty to display taskslists + * $GLOBALS['display_tasklists']. + * @param integer $completed Which tasks to retrieve (1 = all tasks, + * 0 = incomplete tasks, 2 = complete tasks, + * 3 = future tasks, 4 = future and incomplete + * tasks). + * @param boolean $json Retrieve the results of the tasks in + * 'json format' + * + * @return Nag_Task A list of the requested tasks. + */ +function _nag_listTasks($sortby = null, $sortdir = null, $altsortby = null, + $tasklists = null, $completed = null, $json = false) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (!isset($sortby)) { + $sortby = $GLOBALS['prefs']->getValue('sortby'); + } + if (!isset($sortdir)) { + $sortdir = $GLOBALS['prefs']->getValue('sortdir'); + } + if (is_null($altsortby)) { + $altsortby = $GLOBALS['prefs']->getValue('altsortby'); + } + if (is_null($tasklists)) { + $tasklists = $GLOBALS['display_tasklists']; + } + if (is_null($completed)) { + $completed = $GLOBALS['prefs']->getValue('show_completed'); + } + + $tasks = Nag::listTasks($sortby, $sortdir, $altsortby, $tasklists); + $tasks->reset(); + $list = array(); + while ($task = $tasks->each()) { + $list[$task->id] = $json ? $task->toJson() : $task->toHash(); + } + + return $list; +} + +/** + * Add a new task list + * + * @param string $name Task list name + * @param string $description Task list description + * + * @return integer The new tasklist's id. + */ +function _nag_addTasklist($name, $description = '') +{ + if (!Horde_Auth::getAuth()) { + return PEAR::raiseError(_("Permission denied")); + } + + require_once dirname(__FILE__) . '/base.php'; + global $nag_shares; + + $tasklistId = md5(microtime()); + $tasklist = $nag_shares->newShare($tasklistId); + + if (is_a($tasklist, 'PEAR_Error')) { + return $tasklist; + } + + $tasklist->set('name', $name, false); + $tasklist->set('desc', $description, false); + $result = $nag_shares->addShare($tasklist); + + if (is_a($result, 'PEAR_Error')) { + return $result; + } + + return $tasklistId; +} + +/** + * Returns the last modification timestamp of a given uid. + * + * @param string $uid The uid to look for. + * @param string $tasklist The tasklist to look in. + * + * @return integer The timestamp for the last modification of $uid. + */ +function __nag_modified($uid, $tasklist = null) +{ + $modified = _nag_getActionTimestamp($uid, 'modify', $tasklist); + if (empty($modified)) { + $modified = _nag_getActionTimestamp($uid, 'add', $tasklist); + } + return $modified; +} + +/** + * Browse through Nag's object tree. + * + * @param string $path The level of the tree to browse. + * @param array $properties The item properties to return. Defaults to 'name', + * 'icon', and 'browseable'. + * + * @return array The contents of $path + */ +function _nag_browse($path = '', $properties = array()) +{ + require_once dirname(__FILE__) . '/base.php'; + global $registry; + + function _getTasklistSize($tasklistID) + { + // This ugly and performance-heavy hack is required to set the content + // length. Some clients (at least OS X) respect the content-length + // header a little too exactly. If we send a content-length that is + // longer than the actual data it will complain that the connection + // broke. If we specify one that is too short it will truncate the + // downlaoded file. To make matters worse it seems to respect the + // content-length from the PROPFIND request used to enumerate objects + // rather than the actual content-length sent at the time the file is + // downloaded. Way to go, Apple. + return strlen(_nag_exportTasklist($tasklistID, 'text/calendar')); + } + + // Default properties. + if (!$properties) { + $properties = array('name', 'icon', 'browseable'); + } + + if (substr($path, 0, 3) == 'nag') { + $path = substr($path, 3); + } + $path = trim($path, '/'); + $parts = explode('/', $path); + + if (empty($path)) { + // + // This request is for a list of all users who have tasklists visible + // to the requesting user. + // + $tasklists = Nag::listTasklists(false, PERMS_READ); + $owners = array(); + foreach ($tasklists as $tasklist) { + $owners[$tasklist->get('owner')] = true; + } + + $results = array(); + foreach (array_keys($owners) as $owner) { + if (in_array('name', $properties)) { + $results['nag/' . $owner]['name'] = $owner; + } + if (in_array('icon', $properties)) { + $results['nag/' . $owner]['icon'] = + $registry->getImageDir('horde') . '/user.png'; + } + if (in_array('browseable', $properties)) { + $results['nag/' . $owner]['browseable'] = true; + } + if (in_array('contenttype', $properties)) { + $results['nag/' . $owner]['contenttype'] = + 'httpd/unix-directory'; + } + if (in_array('contentlength', $properties)) { + $results['nag/' . $owner]['contentlength'] = 0; + } + if (in_array('modified', $properties)) { + $results['nag/' . $owner]['modified'] = + $_SERVER['REQUEST_TIME']; + } + if (in_array('created', $properties)) { + $results['nag/' . $owner]['created'] = 0; + } + } + return $results; + + } elseif (count($parts) == 1) { + // + // This request is for all tasklists owned by the requested user + // + $tasklists = $GLOBALS['nag_shares']->listShares($parts[0], + PERMS_SHOW, + $parts[0]); + + // The last check returns all addressbooks for the requested user, + // but that does not mean the requesting user has access to them. + // Filter out those address books for which the requesting user has + // no access. + $tasklists = Nag::permissionsFilter($tasklists); + + $results = array(); + foreach ($tasklists as $tasklistId => $tasklist) { + $retpath = 'nag/' . $parts[0] . '/' . $tasklistId; + if (in_array('name', $properties)) { + $results[$retpath]['name'] = sprintf(_("Tasks from %s"), $tasklist->get('name')); + $results[$retpath . '.ics']['name'] = $tasklist->get('name'); + } + if (in_array('icon', $properties)) { + $results[$retpath]['icon'] = $registry->getImageDir() . '/nag.png'; + $results[$retpath . '.ics']['icon'] = $registry->getImageDir() . '/mime/icalendar.png'; + } + if (in_array('browseable', $properties)) { + $results[$retpath]['browseable'] = $tasklist->hasPermission(Horde_Auth::getAuth(), PERMS_READ); + $results[$retpath . '.ics']['browseable'] = false; + } + if (in_array('contenttype', $properties)) { + $results[$retpath]['contenttype'] = 'httpd/unix-directory'; + $results[$retpath . '.ics']['contenttype'] = 'text/calendar'; + } + if (in_array('contentlength', $properties)) { + $results[$retpath]['contentlength'] = 0; + $results[$retpath . '.ics']['contentlength'] = _getTasklistSize($tasklistId); + } + if (in_array('modified', $properties)) { + // @TODO Find a way to get the actual modification times + $results[$retpath]['modified'] = $_SERVER['REQUEST_TIME']; + $results[$retpath . '.ics']['modified'] = $_SERVER['REQUEST_TIME']; + } + if (in_array('created', $properties)) { + // @TODO Find a way to get the actual creation times + $results[$retpath]['created'] = 0; + $results[$retpath . '.ics']['created'] = 0; + } + } + return $results; + + } elseif (count($parts) == 2 && substr($parts[1], -4) == '.ics') { + // + // This is a request for the entire tasklist in iCalendar format. + // + $tasklist = substr($parts[1], 0, -4); + if (!array_key_exists($tasklist, Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Invalid tasklist file requested."), 404); + } + $ical_data = _nag_exportTasklist($tasklist, 'text/calendar'); + $result = array('data' => $ical_data, + 'mimetype' => 'text/calendar', + 'contentlength' => strlen($ical_data), + 'mtime' => $_SERVER['REQUEST_TIME']); + + return $result; + + } elseif (count($parts) == 2) { + // + // This request is browsing into a specific tasklist. Generate the list + // of items and represent them as files within the directory. + // + if (!array_key_exists($parts[1], Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Invalid tasklist requested."), 404); + } + $storage = Nag_Driver::singleton($parts[1]); + $result = $storage->retrieve(); + if (is_a($result, 'PEAR_Error')) { + $result->code = 500; + return $result; + } + + $icon = $registry->getImageDir() . '/nag.png'; + $results = array(); + $storage->tasks->reset(); + while ($task = $storage->tasks->each()) { + $key = 'nag/' . $parts[0] . '/' . $parts[1] . '/' . $task->id; + if (in_array('name', $properties)) { + $results[$key]['name'] = $task->name; + } + if (in_array('icon', $properties)) { + $results[$key]['icon'] = $icon; + } + if (in_array('browseable', $properties)) { + $results[$key]['browseable'] = false; + } + if (in_array('contenttype', $properties)) { + $results[$key]['contenttype'] = 'text/calendar'; + } + if (in_array('contentlength', $properties)) { + // FIXME: This is a hack. If the content length is longer + // than the actual data then some WebDAV clients will report + // an error when the file EOF is received. Ideally we should + // determine the actual size of the data and report it here, but + // the performance hit may be prohibitive. This requires + // further investigation. + $results[$key]['contentlength'] = 1; + } + if (in_array('modified', $properties)) { + $results[$key]['modified'] = __nag_modified($task->uid, $path); + } + if (in_array('created', $properties)) { + $results[$key]['created'] = _nag_getActionTimestamp($task->uid, 'add', $path); + } + } + return $results; + } else { + // + // The only valid request left is for either a specific task item. + // + if (count($parts) == 3 && + array_key_exists($parts[1], Nag::listTasklists(false, + PERMS_READ))) { + // + // This request is for a specific item within a given task list. + // + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($parts[1]); + if (is_a($storage, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Connection failed: %s"), $storage->getMessage())); + } + $storage->retrieve(); + + $task = $storage->get($parts[2]); + if (is_a($task, 'PEAR_Error')) { + $task->code = 500; + return $task; + } + + $result = array('data' => _nag_export($task->uid, 'text/calendar'), + 'mimetype' => 'text/calendar'); + $modified = __nag_modified($task->uid, $parts[1]); + if (!empty($modified)) { + $result['mtime'] = $modified; + } + return $result; + } elseif (count($parts) == 2 && + substr($parts[1], -4) == '.ics' && + array_key_exists(substr($parts[1], 0, -4), Nag::listTasklists(false, PERMS_READ))) { + } else { + // + // All other requests are a 404: Not Found + // + return false; + } + } +} + +/** + * Saves a file into the Nag tree. + * + * @param string $path The path where to PUT the file. + * @param string $content The file content. + * @param string $content_type The file's content type. + * + * @return array The event UIDs, or a PEAR_Error on failure. + */ +function _nag_put($path, $content, $content_type) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (substr($path, 0, 3) == 'nag') { + $path = substr($path, 3); + } + $path = trim($path, '/'); + $parts = explode('/', $path); + + if (count($parts) == 2 && + substr($parts[1], -4) == '.ics') { + + // Workaround for WebDAV clients that are not smart enough to send + // the right content type. Assume text/calendar. + if ($content_type == 'application/octet-stream') { + $content_type = 'text/calendar'; + } + $tasklist = substr($parts[1], 0, -4); + } elseif (count($parts) == 3) { + $tasklist = $parts[1]; + + // Workaround for WebDAV clients that are not smart enough to send + // the right content type. Assume the same format we send individual + // tasklist items: text/calendar + if ($content_type == 'application/octet-stream') { + $content_type = 'text/calendar'; + } + } else { + return PEAR::raiseError(_("Invalid tasklist name supplied."), 403); + } + + if (!array_key_exists($tasklist, Nag::listTasklists(false, PERMS_EDIT))) { + // FIXME: Should we attempt to create a tasklist based on the filename + // in the case that the requested tasklist does not exist? + return PEAR::raiseError(_("Tasklist does not exist or no permission to edit"), 403); + } + + // Store all currently existings UIDs. Use this info to delete UIDs not + // present in $content after processing. + $ids = array(); + $uids_remove = array_flip(_nag_list($tasklist)); + + $storage = Nag_Driver::singleton($tasklist); + + switch ($content_type) { + case 'text/calendar': + case 'text/x-vcalendar': + $iCal = new Horde_iCalendar(); + if (!is_a($content, 'Horde_iCalendar_vtodo')) { + if (!$iCal->parsevCalendar($content)) { + return PEAR::raiseError(_("There was an error importing the iCalendar data."), 400); + } + } else { + $iCal->addComponent($content); + } + + foreach ($iCal->getComponents() as $content) { + if (is_a($content, 'Horde_iCalendar_vtodo')) { + $task = new Nag_Task(); + $task->fromiCalendar($content); + $task->tasklist = $tasklist; + if (isset($task->uid) && + !is_a(($existing = $storage->getByUID($task->uid)), 'PEAR_Error')) { + // Entry exists, remove from uids_remove list so we won't + // delete in the end. + if (isset($uids_remove[$task->uid])) { + unset($uids_remove[$task->uid]); + } + if ($existing->private && + $existing->owner != Horde_Auth::getAuth()) { + continue; + } + // Check if our task is newer then the existing - get the + // task's history. + $history = Horde_History::singleton(); + $created = $modified = null; + $log = $history->getHistory('nag:' . $tasklist . ':' . $task->uid); + if ($log && !is_a($log, 'PEAR_Error')) { + foreach ($log->getData() as $entry) { + switch ($entry['action']) { + case 'add': + $created = $entry['ts']; + break; + + case 'modify': + $modified = $entry['ts']; + break; + } + } + } + if (empty($modified) && !empty($add)) { + $modified = $add; + } + if (!empty($modified) && + $modified >= $content->getAttribute('LAST-MODIFIED')) { + // LAST-MODIFIED timestamp of existing entry is newer: + // don't replace it. + continue; + } + + // Don't change creator/owner. + $owner = $existing->owner; + $taskId = $existing->id; + $result = $storage->modify( + $taskId, + isset($task->name) ? $task->name : $existing->name, + isset($task->desc) ? $task->desc : $existing->desc, + isset($task->start) ? $task->start : $existing->start, + isset($task->due) ? $task->due : $existing->due, + isset($task->priority) ? $task->priority : $existing->priority, + isset($task->estimate) ? $task->estimate : 0, + isset($task->completed) ? (int)$task->completed : $existing->completed, + isset($task->category) ? $task->category : $existing->category, + isset($task->alarm) ? $task->alarm : $existing->alarm, + isset($task->parent_id) ? $task->parent_id : $existing->parent_id, + isset($task->private) ? $task->private : $existing->private, + $owner, + isset($task->assignee) ? $task->assignee : $existing->assignee); + + if (is_a($result, 'PEAR_Error')) { + $result->code = 500; + return $result; + } + $ids[] = $task->uid; + } else { + $newTask = $storage->add( + isset($task->name) ? $task->name : '', + isset($task->desc) ? $task->desc : '', + isset($task->start) ? $task->start : 0, + isset($task->due) ? $task->due : 0, + isset($task->priority) ? $task->priority : 3, + isset($task->estimate) ? $task->estimate : 0, + !empty($task->completed), + isset($task->category) ? $task->category : '', + isset($task->alarm) ? $task->alarm : 0, + isset($task->uid) ? $task->uid : null, + isset($task->parent_id) ? $task->parent_id : '', + !empty($task->private), + Horde_Auth::getAuth(), + isset($task->assignee) ? $task->assignee : null); + if (is_a($newTask, 'PEAR_Error')) { + $newtask->code = 500; + return $newTask; + } + // use UID rather than ID + $ids[] = $newTask[1]; + } + } + } + break; + + default: + return PEAR::raiseError(sprintf(_("Unsupported Content-Type: %s"), $content_type), 400); + } + + if (array_key_exists($tasklist, Nag::listTasklists(false, PERMS_DELETE))) { + foreach (array_keys($uids_remove) as $uid) { + _nag_delete($uid); + } + } + + return $ids; +} + +/** + * Deletes a file from the Nag tree. + * + * @param string $path The path to the file. + * + * @return mixed The event's UID, or a PEAR_Error on failure. + */ +function _nag_path_delete($path) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (substr($path, 0, 3) == 'nag') { + $path = substr($path, 3); + } + $path = trim($path, '/'); + $parts = explode('/', $path); + + if (count($parts) == 2) { + // @TODO Deny deleting of the entire tasklist for now. + // Allow users to delete tasklists but not create them via WebDAV will + // be more confusing than helpful. They are, however, still able to + // delete individual task items within the tasklist folder. + return PEAR::raiseError(_("Deleting entire tasklists is not supported."), 403); + // To re-enable the functionality just remove this if {} block. + } + + if (substr($parts[1], -4) == '.ics') { + $tasklistID = substr($parts[1], 0, -4); + } else { + $tasklistID = $parts[1]; + } + + if (!(count($parts) == 2 || count($parts) == 3) || + !array_key_exists($tasklistID, Nag::listTasklists(false, PERMS_DELETE))) { + return PEAR::raiseError(_("Tasklist does not exist or no permission to delete"), 403); + } + + /* Create a Nag storage instance. */ + $storage = Nag_Driver::singleton($tasklistID); + if (is_a($storage, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Connection failed: %s"), $storage->getMessage()), 500); + } + $retrieved = $storage->retrieve(); + if (is_a($retrieved, 'PEAR_Error')) { + $retrieved->code = 500; + return $retrieved; + } + + if (count($parts) == 3) { + // Delete just a single entry + return $storage->delete($parts[2]); + } else { + // Delete the entire task list + $result = $storage->deleteAll(); + if (is_a($result, 'PEAR_Error')) { + return PEAR::raiseError(sprintf(_("Unable to delete tasklist \"%s\": %s"), $tasklistID, $result->getMessage()), 500); + } else { + // Remove share and all groups/permissions. + $share = $GLOBALS['nag_shares']->getShare($tasklistID); + $result = $GLOBALS['nag_shares']->removeShare($share); + if (is_a($result, 'PEAR_Error')) { + $result->code = 500; + return $result; + } + } + } +} + +/** + * @param boolean $owneronly Only return tasklists that this user owns? + * Defaults to false. + * @param integer $permission The permission to filter tasklists by. + * + * @return array The task lists. + */ +function _nag_listTasklists($owneronly, $permission) +{ + require_once dirname(__FILE__) . '/base.php'; + + return Nag::listTasklists($owneronly, $permission); +} + +/** + * Returns an array of UIDs for all tasks that the current user is authorized + * to see. + * + * @param variant $tasklist The tasklist or an array of taskslists to list. + * + * @return array An array of UIDs for all tasks + * the user can access. + */ +function _nag_list($tasklist = null) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (!isset($GLOBALS['conf']['storage']['driver'])) { + return PEAR::raiseError(_("Not configured")); + } + + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_READ); + } + + if (!array_key_exists($tasklist, + Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $tasks = Nag::listTasks(null, null, null, $tasklist, 1); + if (is_a($tasks, 'PEAR_Error')) { + return $tasks; + } + + $uids = array(); + $tasks->reset(); + while ($task = $tasks->each()) { + $uids[] = $task->uid; + } + + return $uids; +} + +/** + * Returns an array of UIDs for tasks that have had $action happen since + * $timestamp. + * + * @param string $action The action to check for - add, modify, or delete. + * @param integer $timestamp The time to start the search. + * @param string $tasklist The tasklist to be used. If 'null', the + * user's default tasklist will be used. + * + * @return array An array of UIDs matching the action and time criteria. + */ +function _nag_listBy($action, $timestamp, $tasklist = null) +{ + require_once dirname(__FILE__) . '/base.php'; + + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_READ); + } + + if (!array_key_exists($tasklist, + Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $history = Horde_History::singleton(); + $histories = $history->getByTimestamp('>', $timestamp, array(array('op' => '=', 'field' => 'action', 'value' => $action)), 'nag:' . $tasklist); + if (is_a($histories, 'PEAR_Error')) { + return $histories; + } + + // Strip leading nag:username:. + return preg_replace('/^([^:]*:){2}/', '', array_keys($histories)); +} + +/** + * Returns the timestamp of an operation for a given uid an action. + * + * @param string $uid The uid to look for. + * @param string $action The action to check for - add, modify, or delete. + * @param string $tasklist The tasklist to be used. If 'null', the + * user's default tasklist will be used. + * + * @return integer The timestamp for this action. + */ +function _nag_getActionTimestamp($uid, $action, $tasklist = null) +{ + require_once dirname(__FILE__) . '/base.php'; + + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_READ); + } + + if (!array_key_exists($tasklist, + Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $history = Horde_History::singleton(); + return $history->getActionTimestamp('nag:' . $tasklist . ':' . $uid, $action); +} + +/** + * Imports one or more tasks represented in the specified content type. + * + * If a UID is present in the content and the task is already in the + * database, a replace is performed rather than an add. + * + * @param string $content The content of the task. + * @param string $contentType What format is the data in? Currently supports: + * text/calendar + * text/x-vcalendar + * @param string $tasklist The tasklist into which the task will be + * imported. If 'null', the user's default + * tasklist will be used. + * + * @return string The new UID on one import, an array of UIDs on multiple imports, + * or PEAR_Error on failure. + */ +function _nag_import($content, $contentType, $tasklist = null) +{ + require_once dirname(__FILE__) . '/base.php'; + + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_EDIT); + } + + if (!array_key_exists($tasklist, Nag::listTasklists(false, PERMS_EDIT))) { + return PEAR::raiseError(_("Permission Denied")); + } + + /* Create a Nag_Driver instance. */ + $storage = Nag_Driver::singleton($tasklist); + + switch ($contentType) { + case 'text/x-vcalendar': + case 'text/calendar': + case 'text/x-vtodo': + $iCal = new Horde_iCalendar(); + if (!is_a($content, 'Horde_iCalendar_vtodo')) { + if (!$iCal->parsevCalendar($content)) { + return PEAR::raiseError(_("There was an error importing the iCalendar data.")); + } + } else { + $iCal->addComponent($content); + } + + $components = $iCal->getComponents(); + if (count($components) == 0) { + return PEAR::raiseError(_("No iCalendar data was found.")); + } + + $ids = array(); + foreach ($components as $content) { + if (is_a($content, 'Horde_iCalendar_vtodo')) { + $task = new Nag_Task(); + $task->fromiCalendar($content); + if (isset($task->uid) && + !is_a(($existing = $storage->getByUID($task->uid)), 'PEAR_Error')) { + $taskId = $existing->id; + $result = $storage->modify( + $taskId, + isset($task->name) ? $task->name : $existing->name, + isset($task->desc) ? $task->desc : $existing->desc, + isset($task->start) ? $task->start : $existing->start, + isset($task->due) ? $task->due : $existing->due, + isset($task->priority) ? $task->priority : $existing->priority, + isset($task->estimate) ? $task->estimate : 0, + isset($task->completed) ? (int)$task->completed : $existing->completed, + isset($task->category) ? $task->category : $existing->category, + isset($task->alarm) ? $task->alarm : $existing->alarm, + isset($task->parent_id) ? $task->parent_id : $existing->parent_id, + isset($task->private) ? $task->private : $existing->private, + isset($task->owner) ? $task->owner : $existing->owner, + isset($task->assignee) ? $task->assignee : $existing->assignee); + + if (is_a($result, 'PEAR_Error')) { + return $result; + } + $ids[] = $task->uid; + } else { + $newTask = $storage->add( + isset($task->name) ? $task->name : '', + isset($task->desc) ? $task->desc : '', + isset($task->start) ? $task->start : 0, + isset($task->due) ? $task->due : 0, + isset($task->priority) ? $task->priority : 3, + isset($task->estimate) ? $task->estimate : 0, + !empty($task->completed), + isset($task->category) ? $task->category : '', + isset($task->alarm) ? $task->alarm : 0, + isset($task->methods) ? $task->methods : null, + isset($task->uid) ? $task->uid : null, + isset($task->parent_id) ? $task->parent_id : '', + !empty($task->private), + Horde_Auth::getAuth(), + isset($task->assignee) ? $task->assignee : null); + if (is_a($newTask, 'PEAR_Error')) { + return $newTask; + } + // use UID rather than ID + $ids[] = $newTask[1]; + } + } + } + if (count($ids) == 0) { + return PEAR::raiseError(_("No iCalendar data was found.")); + } else if (count($ids) == 1) { + return $ids[0]; + } + return $ids; + } + + return PEAR::raiseError(sprintf(_("Unsupported Content-Type: %s"), $contentType)); +} + +/** + * Imports one or more tasks parsed from a string. + * + * @param string $text The text to parse into + * @param string $tasklist The tasklist into which the task will be + * imported. If 'null', the user's default + * tasklist will be used. + * + * @return array The UIDs of all tasks that were added. + */ +function _nag_quickAdd($text, $tasklist = null) +{ + require_once dirname(__FILE__) . '/base.php'; + + if ($tasklist === null) { + $tasklist = Nag::getDefaultTasklist(PERMS_EDIT); + } + if (!array_key_exists($tasklist, Nag::listTasklists(false, PERMS_EDIT))) { + return PEAR::raiseError(_("Permission Denied")); + } + + return Nag::createTasksFromText($text, $tasklist); +} + +/** + * Toggles the task completion flag. + * + * @param string $task_id The task ID. + * @param string $tasklist_id The tasklist that contains the task. + */ +function _nag_toggleCompletion($task_id, $tasklist_id) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (!array_key_exists($tasklist_id, + Nag::listTasklists(false, PERMS_EDIT))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $share = $GLOBALS['nag_shares']->getShare($tasklist_id); + if (is_a($share, 'PEAR_Error')) { + return $share; + } + + $task = Nag::getTask($tasklist_id, $task_id); + $task->completed = !$task->completed; + if ($task->completed) { + $task->completed_date = time(); + } else { + $task->completed_date = null; + } + + return $task->save(); +} + +/** + * Exports a task, identified by UID, in the requested content type. + * + * @param string $uid Identify the task to export. + * @param string $contentType What format should the data be in? + * A string with one of: + *
+ * text/calendar    - (VCALENDAR 2.0. Recommended as this is specified in
+ *                    rfc2445)
+ * text/x-vcalendar - (old VCALENDAR 1.0 format. Still in wide use)
+ * 
+ * + * @return string The requested data. + */ +function _nag_export($uid, $contentType) +{ + require_once dirname(__FILE__) . '/base.php'; + + $storage = Nag_Driver::singleton(); + $task = $storage->getByUID($uid); + if (is_a($task, 'PEAR_Error')) { + return $task; + } + + if (!array_key_exists($task->tasklist, Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $version = '2.0'; + switch ($contentType) { + case 'text/x-vcalendar': + $version = '1.0'; + case 'text/calendar': + require_once dirname(__FILE__) . '/version.php'; + + // Create the new iCalendar container. + $iCal = new Horde_iCalendar($version); + $iCal->setAttribute('PRODID', '-//The Horde Project//Nag ' . NAG_VERSION . '//EN'); + $iCal->setAttribute('METHOD', 'PUBLISH'); + + // Create new vTodo object. + $vTodo = $task->toiCalendar($iCal); + $vTodo->setAttribute('VERSION', $version); + + $iCal->addComponent($vTodo); + + return $iCal->exportvCalendar(); + + default: + return PEAR::raiseError(sprintf(_("Unsupported Content-Type: %s"), $contentType)); + } +} + +/** + * Exports a tasklist in the requested content type. + * + * @param string $tasklist The tasklist to export. + * @param string $contentType What format should the data be in? + * A string with one of: + *
+ *                             text/calendar (VCALENDAR 2.0. Recommended as
+ *                                            this is specified in rfc2445)
+ *                             text/x-vcalendar (old VCALENDAR 1.0 format.
+ *                                              Still in wide use)
+ *                             
+ * + * @return string The iCalendar representation of the tasklist. + */ +function _nag_exportTasklist($tasklist, $contentType) +{ + require_once dirname(__FILE__) . '/base.php'; + + if (!array_key_exists($tasklist, + Nag::listTasklists(false, PERMS_READ))) { + return PEAR::raiseError(_("Permission Denied")); + } + + $tasks = Nag::listTasks(null, null, null, array($tasklist), 1); + + $version = '2.0'; + switch ($contentType) { + case 'text/x-vcalendar': + $version = '1.0'; + case 'text/calendar': + $share = $GLOBALS['nag_shares']->getShare($tasklist); + + $iCal = new Horde_iCalendar($version); + $iCal->setAttribute('X-WR-CALNAME', Horde_String::convertCharset($share->get('name'), Horde_Nls::getCharset(), 'utf-8')); + + $tasks->reset(); + while ($task = $tasks->each()) { + $iCal->addComponent($task->toiCalendar($iCal)); + } + + return $iCal->exportvCalendar(); + } + + return PEAR::raiseError(sprintf(_("Unsupported Content-Type: %s"), $contentType)); + +} + +/** + * Deletes a task identified by UID. + * + * @param string|array $uid Identify the task to delete, either a single UID + * or an array. + * + * @return boolean Success or failure. + */ +function _nag_delete($uid) +{ + // Handle an arrray of UIDs for convenience of deleting multiple tasks at + // once. + if (is_array($uid)) { + foreach ($uid as $g) { + $result = _nag_delete($g); + if (is_a($result, 'PEAR_Error')) { + return $result; + } + } + + return true; + } + + require_once dirname(__FILE__) . '/base.php'; + + $storage = Nag_Driver::singleton(); + $task = $storage->getByUID($uid); + if (is_a($task, 'PEAR_Error')) { + return $task; + } + + if (!Horde_Auth::isAdmin() && + !array_key_exists($task->tasklist, + Nag::listTasklists(false, PERMS_DELETE))) { + return PEAR::raiseError(_("Permission Denied")); + } + + return $storage->delete($task->id); +} + +/** + * Replaces the task identified by UID with the content represented in the + * specified content type. + * + * If you want to replace multiple tasks with the UID specified in the + * VCALENDAR data, you may use _nag_import instead. This automatically does a + * replace if existings UIDs are found. + * + * + * @param string $uid Identify the task to replace. + * @param string $content The content of the task. + * @param string $contentType What format is the data in? Currently supports: + * - text/x-vcalendar + * - text/calendar + * + * @return boolean Success or failure. + */ +function _nag_replace($uid, $content, $contentType) +{ + require_once dirname(__FILE__) . '/base.php'; + + $storage = Nag_Driver::singleton(); + $existing = $storage->getByUID($uid); + if (is_a($existing, 'PEAR_Error')) { + return $existing; + } + $taskId = $existing->id; + + if (!array_key_exists($existing->tasklist, Nag::listTasklists(false, PERMS_EDIT))) { + return PEAR::raiseError(_("Permission Denied")); + } + + switch ($contentType) { + case 'text/calendar': + case 'text/x-vcalendar': + if (!is_a($content, 'Horde_iCalendar_vtodo')) { + $iCal = new Horde_iCalendar(); + if (!$iCal->parsevCalendar($content)) { + return PEAR::raiseError(_("There was an error importing the iCalendar data.")); + } + + $components = $iCal->getComponents(); + $component = null; + foreach ($components as $content) { + if (is_a($content, 'Horde_iCalendar_vtodo')) { + if ($component !== null) { + return PEAR::raiseError(_("Multiple iCalendar components found; only one vTodo is supported.")); + } + $component = $content; + } + + } + if ($component === null) { + return PEAR::raiseError(_("No iCalendar data was found.")); + } + } + + $task = new Nag_Task(); + $task->fromiCalendar($content); + $result = $storage->modify( + $taskId, + isset($task->name) ? $task->name : $existing->name, + isset($task->desc) ? $task->desc : $existing->desc, + isset($task->start) ? $task->start : $existing->start, + isset($task->due) ? $task->due : $existing->due, + isset($task->priority) ? $task->priority : $existing->priority, + isset($task->estimate) ? $task->estimate : 0, + isset($task->completed) ? (int)$task->completed : $existing->completed, + isset($task->category) ? $task->category : $existing->category, + isset($task->alarm) ? $task->alarm : $existing->alarm, + isset($task->parent_id) ? $task->parent_id : $existing->parent_id, + isset($task->private) ? $task->private : $existing->private, + isset($task->owner) ? $task->owner : $existing->owner, + isset($task->assignee) ? $task->assignee : $existing->assignee); + + break; + + default: + return PEAR::raiseError(sprintf(_("Unsupported Content-Type: %s"), $contentType)); + } + + return $result; +} + +/** + * Lists active tasks as cost objects. + * + * @todo Implement $criteria parameter. + * + * @param array $criteria Filter attributes + */ +function _nag_listCostObjects($criteria) +{ + require_once dirname(__FILE__) . '/base.php'; + + $tasks = Nag::listTasks(null, null, null, null, 1); + $result = array(); + $tasks->reset(); + while ($task = $tasks->each()) { + $result[$task->id] = array('id' => $task->id, + 'active' => !$task->completed, + 'name' => $task->name); + if (!empty($task->estimate)) { + $result[$task->id]['estimate'] = $task->estimate; + } + } + + if (count($result) == 0) { + return array(); + } else { + return array(array('category' => _("Tasks"), + 'objects' => array_values($result))); + } +} + +function _nag_listTimeObjectCategories() +{ + require_once dirname(__FILE__) . '/base.php'; + + $categories = array(); + $tasklists = Nag::listTasklists(false, PERMS_SHOW | PERMS_READ); + foreach ($tasklists as $tasklistId => $tasklist) { + $categories[$tasklistId] = $tasklist->get('name'); + } + return $categories; +} + +/** + * Lists active tasks 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. + */ +function _nag_listTimeObjects($categories, $start, $end) +{ + require_once dirname(__FILE__) . '/base.php'; + + $allowed_tasklists = Nag::listTasklists(false, PERMS_READ); + foreach ($categories as $tasklist) { + if (!array_key_exists($tasklist, $allowed_tasklists)) { + return PEAR::raiseError(_("Permission Denied")); + } + } + + $timeobjects = array(); + $start = new Horde_Date($start); + $start_ts = $start->timestamp(); + $end = new Horde_Date($end); + $end_ts = $end->timestamp(); + + // List incomplete tasks. + $tasks = Nag::listTasks(null, null, null, $categories, 0); + $tasks->reset(); + while ($task = $tasks->each()) { + // If there's no due date, it's not a time object. + if (!$task->due || $task->due + 1 < $start_ts || $task->due > $end_ts) { + continue; + } + $due_date = date('Y-m-d\TH:i:s', $task->due); + $timeobjects[$task->id] = array( + 'id' => $task->id, + 'title' => $task->name, + 'description' => $task->desc, + 'start' => $due_date, + 'end' => $due_date, + 'category' => $task->category, + 'params' => array('task' => $task->id, + 'tasklist' => $task->tasklist), + 'link' => Horde_Util::addParameter(Horde::applicationUrl('view.php', true), array('tasklist' => $task->tasklist, 'task' => $task->id))); + } + + return $timeobjects; +} + +/** + * Lists alarms for a given moment. + * + * @param integer $time The time to retrieve alarms for. + * @param string $user The user to retreive alarms for. All users if null. + * + * @return array An array of UIDs + */ +function _nag_listAlarms($time, $user = null) +{ + require_once dirname(__FILE__) . '/base.php'; + require_once 'Horde/Group.php'; + + if ((empty($user) || $user != Horde_Auth::getAuth()) && !Horde_Auth::isAdmin()) { + return PEAR::raiseError(_("Permission Denied")); + } + + $storage = Nag_Driver::singleton(); + $group = Group::singleton(); + $alarm_list = array(); + $tasklists = is_null($user) ? array_keys($GLOBALS['nag_shares']->listAllShares()) : $GLOBALS['display_tasklists']; + + $alarms = Nag::listAlarms($time, $tasklists); + if (is_a($alarms, 'PEAR_Error')) { + return $alarms; + } + + foreach ($alarms as $alarm) { + $share = $GLOBALS['nag_shares']->getShare($alarm->tasklist); + if (is_a($share, 'PEAR_Error')) { + continue; + } + if (empty($user)) { + $users = $share->listUsers(PERMS_READ); + $groups = $share->listGroups(PERMS_READ); + foreach ($groups as $gid) { + $users = array_merge($users, $group->listUsers($gid)); + } + $users = array_unique($users); + } else { + $users = array($user); + } + foreach ($users as $alarm_user) { + $prefs = Prefs::singleton($GLOBALS['conf']['prefs']['driver'], + 'nag', $alarm_user, null, null, false); + Horde_Nls::setLanguageEnvironment($prefs->getValue('language')); + $alarm_list[] = $alarm->toAlarm($alarm_user, $prefs); + } + } + + return $alarm_list; +} diff --git a/nag/lib/base.load.php b/nag/lib/base.load.php new file mode 100644 index 000000000..102384419 --- /dev/null +++ b/nag/lib/base.load.php @@ -0,0 +1,28 @@ +pushApp('nag', array('check_perms' => (Horde_Util::nonInputVar('nag_authentication') != 'none'), 'logintasks' => true)); +} catch (Horde_Exception $e) { + Horde_Auth::authenticationFailureRedirect('nag', $e); +} +$conf = &$GLOBALS['conf']; +@define('NAG_TEMPLATES', $registry->get('templates')); + +// Notification system. +$notification = Horde_Notification::singleton(); +$notification->attach('status', null, 'Nag_Notification_Listener_Status'); + +// Start compression. +Horde::compressOutput(); + +// Set the timezone variable. +Horde_Nls::setTimeZone(); + +// Create a share instance. +$GLOBALS['nag_shares'] = Horde_Share::singleton($registry->getApp()); + +Nag::initialize(); diff --git a/nag/lib/prefs.php b/nag/lib/prefs.php new file mode 100644 index 000000000..f0a39d97b --- /dev/null +++ b/nag/lib/prefs.php @@ -0,0 +1,35 @@ +setValue('default_tasklist', $default_tasklist); + return true; + } + } + + return false; +} + +function handle_showsummaryselect($updated) +{ + $GLOBAL['prefs']->setValue('summary_categories', Horde_Util::getFormData('summary_categories')); + return true; +} + +function handle_defaultduetimeselect($updated) +{ + $GLOBALS['prefs']->setValue('default_due_time', Horde_Util::getFormData('default_due_time')); + return true; +} diff --git a/nag/lib/version.php b/nag/lib/version.php new file mode 100644 index 000000000..75c690eee --- /dev/null +++ b/nag/lib/version.php @@ -0,0 +1 @@ + diff --git a/nag/list.php b/nag/list.php new file mode 100644 index 000000000..4f9a7fdd5 --- /dev/null +++ b/nag/list.php @@ -0,0 +1,121 @@ +actionID; + +/* Sort out the sorting values and task filtering. */ +if ($vars->exists('sortby')) { + $prefs->setValue('sortby', $vars->sortby); +} +if ($vars->exists('sortdir')) { + $prefs->setValue('sortdir', $vars->sortdir); +} +if ($vars->exists('show_completed')) { + $prefs->setValue('show_completed', $vars->get('show_completed')); +} else { + $vars->set('show_completed', $prefs->getValue('show_completed')); +} + +/* Page variables. */ +$title = _("My Tasks"); + +switch ($actionID) { +case 'search_tasks': + /* Get the search parameters. */ + $search_pattern = $vars->search_pattern; + $search_name = ($vars->search_name == 'on'); + $search_desc = ($vars->search_desc == 'on'); + $search_category = ($vars->search_category == 'on'); + $search_completed = $vars->search_completed; + + $vars->set('show_completed', $search_completed); + + /* Get the full, sorted task list. */ + $tasks = Nag::listTasks($prefs->getValue('sortby'), + $prefs->getValue('sortdir'), + $prefs->getValue('altsortby'), + null, + $search_completed); + if (is_a($tasks, 'PEAR_Error')) { + $notification->push($tasks, 'horde.error'); + $tasks = new Nag_Task(); + } + + if (!empty($search_pattern) && + ($search_name || $search_desc || $search_category)) { + $pattern = '/' . preg_quote($search_pattern, '/') . '/i'; + $search_results = new Nag_Task(); + $tasks->reset(); + while ($task = &$tasks->each()) { + if (($search_name && preg_match($pattern, $task->name)) || + ($search_desc && preg_match($pattern, $task->desc)) || + ($search_category && preg_match($pattern, $task->category))) { + $search_results->add($task); + } + } + + /* Reassign $tasks to the search result. */ + $tasks = $search_results; + $title = sprintf(_("Search: Results for \"%s\""), $search_pattern); + } + break; + +default: + /* Get the full, sorted task list. */ + $tasks = Nag::listTasks($prefs->getValue('sortby'), + $prefs->getValue('sortdir'), + $prefs->getValue('altsortby')); + if (is_a($tasks, 'PEAR_Error')) { + $notification->push($tasks, 'horde.error'); + $tasks = new Nag_Task(); + } + break; +} + +$print_view = (bool)$vars->print; +if (!$print_view) { + Horde::addScriptFile('popup.js', 'horde', true); + Horde::addScriptFile('tooltip.js', 'horde', true); + Horde::addScriptFile('prototype.js', 'horde', true); + Horde::addScriptFile('effects.js', 'horde', true); + Horde::addScriptFile('QuickFinder.js', 'horde', true); + $print_link = Horde::applicationUrl(Horde_Util::addParameter('list.php', array('print' => 1))); +} + +require NAG_TEMPLATES . '/common-header.inc'; + +if ($print_view) { + require_once $registry->get('templates', 'horde') . '/javascript/print.js'; +} else { + require NAG_TEMPLATES . '/menu.inc'; + echo '
'; + + if (!$prefs->isLocked('show_completed')) { + $listurl = Horde::applicationUrl('list.php'); + $tabs = new Horde_UI_Tabs('show_completed', $vars); + $tabs->addTab(_("_All tasks"), $listurl, 1); + $tabs->addTab(_("Incom_plete tasks"), $listurl, 0); + $tabs->addTab(_("_Future tasks"), $listurl, 3); + $tabs->addTab(_("_Completed tasks"), $listurl, 2); + echo $tabs->render($vars->get('show_completed')); + } +} + +require NAG_TEMPLATES . '/list.html.php'; + +if (!$print_view) { + require NAG_TEMPLATES . '/panel.inc'; +} +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/locale/ar_SY/LC_MESSAGES/nag.mo b/nag/locale/ar_SY/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..40262fe57 Binary files /dev/null and b/nag/locale/ar_SY/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/bg_BG/LC_MESSAGES/nag.mo b/nag/locale/bg_BG/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..a47a24db7 Binary files /dev/null and b/nag/locale/bg_BG/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ca_ES/LC_MESSAGES/nag.mo b/nag/locale/ca_ES/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..e1a481d21 Binary files /dev/null and b/nag/locale/ca_ES/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ca_ES/help.xml b/nag/locale/ca_ES/help.xml new file mode 100755 index 000000000..038e7fe60 --- /dev/null +++ b/nag/locale/ca_ES/help.xml @@ -0,0 +1,19 @@ + + + + + Introducció + Introducció + +Aquest és una gestor de llistes de tasques bastant complet que suporta llistes de tasques privades i compartides, integració amb funcions d'agenda, categories, prioritats, venciments, recerques, impressió i importació i exportació. + + + + + Ordenació d'entrades + Ordenació d'entrades + +Al visualitzar un llistat d'entrades, pot ordenar-lo per qualsevol de les columnes prement la capçalera de columna apropiada. Per a commutar el sentit de la classificació de les columnes entre ascendent o descendent, premi la icona de fletxa de la capçalera de la columna. + + + diff --git a/nag/locale/cs_CZ/LC_MESSAGES/nag.mo b/nag/locale/cs_CZ/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..d74d2eb00 Binary files /dev/null and b/nag/locale/cs_CZ/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/da_DK/LC_MESSAGES/nag.mo b/nag/locale/da_DK/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..4ad010c3e Binary files /dev/null and b/nag/locale/da_DK/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/de_DE/LC_MESSAGES/nag.mo b/nag/locale/de_DE/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..86656a546 Binary files /dev/null and b/nag/locale/de_DE/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/de_DE/help.xml b/nag/locale/de_DE/help.xml new file mode 100644 index 000000000..591756fb3 --- /dev/null +++ b/nag/locale/de_DE/help.xml @@ -0,0 +1,25 @@ + + + + + Übersicht + Einführung + + Diese Anwendung ist ein vollständiger Aufgabenlisten-Manager, der + private und gemeinsame Aufgabenlisten, Kalenderfunktionen, Kategorien, + Prioritäten, Fälligkeitsdaten, Suchen, Drucken sowie Im- und Export + unterstützt. + + + + Einträge Sortieren + Einträge Sortieren + + Wenn Sie sich eine Liste mit Einträgen anzeigen lassen, können Sie die + Einträge nach jeder beliebigen Spalte sortieren, indem Sie auf die + jeweilige Spaltenüberschrift klicken. Wenn Sie die Sortierreihenfolge + umschalten möchten, klicken Sie auf das Pfeilsymbol in der + Spaltenüberschrift. + + + diff --git a/nag/locale/el_GR/LC_MESSAGES/nag.mo b/nag/locale/el_GR/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..d1d475f1a Binary files /dev/null and b/nag/locale/el_GR/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/en_US/help.xml b/nag/locale/en_US/help.xml new file mode 100644 index 000000000..e26595b79 --- /dev/null +++ b/nag/locale/en_US/help.xml @@ -0,0 +1,25 @@ + + + + + Overview + Introduction + + This is a fairly full-featured "to-do" list manager that supports + private and shared tasks lists, integration with the Calendar function, + categories, priorities, due-dates, searches, printing and import/export + functions. + + + + + Sorting Entries + Sorting Entries + + When viewing a list of entries, you can sort the entries by any column + by clicking on the appropriate column heading. To switch columns + between ascending and descending order, click on the arrow icon in the + column heading. + + + diff --git a/nag/locale/es_ES/LC_MESSAGES/nag.mo b/nag/locale/es_ES/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..3782f6539 Binary files /dev/null and b/nag/locale/es_ES/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/es_ES/help.xml b/nag/locale/es_ES/help.xml new file mode 100644 index 000000000..cc951ae69 --- /dev/null +++ b/nag/locale/es_ES/help.xml @@ -0,0 +1,19 @@ + + + + + Introducción + Introducción + + Éste es una gestor de listas de tareas bastante completo que soporta listas de tareas privadas y compartidas, integración con funciones de agenda, categorías, prioridades, vencimientos, búsquedas, impresión e importación y exportación. + + + + + Ordenación de entradas + Ordenación de entradas + + Al visualizar un listado de entradas, puede ordenarlo por cualquiera de las columnas pulsando la cabecera de columna apropiada. Para conmutar el sentido de la clasificación de las columnas entre ascendente o descendente, pulse el icono de flecha de la cabecera de la columna. + + + diff --git a/nag/locale/et_EE/LC_MESSAGES/nag.mo b/nag/locale/et_EE/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..f98d61164 Binary files /dev/null and b/nag/locale/et_EE/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/eu_ES/LC_MESSAGES/nag.mo b/nag/locale/eu_ES/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..4e3ce0f06 Binary files /dev/null and b/nag/locale/eu_ES/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/eu_ES/help.xml b/nag/locale/eu_ES/help.xml new file mode 100644 index 000000000..8b3ee5ca6 --- /dev/null +++ b/nag/locale/eu_ES/help.xml @@ -0,0 +1,9 @@ + + + + Informazio orokorra + Sarrera Eginbide askoko "egitekoen" fitxategi-kudeatzailea da, eta zeregin-zerrenda pribatuak eta partekatuak, Egutegi-funtzioa integratzea, kategoriak, lehentasunak, epemugak, bilaketak, inprimatzea eta inportatze-/esportatze-funtzioak onartzen du. + + + Ordenatu sarrerak + Ordenatu sarrerak Sarreren zerrenda ikustean, sarrerak edozein zutaberen arabera ordena ditzakezu zutabe egokian klik eginez gero. Goranzko edo beheranzko ordenera aldatzeko, klik egin zutabearen izenburuko geziaren ikonoan. diff --git a/nag/locale/fi_FI/LC_MESSAGES/nag.mo b/nag/locale/fi_FI/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..d8b6b48c9 Binary files /dev/null and b/nag/locale/fi_FI/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/fi_FI/help.xml b/nag/locale/fi_FI/help.xml new file mode 100644 index 000000000..f5f2dec5c --- /dev/null +++ b/nag/locale/fi_FI/help.xml @@ -0,0 +1,23 @@ + + + + + Yleiskuva + Esittely + + Tämä on melko kattava tehtävälistaohjelma, jossa on mm. seuraavia + ominaisuuksia: mahdollista tehdä tehtävälistoja, jotka voivat olla + joko yksityisiä tai jaettuja, kommunikoimaan kalenterisovelluksen + kanssa. Merkinnät voivat kuulua eri kategorioihin, niillä voi olla + prioriteetteja, valmistumispäivämääriä. Voit myös tehdä hakuja, + tulostaa ja tuoda/viedä merkintöjä. + + + + Merkintöjen lajittelu + Merkintöjen lajittelu + + Tehtävien listaa on mahdollista lajitella minkä tahansa sarakkeen mukaan napsauttamalla sarakkeen otsikkoa. Voit muuttaa lajittelua nousevaksi tai laskevaksi napsauttamalla otsikon vieressä olevaa nuoli ikonia. + + + diff --git a/nag/locale/fr_FR/LC_MESSAGES/nag.mo b/nag/locale/fr_FR/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..c8979906c Binary files /dev/null and b/nag/locale/fr_FR/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/hu_HU/LC_MESSAGES/nag.mo b/nag/locale/hu_HU/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..2a90514e6 Binary files /dev/null and b/nag/locale/hu_HU/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/hu_HU/help.xml b/nag/locale/hu_HU/help.xml new file mode 100644 index 000000000..57629da9a --- /dev/null +++ b/nag/locale/hu_HU/help.xml @@ -0,0 +1,34 @@ + + + + + Overview + Introduction + + This is a fairly full-featured "to-do" list manager that supports + private and shared tasks lists, integration with the Calendar function, + categories, priorities, due-dates, searches, printing and import/export + functions. + + + + Sorbarendezés + Sorbarendezés + + A tennivalók kilistázásakor bármely oszlop szerint sorba rendezhetjük +az adatokat, ha a kérdéses oszlop fejlécére kattintunk. Ha a sorbarendezés +irányát akarjuk átállítani, akkor a fejlécben levõ kis nyílra kell +kattintani. + + + diff --git a/nag/locale/id_ID/LC_MESSAGES/nag.mo b/nag/locale/id_ID/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..5e17f0100 Binary files /dev/null and b/nag/locale/id_ID/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/it_IT/LC_MESSAGES/nag.mo b/nag/locale/it_IT/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..1c7a0a896 Binary files /dev/null and b/nag/locale/it_IT/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ja_JP/LC_MESSAGES/nag.mo b/nag/locale/ja_JP/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..eb62ae49f Binary files /dev/null and b/nag/locale/ja_JP/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ko_KR/LC_MESSAGES/nag.mo b/nag/locale/ko_KR/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..3894a8315 Binary files /dev/null and b/nag/locale/ko_KR/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/lt_LT/LC_MESSAGES/nag.mo b/nag/locale/lt_LT/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..e81eef5f0 Binary files /dev/null and b/nag/locale/lt_LT/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/lv_LV/LC_MESSAGES/nag.mo b/nag/locale/lv_LV/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..cfd81eee4 Binary files /dev/null and b/nag/locale/lv_LV/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/lv_LV/help.xml b/nag/locale/lv_LV/help.xml new file mode 100644 index 000000000..95fdcafc2 --- /dev/null +++ b/nag/locale/lv_LV/help.xml @@ -0,0 +1,198 @@ + + + + + Pârskats + Ievads + + [Uzdevumi] ir pietiekoði plaði funkcionâls laika organizators, kas atbalsta personîgo uzdevumu sarakstus, integrâciju ar kalendâra funkcijâm, klasifikatoriem, prioritâtçm, izpildes termiòiem, meklçðanu, drukâðanu un importa/eksporta funkcijâm. + + + + Ðíiroðana + Ðíiroðana + + Apskatot ierakstu uzskaitîjumu ir iespçjams ðíirot ierakstus pçc jebkuras kolonnas, uzklikðíinot atbilstoðâ stabiòa nosaukumam. Lai pârslçgtos no augoðâs uz dilstoðo ðíiroðanas kârtîbu, uzklikðíiniet bultas ikonai blakus atbilstoðâ stabiòa nosaukumam. + + + diff --git a/nag/locale/nb_NO/LC_MESSAGES/nag.mo b/nag/locale/nb_NO/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..d44b3cff6 Binary files /dev/null and b/nag/locale/nb_NO/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/nl_NL/LC_MESSAGES/nag.mo b/nag/locale/nl_NL/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..3dd962369 Binary files /dev/null and b/nag/locale/nl_NL/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/nl_NL/help.xml b/nag/locale/nl_NL/help.xml new file mode 100644 index 000000000..474b6d039 --- /dev/null +++ b/nag/locale/nl_NL/help.xml @@ -0,0 +1,198 @@ + + + + + Overzicht + Introductie + + Taakmanager is een volledige "te-doen" lijst manager die prive en gedeelde taaklijsten, intergratie met de Kalender functie, Categorieen, prioriteiten, zoekfuncties, printen en import/export functies. + + + + Sorteren van de Items + Sorteren van de Items + + Bij het bekijken van een lijst met items, kunt u de lijst sorteren op elke kolom door op de desbetreffende kolom in de kolom balk te klikken. Om de kolommen op- of aflopend te sorteren, klik op de pijl in de kolom balk. + + + diff --git a/nag/locale/nn_NO/LC_MESSAGES/nag.mo b/nag/locale/nn_NO/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..cc1faada5 Binary files /dev/null and b/nag/locale/nn_NO/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/pl_PL/LC_MESSAGES/nag.mo b/nag/locale/pl_PL/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..9380ea6d3 Binary files /dev/null and b/nag/locale/pl_PL/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/pt_BR/LC_MESSAGES/nag.mo b/nag/locale/pt_BR/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..5f7cd3def Binary files /dev/null and b/nag/locale/pt_BR/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/pt_PT/LC_MESSAGES/nag.mo b/nag/locale/pt_PT/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..1e7fdf4b8 Binary files /dev/null and b/nag/locale/pt_PT/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ro_RO/LC_MESSAGES/nag.mo b/nag/locale/ro_RO/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..c62a8ef2d Binary files /dev/null and b/nag/locale/ro_RO/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/ru_RU/LC_MESSAGES/nag.mo b/nag/locale/ru_RU/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..ab2ec53db Binary files /dev/null and b/nag/locale/ru_RU/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/sk_SK/LC_MESSAGES/nag.mo b/nag/locale/sk_SK/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..eb867d1d6 Binary files /dev/null and b/nag/locale/sk_SK/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/sk_SK/help.xml b/nag/locale/sk_SK/help.xml new file mode 100644 index 000000000..e63a24ebe --- /dev/null +++ b/nag/locale/sk_SK/help.xml @@ -0,0 +1,38 @@ + + + + + Prehµad + Úvod + + Aplikácia Úlohy je správca "to-do" zoznamov s mnohými funkciami. Podporuje súkromné a zdieµané zoznamy úloh, integráciu s Kalendárom, kategórie, priority, termíny úloh, vyhµadávanie, tlaè a funkcie pre import/export. + + + + Triedenie polo¾iek + Triedenie polo¾iek + + Poèas zobrazovania zoznamu si mô¾ete necha» polo¾ky zoradi» podµa µubovoµného ståpca jednoduchým kliknutím na jeho názov. Ak chcete zmeni» smer triedenia (vzostupne resp. zostupne), kliknite na ikonu ¹ípky v mene ståpca. + + + diff --git a/nag/locale/sl_SI/LC_MESSAGES/nag.mo b/nag/locale/sl_SI/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..6825ece1b Binary files /dev/null and b/nag/locale/sl_SI/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/sv_SE/LC_MESSAGES/nag.mo b/nag/locale/sv_SE/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..7dca3009a Binary files /dev/null and b/nag/locale/sv_SE/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/tr_TR/LC_MESSAGES/nag.mo b/nag/locale/tr_TR/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..5860635d8 Binary files /dev/null and b/nag/locale/tr_TR/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/tr_TR/help.xml b/nag/locale/tr_TR/help.xml new file mode 100644 index 000000000..a4a222611 --- /dev/null +++ b/nag/locale/tr_TR/help.xml @@ -0,0 +1,47 @@ + + + + + + + +Genel Bakýþ +Baþlangýç + +Özel ve paylaþýmlý görev listeleri, Takvim fonksiyonuyla bütünlük,kategoriler,öncelikler,randevular,aramalar,yazdýrma,al/ver fonksiyonlarýný saðlayan tam donanýmlý bir "yapýlacaklar" listesi yöneticisidir. + + + + + + +Giriþlerin Sýnýflandýrýlmasý +Giriþlerin Sýnýflandýrýlmasý + +Giriþlerin listesini görüntülerken, giriþleri herhangi bir sütuna göre o sütunun baþlýðýna týklayarak sýnýflandýrabilirsiniz. Sütunu yükselen ve alçalan sýnýflandýrma arasýnda deðiþtirmek için, sütun baþlýðýndaki ok simgesini týklayýn. + + + + diff --git a/nag/locale/zh_CN/LC_MESSAGES/nag.mo b/nag/locale/zh_CN/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..c09b31818 Binary files /dev/null and b/nag/locale/zh_CN/LC_MESSAGES/nag.mo differ diff --git a/nag/locale/zh_TW/LC_MESSAGES/nag.mo b/nag/locale/zh_TW/LC_MESSAGES/nag.mo new file mode 100644 index 000000000..0aa67e2d9 Binary files /dev/null and b/nag/locale/zh_TW/LC_MESSAGES/nag.mo differ diff --git a/nag/po/README b/nag/po/README new file mode 100644 index 000000000..a4356a923 --- /dev/null +++ b/nag/po/README @@ -0,0 +1 @@ +see horde/po/README \ No newline at end of file diff --git a/nag/po/ar_SY.po b/nag/po/ar_SY.po new file mode 100644 index 000000000..deb47f986 --- /dev/null +++ b/nag/po/ar_SY.po @@ -0,0 +1,320 @@ +# Nag 1.0 Arabic translation. +# This file is distributed under the same license as the Nag package. +# Copyright 2003 Platinum Inc. +# Custom Web Applications +# Platinum Development Team +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 1.0\n" +"POT-Creation-Date: 2003-04-30 12:00+0200\n" +"PO-Revision-Date: 2003-04-30 12:00+0200\n" +"Last-Translator: Platinum Development Team \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CP1256\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d ãåÇã" + +msgid "1 task" +msgstr "1 ãåãÉ" + +msgid "Adding A New Task" +msgstr "ÅÖÇÝÉ ãåãÉ ÌÏíÏÉ" + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "åá ÃäÊ ãÊÃßÏ ãä ÍÐÝ åÐå ÇáãåãÇÊ (ÛíÑ ÞÇÈá ááÊÑÇÌÚ)¿" + +msgid "Ascending" +msgstr "ÊäÇÒáí" + +msgid "Back to Task List" +msgstr "ÚæÏÉ Åáì ÞÇÆãÉ ÇáãåãÇÊ" + +msgid "Category" +msgstr "ÇáÊÕäíÝ" + +msgid "Change your task sorting and display options." +msgstr "ÊÛííÑ ØÑíÞÉ ÝÑÒ ÇáãåãÇÊ æÎíÇÑÇÊ ÇáÚÑÖ" + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "ÊÛííÑ ÇáãåãÇÊ %d Åáì ÇáÃæáæíÉ %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "ÊÛííÑ ãåãÉ 1 Åáì ÇáÃæáæíÉ %d." + +msgid "Choose Action:" +msgstr "ÇÎÊÑ ÚãáíÉ :" + +msgid "Clear Form" +msgstr "ãÓÍ ÇáÅÓÊãÇÑÉ" + +msgid "Complete Task" +msgstr "ÅäåÇÁ ÇáãåãÉ" + +msgid "Complete Tasks" +msgstr "ÅäåÇÁ ÇáãåãÇÊ" + +msgid "Completed?" +msgstr "åá Êã ÇáÃãÑ¿" + +msgid "Completion Status" +msgstr "æÖÚ ÇáÅäÌÇÒ" + +msgid "Default sorting criteria:" +msgstr "äæãÐÌ ÇáÝÑÒ ÇáÅÝÊÑÇÖí:" + +msgid "Default sorting direction:" +msgstr "ÇÊÌÇå ÇáÝÑÒ ÇáÇÝÊÑÇÖí:" + +msgid "Delete Task" +msgstr "ãåãÉ ãÍÐæÝÉ" + +msgid "Delete Tasks" +msgstr "ãåãÇÊ ãÍÐæÝÉ" + +#, c-format +msgid "Deleted %d tasks." +msgstr "ÇáãåãÇÊ %d ãÍÐæÝÉ." + +msgid "Deleted 1 task." +msgstr "ÇáãåãÉ d% ãÍÐæÝÉ." + +msgid "Descending" +msgstr "ÊäÇÒáí" + +msgid "Description" +msgstr "ÇáÔÑÍ" + +msgid "Display Options" +msgstr "Options d'affichage" + +msgid "Due By" +msgstr "ÊÓÊÍÞ" + +msgid "Due Date" +msgstr "ÊÇÑíÎ ÇáÅÓÊÍÞÇÞ" + +msgid "Help" +msgstr "ãÓÇÚÏÉ" + +msgid "Language" +msgstr "ÇááÛÉ" + +msgid "List Tasks" +msgstr "ÞÇÆãÉ ÇáãåãÇÊ" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "ÇáãåãÇÊ %d ãÍÏÏÉ ßãåãÇÊ ãäÌÒÉ" + +msgid "Marked 1 task as completed." +msgstr "ÇáãåãÉ ãÍÏÏÉ ßãåãÉ ãäÌÒÉ" + +msgid "Modify Task" +msgstr "ÊÚÏíá ÇáãåãÉ" + +msgid "Modifying:" +msgstr "ÇáÊÚÏíá :" + +msgid "Nag is not properly configured" +msgstr "áã íÊã ÅÚÏÇÏ NagÈÔßá ÕÍíÍ " + +msgid "Name" +msgstr "ÇáÇÓã" + +msgid "New Task" +msgstr "ãåãÉ ÌÏíÏÉ" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Aucune information de configuration pour la base de données." + +msgid "No due date." +msgstr "áÇíæÌÏ ÊÍÏíÏ áÊÇÑíÎ ÇáÇÓÊÍÞÇÞ" + +msgid "No tasks were changed." +msgstr "áã íÊã ÊÛííÑ Ãí ãä ÇáãåãÇÊ" + +msgid "No tasks were deleted." +msgstr "áã íÊã ÍÐÝ Ãí ãä ÇáãåãÇÊ" + +msgid "No" +msgstr "áÇ" + +msgid "None specified" +msgstr "ÛíÑ ãÍÏÏ (É)" + +msgid "Options" +msgstr "ÇáÎíÇÑÇÊ" + +msgid "Other Options" +msgstr "ÎíÇÑÇÊ ÃÎÑì" + +msgid "Please enter the task priority (1-5):" +msgstr "ÇáÑÌÇÁ ÊÍÏíÏ ÃæáæíÉ ÇáãåãÉ (1-5)" + +msgid "Pri" +msgstr "Pri" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "ÊÍÏÏ ÇáÃæáæíÇÊ Èíä 1 ÍÊì 5. ÇáÑÌÇÁ ÊÍÏíÏ ÃæáæíÉ ÕÍíÍÉ." + +msgid "Priority" +msgstr "ÇáÃæáæíÉ" + +msgid "Problem?" +msgstr "åá åäÇß ãÔßáÉ¿" + +msgid "Refresh List" +msgstr "ÊÍÏíË ÇáÞÇÆãÉ" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ ÞÇÚÏÉ ÇáÈíÇäÇÊ Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ 'hostspec' Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Required 'password' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ ßáãÉ ÇáãÑæÑ Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ 'phptype' Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Required 'table' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ 'table' Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Required 'username' not specified in tasks configuration." +msgstr "áã íÊã ÊÍÏíÏ ÇÓã ÇáãÓÊÎÏã Ýí ÅÚÏÇÏÇÊ ÇáãåãÇÊ" + +msgid "Save Task" +msgstr "ÍÝÙ ÇáãåãÉ" + +msgid "Search Results" +msgstr "äÊÇÆÌ ÇáÈÍË" + +msgid "Search Scope" +msgstr "ãÌÇá ÇáÈÍË" + +msgid "Search Text" +msgstr "ÈÍË Ýí ÇáäÕ" + +msgid "Search" +msgstr "ÈÍË" + +msgid "Select your preferred language:" +msgstr "ÇÎÊÑ ÇááÛÉ ÇáãÝÖáÉ" + +msgid "Selected?" +msgstr "ãÍÏÏ¿" + +msgid "Set Task Priority" +msgstr "ÇÎÊÑ ÃæáæíÉ ÇáãåãÉ" + +msgid "Set the your preferred display language." +msgstr "ÇÎÊÑ áÛÉ ÇáÅÙåÇÑ ÇáãÝÖáÉ áÏíß" + +msgid "Show completed tasks in the task list?" +msgstr "ÅÙåÇÑ ÇáãåãÇÊ ÇáãäÌÒÉ Ýí ÞÇÆãÉ ÇáãåãÇÊ¿" + +msgid "Some of Nag's configuration files are missing:" +msgstr "ÈÚÖ ãáÝÇÊ ÅÚÏÇÏÇÊ Nag ãÝÞæÏÉ" + +msgid "Sort Direction" +msgstr "ÇÊÌÇå ÇáÝÑÒ" + +msgid "Sort by Category" +msgstr "ÝÑÒ ÍÓÈ ÇáÊÕäíÝ" + +msgid "Sort by Completion Status" +msgstr "ÝÑÒ ÍÓÈ ÓäÈÉ ÇáÅäÌÇÒ" + +msgid "Sort by Due Date" +msgstr "ÝÑÒ ÍÓÈ ÊÇÑíÎ ÇáÇÓÊÍÞÇÞ" + +msgid "Sort by Name" +msgstr "ÝÑÒ ÍÓÈ ÇáÇÓã" + +msgid "Sort by Priority" +msgstr "ÝÑÒ ÍÓÈ ÇáÃæáæíÉ" + +msgid "Task Details" +msgstr "ÊÝÕíáÇÊ ÇáãåãÉ" + +msgid "Task List" +msgstr "ÞÇÆãÉ ÇáãåãÇÊ" + +msgid "Task Name" +msgstr "ÇÓã ÇáãåãÉ" + +msgid "Task Note" +msgstr "ãáÇÍÙÇÊ Íæá ÇáãåãÉ" + +msgid "Task Note?" +msgstr "ãáÇÍÙÇÊ Íæá ÇáãåãÉ¿" + +msgid "The requested task does not exist." +msgstr "ÇáãåãÉ ÇáãØáæÈÉ ÛíÑ ãæÌæÏÉ." + +msgid "There was a problem deleting tasks." +msgstr "ÍÕá ÎØÃ ÎáÇá ÍÐÝ ÇáãåãÇÊ." + +msgid "There was a problem setting task completion status." +msgstr "ÍÕá ÎØÃ ÎáÇá ÅÚÏÇÏ äÓÈÉ ÅäÌÇÒ ÇáãåãÉ." + +msgid "There was a problem setting task priority." +msgstr "ÍÕá ÎØÃ ÎáÇá ÅÚÏÇÏ ÃæáæíÉ ÇáãåãÉ." + +msgid "This file contains preferences for Nag." +msgstr "íÍÊæí åÐÇ ÇáãáÝ Úáì ÅÚÏÇÏÇÊ Nag." + +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 is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"åÐÇ ÇáãáÝ åæ ãáÝ ÅÚÏÇÏÇÊ Nag ÇáÑÆíÓí. íÍÊæí ÌãíÚ ÇáÎíÇÑÇÊ áÌãíÚ " +"ÈÑíãÌÇÊ Nag." + +msgid "Undo Changes" +msgstr "ÊÑÇÌÚ Úä ÇáÊÛííÑÇÊ" + +msgid "Unfiled" +msgstr "ÛíÑ ãÊãã" + +msgid "Unknown task" +msgstr "ãåãÉ ÛíÑ ãÍÏÏÉ" + +msgid "Unknown" +msgstr "ÛíÑ ãÚÑæÝ" + +msgid "User Options" +msgstr "ÎíÇÑÇÊ ÇáãÓÊÎÏã" + +msgid "View Task Details" +msgstr "ÇÓÊÚÑÇÖ ÊÝÕíáÇÊ ÇáãåãÉ" + +msgid "Yes" +msgstr "äÚã" + +msgid "You must select at least one task first." +msgstr "íÌÈ ÊÍÏíÏ ãåãÉ æÇÍÏÉ Úáì ÇáÃÞá ÃæáÇð" + +msgid "Your Information" +msgstr "ÇáãÚáæãÇÊ ÇáÔÎÕíÉ" + +msgid "Your task list is empty." +msgstr "ÞÇÆãÉ ÇáãåãÇÊ ÝÇÑÛÉ" + +msgid "at" +msgstr "Ýí" diff --git a/nag/po/bg_BG.po b/nag/po/bg_BG.po new file mode 100644 index 000000000..69e92b90c --- /dev/null +++ b/nag/po/bg_BG.po @@ -0,0 +1,470 @@ +# Bulgarian translations for Nag package. +# Copyright 2002-2009 The Horde Project +# This file is distributed under the same license as the Whups package. +# Miroslav Pendev , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"POT-Creation-Date: 2002-09-14 00:38-0400\n" +"PO-Revision-Date: 2002-11-19 20:44-05000\n" +"Last-Translator: Miroslav Pendev \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 "%d tasks" +msgstr "%d Çàäà÷è" + +#, c-format +msgid "%s file successfully imported" +msgstr "%s ôàéë áåøå èìïîðòèðàí óñïåøíî" + +msgid "1 task" +msgstr "1 çàäà÷à" + +#, c-format +msgid "Access denied deleteing task: %s" +msgstr "Îòêàçàí äîñòúï çà èçòðèâàíå íà çàäà÷à: %s" + +#, c-format +msgid "Access denied modifying task: %s" +msgstr "Îòêàçàí äîñòúï çà ìîäèôèöèðàíå íà çàäà÷à: %s" + +#, c-format +msgid "Access denied removing task from %s." +msgstr "Îòêàçàí äîñòúï çà ïðåìàõâàíå íà çàäà÷à îò %s." + +msgid "Adding A New Task" +msgstr "Äîáàâÿíå íà íîâà çàäà÷à" + +msgid "All tasks" +msgstr "Âñè÷êè çàäà÷è" + +msgid "Allows categories to be added/removed/renamed." +msgstr "Ïîçâîëÿâà äà ñå äîáàâÿò/ïðåìàõâàò/ïðåèìåíóâàò/ êàòåãîðèè." + +#, c-format +msgid "Any tasks in a category that is deleted will become %s." +msgstr "Âñè÷êè çàäà÷è â èçáðàíàòà êàòåãîðèÿ ùå ñòàíàò %s." + +msgid "Ascending" +msgstr "Íàðàñòâàùè" + +msgid "Back to Task List" +msgstr "Îáðàòíî êúì çàäà÷è" + +msgid "Category" +msgstr "Êàòåãîðèÿ" + +msgid "Category Management" +msgstr "Êàòåãîðèè Óïðàâëåíèå" + +msgid "Change your task sorting and display options." +msgstr "Óñòàíîâåòå ïðåäïî÷èòàíèòå ñîðòèðàíå è îïðåñíÿâàíå íà ñòðàíèöàòà." + +msgid "Choose Action:" +msgstr "Èçáåðè äåéñòâèå:" + +msgid "Complete Task" +msgstr "Èçâúðøè çàäà÷àòà" + +msgid "Complete Tasks" +msgstr "Èçâúðøè çàäà÷èòå" + +msgid "Complete tasks" +msgstr "Èçâúðøè çàäà÷èòå" + +msgid "Completed?" +msgstr "Èçâúðøåíî ëè å?" + +msgid "Completion Status" +msgstr "Ñòàòóñ" + +msgid "Create New Category" +msgstr "Ñúçäàé íîâà êàòåãîðèÿ" + +msgid "Default sorting criteria:" +msgstr "Êðèòåðèè çà ñîðòèðàíå ïî ïîäðàçáèðàíå:" + +msgid "Default sorting direction:" +msgstr "Ïîñîêà íà ñîðòèðàíå ïî ïîäðàçáèðàíå:" + +msgid "Delete" +msgstr "Èçòðèé" + +msgid "Delete Task" +msgstr "Èçòðèé çàäà÷à" + +msgid "Delete Tasks" +msgstr "Èçòðèé çàäà÷è" + +msgid "Deleted 1 task." +msgstr "Èçòðèòà 1 çàäà÷à" + +msgid "Descending" +msgstr "Íàìàëÿâàùè" + +msgid "Description" +msgstr "Îïèñàíèå" + +msgid "Description:" +msgstr "Îïèñàíèå:" + +msgid "Display Options" +msgstr "Äèñïëåé Îïöèè" + +msgid "Due By" +msgstr "Çàäúëæåíèå" + +msgid "Due Date" +msgstr "Çàäúëæåíèå äàòà" + +msgid "Edit your task lists." +msgstr "Ðåäàêòèðàé ñïèñúêà ñúñ çàäà÷è." + +msgid "Export Tasks" +msgstr "Åêñïîðò íà çàäà÷è" + +msgid "Flags" +msgstr "Ôëàãîâå" + +msgid "Group tasks by owner?" +msgstr "Äà ñå ãðóïèðàò ëè çàäà÷èòå ïî ïðèòåæàòåë?" + +msgid "Help" +msgstr "Ïîìîù" + +msgid "If importing CSV data: does the first row contain the field names?" +msgstr "Ïðè èìïîðò íà CSV äàííè: ïúðâèÿ ëè ðåä ñúäúðæà èìåíàòà íà ïîëåòàòà?" + +msgid "Illegal or malformed form data." +msgstr "Íåäîïóñòèìè èëè ïîâðåäåíè äàííè." + +msgid "Import Tasks" +msgstr "Èìïîðò íà çàäà÷è" + +msgid "Import/Export" +msgstr "Èìïîðò/Åêñïîðò" + +msgid "Import/Export Tasks" +msgstr "Èìïîðò/Åêñïîðò íà çàäà÷è" + +msgid "Incomplete tasks" +msgstr "Íåäîâúðøåíè çàäà÷è" + +msgid "Language" +msgstr "Åçèê" + +msgid "List Tasks" +msgstr "Ñïèñúê ñúñ Çàäà÷è" + +msgid "Manage multiple task lists." +msgstr "Óïðàâëÿâàíå íà ìíîæåñòâî ñïèñúöè ñúñ çàäà÷è." + +msgid "Marked task as completed." +msgstr "Ìàðêèðàíà êàòî èçâúðøåíà çàäà÷à." + +msgid "Modify Task" +msgstr "Ïðîìåíè çàäà÷à" + +msgid "Modifying:" +msgstr "Ïðîìåíè:" + +msgid "My Task List" +msgstr "Ìîèòå çàäà÷è" + +msgid "Nag is not properly configured" +msgstr "Nag íå å êîíôèãóðèðàí êîðåêòíî" + +msgid "Name" +msgstr "Èìå" + +msgid "New Category" +msgstr "Íîâà êàòåãîðèÿ" + +msgid "New Task" +msgstr "Íîâà çàäà÷à" + +msgid "No" +msgstr "Íå" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Íÿìà çàäàäåíà êîíôèãóðàöèÿ çà SQL çàäà÷è." + +msgid "No due date." +msgstr "Íÿìà äàòà." + +msgid "None specified" +msgstr "Íÿìà çàäàäåí" + +msgid "Options" +msgstr "Îïöèè" + +msgid "Other Options" +msgstr "Äðóãè Îïöèè" + +msgid "Owner" +msgstr "Ïðèòåæàòåë" + +msgid "Pri" +msgstr "Ïðèîðèòåò" + +msgid "Print" +msgstr "Îòïå÷àòàé" + +msgid "Priority" +msgstr "Ïðèîðèòåò" + +msgid "Private" +msgstr "×àñòåí" + +msgid "Refresh List" +msgstr "Îïðåñíè ñïèñúêà" + +msgid "Rename" +msgstr "Ïðåèìåíóâàé" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "Íåîáõîäèìàòà 'database' íå å çàäàäåíà â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "Íåîáõîäèìèÿ 'hostspec' íå å óêàçàí â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "Íåîáõîäèìàòà 'password' íå ñúùåñòâóâà â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "Íåîáõîäèìèÿ 'phptype' íå å çàäàäåí â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "Íåîáõîäèìèÿ 'table' íå å çàäàäåí â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "Íåîáõîäèìîòî 'username' íå å çàäàäåíî â êîíôèãóðàöèÿòà çà çàäà÷è." + +msgid "Search" +msgstr "Òúðñè" + +msgid "Search Results" +msgstr "Ðåçóëòàòè îò òúðñåíåòî" + +msgid "Search Scope" +msgstr "Îáõâàò íà òúðñåíå" + +msgid "Search Text" +msgstr "Òåêñò çà òúðñåíå" + +msgid "Select Category" +msgstr "Èçáåðè Êàòåãîðèÿ" + +msgid "Select a task list" +msgstr "Èçáåðè ñïèñúê ñúñ çàäà÷è" + +msgid "Select the file to import:" +msgstr "Èçáåðåòå ôàéë çà èìïîðò:" + +msgid "Select the format to export to:" +msgstr "Èçáåðåòå ôîðìàò, êúì êîéòî äà ñå åêñïîðòèðà:" + +msgid "Select the source to import from:" +msgstr "Èçáåðåòå èçòî÷íèêà çà èìïîðò:" + +msgid "Select your preferred language:" +msgstr "Èçáåðåòå ïðåäïî÷èòàíèÿò îò Âàñ åçèê:" + +msgid "Set Task Priority" +msgstr "Èçáåðåòå ïðèîðèòåò íà çàäà÷àòà" + +msgid "Set the your preferred display language." +msgstr "Èçáåðåòå ïðåäïî÷èòàíèÿò îò Âàñ åçèê." + +msgid "Shared" +msgstr "Ïîäåëåí" + +msgid "Show" +msgstr "Ïîêàçâàíå" + +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Äà ñå ïîêàçâàò èçâúðøåíèòå èëè âñè÷êè çàäà÷è â ñïèñúêà?" + +msgid "Show due dates in the summary view?" +msgstr "Äà ñå ïîêàçâàò ëè äàòèòå íà çàäúëæåíèÿòà â îáîáùåíèÿ èçãëåä?" + +msgid "Show owner in the summary view?" +msgstr "Äà ñå ïîêàçâà ëè ïðèòåæàòåëÿò â îáîáùåíèÿ èçãëåä?" + +msgid "Show priorities in the summary view?" +msgstr "Äà ñå ïîêàçâàò ëè ïðèîðèòåòèòå â îáîáùåíèÿò èçãëåä?" + +msgid "Show: " +msgstr "Ïîêàæè:" + +msgid "Some of Nag's configuration files are missing:" +msgstr "Íÿêîè îò êîíôèãóðàöèîííèòå ôàéëîâå íà Nag ëèïñâàò:" + +msgid "Sort Direction" +msgstr "Ñîðòèðàíå" + +msgid "Sort by Category" +msgstr "Ñîðòèðàé ïî êàòåãîðèÿ" + +msgid "Sort by Completion Status" +msgstr "Ñîðòèðàé ïî ñòàòóñ íà èçïúëíåíèå" + +msgid "Sort by Due Date" +msgstr "Ñîðòèðàé ïî äàòà íà çàäúëæåíèåòî" + +msgid "Sort by Name" +msgstr "Ñîðòèðàé ïî èìå" + +msgid "Sort by Priority" +msgstr "Ñîðòèðàé ïî ïðèîðèòåò" + +msgid "Sort by User Name" +msgstr "Ñîðòèðàé ïî ïîòðåáèòåëñêî èìå" + +msgid "Task Details" +msgstr "Äåòàéëè" + +msgid "Task List" +msgstr "Ñïèñúê ñúñ çàäà÷è" + +msgid "Task Lists" +msgstr "Ñïèñúê ñúñ çàäà÷è" + +msgid "Task Lists's Type:" +msgstr "Òèï íà ñïèñúêà ñúñ çàäà÷è" + +msgid "Task Lists's name:" +msgstr "Èìå íà ñïèñúêà ñúñ çàäà÷è" + +msgid "Task Name" +msgstr "Èìå íà çàäà÷àòà" + +msgid "Task Note" +msgstr "Áåëåæêà" + +msgid "Task Note?" +msgstr "Áåëåæêà çà çàäà÷àòà?" + +msgid "The data was lost." +msgstr "Äàííèòå áÿõà èçãóáåíè." + +msgid "The file contained no data." +msgstr "Ôàéëúò íå ñúäúðæà äàííè." + +msgid "The requested task does not exist." +msgstr "Çàäà÷àòà, êîÿòî èçèñêâàòå íå ñúùåñòâóâà." + +#, c-format +msgid "The task list \"%s\" has been created." +msgstr "Ñïèñúêà ñúñ çàäà÷è \"%s\" áåøå ñúçäàäåí." + +#, c-format +msgid "The task list \"%s\" has been deleted." +msgstr "Ñïèñúêà ñúñ çàäà÷è \"%s\" áåøå èçòðèò." + +#, c-format +msgid "The task list \"%s\" has been saved." +msgstr "Ñïèñúêà ñúñ çàäà÷è \"%s\" áåøå çàïèñàí." + +msgid "The task list name is empty." +msgstr "Èìåòî íà ñïèñúêà ñúñ çàäà÷è å ïðàçíî" + +msgid "The task was saved." +msgstr "Çàäà÷àòà áåøå çàïèñàíà." + +msgid "There was a problem deleting tasks." +msgstr "Ãðåøêà ïðè èçòðèâàíåòî íà çàäà÷è." + +#, c-format +msgid "There was a problem removing the task from %s." +msgstr "Ãðåøêà ïðè ïðåìàõâàíåòî íà çàäà÷àòà îò %s." + +msgid "There was a problem saving the task." +msgstr "Ãðåøêà ïðè çàïèñ íà çàäà÷àòà." + +msgid "There was a problem setting task completion status." +msgstr "Ãðåøêà ïðè ðåãèñòðèðàíå íà ñòàòóñà íà çàäà÷àòà." + +msgid "" +"There was a problem with the file upload. The file may have been larger than " +"the maximum allowed size." +msgstr "" +"Ãðåøêà ïðè èçïðàùàíåòî íà ôàéëà. Âúçìîæíî å ôàéëúò äà å ïî-ãîëÿì îò " +"ìàêñèìàëíî äîïóñòèìèÿò ðàçìåð." + +msgid "There was an error importing the data." +msgstr "Ãðåøêà ïðè èìïîðò íà äàííèòå." + +msgid "There was an error importing the uploaded file" +msgstr "Ãðåøêà ïðè èìïîðòèðàíå íà èçïðàòåíèÿ ôàéë" + +msgid "There were no tasks to export." +msgstr "Íÿìà çàäà÷è çà åêñïîðò." + +msgid "These changes can not be undone!" +msgstr "Òåçè ïðîìåíè íå ìîãàò äà áúäàò âúðíàòè!" + +msgid "This file contains preferences for Nag." +msgstr "Òîçè ôàéë ñúäúðæà íàñòðîéêè çà Nag." + +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 is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"Òîâà å ãëàâíèÿ êîíôèãóðàöèîíåí ôàéë íà Turba. Òîé ñúäúðæà ïúòèùà è îïöèè çà " +"ñêðèïòîâåòå íà Nag." + +#, c-format +msgid "Unable to delete \"%s\": %s" +msgstr "Ãðåøêà ïðè èçòðèâàíå \"%s\": %s." + +msgid "Unfiled" +msgstr "Íåïîïúëíåí" + +msgid "Unknown" +msgstr "Íåèçâåñòåí" + +msgid "Unknown task" +msgstr "Íåèçâåñòíà çàäà÷à" + +msgid "User Options" +msgstr "Ïîòðåáèòåëñêè îïöèè" + +msgid "View Task Details" +msgstr "Äåòàéëè çà çàäà÷àòà" + +msgid "Which Task List should the tasks be added to?" +msgstr "Êúì êîé ñïèñúê ñúñ çàäà÷è äà áúäàò äîáàâåíè çàäà÷èòå?" + +msgid "Yes" +msgstr "Äà" + +msgid "You must select a task list to be deleted." +msgstr "Òðÿáâà äà èçáåðåòå êîé ñïèñúê ñúñ çàäà÷è äà áúäå èçòðèò." + +msgid "Your Information" +msgstr "Èíôîðìàöèÿ çà Âàñ" + +msgid "Your default task list:" +msgstr "Âàøèÿò ñïèñúê ñúñ çàäà÷è ïî ïîäðàçáèðàíå:" + +msgid "Your task list is empty." +msgstr "Âàøèÿò ñïèñúê ñúñ çàäà÷è å ïðàçåí" + +msgid "Your task lists:" +msgstr "Âàøèÿò ñïèñúê ñúñ çàäà÷è:" + +msgid "at" +msgstr "íà" diff --git a/nag/po/ca_ES.po b/nag/po/ca_ES.po new file mode 100644 index 000000000..655002050 --- /dev/null +++ b/nag/po/ca_ES.po @@ -0,0 +1,828 @@ +# Spanish translations for horde package +# Traducciones al español para el paquete horde. +# Copyright 2004-2009 The Horde Project +# This file is distributed under the same license as the horde package. +# Automatically generated, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2006-05-18 08:28+0200\n" +"PO-Revision-Date: 2007-02-01 16:51+0100\n" +"Last-Translator: Jordi Giralt \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" + +#: lib/Nag.php:47 +#, php-format +msgid "%d hour" +msgstr "%d hora" + +#: lib/Nag.php:49 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hora, %d minut" + +#: lib/Nag.php:51 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hora, %d minuts" + +#: lib/Nag.php:39 +#, php-format +msgid "%d hours" +msgstr "%d hores" + +#: lib/Nag.php:41 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d hores, %d minuts" + +#: lib/Nag.php:43 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d hores, %d minuts" + +#: lib/Nag.php:57 +#, php-format +msgid "%d minute" +msgstr "%d minut" + +#: lib/Nag.php:59 +#, php-format +msgid "%d minutes" +msgstr "%d minuts" + +#: templates/list/header.inc:9 +#, php-format +msgid "%d tasks" +msgstr "%d tasques" + +#: lib/Nag.php:334 +#, php-format +msgid "%s at %s" +msgstr "%s a les %s" + +#: lib/Nag.php:454 lib/Block/summary.php:93 +#, php-format +msgid "%s is due in %s" +msgstr "%s finalitzarà el %s" + +#: lib/Nag.php:452 lib/Block/summary.php:91 +#, php-format +msgid "%s is due now." +msgstr "%s acaba de finalitzar." + +#: data.php:151 +#, php-format +msgid "%s successfully imported" +msgstr "%s importat correctament" + +#: tasklists.php:100 lib/base.php:100 +#, php-format +msgid "%s's Task List" +msgstr "Llista de tasques de %s" + +#: lib/Nag.php:291 +msgid "(highest)" +msgstr "(elevada)" + +#: lib/Nag.php:291 +msgid "(lowest)" +msgstr "(reduida)" + +#: templates/list/header.inc:9 +msgid "1 task" +msgstr "1 tasca" + +#: task.php:266 +#, php-format +msgid "Access denied completing task %s." +msgstr "S'ha denegat l'accés per finalitzar la tasca %s." + +#: task.php:240 +#, php-format +msgid "Access denied deleting %s." +msgstr "S'ha denegat l'accés per a eliminar %s." + +#: task.php:206 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "S'ha denegat l'accés per a desplaçar la tasca a %s." + +#: task.php:209 +#, php-format +msgid "Access denied removing task from %s." +msgstr "S'ha denegat l'accés per a eliminar la tasca de %s." + +#: task.php:133 +#, php-format +msgid "Access denied saving task to %s." +msgstr "S'ha denegat l'accés per a guardar la tasca a %s." + +#: task.php:131 +#, php-format +msgid "Access denied saving task: %s" +msgstr "S'ha denegat l'accés per a guardar la tasca: %s." + +#: task.php:58 +msgid "Adding A New Task" +msgstr "Afegint una nova tasca" + +#: templates/task/task.inc:68 +msgid "Ala_rm" +msgstr "Ala_rma" + +#: templates/view/task.inc:35 +msgid "Alarm" +msgstr "Alarma" + +#: config/prefs.php.dist:107 +msgid "All tasks" +msgstr "Totes les tasques" + +#: lib/Block/summary.php:56 +msgid "Always show completed tasks?" +msgstr "Mostrar sempre les tasques finalitzades?" + +#: lib/Block/summary.php:53 +msgid "Always show overdue tasks?" +msgstr "Mostrar sempre les tasques finalitzades?" + +#: config/prefs.php.dist:84 +msgid "Ascending" +msgstr "Ascendent" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Torna a les opcioons de llista de tasques" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:57 +msgid "Calendar" +msgstr "Agenda" + +#: templates/list/task_headers.inc:32 +msgid "Cat_egory" +msgstr "_Categoria" + +#: data.php:42 templates/view/task.inc:27 config/prefs.php.dist:56 +#: config/prefs.php.dist:71 +msgid "Category" +msgstr "Categoria" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Canviar" + +#: templates/list/task_headers.inc:4 templates/list/task_headers.inc:9 +#: templates/list/task_headers.inc:14 templates/list/task_headers.inc:21 +#: templates/list/task_headers.inc:27 templates/list/task_headers.inc:31 +msgid "Change sort direction" +msgstr "Sentit de classificació." + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Canviar les opcions d'ordenació i visualització de tasques." + +#: config/prefs.php.dist:22 +msgid "Choose your default task list." +msgstr "Trii la seva llista de tasques per defecte:" + +#: templates/search/search.inc:33 +msgid "Clear Form" +msgstr "Netejar formulari" + +#: templates/task/task.inc:89 +msgid "Co_mpleted?" +msgstr "F_inalitzat?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Finalitzar" + +#: templates/list/task_summaries.inc:5 lib/Block/summary.php:150 +msgid "Complete Task" +msgstr "Tasca finalitzada" + +#: config/prefs.php.dist:109 +msgid "Complete tasks" +msgstr "Tasques finalitzades" + +#: lib/Nag.php:349 lib/Block/summary.php:148 +msgid "Completed" +msgstr "Finalitzat" + +#: task.php:275 +#, php-format +msgid "Completed %s." +msgstr "Ha finalitzat %s." + +#: templates/view/task.inc:43 templates/list/task_headers.inc:5 +#: config/prefs.php.dist:58 config/prefs.php.dist:73 +msgid "Completed?" +msgstr "Finalitzat?" + +#: data.php:45 +msgid "Completion Status" +msgstr "Estat de finalització" + +#: lib/api.php:205 +#, php-format +msgid "Connection failed: %s" +msgstr "Ha fallat la connexió: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Crear" + +#: templates/view/task.inc:49 +msgid "Created" +msgstr "Creat" + +#: templates/task/task.inc:77 lib/Nag.php:381 +msgid "Day(s)" +msgstr "Dia(es)" + +#: config/prefs.php.dist:21 +msgid "Default Task List" +msgstr "Llista de tasques per defecte" + +#: templates/tasklists/tasklists.inc:100 templates/view/task.inc:16 +msgid "Delete" +msgstr "Eliminar" + +#: templates/task/task.inc:111 +msgid "Delete this task" +msgstr "Eliminar aquesta tasca" + +#: task.php:248 +#, php-format +msgid "Deleted %s." +msgstr "S'ha eliminat %s." + +#: config/prefs.php.dist:85 +msgid "Descending" +msgstr "Descendent" + +#: data.php:41 +msgid "Description" +msgstr "Descripció" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Descripció:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Opcions de visualizació" + +#: data.php:43 templates/view/task.inc:31 +msgid "Due By" +msgstr "Venç el" + +#: config/prefs.php.dist:57 config/prefs.php.dist:72 +msgid "Due Date" +msgstr "Data de venciment" + +#: templates/task/task.inc:43 +msgid "Due _By" +msgstr "_Vençuda des de " + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Editar" + +#: templates/list/task_summaries.inc:19 templates/list/task_headers.inc:18 +#: lib/Block/summary.php:146 +msgid "Edit Task" +msgstr "Editar tasca" + +#: templates/list/task_headers.inc:37 +msgid "Edit categories and colors" +msgstr "Editar les categories i els seus colors" + +#: templates/data/export.inc:22 +msgid "Export" +msgstr "Exportar" + +#: templates/data/export.inc:8 +msgid "Export Tasks" +msgstr "Exportar tasques" + +#: config/prefs.php.dist:33 +msgid "External Data" +msgstr "Dades externes" + +#: config/prefs.php.dist:13 +msgid "General Options" +msgstr "Opcions generals" + +#: templates/task/task.inc:76 lib/Nag.php:384 +msgid "Hour(s)" +msgstr "Hora(es)" + +#: templates/data/import.inc:9 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importar tasques. Pas %d" + +#: data.php:157 +msgid "Import/Export Tasks" +msgstr "Importar/Exportar tasques" + +#: list.php:77 +msgid "Incom_plete tasks" +msgstr "Tasques _pendents" + +#: config/prefs.php.dist:108 +msgid "Incomplete tasks" +msgstr "Tasques incompletetes" + +#: templates/view/task.inc:56 +msgid "Last Modified" +msgstr "Darrera modificació" + +#: templates/task/task.inc:75 lib/Nag.php:387 +msgid "Minute(s)" +msgstr "Minut(s)" + +#: task.php:115 +msgid "Modifying:" +msgstr "Modificant:" + +#: lib/api.php:548 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"S'han trobat diversos components iCalendar; només se suporta un vTodo cada " +"vegada. " + +#: list.php:40 +msgid "My Tasks" +msgstr "Les meves tasques" + +#: templates/search/search.inc:21 templates/task/task.inc:12 +msgid "N_ame" +msgstr "_Nom" + +#: templates/list/task_headers.inc:22 +msgid "Na_me" +msgstr "_Nom" + +#: data.php:40 +msgid "Name" +msgstr "Nom" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Nova tasca" + +#: templates/data/import.inc:43 +msgid "Next" +msgstr "Següent" + +#: templates/task/task.inc:46 +msgid "No due date." +msgstr "Sense data de venciment" + +#: lib/api.php:338 lib/api.php:541 +msgid "No iCalendar data was found." +msgstr "No s'han trobat dades iCalendar." + +#: lib/Nag.php:468 +msgid "No task lists are available to guests." +msgstr "No disposa de llista de tasques per als invitats" + +#: lib/Block/summary.php:190 +msgid "No tasks to display" +msgstr "Sense tasques visibles" + +#: templates/task/task.inc:71 lib/Nag.php:391 +msgid "None" +msgstr "Cap" + +#: lib/Nag.php:350 +msgid "Not Completed" +msgstr "No està finalitzat" + +#: config/prefs.php.dist:59 config/prefs.php.dist:74 +msgid "Owner" +msgstr "Propietari" + +#: templates/list/task_headers.inc:15 +msgid "P_ri" +msgstr "_Prioritat" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Privilegi" + +#: lib/api.php:317 lib/api.php:421 lib/api.php:493 lib/api.php:524 +msgid "Permission Denied" +msgstr "Permís denegat" + +#: lib/api.php:86 +msgid "Permission denied" +msgstr "Permís denegat" + +#: data.php:44 templates/view/task.inc:39 config/prefs.php.dist:54 +#: config/prefs.php.dist:69 +msgid "Priority" +msgstr "Prioritat" + +#: templates/list/header.inc:5 templates/list/header.inc:6 +msgid "Refresh List" +msgstr "Actualitzar llista" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Reinicia" + +#: templates/task/task.inc:103 +msgid "Save" +msgstr "Desa" + +#: task.php:223 +#, php-format +msgid "Saved %s." +msgstr "S'ha guardat %s." + +#: search.php:14 templates/search/search.inc:5 templates/search/search.inc:32 +msgid "Search" +msgstr "Cerca" + +#: list.php:63 +msgid "Search Results" +msgstr "Resultads de la cerca" + +#: templates/search/search.inc:18 +msgid "Search Scope" +msgstr "Àmbit de la cerca" + +#: templates/search/search.inc:10 +msgid "Search _Text" +msgstr "Cercar _text" + +#: templates/task/task.inc:57 +msgid "Select a date" +msgstr "Seleccioni una data" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Seleccioni una llista de tasques" + +#: templates/data/export.inc:15 +msgid "Select the export format:" +msgstr "Seleccioni el format d'exportació:" + +#: templates/data/import.inc:40 +msgid "Select the file to import:" +msgstr "Seleccioni el format a importar:" + +#: templates/data/import.inc:16 +msgid "Select the format of the source file:" +msgstr "Seleccioni el format de l'arxiu origen:" + +#: config/prefs.php.dist:45 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "" +"Mostrar la llista de tasques en una columna pròpia en la vista de llistat?" + +#: templates/menu.inc:18 +msgid "Show" +msgstr "Mostra" + +#: templates/menu.inc:8 +msgid "Show Tasklists:" +msgstr "_Les mesves tasques" + +#: lib/Block/summary.php:38 +msgid "Show action buttons?" +msgstr "Mostrar botons d'acció?" + +#: config/prefs.php.dist:110 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"En la llista de tasques mostrar les finalitzades, els pendents o totes? " + +#: config/prefs.php.dist:97 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"Mostrar dades de qualsevol d'aquestes altres aplicacions en la llista de " +"tasques? " + +#: config/prefs.php.dist:34 +msgid "Show data from other applications or sources." +msgstr "Mostrar dades d'altres aplicacions o orígens. " + +#: lib/Block/summary.php:41 +msgid "Show due dates?" +msgstr "Mostar dates vençudes? " + +#: lib/Block/summary.php:35 +msgid "Show priorities?" +msgstr "Mostrar prioritats?" + +#: lib/Block/summary.php:47 +msgid "Show task alarms?" +msgstr "Mostrar les alarmens de les tasques?" + +#: lib/Block/summary.php:50 +msgid "Show task category?" +msgstr "Mostrar la categoria de les tasques?" + +#: lib/Block/summary.php:44 +msgid "Show tasklist name?" +msgstr "Mostrar el nom de la llista de tasques?" + +#: lib/Block/summary.php:59 +msgid "Show tasks from these categories" +msgstr "Mostrar les tasques d'aquestes categories?" + +#: templates/list/task_headers.inc:32 +msgid "Sort by Category" +msgstr "Ordenar per categoria" + +#: templates/list/task_headers.inc:5 +msgid "Sort by Completion Status" +msgstr "Ordenar per estat de finalització" + +#: templates/list/task_headers.inc:28 +msgid "Sort by Due Date" +msgstr "Ordenar per data de venciment" + +#: templates/list/task_headers.inc:22 +msgid "Sort by Name" +msgstr "Ordenar por nom" + +#: templates/list/task_headers.inc:15 +msgid "Sort by Priority" +msgstr "Ordenar por prioritat" + +#: templates/list/task_headers.inc:10 +msgid "Sort by User Name" +msgstr "Ordenar per nom d'usuari" + +#: config/prefs.php.dist:86 +msgid "Sort direction:" +msgstr "Sentit de classificació." + +#: config/prefs.php.dist:60 +msgid "Sort tasks by:" +msgstr "Ordenar tasques per:" + +#: templates/list/task_summaries.inc:26 +msgid "Task Alarm" +msgstr "Alarma de la tasca" + +#: templates/list/task_headers.inc:25 +msgid "Task Alarm?" +msgstr "Alarma de la tasca?" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Llista de tasques" + +#: config/prefs.php.dist:20 config/prefs.php.dist:32 +msgid "Task List and Share Options" +msgstr "Opcions de llistat i compartició de tasques " + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Nom de la llista de tasca: " + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Llista de tasques" + +#: config/prefs.php.dist:55 config/prefs.php.dist:70 +msgid "Task Name" +msgstr "nom de la tasca" + +#: templates/list/task_summaries.inc:24 +msgid "Task Note" +msgstr "Comentari de la tasca" + +#: templates/list/task_headers.inc:24 +msgid "Task Note?" +msgstr "Comentari?" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Les llistes de tasques han de tenir un nom. " + +#: task.php:117 view.php:43 +msgid "Task not found." +msgstr "No s'ha trobat la tasca" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Resum de tasques" + +#: task.php:166 +msgid "The alarm field may only contain integers." +msgstr "El camp alarma només pot contenir sencers " + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "No es pot crear la llista de tasques \"%s\": %s." + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "No es pot guardar la llista de tasques \"%s\": %s." + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "S'ha creat la llista de tasques \"%s\". " + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "S'ha eliminat la llista de tasques \"%s\". " + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "S'ha guardat la llista de tasques \"%s\". " + +#: config/prefs.php.dist:75 +msgid "Then:" +msgstr "A més per:" + +#: templates/list/empty.inc:3 +msgid "There are no tasks matching the current criteria." +msgstr "No hi ha tasques coincidents amb els criteris actuals. " + +#: task.php:272 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "S'ha produït un error al completar %s: %s" + +#: task.php:245 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "S'ha produït un error a l'eliminar %s: %s " + +#: task.php:221 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "S'ha produït un error al guardar la tasca: %s" + +#: data.php:148 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "S'ha produït un error al importar dades: %s" + +#: lib/api.php:332 lib/api.php:535 +msgid "There was an error importing the iCalendar data." +msgstr "S'ha produït un error al importar les dades iCalendar." + +#: data.php:67 +msgid "There were no tasks to export." +msgstr "No hi ha tasques a exportar." + +#: data.php:111 +msgid "This file format is not supported." +msgstr "Aquest format d'arxiu no està suportat." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "No es pot eliminar \"%s\": %s" + +#: templates/task/task.inc:104 +msgid "Undo changes" +msgstr "Desfer canvis" + +#: templates/view/task.inc:28 templates/list/task_summaries.inc:31 +#: lib/Block/summary.php:32 lib/Block/summary.php:183 +msgid "Unfiled" +msgstr "Sense categoria" + +#: lib/api.php:383 lib/api.php:457 lib/api.php:568 +msgid "Unsupported Content-Type." +msgstr "Tipus de contingut no suportat: %s " + +#: templates/list/task_summaries.inc:23 +msgid "View Task Details" +msgstr "Veure detall de la tasca" + +#: templates/task/task.inc:78 lib/Nag.php:378 +msgid "Week(s)" +msgstr "Semana(es)" + +#: templates/data/import.inc:24 +msgid "Which tasklist should the tasks be added to?" +msgstr "A quina llista de tasques cal afegir les tasques? " + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "No disposa de privilegis per a veure aquesta llista de tasques. " + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Ha de seleccionar una llista de tasques a eliminar. " + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "La seva llista de tasques per defecte:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "La seva llista de tasques:" + +#: templates/list/task_summaries.inc:23 lib/Block/summary.php:89 +#: lib/Block/summary.php:173 +msgid "[none]" +msgstr "[Cap]" + +#: list.php:76 +msgid "_All tasks" +msgstr "_Totes" + +#: templates/search/search.inc:23 templates/task/task.inc:39 +msgid "_Category" +msgstr "_Categoria" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "_Finalitzada" + +#: list.php:78 +msgid "_Completed tasks" +msgstr "Tasquest finalitzade_s" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "_Eliminar" + +#: templates/search/search.inc:22 templates/task/task.inc:95 +msgid "_Description" +msgstr "_Descripció" + +#: templates/list/task_headers.inc:28 +msgid "_Due Date" +msgstr "Data de vencimen_t" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "_Editar" + +#: lib/Nag.php:418 +msgid "_Import/Export" +msgstr "_Importar/Exportar" + +#: lib/Nag.php:406 +msgid "_List Tasks" +msgstr "_Llistar" + +#: lib/Nag.php:413 +msgid "_My Tasklists" +msgstr "_Les mesves tasques" + +#: lib/Nag.php:408 +msgid "_New Task" +msgstr "_Nova tasca" + +#: lib/Nag.php:423 +msgid "_Print" +msgstr "Im_primir" + +#: templates/task/task.inc:83 +msgid "_Priority" +msgstr "Priori_tat" + +#: lib/Nag.php:410 +msgid "_Search" +msgstr "_Cerca" + +#: templates/task/task.inc:20 templates/list/task_headers.inc:10 +msgid "_Task List" +msgstr "L_lista de tasques" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:55 +msgid "no time" +msgstr "Sense límit" + +#: data.php:84 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasuqes.csv" + +#: data.php:96 +msgid "tasks.ics" +msgstr "tasques.ics" diff --git a/nag/po/cs_CZ.po b/nag/po/cs_CZ.po new file mode 100644 index 000000000..68a117990 --- /dev/null +++ b/nag/po/cs_CZ.po @@ -0,0 +1,810 @@ +# Nag Czech Translation. +# Copyright 2004-2009 The Horde Project +# This file is distributed under the same license as the Horde package. +# Pavel Chytil , 2001-2004. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2004-12-22 10:04-0800\n" +"PO-Revision-Date: 2001-07-26 14:56-0900\n" +"Last-Translator: Pavel Chytil \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8-bit\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" + +#: lib/Nag.php:48 +#, php-format +msgid "%d hour" +msgstr "%d hodina" + +#: lib/Nag.php:50 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hodina, %d minuta" + +#: lib/Nag.php:52 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hodina, %d minut" + +#: lib/Nag.php:40 +#, php-format +msgid "%d hours" +msgstr "%d hodin" + +#: lib/Nag.php:42 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d hodin, %d minuta" + +#: lib/Nag.php:44 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d hodin, %d minut" + +#: lib/Nag.php:58 +#, php-format +msgid "%d minute" +msgstr "%d minuta" + +#: lib/Nag.php:60 +#, php-format +msgid "%d minutes" +msgstr "%d minut" + +#: templates/list/header.inc:9 +#, php-format +msgid "%d tasks" +msgstr "%d úkoly" + +#: lib/Nag.php:341 +#, php-format +msgid "%s at %s" +msgstr "%s na %s" + +#: lib/Nag.php:462 lib/Block/summary.php:92 +#, php-format +msgid "%s is due in %s" +msgstr "%s je po¾adováno v %s" + +#: lib/Nag.php:460 lib/Block/summary.php:90 +#, php-format +msgid "%s is due now." +msgstr "%s po¾adováno nyní." + +#: data.php:140 +#, php-format +msgid "%s successfully imported" +msgstr "%s úspì¹nì importováno" + +#: tasklists.php:100 lib/base.php:97 +#, php-format +msgid "%s's Task List" +msgstr "%s - Seznam Úkolù" + +#: lib/Nag.php:289 +msgid "(highest)" +msgstr "(nejvy¹í)" + +#: lib/Nag.php:289 +msgid "(lowest)" +msgstr "(nejni¾¹í)" + +#: templates/list/header.inc:9 +msgid "1 task" +msgstr "1 úkol" + +#: task.php:258 +#, php-format +msgid "Access denied completing task %s." +msgstr "Zamezen pøístup pro dokonèení úkolu %s." + +#: task.php:232 +#, php-format +msgid "Access denied deleting %s." +msgstr "Zamezen pøístup pro smazání úkolu %s." + +#: task.php:198 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Zamezen pøístup pro posun úkolu %s." + +#: task.php:201 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Zamezen pøístup pro odstranìní úkolu %s." + +#: task.php:133 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Zamezen pøístup pro ulo¾ení úkolu %s." + +#: task.php:131 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Zamezen pøístup pro ulo¾ení úkolu: %s." + +#: task.php:58 +msgid "Adding A New Task" +msgstr "Pøidát Nový Úkol" + +#: templates/task/task.inc:68 +msgid "Ala_rm" +msgstr "Ala_rm" + +#: templates/view/task.inc:37 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:98 +msgid "All tasks" +msgstr "V¹echny úkoly" + +#: lib/Block/summary.php:55 +msgid "Always show completed tasks?" +msgstr "V¾dy zobrazit dokonèené úkoly?" + +#: lib/Block/summary.php:52 +msgid "Always show overdue tasks?" +msgstr "V¾dy zobrazit zpo¾dìné úkoly?" + +#: config/prefs.php.dist:75 +msgid "Ascending" +msgstr "Vzestupnì" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Zpìt do Mo¾ností pro Seznam Úkolù" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:57 +msgid "Calendar" +msgstr "Kalendáø" + +#: templates/list/task_headers.inc:30 +msgid "Cat_egory" +msgstr "Kat_egorie" + +#: data.php:42 templates/view/task.inc:29 config/prefs.php.dist:47 +#: config/prefs.php.dist:62 +msgid "Category" +msgstr "Kategorie" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Zmìnit" + +#: templates/list/task_headers.inc:4 templates/list/task_headers.inc:8 +#: templates/list/task_headers.inc:12 templates/list/task_headers.inc:19 +#: templates/list/task_headers.inc:25 templates/list/task_headers.inc:29 +msgid "Change sort direction" +msgstr "Zmìnit Typ Tøídìní" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Zmìò mo¾nosti tøídení a zobrazení." + +#: config/prefs.php.dist:22 +msgid "Choose your default task list." +msgstr "Zvolit implicitní seznam úkolù." + +#: templates/search/search.inc:33 +msgid "Clear Form" +msgstr "Vyèisti Formuláø" + +#: templates/task/task.inc:89 +msgid "Co_mpleted?" +msgstr "Do_konèeno?" + +#: templates/view/task.inc:13 +msgid "Complete" +msgstr "Dokonèit" + +#: templates/list/task_summaries.inc:4 lib/Block/summary.php:146 +msgid "Complete Task" +msgstr "Dokonèit Úkol" + +#: config/prefs.php.dist:100 +msgid "Complete tasks" +msgstr "Dokonèit úkoly" + +#: lib/Nag.php:356 lib/Block/summary.php:144 +msgid "Completed" +msgstr "Dokonèeno" + +#: task.php:267 +#, php-format +msgid "Completed %s." +msgstr "%s dokonèeno." + +#: templates/view/task.inc:45 templates/list/task_headers.inc:5 +#: config/prefs.php.dist:49 config/prefs.php.dist:64 +msgid "Completed?" +msgstr "Dokonèeno?" + +#: data.php:45 +msgid "Completion Status" +msgstr "Stav Dokonèení" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Vytvoøit" + +#: templates/view/task.inc:51 +msgid "Created" +msgstr "Vytvoøeno" + +#: templates/task/task.inc:77 lib/Nag.php:387 +msgid "Day(s)" +msgstr "Den(Dny)" + +#: config/prefs.php.dist:21 +msgid "Default Task List" +msgstr "Implicitní Seznam Úkolù" + +#: templates/view/task.inc:18 templates/tasklists/tasklists.inc:100 +msgid "Delete" +msgstr "Smazat" + +#: task.php:240 +#, php-format +msgid "Deleted %s." +msgstr "Smazat %s." + +#: config/prefs.php.dist:76 +msgid "Descending" +msgstr "Sestupnì" + +#: data.php:41 +msgid "Description" +msgstr "Popis" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Popis:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Mo¾nosti Zobrazení" + +#: data.php:43 templates/view/task.inc:33 +msgid "Due By" +msgstr "Po¾adováno" + +#: config/prefs.php.dist:48 config/prefs.php.dist:63 +msgid "Due Date" +msgstr "Datum Po¾adovaného Dokonèení" + +#: templates/task/task.inc:43 +msgid "Due _By" +msgstr "Po¾adová_no" + +#: templates/view/task.inc:15 +msgid "Edit" +msgstr "Upravit" + +#: templates/list/task_headers.inc:16 templates/list/task_summaries.inc:15 +#: lib/Block/summary.php:142 +msgid "Edit Task" +msgstr "Upravit Úkol" + +#: templates/data/export.inc:22 +msgid "Export" +msgstr "Exportovat" + +#: templates/data/export.inc:8 +msgid "Export Tasks" +msgstr "Exportovat Úkoly" + +#: config/prefs.php.dist:33 +msgid "External Data" +msgstr "Externí Data" + +#: config/prefs.php.dist:13 +msgid "General Options" +msgstr "V¹eobecné Mo¾nosti" + +#: templates/task/task.inc:76 lib/Nag.php:390 +msgid "Hour(s)" +msgstr "Hodin(a)" + +#: templates/data/import.inc:9 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importovat Úkoly, Krok %d" + +#: data.php:146 +msgid "Import/Export Tasks" +msgstr "Importovat/Exportovat Úkoly" + +#: list.php:77 +msgid "Incom_plete tasks" +msgstr "Nedoko_nèené úkoly" + +#: config/prefs.php.dist:99 +msgid "Incomplete tasks" +msgstr "Nedokonèené úkoly" + +#: templates/view/task.inc:58 +msgid "Last Modified" +msgstr "Zmìnìn Poslední" + +#: templates/task/task.inc:75 lib/Nag.php:393 +msgid "Minute(s)" +msgstr "Minut(a)" + +#: task.php:115 +msgid "Modifying:" +msgstr "Modifikování:" + +#: lib/api.php:282 lib/api.php:465 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Nalezeno nìkolik èástí iCalendar; je mo¾né pou¾ít pouze jednu vTodo." + +#: list.php:40 +msgid "My Tasks" +msgstr "Úkoly" + +#: templates/task/task.inc:12 templates/search/search.inc:21 +msgid "N_ame" +msgstr "N_ázev" + +#: templates/list/task_headers.inc:20 +msgid "Na_me" +msgstr "Ná_zev" + +#: data.php:40 +msgid "Name" +msgstr "Název" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Nový Úkol" + +#: templates/data/import.inc:43 +msgid "Next" +msgstr "Dal¹í" + +#: lib/Nag.php:19 +msgid "No" +msgstr "Ne" + +#: templates/task/task.inc:46 +msgid "No due date." +msgstr "Bez po¾adovaného dokoèení." + +#: lib/api.php:275 lib/api.php:458 +msgid "No iCalendar data was found." +msgstr "Nebyla nalezena ¾ádna data v iCalendar." + +#: lib/Nag.php:476 +msgid "No task lists are available to guests." +msgstr "®ádný seznam úkolù není dostupný pro hosty." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "®ádné úkoly k zobrazení" + +#: templates/task/task.inc:71 lib/Nag.php:397 +msgid "None" +msgstr "®ádný" + +#: lib/Nag.php:357 +msgid "Not Completed" +msgstr "Nedokonèeno" + +#: config/prefs.php.dist:50 config/prefs.php.dist:65 +msgid "Owner" +msgstr "Vlastník" + +#: templates/list/task_headers.inc:13 +msgid "P_ri" +msgstr "D_ùl" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Práva" + +#: lib/api.php:254 lib/api.php:339 lib/api.php:410 lib/api.php:441 +msgid "Permission Denied" +msgstr "Nepovolený pøístup" + +#: lib/api.php:86 +msgid "Permission denied" +msgstr "Nepovolený pøístup" + +#: data.php:44 templates/view/task.inc:41 config/prefs.php.dist:45 +#: config/prefs.php.dist:60 +msgid "Priority" +msgstr "Dùle¾itost" + +#: templates/list/header.inc:5 templates/list/header.inc:6 +msgid "Refresh List" +msgstr "Obnovit Seznam" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Smazat" + +#: templates/task/task.inc:103 +msgid "Save Task" +msgstr "Ulo¾it Úkol" + +#: task.php:215 +#, php-format +msgid "Saved %s." +msgstr "Ulo¾eno %s." + +#: search.php:14 templates/search/search.inc:5 templates/search/search.inc:32 +msgid "Search" +msgstr "Hledat" + +#: list.php:63 +msgid "Search Results" +msgstr "Výsledky Vyhledávání" + +#: templates/search/search.inc:18 +msgid "Search Scope" +msgstr "Hledat v Oblasti" + +#: templates/search/search.inc:10 +msgid "Search _Text" +msgstr "Hledaný _Text" + +#: templates/task/task.inc:57 +msgid "Select a date" +msgstr "Vybrat datum" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Vybrat seznam úkolù" + +#: templates/data/export.inc:15 +msgid "Select the export format:" +msgstr "Zvolit formát exportu:" + +#: templates/data/import.inc:40 +msgid "Select the file to import:" +msgstr "Vybrat soubor k importování:" + +#: templates/data/import.inc:16 +msgid "Select the format of the source file:" +msgstr "Vybrat formát zdrojového souboru:" + +#: templates/menu.inc:8 +msgid "Show" +msgstr "Zobrazit" + +#: templates/menu.inc:14 +msgid "Show Tasklists:" +msgstr "Zobrazit Seznam Úkolù:" + +#: lib/Block/summary.php:37 +msgid "Show action buttons?" +msgstr "Zobrazit akèní tlaèítka?" + +#: config/prefs.php.dist:101 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Zobrazit dokonèené, nedokonèené nebo v¹echny úkoly v seznamu úkolù?" + +#: config/prefs.php.dist:88 +msgid "Show data from any of these other applications in your task list?" +msgstr "Zobrazit data z jakékoliv jiných aplikací v seznamu úkolù?" + +#: config/prefs.php.dist:34 +msgid "Show data from other applications or sources." +msgstr "Zobrazit data z jiných aplikací a zdrojù." + +#: lib/Block/summary.php:40 +msgid "Show due dates?" +msgstr "Zobrazit datum po¾adovaného dokoèení?" + +#: lib/Block/summary.php:34 +msgid "Show priorities?" +msgstr "Zobrazit dùle¾itost?" + +#: lib/Block/summary.php:46 +msgid "Show task alarms?" +msgstr "Zobrazit Alarmy pro úkoly?" + +#: lib/Block/summary.php:49 +msgid "Show task category?" +msgstr "Zobrazit kategorie úkolù?" + +#: lib/Block/summary.php:43 +msgid "Show tasklist name?" +msgstr "Zobrazit název seznamu úkolù?" + +#: lib/Block/summary.php:58 +msgid "Show tasks from these categories" +msgstr "Zobrazit úkoly v tìchto kategoriích" + +#: templates/list/task_headers.inc:30 +msgid "Sort by Category" +msgstr "Setøídit podle Kategorií" + +#: templates/list/task_headers.inc:5 +msgid "Sort by Completion Status" +msgstr "Tøidìní podle Stavu Dokonèení" + +#: templates/list/task_headers.inc:26 +msgid "Sort by Due Date" +msgstr "Tøídìní podle Datumu Po¾adovaného Dokonèení" + +#: templates/list/task_headers.inc:20 +msgid "Sort by Name" +msgstr "Tøídìní podle Názvu" + +#: templates/list/task_headers.inc:13 +msgid "Sort by Priority" +msgstr "Tøídìní podle Dùle¾itosti" + +#: templates/list/task_headers.inc:9 +msgid "Sort by User Name" +msgstr "Tøídìní podle U¾ivatelského Jména" + +#: config/prefs.php.dist:77 +msgid "Sort direction:" +msgstr "Smìr Tøídìní:" + +#: config/prefs.php.dist:51 +msgid "Sort tasks by:" +msgstr "Tøídìní Úkolù podle:" + +#: templates/list/task_summaries.inc:22 +msgid "Task Alarm" +msgstr "Alarm Úkolu" + +#: templates/list/task_headers.inc:23 +msgid "Task Alarm?" +msgstr "Alarm Úkolu?" + +#: view.php:74 +msgid "Task Details" +msgstr "Detaily Úkolu" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Seznam Úkolù" + +#: config/prefs.php.dist:20 config/prefs.php.dist:32 +msgid "Task List and Share Options" +msgstr "Seznam Úkolù a Mo¾nosti Sdílení" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Název Seznamu Úkolù" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Seznam Úkolù" + +#: config/prefs.php.dist:46 config/prefs.php.dist:61 +msgid "Task Name" +msgstr "Název Úkolu" + +#: templates/list/task_summaries.inc:20 +msgid "Task Note" +msgstr "Poznámka Úkolu" + +#: templates/list/task_headers.inc:22 +msgid "Task Note?" +msgstr "Poznámku Úkolu?" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Seznam Úkolù musí mít název." + +#: task.php:117 view.php:43 +msgid "Task not found." +msgstr "Úkol nebyl nalezen." + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Shrnutí Úkolù" + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Nelze vytvoøit seznam úkolù \"%s\": %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Nelze ulo¾it seznam úkolù \"%s\": %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Byl vytvoøen seznam úkolù \"%s\"." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Byl´smazán seznam úkolù \"%s\"." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Byl ulo¾en seznam úkolù \"%s\"." + +#: config/prefs.php.dist:66 +msgid "Then:" +msgstr "Pak:" + +#: templates/list/empty.inc:3 +msgid "There are no tasks matching the current criteria." +msgstr "®ádné úkoly se neshodují se souèasným kritériem." + +#: task.php:264 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Problém se vyskytl pøi dokonèování %s: %s" + +#: task.php:237 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Problém se vyskytl pøi smazávání %s: %s" + +#: task.php:213 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Problém se vyskytl pøi ukádání úkolu: %s." + +#: data.php:137 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Nastala chyba pøi importování dat: %s." + +#: lib/api.php:269 lib/api.php:452 +msgid "There was an error importing the iCalendar data." +msgstr "Pøi importování iCalendar dat do¹lo k chybì." + +#: data.php:66 +msgid "There were no tasks to export." +msgstr "®ádné úkoly k exportování." + +#: data.php:105 +msgid "This file format is not supported." +msgstr "Tento formát souboru nelze pou¾ít." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Nelze smazat \"%s\": %s." + +#: templates/task/task.inc:104 +msgid "Undo Changes" +msgstr "Storno Zmìny" + +#: templates/view/task.inc:30 templates/list/task_summaries.inc:27 +#: scripts/upgrades/2004-05-13_convert_categories_to_strings.php:50 +#: lib/Block/summary.php:179 +msgid "Unfiled" +msgstr "Nevyplnìno" + +#: lib/api.php:301 lib/api.php:374 lib/api.php:485 +msgid "Unsupported Content-Type." +msgstr "Nepodporovaný Typ Obsahu." + +#: templates/list/task_summaries.inc:19 +msgid "View Task Details" +msgstr "Prohlídni Detaily Úkolu" + +#: templates/task/task.inc:78 lib/Nag.php:384 +msgid "Week(s)" +msgstr "Týden(y)" + +#: templates/data/import.inc:24 +msgid "Which tasklist should the tasks be added to?" +msgstr "Do kterého Seznamu Úkolù se mají úkoly ukládat?" + +#: lib/Nag.php:20 +msgid "Yes" +msgstr "Ano" + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Nedostateèná práva pro prohlí¾ení toho to seznamu úkolù." + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Musíte vybrat, který seznam úkolù bude smazán." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Implicitní seznam úkolù" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Vá¹ Seznam Úkolù:" + +#: templates/list/task_summaries.inc:19 lib/Block/summary.php:88 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[¾ádný]" + +#: list.php:76 +msgid "_All tasks" +msgstr "_V¹echny úkoly" + +#: templates/task/task.inc:39 templates/search/search.inc:23 +msgid "_Category" +msgstr "_Kategorie" + +#: templates/view/task.inc:13 +msgid "_Complete" +msgstr "_Dokonèit" + +#: list.php:78 +msgid "_Completed tasks" +msgstr "_Dokonèené úkoly" + +#: templates/view/task.inc:18 +msgid "_Delete" +msgstr "_Smazat" + +#: templates/task/task.inc:95 templates/search/search.inc:22 +msgid "_Description" +msgstr "_Popis" + +#: templates/list/task_headers.inc:26 +msgid "_Due Date" +msgstr "_Datum Po¾adovaného Dokonèení" + +#: templates/view/task.inc:15 +msgid "_Edit" +msgstr "_Upravit" + +#: lib/Nag.php:426 +msgid "_Import/Export" +msgstr "_Importovat/Exportovat" + +#: lib/Nag.php:414 +msgid "_List Tasks" +msgstr "_Seznam Úkolù" + +#: lib/Nag.php:421 +msgid "_My Tasklists" +msgstr "_Úkoly" + +#: lib/Nag.php:416 +msgid "_New Task" +msgstr "_Nový Úkol" + +#: lib/Nag.php:431 +msgid "_Print" +msgstr "_Tisk" + +#: templates/task/task.inc:83 +msgid "_Priority" +msgstr "Dùle¾itost" + +#: lib/Nag.php:418 +msgid "_Search" +msgstr "_Vyhledat" + +#: templates/task/task.inc:20 templates/list/task_headers.inc:9 +msgid "_Task List" +msgstr "_Seznam Úkolù" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:56 +msgid "no time" +msgstr "bez èasového údaje" + +#: data.php:78 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "ukoly.cvs" diff --git a/nag/po/da_DK.po b/nag/po/da_DK.po new file mode 100644 index 000000000..e67e69751 --- /dev/null +++ b/nag/po/da_DK.po @@ -0,0 +1,964 @@ +# Danish translations for Nag package +# Danske oversættelser for pakke Nag +# Copyright 2006-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Brian Truelsen , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 (2.2-cvs)\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2006-03-05 18:16+0100\n" +"PO-Revision-Date: 2006-03-06 22:10+0100\n" +"Last-Translator: Brian Truelsen \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" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d time" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d time, %d minut" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d time, %d minutter" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d timer" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d timer, %d minut" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d timer, %d minutter" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minut" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutter" + +#: templates/list/header.inc:3 +#, php-format +msgid "%d tasks" +msgstr "%d opgaver" + +#: lib/Nag.php:385 +#, php-format +msgid "%s at %s" +msgstr "%s kl. %s" + +#: lib/Nag.php:537 lib/Block/summary.php:90 lib/Block/tree_alarms.php:34 +#, php-format +msgid "%s is due in %s" +msgstr "%s forfalder om %s" + +#: lib/Nag.php:535 lib/Block/summary.php:88 lib/Block/tree_alarms.php:32 +#, php-format +msgid "%s is due now." +msgstr "%s forfalder nu." + +#: data.php:175 +#, php-format +msgid "%s successfully imported" +msgstr "%s importeret" + +#: tasklists.php:100 lib/base.php:101 +#, php-format +msgid "%s's Task List" +msgstr "%ss opgaveliste" + +#: lib/Nag.php:342 +msgid "(highest)" +msgstr "(højeste)" + +#: lib/Nag.php:342 +msgid "(lowest)" +msgstr "(lavest)" + +#: templates/list/header.inc:3 +msgid "1 task" +msgstr "1 opgave" + +#: task.php:291 +#, php-format +msgid "Access denied completing task %s." +msgstr "Adgang nægtet ved færdiggørelse af opgave %s." + +#: task.php:265 +#, php-format +msgid "Access denied deleting %s." +msgstr "Adgang nægtet ved sletning af %s." + +#: task.php:223 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Adgang nægtet ved flytning af opgaven til %s." + +#: task.php:226 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Adgang nægtet ved sletning af opgave fra %s." + +#: task.php:146 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Adgang nægtet ved lagring af opgave i %s." + +#: task.php:144 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Adgang nægtet ved lagring af opgave: %s" + +#: task.php:70 +msgid "Adding A New Task" +msgstr "Tilføj en ny opgave" + +#: templates/task/task.inc:67 +msgid "Ala_rm" +msgstr "Alarm" + +#: templates/view/task.inc:33 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:143 +msgid "All tasks" +msgstr "Alle opgaver" + +#: lib/Block/summary.php:54 +msgid "Always show completed tasks?" +msgstr "Vis altid afsluttede opgaver?" + +#: lib/Block/summary.php:51 +msgid "Always show overdue tasks?" +msgstr "Vis altid overskredne opgaver?" + +#: config/prefs.php.dist:98 +msgid "Ascending" +msgstr "Stigende" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Tilbage til tilvalg for opgavelister" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:56 +msgid "Calendar" +msgstr "Kalender" + +#: templates/list/task_headers.inc:65 +msgid "Cat_egory" +msgstr "Kategori" + +#: data.php:52 templates/view/task.inc:25 config/prefs.php.dist:70 +#: config/prefs.php.dist:85 +msgid "Category" +msgstr "Kategori" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Ændre" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Vælg måden, dine opgaver vises og sorteres på." + +#: config/prefs.php.dist:122 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Vælg hvorvidt du ønsker at blive informeret om ny, ændrede eller slettede " +"opgaver via e-post:" + +#: config/prefs.php.dist:36 +msgid "Choose if you want to be notified of new, edited, and deleted tasks." +msgstr "" +"Vælg hvorvidt du ønsker at blive informeret om nye, ændrede eller slettede " +"opgaver." + +#: config/prefs.php.dist:29 +msgid "Choose your default task list." +msgstr "Vælg den standard opgaveliste." + +#: templates/search/search.inc:34 +msgid "Clear Form" +msgstr "Slet formular" + +#: templates/task/task.inc:94 +msgid "Co_mpleted?" +msgstr "Afsluttet?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Afsluttet" + +#: templates/list/task_summaries.inc:5 lib/Block/summary.php:145 +#, php-format +msgid "Complete \"%s\"" +msgstr "Afslut \"%s\"" + +#: templates/view/task.inc:48 +msgid "Complete Task" +msgstr "Afslut opgave" + +#: config/prefs.php.dist:145 +msgid "Complete tasks" +msgstr "Afsluttede opgaver" + +#: lib/Nag.php:400 lib/Block/summary.php:143 +msgid "Completed" +msgstr "Afsluttet" + +#: task.php:302 +#, php-format +msgid "Completed %s." +msgstr "Afsluttet %s." + +#: templates/view/task.inc:45 templates/list/task_headers.inc:43 +#: config/prefs.php.dist:72 config/prefs.php.dist:87 +msgid "Completed?" +msgstr "Afsluttet?" + +#: data.php:55 +msgid "Completion Status" +msgstr "Status for afslutning" + +#: lib/api.php:228 +#, php-format +msgid "Connection failed: %s" +msgstr "Forbindelse fejlede: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Opret" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Oprettet" + +#: templates/task/task.inc:76 lib/Nag.php:432 +msgid "Day(s)" +msgstr "Dag(e)" + +#: config/prefs.php.dist:28 +msgid "Default Task List" +msgstr "Standard opgaveliste" + +#: templates/view/task.inc:16 templates/tasklists/tasklists.inc:100 +msgid "Delete" +msgstr "Slet" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Godkend sletning" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Opførsel af slette-knap" + +#: templates/task/task.inc:116 +msgid "Delete this task" +msgstr "Slet denne opgave" + +#: task.php:273 +#, php-format +msgid "Deleted %s." +msgstr "%s slettet." + +#: config/prefs.php.dist:99 +msgid "Descending" +msgstr "Faldende" + +#: data.php:51 +msgid "Description" +msgstr "Beskrivelse" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Beskrivelse:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Indstillinger for visning" + +#: config/prefs.php.dist:109 +msgid "Do you want to confirm deleting entries?" +msgstr "Vil du godkende sletning af poster?" + +#: data.php:53 templates/view/task.inc:29 +msgid "Due By" +msgstr "Afsluttet den" + +#: config/prefs.php.dist:71 config/prefs.php.dist:86 +msgid "Due Date" +msgstr "Afslutningsdato" + +#: templates/task/task.inc:45 +msgid "Due _By" +msgstr "Forfalder den" + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Rediger" + +#: templates/list/task_summaries.inc:20 lib/Block/summary.php:140 +#, php-format +msgid "Edit \"%s\"" +msgstr "Redigér \"%s\"" + +#: templates/list/task_headers.inc:54 +msgid "Edit Task" +msgstr "Redigér opgave" + +#: templates/list/task_headers.inc:70 +msgid "Edit categories and colors" +msgstr "Redigér kategorier og farver" + +#: templates/view/task.inc:41 templates/task/task.inc:88 +msgid "Estimated Time" +msgstr "Anslået tid" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Eksportér" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Eksportér opgaver" + +#: config/prefs.php.dist:47 +msgid "External Data" +msgstr "Eksterne data" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 +msgid "General Options" +msgstr "Grundlæggende indstillinger" + +#: templates/task/task.inc:75 lib/Nag.php:435 +msgid "Hour(s)" +msgstr "Time(r)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importér opgaver, trin %d" + +#: data.php:181 +msgid "Import/Export Tasks" +msgstr "Importér/eksportér opgaver" + +#: list.php:88 +msgid "Incom_plete tasks" +msgstr "Uafsluttede opgaver" + +#: config/prefs.php.dist:144 +msgid "Incomplete tasks" +msgstr "Uafsluttede opgaver" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Sidst ændret" + +#: lib/api.php:85 +msgid "Maximum Number of Tasks" +msgstr "Maksimalt antal opgaver" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menu alarmer" + +#: templates/task/task.inc:74 lib/Nag.php:438 +msgid "Minute(s)" +msgstr "Minut(ter)" + +#: task.php:128 +msgid "Modifying:" +msgstr "Ændring:" + +#: lib/api.php:643 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Multiple iCalendar komponenter fundet; der er kun understøttelse for én " +"vTodo." + +#: list.php:39 +msgid "My Tasks" +msgstr "Mine opgaver" + +#: templates/task/task.inc:17 templates/search/search.inc:25 +msgid "N_ame" +msgstr "Navn" + +#: templates/list/task_headers.inc:57 +msgid "Na_me" +msgstr "Navn" + +#: data.php:50 +msgid "Name" +msgstr "Navn" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Ny opgave" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Næste" + +#: config/prefs.php.dist:118 +msgid "No" +msgstr "Nej" + +#: templates/task/task.inc:48 +msgid "No due date." +msgstr "Ingen afslutningsdato." + +#: lib/api.php:390 lib/api.php:636 +msgid "No iCalendar data was found." +msgstr "Ingen iCalendar-data fundet." + +#: lib/Nag.php:551 +msgid "No task lists are available to guests." +msgstr "Ingen opgavelister tilgængelige til gæster." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Ingen opgaver at vise." + +#: templates/task/task.inc:70 lib/Nag.php:442 +msgid "None" +msgstr "Ingen" + +#: lib/Nag.php:401 +msgid "Not Completed" +msgstr "Ikke afsluttet" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Ikke fundet" + +#: config/prefs.php.dist:35 +msgid "Notifications" +msgstr "Påmindelser" + +#: config/prefs.php.dist:120 +msgid "On all shown tasklists" +msgstr "På alle viste opgavelister" + +#: config/prefs.php.dist:121 +msgid "On all tasklists I have read access to" +msgstr "Jeg har læseadgang til alle opgavelisters" + +#: config/prefs.php.dist:119 +msgid "On my tasklists only" +msgstr "Kun på mine egne opgavelister" + +#: templates/list/task_headers.inc:51 +msgid "P_ri" +msgstr "Pri" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Tilladelse" + +#: lib/api.php:368 lib/api.php:507 lib/api.php:587 lib/api.php:618 +msgid "Permission Denied" +msgstr "Tilladelse nægtet" + +#: lib/api.php:109 +msgid "Permission denied" +msgstr "Tilladelse nægtet" + +#: data.php:54 templates/view/task.inc:37 config/prefs.php.dist:68 +#: config/prefs.php.dist:83 +msgid "Priority" +msgstr "Prioritet" + +#: templates/view/task.inc:16 +msgid "Really delete this task?" +msgstr "Slet denne opgave uigenkaldeligt?" + +#: templates/list/header.inc:5 +msgid "Refresh List" +msgstr "Opdater liste" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Nulstil" + +#: templates/task/task.inc:108 +msgid "Save" +msgstr "Gem" + +#: task.php:248 +#, php-format +msgid "Saved %s." +msgstr "%s gemt." + +#: search.php:14 templates/search/search.inc:6 templates/search/search.inc:33 +msgid "Search" +msgstr "Søg" + +#: list.php:62 +msgid "Search Results" +msgstr "Resultat for søgning" + +#: templates/search/search.inc:22 +msgid "Search Scope" +msgstr "Medtag i søgning" + +#: templates/search/search.inc:14 +msgid "Search _Text" +msgstr "Søg tekst" + +#: templates/task/task.inc:56 +msgid "Select a date" +msgstr "Vælg en dato" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Vælg en opgaveliste" + +#: templates/menu.inc:8 +msgid "Select tasklists to display:" +msgstr "Vælg de opgavelister, der skal vises:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Vælg formatet, der skal eksporteres i:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Vælg den fil, der skal importeres:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Vælg formatet af oprindelsesfilen:" + +#: config/prefs.php.dist:59 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Skal opgavelisten vises i sin egen kolonne i liste-visning?" + +#: lib/Block/summary.php:36 +msgid "Show action buttons?" +msgstr "Vis handlingsknapper?" + +#: config/prefs.php.dist:146 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Vis afsluttede, uafsluttede eller alle opgaver i opgavelisten?" + +#: config/prefs.php.dist:133 +msgid "Show data from any of these other applications in your task list?" +msgstr "Vis data fra alle disse andre applikationer i din opgaveliste?" + +#: config/prefs.php.dist:48 +msgid "Show data from other applications or sources." +msgstr "Vis data fra andre applikationer eller kilder." + +#: lib/Block/summary.php:39 +msgid "Show due dates?" +msgstr "Vis forfaldsdatoer?" + +#: lib/Block/summary.php:33 +msgid "Show priorities?" +msgstr "Vis prioriteter?" + +#: lib/Block/summary.php:45 +msgid "Show task alarms?" +msgstr "Vis opgave-alarmer?" + +#: lib/Block/summary.php:48 +msgid "Show task category?" +msgstr "Vis opgave-kategorier?" + +#: lib/Block/summary.php:42 +msgid "Show tasklist name?" +msgstr "Vis opgaveliste-navn?" + +#: lib/Block/summary.php:57 +msgid "Show tasks from these categories" +msgstr "Vis opgaver fra disse kategorier" + +#: templates/list/task_headers.inc:65 +msgid "Sort by Category" +msgstr "Sorter efter kategori" + +#: templates/list/task_headers.inc:43 +msgid "Sort by Completion Status" +msgstr "Sorter efter status for afslutning" + +#: templates/list/task_headers.inc:62 +msgid "Sort by Due Date" +msgstr "Sorter efter afslutningsdato" + +#: templates/list/task_headers.inc:57 +msgid "Sort by Name" +msgstr "Sorter efter navn" + +#: templates/list/task_headers.inc:51 +msgid "Sort by Priority" +msgstr "Sorter efter prioritet" + +#: templates/list/task_headers.inc:47 +msgid "Sort by User Name" +msgstr "Sorter efter brugernavn" + +#: config/prefs.php.dist:100 +msgid "Sort direction:" +msgstr "Sorteringsretning:" + +#: config/prefs.php.dist:74 +msgid "Sort tasks by:" +msgstr "Sortér opgaver efter:" + +#: templates/list/task_summaries.inc:28 +msgid "Task Alarm" +msgstr "Opgave-alarm" + +#: templates/list/task_headers.inc:60 +msgid "Task Alarm?" +msgstr "Opgave-alarm?" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Opgaver" + +#: config/prefs.php.dist:27 config/prefs.php.dist:34 config/prefs.php.dist:46 +msgid "Task List and Share Options" +msgstr "Indstillinger for opgavelister og delinger" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Opgavelistes navn:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Opgavelister" + +#: config/prefs.php.dist:69 config/prefs.php.dist:84 +msgid "Task Name" +msgstr "Navn af opgave" + +#: templates/list/task_summaries.inc:26 +msgid "Task Note" +msgstr "Notat til opgave" + +#: templates/list/task_headers.inc:59 +msgid "Task Note?" +msgstr "Notat til opgave?" + +#: lib/Nag.php:576 +msgid "Task added:" +msgstr "Opgaver tilføjet:" + +#: lib/Nag.php:586 +msgid "Task deleted:" +msgstr "Opgave slettet:" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Opgavelister skal have et navn." + +#: lib/Nag.php:581 +msgid "Task modified:" +msgstr "Opgave ændret:" + +#: task.php:130 view.php:43 +msgid "Task not found." +msgstr "Opgave ikke fundet." + +#: config/prefs.php.dist:73 config/prefs.php.dist:88 +msgid "Tasklist" +msgstr "Opgaveliste" + +#: lib/api.php:697 +msgid "Tasks" +msgstr "Opgaver" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Opgave-oversigt" + +#: lib/Driver.php:55 +msgid "The Tasks backend is not currently available." +msgstr "Opgave-backenden er ikke tilgængelig." + +#: lib/Driver.php:278 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Opgave-backenden er ikke tilgængelig: %s" + +#: task.php:181 +msgid "The alarm field may only contain integers." +msgstr "Alarm-feltet må kun indeholde heltal." + +#: lib/Nag.php:577 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Opgaven \"%s\" er tilføjet opgavelisten \"%s\" med %s som forfaldsdato." + +#: lib/Nag.php:587 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"Opgaven \"%s\" er slettet fra opgavelisten \"%s\" med %s som forfaldsdato." + +#: lib/Nag.php:582 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Opgaven \"%s\" er blevet ændret på opgavelisten \"%s\" med %s som " +"forfaldsdato." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Opgavelisten \"%s\" kunne ikke oprettes: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Opgavelisten \"%s\" kunne ikke lagres: %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Opgavelisten \"%s\" oprettet." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Opgavelisten \"%s\" slettet." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Opgavelisten \"%s\" lagret." + +#: config/prefs.php.dist:89 +msgid "Then:" +msgstr "Så:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Der er ingen opgaver, som passer til det nuværende kriterium." + +#: task.php:299 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Der opstod en fejl under afslutning af %s: %s" + +#: task.php:270 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Der opstod en fejl under sletningen af %s: %s" + +#: task.php:246 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Der opstod en fejl under lagringen af opgaven: %s." + +#: data.php:172 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Der opstod en fejl under importeringen af data: %s" + +#: lib/api.php:384 lib/api.php:630 +msgid "There was an error importing the iCalendar data." +msgstr "Der opstod en fejl under importeringen af iCalendar data." + +#: data.php:77 +msgid "There were no tasks to export." +msgstr "Der var ingen opgaver at eksportere." + +#: data.php:121 +msgid "This file format is not supported." +msgstr "Dette filformat er ikke understøttet." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Kan ikke slette \"%s\": %s" + +#: lib/Driver.php:281 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Kan ikke indlæse definitionen af %s." + +#: templates/task/task.inc:109 +msgid "Undo changes" +msgstr "Fortryd ændringer" + +#: templates/view/task.inc:26 templates/list/task_summaries.inc:33 +#: scripts/upgrades/2004-05-13_convert_categories_to_strings.php:50 +#: lib/Nag.php:793 lib/Nag.php:794 lib/Nag.php:808 lib/Nag.php:809 +#: lib/Block/summary.php:30 lib/Block/summary.php:179 +msgid "Unfiled" +msgstr "Ikke anbragt" + +#: lib/api.php:462 lib/api.php:551 lib/api.php:660 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Ikke-understøttet Content-Type: %s" + +#: templates/task/task.inc:77 lib/Nag.php:429 +msgid "Week(s)" +msgstr "Uge(r)" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Hvilken opgaveliste skal opgaver føjes til?" + +#: data.php:39 data.php:140 task.php:31 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Du har ikke tilladelse til at oprette mere en %d opgaver." + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Du har ikke tilladelse til at se denne opgaveliste." + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Du skal vælge en opgaveliste, der skal slettes." + +#: lib/Nag.php:577 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Du har anmodet om at blive underrettet, når opgaver bliver føjet til dine " +"opgavelister." + +#: lib/Nag.php:587 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Du har anmodet om at bliver underrettet, når opgaver bliver slettet fra dine " +"opgavelister." + +#: lib/Nag.php:582 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Du har anmodet om at bliver underrettet, når opgaver ændres på dine " +"opgavelister." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Din standard opgaveliste:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Dine opgavelister:" + +#: templates/list/task_summaries.inc:25 lib/Block/summary.php:86 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[ingen]" + +#: list.php:87 +msgid "_All tasks" +msgstr "Alle opgaver" + +#: templates/task/task.inc:41 templates/search/search.inc:27 +msgid "_Category" +msgstr "Kategori" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "Afsluttet" + +#: list.php:89 +msgid "_Completed tasks" +msgstr "Afsluttede opgaver" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "Slet" + +#: templates/task/task.inc:100 templates/search/search.inc:26 +msgid "_Description" +msgstr "Beskrivelse" + +#: templates/list/task_headers.inc:62 +msgid "_Due Date" +msgstr "Forfaldsdato" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "Redigér" + +#: lib/Nag.php:501 +msgid "_Import/Export" +msgstr "Import/Eksport" + +#: lib/Nag.php:486 +msgid "_List Tasks" +msgstr "List opgaver" + +#: lib/Nag.php:496 +msgid "_My Tasklists" +msgstr "Mine opgavelister" + +#: lib/Nag.php:491 +msgid "_New Task" +msgstr "Ny opgave" + +#: lib/Nag.php:506 +msgid "_Print" +msgstr "Udskriv" + +#: templates/task/task.inc:82 +msgid "_Priority" +msgstr "Prioritet" + +#: lib/Nag.php:493 +msgid "_Search" +msgstr "Søg" + +#: templates/task/task.inc:26 templates/list/task_headers.inc:47 +msgid "_Task List" +msgstr "Opgaveliste" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "ingen tid" + +#: data.php:94 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:106 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/de_DE.po b/nag/po/de_DE.po new file mode 100644 index 000000000..a26046977 --- /dev/null +++ b/nag/po/de_DE.po @@ -0,0 +1,1436 @@ +# German translations for Nag. +# Copyright 2001-2009 The Horde Project. +# This file is distributed under the same license as the Nag package. +# Jan Schneider , 2001-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 3.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-08-01 10:44+0200\n" +"PO-Revision-Date: 2008-08-01 16:34+0200\n" +"Last-Translator: Jan Schneider \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: templates/view/task.inc:39 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s inklusive Unteraufgaben)" + +#: lib/Nag.php:76 +#, php-format +msgid "%d hour" +msgstr "%d Stunde" + +#: lib/Nag.php:78 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d Stunde, %d Minute" + +#: lib/Nag.php:80 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d Stunde, %d Minuten" + +#: lib/Nag.php:68 +#, php-format +msgid "%d hours" +msgstr "%d Stunden" + +#: lib/Nag.php:70 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d Stunden, %d Minute" + +#: lib/Nag.php:72 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d Stunden, %d Minuten" + +#: lib/Nag.php:86 +#, php-format +msgid "%d minute" +msgstr "%d Minute" + +#: lib/Nag.php:88 +#, php-format +msgid "%d minutes" +msgstr "%d Minuten" + +#: lib/Nag.php:398 +#, php-format +msgid "%s at %s" +msgstr "%s um %s" + +#: lib/Nag.php:658 lib/Block/tree_alarms.php:41 lib/Block/summary.php:124 +#, php-format +msgid "%s is due in %s" +msgstr "%s ist in %s fällig" + +#: lib/Nag.php:656 lib/Block/tree_alarms.php:43 lib/Block/summary.php:121 +#, php-format +msgid "%s is due now." +msgstr "%s ist fällig." + +#: task.php:222 +#, php-format +msgid "%s is now incomplete." +msgstr "%s ist jetzt unerledigt." + +#: data.php:218 +#, php-format +msgid "%s successfully imported" +msgstr "Die %s-Datei wurde erfolgreich importiert" + +#: lib/Nag.php:584 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Aufgabenliste von %s" + +#: lib/Nag.php:349 lib/Forms/task.php:84 +msgid "(highest)" +msgstr "(Höchste)" + +#: lib/Nag.php:349 lib/Forms/task.php:85 +msgid "(lowest)" +msgstr "(Niedrigste)" + +#: task.php:206 +#, php-format +msgid "Access denied completing task %s." +msgstr "Zugriff verweigert beim Erledigen von Aufgabe %s." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Zugriff verweigert beim Löschen der Aufgabe." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Zugriff verweigert beim Bearbeiten der Aufgabe." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Zugriff verweigert beim Bearbeiten der Aufgabe: %s" + +#: lib/Driver.php:347 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Zugriff verweigert beim Verschieben von Aufgabe %s." + +#: lib/Driver.php:350 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Zugriff verweigert beim Entfernen der Aufgabe von %s." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Zugriff verweigert beim Löschen von Aufgabe %s." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Zugriff verweigert beim Speichern der Aufgabe: %s" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:115 +msgid "Alarm" +msgstr "Alarm" + +#: templates/data/export.inc:34 config/prefs.php.dist:208 +msgid "All tasks" +msgstr "Alle Aufgaben" + +#: lib/Block/summary.php:76 +msgid "Always show completed and future tasks?" +msgstr "Erledigte und zukünftige Aufgaben immer anzeigen?" + +#: lib/Block/summary.php:72 +msgid "Always show overdue tasks?" +msgstr "Überfällige Aufgaben immer anzeigen?" + +#: config/prefs.php.dist:125 +msgid "Ascending" +msgstr "Aufsteigend" + +#: data.php:55 templates/view/task.inc:12 templates/list/task_headers.inc:56 +#: lib/Forms/task.php:110 config/prefs.php.dist:71 config/prefs.php.dist:98 +#: config/prefs.php.dist:114 +msgid "Assignee" +msgstr "Zuständiger" + +#: lib/Block/summary.php:44 +msgid "Block title" +msgstr "Blocktitel" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Kalender" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Abbrechen" + +#: templates/list/task_headers.inc:60 +msgid "Cat_egory" +msgstr "_Kategorie" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:102 +#: lib/Forms/task.php:107 config/prefs.php.dist:73 config/prefs.php.dist:95 +#: config/prefs.php.dist:111 +msgid "Category" +msgstr "Kategorie" + +#: templates/tasklist_list.php:33 tasklists/index.php:56 +msgid "Change Permissions" +msgstr "Rechte Ändern" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Ändern Sie die Sortierreihenfolge und andere Anzeigeeinstellungen." + +#: lib/Nag.php:860 +#, php-format +msgid "Changed alarm from %s to %s" +msgstr "Alarm von %s zu %s geändert" + +#: lib/Nag.php:839 +#, php-format +msgid "Changed assignee from \"%s\" to \"%s\"" +msgstr "Zuständigkeit von \"%s\" zu \"%s\" geändert" + +#: lib/Nag.php:823 +#, php-format +msgid "Changed category from \"%s\" to \"%s\"" +msgstr "Kategorie von \"%s\" zu \"%s\" geändert" + +#: lib/Nag.php:875 +#, php-format +msgid "Changed completion from %s to %s" +msgstr "Status von %s zu %s geändert" + +#: lib/Nag.php:880 +msgid "Changed description" +msgstr "Beschreibung geändert" + +#: lib/Nag.php:848 +#, php-format +msgid "Changed due date from %s to %s" +msgstr "Fälligkeitsdatum von %s zu %s geändert" + +#: lib/Nag.php:870 +#, php-format +msgid "Changed estimate from %s to %s" +msgstr "Geschätzte Zeit von %s zu %s geändert" + +#: lib/Nag.php:800 +#, php-format +msgid "Changed name from \"%s\" to \"%s\"" +msgstr "Betreff von \"%s\" zu \"%s\" geändert" + +#: lib/Nag.php:815 +#, php-format +msgid "Changed parent task from \"%s\" to \"%s\"" +msgstr "Überaufgabe von \"%s\" zu \"%s\" geändert" + +#: lib/Nag.php:865 +#, php-format +msgid "Changed priority from %s to %s" +msgstr "Priorität von %s zu %s geändert" + +#: lib/Nag.php:854 +#, php-format +msgid "Changed start date from %s to %s" +msgstr "Startdatum von %s zu %s geändert" + +#: lib/Nag.php:806 +#, php-format +msgid "Changed task list from \"%s\" to \"%s\"" +msgstr "Aufgabenliste von \"%s\" zu \"%s\" geändert" + +#: lib/Nag.php:797 +msgid "Changes made for this task:" +msgstr "Vorgenommene Änderungen:" + +#: config/prefs.php.dist:187 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "" +"Legen Sie fest, wie Sie über Aufgaben mit Alarmen benachrichtigt werden " +"möchten:" + +#: config/prefs.php.dist:178 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Legen Sie fest, ob Sie per Email über neue, geänderte oder gelöschte " +"Aufgaben benachrichtigt werden möchten:" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Legen Sie fest, ob Sie über Aufgabenänderungen und Aufgabenalarme " +"benachrichtigt werden möchten." + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "Wählen Sie Ihre Standard-Aufgabenliste aus." + +#: templates/tasklist_list.php:29 templates/tasklist_list.php:30 +msgid "Click or copy this URL to display this task list" +msgstr "" +"Kopieren Sie diese Adresse in Ihren Browser oder klicken Sie darauf, um " +"diese Aufgabenliste anzuzeigen" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Schließen" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Suche schließen" + +#: view.php:114 +msgid "Complete" +msgstr "Erledigen" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:192 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" erledigen" + +#: templates/view/task.inc:46 +msgid "Complete Task" +msgstr "Aufgabe erledigen" + +#: config/prefs.php.dist:210 +msgid "Complete tasks" +msgstr "Erledigte Aufgaben" + +#: lib/Nag.php:413 lib/Block/summary.php:190 +msgid "Completed" +msgstr "Erledigt" + +#: task.php:220 +#, php-format +msgid "Completed %s." +msgstr "%s erledigt." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Erledigte Aufgaben" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "" +"Überaufgabe ist bereits erledigt, markieren Sie diese erst als unerledigt" + +#: templates/data/export.inc:37 +msgid "Completed tasks" +msgstr "Erledigte Aufgaben" + +#: templates/view/task.inc:42 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:121 config/prefs.php.dist:97 config/prefs.php.dist:113 +msgid "Completed?" +msgstr "Erledigt?" + +#: data.php:63 +msgid "Completion Date" +msgstr "Erledigungsdatum" + +#: data.php:62 +msgid "Completion Status" +msgstr "Fortschritt" + +#: lib/api.php:504 lib/api.php:753 +#, php-format +msgid "Connection failed: %s" +msgstr "Verbindung fehlgeschlagen: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Erstellen" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Aufgabenliste erstellen" + +#: templates/tasklist_list.php:9 +msgid "Create a new Task List" +msgstr "Neue Aufgabenliste erstellen" + +#: templates/view/task.inc:61 +msgid "Created" +msgstr "Erstellt" + +#: lib/Recurrence.php:199 +msgid "Daily" +msgstr "Täglich" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Tag" + +#: lib/Nag.php:445 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Tag(e)" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "Standard-Aufgabenliste" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "Standardeinstellungen für neue Aufgaben" + +#: lib/Forms/task.php:114 +msgid "Delay Start Until" +msgstr "Start verzögern bis" + +#: view.php:121 templates/tasklist_list.php:35 tasklists/index.php:57 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Löschen" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "%s löschen" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Löschbestätigung" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Verhalten beim Löschen." + +#: task.php:112 lib/Forms/task.php:126 lib/Forms/task.php:153 +msgid "Delete this task" +msgstr "Diese Aufgabe löschen" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "%s gelöscht." + +#: lib/api.php:735 +msgid "Deleting entire tasklists is not supported." +msgstr "Das Löschen ganzer Aufgabenlisten wird nicht unterstützt." + +#: config/prefs.php.dist:126 +msgid "Descending" +msgstr "Absteigend" + +#: data.php:53 lib/Forms/task.php:122 +msgid "Description" +msgstr "Beschreibung" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Anzeige-Einstellungen" + +#: templates/tasklist_list.php:18 +msgid "Display URL" +msgstr "Anzeige-Adresse" + +#: config/prefs.php.dist:136 +msgid "Do you want to confirm deleting entries?" +msgstr "Möchten Sie das Löschen von Einträgen bestätigen?" + +#: data.php:56 templates/view/task.inc:26 lib/Forms/task.php:113 +msgid "Due By" +msgstr "Fällig am" + +#: config/prefs.php.dist:72 config/prefs.php.dist:96 config/prefs.php.dist:112 +msgid "Due Date" +msgstr "Fälligkeitsdatum" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Fälligkeitsdatum angegeben." + +#: view.php:117 templates/tasklist_list.php:31 tasklists/index.php:55 +msgid "Edit" +msgstr "Bearbeiten" + +#: templates/list/task_summaries.inc:39 lib/Block/summary.php:182 +#, php-format +msgid "Edit \"%s\"" +msgstr "\"%s\" bearbeiten" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "%s bearbeiten" + +#: templates/list/task_headers.inc:43 +msgid "Edit Task" +msgstr "Aufgabe bearbeiten" + +#: templates/list/task_headers.inc:65 +msgid "Edit categories and colors" +msgstr "Kategorien und Farben bearbeiten" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Bearbeiten: %s" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Fehler beim Löschen der Aufgabe: %s" + +#: data.php:61 templates/view/task.inc:38 lib/Forms/task.php:120 +msgid "Estimated Time" +msgstr "Geschätzte Zeit" + +#: templates/data/export.inc:41 +msgid "Export" +msgstr "Exportieren" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Aufgaben exportieren" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "Externe Daten" + +#: templates/data/export.inc:36 +msgid "Future tasks" +msgstr "Zukünftige Aufgaben" + +#: config/prefs.php.dist:12 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "Allgemeine Einstellungen" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Stunde" + +#: lib/Nag.php:448 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Stunde(n)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Aufgaben importieren, Schritt %d" + +#: data.php:224 +msgid "Import/Export Tasks" +msgstr "Aufgaben Import/Export" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "_Unerledigte Aufgaben" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Unerledigte Aufgaben" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Unerledigte Unteraufgaben, erledigen Sie diese erst" + +#: templates/data/export.inc:35 config/prefs.php.dist:209 +msgid "Incomplete tasks" +msgstr "Unerledigte Aufgaben" + +#: lib/api.php:432 +msgid "Invalid tasklist file requested." +msgstr "Ungültige Aufgabenliste angegeben." + +#: lib/api.php:571 +msgid "Invalid tasklist name supplied." +msgstr "Ungültige Aufgabenliste angegeben." + +#: lib/api.php:448 +msgid "Invalid tasklist requested." +msgstr "Ungültige Aufgabenliste angegeben." + +#: templates/view/task.inc:68 +msgid "Last Modified" +msgstr "Letzte Änderung" + +#: templates/tasklist_list.php:2 tasklists/index.php:61 +msgid "Manage Task Lists" +msgstr "Aufgabenlisten-Verwaltung" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "\"%s\" als unerledigt markieren" + +#: templates/view/task.inc:48 +msgid "Mark as incomplete" +msgstr "Als unerledigt markieren" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Maximale Anzahl an Aufgaben" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menüalarm" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menüliste" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minute" + +#: lib/Nag.php:451 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minute(n)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Monat" + +#: lib/Recurrence.php:202 +msgid "Monthly" +msgstr "Monatlich" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Weitere Optionen..." + +#: lib/api.php:1213 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Mehrere iCalendar-Komponenten gefunden; nur ein vTodo wird unterstützt." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Meine Aufgabenlisten:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Meine Aufgaben" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "Na_me" + +#: templates/list/task_headers.inc:46 +msgid "Na_me" +msgstr "Na_me" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: Aufgabe %s nicht gefunden" + +#: data.php:52 lib/Forms/task.php:91 +msgid "Name" +msgstr "Name" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Neue Aufgabe" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Weiter" + +#: config/prefs.php.dist:174 +msgid "No" +msgstr "Nein" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Keine Verzögerung" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Kein Fälligkeitsdatum" + +#: lib/api.php:602 lib/api.php:949 lib/api.php:1007 lib/api.php:1206 +msgid "No iCalendar data was found." +msgstr "Es wurden keine iCalendar-Daten gefunden." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "Keine Überaufgabe" + +#: lib/Recurrence.php:198 +msgid "No recurrence" +msgstr "Keine Wiederholung" + +#: lib/Nag.php:673 +msgid "No task lists are available to guests." +msgstr "Es sind keine Aufgabenlisten für Gäste verfügbar." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Keine Treffer" + +#: lib/Block/summary.php:250 +msgid "No tasks to display" +msgstr "Keine Aufgaben" + +#: lib/Nag.php:455 lib/Forms/task.php:111 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Keiner" + +#: lib/Nag.php:414 +msgid "Not Completed" +msgstr "Nicht Erledigt" + +#: templates/view/task.inc:18 +msgid "Not Private" +msgstr "Nicht Privat" + +#: lib/api.php:809 +msgid "Not configured" +msgstr "Nicht konfiguriert" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: config/prefs.php.dist:176 +msgid "On all shown task lists" +msgstr "Bei allen angezeigten Aufgabenlisten" + +#: config/prefs.php.dist:177 +msgid "On all task lists I have read access to" +msgstr "Bei allen Aufgabenlisten, für die ich Leserechte habe" + +#: config/prefs.php.dist:175 +msgid "On my task lists only" +msgstr "Nur bei meinen Aufgabenlisten" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_Pri" + +#: lib/Forms/task.php:98 +msgid "Parent task" +msgstr "Überaufgabe" + +#: lib/api.php:818 lib/api.php:856 lib/api.php:889 lib/api.php:924 +#: lib/api.php:1043 lib/api.php:1093 lib/api.php:1155 lib/api.php:1190 +#: lib/api.php:1301 lib/api.php:1348 +msgid "Permission Denied" +msgstr "Zugriff verweigert" + +#: lib/api.php:256 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Zugriff verweigert" + +#: data.php:59 templates/view/task.inc:34 lib/Forms/task.php:117 +#: config/prefs.php.dist:70 config/prefs.php.dist:93 config/prefs.php.dist:109 +msgid "Priority" +msgstr "Priorität" + +#: templates/view/task.inc:18 lib/Driver.php:942 +msgid "Private" +msgstr "Privat" + +#: data.php:60 lib/Driver.php:940 +msgid "Private Task" +msgstr "Private Aufgabe" + +#: templates/view/task.inc:16 lib/Forms/task.php:112 +msgid "Private?" +msgstr "Privat?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Die Aufgabenliste \"%s\" wirklich löschen? Dieser Vorgang kann nicht " +"rückgängig gemacht werden, und alle Daten in dieser Aufgabenliste werden " +"endgültig gelöscht." + +#: view.php:121 +msgid "Really delete this task?" +msgstr "Diese Aufgabe wirklich löschen?" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:124 +#: lib/Forms/task.php:151 +msgid "Save" +msgstr "Speichern" + +#: task.php:185 +#, php-format +msgid "Saved %s." +msgstr "%s gespeichert." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Suche" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Suchen in:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Such_text:" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Nach Aufgabenlisten suchen:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Suche:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Suche: Ergebnisse für \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Datum auswählen" + +#: config/prefs.php.dist:74 +msgid "Select the columns that should be shown in the list view:" +msgstr "" +"Wählen Sie die Spalten, die in der Listenansicht angezeigt werden sollen:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Wählen Sie das Exportformat:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Wählen Sie die Datei, die importiert werden soll:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Wählen Sie das Format der importierten Datei:" + +#: templates/data/export.inc:20 +msgid "Select the task list(s) to export from:" +msgstr "Wählen Sie die Aufgabenliste(n), die exportiert werden soll(en):" + +#: templates/data/export.inc:32 +msgid "Select the task states to export:" +msgstr "Wählen Sie den Status der Aufgaben, die exportiert werden sollen:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "Gemeinsame Aufgabenlisten:" + +#: lib/Block/summary.php:52 +msgid "Show action buttons?" +msgstr "Aktionsknöpfe anzeigen?" + +#: config/prefs.php.dist:211 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Erledigte, unerledigte oder alle Aufgaben in der Aufgabenliste anzeigen?" + +#: config/prefs.php.dist:198 +msgid "Show data from any of these other applications in your task list?" +msgstr "Daten von einer dieser Anwendungen in Ihren Aufgabenlisten anzeigen?" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "Daten von anderen Anwendungen oder Quellen anzeigen." + +#: lib/Block/summary.php:56 +msgid "Show due dates?" +msgstr "Fälligkeitsdaten anzeigen?" + +#: lib/Block/summary.php:48 +msgid "Show priorities?" +msgstr "Prioritäten anzeigen?" + +#: lib/Block/summary.php:64 +msgid "Show task alarms?" +msgstr "Aufgabenalarme anzeigen?" + +#: lib/Block/summary.php:68 +msgid "Show task category?" +msgstr "Aufgabenkategorie anzeigen?" + +#: config/prefs.php.dist:84 +msgid "Show task list options panel?" +msgstr "Kasten mit Aufgabenlisteninstellungen anzeigen?" + +#: lib/Block/summary.php:60 +msgid "Show tasklist name?" +msgstr "Aufgabenlistennamen anzeigen?" + +#: lib/Block/summary.php:85 +msgid "Show tasks from these categories" +msgstr "Aufgaben dieser Kategorien anzeigen" + +#: lib/Block/summary.php:80 +msgid "Show tasks from these tasklists" +msgstr "Aufgaben dieser Listen anzeigen" + +#: templates/list/task_headers.inc:56 +msgid "Sort by Assignee" +msgstr "Sortieren nach Zuständigem" + +#: templates/list/task_headers.inc:60 +msgid "Sort by Category" +msgstr "Sortieren nach Kategorie" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Sortieren nach Fortschritt" + +#: templates/list/task_headers.inc:52 +msgid "Sort by Due Date" +msgstr "Sortieren nach Fälligkeitsdatum" + +#: templates/list/task_headers.inc:46 +msgid "Sort by Name" +msgstr "Sortieren nach Betreff" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Sortieren nach Priorität" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Sortieren nach Benutzername" + +#: config/prefs.php.dist:127 +msgid "Sort direction:" +msgstr "Sortierrichtung:" + +#: config/prefs.php.dist:100 +msgid "Sort tasks by:" +msgstr "Aufgaben sortieren nach:" + +#: data.php:58 +msgid "Start" +msgstr "Beginn" + +#: templates/view/task.inc:22 +msgid "Start Date" +msgstr "Startdatum" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Startdatum angegeben." + +#: templates/tasklist_list.php:19 +msgid "Subscription URL" +msgstr "Abonnement-Adresse" + +#: templates/list/task_summaries.inc:61 +msgid "Task Alarm" +msgstr "Aufgabenalarm" + +#: templates/list/task_headers.inc:49 +msgid "Task Alarm?" +msgstr "Aufgabenalarm?" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "Standardvorgaben" + +#: lib/Driver/sql.php:100 +msgid "Task ID not found" +msgstr "Aufgaben-ID nicht gefunden" + +#: templates/tasklist_list.php:17 lib/Forms/task.php:94 +#: config/prefs.php.dist:69 config/prefs.php.dist:99 config/prefs.php.dist:115 +msgid "Task List" +msgstr "Aufgabenliste" + +#: lib/Forms/EditTaskList.php:44 lib/Forms/CreateTaskList.php:37 +msgid "Task List Description" +msgstr "Aufgabenlistenbeschreibung" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Informationen über Aufgabenliste" + +#: templates/tasklist_list.php:14 +msgid "Task List List" +msgstr "Aufgabenlistenübersicht" + +#: lib/Forms/EditTaskList.php:43 lib/Forms/CreateTaskList.php:36 +msgid "Task List Name" +msgstr "Aufgabenlistenname" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "Aufgabenliste- und Rechte-Einstellungen" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Diese Aufgabenliste gehört %s." + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Aufgabenlisten" + +#: config/prefs.php.dist:94 config/prefs.php.dist:110 +msgid "Task Name" +msgstr "Betreff" + +#: templates/list/task_summaries.inc:59 +msgid "Task Note" +msgstr "Bemerkung" + +#: templates/list/task_headers.inc:48 +msgid "Task Note?" +msgstr "Bemerkung?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Aufgabensuche" + +#: lib/Driver/sql.php:136 +msgid "Task UID not found" +msgstr "Aufgaben-UID nicht gefunden." + +#: lib/Nag.php:781 +msgid "Task added:" +msgstr "Neue Aufgabe:" + +#: lib/Nag.php:885 +msgid "Task deleted:" +msgstr "Aufgabe gelöscht:" + +#: lib/Nag.php:903 +msgid "Task description:" +msgstr "Aufgabenbeschreibung:" + +#: lib/Nag.php:790 +msgid "Task modified:" +msgstr "Aufgabe geändert:" + +#: task.php:95 view.php:43 +msgid "Task not found." +msgstr "Aufgabe nicht gefunden." + +#: lib/api.php:747 +msgid "Tasklist does not exist or no permission to delete" +msgstr "Die Aufgabenliste existiert nicht oder keine Berechtigung zu löschen." + +#: lib/api.php:577 +msgid "Tasklist does not exist or no permission to edit" +msgstr "Die Aufgabenliste existiert nicht oder keine Berechtigung zum Ändern." + +#: lib/api.php:1270 +msgid "Tasks" +msgstr "Aufgaben" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Aufgabenübersicht" + +#: lib/api.php:394 +#, php-format +msgid "Tasks from %s" +msgstr "Aufgaben aus %s" + +#: data.php:212 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Die %s-Datei enthielt keine Aufgaben." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Der Aufgabenserver ist zur Zeit nicht verfügbar." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Der Aufgabenserver ist zur Zeit nicht verfügbar: %s" + +#: lib/Forms/task.php:184 +msgid "The alarm value must not be empty." +msgstr "Der Alarmwert darf nicht leer sein." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Die aktuelle Uhrzeit" + +#: lib/Nag.php:784 +#, php-format +msgid "" +"The task \"%s\" has been added to task list \"%s\", with a due date of: %s." +msgstr "" +"Die Aufgabe \"%s\", die am %3$s fällig ist, wurde zur Aufgabenliste \"%2$s\" " +"hinzugefügt." + +#: lib/Nag.php:889 +#, php-format +msgid "The task \"%s\" has been deleted from task list \"%s\"." +msgstr "Die Aufgabe \"%s\" wurde aus der Aufgabenliste \"%s\" gelöscht." + +#: lib/Nag.php:793 +#, php-format +msgid "The task \"%s\" has been edited on task list \"%s\"." +msgstr "Die Aufgabe \"%s\" wurde in der Aufgabenliste \"%s\" geändert." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Die Aufgabenliste \"%s\" wurde erstellt." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Die Aufgabenliste \"%s\" wurde gelöscht." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "Die Aufgabenliste \"%s\" wurde nach \"%s\" umbenannt." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Die Aufgabenliste \"%s\" wurde gespeichert." + +#: config/prefs.php.dist:116 +msgid "Then:" +msgstr "Dann:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Es gibt keine Aufgaben, die den Suchkriterien entsprechen." + +#: task.php:216 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Beim Erledigen von %s ist ein Problem aufgetreten: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Beim Löschen von %s ist ein Problem aufgetreten: %s" + +#: task.php:183 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Beim Speichern der Aufgabe ist ein Fehler aufgetreten: %s." + +#: data.php:215 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Beim Importieren der Daten ist ein Fehler aufgetreten: %s" + +#: lib/api.php:594 lib/api.php:941 lib/api.php:1200 +msgid "There was an error importing the iCalendar data." +msgstr "Beim Importieren der iCalendar Daten ist ein Fehler aufgetreten." + +#: lib/api.php:206 +#, php-format +msgid "There was an error removing tasks for %s. Details have been logged." +msgstr "" +"Beim Löschen der Aufgaben von %s ist ein Fehler aufgetreten. Details wurden " +"protokolliert." + +#: data.php:94 +msgid "There were no tasks to export." +msgstr "Es konnten keine Aufgaben zum Exportieren gefunden werden." + +#: data.php:143 +msgid "This file format is not supported." +msgstr "Dieses Dateiformat wird nicht unterstützt." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Diese Aufgabenliste kann nicht gelöscht werden." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Um diese Aufgabenliste mit einem anderen Programm zu abonnieren, verwenden " +"Sie die folgende Adresse:" + +#: lib/Nag.php:844 +msgid "Turned privacy off" +msgstr "Als privat markiert" + +#: lib/Nag.php:844 +msgid "Turned privacy on" +msgstr "Nicht mehr als privat markiert" + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "\"%s\" kann nicht gelöscht werden: %s" + +#: lib/api.php:768 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Die Aufgabenliste \"%s\" kann nicht gelöscht werden: %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Der %s-Treiber konnte nicht geladen werden." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Die Aufgabenliste \"%s\" kann nicht gespeichert werden: %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:72 +#: lib/Nag.php:1071 lib/Nag.php:1072 lib/Nag.php:1086 lib/Nag.php:1087 +#: lib/Forms/task.php:107 lib/Block/summary.php:35 lib/Block/summary.php:243 +msgid "Unfiled" +msgstr "Nicht zugeordnet" + +#: data.php:64 +msgid "Unique ID" +msgstr "Eindeutige ID" + +#: lib/api.php:701 lib/api.php:1014 lib/api.php:1068 lib/api.php:1117 +#: lib/api.php:1238 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Nicht unterstützer Inhaltstyp: %s" + +#: lib/Driver.php:1119 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Dies ist eine Erinnerung an diese fällige Aufgabe.\n" +"\n" +"%s\n" +"\n" +"Datum: %s\n" +"Zeit: %s\n" +"\n" +"%s" + +#: lib/Nag.php:442 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Woche(n)" + +#: lib/Recurrence.php:200 +msgid "Weekly" +msgstr "Wöchentlich" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Zur welcher Zeit sollen Aufgaben standardmäßig fällig sein?" + +#: config/prefs.php.dist:154 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Wieviele Tage in der Zukunft soll das Fälligkeitsdatum von neuen Aufgaben " +"standardmäßig liegen (0 bedeutet heute)?" + +#: config/prefs.php.dist:145 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Soll eine neue Aufgabe standardmäßig ein Fälligkeitsdatum haben?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Zu welcher Aufgabenliste sollen die Aufgaben hinzugefügt werden?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Jahr" + +#: lib/Recurrence.php:205 +msgid "Yearly" +msgstr "Jährlich" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Sie dürfen diese Aufgabenliste nicht ändern." + +#: data.php:41 data.php:168 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Sie dürfen nicht an mehr als %d Aufgaben erstellen." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Sie dürfen diese Aufgabenliste nicht löschen." + +#: lib/api.php:143 +msgid "You are not allowed to remove user data." +msgstr "Sie dürfen keine Benutzerdaten löschen." + +#: view.php:54 +msgid "You do not have permission to view this tasklist." +msgstr "Sie haben nicht genügend Rechte, um diese Aufgabenliste anzuzeigen." + +#: lib/Nag.php:782 +msgid "You requested to be notified when tasks are added to your task lists." +msgstr "" +"Sie wollten benachrichtigt werden, wenn Aufgaben zu Ihren Aufgabenlisten " +"hinzugefügt werden." + +#: lib/Nag.php:887 +msgid "" +"You requested to be notified when tasks are deleted from your task lists." +msgstr "" +"Sie wollten benachrichtigt werden, wenn Aufgaben aus Ihren Aufgabenlisten " +"gelöscht werden." + +#: lib/Nag.php:791 +msgid "You requested to be notified when tasks are edited on your task lists." +msgstr "" +"Sie wollten benachrichtigt werden, wenn Aufgaben in Ihren Aufgabenlisten " +"geändert werden." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Ihre Standard-Aufgabenliste:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Aufgabenlisten verwalten]" + +#: templates/list/task_summaries.inc:49 lib/Block/summary.php:118 +#: lib/Block/summary.php:226 +msgid "[none]" +msgstr "[keine]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Alle Aufgaben" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Alle Aufgaben" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Kategorie" + +#: view.php:114 +msgid "_Complete" +msgstr "E_rledigen" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "E_rledigte Aufgaben" + +#: view.php:121 +msgid "_Delete" +msgstr "Lös_chen" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "Besch_reibung" + +#: templates/list/task_headers.inc:52 +msgid "_Due Date" +msgstr "_Fälligkeitsdatum" + +#: view.php:117 +msgid "_Edit" +msgstr "_Bearbeiten" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_Zukünftige Aufgaben" + +#: lib/Nag.php:621 +msgid "_Import/Export" +msgstr "_Import/Export" + +#: lib/Nag.php:608 +msgid "_List Tasks" +msgstr "Aufgaben_liste" + +#: lib/Nag.php:613 +msgid "_New Task" +msgstr "_Neue Aufgabe" + +#: lib/Nag.php:626 +msgid "_Print" +msgstr "_Drucken" + +#: lib/Nag.php:617 +msgid "_Search" +msgstr "_Suche" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Aufga_benliste" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: view.php:75 view.php:84 +#, php-format +msgid "by %s" +msgstr "durch %s" + +#: view.php:77 view.php:86 +msgid "by me" +msgstr "durch mich" + +#: lib/Nag.php:876 lib/Nag.php:877 +msgid "completed" +msgstr "erledigt" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "in %s" + +#: lib/Nag.php:849 lib/Nag.php:850 lib/Nag.php:901 +msgid "no due date" +msgstr "keins" + +#: lib/Nag.php:816 lib/Nag.php:817 +msgid "no parent" +msgstr "keine" + +#: lib/Nag.php:855 lib/Nag.php:856 +msgid "no start date" +msgstr "keins" + +#: lib/Nag.php:84 +msgid "no time" +msgstr "keine Zeit" + +#: lib/Nag.php:876 lib/Nag.php:877 +msgid "not completed" +msgstr "nicht erledigt" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:114 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "aufgaben.csv" + +#: data.php:128 +msgid "tasks.ics" +msgstr "aufgaben.ics" diff --git a/nag/po/el_GR.po b/nag/po/el_GR.po new file mode 100644 index 000000000..63d5be8be --- /dev/null +++ b/nag/po/el_GR.po @@ -0,0 +1,1055 @@ +# Nag Greek translation +# Copyright 2002 Stefanos I. Dimitriou. +# Stefanos I. Dimitriou , 2002. +# Silligardos Xristoforos, 2002. +# Anagnostopoulos Apostolis, 2002. +# Milosis C. Konstantinos, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag: 1.1-cvs\n" +"POT-Creation-Date: 2002-11-07 12:15+0200\n" +"PO-Revision-Date: 2002-11-12 12:15+0200\n" +"Last-Translator: Konstantinos C. Milosis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-7\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: lib/Nag.php:39 +msgid "%d hour" +msgstr "%d þñá" + +#: lib/Nag.php:41 +msgid "%d hour, %d minute" +msgstr "%d þñá, %d ëåðôü" + +#: lib/Nag.php:43 +msgid "%d hour, %d minutes" +msgstr "%d þñá, %d ëåðôÜ" + +#: lib/Nag.php:31 +msgid "%d hours" +msgstr "%d þñåò" + +msgid "%d hours, %d minute" +msgstr "%d þñåò, %d ëåðôü" + +#: lib/Nag.php:35 +msgid "%d hours, %d minutes" +msgstr "%d þñåò, %d ëåðôÜ" + +#: lib/Nag.php:49 +msgid "%d minute" +msgstr "%d ëåðôü" + +#: lib/Nag.php:51 +msgid "%d minutes" +msgstr "%d ëåðôÜ" + +# StundeStundenn, c-format +msgid "%d tasks" +msgstr "%d åñãáóßåò" + +#: lib/Nag.php:322 +msgid "%s at %s" +msgstr "%s óå %s" + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:127 +#, c-format +msgid "%s file successfully imported" +msgstr "Ôï áñ÷åßï %s åéóÞ÷èçêå åðéôõ÷þò" + +#: lib/Nag.php:443 lib/Block/summary.php:92 +msgid "%s is due in %s" +msgstr "%s ëÞãåé óå %s" + +#: lib/Nag.php:441 lib/Block/summary.php:90 +msgid "%s is due now." +msgstr "%s ëÞãåé ôþñá." + +#: data.php:140 +msgid "%s successfully imported" +msgstr "%s åéóÞ÷èç åðéôõ÷þò" + +#: tasklists.php:100 lib/base.php:101 +msgid "%s's Task List" +msgstr "Ëßóôá åñãáóéþí ôïõ %s" + +#: lib/Nag.php:280 +msgid "(highest)" +msgstr "(Õøçëüôáôï)" + +#: lib/Nag.php:280 +msgid "(lowest)" +msgstr "(×áìçëüôáôï)" + +msgid "1 task" +msgstr "1 åñãáóßá" + +#: task.php:258 +msgid "Access denied completing task %s." +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôçí ïëïêëÞñùóç ôçò åñãáóßáò %s." + +#: task.php:232 +msgid "Access denied deleting %s." +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôçí äéáãñáöÞ ôçò åñãáóßáò %s." + +#: /home/httpd/html/horde_cvs/po/../nag/task.php:207 +#, c-format +msgid "Access denied deleteing task: %s" +msgstr "Áñíçóç ðñüóâáóçò êáôÜ ôç äéáãñáöÞ ôçò åñãáóßáò: %s" + +#: /home/httpd/html/horde_cvs/po/../nag/task.php:236 +#, c-format +msgid "Access denied modifying task: %s" +msgstr "Áñíçóç ðñüóâáóçò êáôÜ ôç ìåôáâïëÞ ôçò åñãáóßáò: %s" + +#: task.php:198 +msgid "Access denied moving the task to %s." +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôçí ìåôáöïñÜ ôçò åñãáóßáò %s." + +#: task.php:201 +msgid "Access denied removing task from %s." +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôç äéáãñáöÞ åñãáóßáò áðü ôïí %s." + +#: task.php:133 +msgid "Access denied saving task to %s." +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôçí áðïèÞêåõóç åñãáóßáò óôïí %s." + +#: task.php:131 +msgid "Access denied saving task: %s" +msgstr "Ðñüóâáóç áðïññßöèçêå êáôÜ ôçí áðïèÞêåõóç åñãáóßáò: %s." + +msgid "Adding A New Task" +msgstr "ÐñïóèÞêç ìßáò ÍÝáò Åñãáóßáò" + +#: templates/task/task.inc:68 +msgid "Ala_rm" +msgstr "Óõíáãåñìüò" + +#: templates/view/task.inc:37 +msgid "Alarm" +msgstr "Óõíáãåñìüò" + +#: config/prefs.php.dist:98 +msgid "All tasks" +msgstr "Ïëåò ïé åñãáóßåò" + +msgid "Allows categories to be added/removed/renamed." +msgstr "Åðåîåñãáóßá ôùí êáôçãïñéþí Äçìéïõñãßá/ÄéáãñáöÞ/Ìåôïíïìáóßá." + +#: lib/Block/summary.php:55 +msgid "Always show completed tasks?" +msgstr "Íá åìöáíßæïíôáé ðÜíôá ïé ïëïêëçñùìÝíåò åñãáóßåò;" + +#: lib/Block/summary.php:52 +msgid "Always show overdue tasks?" +msgstr "Íá åìöáíßæïíôáé ðÜíôá ïé ëçîéðñüèåóìåò åñãáóßåò;" + +# /home/httpd/html/horde_cvs/po/../nag/templates/prefs/category_management.inc 41 +#: /home/httpd/html/horde_cvs/po/../nag/templates/prefs/category_management.inc +msgid "Any tasks in a category that is deleted will become %s." +msgstr "¼ëåò ïé åñãáóßåò ìéáò êáôçãïñßáò ðïõ äéáãñÜöåôå èá ãßíïõí %s." + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "Åßóôå óßãïõñïé üôé èÝëåôå íá äéáãñÜøåôå ÌÏÍÉÌÁ áõôÝò ôéò åñãáóßåò;" + +msgid "Ascending" +msgstr "Áýîïõóá" + +msgid "Back to Task List" +msgstr "ÅðéóôñïöÞ óôç ëßóôá ìå ôéò åñãáóßåò" + +msgid "Category Management" +msgstr "Äéá÷åßñéóç Êáôçãïñéþí" + +#: templates/task/task.inc:57 +msgid "Calendar" +msgstr "Çìåñïëüãéï" + +#: templates/list/task_headers.inc:30 +msgid "Cat_egory" +msgstr "Êáôçãïñßá" + +msgid "Category" +msgstr "Êáôçãïñßá" + +msgid "Change" +msgstr "ÁëëáãÞ" + +#: templates/list/task_headers.inc:4 templates/list/task_headers.inc:8 +#: templates/list/task_headers.inc:12 templates/list/task_headers.inc:19 +#: templates/list/task_headers.inc:25 templates/list/task_headers.inc:29 +msgid "Change sort direction" +msgstr "ÁëëáãÞ êáôåýèõíóçò Ôáîéíüìçóçò" + +msgid "Change your task sorting and display options." +msgstr "ÁëëáãÞ ôçò ôáîéíüìçóçò êáé ôùí åðéëïãþí åìöÜíéóçò." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "ÁëëÜ÷ôçêáí óå %d åñãáóßåò ç ðñïôåñáéüôçôá óå %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "ÁëëÜ÷ôçêå ìßá åñãáóßá óå ðñïôåñáéüôçôá %d." + +msgid "Choose Action:" +msgstr "ÅðéëÝîôå ÅíÝñãåéá:" + +#: config/prefs.php.dist:22 +msgid "Choose your default task list." +msgstr "ÅðéëÝîôå ôçí ðñïêáèïñéóìÝíç óáò ëßóôá åñãáóéþí." + +msgid "Clear Form" +msgstr "Êáèáñéóìüò Öüñìáò" + +#: templates/task/task.inc:89 +msgid "Co_mpleted?" +msgstr "Ïëïêëçñþèçêå;" + +#: templates/view/task.inc:13 +msgid "Complete" +msgstr "ÏëïêëÞñùóç" + +msgid "Complete Task" +msgstr "ÏëïêëÞñùóç Åñãáóßáò" + +msgid "Complete Tasks" +msgstr "ÏëïêëÞñùóç Åñãáóéþí" + +msgid "Completed %s." +msgstr "Ïëïêëçñþèçêå %s." + +msgid "Completed?" +msgstr "Ïëïêëçñþèçêå;" + +msgid "Completion Status" +msgstr "ÊáôÜóôáóç ðñïüäïõ åñãáóßáò" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Äçìéïõñãßá" + +#: templates/view/task.inc:51 +msgid "Created" +msgstr "ÄçìéïõñãÞèçêå" + +msgid "Create New Category" +msgstr "Äçìéïõñãßá ÍÝáò Êáôçãïñßáò" + +#: templates/task/task.inc:77 lib/Nag.php:368 +msgid "Day(s)" +msgstr "ÇìÝñá(åò)" + +#: config/prefs.php.dist:21 +msgid "Default Task List" +msgstr "ÐñïêáèïñéóìÝíç Ëßóôá Åñãáóéþí" + +msgid "Default sorting criteria:" +msgstr "ÐñïåðéëåãìÝíï êñéôÞñéï ôáîéíüìçóçò:" + +msgid "Default sorting direction:" +msgstr "ÐñïåðéëåãìÝíç êáôåýèõíóç ôáîéíüìçóçò:" + +msgid "Delete Task" +msgstr "ÄéáãñáöÞ Åñãáóßáò" + +msgid "Delete Tasks" +msgstr "ÄéáãñáöÞ Åñãáóéþí" + +msgid "Delete" +msgstr "ÄéáãñáöÞ" + +#: task.php:240 +msgid "Deleted %s." +msgstr "ÄéáãñÜöçêå %s." + +#, c-format +msgid "Deleted %d tasks." +msgstr "ÄéáãñÜöçêáí %d åñãáóßåò." + +msgid "Deleted 1 task." +msgstr "ÄéáãñÜöçêå 1 åñãáóßá." + +msgid "Descending" +msgstr "Öèßíïõóá" + +msgid "Description" +msgstr "ÐåñéãñáöÞ" + +msgid "Description:" +msgstr "ÐåñéãñáöÞ:" + +msgid "Display Options" +msgstr "ÅðéëïãÝò ÅìöÜíéóçò" + +msgid "Due By" +msgstr "ËÞîç" + +msgid "Due Date" +msgstr "Çìåñïìçíßá ËÞîçò" + +msgid "Edit" +msgstr "Åðåîåñãáóßá" + +msgid "Edit Task" +msgstr "Åðåîåñãáóßá Åñãáóßáò" + +#: /home/httpd/html/horde_cvs/po/../nag/config/prefs.php.dist:121 +msgid "Edit your task lists." +msgstr "Åðåîåñãáóßá ôçò ëßóôáò åñãáóéþí óáò." + +#: templates/data/export.inc:22 +msgid "Export" +msgstr "ÅîáãùãÞ" + +#: templates/data/export.inc:8 +msgid "Export Tasks" +msgstr "ÅîáãùãÞ Åñãáóéþí" + +#: config/prefs.php.dist:33 +msgid "External Data" +msgstr "ÅîùôåñéêÜ ÄåäïìÝíá" + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:158 +msgid "Flags" +msgstr "'Óçìáßåò' óÞìáíóçò (flags)" + +#: config/prefs.php.dist:13 +msgid "General Options" +msgstr "ÃåíéêÝò ÅðéëïãÝò" + +msgid "Help" +msgstr "ÂïÞèåéá" + +#: templates/task/task.inc:76 lib/Nag.php:371 +msgid "Hour(s)" +msgstr "Ùñá(åò)" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/data/import.inc:19 +msgid "If importing CSV data: does the first row contain the field names?" +msgstr "" +"Áí åéóÜãåôå CSV äåäïìÝíá: ÐåñéÝ÷åé ç ðñþôç ãñáììÞ ôá ïíüìáôá ôùí ðåäßùí;" + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:136 +msgid "Illegal or malformed form data." +msgstr "ÌÞ Ýãêõñá Þ ìç óùóôÞò ìïñöÞò äåäïìÝíá." + +#: /home/httpd/html/horde_cvs/po/../nag/templates/data/import.inc:7 +msgid "Import Tasks" +msgstr "ÅéóáãùãÞ Åñãáóéþí" + +#: templates/data/import.inc:9 +msgid "Import Tasks, Step %d" +msgstr "ÅéóáãùãÞ Åñãáóéþí, ÂÞìá %d" + +msgid "Import/Export" +msgstr "ÅéóáãùãÞ/ÅîáãùãÞ" + +#: data.php:146 +msgid "Import/Export Tasks" +msgstr "ÅéóáãùãÞ/ÅîáãùãÞ Åñãáóéþí" + +#: list.php:77 +msgid "Incom_plete tasks" +msgstr "ÁíïëïêëÞñùôåò åñãáóßåò" + +#: config/prefs.php.dist:99 +msgid "Incomplete tasks" +msgstr "ÁíïëïêëÞñùôåò åñãáóßåò" + +msgid "Language" +msgstr "Ãëþóóá" + +#: templates/view/task.inc:58 +msgid "Last Modified" +msgstr "Ôåëåõôáßá ôñïðïðïßçóç" + +msgid "List Tasks" +msgstr "Ëßóôá Åñãáóéþí" + +#: /home/httpd/html/horde_cvs/po/../nag/config/prefs.php.dist:22 +msgid "Manage multiple task lists." +msgstr "Äéá÷åßñéóç ðïëëáðëþí ëéóôþí åñãáóéþí." + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Óçìåéþèçêáí %d åñãáóßåò ùò ïëïêëçñùìÝíåò." + +msgid "Marked 1 task as completed." +msgstr "Óçìåéþèçêå 1 åñãáóßá ùò ïëïêëçñùìÝíç." + +msgid "Marked task as completed." +msgstr "Óçìåßùóç åñãáóßáò ùò ïëïêëçñùìÝíçò." + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/members/manage.inc:36 +msgid "Member's Permission:" +msgstr "ÅîïõóéïäïôÞóåéò Ìåëþí:" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/members/manage.inc:25 +msgid "Member's email address:" +msgstr "email äéåýèõíóç Ìåëþí:" + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/members.php:111 +msgid "Members List" +msgstr "Ëßóôá Ìåëþí" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/members/manage.inc:6 +msgid "Members List for Task List" +msgstr "Ëßóôá Ìåëþí ãéá Ëßóôá Åñãáóéþí" + +#: templates/task/task.inc:75 lib/Nag.php:374 +msgid "Minute(s)" +msgstr "Ëåðôü(á)" + +msgid "Modify Task" +msgstr "Åðåîåñãáóßá Åñãáóßáò" + +msgid "Modifying:" +msgstr "Åðåîåñãáóßá:" + +#: /home/httpd/html/horde_cvs/po/../nag/lib/base.php:97 +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/prefs.php:108 +msgid "My Task List" +msgstr "Ç Ëßóôá Åñãáóéþí ìïõ" + +#: list.php:40 +msgid "My Tasks" +msgstr "Ïé Åñãáóßåò ìïõ" + +msgid "Nag is not properly configured" +msgstr "Ôï ðñüãñáììá Nag äåí Ý÷åé ñõèìéóôåß óùóôÜ" + +#: templates/search/search.inc:21 templates/task/task.inc:12 +msgid "N_ame" +msgstr "Ïíïìá" + +#: templates/list/task_headers.inc:20 +msgid "Na_me" +msgstr "Ïíïìá" + +msgid "Name" +msgstr "¼íïìá" + +msgid "New Category" +msgstr "ÍÝá Êáôçãïñßá" + +msgid "New Task" +msgstr "ÍÝá Åñãáóßá" + +msgid "Next" +msgstr "Åðüìåíï" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Äåí Ý÷ïõí ñõèìéóôåß ïé ðëçñïöïñßåò ãéá ôéò åñãáóßåò óôçí SQL." + +msgid "No due date." +msgstr "×ùñßò Çìåñïìçíßá ËÞîçò" + +#: lib/Nag.php:457 +msgid "No task lists are available to guests." +msgstr "Äåí õðÜñ÷åé äéáèÝóéìç ëßóôá åñãáóéþí ãéá öéëïîåíïõìåíïõò (guests)." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Äåí õðÜñ÷ïõí åñãáóßåò ãéá åìöÜíéóç" + +msgid "No tasks were changed." +msgstr "Êáìßá åñãáóßá äåí ôñïðïðïéÞèçêå." + +msgid "No tasks were deleted." +msgstr "Êáìßá åñãáóßá äåí äéáãñÜöçêå." + +msgid "No" +msgstr "¼÷é" + +#: templates/task/task.inc:71 lib/Nag.php:378 +msgid "None" +msgstr "ÊáíÝíá" + +#: lib/Nag.php:338 +msgid "Not Completed" +msgstr "Äåí Ïëïêëçñþèçêå" + +msgid "None specified" +msgstr "Äåí Ðñïóäéïñßóôçêå ÊáíÝíá" + +msgid "Options" +msgstr "ÅðéëïãÝò" + +msgid "Other Options" +msgstr "Áëëåò ÅðéëïãÝò" + +#: config/prefs.php.dist:50 config/prefs.php.dist:65 +msgid "Owner" +msgstr "ÉäéïêôÞôçò" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Rechte" + +#: lib/api.php:254 lib/api.php:339 lib/api.php:410 lib/api.php:441 +msgid "Permission Denied" +msgstr "Áñíçóç Ðñüóâáóçò" + +#: lib/api.php:86 +msgid "Permission denied" +msgstr "Áñíçóç Ðñüóâáóçò" + +msgid "Please enter a name for the new category:" +msgstr "Ðáñáêáëþ äþóôå Ýíá ôï üíïìá ãéá ôçí íÝá Êáôçãïñßá:" + +msgid "Please enter a new name for this category:" +msgstr "Ðáñáêáëþ äþóôå Ýíá íÝï üíïìá ãéá áõôÞ ôçí Êáôçãïñßá:" + +msgid "Please enter the task priority (1-5):" +msgstr "Äþóôå ôçí Ðñïôåñáéüôçôá ôçò Åñãáóßáò (1-5):" + +#: templates/list/task_headers.inc:13 +msgid "P_ri" +msgstr "Ðñïô" + +msgid "Pri" +msgstr "Ðñïô" + +msgid "Print" +msgstr "Åêôýðùóç" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "" +"Ïé ðñïôåñáéüôçôåò ðñÝðåé íá åßíáé ìåôáîý ôïõ 1 êáé ôïõ 5. Ðáñáêáëþ äþóôå ìßá " +"Ýãêõñç ôéìÞ:" + +msgid "Priority" +msgstr "Ðñïôåñáéüôçôá" + +msgid "Problem?" +msgstr "Ðñüâëçìá;" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/members/manage.inc:42 +msgid "Read" +msgstr "ÁíÜãíùóç" + +msgid "Refresh List" +msgstr "ÁíáíÝùóç Ëßóôáò" + +msgid "Rename" +msgstr "Ìåôïíïìáóßá" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "Ç áðáéôïýìåíç âÜóç äåäïìÝíùí äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "Ôï áðáéôïýìåíï 'hostspec' äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "Ôï áðáéôïýìåíï 'password' äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "Ôï áðáéôïýìåíï 'phptype' äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "Ôï áðáéôïýìåíï 'table' äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "Ôï áðáéôïýìåíï 'username' äåí Ý÷åé êáèïñéóôåß ãéá ôéò åñãáóßåò." + +msgid "Reset" +msgstr "ÅðáíáöïñÜ" + +msgid "Save Task" +msgstr "ÁðïèÞêåõóç Åñãáóßáò" + +#: task.php:215 +msgid "Saved %s." +msgstr "Áðïèçêåýèõêå %s." + +msgid "Search Results" +msgstr "ÁðïôÝëåóìáôá ÁíáæÞôçóçò" + +#: templates/search/search.inc:10 +msgid "Search _Text" +msgstr "ÁíáæÞôçóç ÊåéìÝíïõ" + +msgid "Search Scope" +msgstr "Åõñïò ÁíáæÞôçóçò" + +msgid "Search Text" +msgstr "Êåßìåíï ðïõ èá áíáæçôçèåß" + +msgid "Search" +msgstr "ÁíáæÞôçóç" + +msgid "Select Category" +msgstr "ÅðéëïãÞ Êáôçãïñßáò" + +#: templates/task/task.inc:57 +msgid "Select a date" +msgstr "ÅðéëÝîôå çìåñïìçíßá" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "ÅðéëÝîôå ìéá ëßóôá åñãáóéþí" + +#: templates/data/export.inc:15 +msgid "Select the export format:" +msgstr "ÅðéëÝîôå ôç ìïñöÞ åîáãùãÞò:" + +#: templates/data/import.inc:40 +msgid "Select the file to import:" +msgstr "ÅðéëÝîôå ôï áñ÷åßï ãéá åéóáãùãÞ:" + +#: templates/data/import.inc:16 +msgid "Select the format of the source file:" +msgstr "ÅðéëÝîôå ôç ìïñöÞ ôïõ åéóáãþìåíïõ áñ÷åßïõ:" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/data/import.inc:14 +msgid "Select the source to import from:" +msgstr "ÅðéëÝîôå ôï áñ÷åßï áðü ôï ïðïßï èá ãßíåé ç åéóáãùãÞ:" + +msgid "Select your preferred language:" +msgstr "ÅðéëïãÞ ôçò ðñïôéìïýìåíçò ãëþóóáò" + +msgid "Selected?" +msgstr "ÅðéëåãìÝíï;" + +msgid "Set Task Priority" +msgstr "Êáèïñéóìüò Ðñïôåñáéüôçôáò Åñãáóßáò" + +msgid "Set the your preferred display language." +msgstr "Êáèïñßóôå ôçí ðñïôéìïýìåíç ãëþóóá åìöÜíéóçò." + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/manage.inc:36 +msgid "Shared" +msgstr "Êïéíü÷ñçóôï" + +msgid "Show" +msgstr "ÅìöÜíéóç" + +msgid "Show:" +msgstr "ÅìöÜíéóç:" + +#: templates/menu.inc:14 +msgid "Show Tasklists:" +msgstr "ÅìöÜíéóç Ëßóôáò Åñãáóéþí:" + +#: lib/Block/summary.php:37 +msgid "Show action buttons?" +msgstr "ÅìöÜíéóç ðëÞêôñùí åíåñãåéþí;" + +#: config/prefs.php.dist:101 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "ÅìöÜíéóç ïëïêëçñùìÝíùí, áíïëïêëÞñùôùí, Þ üëùí ôùí åñãáóéþí óôç ëßóôá;" + +msgid "Show completed tasks in the task list?" +msgstr "" +"Íá åìöáíßæïíôáé ïé åñãáóßåò ðïõ Ý÷ïõí ïëïêëçñùèåß óôç ëßóôá ìå ôéò åñãáóßåò;" + +#: config/prefs.php.dist:88 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"ÅìöÜíéóç äåäïìÝíùí áðü ïðïéáäÞðïôå áðü áõôÝò ôéò åöáñìïãÝò óôç ëßóôá " +"åñãáóéþí óáò;" + +#: config/prefs.php.dist:34 +msgid "Show data from other applications or sources." +msgstr "ÅìöÜíéóç äåäïìÝíùí áðü Üëëåò åöáñìïãÝò Þ ðçãÝò." + +#: lib/Block/summary.php:40 +msgid "Show due dates?" +msgstr "ÅìöÜíéóç çìåñïìçíéþí ëÞîçò;" + +msgid "Show due dates in the summary view?" +msgstr "Íá åìöáíßæïíôáé ïé çìåñïìçíßåò ïëïêëÞñùóçò óôçí ðåñßëçøç ôçò åñãáóßáò;" + +msgid "Show priorities in the summary view?" +msgstr "Íá åìöáíßæïíôáé ïé ðñïôåñáéüôçôåò óôçí ðåñßëçøç ôçò åñãáóßáò;" + +#: lib/Block/summary.php:34 +msgid "Show priorities?" +msgstr "ÅìöÜíéóç ðñïôåñáéïôÞôùí;" + +#: lib/Block/summary.php:46 +msgid "Show task alarms?" +msgstr "ÅìöÜíéóç óõíáãåñìþí åñãáóéþí;" + +#: lib/Block/summary.php:49 +msgid "Show task category?" +msgstr "ÅìöÜíéóç êáôçãïñßáò åñãáóßáò;" + +#: lib/Block/summary.php:43 +msgid "Show tasklist name?" +msgstr "ÅìöÜíéóç ïíüìáôïò ëßóôáò åñãáóéþí" + +#: lib/Block/summary.php:58 +msgid "Show tasks from these categories" +msgstr "ÅìöÜíéóç åñãáóéþí áõôþí ôùí êáôçãïñéþí" + +msgid "Some of Nag's configuration files are missing:" +msgstr "ÊÜðïéá áðü ôá áñ÷åßá ñõèìßóåùí ôïõ ðñïãñÜììáôïò Nag Ý÷ïõí ÷áèåß:" + +msgid "Sort Direction" +msgstr "Êáôåýèõíóç Ôáîéíüìçóçò" + +msgid "Sort by Category" +msgstr "Ôáîéíüìçóç ÊáôÜ Êáôçãïñßá" + +msgid "Sort by Completion Status" +msgstr "Ôáîéíüìçóç ÊáôÜ ÊáôÜóôáóç ÏëïêëÞñùóçò" + +msgid "Sort by Due Date" +msgstr "Ôáîéíüìçóç ÊáôÜ Çìåñïìçíßá ËÞîçò" + +msgid "Sort by Name" +msgstr "Ôáîéíüìçóç ÊáôÜ ¼íïìá" + +msgid "Sort by Priority" +msgstr "Ôáîéíüìçóç ÊáôÜ Ðñïôåñáéüôçôá" + +#: templates/list/task_headers.inc:9 +msgid "Sort by User Name" +msgstr "Ôáîéíüìçóç êáôÜ üíïìá ÷ñÞóôç" + +#: config/prefs.php.dist:77 +msgid "Sort direction:" +msgstr "Êáôåýèõíóç ôáîéíüìçóçò:" + +#: config/prefs.php.dist:51 +msgid "Sort tasks by:" +msgstr "Ôáîéíüìçóç åñãáóéþí êáôÜ:" + +#: templates/list/task_summaries.inc:22 +msgid "Task Alarm" +msgstr "Óõíáãåñìüò Åñãáóßáò" + +#: templates/list/task_headers.inc:23 +msgid "Task Alarm?" +msgstr "Óõíáãåñìüò Åñãáóßáò;" + +msgid "Task Details" +msgstr "ËåðôïìÝñåéåò Åñãáóßáò" + +msgid "Task List" +msgstr "Ëßóôá Åñãáóéþí" + +#: config/prefs.php.dist:20 config/prefs.php.dist:32 +msgid "Task List and Share Options" +msgstr "Ëßóôåò åñãáóéþí êáé ÅðéëïãÝò Äéáìïéñáóìïý" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/manage.inc:33 +msgid "Task Lists's Type:" +msgstr "Ôýðïò Ëßóôáò Åñãáóéþí:" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Ïíïìá Ëßóôáò Åñãáóéþí:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Ëßóôåò Åñãáóéþí" + +msgid "Task Name" +msgstr "¼íïìá Åñãáóßáò" + +msgid "Task Note" +msgstr "Óçìåéþóåéò Åñãáóßáò" + +msgid "Task Note?" +msgstr "Óçìåßùóç Åñãáóßáò;" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Ïé ëßóôåò Åñãáóéþí ðñÝðåé íá Ý÷ïõí üíïìá." + +#: task.php:117 view.php:43 +msgid "Task not found." +msgstr "Ç åñãáóßá äåí âñÝèçêå." + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Ðåñßëçøç Åñãáóéþí" + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:44 +#: /home/httpd/html/horde_cvs/po/../nag/data.php:77 +msgid "The data was lost." +msgstr "Ôá äåäïìÝíá ÷Üèçêáí." + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:167 +msgid "The file contained no data." +msgstr "Ôï áñ÷åßï äåí ðåñéÝ÷åé äåäïìÝíá." + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/members.php:104 +#, c-format +msgid "The member \"%s\" has been deleted." +msgstr "Ôï ìÝëïò '%s' äéáãñÜöçêå." + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/members.php:94 +#, c-format +msgid "The member \"%s\" has been saved." +msgstr "Ôï ìÝëïò '%s' áðïèçêåýèçêå." + +#: /home/httpd/html/horde_cvs/po/../nag/templates/view/no-task.inc:3 +msgid "The requested task does not exist." +msgstr "Ç åñãáóßá ðïõ æçôÞèçêå äåí õðÜñ÷åé." + +#: tasklists.php:45 +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Ç ëßóôá åñãáóéþí \"%s\" äåí ìðüñåóå íá äçìéïõñãçèåß: %s" + +#: tasklists.php:56 +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Ç ëßóôá åñãáóéþí \"%s\" äåí ìðüñåóå íá áðïèçêåõèåß: %s" + +#: tasklists.php:47 +msgid "The task list \"%s\" has been created." +msgstr "Ç ëßóôá åñãáóéþí \"%s\" äçìéïõñãÞèçêå." + +#: tasklists.php:81 +msgid "The task list \"%s\" has been deleted." +msgstr "Ç ëßóôá åñãáóéþí \"%s\" äéáãñÜöçêå." + +#: tasklists.php:58 +msgid "The task list \"%s\" has been saved." +msgstr "Ç ëßóôá åñãáóéþí \"%s\" áðïèçêåýèçêå." + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/prefs.php:50 +msgid "The task list name is empty." +msgstr "Ôï üíïìá ôçò ëßóôáò åñãáóéþí åßíáé êåíü." + +msgid "The task was saved." +msgstr "Ç åñãáóßá áðïèçêåýôçêå." + +#: config/prefs.php.dist:66 +msgid "Then:" +msgstr "Ôüôå:" + +#: templates/list/empty.inc:3 +msgid "There are no tasks matching the current criteria." +msgstr "Äåí õðÜñ÷ïõí åñãáóßåò ðïõ íá ðëçñïýí áõôÜ ôá êñéôÞñéá." + +#: task.php:264 +msgid "There was a problem completing %s: %s" +msgstr "ÕðÞñîå ðñüâëçìá êáôÜ ôçí ïëïêëÞñùóç %s: %s" + +#: task.php:237 +msgid "There was a problem deleting %s: %s" +msgstr "ÕðÞñîå ðñüâëçìá êáôÜ ôçí äéáãñáöÞ %s: %s" + +msgid "There was a problem deleting tasks." +msgstr "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôç äéáãñáöÞ ôùí åñãáóéþí." + +#: /home/httpd/html/horde_cvs/po/../nag/task.php:137 +msgid "There was a problem removing the task from %s." +msgstr "ÐáñïõóéÜóèçêå óöÜëìá êáôÜ ôç äéáãñáöÞ ôçò åñãáóßáò áðü %s." + +msgid "There was a problem saving the task." +msgstr "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áðïèÞêåõóç ôçò åñãáóßáò." + +#: task.php:213 +msgid "There was a problem saving the task: %s." +msgstr "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áðïèÞêåõóç ôçò åñãáóßáò: %s." + +msgid "There was a problem setting task completion status." +msgstr "" +"ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áëëáãÞ ôçò êáôÜóôáóçò ïëïêëÞñùóçò ôçò åñãáóßáò." + +msgid "There was a problem setting task priority." +msgstr "ÐáñïõóéÜóôçêå óöÜëìá êáôÜ ôçí áëëáãÞ ôçò ðñïôåñáéüôçôáò ôçò åñãáóßáò." + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:133 +msgid "" +"There was a problem with the file upload. The file may have been larger than " +"the maximum allowed size." +msgstr "" +"ÅðÜñ÷åé ðñüâëçìá ìå ôç öüñôùóç ôïõ áñ÷åßïõ. ÌÜëëïí ôï áñ÷åßï åßíáé " +"ìåãáëýôåñï áðü ôï ìÝãéóôï åðéôñåðüìåíï ìÝãåèïò." + +msgid "There was an error importing the data." +msgstr "ÐáñïõóéÜóèçêå óöÜëìá êáôÜ ôçí åéóáãùãÞ äåäïìÝíùí." + +#: data.php:137 +msgid "There was an error importing the data: %s" +msgstr "ÐáñïõóéÜóèçêå óöÜëìá êáôÜ ôçí åéóáãùãÞ äåäïìÝíùí: %s" + +#: /home/httpd/html/horde_cvs/po/../nag/data.php:147 +msgid "There was an error importing the uploaded file" +msgstr "ÐáñïõóéÜóèçêå óöÜëìá êáôÜ ôçí åéóáãùãÞ ôïõ öïñôùìÝíïõ áñ÷åßïõ" + +#: data.php:66 +msgid "There were no tasks to export." +msgstr "Äåí õðÜñ÷ïõí åñãáóßåò ãéá åîáãùãÞ." + +msgid "These changes can not be undone!" +msgstr "Äåí èá ìðïñåßôå íá åðáíáöÝñåôå áõôÝò ôéò áëëáãÝò!" + +msgid "This file contains preferences for Nag." +msgstr "Áõôü ôï áñ÷åßï ðåñéÝ÷åé ôéò ðñïôéìÞóåéò ãéá ôï ðñüãñáììá Nag." + +msgid "" +"This file controls the stylesheet that is used to set colors and fonts in " +"addition to or overriding Horde defaults." +msgstr "" +"Áõôü ôï áñ÷åßï ðåñéÝ÷åé ôéò ñõèìßóåéò ãéá ôá ÷ñþìáôá êáé ôéò ãñáììáôïóåéñÝò, " +"ìå ôá ïðïßá ìðïñïýí íá ðáñáêáìöèïýí ôá ðñïêáèïñéóìÝíá áðü ôï óýóôçìá." + +#: data.php:105 +msgid "This file format is not supported." +msgstr "ÁõôÞ ç ìïñöÞ áñ÷åßïõ äåí õðïóôçñßæåôáé." + +msgid "" +"This is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"Áõôü åßíáé ôï âáóéêü áñ÷åßï ñõèìßóåùí ôïõ Nag. ÐåñéÝ÷åé ôá ìïíïðÜôéá êáé ôéò " +"åðéëïãÝò ãéá ôá Nag scripts." + +#: tasklists.php:77 +msgid "Unable to delete \"%s\": %s" +msgstr "Áäýíáôç ç äéáãñáöÞ \"%s\": %s" + +msgid "Undo Changes" +msgstr "Áêýñùóç Áëëáãþí" + +msgid "Unfiled" +msgstr "Ìç ÊáôçãïñéïðïéçìÝíï" + +msgid "Unknown task" +msgstr "Áãíùóôç åñãáóßá" + +msgid "Unknown" +msgstr "Áãíùóôç" + +msgid "User Options" +msgstr "ÅðéëïãÝò ×ñÞóôç" + +msgid "View Task Details" +msgstr "ÅìöÜíéóç Ëåðôïìåñåéþí Åñãáóßáò" + +#: templates/task/task.inc:78 lib/Nag.php:365 +msgid "Week(s)" +msgstr "ÅâäïìÜäá(åò)" + +#: templates/data/import.inc:24 +msgid "Which tasklist should the tasks be added to?" +msgstr "Óå ðïéÜ ëßóôá åñãáóéþí èá ðñïóôåèïýí ïé åñãáóßåò;" + +msgid "Yes" +msgstr "Íáé" + +msgid "You are creating a new category." +msgstr "Äçìéïõñãåßôå ìßá íÝá Êáôçãïñßá." + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/prefs.php:99 +msgid "You must select a task list to be deleted." +msgstr "ÐñÝðåé íá åðéëÝîåôå ìéá ëßóôá åñãáóéþí ãéá äéáãñáöÞ." + +#: /home/httpd/html/horde_cvs/po/../nag/tasklists/members.php:106 +msgid "You must select an member to be deleted." +msgstr "ÐñÝðåé íá åðéëÝîåôå Ýíá ìÝëïò ãéá äéáãñáöÞ." + +msgid "You must select at least one task first." +msgstr "ÐñÝðåé ðñþôá íá åðéëÝîåôå ìßá åñãáóßá." + +msgid "Your Information" +msgstr "Ïé Ðëçñïöïñßåò Óáò" + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Ç ðñïêáèïñéóìÝíç óáò ëßóôá åñãáóéþí:" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/tasklists/members/manage.inc:10 +msgid "Your members:" +msgstr "Ôá ìÝëç óáò:" + +#: /home/httpd/html/horde_cvs/po/../nag/templates/list/empty.inc:2 +msgid "Your task list is empty." +msgstr "Ç ëßóôá ìå ôéò åñãáóßåò åßíáé Üäåéá." + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Ïé ëßóôåò åñãáóéþí óáò:" + +#: /home/httpd/html/horde_cvs/po/../nag/lib/Nag.php:501 +#: /home/httpd/html/horde_cvs/po/../nag/templates/task/task.inc:44 +msgid "at" +msgstr "óå" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:47 +msgid "no time" +msgstr "÷ùñßò ÷ñüíï" + +#: templates/list/task_summaries.inc:19 lib/Block/summary.php:88 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[êáíÝíá]" + +#: list.php:76 +msgid "_All tasks" +msgstr "Ïëåò ïé åñãáóßåò" + +#: templates/search/search.inc:23 templates/task/task.inc:39 +msgid "_Category" +msgstr "Êáôçãïñßá" + +#: templates/view/task.inc:13 +msgid "_Complete" +msgstr "ÏëïêëÞñùóç" + +#: list.php:78 +msgid "_Completed tasks" +msgstr "ÏëïêëçñùìÝíåò åñãáóßåò" + +#: templates/view/task.inc:18 +msgid "_Delete" +msgstr "ÄéáãñáöÞ" + +#: templates/search/search.inc:22 templates/task/task.inc:95 +msgid "_Description" +msgstr "ÐåñéãñáöÞ" + +#: templates/list/task_headers.inc:26 +msgid "_Due Date" +msgstr "Çìåñïìçíßá ÏëïêëÞñùóçò" + +#: templates/view/task.inc:15 +msgid "_Edit" +msgstr "Åðåîåñãáóßá" + +#: lib/Nag.php:407 +msgid "_Import/Export" +msgstr "ÅéóáãùãÞ/ÅîáãùãÞ" + +#: lib/Nag.php:395 +msgid "_List Tasks" +msgstr "ÅìöÜíéóç Åñãáóéþí" + +#: lib/Nag.php:402 +msgid "_My Tasklists" +msgstr "Ïé Åñãáóßåò ìïõ" + +#: lib/Nag.php:397 +msgid "_New Task" +msgstr "ÍÝá Åñãáóßá" + +#: lib/Nag.php:412 +msgid "_Print" +msgstr "Åêôýðùóç" + +#: templates/task/task.inc:83 +msgid "_Priority" +msgstr "Ðñïôåñáéüôçôá" + +#: lib/Nag.php:399 +msgid "_Search" +msgstr "ÁíáæÞôçóç" + +#: templates/task/task.inc:20 templates/list/task_headers.inc:9 +msgid "_Task List" +msgstr "Ëßóôá Åñãáóéþí" diff --git a/nag/po/es_ES.po b/nag/po/es_ES.po new file mode 100644 index 000000000..05c623bbe --- /dev/null +++ b/nag/po/es_ES.po @@ -0,0 +1,1282 @@ +# Spanish translations for nag package +# Traducciones al español para el paquete nag. +# Copyright 2008-2009 The Horde Project +# This file is distributed under the same license as the nag package. +# Automatically generated, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.2-rc3\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-05-24 09:44+0200\n" +"PO-Revision-Date: 2008-05-24 09:44+0200\n" +"Last-Translator: Manuel P. Ayala \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" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s incluyendo subtareas)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d hora" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hora, %d minuto" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hora, %d minutos" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d horas" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d horas, %d minuto" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d horas, %d minutos" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuto" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutos" + +#: lib/Nag.php:392 +#, php-format +msgid "%s at %s" +msgstr "%s a las %s" + +#: lib/Nag.php:618 lib/Block/tree_alarms.php:41 lib/Block/summary.php:121 +#, php-format +msgid "%s is due in %s" +msgstr "%s vencerá el %s" + +#: lib/Nag.php:616 lib/Block/tree_alarms.php:43 lib/Block/summary.php:118 +#, php-format +msgid "%s is due now." +msgstr "%s acaba de vencer." + +#: task.php:238 +#, php-format +msgid "%s is now incomplete." +msgstr "%s está incompleta por el momento." + +#: data.php:209 +#, php-format +msgid "%s successfully imported" +msgstr "%s se ha importado correctamente" + +#: lib/Nag.php:544 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Lista de tareas de %s" + +#: lib/Nag.php:343 lib/Forms/task.php:61 +msgid "(highest)" +msgstr "(elevada)" + +#: lib/Nag.php:343 lib/Forms/task.php:62 +msgid "(lowest)" +msgstr "(reducida)" + +#: task.php:222 +#, php-format +msgid "Access denied completing task %s." +msgstr "Se ha denegado el acceso para terminar la tarea %s." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Se ha denegado el acceso para eliminar la tarea." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Se ha denegado el acceso para modificar la tarea." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Se ha denegado el acceso para modificar la tarea: %s" + +#: task.php:170 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Se ha denegado el acceso para desplazar la tarea a %s." + +#: task.php:173 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Se ha denegado el acceso para eliminar la tarea de %s." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Se ha denegado el acceso para guardar la tarea en %s." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Se ha denegado el acceso para guardar la tarea: %s." + +#: data.php:57 templates/view/task.inc:26 lib/Forms/task.php:91 +msgid "Alarm" +msgstr "Alarma" + +#: config/.bak/prefs.php.dist:200 +msgid "All tasks" +msgstr "Todas las tareas" + +#: lib/Block/summary.php:75 +msgid "Always show completed tasks?" +msgstr "¿Mostrar siempre las tareas finalizadas?" + +#: lib/Block/summary.php:71 +msgid "Always show overdue tasks?" +msgstr "¿Mostrar siempre las tareas vencidas?" + +#: config/.bak/prefs.php.dist:117 +msgid "Ascending" +msgstr "Ascendente" + +#: data.php:55 +msgid "Assignee" +msgstr "Asignada" + +#: lib/Block/summary.php:43 +msgid "Block title" +msgstr "Título del bloque" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Agenda" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Cancelar" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "_Categoría" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:79 +#: lib/Forms/task.php:85 config/.bak/prefs.php.dist:89 +#: config/.bak/prefs.php.dist:104 +msgid "Category" +msgstr "Categoría" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +msgid "Change Permissions" +msgstr "Cambiar permisos" + +#: config/.bak/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Cambiar opciones de ordenación y visualización de tareas." + +#: config/.bak/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Elija cómo quiere recibir recordatorios de las tareas con alarmas:" + +#: config/.bak/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Elija si desea que se le notifiquen por correo las tareas nuevas, " +"modificadas o eliminadas:" + +#: config/.bak/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Elija si desea que se le notifiquen los cambios en las tareas y las alarmas " +"de tareas." + +#: config/.bak/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Elija su lista de tareas por omisión." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Pulse esta URL o cópiela para mostrar este listado de tareas" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Cerrar" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Cerrar búsqueda" + +#: view.php:112 +msgid "Complete" +msgstr "Terminar" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:191 +#, php-format +msgid "Complete \"%s\"" +msgstr "Terminar \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Terminar tarea" + +#: config/.bak/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Terminar tareas" + +#: lib/Nag.php:407 lib/Block/summary.php:189 +msgid "Completed" +msgstr "Terminado" + +#: task.php:236 +#, php-format +msgid "Completed %s." +msgstr "Se ha terminado %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Tareas terminadas" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "La tarea padre está terminada, márquela como incompleta primero" + +#: templates/list/task_headers.inc:31 templates/view/task.inc:38 +#: lib/Forms/task.php:97 config/.bak/prefs.php.dist:91 +#: config/.bak/prefs.php.dist:106 +msgid "Completed?" +msgstr "¿Terminada?" + +#: data.php:63 +msgid "Completion Date" +msgstr "Fecha de terminación" + +#: data.php:62 +msgid "Completion Status" +msgstr "Estado de terminación" + +#: lib/api.php:443 lib/api.php:704 +#, php-format +msgid "Connection failed: %s" +msgstr "Ha fallado la conexión: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Crear" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Crear lista de tareas" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Crear una Lista de tareas" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Creado" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Día" + +#: lib/Nag.php:439 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Día(s)" + +#: config/.bak/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Lista de tareas por omisión" + +#: config/.bak/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Opciones por omisión para nuevas tareas" + +#: lib/Forms/task.php:90 +msgid "Delay Start Until" +msgstr "Retrasar inicio hasta" + +#: view.php:119 tasklists/index.php:57 templates/tasklist_list.php:37 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Eliminar" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Eliminar %s" + +#: config/.bak/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Confirmación de eliminación" + +#: config/.bak/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Comportamiento del botón eliminar" + +#: task.php:112 lib/Forms/task.php:102 lib/Forms/task.php:129 +msgid "Delete this task" +msgstr "Eliminar esta tarea" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "Se ha eliminado %s." + +#: lib/api.php:686 +msgid "Deleting entire tasklists is not supported." +msgstr "La eliminación de listas de tareas completas no está soportada." + +#: config/.bak/prefs.php.dist:118 +msgid "Descending" +msgstr "Descendente" + +#: data.php:53 lib/Forms/CreateTaskList.php:37 lib/Forms/EditTaskList.php:44 +#: lib/Forms/task.php:98 +msgid "Description" +msgstr "Descripción" + +#: config/.bak/prefs.php.dist:13 +msgid "Display Options" +msgstr "Opciones de Visualización" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "URL de consulta" + +#: config/.bak/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "¿Quiere confirmar la eliminación de entradas?" + +#: data.php:56 templates/view/task.inc:22 lib/Forms/task.php:89 +msgid "Due By" +msgstr "Vence el" + +#: config/.bak/prefs.php.dist:90 config/.bak/prefs.php.dist:105 +msgid "Due Date" +msgstr "Fecha de vencimiento" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Se ha indicado una fecha de vencimiento." + +#: view.php:115 tasklists/index.php:55 templates/tasklist_list.php:33 +msgid "Edit" +msgstr "Modificar" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:182 +#, php-format +msgid "Edit \"%s\"" +msgstr "Modificar \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Modificar %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Modificar tarea" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Modificar categorías y colores" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Modificar: %s" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Error al eliminar la tarea: %s" + +#: data.php:61 templates/view/task.inc:34 lib/Forms/task.php:96 +msgid "Estimated Time" +msgstr "Duración estimada" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Exportar" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Exportar tareas" + +#: config/.bak/prefs.php.dist:56 +msgid "External Data" +msgstr "Datos externos" + +#: config/.bak/prefs.php.dist:12 config/.bak/prefs.php.dist:19 +#: config/.bak/prefs.php.dist:26 +msgid "General Options" +msgstr "Opciones generales" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Hora" + +#: lib/Nag.php:442 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Hora(s)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importar tareas. Paso %d" + +#: data.php:215 +msgid "Import/Export Tasks" +msgstr "Importar/Exportar tareas" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Tareas _pendientes" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Tareas pendientes" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Subtareas pendientes, complételas primero" + +#: config/.bak/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Tareas pendientes" + +#: lib/api.php:520 +msgid "Invalid tasklist name supplied." +msgstr "Se ha indicado un nombre de lista de tareas inválido." + +#: lib/api.php:386 +msgid "Invalid tasklist requested." +msgstr "Se ha solicitado una lista de tareas inválida." + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Última modificación" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Gestionar Listas de tareas" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Marcar \"%s\" como pendiente" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Marcar como pendiente" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Número máximo de tareas" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menú Alarmas" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Listado del menú" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minuto" + +#: lib/Nag.php:445 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minuto(s)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mes" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Más opciones..." + +#: lib/api.php:1179 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Se han encontrado varios componentes iCalendar; sólo se soporta un vTodo " +"cada vez." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Mi lista de tareas:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Mis tareas" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "_Nombre" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "_Nombre" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: No se encontró la tarea %s" + +#: data.php:52 lib/Forms/CreateTaskList.php:36 lib/Forms/EditTaskList.php:43 +#: lib/Forms/task.php:68 +msgid "Name" +msgstr "Nombre" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Añadir" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Siguiente" + +#: config/.bak/prefs.php.dist:166 +msgid "No" +msgstr "No" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Sin retraso" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Sin fecha de vencimiento." + +#: lib/api.php:553 lib/api.php:902 lib/api.php:960 lib/api.php:1172 +msgid "No iCalendar data was found." +msgstr "No se encontraron datos iCalendar." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "Sin tarea padre" + +#: lib/Nag.php:633 +msgid "No task lists are available to guests." +msgstr "No se dispone de listas de tareas para los invitados." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "No hay tareas coincidentes" + +#: lib/Block/summary.php:245 +msgid "No tasks to display" +msgstr "Sin tareas visibles" + +#: lib/Nag.php:449 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Ninguna" + +#: lib/Nag.php:408 +msgid "Not Completed" +msgstr "No está terminado" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Pública" + +#: lib/api.php:760 +msgid "Not configured" +msgstr "Sin configurar" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "No encontrada" + +#: config/.bak/prefs.php.dist:41 +msgid "Notifications" +msgstr "Notificaciones" + +#: config/.bak/prefs.php.dist:168 +msgid "On all shown task lists" +msgstr "En todas las listas de tareas mostradas" + +#: config/.bak/prefs.php.dist:169 +msgid "On all task lists I have read access to" +msgstr "En todas las listas de tareas a las que tengo acceso de lectura" + +#: config/.bak/prefs.php.dist:167 +msgid "On my task lists only" +msgstr "Sólo en mis listas de tareas" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_Prioridad" + +#: lib/Forms/task.php:75 +msgid "Parent task" +msgstr "Tarea padre" + +#: lib/api.php:769 lib/api.php:807 lib/api.php:840 lib/api.php:876 +#: lib/api.php:998 lib/api.php:1053 lib/api.php:1117 lib/api.php:1154 +#: lib/api.php:1267 lib/api.php:1314 +msgid "Permission Denied" +msgstr "Permiso denegado" + +#: lib/api.php:210 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Permiso denegado" + +#: data.php:59 templates/view/task.inc:30 lib/Forms/task.php:93 +#: config/.bak/prefs.php.dist:87 config/.bak/prefs.php.dist:102 +msgid "Priority" +msgstr "Prioridad" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Privada" + +#: data.php:60 lib/Driver.php:905 +msgid "Private Task" +msgstr "Tarea privada" + +#: templates/view/task.inc:12 lib/Forms/task.php:88 +msgid "Private?" +msgstr "¿Privada?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"¿Eliminar realmente la lista de tareas \"%s\"? Ésto no se puede deshacer y " +"todos los datos de esta lista de tareas se eliminarán definitivamente." + +#: view.php:119 +msgid "Really delete this task?" +msgstr "¿Eliminar realmente esta tarea?" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:100 +#: lib/Forms/task.php:127 +msgid "Save" +msgstr "Guardar" + +#: task.php:201 +#, php-format +msgid "Saved %s." +msgstr "Se ha guardado %s." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Buscar" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Buscar en:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "_Texto de búsqueda: " + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Listas de tareas en las que buscar:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Buscar:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Búsqueda: Resultados para \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Seleccione una fecha" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Seleccione el formato de exportación:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Seleccione el archivo a importar:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Seleccione el formato del archivo origen:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "Listas de tareas compartidas:" + +#: config/.bak/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "" +"¿Debería mostrarse la lista de tareas en su propia columna en la vista de " +"listado?" + +#: lib/Block/summary.php:51 +msgid "Show action buttons?" +msgstr "¿Mostrar botones de acción?" + +#: config/.bak/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"En la lista de tareas ¿mostrar las finalizadas, las pendientes o todas?" + +#: config/.bak/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"¿Mostrar datos de cualquiera de estas otras aplicaciones en la lista de " +"tareas?" + +#: config/.bak/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Mostrar datos de otras aplicaciones u orígenes." + +#: lib/Block/summary.php:55 +msgid "Show due dates?" +msgstr "¿Mostar fechas de vencimiento?" + +#: lib/Block/summary.php:47 +msgid "Show priorities?" +msgstr "¿Mostrar prioridades" + +#: lib/Block/summary.php:63 +msgid "Show task alarms?" +msgstr "¿Mostrar las alarmas de las tareas?" + +#: lib/Block/summary.php:67 +msgid "Show task category?" +msgstr "¿Mostrar la categoría de las tareas?" + +#: config/.bak/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "¿Mostrar panel de opciones de lista de tareas?" + +#: lib/Block/summary.php:59 +msgid "Show tasklist name?" +msgstr "¿Mostrar el nombre de la lista de tarea?" + +#: lib/Block/summary.php:84 +msgid "Show tasks from these categories" +msgstr "¿Mostrar las tareas de estas categorías?" + +#: lib/Block/summary.php:79 +msgid "Show tasks from these tasklists" +msgstr "Mostrar tareas de estas listas" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Ordenar por categoría" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Ordenar por estado de terminación" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Ordenar por fecha de vencimiento" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Ordenar por nombre" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Ordenar por prioridad" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Ordenar por nombre de usuario" + +#: config/.bak/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Sentido de clasificación:" + +#: config/.bak/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Ordenar tareas por:" + +#: data.php:58 +msgid "Start" +msgstr "Inicio" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Fecha de inicio" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Se ha indicado una fecha de inicio" + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "URL de suscripción" + +#: templates/list/task_summaries.inc:60 +msgid "Task Alarm" +msgstr "Alarma de tarea" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "¿Alarma?" + +#: config/.bak/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Opciones por omisión de la tarea" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:71 +#: config/.bak/prefs.php.dist:92 config/.bak/prefs.php.dist:107 +msgid "Task List" +msgstr "Lista de tareas" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Información de la lista de tareas" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Listado de listas de tareas" + +#: config/.bak/prefs.php.dist:33 config/.bak/prefs.php.dist:40 +#: config/.bak/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Opciones de listado y compartición de tareas" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Lista de tareas de %s." + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Listas de tareas" + +#: config/.bak/prefs.php.dist:88 config/.bak/prefs.php.dist:103 +msgid "Task Name" +msgstr "Nombre de tarea" + +#: templates/list/task_summaries.inc:58 +msgid "Task Note" +msgstr "Comentario de la tarea" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "¿Comentario?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Búsqueda de tareas" + +#: lib/Nag.php:658 +msgid "Task added:" +msgstr "Tarea añadida:" + +#: lib/Nag.php:668 +msgid "Task deleted:" +msgstr "Tarea eliminada:" + +#: lib/Nag.php:663 +msgid "Task modified:" +msgstr "Tarea modificada:" + +#: view.php:44 task.php:95 +msgid "Task not found." +msgstr "No se encontró la tarea." + +#: lib/api.php:698 +msgid "Tasklist does not exist or no permission to delete" +msgstr "La lista de tareas no existe o carece de permisos para eliminar" + +#: lib/api.php:526 +msgid "Tasklist does not exist or no permission to edit" +msgstr "La lista de tareas no existe o carece de permisos para modificar" + +#: lib/api.php:1236 +msgid "Tasks" +msgstr "Tareas" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Resumen de tareas" + +#: lib/api.php:348 +#, php-format +msgid "Tasks from %s" +msgstr "Tareas de %s" + +#: data.php:203 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "El archivo %s no contenía ninguna tarea." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "El motor de tareas no está disponible en este momento." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "El motor de tareas no está disponible en este momento: %s" + +#: lib/Forms/task.php:160 +msgid "The alarm value must not be empty." +msgstr "El valor de la alarma no puede estar en blanco." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "La hora actual" + +#: lib/Nag.php:659 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Se ha añadido la tarea \"%s\" a la lista de tareas \"%s\", con una fecha de " +"vencimiento de: %s." + +#: lib/Nag.php:669 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"Se ha eliminado la tarea \"%s\" de la lista de tareas \"%s\", con una fecha " +"de vencimiento de: %s." + +#: lib/Nag.php:664 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Se ha modificado la tarea \"%s\" de la lista de tareas \"%s\", con una fecha " +"de vencimiento de: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Se ha creado la lista de tareas \"%s\"." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Se ha eliminado la lista de tareas \"%s\"." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "La lista de tareas \"%s\" se ha renombrado como \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Se ha guardado la lista de tareas \"%s\"." + +#: config/.bak/prefs.php.dist:108 +msgid "Then:" +msgstr "Además por:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "No hay tareas coincidentes con los criterios actuales." + +#: task.php:232 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Se produjo un problema al completar %s: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Se produjo un problema al eliminar %s: %s" + +#: task.php:199 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Se produjo un problema al guardar la tarea: %s." + +#: data.php:206 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Se produjo un error al importar los datos: %s" + +#: lib/api.php:545 lib/api.php:894 lib/api.php:1166 +msgid "There was an error importing the iCalendar data." +msgstr "Se produjo un error al importar los datos iCalendar." + +#: data.php:89 +msgid "There were no tasks to export." +msgstr "No hubo tareas a exportar." + +#: data.php:135 +msgid "This file format is not supported." +msgstr "Este formato de archivo no está soportado." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Esta lista de tareas no se puede eliminar." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Para suscribirse a esta lista de tareas desde otro programa, utilice esta " +"URL: " + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Incapaz de eliminar \"%s\": %s" + +#: lib/api.php:719 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Incapaz de eliminar la lista de tareas \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Incapaz de cargar la definición de %s." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Incapaz de guardar la lista de tareas \"%s\": %s" + +#: templates/list/task_summaries.inc:65 templates/view/task.inc:9 +#: lib/Nag.php:900 lib/Nag.php:901 lib/Nag.php:915 lib/Nag.php:916 +#: lib/Forms/task.php:84 lib/Block/summary.php:34 lib/Block/summary.php:238 +msgid "Unfiled" +msgstr "Sin categoría" + +#: data.php:64 +msgid "Unique ID" +msgstr "ID único" + +#: lib/api.php:652 lib/api.php:967 lib/api.php:1025 lib/api.php:1079 +#: lib/api.php:1204 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Tipo de contenido no soportado: %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Querríamos recordarle el vencimiento de esta tarea.\n" +"\n" +"%s\n" +"\n" +"Fecha: %s\n" +"Hora: %s\n" +"\n" +"%s" + +#: lib/Nag.php:436 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Semana(s)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "¿Cuál quiere que sea la hora de vencimiento por omisión de las tareas?" + +#: config/.bak/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Al crear una tarea, ¿a cuántos días en el futuro debería estar la fecha de " +"vencimiento por omisión (0 significa hoy)?" + +#: config/.bak/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Al crear una tarea, ¿Debería disponer por omisión de una fecha de " +"vencimiento?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "¿A qué lista de tareas hay que añadir las tareas?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Año" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Carece de permiso para cambiar esta lista de tareas." + +#: data.php:41 data.php:160 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Carece de permiso para crear más de %d tareas." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Carece de permiso para ver eliminar esta lista de tareas." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "No dispone de privilegios para ver esta lista de tareas." + +#: lib/Nag.php:659 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "Solicitó la notificación de adición de tareas a sus listas de tareas." + +#: lib/Nag.php:669 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Solicitó la notificación de eliminación de tareas de sus listas de tareas." + +#: lib/Nag.php:664 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Solicitó la notificación de modificación de tareas de sus listas de tareas." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Su lista de tareas por omisión:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Gestionar Listas de tareas]" + +#: templates/list/task_summaries.inc:48 lib/Block/summary.php:115 +#: lib/Block/summary.php:222 +msgid "[none]" +msgstr "[ninguno]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Todas las tareas" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Todas" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Categoría" + +#: view.php:112 +msgid "_Complete" +msgstr "_Terminada" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "Tareas te_rminadas" + +#: view.php:119 +msgid "_Delete" +msgstr "_Eliminar" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Descripción" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Fecha de _vencimiento" + +#: view.php:115 +msgid "_Edit" +msgstr "Mo_dificar" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Tareas _futuras" + +#: lib/Nag.php:581 +msgid "_Import/Export" +msgstr "_Importar/Exportar" + +#: lib/Nag.php:568 +msgid "_List Tasks" +msgstr "_Listar" + +#: lib/Nag.php:573 +msgid "_New Task" +msgstr "_Añadir" + +#: lib/Nag.php:586 +msgid "_Print" +msgstr "Im_primir" + +#: lib/Nag.php:577 +msgid "_Search" +msgstr "_Buscar" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Lista de tar_eas" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: view.php:73 view.php:82 +#, php-format +msgid "by %s" +msgstr "por %s" + +#: view.php:75 view.php:84 +msgid "by me" +msgstr "por mi" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendario (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "a %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "sin límite" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:109 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tareas.csv" + +#: data.php:120 +msgid "tasks.ics" +msgstr "tareas.ics" diff --git a/nag/po/et_EE.po b/nag/po/et_EE.po new file mode 100644 index 000000000..12e1e6f24 --- /dev/null +++ b/nag/po/et_EE.po @@ -0,0 +1,1162 @@ +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.2 RC1\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-05-29 15:49+0300\n" +"PO-Revision-Date: \n" +"Last-Translator: Alar SIng \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-13\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Estonian\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "(%s koos alamtöödega)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d tund" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d tund, %d minuti" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d tund, %d minutit" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d tundi" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d tundi, %d minut" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d tundi, %d minutit" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minut" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutit" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s ajal %s" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:42 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s tähtaeg on %s" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:44 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s tähtaeg on nüüd" + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s on lõpetamata." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s edukalt imporditud" + +#: tasklists.php:106 lib/Nag.php:516 +#, php-format +msgid "%s's Task List" +msgstr "%s Tööde nimekiri" + +#: lib/Nag.php:315 lib/Forms/task.php:55 +msgid "(highest)" +msgstr "(kõrgeim)" + +#: lib/Nag.php:315 lib/Forms/task.php:56 +msgid "(lowest)" +msgstr "(madalaim)" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "%s töö lõpetamiseks õigus puudub." + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "%s kustutamiseks õigus puudub" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Töö muutmise õigus puudub." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "%s töö muutmise õigus puudub" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "%s töö liigutamise õigus puudub." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "%s töö kustutamise õigus puudub." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "%s töö salvestamise õigus puudub." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "%s töö salvestamise õigus puudub" + +#: templates/view/task.inc:26 lib/Forms/task.php:85 +msgid "Alarm" +msgstr "Teavitus" + +#: config/prefs.php.dist:201 +msgid "All tasks" +msgstr "Kõik tööd" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Alati näita lõpetatud töid?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Alati näita üle tähtaja töid?" + +#: config/prefs.php.dist:118 +msgid "Ascending" +msgstr "Kasvav" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Ploki pealkiri" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Kalender" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kat_egooria" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:73 +#: lib/Forms/task.php:79 config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Category" +msgstr "Kategooria" + +#: templates/tasklists/tasklists.inc:26 +msgid "Change" +msgstr "Muuda" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Muuda tööde sorteerimise ja vaate seadeid." + +#: config/prefs.php.dist:180 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Vali kuidas sa tahad saada meeldetuletusi töödest:" + +#: config/prefs.php.dist:171 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Vali kui soovid teavitusi mailiga uutest, muudetud ja kustutatud töödest:" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "Vali kui soovid teavitust muudetud töödest." + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "Vali oma vaikimisi tööde nimekiri." + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Sulge otsing" + +#: view.php:99 +msgid "Complete" +msgstr "Lõpeta" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:168 +#, php-format +msgid "Complete \"%s\"" +msgstr "Lõpeta \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Lõpeta töö" + +#: config/prefs.php.dist:203 +msgid "Complete tasks" +msgstr "Lõpeta tööd" + +#: lib/Nag.php:379 lib/Block/summary.php:166 +msgid "Completed" +msgstr "Lõpetatud" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "Lõpetatud %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Lõpetatud tööd" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Lõpetatud ülemtöö, märgi see ennem mittelõpetatuks" + +#: templates/list/task_headers.inc:31 templates/view/task.inc:38 +#: lib/Forms/task.php:91 config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Completed?" +msgstr "Lõpetatud?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Progress" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "Ühendus ebaõnnestus: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86 +msgid "Create" +msgstr "Loo" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Loodud" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Päev" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Päev(ad)" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "Vaike tööde nimekiri" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "Vaike väärtused uuele tööle" + +#: lib/Forms/task.php:84 +msgid "Delay Start Until" +msgstr "Viivita algusega kuni" + +#: view.php:106 templates/tasklists/tasklists.inc:87 +msgid "Delete" +msgstr "Kustuta" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Kustutamise kinnitus" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Kustuta nupu käitumine" + +#: task.php:105 lib/Forms/task.php:96 +msgid "Delete this task" +msgstr "Kustuta see töö" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "%s kustutatud." + +#: config/prefs.php.dist:119 +msgid "Descending" +msgstr "Kahanev" + +#: data.php:53 lib/Forms/task.php:92 +msgid "Description" +msgstr "Kirjeldus" + +#: templates/tasklists/tasklists.inc:75 +msgid "Description:" +msgstr "Kirjeldus:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Kuvamise seaded" + +#: config/prefs.php.dist:129 +msgid "Do you want to confirm deleting entries?" +msgstr "Kas sa tahad kinnitada kirjete kustutamist?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:83 +msgid "Due By" +msgstr "Tähtaeg" + +#: config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Due Date" +msgstr "Tähtaja kuupäev" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Tähtaeg määratud." + +#: view.php:102 +msgid "Edit" +msgstr "Muuda" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:159 +#, php-format +msgid "Edit \"%s\"" +msgstr "Muuda \"%s\"" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Muuda tööd" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Muuda kategooriaid ja värve" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "Muuda: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Viga töö: %s kustutamisel" + +#: templates/view/task.inc:34 lib/Forms/task.php:90 +msgid "Estimated Time" +msgstr "Eeldatav aeg" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Eksport" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Ekspordi tööd" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "Välised andmed" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "Üldised seaded" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Tund" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Tund(i)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Impordi Tööd, Samm %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Tööde import/eksport" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Pooleli olevad tööd" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Pooleli olevad tööd" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Pooleli olevad alamtööd, lõpeta need ennem" + +#: config/prefs.php.dist:202 +msgid "Incomplete tasks" +msgstr "Pooleli olevad tööd" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Viimati muudetud" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Märgi \"%s\" pooleli olevaks" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Märgi pooleli olevaks" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "Suurim number töid" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Teavituste menüü" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menüü" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minut" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minut(id)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Kuu" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Rohkem seadeid..." + +#: lib/api.php:986 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Mitu iCal osa leitud; ainult üks vTodo on toetatud." + +#: templates/panel.inc:38 +msgid "My Tasklists:" +msgstr "Minu Tööd:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Minu tööd" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "N_imi" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Ni_mi" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Tööd/kolab: Ei leidnud tööd: %s" + +#: data.php:52 lib/Forms/task.php:62 +msgid "Name" +msgstr "Nimi" + +#: templates/tasklists/tasklists.inc:68 +msgid "Name:" +msgstr "Nimi:" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:27 +msgid "New Task" +msgstr "Uus töö" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Järgmine" + +#: config/prefs.php.dist:167 +msgid "No" +msgstr "Ei" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Ilma viivituseta" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Ilma lõpp kuupäevata" + +#: lib/api.php:405 lib/api.php:709 lib/api.php:767 lib/api.php:979 +msgid "No iCalendar data was found." +msgstr "iCal andmeid ei leitud." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Ülemtööd puudub" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "Mitte ühtegi tööde nimekirja ei ole külalistele." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Töid ei leitud" + +#: lib/Block/summary.php:222 +msgid "No tasks to display" +msgstr "Töid ei ole" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Mitte midagi" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Pooleli" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Avalik" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Ei leitud" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "Teavitused" + +#: config/prefs.php.dist:169 +msgid "On all shown tasklists" +msgstr "Kõigil näidatavatel töödel" + +#: config/prefs.php.dist:170 +msgid "On all tasklists I have read access to" +msgstr "Kõigil töödel millel on lugemis õigus" + +#: config/prefs.php.dist:168 +msgid "On my tasklists only" +msgstr "Minu töödel" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "Pri" + +#: lib/Forms/task.php:69 +msgid "Parent task" +msgstr "Ülemtöö" + +#: templates/tasklists/tasklists.inc:71 +msgid "Permission" +msgstr "Õigused" + +#: lib/api.php:683 lib/api.php:805 lib/api.php:860 lib/api.php:924 +#: lib/api.php:961 +msgid "Permission Denied" +msgstr "Ligipääs keelatud" + +#: lib/api.php:178 +msgid "Permission denied" +msgstr "Ligipääs keelatud" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:87 +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Priority" +msgstr "Prioriteet" + +#: templates/view/task.inc:14 lib/Driver.php:902 +msgid "Private" +msgstr "Privaatne" + +#: lib/Driver.php:900 +msgid "Private Task" +msgstr "Privaatne töö" + +#: templates/view/task.inc:12 lib/Forms/task.php:82 +msgid "Private?" +msgstr "Privaatne?" + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Kindel et tahad kustutada selle töö?" + +#: templates/tasklists/tasklists.inc:81 +msgid "Remote Subscription URL" +msgstr "Välise tellimuse URL" + +#: templates/panel.inc:57 lib/Forms/task.php:94 +msgid "Save" +msgstr "Salvesta" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s on salvestatud." + +#: search.php:14 templates/list/header.inc:4 templates/search/search.inc:31 +#: lib/Block/tree_menu.php:47 +msgid "Search" +msgstr "Otsi" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Otsi töös:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Otsi _teksti:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Otsi:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Otsing: Tulemused \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Vali kuupäev" + +#: templates/tasklists/tasklists.inc:62 +msgid "Select a tasklist" +msgstr "Vali töönimekiri" + +#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82 +msgid "Select a tasklist above to display the Remote Subscription URL" +msgstr "Vali tööde nimekiri ülevalt et näha välise liitumise URLi" + +#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80 +msgid "Select a tasklist above to display the URL" +msgstr "Vali tööde nimekiri ülevalt et näha URLi" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Vali eksportimise formaat:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Vali fail mida importida:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Vali faili tüüo:" + +#: templates/panel.inc:48 +msgid "Shared Tasklists:" +msgstr "Jagatud tööde nimekiri:" + +#: config/prefs.php.dist:69 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Kas tööde nimekiri peaks olema oma veerus nimekirja vaates?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Näita tegevus nuppe?" + +#: config/prefs.php.dist:204 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Näita lõpetatud, poolikuid või kõiki töid tööde nimekirjas?" + +#: config/prefs.php.dist:191 +msgid "Show data from any of these other applications in your task list?" +msgstr "Näita andmeid järgmistest allikatest?" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "Näita andmeid teistest allikatest." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Näita tähtaegu?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Näita prioriteete?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Näita tööde teavitusi?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Näita töö kategooriat?" + +#: config/prefs.php.dist:79 +msgid "Show task list options panel?" +msgstr "Näita seadistamise paneeli?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Näita tööde nimekirja nime?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Näita töid nendest kategooriatest" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Näita töid nendest tööde nimekirjadest" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Sorteeri katekoorja järgi" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Sorteeri progressi järgi" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Sorteeri tähtaja järgi" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Sorteeri nime järgi" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Sorteeri prioriteedi järgi" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Sorteeri kasutaja järgi" + +#: config/prefs.php.dist:120 +msgid "Sort direction:" +msgstr "Sorteerimise suund:" + +#: config/prefs.php.dist:94 +msgid "Sort tasks by:" +msgstr "Sorteeri tööd:" + +#: data.php:56 +msgid "Start" +msgstr "Algus" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Algus aeg" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Algus aeg määratud." + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Töö teavitus" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Töö teavitus?" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "Töö vaike seaded" + +#: lib/Forms/task.php:65 +msgid "Task List" +msgstr "Tööde nimekiri" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "Tööde nimekiri ja jagamise seaded" + +#: tasklists.php:119 +msgid "Task Lists" +msgstr "Tööde nimekiri" + +#: config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Task Name" +msgstr "Töö nimi" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Töö märkmed" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Töö märge?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Töö otsing" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Töö lisatud:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Töö kustutatud:" + +#: tasklists.php:34 +msgid "Task lists must have a name." +msgstr "Töö nimekirjal peab olema nimi." + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Töö muudetud:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "Tööd ei leitud." + +#: config/prefs.php.dist:93 config/prefs.php.dist:108 +msgid "Tasklist" +msgstr "Tööde nimekiri" + +#: templates/panel.inc:30 templates/panel.inc:31 +#: templates/tasklists/tasklists.inc:58 +msgid "Tasklists" +msgstr "Tööde nimekirjad" + +#: templates/tasklists/tasklists.inc:60 +msgid "Tasklists:" +msgstr "Tööde nimekirjad:" + +#: lib/api.php:1041 +msgid "Tasks" +msgstr "Tööd" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Tööde kokkuvõte" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Fail %s ei sisaldanud ühtki tööd." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Tööde alusrakendus ei ole saadaval." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "ööde alusrakendus ei ole saadaval: %s" + +#: lib/Forms/task.php:130 +msgid "The alarm value must not be empty." +msgstr "Teavitus ei tohi olla tühi." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Hetke tund" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "Töö \"%s\" on lisatud nimekirja \"%s\" tähtajaga: %s." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "Töö \"%s\" on kustutatud nimekirjast \"%s\" tähtajaga: %s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "Töö \"%s\" on muudetud nimekirjas \"%s\" tähtajaga: %s." + +#: tasklists.php:51 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Tööde nimekirja \"%s\" ei saanud luua: %s" + +#: tasklists.php:62 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Tööde nimekirja \"%s\" ei saanud salvestada: %s" + +#: tasklists.php:53 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Tööde nimekirja \"%s\" on loodud." + +#: tasklists.php:87 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Tööde nimekirja \"%s\" on kustutatud." + +#: tasklists.php:64 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Tööde nimekirja \"%s\" on salvestatud." + +#: config/prefs.php.dist:109 +msgid "Then:" +msgstr "Siis:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Hetke kriteeriumitele ei vasta ühtegi tööd." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Tekkis probleem töö %s lõpetamisel: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Tekkis probleem töö %s kustutamisel: %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Tekkis probleem töö %s salvestamisel." + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Tekkis viga importimisel: %s" + +#: lib/api.php:397 lib/api.php:701 lib/api.php:973 +msgid "There was an error importing the iCalendar data." +msgstr "Tekkis viga iCal andmete importimisel." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Ühtegi tööd ei eksporditud." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Faili formaat ei ole toetatud." + +#: templates/tasklists/tasklists.inc:79 +msgid "URL" +msgstr "URL" + +#: tasklists.php:83 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Viga kustutamisel \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Viga definitsioonide laadimisel: %s" + +#: templates/list/task_summaries.inc:62 templates/view/task.inc:9 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Block/summary.php:31 lib/Block/summary.php:215 lib/Forms/task.php:78 +msgid "Unfiled" +msgstr "Täitmata" + +#: lib/api.php:502 lib/api.php:774 lib/api.php:832 lib/api.php:886 +#: lib/api.php:1011 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Formaat ei ole toetatud: %s" + +#: lib/Driver.php:1079 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Me sooviksime meelde tuletada, et töö tähtaeg on.\n" +"\n" +"%s\n" +"\n" +"Kuupäev: %s\n" +"Kellaaeg: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Nädal(ad)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Vaike tähtaeg töödele oleks?" + +#: config/prefs.php.dist:147 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Töö loomisel mitu päeva tuleviku peaks olema vaike tähtaeg (0 tähendab täna)?" + +#: config/prefs.php.dist:138 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Kas töö loomisel peaks olema vaikimisi tähtaeg?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Millisesse nimekirja peaks töö lisama?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Aasta" + +#: task.php:61 data.php:41 data.php:151 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Pole lubatud luua rohkem kui %d tööd." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Sul puuduvad õigused selle tööde nimekirja vaatamiseks." + +#: tasklists.php:90 +msgid "You must select a task list to be deleted." +msgstr "Sa pead valima tööde nimekirja mida kustutada." + +#: templates/tasklists/tasklists.inc:47 +msgid "You must select a tasklist to be deleted." +msgstr "Sa pead valima tööde nimekirja mida kustutada." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "Te soovisite teavitust kui tööde nimekirja lisatakse uus töö." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "Te soovisite teavitust kui tööde nimekirjast kustutatakse töö." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "Te soovisite teavitust kui tööde nimekirja muudetakse." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Sinu vaike tööde nimekiri:" + +#: templates/panel.inc:43 +msgid "[Manage My Tasklists]" +msgstr "[Halda Minu tööde nimekirja]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:199 +msgid "[none]" +msgstr "[midagi]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Kõik tööd" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Kõik tööd" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Kategooria" + +#: view.php:99 +msgid "_Complete" +msgstr "_Lõpeta" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_Lõpetatud tööd" + +#: view.php:106 +msgid "_Delete" +msgstr "Ku_stuta" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Kirjeldus" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Tä_htaeg" + +#: view.php:102 +msgid "_Edit" +msgstr "_Muuda" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Tu_leviku tööd" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "_Import/Eksport" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "_Nimekiri" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "_Uus töö" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "_Prindi" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "_Otsing" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Tööd" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "EL" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCal (vTodo)" + +#: lib/Block/tree_menu.php:37 +#, php-format +msgid "in %s" +msgstr "%s ajal" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "Ilma ajata" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "PL" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/eu_ES.po b/nag/po/eu_ES.po new file mode 100644 index 000000000..7477d813e --- /dev/null +++ b/nag/po/eu_ES.po @@ -0,0 +1,943 @@ +# Basque translations for Nag. +# Copyright 2008-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Euskal Herriko Unibertsitatea EHU/UPV , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 (1.1)\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-01-16 09:33+0100\n" +"PO-Revision-Date: 2008-07-17 14:24+0200\n" +"Last-Translator: Euskal Herriko Unibertsitatea EHU/UPV \n" +"Language-Team: Euskal Herriko Unibertsitatea EHU/UPV \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ordu" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d ordu, %d minutu" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d ordu, %d minutu" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d ordu" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d ordu, %d minutu" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d ordu, %d minutu" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minutu" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutu" + +#: templates/list/header.inc:3 +#, php-format +msgid "%d tasks" +msgstr "%d zeregin" + +#: lib/Nag.php:380 +#, php-format +msgid "%s at %s" +msgstr "%s - %s" + +#: lib/Nag.php:532 lib/Block/summary.php:90 +#, php-format +msgid "%s is due in %s" +msgstr "%s -- mugaeguna: %s" + +#: lib/Nag.php:530 lib/Block/summary.php:88 +#, php-format +msgid "%s is due now." +msgstr "%s -- mugaeguna orain du." + +#: data.php:193 +#, php-format +msgid "%s successfully imported" +msgstr "%s behar bezala inportatu da" + +#: tasklists.php:100 lib/base.php:104 +#, php-format +msgid "%s's Task List" +msgstr "%s(r)en zeregin-zerrenda" + +#: lib/Nag.php:337 +msgid "(highest)" +msgstr "(handia)" + +#: lib/Nag.php:337 +msgid "(lowest)" +msgstr "(txikia)" + +#: templates/list/header.inc:3 +msgid "1 task" +msgstr "Zeregin bat" + +#: task.php:286 +#, php-format +msgid "Access denied completing task %s." +msgstr "%s zeregina burutzeko sarbidea ukatu da." + +#: task.php:260 +#, php-format +msgid "Access denied deleting %s." +msgstr "%s ezabatzeko sarbidea ukatu da." + +#: task.php:219 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Zeregina %s(e)ra eramateko sarbidea ukatu da." + +#: task.php:222 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Zeregina %s(e)tik kentzeko sarbidea ukatu da." + +#: task.php:144 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Oharra hemen gordetzeko sarbidea ukatu da: %s." + +#: task.php:142 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Zeregina gordetzeko sarbidea ukatu da: %s." + +#: task.php:69 +msgid "Adding A New Task" +msgstr "Zeregin berri bat gehitu" + +#: templates/task/task.inc:67 +msgid "Ala_rm" +msgstr "Ala_rma" + +#: templates/view/task.inc:33 +msgid "Alarm" +msgstr "Alarma" + +#: config/prefs.php.dist:143 +msgid "All tasks" +msgstr "Zeregin guztiak" + +#: lib/Block/summary.php:54 +msgid "Always show completed tasks?" +msgstr "Beti erakutsi burututako zereginak?" + +#: lib/Block/summary.php:51 +msgid "Always show overdue tasks?" +msgstr "Beti erakutsi atzeratutako zereginak?" + +#: config/prefs.php.dist:98 +msgid "Ascending" +msgstr "Gorantz" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Itzuli zeregin-zerrendaren aukeretara" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:56 +msgid "Calendar" +msgstr "Egutegia" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kat_egoria" + +#: data.php:52 templates/view/task.inc:25 config/prefs.php.dist:70 +#: config/prefs.php.dist:85 +msgid "Category" +msgstr "Kategoria" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Aldatu" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Aldatu zereginak ordenatzeko eta bistaratzeko aukerak." + +#: config/prefs.php.dist:122 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Aukeratu zeregin berrien, editatuen eta ezabatuen berri posta elektronikoz " +"ematea nahi duzun ala ez:" + +#: config/prefs.php.dist:36 +msgid "Choose if you want to be notified of new, edited, and deleted tasks." +msgstr "" +"Aukeratu zeregin berrien, editatuen eta ezabatuen berri ematea nahi duzun " +"ala ez." + +#: config/prefs.php.dist:29 +msgid "Choose your default task list." +msgstr "Aukeratu zeregin-zerrenda lehenetsia." + +#: templates/search/search.inc:34 +msgid "Clear Form" +msgstr "Garbitu inprimakia" + +#: templates/task/task.inc:88 +msgid "Co_mpleted?" +msgstr "_Burututa?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Burututa" + +#: lib/Block/summary.php:145 templates/list/task_summaries.inc:5 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" burutu da" + +#: templates/view/task.inc:44 +msgid "Complete Task" +msgstr "Zeregin burutua" + +#: config/prefs.php.dist:145 +msgid "Complete tasks" +msgstr "Zeregin burutuak" + +#: lib/Nag.php:395 lib/Block/summary.php:143 +msgid "Completed" +msgstr "Burutua" + +#: task.php:295 +#, php-format +msgid "Completed %s." +msgstr "%s burutu da." + +#: templates/list/task_headers.inc:31 templates/view/task.inc:41 +#: config/prefs.php.dist:72 config/prefs.php.dist:87 +msgid "Completed?" +msgstr "Burutua?" + +#: data.php:55 +msgid "Completion Status" +msgstr "Burutze-egoera" + +#: lib/api.php:225 +#, php-format +msgid "Connection failed: %s" +msgstr "Konexioak huts egin du: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Sortu" + +#: templates/view/task.inc:53 +msgid "Created" +msgstr "Sortua" + +#: lib/Nag.php:427 templates/task/task.inc:76 +msgid "Day(s)" +msgstr "egunez behin" + +#: config/prefs.php.dist:28 +msgid "Default Task List" +msgstr "Zeregin-zerrenda lehenetsia" + +#: templates/tasklists/tasklists.inc:100 templates/view/task.inc:16 +msgid "Delete" +msgstr "Ezabatu" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Ezabatzeko berrespena" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Ezabatu botoiaren portaera" + +#: templates/task/task.inc:110 +msgid "Delete this task" +msgstr "Ezabatu zeregin hau" + +#: task.php:268 +#, php-format +msgid "Deleted %s." +msgstr "%s ezabatua." + +#: config/prefs.php.dist:99 +msgid "Descending" +msgstr "Beherantz" + +#: data.php:51 +msgid "Description" +msgstr "Azalpena" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Azalpena:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Bistaratzeko aukerak" + +#: config/prefs.php.dist:109 +msgid "Do you want to confirm deleting entries?" +msgstr "Sarrerak ezabatzea berretsi nahi duzu?" + +#: data.php:53 templates/view/task.inc:29 +msgid "Due By" +msgstr "Noizko:" + +#: config/prefs.php.dist:71 config/prefs.php.dist:86 +msgid "Due Date" +msgstr "Epemuga" + +#: templates/task/task.inc:45 +msgid "Due _By" +msgstr "_Noizko" + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Editatu" + +#: lib/Block/summary.php:140 templates/list/task_summaries.inc:20 +#, php-format +msgid "Edit \"%s\"" +msgstr "Editatu \"%s\"" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Editatu zeregina" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Editatu kategoriak eta koloreak" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Esportatu" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Esportatu zereginak" + +#: config/prefs.php.dist:47 +msgid "External Data" +msgstr "Kanpoko datuak" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 +msgid "General Options" +msgstr "Aukera orokorrak" + +#: lib/Nag.php:430 templates/task/task.inc:75 +msgid "Hour(s)" +msgstr "orduz behin" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Inportatu zereginak, %d. urratsa" + +#: data.php:199 +msgid "Import/Export Tasks" +msgstr "Inportatu/esportatu zereginak" + +#: list.php:88 +msgid "Incom_plete tasks" +msgstr "Zeregin _burutu gabeak" + +#: config/prefs.php.dist:144 +msgid "Incomplete tasks" +msgstr "Zeregin burutu gabeak" + +#: templates/view/task.inc:60 +msgid "Last Modified" +msgstr "Aldatze-data" + +#: lib/api.php:82 +msgid "Maximum Number of Tasks" +msgstr "Zereginen gehieneko kopurua" + +#: lib/Nag.php:433 templates/task/task.inc:74 +msgid "Minute(s)" +msgstr "minutuz behin" + +#: task.php:126 +msgid "Modifying:" +msgstr "Aldatzen:" + +#: lib/api.php:610 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"iCalendar osagai bat baino gehiago aurkitu dira; vTodo bakarra onartzen da." + +#: list.php:39 +msgid "My Tasks" +msgstr "Zereginak" + +#: templates/task/task.inc:17 templates/search/search.inc:25 +msgid "N_ame" +msgstr "I_zena" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Iz_ena" + +#: data.php:50 +msgid "Name" +msgstr "Izena" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Zeregin berria" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Hurrengoa" + +#: config/prefs.php.dist:118 +msgid "No" +msgstr "Ez" + +#: templates/task/task.inc:48 +msgid "No due date." +msgstr "Ez dago epemugarik." + +#: lib/api.php:404 lib/api.php:448 lib/api.php:603 +msgid "No iCalendar data was found." +msgstr "Ez da aurkitu iCalendar daturik." + +#: lib/Nag.php:546 +msgid "No task lists are available to guests." +msgstr "Ez dago zeregin-zerrenda erabilgarririk gonbidatuentzat." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Ez dago zereginik bistaratzeko" + +#: lib/Nag.php:437 templates/task/task.inc:70 +msgid "None" +msgstr "Bat ere ez" + +#: lib/Nag.php:396 +msgid "Not Completed" +msgstr "Burutu gabe" + +#: lib/Driver/sql.php:95 lib/Driver/sql.php:134 +msgid "Not found" +msgstr "Ez da aurkitu" + +#: config/prefs.php.dist:35 +msgid "Notifications" +msgstr "Jakinarazpenak" + +#: config/prefs.php.dist:120 +msgid "On all shown tasklists" +msgstr "Erakutsitako zeregin-zerrenda guztietan" + +#: config/prefs.php.dist:121 +msgid "On all tasklists I have read access to" +msgstr "Irakurtzeko baimena dudan zeregin-zerrenda guztietan" + +#: config/prefs.php.dist:119 +msgid "On my tasklists only" +msgstr "Nire zeregin-zerrendetan bakarrik" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_Lehentasuna" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Baimena" + +#: lib/api.php:378 lib/api.php:485 lib/api.php:548 lib/api.php:585 +msgid "Permission Denied" +msgstr "Baimena ukatu da" + +#: lib/api.php:106 +msgid "Permission denied" +msgstr "Baimena ukatuta" + +#: data.php:54 templates/view/task.inc:37 config/prefs.php.dist:68 +#: config/prefs.php.dist:83 +msgid "Priority" +msgstr "Lehentasuna" + +#: templates/view/task.inc:16 +msgid "Really delete this task?" +msgstr "Ziur zaude zeregin hau ezabatu nahi duzula?" + +#: templates/list/header.inc:5 +msgid "Refresh List" +msgstr "Freskatu zerrenda" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Berrezarri" + +#: templates/task/task.inc:102 +msgid "Save" +msgstr "Gorde" + +#: task.php:243 +#, php-format +msgid "Saved %s." +msgstr "%s gorde da." + +#: search.php:14 templates/search/search.inc:6 templates/search/search.inc:33 +msgid "Search" +msgstr "Bilatu" + +#: list.php:62 +msgid "Search Results" +msgstr "Bilaketaren emaitza" + +#: templates/search/search.inc:22 +msgid "Search Scope" +msgstr "Bilaketa-esparrua" + +#: templates/search/search.inc:14 +msgid "Search _Text" +msgstr "Bilatzeko _testua" + +#: templates/task/task.inc:56 +msgid "Select a date" +msgstr "Hautatu data" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Hautatu zeregin-zerrenda" + +#: templates/menu.inc:8 +msgid "Select tasklists to display:" +msgstr "Hautatu zeregin-zerrendak bistaratzeko:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Hautatu esportazio-formatua:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Hautatu inportatu beharreko fitxategia:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Hautatu iturburu-fitxategiaren formatua:" + +#: config/prefs.php.dist:59 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Zeregin-zerrenda bere zutabean bertan bistaratu Zerrendaren ikuspegian" + +#: lib/Block/summary.php:36 +msgid "Show action buttons?" +msgstr "Hautatu ekintza-botoiak?" + +#: config/prefs.php.dist:146 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Erakutsi zeregin burutuak, burutu gabeak edo guztiak zereginen zerrendan?" + +#: config/prefs.php.dist:133 +msgid "Show data from any of these other applications in your task list?" +msgstr "Erakutsi beste aplikazio hauetako datuak zereginen zerrendan?" + +#: config/prefs.php.dist:48 +msgid "Show data from other applications or sources." +msgstr "Erakutsi beste aplikazio edo iturburu batzuetako datuak." + +#: lib/Block/summary.php:39 +msgid "Show due dates?" +msgstr "Erakutsi epemugak?" + +#: lib/Block/summary.php:33 +msgid "Show priorities?" +msgstr "Erakutsi lehentasunak?" + +#: lib/Block/summary.php:45 +msgid "Show task alarms?" +msgstr "Erakutsi zereginen alarmak?" + +#: lib/Block/summary.php:48 +msgid "Show task category?" +msgstr "Erakutsi zereginen kategoria?" + +#: lib/Block/summary.php:42 +msgid "Show tasklist name?" +msgstr "Erakutsi zereginen zerrendaren izena?" + +#: lib/Block/summary.php:57 +msgid "Show tasks from these categories" +msgstr "Erakutsi kategoria hauetako zereginak" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Ordenatu kategoriaren arabera" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Ordenatu burutze-egoeraren arabera" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Ordenatu epemugaren arabera" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Ordenatu izenaren arabera" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Ordenatu lehentasunaren arabera" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Ordenatu erabiltzaile-izenaren arabera" + +#: config/prefs.php.dist:100 +msgid "Sort direction:" +msgstr "Ordenatzeko noranzkoa:" + +#: config/prefs.php.dist:74 +msgid "Sort tasks by:" +msgstr "Ordenatu zereginak honen arabera:" + +#: templates/list/task_summaries.inc:28 +msgid "Task Alarm" +msgstr "Zeregin-alarma" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Zeregin-alarma?" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Zeregin-zerrenda" + +#: config/prefs.php.dist:27 config/prefs.php.dist:34 config/prefs.php.dist:46 +msgid "Task List and Share Options" +msgstr "Zereginak zerrendatzeko eta partekatzeko aukerak" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Zeregin-zerrendaren izena:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Zeregin-zerrendak" + +#: config/prefs.php.dist:69 config/prefs.php.dist:84 +msgid "Task Name" +msgstr "Zereginaren izena" + +#: templates/list/task_summaries.inc:26 +msgid "Task Note" +msgstr "Zeregin-oharra" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Zeregin-oharra?" + +#: lib/Nag.php:571 +msgid "Task added:" +msgstr "Zeregina gehituta:" + +#: lib/Nag.php:581 +msgid "Task deleted:" +msgstr "Zeregina ezabatuta:" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Zeregin-zerrenak izen bat eduki behar du." + +#: lib/Nag.php:576 +msgid "Task modified:" +msgstr "Zeregina aldatuta:" + +#: view.php:43 task.php:128 +msgid "Task not found." +msgstr "Zeregina ez da aurkitu." + +#: config/prefs.php.dist:73 config/prefs.php.dist:88 +msgid "Tasklist" +msgstr "Zeregin-zerrenda" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Zeregin-laburpena" + +#: data.php:187 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "%s fitxategiak ez dauka zereginik." + +#: task.php:177 +msgid "The alarm field may only contain integers." +msgstr "Alarma-eremuan osokoak bakarrik sar daitezke." + +#: lib/Nag.php:572 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"\"%s\" zeregina gehitu da \"%s\" zeregin-zerrendan, epemuga honekin: %s." + +#: lib/Nag.php:582 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"\"%s\" zeregina ezabatu egin da \"%s\" zeregin-zerrendatik, epemuga honekin: " +"%s." + +#: lib/Nag.php:577 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"\"%s\" zeregina editatu egin da \"%s\" zeregin-zerrendan, epemuga honekin: %" +"s." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Ezin izan da sortu \"%s\" ohar-bloka: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Ezin izan da gorde \"%s\" zeregin-zerrenda: %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "\"%s\" zeregin-zerrenda sortu da." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "\"%s\" zeregin-zerrenda ezabatu da." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "\"%s\" zeregin-zerrenda gorde da." + +#: config/prefs.php.dist:89 +msgid "Then:" +msgstr "Ondoren honen arabera:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Ez dago uneko irizpideak betetzen dituen zereginik." + +#: task.php:292 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Arazo bat gertatu da \"%s\" burutzean: %s" + +#: task.php:265 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Arazo bat gertatu da %s ezabatzean: %s" + +#: task.php:241 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Arazo bat gertatu da zeregina gordetzean: %s." + +#: data.php:190 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Errorea gertatu da datuak inportatzean: %s" + +#: lib/api.php:396 lib/api.php:597 +msgid "There was an error importing the iCalendar data." +msgstr "Errorea gertatu da iCalendar datuak inportatzean." + +#: data.php:77 +msgid "There were no tasks to export." +msgstr "Ez dago zereginik esportatzeko." + +#: data.php:121 +msgid "This file format is not supported." +msgstr "Fitxategi-formatu hau ez da onartzen." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Ezin da \"%s\" ezabatu: %s" + +#: templates/task/task.inc:103 +msgid "Undo changes" +msgstr "Desegin aldaketak" + +#: lib/Nag.php:791 lib/Nag.php:792 lib/Nag.php:806 lib/Nag.php:807 +#: lib/Block/summary.php:30 lib/Block/summary.php:179 +#: templates/list/task_summaries.inc:33 templates/view/task.inc:26 +msgid "Unfiled" +msgstr "Sailkatu gabe" + +#: lib/api.php:455 lib/api.php:512 lib/api.php:628 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Eduki mota hau ez da onartzen: %s" + +#: lib/Nag.php:424 templates/task/task.inc:77 +msgid "Week(s)" +msgstr "aste" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Zein zeregin-zerrendatan gehituko dira zereginak?" + +#: data.php:39 data.php:145 task.php:31 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Ez duzu baimenik %d zeregin baino gehiago sortzeko." + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Ez duzu baimenik zeregin-zerrenda hau ikusteko." + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Zeregin-zerrenda bat hautatu behar duzu ezabatzeko." + +#: lib/Nag.php:572 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Zure zeregin-zerrendetan zereginak gehitzean horren berri ematea eskatu " +"zenuen." + +#: lib/Nag.php:582 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Zure zeregin-zerrendetatik zereginak ezabatzean horren berri ematea eskatu " +"zenuen." + +#: lib/Nag.php:577 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Zure zeregin-zerrendetan zereginak editatzean horren berri ematea eskatu " +"zenuen." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Zure zeregin-zerrenda lehenetsia:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Zure zeregin-zerrendak:" + +#: lib/Block/summary.php:86 lib/Block/summary.php:169 +#: templates/list/task_summaries.inc:25 +msgid "[none]" +msgstr "[bat ere ez]" + +#: list.php:87 +msgid "_All tasks" +msgstr "_Zeregin guztiak" + +#: templates/task/task.inc:41 templates/search/search.inc:27 +msgid "_Category" +msgstr "_Kategoria" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "_Burutua" + +#: list.php:89 +msgid "_Completed tasks" +msgstr "Zere_gin burutuak" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "E_zabatu" + +#: templates/task/task.inc:94 templates/search/search.inc:26 +msgid "_Description" +msgstr "_Azalpena" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_Epemuga" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "E_ditatu" + +#: lib/Nag.php:496 +msgid "_Import/Export" +msgstr "_Inportatu/esportatu" + +#: lib/Nag.php:481 +msgid "_List Tasks" +msgstr "_Zerrendatu zereginak" + +#: lib/Nag.php:491 +msgid "_My Tasklists" +msgstr "_Nire zeregin-zerrendak" + +#: lib/Nag.php:486 +msgid "_New Task" +msgstr "Zeregin _berria" + +#: lib/Nag.php:501 +msgid "_Print" +msgstr "I_nprimatu" + +#: templates/task/task.inc:82 +msgid "_Priority" +msgstr "_Lehentasuna" + +#: lib/Nag.php:488 +msgid "_Search" +msgstr "_Bilatu" + +#: templates/task/task.inc:26 templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Z_ereginen zerrenda" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "denborarik ez" + +#: data.php:94 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "zereginak.csv" + +#: data.php:106 +msgid "tasks.ics" +msgstr "zereginak.ics" diff --git a/nag/po/fi_FI.po b/nag/po/fi_FI.po new file mode 100644 index 000000000..192d23f45 --- /dev/null +++ b/nag/po/fi_FI.po @@ -0,0 +1,1281 @@ +# Finnish translation for Nag. +# Copyright +# Tero Matinlassi , 2002. +# Leena Heino , 2002-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 3.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-05-17 16:38+0300\n" +"PO-Revision-Date: 2008-05-20 12:59+0200\n" +"Last-Translator: Leena Heino \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s sisältäen alitehtävät)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d tunti" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d tunti, %d minuutti" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d tunti, %d minuuttia" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d tuntia" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d tuntia, %d minuutti" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d tuntia, %d minuuttia" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuutti" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minuuttia" + +#: lib/Nag.php:393 +#, php-format +msgid "%s at %s" +msgstr "%s %s" + +#: lib/Nag.php:619 lib/Block/summary.php:106 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "%s pitäisi valmistua %s" + +#: lib/Nag.php:617 lib/Block/summary.php:104 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr "%s pitäisi olla valmis nyt." + +#: task.php:238 +#, php-format +msgid "%s is now incomplete." +msgstr "%s on nyt kesken." + +#: data.php:209 +#, php-format +msgid "%s successfully imported" +msgstr "%s tuonti onnistui." + +#: lib/Nag.php:545 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "%s:n tehtävälista" + +#: lib/Nag.php:344 lib/Forms/task.php:61 +msgid "(highest)" +msgstr "(korkein)" + +#: lib/Nag.php:344 lib/Forms/task.php:62 +msgid "(lowest)" +msgstr "(matalin)" + +#: task.php:222 +#, php-format +msgid "Access denied completing task %s." +msgstr "Sinulla ei ole oikeuksia muuttaa tehtävän suoritustietoja: %s." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Sinulla ei ole oikeuksia poistaa tehtävää." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Sinulla ei ole oikeuksia muokata tehtävää." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Sinulla ei ole muokata tehtävää: %s" + +#: task.php:170 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Sinulla ei ole oikeuksia siirtää tehtävää %s:ään." + +#: task.php:173 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Sinulla ei ole oikeuksia poistaa tehtävää %s:stä." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Sinulla ei ole oikeuksia tallettaa %s:ään." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Sinulla ei ole oikeuksia tallettaa tehtävää: %s" + +#: data.php:57 templates/view/task.inc:26 lib/Forms/task.php:91 +msgid "Alarm" +msgstr "Hälytys" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Kaikki tehtävät" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Näytä aina valmistuneet tehtävät." + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Näytä aina myöhästyneet tehtävät." + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Nouseva" + +#: data.php:55 +msgid "Assignee" +msgstr "Määrätty" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Lohkon otsikko" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Kalenteri" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Peruuta" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kat_egoria" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:79 +#: lib/Forms/task.php:85 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Kategoria" + +#: templates/tasklist_list.php:35 tasklists/index.php:56 +msgid "Change Permissions" +msgstr "Muuta oikeuksia" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Voit muuttaa tehtävien järjestely- ja näyttöasetuksia." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "" +"Valitse miten haluat saada muistutukset tehtäviin liitetyistä hälytyksistä:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Valitse haluatko saada ilmoituksia uusista, muokatuista tai poistetuista " +"tehtävistä sähköpostitse:" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Valitse haluatko saada ilmoituksia uusista, muokatuista tai poistetuista " +"tehtävistä." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Voit valita oletustehtävälistasi." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Napsauta tai kopioi tämä URL nähdäksesi tämän tehtävälistan" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Sulje" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Sulje haku" + +#: view.php:112 +msgid "Complete" +msgstr "Suoritettu" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:175 +#, php-format +msgid "Complete \"%s\"" +msgstr "Valmistunut \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Suorita tehtävä" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Suorita tehtävät" + +#: lib/Nag.php:408 lib/Block/summary.php:173 +msgid "Completed" +msgstr "Suoritettu" + +#: task.php:236 +#, php-format +msgid "Completed %s." +msgstr "Suoritettiin %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Valmistuneet tehtävät" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Valmistunut ylätehtävä, merkitse sen tila ensin keskeneräiseksi" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:97 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Suoritettu?" + +#: data.php:63 +msgid "Completion Date" +msgstr "Valmistumispäivämäärä" + +#: data.php:62 +msgid "Completion Status" +msgstr "Valmistumisen tila" + +#: lib/api.php:443 lib/api.php:704 +#, php-format +msgid "Connection failed: %s" +msgstr "Yhteys epäonnistui: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Luo" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Luo tehtävälista" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Luo uusi tehtävälista" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Luotu" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Päivä" + +#: lib/Nag.php:440 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Päiviä" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Oletustehtävälista" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Oletukset uudelle tehtävälistalle" + +#: lib/Forms/task.php:90 +msgid "Delay Start Until" +msgstr "Viivästä aloitusta kunnes" + +#: view.php:119 templates/tasklist_list.php:37 tasklists/index.php:57 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Poista" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Poista %s" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Poiston varmistus" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Voit muuttaa Poista painikkeen toimintaa" + +#: task.php:112 lib/Forms/task.php:102 lib/Forms/task.php:129 +msgid "Delete this task" +msgstr "Poista tämä tehtävä" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "Poistettiin %s." + +#: lib/api.php:686 +msgid "Deleting entire tasklists is not supported." +msgstr "Koko tehtävälistan poistaminen ei ole tuettu." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Laskeva" + +#: data.php:53 lib/Forms/CreateTaskList.php:37 lib/Forms/EditTaskList.php:44 +#: lib/Forms/task.php:98 +msgid "Description" +msgstr "Kuvaus" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Näkymän asetukset" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Näytä URL" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Haluatko varmistuksen poistettavista merkinnöistä?" + +#: data.php:56 templates/view/task.inc:22 lib/Forms/task.php:89 +msgid "Due By" +msgstr "Valmiina viimeistään" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Valmistumispäivämäärä" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Valmistumispäivämäärää ei ole määritelty" + +#: view.php:115 templates/tasklist_list.php:33 tasklists/index.php:55 +msgid "Edit" +msgstr "Muokkaa" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, php-format +msgid "Edit \"%s\"" +msgstr "Muokkaa \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Muokkaa %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Muokkaa tehtävää" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Muokkaa kategorioita ja värejä" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Muokkaa %s" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Tapahtui virhe poistettaessa tehtävää: %s" + +#: data.php:61 templates/view/task.inc:34 lib/Forms/task.php:96 +msgid "Estimated Time" +msgstr "Arvioitu aika" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Vie" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Vie tehtävät" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Ulkopuolista tietoa" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Yleiset asetukset" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Tunti" + +#: lib/Nag.php:443 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Tuntia" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Tehtävien tuonti, askel %d" + +#: data.php:215 +msgid "Import/Export Tasks" +msgstr "Tuo/Vie tehtävät" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Keske_neräiset tehtävät" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Keskeneräiset tehtävät" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Keskeneräisiä alitehtäviä, suorita ne ensin valmiiksi" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Keskeneräiset tehtävät" + +#: lib/api.php:520 +msgid "Invalid tasklist name supplied." +msgstr "Tehtävälistan nimi on epäkelpo." + +#: lib/api.php:386 +msgid "Invalid tasklist requested." +msgstr "Pyydetty tehtävälista on epäkelpo." + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Muokattu viimeksi" + +#: templates/tasklist_list.php:2 tasklists/index.php:61 +msgid "Manage Task Lists" +msgstr "Hallinnoi tehtävälistoja" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Merkitse \"%s\" keskeneräiseksi" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Merkitse keskeneräiseksi" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Tehtävien enimmäismäärä" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Valikkohälytykset" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Valikkolista" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minuutti" + +#: lib/Nag.php:446 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minuuttia" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Kuukausi" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Lisää asetukset..." + +#: lib/api.php:1179 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Löytyi useita iCalendar komponentteja. vai yksi vTodo on tuettu." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Omat tehtävälistani:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Oma tehtävälistani" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "N_imi" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Ni_mi" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/Kolab: Ei löytynyt tehtävää: %s" + +#: data.php:52 lib/Forms/CreateTaskList.php:36 lib/Forms/EditTaskList.php:43 +#: lib/Forms/task.php:68 +msgid "Name" +msgstr "Nimi" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Uusi tehtävä" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Seuraava" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "Ei" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Ei viivettä" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Ei valmistumispäivämäärää." + +#: lib/api.php:553 lib/api.php:902 lib/api.php:960 lib/api.php:1172 +msgid "No iCalendar data was found." +msgstr "Ei löytynyt iCalendar tietoja." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "Ei ylempiä tehtävät" + +#: lib/Nag.php:634 +msgid "No task lists are available to guests." +msgstr "Vierailijoille ei ole sallittu ainuttakaan tehtävälistaa." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Ei täsmääviä tehtäviä" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "Ei tehtäviä näytettäväksi" + +#: lib/Nag.php:450 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Ei mitään" + +#: lib/Nag.php:409 +msgid "Not Completed" +msgstr "Ei suoritettu" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Ei yksityinen" + +#: lib/api.php:760 +msgid "Not configured" +msgstr "Ei asennettu." + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Ilmoitukset" + +#: config/prefs.php.dist:168 +msgid "On all shown task lists" +msgstr "Kaikille näkyville tehtävälistoille" + +#: config/prefs.php.dist:169 +msgid "On all task lists I have read access to" +msgstr "Kaikille tehtävälistoille, joihin minulla on lukuoikeus" + +#: config/prefs.php.dist:167 +msgid "On my task lists only" +msgstr "Vain omassa tehtävälistassani" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_ri" + +#: lib/Forms/task.php:75 +msgid "Parent task" +msgstr "Ylätehtävä" + +#: lib/api.php:769 lib/api.php:807 lib/api.php:840 lib/api.php:876 +#: lib/api.php:998 lib/api.php:1053 lib/api.php:1117 lib/api.php:1154 +#: lib/api.php:1267 lib/api.php:1314 +msgid "Permission Denied" +msgstr "Käyttö kielletty" + +#: lib/api.php:210 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Käyttö kielletty" + +#: data.php:59 templates/view/task.inc:30 lib/Forms/task.php:93 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Prioriteetti" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Yksityinen" + +#: data.php:60 +msgid "Private Event" +msgstr "Yksityinen tilaisuus" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Yksityinen tehtävä" + +#: templates/view/task.inc:12 lib/Forms/task.php:88 +msgid "Private?" +msgstr "Yksityinen?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Haluatko poistaa tehtävälistan \"%s\"? Tämä operaatio on peruuttamaton ja " +"kaikki tiedot tällä tehtävälistalla poistuvat lopullisesti." + +#: view.php:119 +msgid "Really delete this task?" +msgstr "Poistetaanko tämä tehtävä?" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:100 +#: lib/Forms/task.php:127 +msgid "Save" +msgstr "Talleta" + +#: task.php:201 +#, php-format +msgid "Saved %s." +msgstr "Talletettiin %s." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Haku" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Hae lähteestä:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Hae _tekstiä:" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Hae tehtävälistoista:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Haku:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Haun tulokset \"%s\":lle" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Valitse päivämäärä" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Valitse viennissä käytettävä muoto:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Valitse tiedosto, josta tuodaan tietoja:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Valitse lähdetiedoston muoto:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "Jaetut tehtävälistat:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Näytä tehtävälista listanäkymässä omassa sarakkeessaan." + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Näytä toimintopainikkeet." + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Näytä suoritetut, keskeneräiset tai kaikki tehtävät tehtävälistalla." + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Näytä näiden ohjelmien tietoja tehtävälistallasi." + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Näytä tietoja muista ohjelmista tai lähteistä." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Näytä valmistuspäivämäärät." + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Näytä prioriteetit." + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Näytä tehtävien hälytykset." + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Näytä tehtävän kategoria." + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Näytä tehtävälistat asetuspaneelissa." + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Näytä tehtävälistojen nimet." + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Näytä näihin luokituksiin liittyvät tehtävät" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Näytä tehtävät näistä tehtävälistoista" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Järjestä luokituksen mukaan" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Järjestä suoritustilan mukaan" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Järjestä valmistumispäivämäärän mukaan" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Järjestä nimen mukaan" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Järjestä prioriteetin mukaan" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Järjestä käyttäjätunnuksen mukaan" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Järjestyksen suuntaa" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Järjestä tehtävät:" + +#: data.php:58 +msgid "Start" +msgstr "Alkaa" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Aloituspäivämäärä" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Aloituspäivämäärää määritelty." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "Tilauksen URL" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Tehtävän hälytys" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Tehtävän hälytys?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Tehtävän oletukset" + +#: lib/Driver/sql.php:100 +msgid "Task ID not found" +msgstr "Tehtävä ID:ä ei löytynyt" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:71 +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Task List" +msgstr "Tehtävälista" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Tehtävälistan tiedot" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Tehtävälistalistaus" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Tehtävälistaan ja jakeluun liittyvät asetukset" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "%s:n omistamat tehtävälistat." + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Tehtävälistat" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Tehtävän nimi" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Tehtävän huomautus" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Tehtävän huomautus?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Tehtävän haku" + +#: lib/Driver/sql.php:136 +msgid "Task UID not found" +msgstr "Tehtävä UID:a ei löytynyt." + +#: lib/Nag.php:659 +msgid "Task added:" +msgstr "Tehtävä lisätty:" + +#: lib/Nag.php:669 +msgid "Task deleted:" +msgstr "Tehtävä poistettu:" + +#: lib/Nag.php:664 +msgid "Task modified:" +msgstr "Tehtävää muokattu:" + +#: task.php:95 view.php:44 +msgid "Task not found." +msgstr "Tehtävää ei löytynyt." + +#: lib/api.php:698 +msgid "Tasklist does not exist or no permission to delete" +msgstr "" +"Tehtävälistaa ei ole olemassa tai sinulla ei ole oikeuksia poistaa sitä" + +#: lib/api.php:526 +msgid "Tasklist does not exist or no permission to edit" +msgstr "" +"Tehtävälistaa ei ole olemassa tai sinulla ei ole oikeusia muokata sitä." + +#: lib/api.php:1236 +msgid "Tasks" +msgstr "Tehtävät" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Tehtävät yhteenveto" + +#: lib/api.php:348 +#, php-format +msgid "Tasks from %s" +msgstr "Tehtävät %s:stä" + +#: data.php:203 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Tiedostossa %s ei ollut ainuttakaan tehtävää." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Tehtävien taustajärjestelmä ei ole käytettävissä." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Tehtävien taustajärjestelmä ei ole käytettävissä: %s" + +#: lib/Forms/task.php:160 +msgid "The alarm value must not be empty." +msgstr "Hälytyksen arvo ei saa olla tyhjä." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Kuluva tunti" + +#: lib/Nag.php:660 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Tehtävä \"%s\" on lisätty tehtävälistaan \"%s\", valmistumispäivämäärällä: %" +"s." + +#: lib/Nag.php:670 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"Tehtävä \"%s\" on poistettu tehtävälistasta \"%s\", " +"valmistumispäivämäärällä: %s." + +#: lib/Nag.php:665 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Tehtävää \"%s\" on muokattu tehtävälistassa \"%s\", " +"valmistumispäivämäärällä: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Tehtävälista \"%s\" on luotu." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Tehtävälista \"%s\" on poistettu." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "Tehtävälistan \"%s\" uusi nimi on \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Tehtävälista \"%s\" on talletettu." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Niin:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Ei ole tehtäviä jotka vastaisivat kriteereitä." + +#: task.php:232 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Tapahtui virhe suoritettaessa valmiiksi %s: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Tapahtui virhe poistettaessa %s: %s" + +#: task.php:199 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Tapahtui virhe talletettaessa tehtävää: %s." + +#: data.php:206 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Tapahtui virhe tuotaessa tietoa: %s" + +#: lib/api.php:545 lib/api.php:894 lib/api.php:1166 +msgid "There was an error importing the iCalendar data." +msgstr "iCalendar-tietojen tuonnissa tapahtui virhe." + +#: data.php:89 +msgid "There were no tasks to export." +msgstr "Ei ole tehtäviä vietäväksi." + +#: data.php:135 +msgid "This file format is not supported." +msgstr "Tämä tiedostomuoto ei ole tuettu." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Tätä tehtävälistaa ei voi poistaa." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "Tilataksesi tämän listan toisesta ohjelmasta käytä tätä URL-osoitetta:" + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Ei voida poistaa \"%s\": %s" + +#: lib/api.php:719 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Ei voida poistaa tehtävälistaa \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Ei voi ladata määritystä %s:lle." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Ei voida poistaa tehtävälistaa \"%s\": %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:901 lib/Nag.php:902 lib/Nag.php:916 lib/Nag.php:917 +#: lib/Forms/task.php:84 lib/Block/summary.php:31 lib/Block/summary.php:222 +msgid "Unfiled" +msgstr "Luokittelematon" + +#: data.php:64 +msgid "Unique ID" +msgstr "Yksikäsitteinen ID" + +#: lib/api.php:652 lib/api.php:967 lib/api.php:1025 lib/api.php:1079 +#: lib/api.php:1204 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Ei tuettu Content-Type: %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Miten haluat muistuttaa itseäsi erääntyvistä tehtävistä.\n" +"\n" +"%s\n" +"\n" +"Päivä: %s\n" +"Aika: %s\n" +"\n" +"%s" + +#: lib/Nag.php:437 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Viikkoa" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Mitä haluat laittaa oletuksesi tehtävien valmistumisajaksi?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Kun luodaan uusi tehtävä, niin montako päivää eteenpäin pitäisi oletus " +"valmistumispäivämäärän olla (0 tarkoitaa tänään)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Kun luodaan uusi tehtävä, niin pitäisikö sillä olla valmistumispäivämäärä?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Mihin tehtävälistaan tehtävät lisätään?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Vuosi" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Et voi muuttaa tätä tehtävälistaa." + +#: data.php:41 data.php:160 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Et voi luoda kuin enintään %d tehtävää." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Et voi poistaa tätä tehtävälistaa." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Sinulla ei ole oikeuksia selata tehtävälistaa." + +#: lib/Nag.php:660 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Olet pyytänyt että saat ilmoituksen kun tehtäviä lisätään tehtävälistoihisi." + +#: lib/Nag.php:670 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Olet pyytänyt että saat ilmoituksen kun tehtäviä poistetaan " +"tehtävälistoistasi." + +#: lib/Nag.php:665 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Olet pyytänyt että saat ilmoituksen kun tehtäviä poistetaan " +"tehtävälistoistasi." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Oletustehtävälista:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Hallinnoi tehtävälistoja]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +msgid "[none]" +msgstr "[tyhjä]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Kaikki tehtävät" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Kaikki tehtävät" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Kategoria" + +#: view.php:112 +msgid "_Complete" +msgstr "_Suoritettu" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_Suoritetut tehtävät" + +#: view.php:119 +msgid "_Delete" +msgstr "_Poista" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "K_uvaus" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_Valmistumispäivämäärä" + +#: view.php:115 +msgid "_Edit" +msgstr "_Muokkaa" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_Tulevat tehtävät" + +#: lib/Nag.php:582 +msgid "_Import/Export" +msgstr "_Tuo/Vie" + +#: lib/Nag.php:569 +msgid "_List Tasks" +msgstr "_Listaa tehtävät" + +#: lib/Nag.php:574 +msgid "_New Task" +msgstr "_Uusi tehtävä" + +#: lib/Nag.php:587 +msgid "_Print" +msgstr "_Tulosta" + +#: lib/Nag.php:578 +msgid "_Search" +msgstr "_Haku" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Tehtävälista" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: view.php:73 view.php:82 +#, php-format +msgid "by %s" +msgstr "%s" + +#: view.php:75 view.php:84 +msgid "by me" +msgstr "itse" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr " %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "ei aikatietoja" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:109 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:120 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/fr_FR.po b/nag/po/fr_FR.po new file mode 100644 index 000000000..596df34e3 --- /dev/null +++ b/nag/po/fr_FR.po @@ -0,0 +1,1233 @@ +# translation of fr_FR.po to french +# Nag 2.2-cvs French translation. +# Copyright 2001 Mikhaël Janson. +# Copyright 2002 Thierry Thomas. +# +# Mikhaël Janson , 2001. +# Thierry Thomas , 2002, 2005, 2006, 2007. +# Pierre Lachance et Benoit St-Andre , 2003, 2004. +# Yannick Sebastia , 2008. +msgid "" +msgstr "" +"Project-Id-Version: fr_FR\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-03-18 09:02+0100\n" +"PO-Revision-Date: 2008-03-18 08:32+0100\n" +"Last-Translator: Yannick Sebastia \n" +"Language-Team: Français \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" +"X-Generator: KBabel 1.11.4\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "(% sous-tâches inclues)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d heure " + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d heure, %d minute" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d heure, %d minutes" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d heures" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d heures, %d minute" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d heures, %d minutes" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minute" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutes" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s à %s" + +#: lib/Nag.php:590 lib/Block/summary.php:106 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "%s est dû le %s" + +#: lib/Nag.php:588 lib/Block/summary.php:104 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr " %s est dû maintenant." + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s n'est plus terminée." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s importé avec succès" + +#: lib/Nag.php:516 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Liste des tâches de %s" + +#: lib/Nag.php:315 lib/Forms/task.php:58 +msgid "(highest)" +msgstr "La plus élevée" + +#: lib/Nag.php:315 lib/Forms/task.php:59 +msgid "(lowest)" +msgstr "La plus basse" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "Accès refusé pour terminer la tâche %s" + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Accès refusé pour effacer %s" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Accès en édition de la tâche refusé." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Accès en édition de la tâche refusé : %s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Accès refusé pour déplacer la tâche vers %s. " + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Accès refusé pour retirer la tâche de %s." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Accès refusé pour enregistrer la tâche vers %s." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Accès refusé pour enregistrer la tâche : %s. " + +#: lib/Forms/task.php:88 templates/view/task.inc:26 +msgid "Alarm" +msgstr "Alerte" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Toutes les tâches" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Toujours afficher les tâches terminées ?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Toujours afficher les tâches en retard ?" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Croissant" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Titre du bloc" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Agenda" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Annuler" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Catégori_e" + +#: data.php:54 lib/Forms/task.php:76 lib/Forms/task.php:82 +#: templates/view/task.inc:8 config/prefs.php.dist:89 +#: config/prefs.php.dist:104 +msgid "Category" +msgstr "Catégorie" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +msgid "Change Permissions" +msgstr "Changer les permissions" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Modifier le tri de vos tâches et les options d'affichage." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "" +"Choisissez comment vous voulez recevoir des rappels pour les tâches avec des " +"alarmes :" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Choisissez si vous voulez être averti des créations, m. à j. ou suppressions " +"de tâches par courrier :" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Choisissez si vous voulez être averti des modifications ou des alarmes de " +"tâches." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Choisissez votre liste de tâches par défaut." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Cliquer ou copier cette URL pour afficher cette liste de tâches" + +#: templates/panel.inc:43 +msgid "Close" +msgstr "Fermer" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Fermer la recherche" + +#: view.php:99 +msgid "Complete" +msgstr "Terminer" + +#: lib/Block/summary.php:175 templates/list/task_summaries.inc:11 +#, php-format +msgid "Complete \"%s\"" +msgstr "Terminer « %s »" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Terminer une tâche" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Terminer des tâches" + +#: lib/Nag.php:379 lib/Block/summary.php:173 +msgid "Completed" +msgstr "Terminé" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "Terminé %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Tâches terminées" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Tâche mère terminée, à marquer d'abord en cours" + +#: lib/Forms/task.php:94 templates/list/task_headers.inc:31 +#: templates/view/task.inc:38 config/prefs.php.dist:91 +#: config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Terminée ?" + +#: data.php:58 +msgid "Completion Status" +msgstr "État d'achèvement" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "La connexion a échoué : %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Créer" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Créer une liste de tâches" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Créer une nouvelle liste de tâches" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Créé" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Jour" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Jour(s)" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Liste de tâches par défaut :" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Défauts pour les nouvelles tâches" + +#: lib/Forms/task.php:87 +msgid "Delay Start Until" +msgstr "Retarder le début jusqu'à" + +#: view.php:106 lib/Forms/DeleteTaskList.php:45 tasklists/index.php:57 +#: templates/tasklist_list.php:37 +msgid "Delete" +msgstr "Supprimer" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Supprimer %s." + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Confirmation de suppression" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Comportement du bouton de suppression" + +#: task.php:105 lib/Forms/task.php:99 +msgid "Delete this task" +msgstr "Supprimer cette tâche" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "Supprimé %s." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Décroissant" + +#: data.php:53 lib/Forms/task.php:95 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/EditTaskList.php:44 +msgid "Description" +msgstr "Description" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Options d'affichage" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Afficher l'URL" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Voulez-vous confirmer la suppression des entrées ?" + +#: data.php:55 lib/Forms/task.php:86 templates/view/task.inc:22 +msgid "Due By" +msgstr "Échéance" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Échéance" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Échéance spécifiée." + +#: view.php:102 tasklists/index.php:55 templates/tasklist_list.php:33 +msgid "Edit" +msgstr "Éditer" + +#: lib/Block/summary.php:166 templates/list/task_summaries.inc:38 +#, php-format +msgid "Edit \"%s\"" +msgstr "Éditer « %s »" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Éditer %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Éditer la tâche" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Modifier catégories et étiquettes" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "Éditer : %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Erreur lors de la suppression de la tâche : %s" + +#: lib/Forms/task.php:93 templates/view/task.inc:34 +msgid "Estimated Time" +msgstr "Heure prévue" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Exporter" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Exporter des tâches" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Donnée externe" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Options générales" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Heure" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Heure(s)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importation des tâches, étape %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Importer/Exporter des tâches" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Tâches en-_cours" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Tâches en cours" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Sous-tâches en cours, à terminer d'abord" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Tâches en cours" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Dernière modification" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Mes liste des tâches" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Marquer « %s » comme en cours" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Marquer comme en cours" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "Nombre maximal de tâches" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menu des alertes" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menu" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minute" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minute(s)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mois" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Plus d'options..." + +#: lib/api.php:1001 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Plusieurs composants iCalendar trouvés ; seulement une vToDo est supportée." + +#: templates/panel.inc:70 +#, fuzzy +msgid "My Task Lists:" +msgstr "Mes listes de tâches :" + +#: list.php:34 +msgid "My Tasks" +msgstr "Ma liste de tâches" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "N_om" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "N_om" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab : tâche %s non trouvée" + +#: data.php:52 lib/Forms/task.php:65 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/EditTaskList.php:43 +msgid "Name" +msgstr "Nom" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Nouvelle tâche" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Suivant" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "Non" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Pas de retard" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Pas d'échéance." + +#: lib/api.php:405 lib/api.php:724 lib/api.php:782 lib/api.php:994 +msgid "No iCalendar data was found." +msgstr "Aucune donnée iCalendar trouvée." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Pas de tâche mère" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "Pas de liste de tâches disponible pour les invités." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Pas de tâche correspondante" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "Aucune tâche à afficher" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Aucun" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Non terminé" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Non privé" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Non trouvé" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Notifications" + +#: config/prefs.php.dist:168 +msgid "On all shown tasklists" +msgstr "Sur toutes les listes de tâches affichées" + +#: config/prefs.php.dist:169 +msgid "On all tasklists I have read access to" +msgstr "Sur toutes les listes de tâches auxquelles j'ai accès en lecture" + +#: config/prefs.php.dist:167 +msgid "On my tasklists only" +msgstr "Seulement sur mes listes de tâches" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_ri" + +#: lib/Forms/task.php:72 +msgid "Parent task" +msgstr "Tâche mère" + +#: lib/api.php:591 lib/api.php:629 lib/api.php:662 lib/api.php:698 +#: lib/api.php:820 lib/api.php:875 lib/api.php:939 lib/api.php:976 +#: lib/api.php:1087 lib/api.php:1134 +msgid "Permission Denied" +msgstr "Autorisation rejetée" + +#: lib/api.php:178 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Autorisation rejetée" + +#: data.php:57 lib/Forms/task.php:90 templates/view/task.inc:30 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Priorité" + +#: lib/Driver.php:907 templates/view/task.inc:14 +msgid "Private" +msgstr "Privé" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Tâche privée" + +#: lib/Forms/task.php:85 templates/view/task.inc:12 +msgid "Private?" +msgstr "Privé ?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Supprimer réellement la liste de tâches \"%s\"? Cela ne peut être annulé et " +"toutes les données de cette tâches seront définitivement supprimées." + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Supprimer cette tâche définitivement ?" + +#: lib/Forms/task.php:97 lib/Forms/EditTaskList.php:46 templates/panel.inc:88 +msgid "Save" +msgstr "Enregistrer" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s enregistré." + +#: search.php:14 lib/Block/tree_menu.php:46 templates/list/header.inc:4 +#: templates/search/search.inc:31 +msgid "Search" +msgstr "Recherche" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Rechercher dans :" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "_Texte recherché :" + +#: templates/panel.inc:58 +msgid "Search for Task Lists:" +msgstr "Recherche de listes de tâches : " + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Recherche :" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Recherche : Résultats de « %s »" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Sélectionnez une date" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Choisissez le format d'exportation :" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Choisissez le fichier à importer :" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Choisissez le format du fichier source :" + +#: templates/panel.inc:79 +#, fuzzy +msgid "Shared Task Lists:" +msgstr "Listes de tâches partagées :" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Montrer la liste des tâches dans une colonne séparée ?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Afficher les boutons d'action ?" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Afficher les tâches terminées, en cours, ou toutes les tâches dans la liste ?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"Afficher les données d'une de ces autres applications dans la liste de " +"tâches ?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Afficher les données depuis d'autres applications ou sources." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Afficher les dates de remise ?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Afficher les priorités ?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Afficher les alarmes de tâche ?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Afficher la catégorie de la tâche ?" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Montrer l'ensemble des options des listes des tâches ?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Afficher le nom de la liste de tâches ?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Afficher les tâches de ces catégories" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Afficher les tâches de ces listes" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Tri selon la catégorie" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Tri par état d'achèvement" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Tri par date d'échéance" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Tri par nom" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Tri par priorité" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Tri par nom d'utilisateur" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Sens du tri :" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Trier les tâches par :" + +#: data.php:56 +msgid "Start" +msgstr "Début" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Date de début" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Date de début spécifiée." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "URL d'inscription" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Alarme de tâche" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Alarme de tâche ?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Défauts des tâches" + +#: lib/Forms/task.php:68 templates/tasklist_list.php:15 +msgid "Task List" +msgstr "Liste de tâches" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Information de liste de tâches" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Liste des listes de tâches" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Options de la liste de tâches et du partage" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Listes de tâches de %s." + +#: templates/panel.inc:52 templates/panel.inc:53 +msgid "Task Lists" +msgstr "Listes de tâches" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Nom de la tâche" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Note de la tâche" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Note de la tâche ?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Recherche de tâche" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Tâche ajoutée :" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Tâche supprimée :" + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Tâche modifiée :" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "Tâche non trouvée" + +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Tasklist" +msgstr "Liste des tâches" + +#: lib/api.php:1056 +msgid "Tasks" +msgstr "Tâches" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Sommaire des tâches" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Le fichier %s ne contenait aucune tâche." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Le moteur des tâches n'est pas disponible actuellement." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Le moteur de l'agenda n'est pas disponible actuellement : %s" + +#: lib/Forms/task.php:133 +msgid "The alarm value must not be empty." +msgstr "La valeur de l'alarme ne doit pas être vide." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "L'heure courante" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"La tâche « %s » a été ajoutée à la liste « %s », avec une date de remise " +"au : %s." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"La tâche « %s » a été retirée de la liste « %s », avec une date de remise " +"au : %s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"La tâche « %s » a été m. à j. dans la liste « %s », avec une date de remise " +"au : %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "La liste de tâches « %s » a été créée." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "La liste de tâches « %s » a été supprimée." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "La liste de tâches\"%s\" a étérenommé en \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "La liste de tâches « %s » a été enregistrée." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Alors :" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Aucune tâche ne correspond au présent critère. " + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Un problème est apparu en terminant « %s » : %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Un problème est apparu en supprimant « %s » : %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Un problème est survenu lors de l'enregistrement de la tâche %s." + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Une erreur est apparue lors de l'importation des données : %s" + +#: lib/api.php:397 lib/api.php:716 lib/api.php:988 +msgid "There was an error importing the iCalendar data." +msgstr "Une erreur est survenue lors de l'importation des données iCalendar." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Aucune tâches à exporter n'a été trouvée." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Ce format de fichier n'est pas pris en compte." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Cette liste de tâches ne peut être supprimée." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Pour s'inscrire à cette liste de tâches depuis un autre logiciel, utilisez " +"cette URL." + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Suppression impossible de « %s » : %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Chargement impossible de la définition de %s." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Impossible de sauvegarder la liste de tâches \"%s\": %s" + +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:81 lib/Block/summary.php:31 lib/Block/summary.php:222 +#: templates/list/task_summaries.inc:62 templates/view/task.inc:9 +msgid "Unfiled" +msgstr "Hors catégorie" + +#: lib/api.php:502 lib/api.php:789 lib/api.php:847 lib/api.php:901 +#: lib/api.php:1026 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Type de contenu non-supporté : %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Rappel d'une tâche à échoir.\n" +"\n" +"%s\n" +"\n" +"Date : %s\n" +"Heure : %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Semaine(s)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Heure d'échéance par défaut pour les tâches ?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Lors de la création d'une nouvelle tâche, positionner la date d'échéance par " +"défaut dans combien de jours ? (0 signifie aujourd'hui)" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Lors de la création d'une nouvelle tâche, doit-elle avoir une date " +"d'échéance par défaut ?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "À quelle liste les tâches doivent-elles être ajoutées ?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Année" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Vous n'êtes pas autorisé à changer cette liste de tâches." + +#: task.php:61 data.php:41 data.php:151 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Vous n'êtes pas autorisé à créer plus de %d tâches." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Vous n'êtes pas autorisé à supprimer cette liste de tâches." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Vous n'êtes pas autorisé à consulter la liste de tâches." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "Vous avez demandé à être averti des tâches ajoutées à vos listes." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Vous avez demandé à être averti de la suppression de tâches dans vos listes." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Vous avez demandé à être averti de la m. à j. de tâches dans vos listes." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Votre liste de tâches par défaut :" + +#: templates/panel.inc:65 +msgid "[Manage Task Lists]" +msgstr "[Mes liste des tâches]" + +#: lib/Block/summary.php:101 lib/Block/summary.php:206 +#: templates/list/task_summaries.inc:46 +msgid "[none]" +msgstr "[aucun]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Toutes les tâches" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Toutes les tâches" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Catégorie" + +#: view.php:99 +msgid "_Complete" +msgstr "_Terminée" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "Tâches _terminées" + +#: view.php:106 +msgid "_Delete" +msgstr "S_upprimer" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Description" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Date d'éc_héance" + +#: view.php:102 +msgid "_Edit" +msgstr "É_diter" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Tâches à _venir" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "_Importer/Exporter" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "_Liste des tâches" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "_Nouvelle tâche" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "Im_primer" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "_Recherche" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Liste des _tâches" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "du matin" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "dans %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "pas d'heure" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "de l'a.-m." + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/hu_HU.po b/nag/po/hu_HU.po new file mode 100644 index 000000000..9b13fcd05 --- /dev/null +++ b/nag/po/hu_HU.po @@ -0,0 +1,1225 @@ +# Nag Hungarian translation file. +# Copyright 2002-2008 Laszlo L. Tornoci +# This file is distributed under the same license as the Nag package. +# Latest versions: ftp://xenia.sote.hu/pub/linux/horde/ +# +# Laszlo L. Tornoci , 2008. +msgid "" +msgstr "" +"Project-Id-Version: Nag-h3-2.2\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-01-22 17:27+0100\n" +"PO-Revision-Date: 2008-01-26 17:55+0100\n" +"Last-Translator: Laszlo L. Tornoci \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s alfeladatokkal együtt)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d óra" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d óra, %d perc" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d óra, %d perc" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d óra" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d óra, %d perc" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d óra, %d perc" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d perc" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d perc" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s, %s" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:41 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s %s múlva kezdõdik" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:43 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s most kezdõdik." + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s nem teljes." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "A %s fájl importálása sikeresen megtörtént" + +#: lib/Nag.php:516 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "%s feladatlistája" + +#: lib/Nag.php:315 lib/Forms/task.php:58 +msgid "(highest)" +msgstr "(legsürgõsebb)" + +#: lib/Nag.php:315 lib/Forms/task.php:59 +msgid "(lowest)" +msgstr "(legkevésbé sürgõs)" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "Nincs jogosultsága %s feladatot befejezetté nyilvánítani." + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Nincs jogosultsága %s feladatot törölni." + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Nincs jogosultsága %s feladatot módosítani." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Nincs jogosultsága a feladatot módosítani: %s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Nincs jogosultsága %s feladatot áthelyezni." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Nincs jogosultsága a feladatot eltávolítani %s-bõl." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Nincs jogosultsága a feladatot elmenteni %s-be." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Nincs jogosultsága a feladatot elmenteni: %s" + +#: templates/view/task.inc:26 lib/Forms/task.php:88 +msgid "Alarm" +msgstr "Figyelmeztetés" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Az összes feladat" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Mindig mutassuk a kész feladatokat?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "A határidõig el nem végzett feladatokat mindig mutassuk?" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "növekvõ" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "A képernyõmodul neve" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Naptár" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Mégse" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kategória" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:76 +#: lib/Forms/task.php:82 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Kategória" + +#: templates/tasklist_list.php:35 tasklists/index.php:56 +msgid "Change Permissions" +msgstr "A jogosultságok módosítása" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Sorbarendezési és megjelenítési beállítások." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "" +"Válassza ki, milyen módon szeretné megkapni a feladatokra való " +"figyelmeztetéseket:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Válassza ki, hogy szeretne-e emailben értesítést kapni az új, módosított " +"vagy törölt feladatokról:" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Válassza ki, hogy szeretne-e értesítést kapni a feladatok megváltozásáról " +"ill. a figyelmeztetésekrõl." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Válassza ki az Ön alapértelmezés szerinti feladatlistáját." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "" +"Kattintson rá vagy másolja le ezt az URL-t a feladatlista megjelenítéséhez" + +#: templates/panel.inc:43 +msgid "Close" +msgstr "Bezárás" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "A keresés bezárása" + +#: view.php:99 +msgid "Complete" +msgstr "Kész" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:175 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" készen van" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "A feladat késszé nyilvánítása" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "A feladatok befejezése" + +#: lib/Nag.php:379 lib/Block/summary.php:173 +msgid "Completed" +msgstr "Kész" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "%s készen van." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Az elkészült feladatok" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "A fõfeladat kész, elõször állítsa át befejezetlenre" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:94 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Elkészült a feladat?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Státusz" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "A kapcsolat nem sikerült: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Létrehozás" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Feladatlista létrehozása" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Új feladatlista létrehozása" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Létrehozva" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "nap" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "nap" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Az alapértelmezés szerinti feladatlista" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Az új feladatok alapértelmezett beállításai" + +#: lib/Forms/task.php:87 +msgid "Delay Start Until" +msgstr "A kezdést módosítsuk erre" + +#: view.php:106 templates/tasklist_list.php:37 tasklists/index.php:57 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Törlés" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "%s törlése" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "A törlés megerõsítése" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "A törlés gomb viselkedése" + +#: task.php:105 lib/Forms/task.php:99 +msgid "Delete this task" +msgstr "A feljegyzés törlése" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "%s-t kitöröltük." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "csökkenõ" + +#: data.php:53 lib/Forms/EditTaskList.php:44 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/task.php:95 +msgid "Description" +msgstr "Leírás" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Megjelenítési beállítások" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Az URL megjelenítése" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Az adatok törlését megelõzõen óhajt-e egy megerõsítõ kérdést?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:86 +msgid "Due By" +msgstr "Határidõ" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "A határidõ napja" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "A határidõ napja." + +#: view.php:102 templates/tasklist_list.php:33 tasklists/index.php:55 +msgid "Edit" +msgstr "Módosítás" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, php-format +msgid "Edit \"%s\"" +msgstr "\"%s\" módosítása" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "%s módosítása" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "A feladat módosítása" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "A kategóriák és színeik módosítása" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "\"%s\" módosítása" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Nem sikerült a feladat törlése: %s" + +#: templates/view/task.inc:34 lib/Forms/task.php:93 +msgid "Estimated Time" +msgstr "Becsült idõtartam" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Exportálás" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Feladatok exportálása" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Külsõ adat" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Általános beállítások" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "óra" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "óra" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Feladatok importálása, %d. lépés" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Feladatok importálása/exportálása" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Elvégzetlen feladatok" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Elvégzetlen feladatok" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Az alfeladatok befejezetlenek, elõször végezze el õket" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Elvégzetlen feladatok" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Utolsó módosítás" + +#: templates/tasklist_list.php:2 tasklists/index.php:61 +msgid "Manage Task Lists" +msgstr "Feladatlisták kezelése" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Jelöljük meg \"%s\"-t, mint elvégzetlent" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Jelöljük meg, mint elvégzetlent" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "A feladatok maximális száma" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Figyelmeztetések menü" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menülista" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "perc" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "perc" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "hónap" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "További beállítások..." + +#: lib/api.php:1001 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Több iCalendar komponens van jelen; csak egy vTodo használata támogatott." + +#: templates/panel.inc:70 +msgid "My Task Lists:" +msgstr "Feladatlistáim:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Feladataim" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "Elnevezés" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Elnevezés" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: %s feladat nem található" + +#: data.php:52 lib/Forms/EditTaskList.php:43 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/task.php:65 +msgid "Name" +msgstr "Elnevezés" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Új feladat" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Következõ" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "nem" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Nincs késleltetés" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Nincs határidõ." + +#: lib/api.php:405 lib/api.php:724 lib/api.php:782 lib/api.php:994 +msgid "No iCalendar data was found." +msgstr "Nem található iCalendar adat." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Nincs fõfeladat" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "A vendég felhasználók részére nem áll rendelkezésre feladatlista." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Nincs ilyen feladat" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "Nincs megjeleníthetõ feladat" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "nincs" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Elvégzetlen" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "nem titkos" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "nem található" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Értesítések" + +#: config/prefs.php.dist:168 +msgid "On all shown tasklists" +msgstr "Az összes megjelenített feladatlistán" + +#: config/prefs.php.dist:169 +msgid "On all tasklists I have read access to" +msgstr "Az összes feladatlistán, amihez hozzáférek" + +#: config/prefs.php.dist:167 +msgid "On my tasklists only" +msgstr "Csak a saját feladatlistáimon" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "Pri" + +#: lib/Forms/task.php:72 +msgid "Parent task" +msgstr "Fõfeladat" + +#: lib/api.php:591 lib/api.php:629 lib/api.php:662 lib/api.php:698 +#: lib/api.php:820 lib/api.php:875 lib/api.php:939 lib/api.php:976 +#: lib/api.php:1087 lib/api.php:1134 +msgid "Permission Denied" +msgstr "Önnek nincs ehhez elegendõ jogosultsága" + +#: lib/api.php:178 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Önnek nincs ehhez elegendõ jogosultsága" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:90 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Prioritás (sürgõsség)" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Titkos" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Titkos feladat" + +#: templates/view/task.inc:12 lib/Forms/task.php:85 +msgid "Private?" +msgstr "Titkos?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Valóban törölni kívánja ezt a(z) \"%s\" feladatlistát? Ez nem " +"visszafordítható lépés, és a feladatlista adatait véglegesen törli." + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Valóban törölni kívánja ezt a feladatot?" + +#: templates/panel.inc:88 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:97 +msgid "Save" +msgstr "Mentés" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s-t elmentettük." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Keresés" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Keresés:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "A keresendõ szöveg:" + +#: templates/panel.inc:58 +msgid "Search for Task Lists:" +msgstr "Feladatlisták keresése:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Keresés:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Keresés: \"%s\" eredménye" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Válasszon ki egy dátumot" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Válassza ki az exportálás formátumát:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Válassza ki az importálandó fájlt:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Válassza ki, milyen formátumú fájlból kíván importálni:" + +#: templates/panel.inc:79 +msgid "Shared Task Lists:" +msgstr "Megosztott feladatlisták:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Jelenjen meg a Feladatlista egy külön oszlopban listázáskor?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Legyenek funkcióval ellátott ikonok?" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "A kész, az elvégzetlen vagy az összes feladatot mutassuk a listában?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Feladatlistájában jelenjenek-e meg ezen más programok adatai?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Mutassuk más programok ill. adatforrások adatait." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Mutassuk a határidõt?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Mutassuk a prioritást?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Mutassuk a feladatokra figyelmeztetõ jelzéseket?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Mutassuk a kategóriát?" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Mutassuk a feladatlista beállítási lehetõségeit?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Mutassuk a feladatlista nevét?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "A következõ kategóriákba sorolt feladatokat mutassuk" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "A következõ feladatlisták tartalmát mutassuk" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Kategória szerinti sorrend" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "A befejezettség szerinti sorrend" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Határidõ szerinti sorrend" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Elnevezés szerinti sorrend" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Prioritás szerinti sorrend" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Felhasználói név szerinti sorrend" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "A sorbarendezés iránya:" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "A sorbarendezés elsõ szempontja:" + +#: data.php:56 +msgid "Start" +msgstr "Kezdet" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Kezdõ dátum" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Kezdõ dátum." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "Elérési URL" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Figyelmeztetõ jelzés" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Tartozik a feladathoz figyelmeztetés?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "A feladat alapértelmezett beállításai" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:68 +msgid "Task List" +msgstr "Feladatlista" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Feladatlista információk" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Feladatlisták" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Feladatlisták és megosztásuk" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "A feladatlista tulajdonosa %s." + +#: templates/panel.inc:52 templates/panel.inc:53 +msgid "Task Lists" +msgstr "Feladatlisták" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "A feladat elnevezése" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Megjegyzés a feladathoz" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Van megjegyzés?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Keresés a feladatlistában" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Feladat hozzáadása:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Feladat törlése: " + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Feladat módosítása:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "A feladat nem található." + +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Tasklist" +msgstr "Feladatlista" + +#: lib/api.php:1056 +msgid "Tasks" +msgstr "Feladatok" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Feladatlista összefoglalás" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "A(z) \"%s\" állományban nem volt feladat." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "A Feladatlista alrendszer jelenleg nem áll rendelkezésre." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "A Feladatlista alrendszer jelenleg nem áll rendelkezésre: %s" + +#: lib/Forms/task.php:133 +msgid "The alarm value must not be empty." +msgstr "A figyelmeztetés nem lehet üres." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "A mostani óra" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"\"%s\" feladatot hozzáadtuk a(z) \"%s\" feladatlistához a következõ " +"határidõvel: %s." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"\"%s\" feladatot töröltük a(z) \"%s\" feladatlistából. A határidõ ez volt: %" +"s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"\"%s\" feladatot módosítottuk a(z) \"%s\" feladatlistában. A határidõvel ez " +"volt: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "A(z) \"%s\" feladatlistát létrehoztuk." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "A(z) \"%s\" feladatlistát töröltük." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "\"%s\" feladatlistát átneveztük erre: \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "A(z) \"%s\" feladatlistát elmentettük." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "a második szempont:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Nincs a feltételeknek megfelelõ feladat." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "A(z) %s feladat késszé nyilvánítása során hiba lépett fel: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "A(z) %s feladat törlése során hiba lépett fel: %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "A feladat mentése során hiba lépett fel: %s" + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Az importálás során hiba történt: %s" + +#: lib/api.php:397 lib/api.php:716 lib/api.php:988 +msgid "There was an error importing the iCalendar data." +msgstr "Az iCalendar adatok importálása során hiba történt." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Nem volt exportálható feladat." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Ismeretlen fájlformátum." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Ez a feladatlista nem törölhetõ." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Ha ezt a feladatlistát egy másik programból kívánja elérni, ezt az URL-t " +"használja: " + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "\"%s\" törlése nem lehetséges: %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Nem sikerült beolvasni %s definícióját." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "\"%s\" feladatlista mentése nem sikerült: %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:81 lib/Block/summary.php:31 lib/Block/summary.php:222 +msgid "Unfiled" +msgstr "besorolatlan" + +#: lib/api.php:502 lib/api.php:789 lib/api.php:847 lib/api.php:901 +#: lib/api.php:1026 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Nem támogatott tartalomtípus: %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Szeretnénk emlékeztetni erre a határidõs feladatra.\n" +"\n" +"%s\n" +"\n" +"Dátum: %s\n" +"Idõ: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Hét" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Mi legyen a feladatok alapértelmezett határideje?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Új feladat létrehozásakor, hány nappal késõbb legyen a határidõ (0 az " +"aznapot jelenti)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Új feladat létrehozásakor, legyen határideje?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Melyik listába vegyük föl a feladatokat?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "év" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Ön nem jogosult ezt a feladatlistát megváltoztatni." + +#: data.php:41 data.php:151 task.php:61 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Ön legfeljebb %d feladatot hozhat létre." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Ön nem jogosult törölni ezt a feladatlistát." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Ön nem jogosult megtekinteni ezt a feladatlistát." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Ön értesítést kért arra az esetre, ha új feladatok kerülnek a " +"feladatlistáira." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Ön értesítést kért arra az esetre, ha feladatok törlõdnek a feladatlistáiról." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Ön értesítést kért arra az esetre, ha módosulnak a feladatok a " +"feladatlistáin." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Az Ön alapértelmezés szerinti feladatlistája:" + +#: templates/panel.inc:65 +msgid "[Manage Task Lists]" +msgstr "[Feladatlisták kezelése]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +msgid "[none]" +msgstr "[egy sem]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "Az összes feladat" + +#: list.php:111 +msgid "_All tasks" +msgstr "Az összes feladat" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "Kategória" + +#: view.php:99 +msgid "_Complete" +msgstr "Elkészült" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "Kész feladatok" + +#: view.php:106 +msgid "_Delete" +msgstr "Törlés" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "Megjegyzés" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "A határidõ napja" + +#: view.php:102 +msgid "_Edit" +msgstr "Módosítás" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Jövõbeli feladatok" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "Import/_Export" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "_Lista" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "Ú_j feladat" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "_Nyomtatás" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "Kere_sés" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Feladatlista" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "de." + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "%s jegyzettömbben" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "nincs idõpont" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "du." + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "feladatlista.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "feladatlista.ics" diff --git a/nag/po/id_ID.po b/nag/po/id_ID.po new file mode 100644 index 000000000..bc9e6a39f --- /dev/null +++ b/nag/po/id_ID.po @@ -0,0 +1,383 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag v1.0\n" +"POT-Creation-Date: 2004-01-09 15:43+0700\n" +"PO-Revision-Date: 2004-01-09 16:30+0700\n" +"Last-Translator: Slamin \n" +"Language-Team: UPT TI UNEJ \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d tugas" + +msgid "(highest)" +msgstr "(tertinggi)" + +msgid "(lowest)" +msgstr "(terendah)" + +msgid "1 task" +msgstr "1 tugas" + +msgid "Adding A New Task" +msgstr "Tambahkan Tugas Baru" + +msgid "Allows categories to be added/removed/renamed." +msgstr "Membolehkan kategori untuk ditambah/dihapus/diganti nama." + +#, c-format +msgid "Any tasks in a category that is deleted will become %s." +msgstr "Tugas pada kategori yang dihapus akan menjadi %s." + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "Anda yakin ingin menghapus tugas ini secara permanen?" + +msgid "Ascending" +msgstr "Menaik" + +msgid "Back to Task List" +msgstr "Kembali ke Daftar Tugas" + +msgid "Cannot be changed." +msgstr "Tidak dapat diubah." + +msgid "Category Management" +msgstr "Manajemen Kategori" + +msgid "Category" +msgstr "Kategori" + +msgid "Change your task sorting and display options." +msgstr "Ubah urutan tugas anda dan tampilkan pilihan." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "%d tugas diubah ke prioritas %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "1 tugas diubah ke prioritas %d." + +msgid "Choose Action:" +msgstr "Pilih Aksi:" + +msgid "Clear Form" +msgstr "Hapus Formulir" + +msgid "Complete Task" +msgstr "Tugas Selesai" + +msgid "Complete Tasks" +msgstr "Tugas-tugas Selesai" + +msgid "Completed?" +msgstr "Selesai?" + +msgid "Completion Status" +msgstr "Status Penyelesaian" + +msgid "Create a New Category" +msgstr "Buat Kategori Baru" + +msgid "Default sorting criteria:" +msgstr "Kriteria urutan default:" + +msgid "Default sorting direction:" +msgstr "Arah urutan default:" + +msgid "Delete Task" +msgstr "Hapus Tugas" + +msgid "Delete Tasks" +msgstr "Hapus Tugas-tugas" + +msgid "Delete" +msgstr "Hapus" + +#, c-format +msgid "Deleted %d tasks." +msgstr "%d tugas dihapus." + +msgid "Deleted 1 task." +msgstr "1 tugas dihapus." + +msgid "Descending" +msgstr "Menurun" + +msgid "Description" +msgstr "Diskripsi" + +msgid "Display Options" +msgstr "Tampilkan Pilihan" + +msgid "Due By" +msgstr "Berakhir Pada" + +msgid "Due Date" +msgstr "Batas Akhir" + +msgid "Help" +msgstr "Bantuan" + +msgid "Language" +msgstr "Bahasa" + +msgid "List Tasks" +msgstr "Daftar Tugas" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Tandai %d tugas sebagai selesai." + +msgid "Marked 1 task as completed." +msgstr "Tandai 1 tugas sebagai selesai" + +msgid "Modify Task" +msgstr "Ubah Tugas" + +msgid "Modifying:" +msgstr "Mengubah:" + +msgid "Nag is not properly configured" +msgstr "Nag tidak dikonfigurasi secara sempurna" + +msgid "Name" +msgstr "Nama" + +msgid "New Category" +msgstr "Kategori Baru" + +msgid "New Task" +msgstr "Tugas Baru" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Tidak ada informasi konfigurasi yang dispesifikasi pada Tugas SQL." + +msgid "No due date." +msgstr "Tidak ada batas akhir." + +msgid "No tasks were changed." +msgstr "Tidak ada tugas yang berubah." + +msgid "No tasks were deleted." +msgstr "Tidak tugas yang dihapus." + +msgid "No" +msgstr "Tidak" + +msgid "None specified" +msgstr "Tidak ada yang dispesifikasi" + +msgid "Options" +msgstr "Pilihan" + +msgid "Other Options" +msgstr "Pilihan Lain" + +msgid "Please enter a name for the new category:" +msgstr "Masukkan nama untuk kategori baru:" + +msgid "Please enter a new name for this category:" +msgstr "Masukkan nama baru untuk kategori ini:" + +msgid "Please enter the task priority (1-5):" +msgstr "Masukkan prioritas tugas (1-5):" + +msgid "Pri" +msgstr "Pri" + +msgid "Print" +msgstr "Cetak" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "Prioritas harus antara 1 dan 5. Masukkan prioritas yang benar:" + +msgid "Priority" +msgstr "Prioritas" + +msgid "Problem?" +msgstr "Masalah?" + +msgid "Refresh List" +msgstr "Tampilkan Daftar" + +msgid "Rename" +msgstr "Ganti nama" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "'database' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "'hostspec' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "'password' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "'phptype' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "'table' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "'username' yang diperlukan tidak dispesifikasi pada konfigurasi tugas." + +msgid "Save Task" +msgstr "Simpan Tugas" + +msgid "Search Results" +msgstr "Hasil Pencarian" + +msgid "Search Scope" +msgstr "Lingkup Pencarian" + +msgid "Search Text" +msgstr "Teks Pencarian" + +msgid "Search" +msgstr "Cari" + +msgid "Select Category" +msgstr "Pilih Kategori" + +msgid "Select your preferred language:" +msgstr "Pilih bahasa yang diinginkan:" + +msgid "Selected?" +msgstr "Dipilih?" + +msgid "Set Task Priority" +msgstr "Atur Prioritas Tugas" + +msgid "Set the your preferred display language." +msgstr "Atur tampilan bahasa yang diinginkan." + +msgid "Show completed tasks in the task list?" +msgstr "Tunjukkan tugas yang selesai pada daftar tugas?" + +msgid "Show due dates in the summary view?" +msgstr "Tunjukkan batas akhir pada tampilan ringkasan?" + +msgid "Show priorities in the summary view?" +msgstr "Tunjukkan prioritas pada tampilan ringkasan?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "Beberapa file konfigurasi Nag hilang:" + +msgid "Sort Direction" +msgstr "Arah Urutan" + +msgid "Sort by Category" +msgstr "Urut berdasarkan Kategori" + +msgid "Sort by Completion Status" +msgstr "Urut berdasarkan Status Penyelesaian" + +msgid "Sort by Due Date" +msgstr "Urut berdasarkan Batas Akhir" + +msgid "Sort by Name" +msgstr "Urut berdasarkan Nama" + +msgid "Sort by Priority" +msgstr "Urut berdasarkan Prioritas" + +msgid "Task Details" +msgstr "Rincian Tugas" + +msgid "Task List" +msgstr "Daftar Tugas" + +msgid "Task Name" +msgstr "Nama Tugas" + +msgid "Task Note" +msgstr "Catatan Tugas" + +msgid "Task Note?" +msgstr "Catatan Tugas?" + +msgid "The requested task does not exist." +msgstr "Tugas yang diminta tidak ada." + +msgid "The task was saved." +msgstr "Tugas sudah disimpan." + +msgid "There was a problem deleting tasks." +msgstr "Ada masalah saat menghapus tugas." + +msgid "There was a problem saving the task." +msgstr "Ada masalah saat menyimpan tugas." + +msgid "There was a problem setting task completion status." +msgstr "Ada masalah saat mengatur status penyelesaian tugas." + +msgid "There was a problem setting task priority." +msgstr "Ada masalah saat mengatur prioritas tugas." + +msgid "These changes can not be undone!" +msgstr "Perubahan ini tidak bisa dibatalkan!" + +msgid "This file contains preferences for Nag." +msgstr "File ini berisi preference untuk Nag." + +msgid "" +"This file controls the stylesheet that is used to set colors and fonts in " +"addition to or overriding Horde defaults." +msgstr "" +"File ini mengontrol stylesheet yang digunakan untuk mengatur warna dan font " +"dalam penambahan atau penggantian default Horde." + +msgid "" +"This is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"Ini adalah file utama konfigurasi Nag. File ini berisi pilihan untuk semua " +"scripts Nag" + +msgid "Undo Changes" +msgstr "Batalkan Perubahan" + +msgid "Unfiled" +msgstr "Tidak di file" + +msgid "Unknown task" +msgstr "Tugas tidak diketahui" + +msgid "Unknown" +msgstr "Tidak diketahui" + +msgid "User Options" +msgstr "Pilihan User" + +msgid "View Task Details" +msgstr "Lihat Rincian Tugas" + +msgid "Yes" +msgstr "Ya" + +msgid "You are creating a new category." +msgstr "Anda sedang membuat kategori baru." + +msgid "You must choose a category." +msgstr "Anda harus memilih kategori." + +msgid "You must select at least one task first." +msgstr "Anda harus memilih dulu paling sedikit satu tugas." + +msgid "Your Information" +msgstr "Informasi Anda" + +msgid "Your task list is empty." +msgstr "Daftar tugas anda kosong." + +msgid "at" +msgstr "di" diff --git a/nag/po/it_IT.po b/nag/po/it_IT.po new file mode 100644 index 000000000..1ff64e2e1 --- /dev/null +++ b/nag/po/it_IT.po @@ -0,0 +1,1273 @@ +# Nag 2.1.3 Italian translation +# Copyright 2001 Free Software Foundation, Inc. +# Paola Carpenter ; Giovanni Meneghetti , 2001. +# Copyright 2003 Sergio G. Caredda. +# Sergio G. Caredda , 2003. +# Copyright 2007 nethesis srl. +# Cristian Manoni, Alessio Fattorini, Davide marini 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.2.1-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-06-13 13:02+0200\n" +"PO-Revision-Date: 2008-06-13 13:23+0100\n" +"Last-Translator: Nethesis srl \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s includendo sotto-tasks)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ora" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d ora, %d minuto" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d ora, %d minuti" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d ore" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d ore, %d minuti" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d ore, %d minuti" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuti" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minuti" + +#: lib/Nag.php:393 +#, php-format +msgid "%s at %s" +msgstr "%s a %s" + +#: lib/Nag.php:619 lib/Block/summary.php:121 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "%s elementi in %s" + +#: lib/Nag.php:617 lib/Block/summary.php:118 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr "%s inizia ora." + +#: task.php:238 +#, php-format +msgid "%s is now incomplete." +msgstr "%s adesso è incompleta." + +#: data.php:212 +#, php-format +msgid "%s successfully imported" +msgstr "%s file importato con successo" + +#: lib/Nag.php:545 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "%s's Lista Attività" + +#: lib/Nag.php:344 lib/Forms/task.php:61 +msgid "(highest)" +msgstr "(più alta)" + +#: lib/Nag.php:344 lib/Forms/task.php:62 +msgid "(lowest)" +msgstr "(più bassa)" + +#: task.php:222 +#, php-format +msgid "Access denied completing task %s." +msgstr "Accesso negato completando attività %s." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Accesso negato nella cancellazione dell'attività." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Accesso negato modificando l'attività." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Accesso negato modificando l'attività: %s." + +#: task.php:170 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Accesso negato salvano attività in %s." + +#: task.php:173 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Accesso negato rimuovendo le attività da %s." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Accesso negato salvano attività in %s." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Accesso negato salvano attività in %s." + +#: data.php:57 templates/view/task.inc:26 lib/Forms/task.php:91 +msgid "Alarm" +msgstr "Allarme" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Tutte le Attività" + +#: lib/Block/summary.php:75 +msgid "Always show completed tasks?" +msgstr "Attività incomplete" + +#: lib/Block/summary.php:71 +msgid "Always show overdue tasks?" +msgstr "Mostra sempre le attività scadute?" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Crescente" + +#: data.php:55 +msgid "Assignee" +msgstr "Assegnatario" + +#: lib/Block/summary.php:43 +msgid "Block title" +msgstr "Blocca titolo" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Calendario" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Annulla" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Cat_egoria" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:79 +#: lib/Forms/task.php:85 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Categoria" + +#: templates/tasklist_list.php:35 tasklists/index.php:56 +msgid "Change Permissions" +msgstr "Cambia Permessi" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Cambia le tue opzioni di ordinamento e visualizzazione delle attività." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Selezionare la modalità preferita per gli allarmi:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Scegliere se si desidera ricevere notifiche via email per la nuove attività, " +"attività modificate o eliminate:" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Scegliere se si vuole essere informati di modifiche e allarmi sulle attività" + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Lista delle Attività di default:" + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Clicca o copia questa URL per visualizzare questa lista" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Chiudi" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Chiudi Ricerca" + +#: view.php:114 +msgid "Complete" +msgstr "Completo" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:191 +#, php-format +msgid "Complete \"%s\"" +msgstr "Completa %s" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Completa attività" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Completa Attività" + +#: lib/Nag.php:408 lib/Block/summary.php:189 +msgid "Completed" +msgstr "Completata" + +#: task.php:236 +#, php-format +msgid "Completed %s." +msgstr "Attività %s Completata" + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Attività Complete" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Attività genitori completate, marcarle prima come incomplete" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:97 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Completata?" + +#: data.php:63 +msgid "Completion Date" +msgstr "Data di completamento" + +#: data.php:62 +msgid "Completion Status" +msgstr "Stato di completamento" + +#: lib/api.php:443 lib/api.php:704 +#, php-format +msgid "Connection failed: %s" +msgstr "Connessione fallita: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Crea" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Crea Lista delle Attività " + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Crea Lista delle Attività " + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Creato" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Giorno" + +#: lib/Nag.php:440 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Giorno(i)" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Lista delle Attività di default:" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Default per le nuove attività:" + +#: lib/Forms/task.php:90 +msgid "Delay Start Until" +msgstr "Ritarda l'Inizio il" + +#: view.php:121 templates/tasklist_list.php:37 tasklists/index.php:57 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Elimina" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Elimina %s" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Conferma di cancellazione" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Comportamento del pulsante di cancellazione" + +#: task.php:112 lib/Forms/task.php:102 lib/Forms/task.php:129 +msgid "Delete this task" +msgstr "Elimina questa Attività" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "Cancella %s" + +#: lib/api.php:686 +msgid "Deleting entire tasklists is not supported." +msgstr "Eliminare dell'intera lista attività non supportata." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Discendente" + +#: data.php:53 lib/Forms/CreateTaskList.php:37 lib/Forms/EditTaskList.php:44 +#: lib/Forms/task.php:98 +msgid "Description" +msgstr "Descrizione" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Opzioni di visualizzazione" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Mostra URL" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Vuoi confermare la cancellazione delle informazioni?" + +#: data.php:56 templates/view/task.inc:22 lib/Forms/task.php:89 +msgid "Due By" +msgstr "Scadenza" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Data Scadenza" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Data scadenza specificata." + +#: view.php:117 templates/tasklist_list.php:33 tasklists/index.php:55 +msgid "Edit" +msgstr "Modifica" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:182 +#, php-format +msgid "Edit \"%s\"" +msgstr "Modifica \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Modifica %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Modifica Attività" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Modifica categorie e colori" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Modifica: \"%s\"" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Si è verificato un problema eliminando: %s" + +#: data.php:61 templates/view/task.inc:34 lib/Forms/task.php:96 +msgid "Estimated Time" +msgstr "Tempo Previsto" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Esporta" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Esporta attività" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Dato Esterno" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Opzioni Generali" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Ora" + +#: lib/Nag.php:443 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Ora(e)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importazione attività, Step %d" + +#: data.php:218 +msgid "Import/Export Tasks" +msgstr "Importa/Esporta Attività" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Attività incomplete" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Attività incomplete" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Sub Attività Incomplete, completarle prima" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Attività incomplete" + +#: lib/api.php:520 +msgid "Invalid tasklist name supplied." +msgstr "Fornito nome lista attività non valido." + +#: lib/api.php:386 +msgid "Invalid tasklist requested." +msgstr "Lista attività richiesta non valida." + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Ultima Modifica" + +#: templates/tasklist_list.php:2 tasklists/index.php:61 +msgid "Manage Task Lists" +msgstr "[Gestisci le Liste]" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Marca \"%s\" come incompleta" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Marca come incompleta" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Numero massimo di attività" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menu Allarmi" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Manu Liste" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minuto" + +#: lib/Nag.php:446 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minuto(i)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mese" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "MaggioriOpzioni..." + +#: lib/api.php:1179 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Diversi iCalendar trovati; solo un vTodo è supportato." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Le Mie Liste Attività:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Le mie Attività" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "N_ome" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "No_me" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: attivvità %s non trovata" + +#: data.php:52 lib/Forms/CreateTaskList.php:36 lib/Forms/EditTaskList.php:43 +#: lib/Forms/task.php:68 +msgid "Name" +msgstr "Nome" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Nuova Attività" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Successivo" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "No" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Nessun ritardo" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Nessuna data di scadenza." + +#: lib/api.php:553 lib/api.php:902 lib/api.php:960 lib/api.php:1172 +msgid "No iCalendar data was found." +msgstr "Nessun iCalendar trovato." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "Nessuna attività genitore" + +#: lib/Nag.php:634 +msgid "No task lists are available to guests." +msgstr "Nessun calendario disponibile per gli ospiti." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Nessuna attività corrisponde" + +#: lib/Block/summary.php:245 +msgid "No tasks to display" +msgstr "Nessuna attività da visualizzare" + +#: lib/Nag.php:450 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Nessuno" + +#: lib/Nag.php:409 +msgid "Not Completed" +msgstr "Non Completa" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Non Riservata" + +#: lib/api.php:760 +msgid "Not configured" +msgstr "Non configurato" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Notifiche" + +#: config/prefs.php.dist:168 +msgid "On all shown task lists" +msgstr "In tutte le liste visualizzate:" + +#: config/prefs.php.dist:169 +msgid "On all task lists I have read access to" +msgstr "In tutte le liste in cui ho accesso in lettura" + +#: config/prefs.php.dist:167 +msgid "On my task lists only" +msgstr "Solo nelle mie liste attività" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_ri" + +#: lib/Forms/task.php:75 +msgid "Parent task" +msgstr "Attività Genitore" + +#: lib/api.php:769 lib/api.php:807 lib/api.php:840 lib/api.php:876 +#: lib/api.php:998 lib/api.php:1053 lib/api.php:1117 lib/api.php:1154 +#: lib/api.php:1267 lib/api.php:1314 +msgid "Permission Denied" +msgstr "Permesso Negato" + +#: lib/api.php:210 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Permesso Negato" + +#: data.php:59 templates/view/task.inc:30 lib/Forms/task.php:93 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Priorità" + +#: templates/view/task.inc:14 lib/Driver.php:903 +msgid "Private" +msgstr "Riservata" + +#: data.php:60 lib/Driver.php:901 +msgid "Private Task" +msgstr "Attività Riservata" + +#: templates/view/task.inc:12 lib/Forms/task.php:88 +msgid "Private?" +msgstr "Riservata?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Sei sicuro di eliminare la lista %s? Questa operazione non può essere " +"annullata e i dati saranno eliminati permanentemente." + +#: view.php:121 +msgid "Really delete this task?" +msgstr "Confermi cancellazione di questa Attività" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:100 +#: lib/Forms/task.php:127 +msgid "Save" +msgstr "Salva" + +#: task.php:201 +#, php-format +msgid "Saved %s." +msgstr "Attività %s Salvata." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Cerca" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Cerca In:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Cerca _Testo:" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Cerca lista attività :" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Cerca:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "ricerca: Risultati per \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Seleziona una data" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Seleziona il formato per esportare" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Seleziona il file da importare:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Seleziona il formato verso cui esportare:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "lista attività condivise:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Visualizzare la colonna TaskList nella lista delle Attività?" + +#: lib/Block/summary.php:51 +msgid "Show action buttons?" +msgstr "Mostra Contatti" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Mostra attività complete, incomplete o tutte nella lista attività?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Visualizza informazioni da ognuna di questo applicazioni?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Mostra Attività da altre applicazioni o sorgenti." + +#: lib/Block/summary.php:55 +msgid "Show due dates?" +msgstr "Mostra data di scadenza?" + +#: lib/Block/summary.php:47 +msgid "Show priorities?" +msgstr "Mostra priorità?" + +#: lib/Block/summary.php:63 +msgid "Show task alarms?" +msgstr "Mostra allarmi?" + +#: lib/Block/summary.php:67 +msgid "Show task category?" +msgstr "Sfoglia questa categoria" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Mostra pannello delle opzioni della lista attività?" + +#: lib/Block/summary.php:59 +msgid "Show tasklist name?" +msgstr "Mostra nome lista attività?" + +#: lib/Block/summary.php:84 +msgid "Show tasks from these categories" +msgstr "Mostra Attività da queste categorie" + +#: lib/Block/summary.php:79 +msgid "Show tasks from these tasklists" +msgstr "Mostra Attività da queste liste?" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Ordina per Categoria" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Ordina per Status di Completamento" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Ordina per data di scadenza" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Ordina per nome" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Ordina per priorità" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Ordina per nome utente" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Direzione di ordinamento" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Ordina Attività per" + +#: data.php:58 +msgid "Start" +msgstr "Inizie" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Data Inizio" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Data inizio specificata." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "URL di sottoscrizione" + +#: templates/list/task_summaries.inc:60 +msgid "Task Alarm" +msgstr "Allarme Attività" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Allarme Attività?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Default attività" + +#: lib/Driver/sql.php:100 +msgid "Task ID not found" +msgstr "ID attività non trovato" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:71 +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Task List" +msgstr "Lista Attività" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Informazionei Lista Attività" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Liste Attività" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Torna alle Opzioni Calendario" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Liste Attività di %s" + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Liste Attività" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Nome attività" + +#: templates/list/task_summaries.inc:58 +msgid "Task Note" +msgstr "Nota dell'Attività" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Nota dell'Attività?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Cerca attività" + +#: lib/Driver/sql.php:136 +msgid "Task UID not found" +msgstr "UID attività non trovato" + +#: lib/Nag.php:659 +msgid "Task added:" +msgstr "Attività aggiunta:" + +#: lib/Nag.php:669 +msgid "Task deleted:" +msgstr "Attvità eliminata:" + +#: lib/Nag.php:664 +msgid "Task modified:" +msgstr "Attività Modificata:" + +#: task.php:95 view.php:43 +msgid "Task not found." +msgstr "Attività non trovata." + +#: lib/api.php:698 +msgid "Tasklist does not exist or no permission to delete" +msgstr "La lista attività non esiste o non si hanno i permessi di eliminazione" + +#: lib/api.php:526 +msgid "Tasklist does not exist or no permission to edit" +msgstr "La lista attività non esiste o non si hanno i permessi di modifica" + +#: lib/api.php:1236 +msgid "Tasks" +msgstr "Attività" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Sommario Attività" + +#: lib/api.php:348 +#, php-format +msgid "Tasks from %s" +msgstr "Attività da %s" + +#: data.php:206 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Il file %s non contiene attività." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Il backend Attività non è disponibile." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Il backend Attività non è disponibile: %s" + +#: lib/Forms/task.php:160 +msgid "The alarm value must not be empty." +msgstr "Il nome della Lista della Attività è vuoto." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "L'ora corrente" + +#: lib/Nag.php:660 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"l'attività \"%s\" è stata aggiunta alla lista \"%s\", con scadenza: %s." + +#: lib/Nag.php:670 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"L'attività \"%s\" è stata eliminata dalla lista \"%s\", con scadenza: %s." + +#: lib/Nag.php:665 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"L'attività \"%s\" è stata modificata nella lista \"%s\", con scadenza: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "La lista delle Attività \"%s\" è stata creata." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "La Lista delle Attività \"%s\" è stata cancellata." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "La lista delle Attività \"%s\" è statrinominata in %s." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "La Lista delle Attività\"%s\" è stata salvata." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Poi:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Non ci sono attività di questo tipo." + +#: task.php:232 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Si è verificato un problema completando %s: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Si è verificato un problema eliminando %s: %s" + +#: task.php:199 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Si è verificato un problema salvando l'attività: %s." + +#: data.php:209 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Si è verificato un problema importando i dati: %s." + +#: lib/api.php:545 lib/api.php:894 lib/api.php:1166 +msgid "There was an error importing the iCalendar data." +msgstr "Si è verificato un problema importando i dati." + +#: data.php:89 +msgid "There were no tasks to export." +msgstr "Non vi sono attività da esportare." + +#: data.php:138 +msgid "This file format is not supported." +msgstr "Questo formato di file non è supportato." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "La Lista delle Attività \"%s\" non può essere eliminata." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Per sottoscrivere questa lista da un altro programma, usa questa URL: " + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Impossibile eliminare \"%s\": %s" + +#: lib/api.php:719 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Impossibile eliminare la lista attività \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Impossibile caricare la definizione di %s." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Impossibile eliminare \"%s\": %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:65 +#: lib/Nag.php:901 lib/Nag.php:902 lib/Nag.php:916 lib/Nag.php:917 +#: lib/Forms/task.php:84 lib/Block/summary.php:34 lib/Block/summary.php:238 +msgid "Unfiled" +msgstr "Non Classificato" + +#: data.php:64 +msgid "Unique ID" +msgstr "ID unico" + +#: lib/api.php:652 lib/api.php:967 lib/api.php:1025 lib/api.php:1079 +#: lib/api.php:1204 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Content-Type Non Supportato: %s" + +#: lib/Driver.php:1080 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Desideriamo ricordarle la scadenza della seguente attività:\n" +"\n" +"%s\n" +"\n" +"Data: %s\n" +"Ora: %s\n" +"\n" +"%s" + +#: lib/Nag.php:437 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Settimana(e)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Quale tempo di scadenza di default si desidera per le attività?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Quando si crea una nuova attività, di quanti giorni è la scadenza di " +"default (0 significa oggi)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Quando si crea una nuova attività, deve avere di default una scadenza?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "A quale Lista delle Attività aggiungere l'Attività? " + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Anno" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Non sei abilitato a midificare questa lista attività." + +#: data.php:41 data.php:163 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "No sei abilitato a creare più di %d attività." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Non sei abilitato a eliminare questa lista attività." + +#: view.php:54 +msgid "You do not have permission to view this tasklist." +msgstr "Non hai permesso di visualizzare questa Lista delle Attività." + +#: lib/Nag.php:660 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Hai richiesto di essere informato quando una attività è inserita nella tua " +"lista." + +#: lib/Nag.php:670 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Hai richiesto di essere informato quando una attività è eliminata dalla tua " +"lista." + +#: lib/Nag.php:665 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Hai richiesto di essere informato quando una attività è modificata nella tua " +"lista." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Lista delle tue Attività di default:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Gestisci le Liste]" + +#: templates/list/task_summaries.inc:48 lib/Block/summary.php:115 +#: lib/Block/summary.php:222 +msgid "[none]" +msgstr "[nessuno]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Tutte le Attività" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Tutte le Attività" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Categoria" + +#: view.php:114 +msgid "_Complete" +msgstr "_Completo" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_Attività Complete" + +#: view.php:121 +msgid "_Delete" +msgstr "_Elimina" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Descrizione" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_Data Scadenza" + +#: view.php:117 +msgid "_Edit" +msgstr "_Modifica" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_Attività Future" + +#: lib/Nag.php:582 +msgid "_Import/Export" +msgstr "_Importa/Esporta" + +#: lib/Nag.php:569 +msgid "_List Tasks" +msgstr "_Lista Attività" + +#: lib/Nag.php:574 +msgid "_New Task" +msgstr "_Nuova Attività" + +#: lib/Nag.php:587 +msgid "_Print" +msgstr "_Stampa" + +#: lib/Nag.php:578 +msgid "_Search" +msgstr "_Cerca" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Lista Attività" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: view.php:75 view.php:84 +#, php-format +msgid "by %s" +msgstr "da %s" + +#: view.php:77 view.php:86 +msgid "by me" +msgstr "da me" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "in %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "nessun orario" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:109 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "attivita.csv" + +#: data.php:123 +msgid "tasks.ics" +msgstr "attivita.ics" diff --git a/nag/po/ja_JP.po b/nag/po/ja_JP.po new file mode 100644 index 000000000..497545c47 --- /dev/null +++ b/nag/po/ja_JP.po @@ -0,0 +1,1172 @@ +# Japanese translation for Nag +# Copyright 2005-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Hiromi Kimura +# +msgid "" +msgstr "" +"Project-Id-Version: nag 2.2-RC1\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2007-08-03 12:47+0100\n" +"PO-Revision-Date: 2007-11-30 20:38+0900\n" +"Last-Translator: Hiromi Kimura \n" +"Language-Team: i18n@lists.horde.org\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=SHIFT_JIS\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "(%s ƒTƒuƒ^ƒXƒN‚ðŠÜ‚Þ)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ŽžŠÔ" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d ŽžŠÔ %d •ª" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d ŽžŠÔ %d •ª" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d ŽžŠÔ" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d ŽžŠÔ %d •ª" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d ŽžŠÔ %d •ª" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d •ª" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d •ª" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:42 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s ‚ÌŠú“ú‚Í‚ ‚Æ %s ‚Å‚·" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:44 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s ‚ÌŠú“ú‚Å‚·B" + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s ‚ÍŠ®—¹‚µ‚Ä‚¢‚Ü‚¹‚ñB" + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s ‚͐³í‚ɃCƒ“ƒ|[ƒg‚³‚ê‚Ü‚µ‚½" + +#: tasklists.php:104 lib/Nag.php:516 +#, php-format +msgid "%s's Task List" +msgstr "%s ‚̃^ƒXƒN•\" + +#: lib/Nag.php:315 lib/Forms/task.php:55 +msgid "(highest)" +msgstr "iÅ‚j" + +#: lib/Nag.php:315 lib/Forms/task.php:56 +msgid "(lowest)" +msgstr "iÅ’áj" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "ƒ^ƒXƒN %s ‚ÌŠ®—¹‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½B" + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "%s ‚̍폜‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "ƒ^ƒXƒN %s ‚̕ҏW‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½B" + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "ƒ^ƒXƒN‚̕ҏW‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½F%s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "ƒ^ƒXƒN‚Ì %s ‚ւ̈ړ®‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½B" + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "ƒ^ƒXƒN‚Ì %s ‚©‚ç‚̍폜‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½B" + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "ƒ^ƒXƒN‚Ì %s ‚ւ̕ۑ¶‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½B" + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "ƒ^ƒXƒN‚̕ۑ¶‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½F%s" + +#: templates/view/task.inc:26 lib/Forms/task.php:85 +msgid "Alarm" +msgstr "ƒAƒ‰[ƒ€" + +#: config/prefs.php.dist:201 +msgid "All tasks" +msgstr "‘Sƒ^ƒXƒN" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Š®—¹‚µ‚½ƒ^ƒXƒN‚ðí‚É•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "ŠúŒÀ‚̉߂¬‚½ƒ^ƒXƒN‚ðí‚É•\ަ‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:118 +msgid "Ascending" +msgstr "¸‡" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "ƒuƒƒbƒNƒ^ƒCƒgƒ‹" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "—\’è•\" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "_E•ª—Þ" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:73 +#: lib/Forms/task.php:79 config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Category" +msgstr "•ª—Þ" + +#: templates/tasklists/tasklists.inc:26 +msgid "Change" +msgstr "•ύX" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "ƒ^ƒXƒN‚Ì•À‚я‡‚Æ•\ަƒIƒvƒVƒ‡ƒ“‚ð•ύX‚µ‚Ü‚·B" + +#: config/prefs.php.dist:180 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "ƒ^ƒXƒN‚ÌƒŠƒ}ƒCƒ“ƒ_iÃ‘£j‚ð‚ǂ̂悤‚Ɏ󂯎æ‚é‚©‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢F" + +#: config/prefs.php.dist:171 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"ƒ^ƒXƒN‚ð’ljÁA•ύXAíœ‚µ‚½Žž‚Ƀ[ƒ‹‚Å’Ê’m‚µ‚Ä—~‚µ‚¢‚È‚ç‘I‘ð‚µ‚Ä‰º‚³‚¢F" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "ƒ^ƒXƒN‚ð•ύX‚µ‚½Žž‚É’Ê’m‚µ‚Ä—~‚µ‚¢‚È‚ç‘I‘ð‚µ‚Ä‰º‚³‚¢B" + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "ƒfƒtƒHƒ‹ƒg‚̃^ƒXƒN•\‚ð‘I‘ð‚µ‚Ü‚·B" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "ŒŸõ‚ð•‚¶‚é" + +#: view.php:99 +msgid "Complete" +msgstr "Š®—¹" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:168 +#, php-format +msgid "Complete \"%s\"" +msgstr "Š®—¹ \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Š®—¹ƒ^ƒXƒN" + +#: config/prefs.php.dist:203 +msgid "Complete tasks" +msgstr "Š®—¹ƒ^ƒXƒN" + +#: lib/Nag.php:379 lib/Block/summary.php:166 +msgid "Completed" +msgstr "Š®—¹" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "%s Š®—¹B" + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Š®—¹ƒ^ƒXƒN" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:91 config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Completed?" +msgstr "Š®—¹H" + +#: data.php:58 +msgid "Completion Status" +msgstr "Š®—¹ó‹µ" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "Ú‘±Ž¸”sF%s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86 +msgid "Create" +msgstr "ì¬" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "ì¬“úŽž" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "“ú" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "“ú" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "ƒfƒtƒHƒ‹ƒg‚̃^ƒXƒN•\" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "V‚炵‚¢ƒ^ƒXƒN‚̃fƒtƒHƒ‹ƒg" + +#: lib/Forms/task.php:84 +msgid "Delay Start Until" +msgstr "‰„Šú" + +#: view.php:106 templates/tasklists/tasklists.inc:87 +msgid "Delete" +msgstr "íœ" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "íœ‚ÌŠm”F" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "íœƒ{ƒ^ƒ“‚̈µ‚¢" + +#: task.php:105 lib/Forms/task.php:96 +msgid "Delete this task" +msgstr "‚±‚̃^ƒXƒN‚ðíœ" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "%s ‚ðíœ‚µ‚Ü‚µ‚½B" + +#: config/prefs.php.dist:119 +msgid "Descending" +msgstr "~‡" + +#: data.php:53 lib/Forms/task.php:92 +msgid "Description" +msgstr "à–¾" + +#: templates/tasklists/tasklists.inc:75 +msgid "Description:" +msgstr "à–¾F" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "•\ަƒIƒvƒVƒ‡ƒ“" + +#: config/prefs.php.dist:129 +msgid "Do you want to confirm deleting entries?" +msgstr "ƒGƒ“ƒgƒŠ[‚ðíœ‚·‚éÛ‚ÉŠm”F‚µ‚Ü‚·‚©H" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:83 +msgid "Due By" +msgstr "Šú“ú" + +#: config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Due Date" +msgstr "Šú“ú" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "" + +#: view.php:102 +msgid "Edit" +msgstr "•ҏW" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:159 +#, php-format +msgid "Edit \"%s\"" +msgstr "•ҏW \"%s\"" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "ƒ^ƒXƒN•ҏW" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "•ª—ނƐF‚̕ҏW" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "•ҏWF%s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "ƒ^ƒXƒN‚̍폜‚ªƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½F%s" + +#: templates/view/task.inc:34 lib/Forms/task.php:90 +msgid "Estimated Time" +msgstr "Œ©Ï‚莞ŠÔ" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "ƒGƒNƒXƒ|[ƒg" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "ƒ^ƒXƒN‚̃GƒNƒXƒ|[ƒg" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "ŠO•”ƒf[ƒ^" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "ˆê”ʃIƒvƒVƒ‡ƒ“" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "ŽžŠÔ" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "ŽžŠÔ" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "ƒ^ƒXƒN‚̃Cƒ“ƒ|[ƒgAƒXƒeƒbƒv %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "ƒCƒ“ƒ|[ƒg^ƒGƒNƒXƒ|[ƒg ƒ^ƒXƒN" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "_P–¢Š®ƒ^ƒXƒN" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "–¢Š®ƒ^ƒXƒN" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "" + +#: config/prefs.php.dist:202 +msgid "Incomplete tasks" +msgstr "–¢Š®ƒ^ƒXƒN" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "ÅIXV“úŽž" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "ƒ^ƒXƒN‚̍ő吔" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "ƒƒjƒ…[ƒAƒ‰[ƒ€" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "ƒƒjƒ…[ƒŠƒXƒg" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "•ª" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "•ª" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "ŒŽ" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "‚»‚Ì‘¼‚̃IƒvƒVƒ‡ƒ“" + +#: lib/api.php:986 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"•¡”‚Ì iCalendar ƒRƒ“ƒ|[ƒlƒ“ƒg‚ðŒŸo‚µ‚Ü‚µ‚½G ˆê‚Â‚Ì vTodo ‚¾‚¯‚ðƒTƒ|[ƒg‚µ" +"‚Ä‚¢‚Ü‚·B" + +#: templates/panel.inc:38 +msgid "My Tasklists:" +msgstr "Ž„‚̃^ƒXƒN•\F" + +#: list.php:34 +msgid "My Tasks" +msgstr "Ž„‚̃^ƒXƒN" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "_A–¼‘O" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "_M–¼‘O" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: ƒ^ƒXƒN %s ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ" + +#: data.php:52 lib/Forms/task.php:62 +msgid "Name" +msgstr "–¼‘O" + +#: templates/tasklists/tasklists.inc:68 +msgid "Name:" +msgstr "–¼‘OF" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:27 +msgid "New Task" +msgstr "Vƒ^ƒXƒN" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "ŽŸ" + +#: config/prefs.php.dist:167 +msgid "No" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "‰„Šú‚µ‚È‚¢" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Šú“ú‚È‚µ" + +#: lib/api.php:405 lib/api.php:709 lib/api.php:767 lib/api.php:979 +msgid "No iCalendar data was found." +msgstr "iCalendar ‚̃f[ƒ^‚ªŒ©•t‚©‚è‚Ü‚¹‚ñB" + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "eƒ^ƒXƒN‚È‚µ" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "ƒQƒXƒg‚ɂ̓^ƒXƒN•\‚Í‚ ‚è‚Ü‚¹‚ñB" + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "ˆê’v‚·‚éƒ^ƒXƒN‚Í‚ ‚è‚Ü‚¹‚ñ" + +#: lib/Block/summary.php:222 +msgid "No tasks to display" +msgstr "•\ަ‚·‚é‚ׂ«ƒ^ƒXƒN‚Í‚ ‚è‚Ü‚¹‚ñ" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "‚È‚µ" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Š®—¹‚¹‚¸" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "ŒÂl—p‚łȂ¢" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Œ©•t‚©‚è‚Ü‚¹‚ñB" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "’Ê’m" + +#: config/prefs.php.dist:169 +msgid "On all shown tasklists" +msgstr "•\ަ‚µ‚Ä‚¢‚é‘S‚Ẵ^ƒXƒN•\" + +#: config/prefs.php.dist:170 +msgid "On all tasklists I have read access to" +msgstr "“ǂݏo‚µŒ ‚Ì‚ ‚é‘S‚Ẵ^ƒXƒN•\" + +#: config/prefs.php.dist:168 +msgid "On my tasklists only" +msgstr "Ž„‚̃^ƒXƒN•\‚Ì‚Ý" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_R—Dæ“x" + +#: lib/Forms/task.php:69 +msgid "Parent task" +msgstr "eƒ^ƒXƒN" + +#: templates/tasklists/tasklists.inc:71 +msgid "Permission" +msgstr "ƒAƒNƒZƒXŒ " + +#: lib/api.php:683 lib/api.php:805 lib/api.php:860 lib/api.php:924 +#: lib/api.php:961 +msgid "Permission Denied" +msgstr "ƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½" + +#: lib/api.php:178 +msgid "Permission denied" +msgstr "ƒAƒNƒZƒX‹‘”Û‚³‚ê‚Ü‚µ‚½" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:87 +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Priority" +msgstr "—Dæ“x" + +#: templates/view/task.inc:14 lib/Driver.php:902 +msgid "Private" +msgstr "ŒÂl—p" + +#: lib/Driver.php:900 +msgid "Private Task" +msgstr "ŒÂl“Iƒ^ƒXƒN" + +#: templates/view/task.inc:12 lib/Forms/task.php:82 +msgid "Private?" +msgstr "ŒÂl—pH" + +#: view.php:106 +msgid "Really delete this task?" +msgstr "‚±‚̃^ƒXƒN‚ð–{“–‚ɍ폜‚µ‚Ä‚à—Ç‚¢‚Å‚·‚©H" + +#: templates/tasklists/tasklists.inc:81 +msgid "Remote Subscription URL" +msgstr "‰“Šuw“Ç URL" + +#: templates/panel.inc:57 lib/Forms/task.php:94 +msgid "Save" +msgstr "•Û‘¶" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s ‚ð•Û‘¶‚µ‚Ü‚µ‚½B" + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:47 +msgid "Search" +msgstr "ŒŸõ" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "ŒŸõF" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "ŒŸõ•¶Žš—ñF" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "ŒŸõF" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "\"%s\" ‚ÌŒŸõŒ‹‰Ê" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "“ú‚ð‘I‘ð" + +#: templates/tasklists/tasklists.inc:62 +msgid "Select a tasklist" +msgstr "ƒ^ƒXƒN•\‚ð‘I‘ð" + +#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82 +msgid "Select a tasklist above to display the Remote Subscription URL" +msgstr "ƒ^ƒXƒN•\‚ð‘I‚сA‰“Šuw“Ç URL ‚ð•\ަ‚³‚¹‚ĉº‚³‚¢" + +#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80 +msgid "Select a tasklist above to display the URL" +msgstr "ƒ^ƒXƒN•\‚ð‘I‚Ñ URL ‚ð•\ަ‚³‚¹‚ĉº‚³‚¢" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "ƒGƒNƒXƒ|[ƒgŒ`Ž®‚ð‘I‘ðF" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "ƒCƒ“ƒ|[ƒg‚·‚éƒtƒ@ƒCƒ‹‚ð‘I‘ðF" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Œ³ƒtƒ@ƒCƒ‹‚ÌŒ`Ž®‚ð‘I‘ðF" + +#: templates/panel.inc:48 +msgid "Shared Tasklists:" +msgstr "‹¤—Lƒ^ƒXƒN•\F" + +#: config/prefs.php.dist:69 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "ƒ^ƒXƒNˆê——‚Ń^ƒXƒN•\‚Ì–¼‘O‚à•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "‘€ìƒ{ƒ^ƒ“‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:204 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Š®—¹‚µ‚½ƒ^ƒXƒNA–¢Š®‚̃^ƒXƒN‚ȂǑS‚Ẵ^ƒXƒN‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:191 +msgid "Show data from any of these other applications in your task list?" +msgstr "‘¼‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚̃f[ƒ^‚àƒ^ƒXƒN•\‚É•\ަ‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "‘¼‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚̃f[ƒ^‚à•\ަ‚·‚éB" + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Šú“ú‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "—Dæ“x‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "ƒAƒ‰[ƒ€‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "•ª—Þ‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:79 +msgid "Show task list options panel?" +msgstr "ƒ^ƒXƒN•\‚̃IƒvƒVƒ‡ƒ“‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "ƒ^ƒXƒN•\‚Ì–¼‘O‚ð•\ަ‚µ‚Ü‚·‚©H" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "‚±‚ê‚ç‚Ì•ª—ނ̃^ƒXƒN‚ð•\ަ" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "‚±‚ê‚ç‚̃^ƒXƒN•\‚̃^ƒXƒN‚ð•\ަ" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "•ª—ނ̏‡‚É•À‚ёւ¦‚é" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Š®—¹ó‹µ‚̏‡‚É•À‚ёւ¦‚é" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Šú“ú‚̏‡‚É•À‚ёւ¦‚é" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "–¼‘O‚̏‡‚É•À‚ёւ¦‚é" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "—Dæ“x‚̏‡‚É•À‚ёւ¦‚é" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "–¼‘O‚̏‡‚É•À‚ёւ¦‚é" + +#: config/prefs.php.dist:120 +msgid "Sort direction:" +msgstr "•À‚Ñ•ûŒüF" + +#: config/prefs.php.dist:94 +msgid "Sort tasks by:" +msgstr "ƒ^ƒXƒN‚Ì•À‚я‡F" + +#: data.php:56 +msgid "Start" +msgstr "ŠJŽn" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "ŠJŽn“úŽž" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "ŠJŽn“úŽž‚ªŽw’肳‚ê‚Ü‚µ‚½B" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "ƒ^ƒXƒNƒAƒ‰[ƒ€" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "ƒ^ƒXƒNƒAƒ‰[ƒ€H" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "ƒ^ƒXƒNƒfƒtƒHƒ‹ƒg" + +#: lib/Forms/task.php:65 +msgid "Task List" +msgstr "ƒ^ƒXƒN•\" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "ƒ^ƒXƒN•\‚Æ‹¤—L‚̃IƒvƒVƒ‡ƒ“" + +#: tasklists.php:117 +msgid "Task Lists" +msgstr "ƒ^ƒXƒN•\" + +#: config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Task Name" +msgstr "ƒ^ƒXƒN–¼" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "ƒ^ƒXƒNƒm[ƒg" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "ƒ^ƒXƒNƒm[ƒgH" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "ƒ^ƒXƒNŒŸõ" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "’ljÁ‚³‚ꂽƒ^ƒXƒNF" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "íœ‚³‚ꂽƒ^ƒXƒNF" + +#: tasklists.php:32 +msgid "Task lists must have a name." +msgstr "ƒ^ƒXƒN•\‚É–¼‘O‚ª•K—v‚Å‚·B" + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "XV“úŽžF" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "ƒ^ƒXƒN‚ªŒ©•t‚©‚è‚Ü‚¹‚ñB" + +#: config/prefs.php.dist:93 config/prefs.php.dist:108 +msgid "Tasklist" +msgstr "ƒ^ƒXƒN•\" + +#: templates/panel.inc:30 templates/panel.inc:31 +#: templates/tasklists/tasklists.inc:58 +msgid "Tasklists" +msgstr "ƒ^ƒXƒN•\" + +#: templates/tasklists/tasklists.inc:60 +msgid "Tasklists:" +msgstr "ƒ^ƒXƒN•\F" + +#: lib/api.php:1041 +msgid "Tasks" +msgstr "ƒ^ƒXƒN" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "ƒ^ƒXƒNŠT—v" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "ƒtƒ@ƒCƒ‹ %s ‚ɂ̓^ƒXƒN‚͈ê‚‚àŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚¹‚ñB" + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "ƒ^ƒXƒN‚̃oƒbƒNƒGƒ“ƒh‚ÍŒ»ÝŽg—p‚Å‚«‚Ü‚¹‚ñB" + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "ƒ^ƒXƒN‚̃oƒbƒNƒGƒ“ƒh‚ÍŒ»ÝŽg—p‚Å‚«‚Ü‚¹‚ñF %s" + +#: lib/Forms/task.php:130 +msgid "The alarm value must not be empty." +msgstr "ƒAƒ‰[ƒ€‚Ì’l‚Í‹ó‚ł͂¢‚¯‚Ü‚¹‚ñB" + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Œ»Ý‚ÌŽž" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "ƒ^ƒXƒN \"%s\" ‚̓^ƒXƒN•\ \"%s\" ‚ɒljÁ‚³‚ê‚Ü‚µ‚½BŠú“ú‚́F%s" + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "ƒ^ƒXƒN \"%s\" ‚̓^ƒXƒN•\ \"%s\" ‚©‚çíœ‚³‚ê‚Ü‚µ‚½BŠú“ú‚́F%s" + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "ƒ^ƒXƒN \"%s\" ‚̓^ƒXƒN•\ \"%s\" ‚ŕύX‚³‚ê‚Ü‚µ‚½BŠú“ú‚́F%s" + +#: tasklists.php:49 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "ƒ^ƒXƒN•\ \"%s\" ‚͍쐬‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½F%s" + +#: tasklists.php:60 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "ƒ^ƒXƒN•\ \"%s\" ‚͕ۑ¶‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½F%s" + +#: tasklists.php:51 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "ƒ^ƒXƒN•\ \"%s\" ‚͍쐬‚³‚ê‚Ü‚µ‚½B" + +#: tasklists.php:85 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "ƒ^ƒXƒN•\ \"%s\" ‚͍폜‚³‚ê‚Ü‚µ‚½B" + +#: tasklists.php:62 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "ƒ^ƒXƒN•\ \"%s\" ‚͕ۑ¶‚³‚ê‚Ü‚µ‚½B" + +#: config/prefs.php.dist:109 +msgid "Then:" +msgstr "‚³‚ç‚ɁF" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Œ»Ý‚̊‚Ɉê’v‚·‚éƒ^ƒXƒN‚Í‚ ‚è‚Ü‚¹‚ñB" + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "%s ‚ðŠ®—¹’†‚É–â‘肪‚ ‚è‚Ü‚µ‚½F%s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "%s ‚ðíœ’†‚É–â‘肪‚ ‚è‚Ü‚µ‚½F%s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "ƒ^ƒXƒN‚ð•Û‘¶’†‚É–â‘肪‚ ‚è‚Ü‚µ‚½F%s" + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "ƒf[ƒ^‚ðƒCƒ“ƒ|[ƒg’†‚ɃGƒ‰[‚ª‚ ‚è‚Ü‚µ‚½F%s" + +#: lib/api.php:397 lib/api.php:701 lib/api.php:973 +msgid "There was an error importing the iCalendar data." +msgstr "iCalendar ƒf[ƒ^‚ðƒCƒ“ƒ|[ƒg’†‚ɃGƒ‰[‚ª‚ ‚è‚Ü‚µ‚½B" + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "ƒGƒNƒXƒ|[ƒg‚·‚éƒ^ƒXƒN‚ª‚ ‚è‚Ü‚¹‚ñB" + +#: data.php:126 +msgid "This file format is not supported." +msgstr "‚±‚̃tƒ@ƒCƒ‹Œ`Ž®‚̓Tƒ|[ƒg‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + +#: templates/tasklists/tasklists.inc:79 +msgid "URL" +msgstr "URL" + +#: tasklists.php:81 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "\"%s\" ‚ðíœ‚Å‚«‚Ü‚¹‚ñF%s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "%s ‚Ì’è‹`‚ªƒ[ƒh‚Å‚«‚Ü‚¹‚ñB" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:78 lib/Block/summary.php:31 lib/Block/summary.php:215 +msgid "Unfiled" +msgstr "–¢®—" + +#: lib/api.php:502 lib/api.php:774 lib/api.php:832 lib/api.php:886 +#: lib/api.php:1011 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "ƒTƒ|[ƒg‚³‚ê‚Ä‚¢‚È‚¢ Content-Type ‚Å‚·F%s" + +#: lib/Driver.php:1079 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"ƒ^ƒXƒN‚ÌŠú“ú‚ɂ‚¢‚Ĉȉº‚̂悤‚ɍÑ£’v‚µ‚Ü‚·B\n" +"\n" +"%s\n" +"\n" +"“úŽžF%s\n" +"ŽžŠÔF%s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "T" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "ƒfƒtƒHƒ‹ƒg‚ÌŠú“úŽžŠÔ‚ð‰½Žž‚É‚µ‚Ü‚·‚©H" + +#: config/prefs.php.dist:147 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "Vƒ^ƒXƒN‚ðì‚鎞AƒfƒtƒHƒ‹ƒg‚ÌŠú“ú‚ð‰½“úŒã‚É‚µ‚Ü‚·‚©i0‚͍¡“újH" + +#: config/prefs.php.dist:138 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Vƒ^ƒXƒN‚ðì‚鎞AƒfƒtƒHƒ‹ƒg‚ÅŠú“ú•t‚É‚µ‚Ü‚·‚©H" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "‚ǂ̃^ƒXƒN•\‚ɒljÁ‚µ‚Ü‚·‚©H" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "”N" + +#: data.php:41 data.php:151 task.php:61 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "‚ ‚È‚½‚Í %d ˆÈã‚̃^ƒXƒN‚ðì¬‚Å‚«‚Ü‚¹‚ñB" + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "‚ ‚È‚½‚ɂ͂±‚̃^ƒXƒN•\‚ð•\ަ‚·‚錠ŒÀ‚ª‚ ‚è‚Ü‚¹‚ñB" + +#: tasklists.php:88 +msgid "You must select a task list to be deleted." +msgstr "íœ‚·‚é‚ׂ«ƒ^ƒXƒN•\‚ð‘I‘ð‚µ‚Ä‰º‚³‚¢B" + +#: templates/tasklists/tasklists.inc:47 +msgid "You must select a tasklist to be deleted." +msgstr "íœ‚·‚é‚ׂ«ƒ^ƒXƒN•\‚ð‘I‘ð‚µ‚Ä‰º‚³‚¢B" + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"‚ ‚È‚½‚Í‚ ‚È‚½‚̃^ƒXƒN•\‚Ƀ^ƒXƒN‚ª’ljÁ‚³‚ê‚½Žž‚É’Ê’m‚·‚邱‚Æ‚ð—v‹‚µ‚Ü‚µ‚½B" + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"‚ ‚È‚½‚Í‚ ‚È‚½‚̃^ƒXƒN•\‚©‚çƒ^ƒXƒN‚ªíœ‚³‚ê‚½Žž‚É’Ê’m‚·‚邱‚Æ‚ð—v‹‚µ‚Ü‚µ" +"‚½B" + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"‚ ‚È‚½‚Í‚ ‚È‚½‚̃^ƒXƒN•\‚̃^ƒXƒN‚ª•ύX‚³‚ê‚½Žž‚É’Ê’m‚·‚邱‚Æ‚ð—v‹‚µ‚Ü‚µ‚½B" + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "ƒfƒtƒHƒ‹ƒg‚̃^ƒXƒN•\F" + +#: templates/panel.inc:43 +msgid "[Manage My Tasklists]" +msgstr "[Ž„‚̃^ƒXƒN•\‚ÌŠÇ—]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:199 +msgid "[none]" +msgstr "[‚È‚µ]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_A‘Sƒ^ƒXƒN" + +#: list.php:111 +msgid "_All tasks" +msgstr "_A‘Sƒ^ƒXƒN" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_C•ª—Þ" + +#: view.php:99 +msgid "_Complete" +msgstr "_CŠ®—¹" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_CŠ®—¹ƒ^ƒXƒN" + +#: view.php:106 +msgid "_Delete" +msgstr "_Díœ" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Dà–¾" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_DŠú“ú" + +#: view.php:102 +msgid "_Edit" +msgstr "_E•ҏW" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_F¡Œã‚̃^ƒXƒN" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "_IƒCƒ“/ƒAƒEƒg" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "_Lƒ^ƒXƒNˆê——" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "_NVƒ^ƒXƒN" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "_Pˆóü" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "_SŒŸõ" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Tƒ^ƒXƒN•\" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "Œß‘O" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:37 +#, php-format +msgid "in %s" +msgstr "" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "ŒßŒã" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/ko_KR.po b/nag/po/ko_KR.po new file mode 100644 index 000000000..ed6190f1b --- /dev/null +++ b/nag/po/ko_KR.po @@ -0,0 +1,316 @@ +# nag Korean translation. +# Copyright 2002 J.I Kim. +# J.I Kim , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"POT-Creation-Date: 2002-05-29 15:58+0900\n" +"PO-Revision-Date: 2002-05-29 15:58+0900\n" +"Last-Translator: J.I Kim \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-KR\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d°³ÀÇ ÀÛ¾÷" + +msgid "1 task" +msgstr "1°³ÀÇ ÀÛ¾÷" + +msgid "Adding A New Task" +msgstr "»õ·Î¿î ÀÛ¾÷ Ãß°¡" + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "ÀÌ ÀÛ¾÷À» ¿ÏÀüÈ÷ »èÁ¦ÇϽðڽÀ´Ï±î?" + +msgid "Ascending" +msgstr "¿À¸§Â÷¼ø" + +msgid "Back to Task List" +msgstr "¸ñ·ÏÀ¸·Î µ¹¾Æ°¡±â" + +msgid "Category" +msgstr "¹üÁÖ" + +msgid "Change your task sorting and display options." +msgstr "Á¤·Ä ¹× È­¸é Ãâ·Â Çü½ÄÀ» º¯°æÇÕ´Ï´Ù." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "%d°³ÀÇ ÀÛ¾÷ÀÌ ¿ì¼±¼øÀ§ %d·Î º¯°æµÇ¾ú½À´Ï´Ù." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "1°³ÀÇ ÀÛ¾÷ÀÌ ¿ì¼±¼øÀ§ %d·Î º¯°æµÇ¾ú½À´Ï´Ù." + +msgid "Choose Action:" +msgstr "µ¿ÀÛ ¼±ÅÃ:" + +msgid "Clear Form" +msgstr "Æû »èÁ¦" + +msgid "Complete Task" +msgstr "ÀÛ¾÷ ¿Ï·á" + +msgid "Complete Tasks" +msgstr "ÀÛ¾÷ ¿Ï·á" + +msgid "Completed?" +msgstr "¿Ï·á?" + +msgid "Completion Status" +msgstr "¿Ï·á »óÅÂ" + +msgid "Default sorting criteria:" +msgstr "±âº» Á¤·Ä ¹üÁÖ:" + +msgid "Default sorting direction:" +msgstr "±âº» Á¤·Ä ¹æ½Ä:" + +msgid "Delete Task" +msgstr "ÀÛ¾÷ »èÁ¦" + +msgid "Delete Tasks" +msgstr "ÀÛ¾÷ »èÁ¦" + +#, c-format +msgid "Deleted %d tasks." +msgstr "%d°³ÀÇ ÀÛ¾÷ÀÌ »èÁ¦µÇ¾ú½À´Ï´Ù." + +msgid "Deleted 1 task." +msgstr "1°³ÀÇ ÀÛ¾÷ÀÌ »èÁ¦µÇ¾ú½À´Ï´Ù." + +msgid "Descending" +msgstr "³»¸²Â÷¼ø" + +msgid "Description" +msgstr "¼³¸í" + +msgid "Display Options" +msgstr "È­¸é ¼³Á¤" + +msgid "Due By" +msgstr "¿Ï·á ÀÏÀÚ" + +msgid "Due Date" +msgstr "ÀÏÀÚ" + +msgid "Help" +msgstr "µµ¿ò¸»" + +msgid "Language" +msgstr "¾ð¾î" + +msgid "List Tasks" +msgstr "¸ñ·Ï" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "%d°³ÀÇ ÀÛ¾÷ÀÌ ¿Ï·á»óÅ·Π¼³Á¤µÇ¾ú½À´Ï´Ù." + +msgid "Marked 1 task as completed." +msgstr "1°³ÀÇ ÀÛ¾÷ÀÌ ¿Ï·á»óÅ·Π¼³Á¤µÇ¾ú½À´Ï´Ù." + +msgid "Modify Task" +msgstr "¼öÁ¤" + +msgid "Modifying:" +msgstr "¼öÁ¤Áß:" + +msgid "Nag is not properly configured" +msgstr "Nag°¡ Á¤»óÀûÀ¸·Î ¼³Á¤µÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù." + +msgid "Name" +msgstr "À̸§" + +msgid "New Task" +msgstr "»õ·Î¿î ÀÛ¾÷" + +msgid "No configuration information specified for SQL Tasks." +msgstr "SQL ŽºÅ©¸¦ À§ÇÑ ¼³Á¤ Á¤º¸°¡ ¾ø½À´Ï´Ù." + +msgid "No due date." +msgstr "ÀÏÀÚ ¾ø½¿." + +msgid "No tasks were changed." +msgstr "º¯°æµÈ ¾÷¹«°¡ ¾ø½À´Ï´Ù." + +msgid "No tasks were deleted." +msgstr "»èÁ¦µÈ ¾÷¹«°¡ ¾ø½À´Ï´Ù." + +msgid "No" +msgstr "¾ø½¿" + +msgid "None specified" +msgstr "¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Options" +msgstr "¼³Á¤" + +msgid "Other Options" +msgstr "±âŸ ¼³Á¤" + +msgid "Please enter the task priority (1-5):" +msgstr "¾÷¹« ¿ì¼±¼øÀ§(1-5)¸¦ ÀÔ·ÂÇϼ¼¿ä:" + +msgid "Pri" +msgstr "¿ì¼±¼øÀ§" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "¿ì¼±¼øÀ§´Â 1 °ú 5»çÀÌ¿©¾ß ÇÕ´Ï´Ù. ´Ù½Ã ÀÔ·ÂÇϼ¼¿ä:" + +msgid "Priority" +msgstr "¿ì¼±¼øÀ§" + +msgid "Problem?" +msgstr "¹®Á¦?" + +msgid "Refresh List" +msgstr "°»½Å ¸ñ·Ï" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'database'°¡ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'hostspec'ÀÌ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'password'°¡ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'phptype'ÀÌ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'table'ÀÌ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "¼³Á¤¿¡¼­ 'username'ÀÌ ¸í½ÃµÇÁö ¾Ê¾Ò½À´Ï´Ù." + +msgid "Save Task" +msgstr "ÀúÀå" + +msgid "Search Results" +msgstr "°Ë»ö °á°ú" + +msgid "Search Scope" +msgstr "°Ë»ö ¿µ¿ª" + +msgid "Search Text" +msgstr "°Ë»ö ¹®ÀÚ¿­" + +msgid "Search" +msgstr "°Ë»ö" + +msgid "Select your preferred language:" +msgstr "¾ð¾î ¼±ÅÃ:" + +msgid "Selected?" +msgstr "¼±ÅÃ?" + +msgid "Set Task Priority" +msgstr "¿ì¼±¼øÀ§ ¼³Á¤" + +msgid "Set the your preferred display language." +msgstr "È­¸é Ãâ·Â ¾ð¾î¸¦ ¼³Á¤ÇÕ´Ï´Ù.È­¸é Ãâ·Â ¾ð¾î¸¦ ¼³Á¤ÇÕ´Ï´Ù." + +msgid "Show completed tasks in the task list?" +msgstr "¸ñ·Ï¿¡¼­ ¿Ï·áµÈ ÀÛ¾÷ º¸¿©ÁÖ±â?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "ÀϺΠNag ¼³Á¤ÆÄÀÏÀÌ ¾ø½À´Ï´Ù:" + +msgid "Sort Direction" +msgstr "Á¤·Ä ¹æ½Ä" + +msgid "Sort by Category" +msgstr "¹üÁÖ·Î Á¤·Ä" + +msgid "Sort by Completion Status" +msgstr "¿Ï·á»óÅ·ΠÁ¤·Ä" + +msgid "Sort by Due Date" +msgstr "ÀÏÀÚ·Î Á¤·Ä" + +msgid "Sort by Name" +msgstr "À̸§À¸·Î Á¤·Ä" + +msgid "Sort by Priority" +msgstr "¿ì¼±¼øÀ§·Î Á¤·Ä" + +msgid "Task Details" +msgstr "ÀÚ¼¼È÷" + +msgid "Task List" +msgstr "ÀÛ¾÷ ¸ñ·Ï" + +msgid "Task Name" +msgstr "ÀÛ¾÷ À̸§" + +msgid "Task Note" +msgstr "ÀÛ¾÷ ³ëÆ®" + +msgid "Task Note?" +msgstr "ÀÛ¾÷ ³ëÆ®?" + +msgid "The requested task does not exist." +msgstr "¿äûµÈ ÀÛ¾÷ÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù." + +msgid "There was a problem deleting tasks." +msgstr "ÀÛ¾÷ »èÁ¦¿¡ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù." + +msgid "There was a problem setting task completion status." +msgstr "ÀÛ¾÷ ¿Ï·á »óÅ ¼³Á¤¿¡ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù." + +msgid "There was a problem setting task priority." +msgstr "ÀÛ¾÷ ¿ì¼±¼øÀ§ ¼³Á¤¿¡ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù." + +msgid "This file contains preferences for Nag." +msgstr "ÀÌ ÆÄÀÏÀº NagÀÇ È¯°æ¼³Á¤ÆÄÀÏÀÔ´Ï´Ù." + +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 is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"ÀÌ ÆÄÀÏÀº ¸ÞÀÎ Nag ¼³Á¤ ÆÄÀÏÀÔ´Ï´Ù. ¸ðµç Nag ½ºÅ©¸³Æ®ÀÇ ¼³Á¤À» Æ÷ÇÔÇÕ´Ï´Ù." + +msgid "Undo Changes" +msgstr "º¯°æ Ãë¼Ò" + +msgid "Unfiled" +msgstr "¹Ì¹üÁÖ" + +msgid "Unknown task" +msgstr "¾Ë¼ö ¾ø´Â ÀÛ¾÷" + +msgid "Unknown" +msgstr "¾Ë¼ö ¾ø½¿" + +msgid "User Options" +msgstr "»ç¿ëÀÚ ¼³Á¤" + +msgid "View Task Details" +msgstr "ÀÛ¾÷ ÀÚ¼¼È÷ º¸±â" + +msgid "Yes" +msgstr "¿¹" + +msgid "You must select at least one task first." +msgstr "Àû¾îµµ ÇѰ³ÀÇ ÀÛ¾÷À» ¸ÕÀú ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù." + +msgid "Your Information" +msgstr "Á¤º¸»çÇ×" + +msgid "Your task list is empty." +msgstr "ÀÛ¾÷¸ñ·ÏÀÌ ¾ø½À´Ï´Ù." + +msgid "at" +msgstr "½Ã°£" diff --git a/nag/po/lt_LT.po b/nag/po/lt_LT.po new file mode 100644 index 000000000..2a9c890b7 --- /dev/null +++ b/nag/po/lt_LT.po @@ -0,0 +1,1181 @@ +# Lithuanian translations for Nag package. +# Copyright 2007-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Darius Matuliauskas , 2002. +# Vilius Sumskas , 2003, 2004, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.2-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2007-11-23 16:17+0200\n" +"PO-Revision-Date: 2007-11-23 16:20+0200\n" +"Last-Translator: Vilius Sumskas \n" +"Language-Team: Lithuanian \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" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s áskaitant susijusius darbus)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d val." + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d val., %d min." + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d val., %d min." + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d val." + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d val., %d min." + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d val., %d min." + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d min." + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d min." + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s %s" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:42 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s prasidës po %s" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:44 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s prasideda dabar." + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s dar nebaigtas." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s failas sëkmingai ákeltas" + +#: tasklists.php:104 lib/Nag.php:516 +#, php-format +msgid "%s's Task List" +msgstr "%s darbø sàraðas" + +#: lib/Nag.php:315 lib/Forms/task.php:55 +msgid "(highest)" +msgstr "(labai svarbu)" + +#: lib/Nag.php:315 lib/Forms/task.php:56 +msgid "(lowest)" +msgstr "(visiðkai nesvarbu)" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "Neturite teisiø pabaigti darbà %s." + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Neturite teisiø iðtrinti %s" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Neturite teisiø redaguoti ðio darbo." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Neturite teisiø redaguoti darbo: %s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Neturite teisiø perkelti darbà á %s." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Neturite teisiø perkelti darbà %s." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Neturite teisiø iðsaugoti darbà %s." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Neturite teisiø iðsaugoti darbà: %s" + +#: lib/Forms/task.php:85 templates/view/task.inc:26 +msgid "Alarm" +msgstr "Perspëjimas" + +#: config/prefs.php.dist:201 +msgid "All tasks" +msgstr "Visi darbai" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Visada rodyti atliktus darbus?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Visada rodyti pasibaigusius darbus?" + +#: config/prefs.php.dist:118 +msgid "Ascending" +msgstr "Didëjimo tvarka" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Bloko pavadinimas" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Kalendorius" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "_Kategorija" + +#: data.php:54 lib/Forms/task.php:73 lib/Forms/task.php:79 +#: templates/view/task.inc:8 config/prefs.php.dist:90 +#: config/prefs.php.dist:105 +msgid "Category" +msgstr "Kategorija" + +#: templates/tasklists/tasklists.inc:26 +msgid "Change" +msgstr "Keisti" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Darbø rûðiavimo ir rodymo nustatymai." + +#: config/prefs.php.dist:180 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Pasirinkite kaip norite gauti priminimus apie darbus su perspëjimais:" + +#: config/prefs.php.dist:171 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Pasirinkite ar norite, kad jums bûtø praneðta apie naujus, pakeistus ir " +"iðtrintus darbus el. paðtu:" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "Perspëjimø pasikeitus darbams pasirinkimas." + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "Jûsø pagrindinio darbø sàraðo pasirinkimas." + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Iðvalyti paieðkà" + +#: view.php:99 +msgid "Complete" +msgstr "Atlikta" + +#: lib/Block/summary.php:168 templates/list/task_summaries.inc:11 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" atliktas." + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Darbas atliktas" + +#: config/prefs.php.dist:203 +msgid "Complete tasks" +msgstr "Atliktus darbus" + +#: lib/Nag.php:379 lib/Block/summary.php:166 +msgid "Completed" +msgstr "Atliktas" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "%s atliktas." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Atlikti darbai" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Susijæs darbas baigtas, ið pradþiø paþymëkite já kaip nebaigtà" + +#: lib/Forms/task.php:91 templates/view/task.inc:38 +#: templates/list/task_headers.inc:31 config/prefs.php.dist:92 +#: config/prefs.php.dist:107 +msgid "Completed?" +msgstr "Atliktas?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Atlikimo bûsena" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "Prisijungti nepavyko: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86 +msgid "Create" +msgstr "Sukurti" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Sukurta" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Diena" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Diena(os)" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "Jûsø pagrindinis darbø sàraðas" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "Standartiniai naujø darbø nustatymai" + +#: lib/Forms/task.php:84 +msgid "Delay Start Until" +msgstr "Nepradëti iki" + +#: view.php:106 templates/tasklists/tasklists.inc:87 +msgid "Delete" +msgstr "Iðtrinti" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Trynimo patvirtinimas" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Trynimo mygtuko elgesys" + +#: task.php:105 lib/Forms/task.php:96 +msgid "Delete this task" +msgstr "Iðtrinti ðá darbà" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "%s iðtrintas." + +#: config/prefs.php.dist:119 +msgid "Descending" +msgstr "Maþëjimo tvarka" + +#: data.php:53 lib/Forms/task.php:92 +msgid "Description" +msgstr "Apraðymas" + +#: templates/tasklists/tasklists.inc:75 +msgid "Description:" +msgstr "Apraðymas:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Vaizdavimo nustatymai" + +#: config/prefs.php.dist:129 +msgid "Do you want to confirm deleting entries?" +msgstr "Ar norite, kad prieð kiekvienà áraðø trynimà praðytø patviritimo?" + +#: data.php:55 lib/Forms/task.php:83 templates/view/task.inc:22 +msgid "Due By" +msgstr "Atlikti iki" + +#: config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Due Date" +msgstr "Atlikimo data" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Áraðyta atlikimo data." + +#: view.php:102 +msgid "Edit" +msgstr "Redaguoti" + +#: lib/Block/summary.php:159 templates/list/task_summaries.inc:38 +#, php-format +msgid "Edit \"%s\"" +msgstr "Redaguoti \"%s\"" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Redaguoti darbà" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Redaguoti kategorijas ir spalvas" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "Redaguoti: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Klaida trinant darbà: %s" + +#: lib/Forms/task.php:90 templates/view/task.inc:34 +msgid "Estimated Time" +msgstr "Apskaièiuotas laikas" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Iðkelti" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Darbø iðkëlimas" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "Iðoriniai duomenys" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "Pagrindiniai nustatymai" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Valanda" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Valanda(os)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Darbø ákëlimas, %d-as þingsnis" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Ákelti/Iðkelti darbus" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Neat_likti darbai" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Neatlikti darbai" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Susijæ darbai nebaigti, ið pradþiø baikite juos" + +#: config/prefs.php.dist:202 +msgid "Incomplete tasks" +msgstr "Neatlikti darbai" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Paskutiná kartà redaguota" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Paþymëti \"%s\" kaip nebaigtà" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Paþymëti kaip nebaigtà" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "Maksimalus darbø skaièius" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Meniu perspëjimai" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Meniu sàraðas" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minutë" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minutë(s)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mënuo" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Daugiau nustatymø..." + +#: lib/api.php:986 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Kiti iCalendar komponentai nerasti; rastas tik vTodo modulis." + +#: templates/panel.inc:38 +msgid "My Tasklists:" +msgstr "Mano darbø sàraðai:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Mano darbai" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "Pavad_inimas" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Pavad_inimas" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: nepavyko rasti darbo %s" + +#: data.php:52 lib/Forms/task.php:62 +msgid "Name" +msgstr "Pavadinimas" + +#: templates/tasklists/tasklists.inc:68 +msgid "Name:" +msgstr "Pavadinimas:" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:27 +msgid "New Task" +msgstr "Naujas darbas" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Sekantis" + +#: config/prefs.php.dist:167 +msgid "No" +msgstr "Ne" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Neatideliojamas" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Nëra pabaigos datos." + +#: lib/api.php:405 lib/api.php:709 lib/api.php:767 lib/api.php:979 +msgid "No iCalendar data was found." +msgstr "iCalendar duomenø nëra." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Nesusieti su kitu darbu" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "Darbø sàraðø sveèiams nëra." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Atitinkanèiø darbø nëra" + +#: lib/Block/summary.php:222 +msgid "No tasks to display" +msgstr "Darbø nëra" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Nieko" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Neatliktas" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Ne privatus" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Nerasta" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "Praneðimai" + +#: config/prefs.php.dist:169 +msgid "On all shown tasklists" +msgstr "Visiems rodomiems darbø sàraðams" + +#: config/prefs.php.dist:170 +msgid "On all tasklists I have read access to" +msgstr "Visiems darbø sàraðams, kuriuos að galiu skaityti" + +#: config/prefs.php.dist:168 +msgid "On my tasklists only" +msgstr "Mano darbø sàraðams" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_Sva" + +#: lib/Forms/task.php:69 +msgid "Parent task" +msgstr "Susijæs darbas" + +#: templates/tasklists/tasklists.inc:71 +msgid "Permission" +msgstr "Teisës" + +#: lib/api.php:683 lib/api.php:805 lib/api.php:860 lib/api.php:924 +#: lib/api.php:961 +msgid "Permission Denied" +msgstr "Neuþtenka teisiø" + +#: lib/api.php:178 +msgid "Permission denied" +msgstr "Neuþtenka teisiø" + +#: data.php:57 lib/Forms/task.php:87 templates/view/task.inc:30 +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Priority" +msgstr "Svarba" + +#: lib/Driver.php:902 templates/view/task.inc:14 +msgid "Private" +msgstr "Privatus" + +#: lib/Driver.php:900 +msgid "Private Task" +msgstr "Privatus darbas" + +#: lib/Forms/task.php:82 templates/view/task.inc:12 +msgid "Private?" +msgstr "Privatus?" + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Tikrai iðtrinti ðá darbà?" + +#: templates/tasklists/tasklists.inc:81 +msgid "Remote Subscription URL" +msgstr "Iðorinë uþsisakymo URL nuoroda" + +#: lib/Forms/task.php:94 templates/panel.inc:57 +msgid "Save" +msgstr "Iðsaugoti" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s iðsaugotas." + +#: search.php:14 lib/Block/tree_menu.php:47 templates/list/header.inc:4 +#: templates/search/search.inc:31 +msgid "Search" +msgstr "Ieðkoti" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Ieðkoti:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Ieðkoti _teksto:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Ieðkoti:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Paieðka: \"%s\" rezultatai" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Pasirinkite datà" + +#: templates/tasklists/tasklists.inc:62 +msgid "Select a tasklist" +msgstr "Pasirinkite darbø sàraðà" + +#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82 +msgid "Select a tasklist above to display the Remote Subscription URL" +msgstr "" +"Pasirinkite darbø sàraðà, kurio iðorinæ uþsisakymo URL nuorodà norite " +"pamatyti" + +#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80 +msgid "Select a tasklist above to display the URL" +msgstr "Pasirinkite darbø sàraðà, kurio URL nuorodà norite pamatyti" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Pasirinkite iðkëlimo formatà:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Pasirinkite ákeliamà failà:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Pasirinkite ákëliamo failo formatà:" + +#: templates/panel.inc:48 +msgid "Shared Tasklists:" +msgstr "Bendri darbø sàraðai:" + +#: config/prefs.php.dist:69 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Ar rodyti darbø sàraðà atskirame stulpelyje darbø sàraðe?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Rodyti veiksmø mygtukus?" + +#: config/prefs.php.dist:204 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Rodyti atliktus, neatliktus, arba visus darbus darbø sàraðe?" + +#: config/prefs.php.dist:191 +msgid "Show data from any of these other applications in your task list?" +msgstr "Darbø sàraðe rodyti duomenis ið ðiø kitø moduliø?" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "Rodyti duomenis ið kitø moduliø." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Rodyti galiojimo datas?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Rodyti svarbà?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Rodyti perspëjimus?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Rodyti kategorijà?" + +#: config/prefs.php.dist:79 +msgid "Show task list options panel?" +msgstr "Rodyti darbø sàraðo nustatymø pultà?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Rodyti darbø sàraðo pavadinimà?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Rodyti darbus ið ðiø kategorijø" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Rodyti darbus ið ðiø darbø sàraðø" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Rûðiuoti pagal kategorijà" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Rûðiuoti pagal atlikimo statusà" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Rûðiuoti pagal pabaigos datà" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Rûðiuoti pagal pavadinimà" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Rûðiuoti pagal svarbà" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Rûðiuoti pagal vartotojà" + +#: config/prefs.php.dist:120 +msgid "Sort direction:" +msgstr "Rûðiavimo kryptis:" + +#: config/prefs.php.dist:94 +msgid "Sort tasks by:" +msgstr "Rûðiuoti darbus pagal:" + +#: data.php:56 +msgid "Start" +msgstr "Pradëti" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Pradþios data" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Nurodyta pradþios data." + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Perspëjimas" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Perspëjimas?" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "Standartiniai darbo nustatymai" + +#: lib/Forms/task.php:65 +msgid "Task List" +msgstr "Darbø sàraðas" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "Darbø sàraðo ir dalijimosi nustatymai" + +#: tasklists.php:117 +msgid "Task Lists" +msgstr "Darbø sàraðai" + +#: config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Task Name" +msgstr "Darbo pavadinimas" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Pastaba" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Yra pastabø?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Darbo paieðka" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Darbas sukurtas:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Darbas iðtrintas:" + +#: tasklists.php:32 +msgid "Task lists must have a name." +msgstr "Darbø sàraðui reikia pavadinimo." + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Darbas pakeistas:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "Darbas nerastas." + +#: config/prefs.php.dist:93 config/prefs.php.dist:108 +msgid "Tasklist" +msgstr "Darbø sàraðas" + +#: templates/panel.inc:30 templates/panel.inc:31 +#: templates/tasklists/tasklists.inc:58 +msgid "Tasklists" +msgstr "Darbø sàraðai" + +#: templates/tasklists/tasklists.inc:60 +msgid "Tasklists:" +msgstr "Darbø sàraðai:" + +#: lib/api.php:1041 +msgid "Tasks" +msgstr "Darbai" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Trumpas turinys" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Faile %s nëra jokiø darbø." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Darbø posistemë ðiuo metu nepasiekiama." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Darbø posistemë ðiuo metu nepasiekiama: %s" + +#: lib/Forms/task.php:130 +msgid "The alarm value must not be empty." +msgstr "Perspëjimo reikðmë negali bûti tuðèia." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Dabartinë valanda" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Darbas \"%s\" pridëtas prie \"%s\" darbø sàraðo, o jo pabaigos data: %s." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"Darbas \"%s\" iðtrintas ið \"%s\" darbø sàraðo, o jo pabaigos data: %s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "Darbas \"%s\" pakeistas \"%s\" darbø sàraðe, o jo pabaigos data: %s." + +#: tasklists.php:49 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Nepavyko sukurti darbø sàraðo \"%s\": %s" + +#: tasklists.php:60 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Darbø sàraðas \"%s\" neiðsaugotas: %s" + +#: tasklists.php:51 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Darbø sàraðas \"%s\" sukurtas." + +#: tasklists.php:85 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Darbø sàraðas \"%s\" iðtrintas." + +#: tasklists.php:62 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Darbø sàraðas \"%s\" iðsaugotas." + +#: config/prefs.php.dist:109 +msgid "Then:" +msgstr "Tada:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Iðkëlimui duomenø nëra." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Klaida baigiant %s: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Klaida trinant %s: %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Nepavyko iðsaugoti darbo: %s." + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Klaida ákeliant duomenis: %s" + +#: lib/api.php:397 lib/api.php:701 lib/api.php:973 +msgid "There was an error importing the iCalendar data." +msgstr "Klaida ákeliant iCalendar duomenis." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Iðkëlimui duomenø nëra." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Failo formatas nepalaikomas." + +#: templates/tasklists/tasklists.inc:79 +msgid "URL" +msgstr "URL" + +#: tasklists.php:81 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Negaliu iðtrinti \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Nepavyko uþkrauti %s apraðymo." + +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Block/summary.php:31 lib/Block/summary.php:215 lib/Forms/task.php:78 +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +msgid "Unfiled" +msgstr "Nenurodyta" + +#: lib/api.php:502 lib/api.php:774 lib/api.php:832 lib/api.php:886 +#: lib/api.php:1011 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Neþinoma Content-Type antraðtë: %s" + +#: lib/Driver.php:1079 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Norime priminti apie ðá vykdomà darbà.\n" +"\n" +"%s\n" +"\n" +"Data: %s\n" +"Laikas: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Savaitë(s)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Koks vykdymo laikas turëtø bûti standartinis darbams?" + +#: config/prefs.php.dist:147 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Kuriant naujus darbus, uþ kiek dienø á prieká turëtø darbas prasidëti (0 " +"reiðkia ðiandien)?" + +#: config/prefs.php.dist:138 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Kuriant naujus darbus nurodyti darbo pradþià ir pabaigà?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Prie kurio darbø sàraðo pridëti darbus?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Metai" + +#: data.php:41 data.php:151 task.php:61 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Jûs neturite teisiø kurti daugiau nei %d darbø." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Neturite teisiø perþiûrëti ðio darbø sàraðo." + +#: tasklists.php:88 +msgid "You must select a task list to be deleted." +msgstr "Pasirinkite trinamà darbø sàraðà." + +#: templates/tasklists/tasklists.inc:47 +msgid "You must select a tasklist to be deleted." +msgstr "Pasirinkite trinamà darbø sàraðà." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Jûs pasirinkote bûti perspëtas, kai jûsø darbø sàraðe bus sukurti nauji " +"darbai." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Jûs pasirinkote bûti perspëtas, kai darbai ið jûsø darbø sàraðo bus iðtrinti." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Jûs pasirinkote bûti perspëtas, kai darbai jûsø darbø sàraðe bus pakeisti." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Jûsø pagrindinis darbø sàraðas:" + +#: templates/panel.inc:43 +msgid "[Manage My Tasklists]" +msgstr "[Valdyti mano darbø sàraðus]" + +#: lib/Block/summary.php:101 lib/Block/summary.php:199 +#: templates/list/task_summaries.inc:46 +msgid "[none]" +msgstr "[nëra]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "Visi darbai" + +#: list.php:111 +msgid "_All tasks" +msgstr "Visi _darbai" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Kategorija" + +#: view.php:99 +msgid "_Complete" +msgstr "_Atlikta" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_Atlikti darbai" + +#: view.php:106 +msgid "_Delete" +msgstr "_Iðtrinti" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Apraðymas" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Atlikimo data" + +#: view.php:102 +msgid "_Edit" +msgstr "_Redaguoti" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Bûsimi darbai" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "Ákelti/Iðkelti" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "_Darbø sàraðas" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "Na_ujas darbas" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "_Spausdinti" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "I_eðkoti" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Darbø sàraðas" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:37 +#, php-format +msgid "in %s" +msgstr "%s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "nenustatytas laikas" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "darbai.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "darbai.ics" diff --git a/nag/po/lv_LV.po b/nag/po/lv_LV.po new file mode 100644 index 000000000..a6779950b --- /dev/null +++ b/nag/po/lv_LV.po @@ -0,0 +1,782 @@ +# Latvian translations for Nag package. +# Copyright 2004-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Automatically generated, 2004. +# +# Current version for Latvian does not contain shortcuts!!! +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 1.1.1\n" +"POT-Creation-Date: 2004-11-17 12:36+0100\n" +"PO-Revision-Date: 2004-11-19 15:50+0200\n" +"Last-Translator: Janis Eisaks \n" +"Language-Team: i18n@lists.horde.org\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CP1257\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: lib/Nag.php:48 +msgid "%d hour" +msgstr "%d stunda" + +#: lib/Nag.php:50 +msgid "%d hour, %d minute" +msgstr "%d stunda, %d minûte" + +#: lib/Nag.php:52 +msgid "%d hour, %d minutes" +msgstr "%d stunda, %d minûtes" + +#: lib/Nag.php:40 +msgid "%d hours" +msgstr "%d stundas" + +#: lib/Nag.php:42 +msgid "%d hours, %d minute" +msgstr "%d stundas, %d minûte" + +#: lib/Nag.php:44 +msgid "%d hours, %d minutes" +msgstr "%d stundas, %d minûtes" + +#: lib/Nag.php:58 +msgid "%d minute" +msgstr "%d minûte" + +#: lib/Nag.php:60 +msgid "%d minutes" +msgstr "%d minûtes" + +#: templates/list/header.inc:9 +msgid "%d tasks" +msgstr "%d uzdevumi" + +#: lib/Nag.php:341 +msgid "%s at %s" +msgstr "%s plkst. %s" + +#: lib/Nag.php:458 lib/Block/summary.php:92 +msgid "%s is due in %s" +msgstr "%s sâkas pçc %s" + +#: lib/Nag.php:456 lib/Block/summary.php:90 +#, fuzzy +msgid "%s is due now." +msgstr "%s jau sâkas" + +#: data.php:140 +msgid "%s successfully imported" +msgstr "%s veiksmîgi importçts" + +#: tasklists.php:121 lib/base.php:97 +msgid "%s's Task List" +msgstr "%s: uzdevumu saraksts" + +#: lib/Nag.php:289 +msgid "(highest)" +msgstr "(augstâkâ)" + +#: lib/Nag.php:289 +msgid "(lowest)" +msgstr "(zemâkâ)" + +#: templates/list/header.inc:9 +msgid "1 task" +msgstr "1 uzdevums" + +#: task.php:258 +msgid "Access denied completing task %s." +msgstr "" + +#: task.php:232 +msgid "Access denied deleting %s." +msgstr "" + +#: task.php:198 +msgid "Access denied moving the task to %s." +msgstr "" + +#: task.php:201 +msgid "Access denied removing task from %s." +msgstr "" + +#: task.php:133 +msgid "Access denied saving task to %s." +msgstr "" + +#: task.php:131 +msgid "Access denied saving task: %s" +msgstr "" + +#: task.php:58 +msgid "Adding A New Task" +msgstr "Pievienot uzdevumu" + +#: templates/task/task.inc:70 +msgid "Ala_rm" +msgstr "Atgâdinâjums" + +#: templates/view/task.inc:37 +msgid "Alarm" +msgstr "Atgâdinâjums" + +#: config/prefs.php.dist:101 +msgid "All tasks" +msgstr "Visi uzdevumi" + +#: lib/Block/summary.php:55 +msgid "Always show completed tasks?" +msgstr "Vienmçr radît pabeigtos uzdevumus?" + +#: lib/Block/summary.php:52 +msgid "Always show overdue tasks?" +msgstr "Vienmçr râdît iekavçtos uzdevumus?" + +#: config/prefs.php.dist:78 +msgid "Ascending" +msgstr "Augoði" + +#: templates/tasklists/tasklists.inc:106 +msgid "Back to Task List Options" +msgstr "Atgriezties pie Uzdevumu opcijâm" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:59 +msgid "Calendar" +msgstr "Kalendârs" + +#: templates/list/task_headers.inc:30 +msgid "Cat_egory" +msgstr "Kategorija" + +#: data.php:42 templates/view/task.inc:29 config/prefs.php.dist:50 +#: config/prefs.php.dist:65 +msgid "Category" +msgstr "Kategorija" + +#: templates/tasklists/tasklists.inc:22 templates/tasklists/tasklists.inc:103 +msgid "Change" +msgstr "Mainît" + +#: templates/list/task_headers.inc:4 templates/list/task_headers.inc:8 +#: templates/list/task_headers.inc:12 templates/list/task_headers.inc:19 +#: templates/list/task_headers.inc:25 templates/list/task_headers.inc:29 +msgid "Change sort direction" +msgstr "Mainît ðíiroðanas kârtîbu" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Mainît uzdevumu ðíiroðanas un ekrâna iestatîjumus." + +#: templates/search/search.inc:33 +msgid "Clear Form" +msgstr "Notîrît formu" + +#: templates/task/task.inc:91 +msgid "Co_mpleted?" +msgstr "Izpildîts?" + +#: templates/view/task.inc:13 +msgid "Complete" +msgstr "Izpildît" + +#: templates/list/task_summaries.inc:4 lib/Block/summary.php:146 +msgid "Complete Task" +msgstr "Beigt uzdevumu" + +#: config/prefs.php.dist:103 +msgid "Complete tasks" +msgstr "Beigt uzdevumus" + +#: lib/Nag.php:356 lib/Block/summary.php:144 +msgid "Completed" +msgstr "Izpildîts" + +#: task.php:267 +msgid "Completed %s." +msgstr "%s izpildîts." + +#: templates/view/task.inc:45 templates/list/task_headers.inc:5 +#: config/prefs.php.dist:52 config/prefs.php.dist:67 +msgid "Completed?" +msgstr "Izpildîts?" + +#: data.php:45 +msgid "Completion Status" +msgstr "Izpildes statuss" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:103 +#: templates/tasklists/tasklists.inc:105 +msgid "Create" +msgstr "Izveidot" + +#: templates/view/task.inc:51 +msgid "Created" +msgstr "Izveidots" + +#: templates/task/task.inc:79 lib/Nag.php:387 +msgid "Day(s)" +msgstr "Diena(s)" + +#: templates/tasklists/tasklists.inc:104 templates/view/task.inc:18 +msgid "Delete" +msgstr "Dzçst" + +#: task.php:240 +msgid "Deleted %s." +msgstr "%s izdzçsts." + +#: config/prefs.php.dist:79 +msgid "Descending" +msgstr "Dilstoði" + +#: data.php:41 +msgid "Description" +msgstr "Apraksts" + +#: templates/tasklists/tasklists.inc:88 +msgid "Description:" +msgstr "Apraksts:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Ekrâna iestatîjumi" + +#: data.php:43 templates/view/task.inc:33 +msgid "Due By" +msgstr "Izpildît lîdz" + +#: config/prefs.php.dist:51 config/prefs.php.dist:66 +msgid "Due Date" +msgstr "Izpildît lîdz" + +#: templates/task/task.inc:45 +msgid "Due _By" +msgstr "Izpildît lîdz" + +#: templates/view/task.inc:15 +msgid "Edit" +msgstr "Labot" + +#: templates/list/task_summaries.inc:15 templates/list/task_headers.inc:16 +#: lib/Block/summary.php:142 +msgid "Edit Task" +msgstr "Labot uzdevumu" + +#: config/prefs.php.dist:133 +msgid "Edit your task lists." +msgstr "Labot uzdevumu sarakstus." + +#: templates/data/export.inc:22 +msgid "Export" +msgstr "Eksportçt" + +#: templates/data/export.inc:8 +msgid "Export Tasks" +msgstr "Eksportçt uzdevumus" + +#: config/prefs.php.dist:36 +msgid "External Data" +msgstr "Ârçjie dati" + +#: config/prefs.php.dist:13 +msgid "General Options" +msgstr "Vispârçjâs opcijas" + +#: templates/task/task.inc:78 lib/Nag.php:390 +msgid "Hour(s)" +msgstr "Stunda(s)" + +#: templates/data/import.inc:9 +msgid "Import Tasks, Step %d" +msgstr "Uzdevumu imports, %d. solis" + +#: data.php:146 +msgid "Import/Export Tasks" +msgstr "Uzdevumu imports/eksports" + +#: list.php:77 +msgid "Incom_plete tasks" +msgstr "Neizpildîtie uzdevumi" + +#: config/prefs.php.dist:102 +msgid "Incomplete tasks" +msgstr "Neizpildîtie uzdevumi" + +#: templates/view/task.inc:58 +msgid "Last Modified" +msgstr "Pçdçjâs izmaiòas" + +#: config/prefs.php.dist:22 +msgid "Manage multiple task lists." +msgstr "Vadît vairâkus uzdevumu sarakstus." + +#: templates/task/task.inc:77 lib/Nag.php:393 +msgid "Minute(s)" +msgstr "Minûte(s)" + +#: task.php:115 +msgid "Modifying:" +msgstr "Labojam:" + +#: lib/api.php:282 lib/api.php:465 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Atrasti vairâki iCalendar komponenti; atbalstîts ir tikai vTodo." + +#: list.php:40 +msgid "My Tasks" +msgstr "Uzdevumi" + +#: templates/search/search.inc:21 templates/task/task.inc:14 +msgid "N_ame" +msgstr "Vârds" + +#: templates/list/task_headers.inc:20 +#, fuzzy +msgid "Na_me" +msgstr "Vârds" + +#: data.php:40 +msgid "Name" +msgstr "Nosaukums" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Jauns" + +#: templates/data/import.inc:43 +msgid "Next" +msgstr "Nâkamais" + +#: lib/Nag.php:19 +msgid "No" +msgstr "Nav" + +#: templates/task/task.inc:48 +msgid "No due date." +msgstr "Nav beigu datuma." + +#: lib/api.php:275 lib/api.php:458 +msgid "No iCalendar data was found." +msgstr "iCalendar dati netika atrasti." + +#: lib/Nag.php:472 +msgid "No task lists are available to guests." +msgstr "Nav viesiem pieejamu uzdevumu sarakstu." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Jûsu uzdevumu saraksts ir tukðs." + +#: templates/task/task.inc:73 lib/Nag.php:397 +msgid "None" +msgstr "Nav" + +#: lib/Nag.php:357 +msgid "Not Completed" +msgstr "Neizpildîts" + +#: config/prefs.php.dist:53 config/prefs.php.dist:68 +msgid "Owner" +msgstr "Îpaðnieks" + +#: templates/list/task_headers.inc:13 +#, fuzzy +msgid "P_ri" +msgstr "Pri" + +#: templates/tasklists/tasklists.inc:94 +msgid "Permission" +msgstr "Pieejas tiesîbas" + +#: lib/api.php:254 lib/api.php:339 lib/api.php:410 lib/api.php:441 +msgid "Permission Denied" +msgstr "Pieeja liegta" + +#: lib/api.php:86 +msgid "Permission denied" +msgstr "Pieeja liegta" + +#: data.php:44 templates/view/task.inc:41 config/prefs.php.dist:48 +#: config/prefs.php.dist:63 +msgid "Priority" +msgstr "Prioritâte" + +#: templates/list/header.inc:5 templates/list/header.inc:6 +msgid "Refresh List" +msgstr "Atjaunot sarakstu" + +#: templates/tasklists/tasklists.inc:105 +msgid "Reset" +msgstr "Atsâkt" + +#: templates/task/task.inc:108 +msgid "Save Task" +msgstr "Saglabât uzdevumu" + +#: task.php:215 +msgid "Saved %s." +msgstr "%s saglabâts." + +#: search.php:14 templates/search/search.inc:5 templates/search/search.inc:32 +msgid "Search" +msgstr "Meklçt" + +#: list.php:63 +msgid "Search Results" +msgstr "Meklçðanas rezultâti" + +#: templates/search/search.inc:18 +msgid "Search Scope" +msgstr "Meklçðanas sfçra" + +#: templates/search/search.inc:10 +msgid "Search _Text" +msgstr "Meklçt tekstu" + +#: templates/task/task.inc:59 +msgid "Select a date" +msgstr "Izvçlieties datumu" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Izvçlies uzdevumu sarakstu" + +#: templates/data/export.inc:15 +msgid "Select the export format:" +msgstr "Izvçlieties eksporta formâtu:" + +#: templates/data/import.inc:40 +msgid "Select the file to import:" +msgstr "Izvçlieties importçjamo failu:" + +#: templates/data/import.inc:16 +#, fuzzy +msgid "Select the format of the source file:" +msgstr "Izvçlieties importçjamâ faila formâtu:" + +#: templates/menu.inc:8 +msgid "Show" +msgstr "Râdît" + +#: templates/menu.inc:14 +msgid "Show Tasklists:" +msgstr "Râdît sarakstus:" + +#: lib/Block/summary.php:37 +msgid "Show action buttons?" +msgstr "Râdît darbîbu pogas?" + +#: config/prefs.php.dist:104 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Radît izpildîtos, neizpildîtos vai visus uzdevumus kopçjâ sarakstâ?" + +#: config/prefs.php.dist:91 +msgid "Show data from any of these other applications in your task list?" +msgstr "Vai râdît Jûsu uzdevu sarakstâ datus no kâda no ðiem moduïiem?" + +#: config/prefs.php.dist:37 +msgid "Show data from other applications or sources." +msgstr "Râdît citu moduïu vai avotu datus." + +#: lib/Block/summary.php:40 +msgid "Show due dates?" +msgstr "Râdît beigu datumus?" + +#: lib/Block/summary.php:34 +msgid "Show priorities?" +msgstr "Râdît uzdevumu prioritâti?" + +#: lib/Block/summary.php:46 +msgid "Show task alarms?" +msgstr "Râdît uzdevumu atgâdinâjumus??" + +#: lib/Block/summary.php:49 +msgid "Show task category?" +msgstr "Râdît uzdevumu kategorijas?" + +#: lib/Block/summary.php:43 +msgid "Show tasklist name?" +msgstr "Râdît uzdevumu saraksta nosaukumu?" + +#: lib/Block/summary.php:58 +msgid "Show tasks from these categories" +msgstr "Râdît ðo kategoriju uzdevumus?" + +#: templates/list/task_headers.inc:30 +msgid "Sort by Category" +msgstr "Ðíirot pçc kategorijâm" + +#: templates/list/task_headers.inc:5 +msgid "Sort by Completion Status" +msgstr "Ðíirot pçc izpildes statusa" + +#: templates/list/task_headers.inc:26 +msgid "Sort by Due Date" +msgstr "Ðíirot pçc beigu datuma" + +#: templates/list/task_headers.inc:20 +msgid "Sort by Name" +msgstr "Ðíirot pçc nosaukuma" + +#: templates/list/task_headers.inc:13 +msgid "Sort by Priority" +msgstr "Ðíirot pçc prioritâtes" + +#: templates/list/task_headers.inc:9 +msgid "Sort by User Name" +msgstr "Ðíirot pçc lietotâja vârda" + +#: config/prefs.php.dist:80 +msgid "Sort direction:" +msgstr "Ðíiroðanas kârtîba" + +#: config/prefs.php.dist:54 +msgid "Sort tasks by:" +msgstr "Ðíirot uzdevumus pçc:" + +#: templates/list/task_summaries.inc:22 +msgid "Task Alarm" +msgstr "Uzdevuma atgâdinâjums" + +#: templates/list/task_headers.inc:23 +msgid "Task Alarm?" +msgstr "Uzdevuma atgâdinâjums?" + +#: view.php:73 +msgid "Task Details" +msgstr "Uzdevuma izklâsts" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Uzdevumu saraksts" + +#: config/prefs.php.dist:20 config/prefs.php.dist:35 +msgid "Task List and Share Options" +msgstr "Uzdevumu saraksta un koplietoðanas opcijas" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Uzdevumu saraksta nosaukums:" + +#: tasklists.php:132 config/prefs.php.dist:21 +msgid "Task Lists" +msgstr "Uzdevumu saraksti" + +#: config/prefs.php.dist:49 config/prefs.php.dist:64 +msgid "Task Name" +msgstr "Uzdevuma nosaukums" + +#: templates/list/task_summaries.inc:20 +msgid "Task Note" +msgstr "Uzdevuma piezîme" + +#: templates/list/task_headers.inc:22 +msgid "Task Note?" +msgstr "Uzdevuma piezîme?" + +#: task.php:117 view.php:43 +msgid "Task not found." +msgstr "Uzdevums nav atrasts" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Kopsavilkums" + +#: tasklists.php:66 +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Uzdevumu \"%s\" nevar radît: %s " + +#: tasklists.php:77 +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Uzdevumu sarakstu \"%s\" nevar saglabât: %s" + +#: tasklists.php:68 +msgid "The task list \"%s\" has been created." +msgstr "Uzdevumu saraksts \"%s\" radîts." + +#: tasklists.php:102 +msgid "The task list \"%s\" has been deleted." +msgstr "Uzdevumu saraksts \"%s\" izdzçsts." + +#: tasklists.php:79 +msgid "The task list \"%s\" has been saved." +msgstr "Uzdevumu saraksts \"%s\" saglabâts." + +#: tasklists.php:49 +msgid "The task list name is empty." +msgstr "Uzdevumu saraksta nosaukums ir tukðs." + +#: config/prefs.php.dist:69 +msgid "Then:" +msgstr "Tad:" + +#: templates/list/empty.inc:3 +msgid "There are no tasks matching the current criteria." +msgstr "Neviens uzdevums neatbilst ðim kritçrijam." + +#: task.php:264 +msgid "There was a problem completing %s: %s" +msgstr "Kïûme reìistrçjot izpildi %s: %s" + +#: task.php:237 +#, fuzzy +msgid "There was a problem deleting %s: %s" +msgstr "Kïûme dzçðot %s: %s" + +#: task.php:213 +#, fuzzy +msgid "There was a problem saving the task: %s." +msgstr "Kïûme pierakstot uzdevumu: %s." + +#: data.php:137 +#, fuzzy +msgid "There was an error importing the data: %s" +msgstr "Kïûda importçjot datus: %s" + +#: lib/api.php:269 lib/api.php:452 +#, fuzzy +msgid "There was an error importing the iCalendar data." +msgstr "Kïûda importçjot iCalendar datus." + +#: data.php:66 +msgid "There were no tasks to export." +msgstr "Nav eksportçjamu uzdevumu." + +#: data.php:105 +msgid "This file format is not supported." +msgstr "Faila formâts netiek atbalstîts." + +#: tasklists.php:98 +msgid "Unable to delete \"%s\": %s" +msgstr "Nevar izdzçst \"%s\": %s" + +#: templates/task/task.inc:109 +msgid "Undo Changes" +msgstr "Atcelt izmaiòas" + +#: templates/view/task.inc:30 templates/list/task_summaries.inc:27 +#: scripts/upgrades/2004-05-13_convert_categories_to_strings.php:50 +#: lib/Block/summary.php:179 +msgid "Unfiled" +msgstr "Neklasificçts" + +#: lib/api.php:301 lib/api.php:374 lib/api.php:485 +msgid "Unsupported Content-Type." +msgstr "Neatbalstîts datu tips." + +#: templates/list/task_summaries.inc:19 +msgid "View Task Details" +msgstr "Skatît uzdevuma aprakstu" + +#: templates/task/task.inc:80 lib/Nag.php:384 +msgid "Week(s)" +msgstr "Nedçïa(s)" + +#: templates/data/import.inc:24 +msgid "Which tasklist should the tasks be added to?" +msgstr "Kuram uzdevumu sarakstam pievienot importçtos uzdevumus?" + +#: lib/Nag.php:20 +msgid "Yes" +msgstr "Jâ" + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Jums nav tiesîbu piekïût ðim uzdevumu sarakstam." + +#: tasklists.php:105 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Jâizvçlas dzçðamais uzdevumu saraksts." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Jûsu pamata uzdevumu saraksts:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Jûsu uzdevumu saraksti:" + +#: templates/list/task_summaries.inc:19 lib/Block/summary.php:88 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[nav]" + +#: list.php:76 +msgid "_All tasks" +msgstr "Visi uzdevumi" + +#: templates/search/search.inc:23 templates/task/task.inc:41 +msgid "_Category" +msgstr "Kategorija" + +#: templates/view/task.inc:13 +msgid "_Complete" +msgstr "Izpildît" + +#: list.php:78 +msgid "_Completed tasks" +msgstr "Izpildîtie uzdevumi" + +#: templates/view/task.inc:18 +msgid "_Delete" +msgstr "Dzçst" + +#: templates/search/search.inc:22 templates/task/task.inc:97 +msgid "_Description" +msgstr "Apraksts" + +#: templates/list/task_headers.inc:26 +msgid "_Due Date" +msgstr "Izpildes datums" + +#: templates/view/task.inc:15 +msgid "_Edit" +msgstr "Labot" + +#: lib/Nag.php:422 +#, fuzzy +msgid "_Import/Export" +msgstr "Importçt/Eksportçt" + +#: lib/Nag.php:414 +msgid "_List Tasks" +msgstr "Saraksts" + +#: lib/Nag.php:416 +msgid "_New Task" +msgstr "Jauns" + +#: lib/Nag.php:427 +msgid "_Print" +msgstr "Drukât" + +#: templates/task/task.inc:85 +msgid "_Priority" +msgstr "Prioritâte" + +#: lib/Nag.php:418 +msgid "_Search" +msgstr "Meklçt" + +#: templates/task/task.inc:22 templates/list/task_headers.inc:9 +msgid "_Task List" +msgstr "Uzdevumu saraksts" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:56 +msgid "no time" +msgstr "laiks nav norâdîts" + +#: data.php:78 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "uzdevumi.csv" diff --git a/nag/po/nag.pot b/nag/po/nag.pot new file mode 100644 index 000000000..3440b0132 --- /dev/null +++ b/nag/po/nag.pot @@ -0,0 +1,1400 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright YEAR Horde Project +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , 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:44+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: templates/view/task.inc:39 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "" + +#: lib/Nag.php:76 +#, php-format +msgid "%d hour" +msgstr "" + +#: lib/Nag.php:78 +#, php-format +msgid "%d hour, %d minute" +msgstr "" + +#: lib/Nag.php:80 +#, php-format +msgid "%d hour, %d minutes" +msgstr "" + +#: lib/Nag.php:68 +#, php-format +msgid "%d hours" +msgstr "" + +#: lib/Nag.php:70 +#, php-format +msgid "%d hours, %d minute" +msgstr "" + +#: lib/Nag.php:72 +#, php-format +msgid "%d hours, %d minutes" +msgstr "" + +#: lib/Nag.php:86 +#, php-format +msgid "%d minute" +msgstr "" + +#: lib/Nag.php:88 +#, php-format +msgid "%d minutes" +msgstr "" + +#: lib/Nag.php:398 +#, php-format +msgid "%s at %s" +msgstr "" + +#: lib/Nag.php:658 lib/Block/tree_alarms.php:41 lib/Block/summary.php:124 +#, php-format +msgid "%s is due in %s" +msgstr "" + +#: lib/Nag.php:656 lib/Block/tree_alarms.php:43 lib/Block/summary.php:121 +#, php-format +msgid "%s is due now." +msgstr "" + +#: task.php:222 +#, php-format +msgid "%s is now incomplete." +msgstr "" + +#: data.php:218 +#, php-format +msgid "%s successfully imported" +msgstr "" + +#: lib/Nag.php:584 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "" + +#: lib/Nag.php:349 lib/Forms/task.php:84 +msgid "(highest)" +msgstr "" + +#: lib/Nag.php:349 lib/Forms/task.php:85 +msgid "(lowest)" +msgstr "" + +#: task.php:206 +#, php-format +msgid "Access denied completing task %s." +msgstr "" + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "" + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "" + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "" + +#: lib/Driver.php:347 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "" + +#: lib/Driver.php:350 +#, php-format +msgid "Access denied removing task from %s." +msgstr "" + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "" + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:115 +msgid "Alarm" +msgstr "" + +#: templates/data/export.inc:34 config/prefs.php.dist:208 +msgid "All tasks" +msgstr "" + +#: lib/Block/summary.php:76 +msgid "Always show completed and future tasks?" +msgstr "" + +#: lib/Block/summary.php:72 +msgid "Always show overdue tasks?" +msgstr "" + +#: config/prefs.php.dist:125 +msgid "Ascending" +msgstr "" + +#: data.php:55 templates/view/task.inc:12 templates/list/task_headers.inc:56 +#: lib/Forms/task.php:110 config/prefs.php.dist:71 config/prefs.php.dist:98 +#: config/prefs.php.dist:114 +msgid "Assignee" +msgstr "" + +#: lib/Block/summary.php:44 +msgid "Block title" +msgstr "" + +#: data.php:30 +msgid "CSV" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "" + +#: templates/list/task_headers.inc:60 +msgid "Cat_egory" +msgstr "" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:102 +#: lib/Forms/task.php:107 config/prefs.php.dist:73 config/prefs.php.dist:95 +#: config/prefs.php.dist:111 +msgid "Category" +msgstr "" + +#: templates/tasklist_list.php:33 tasklists/index.php:56 +msgid "Change Permissions" +msgstr "" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "" + +#: lib/Nag.php:860 +#, php-format +msgid "Changed alarm from %s to %s" +msgstr "" + +#: lib/Nag.php:839 +#, php-format +msgid "Changed assignee from \"%s\" to \"%s\"" +msgstr "" + +#: lib/Nag.php:823 +#, php-format +msgid "Changed category from \"%s\" to \"%s\"" +msgstr "" + +#: lib/Nag.php:875 +#, php-format +msgid "Changed completion from %s to %s" +msgstr "" + +#: lib/Nag.php:880 +msgid "Changed description" +msgstr "" + +#: lib/Nag.php:848 +#, php-format +msgid "Changed due date from %s to %s" +msgstr "" + +#: lib/Nag.php:870 +#, php-format +msgid "Changed estimate from %s to %s" +msgstr "" + +#: lib/Nag.php:800 +#, php-format +msgid "Changed name from \"%s\" to \"%s\"" +msgstr "" + +#: lib/Nag.php:815 +#, php-format +msgid "Changed parent task from \"%s\" to \"%s\"" +msgstr "" + +#: lib/Nag.php:865 +#, php-format +msgid "Changed priority from %s to %s" +msgstr "" + +#: lib/Nag.php:854 +#, php-format +msgid "Changed start date from %s to %s" +msgstr "" + +#: lib/Nag.php:806 +#, php-format +msgid "Changed task list from \"%s\" to \"%s\"" +msgstr "" + +#: lib/Nag.php:797 +msgid "Changes made for this task:" +msgstr "" + +#: config/prefs.php.dist:187 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "" + +#: config/prefs.php.dist:178 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "" + +#: templates/tasklist_list.php:29 templates/tasklist_list.php:30 +msgid "Click or copy this URL to display this task list" +msgstr "" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "" + +#: view.php:114 +msgid "Complete" +msgstr "" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:192 +#, php-format +msgid "Complete \"%s\"" +msgstr "" + +#: templates/view/task.inc:46 +msgid "Complete Task" +msgstr "" + +#: config/prefs.php.dist:210 +msgid "Complete tasks" +msgstr "" + +#: lib/Nag.php:413 lib/Block/summary.php:190 +msgid "Completed" +msgstr "" + +#: task.php:220 +#, php-format +msgid "Completed %s." +msgstr "" + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "" + +#: templates/data/export.inc:37 +msgid "Completed tasks" +msgstr "" + +#: templates/view/task.inc:42 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:121 config/prefs.php.dist:97 config/prefs.php.dist:113 +msgid "Completed?" +msgstr "" + +#: data.php:63 +msgid "Completion Date" +msgstr "" + +#: data.php:62 +msgid "Completion Status" +msgstr "" + +#: lib/api.php:504 lib/api.php:753 +#, php-format +msgid "Connection failed: %s" +msgstr "" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "" + +#: templates/tasklist_list.php:9 +msgid "Create a new Task List" +msgstr "" + +#: templates/view/task.inc:61 +msgid "Created" +msgstr "" + +#: lib/Recurrence.php:199 +msgid "Daily" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "" + +#: lib/Nag.php:445 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "" + +#: lib/Forms/task.php:114 +msgid "Delay Start Until" +msgstr "" + +#: view.php:121 templates/tasklist_list.php:35 tasklists/index.php:57 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "" + +#: task.php:112 lib/Forms/task.php:126 lib/Forms/task.php:153 +msgid "Delete this task" +msgstr "" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "" + +#: lib/api.php:735 +msgid "Deleting entire tasklists is not supported." +msgstr "" + +#: config/prefs.php.dist:126 +msgid "Descending" +msgstr "" + +#: data.php:53 lib/Forms/task.php:122 +msgid "Description" +msgstr "" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "" + +#: templates/tasklist_list.php:18 +msgid "Display URL" +msgstr "" + +#: config/prefs.php.dist:136 +msgid "Do you want to confirm deleting entries?" +msgstr "" + +#: data.php:56 templates/view/task.inc:26 lib/Forms/task.php:113 +msgid "Due By" +msgstr "" + +#: config/prefs.php.dist:72 config/prefs.php.dist:96 config/prefs.php.dist:112 +msgid "Due Date" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "" + +#: view.php:117 templates/tasklist_list.php:31 tasklists/index.php:55 +msgid "Edit" +msgstr "" + +#: templates/list/task_summaries.inc:39 lib/Block/summary.php:182 +#, php-format +msgid "Edit \"%s\"" +msgstr "" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "" + +#: templates/list/task_headers.inc:43 +msgid "Edit Task" +msgstr "" + +#: templates/list/task_headers.inc:65 +msgid "Edit categories and colors" +msgstr "" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "" + +#: data.php:61 templates/view/task.inc:38 lib/Forms/task.php:120 +msgid "Estimated Time" +msgstr "" + +#: templates/data/export.inc:41 +msgid "Export" +msgstr "" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "" + +#: templates/data/export.inc:36 +msgid "Future tasks" +msgstr "" + +#: config/prefs.php.dist:12 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "" + +#: lib/Nag.php:448 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "" + +#: data.php:224 +msgid "Import/Export Tasks" +msgstr "" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "" + +#: templates/data/export.inc:35 config/prefs.php.dist:209 +msgid "Incomplete tasks" +msgstr "" + +#: lib/api.php:432 +msgid "Invalid tasklist file requested." +msgstr "" + +#: lib/api.php:571 +msgid "Invalid tasklist name supplied." +msgstr "" + +#: lib/api.php:448 +msgid "Invalid tasklist requested." +msgstr "" + +#: templates/view/task.inc:68 +msgid "Last Modified" +msgstr "" + +#: templates/tasklist_list.php:2 tasklists/index.php:61 +msgid "Manage Task Lists" +msgstr "" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "" + +#: templates/view/task.inc:48 +msgid "Mark as incomplete" +msgstr "" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "" + +#: lib/Nag.php:451 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "" + +#: lib/Recurrence.php:202 +msgid "Monthly" +msgstr "" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "" + +#: lib/api.php:1213 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "" + +#: list.php:34 +msgid "My Tasks" +msgstr "" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "" + +#: templates/list/task_headers.inc:46 +msgid "Na_me" +msgstr "" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "" + +#: data.php:52 lib/Forms/task.php:91 +msgid "Name" +msgstr "" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "" + +#: config/prefs.php.dist:174 +msgid "No" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "" + +#: lib/api.php:602 lib/api.php:949 lib/api.php:1007 lib/api.php:1206 +msgid "No iCalendar data was found." +msgstr "" + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "" + +#: lib/Recurrence.php:198 +msgid "No recurrence" +msgstr "" + +#: lib/Nag.php:673 +msgid "No task lists are available to guests." +msgstr "" + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "" + +#: lib/Block/summary.php:250 +msgid "No tasks to display" +msgstr "" + +#: lib/Nag.php:455 lib/Forms/task.php:111 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "" + +#: lib/Nag.php:414 +msgid "Not Completed" +msgstr "" + +#: templates/view/task.inc:18 +msgid "Not Private" +msgstr "" + +#: lib/api.php:809 +msgid "Not configured" +msgstr "" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "" + +#: config/prefs.php.dist:176 +msgid "On all shown task lists" +msgstr "" + +#: config/prefs.php.dist:177 +msgid "On all task lists I have read access to" +msgstr "" + +#: config/prefs.php.dist:175 +msgid "On my task lists only" +msgstr "" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "" + +#: lib/Forms/task.php:98 +msgid "Parent task" +msgstr "" + +#: lib/api.php:818 lib/api.php:856 lib/api.php:889 lib/api.php:924 +#: lib/api.php:1043 lib/api.php:1093 lib/api.php:1155 lib/api.php:1190 +#: lib/api.php:1301 lib/api.php:1348 +msgid "Permission Denied" +msgstr "" + +#: lib/api.php:256 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "" + +#: data.php:59 templates/view/task.inc:34 lib/Forms/task.php:117 +#: config/prefs.php.dist:70 config/prefs.php.dist:93 config/prefs.php.dist:109 +msgid "Priority" +msgstr "" + +#: templates/view/task.inc:18 lib/Driver.php:942 +msgid "Private" +msgstr "" + +#: data.php:60 lib/Driver.php:940 +msgid "Private Task" +msgstr "" + +#: templates/view/task.inc:16 lib/Forms/task.php:112 +msgid "Private?" +msgstr "" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" + +#: view.php:121 +msgid "Really delete this task?" +msgstr "" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:124 +#: lib/Forms/task.php:151 +msgid "Save" +msgstr "" + +#: task.php:185 +#, php-format +msgid "Saved %s." +msgstr "" + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "" + +#: config/prefs.php.dist:74 +msgid "Select the columns that should be shown in the list view:" +msgstr "" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "" + +#: templates/data/export.inc:20 +msgid "Select the task list(s) to export from:" +msgstr "" + +#: templates/data/export.inc:32 +msgid "Select the task states to export:" +msgstr "" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "" + +#: lib/Block/summary.php:52 +msgid "Show action buttons?" +msgstr "" + +#: config/prefs.php.dist:211 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" + +#: config/prefs.php.dist:198 +msgid "Show data from any of these other applications in your task list?" +msgstr "" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "" + +#: lib/Block/summary.php:56 +msgid "Show due dates?" +msgstr "" + +#: lib/Block/summary.php:48 +msgid "Show priorities?" +msgstr "" + +#: lib/Block/summary.php:64 +msgid "Show task alarms?" +msgstr "" + +#: lib/Block/summary.php:68 +msgid "Show task category?" +msgstr "" + +#: config/prefs.php.dist:84 +msgid "Show task list options panel?" +msgstr "" + +#: lib/Block/summary.php:60 +msgid "Show tasklist name?" +msgstr "" + +#: lib/Block/summary.php:85 +msgid "Show tasks from these categories" +msgstr "" + +#: lib/Block/summary.php:80 +msgid "Show tasks from these tasklists" +msgstr "" + +#: templates/list/task_headers.inc:56 +msgid "Sort by Assignee" +msgstr "" + +#: templates/list/task_headers.inc:60 +msgid "Sort by Category" +msgstr "" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "" + +#: templates/list/task_headers.inc:52 +msgid "Sort by Due Date" +msgstr "" + +#: templates/list/task_headers.inc:46 +msgid "Sort by Name" +msgstr "" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "" + +#: config/prefs.php.dist:127 +msgid "Sort direction:" +msgstr "" + +#: config/prefs.php.dist:100 +msgid "Sort tasks by:" +msgstr "" + +#: data.php:58 +msgid "Start" +msgstr "" + +#: templates/view/task.inc:22 +msgid "Start Date" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "" + +#: templates/tasklist_list.php:19 +msgid "Subscription URL" +msgstr "" + +#: templates/list/task_summaries.inc:61 +msgid "Task Alarm" +msgstr "" + +#: templates/list/task_headers.inc:49 +msgid "Task Alarm?" +msgstr "" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "" + +#: lib/Driver/sql.php:100 +msgid "Task ID not found" +msgstr "" + +#: templates/tasklist_list.php:17 lib/Forms/task.php:94 +#: config/prefs.php.dist:69 config/prefs.php.dist:99 config/prefs.php.dist:115 +msgid "Task List" +msgstr "" + +#: lib/Forms/EditTaskList.php:44 lib/Forms/CreateTaskList.php:37 +msgid "Task List Description" +msgstr "" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "" + +#: templates/tasklist_list.php:14 +msgid "Task List List" +msgstr "" + +#: lib/Forms/EditTaskList.php:43 lib/Forms/CreateTaskList.php:36 +msgid "Task List Name" +msgstr "" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "" + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "" + +#: config/prefs.php.dist:94 config/prefs.php.dist:110 +msgid "Task Name" +msgstr "" + +#: templates/list/task_summaries.inc:59 +msgid "Task Note" +msgstr "" + +#: templates/list/task_headers.inc:48 +msgid "Task Note?" +msgstr "" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "" + +#: lib/Driver/sql.php:136 +msgid "Task UID not found" +msgstr "" + +#: lib/Nag.php:781 +msgid "Task added:" +msgstr "" + +#: lib/Nag.php:885 +msgid "Task deleted:" +msgstr "" + +#: lib/Nag.php:903 +msgid "Task description:" +msgstr "" + +#: lib/Nag.php:790 +msgid "Task modified:" +msgstr "" + +#: task.php:95 view.php:43 +msgid "Task not found." +msgstr "" + +#: lib/api.php:747 +msgid "Tasklist does not exist or no permission to delete" +msgstr "" + +#: lib/api.php:577 +msgid "Tasklist does not exist or no permission to edit" +msgstr "" + +#: lib/api.php:1270 +msgid "Tasks" +msgstr "" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "" + +#: lib/api.php:394 +#, php-format +msgid "Tasks from %s" +msgstr "" + +#: data.php:212 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "" + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "" + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "" + +#: lib/Forms/task.php:184 +msgid "The alarm value must not be empty." +msgstr "" + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "" + +#: lib/Nag.php:784 +#, php-format +msgid "" +"The task \"%s\" has been added to task list \"%s\", with a due date of: %s." +msgstr "" + +#: lib/Nag.php:889 +#, php-format +msgid "The task \"%s\" has been deleted from task list \"%s\"." +msgstr "" + +#: lib/Nag.php:793 +#, php-format +msgid "The task \"%s\" has been edited on task list \"%s\"." +msgstr "" + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "" + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "" + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "" + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "" + +#: config/prefs.php.dist:116 +msgid "Then:" +msgstr "" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "" + +#: task.php:216 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "" + +#: task.php:183 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "" + +#: data.php:215 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "" + +#: lib/api.php:594 lib/api.php:941 lib/api.php:1200 +msgid "There was an error importing the iCalendar data." +msgstr "" + +#: lib/api.php:206 +#, php-format +msgid "There was an error removing tasks for %s. Details have been logged." +msgstr "" + +#: data.php:94 +msgid "There were no tasks to export." +msgstr "" + +#: data.php:143 +msgid "This file format is not supported." +msgstr "" + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "" + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" + +#: lib/Nag.php:844 +msgid "Turned privacy off" +msgstr "" + +#: lib/Nag.php:844 +msgid "Turned privacy on" +msgstr "" + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "" + +#: lib/api.php:768 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "" + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:72 +#: lib/Nag.php:1071 lib/Nag.php:1072 lib/Nag.php:1086 lib/Nag.php:1087 +#: lib/Forms/task.php:107 lib/Block/summary.php:35 lib/Block/summary.php:243 +msgid "Unfiled" +msgstr "" + +#: data.php:64 +msgid "Unique ID" +msgstr "" + +#: lib/api.php:701 lib/api.php:1014 lib/api.php:1068 lib/api.php:1117 +#: lib/api.php:1238 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "" + +#: lib/Driver.php:1119 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" + +#: lib/Nag.php:442 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "" + +#: lib/Recurrence.php:200 +msgid "Weekly" +msgstr "" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "" + +#: config/prefs.php.dist:154 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" + +#: config/prefs.php.dist:145 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "" + +#: lib/Recurrence.php:205 +msgid "Yearly" +msgstr "" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "" + +#: data.php:41 data.php:168 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "" + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "" + +#: lib/api.php:143 +msgid "You are not allowed to remove user data." +msgstr "" + +#: view.php:54 +msgid "You do not have permission to view this tasklist." +msgstr "" + +#: lib/Nag.php:782 +msgid "You requested to be notified when tasks are added to your task lists." +msgstr "" + +#: lib/Nag.php:887 +msgid "" +"You requested to be notified when tasks are deleted from your task lists." +msgstr "" + +#: lib/Nag.php:791 +msgid "You requested to be notified when tasks are edited on your task lists." +msgstr "" + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "" + +#: templates/list/task_summaries.inc:49 lib/Block/summary.php:118 +#: lib/Block/summary.php:226 +msgid "[none]" +msgstr "" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "" + +#: list.php:111 +msgid "_All tasks" +msgstr "" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "" + +#: view.php:114 +msgid "_Complete" +msgstr "" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "" + +#: view.php:121 +msgid "_Delete" +msgstr "" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "" + +#: templates/list/task_headers.inc:52 +msgid "_Due Date" +msgstr "" + +#: view.php:117 +msgid "_Edit" +msgstr "" + +#: list.php:113 +msgid "_Future tasks" +msgstr "" + +#: lib/Nag.php:621 +msgid "_Import/Export" +msgstr "" + +#: lib/Nag.php:608 +msgid "_List Tasks" +msgstr "" + +#: lib/Nag.php:613 +msgid "_New Task" +msgstr "" + +#: lib/Nag.php:626 +msgid "_Print" +msgstr "" + +#: lib/Nag.php:617 +msgid "_Search" +msgstr "" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "" + +#: view.php:75 view.php:84 +#, php-format +msgid "by %s" +msgstr "" + +#: view.php:77 view.php:86 +msgid "by me" +msgstr "" + +#: lib/Nag.php:876 lib/Nag.php:877 +msgid "completed" +msgstr "" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "" + +#: lib/Nag.php:849 lib/Nag.php:850 lib/Nag.php:901 +msgid "no due date" +msgstr "" + +#: lib/Nag.php:816 lib/Nag.php:817 +msgid "no parent" +msgstr "" + +#: lib/Nag.php:855 lib/Nag.php:856 +msgid "no start date" +msgstr "" + +#: lib/Nag.php:84 +msgid "no time" +msgstr "" + +#: lib/Nag.php:876 lib/Nag.php:877 +msgid "not completed" +msgstr "" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "" + +#: data.php:114 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "" + +#: data.php:128 +msgid "tasks.ics" +msgstr "" diff --git a/nag/po/nb_NO.po b/nag/po/nb_NO.po new file mode 100644 index 000000000..608f9f2d5 --- /dev/null +++ b/nag/po/nb_NO.po @@ -0,0 +1,322 @@ +# Norwegian Nag Translation. +# Copyright 2002-2009 The Horde Project. +# This file is distributed under the same license as the Mnemo package. +# Torstein S. Hansen , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"POT-Creation-Date: 2002-07-22 13:04+0200\n" +"PO-Revision-Date: 2002-07-22 14:17+0100\n" +"Last-Translator: Torstein S. Hansen \n" +"Language-Team: Norwegian (Bokmal) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d Oppgave" + +msgid "1 task" +msgstr "1 oppgave" + +msgid "Adding A New Task" +msgstr "Legg til en ny oppgave" + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "Er du sikker på at du vil slette disse oppgavene for godt?" + +msgid "Ascending" +msgstr "Oppstigenede" + +msgid "Back to Task List" +msgstr "Tilbake til oppgave listen" + +msgid "Category" +msgstr "Kategori" + +msgid "Change your task sorting and display options." +msgstr "Endre din oppgave sortering og visnings valg." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "Endre %d oppgave etter prioritet %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "Endre 1 oppgave etter prioritet %d." + +msgid "Choose Action:" +msgstr "Velg handling:" + +msgid "Clear Form" +msgstr "Tøm blankett" + +msgid "Complete Task" +msgstr "Fullfør oppgave" + +msgid "Complete Tasks" +msgstr "Fullfør oppgavene" + +msgid "Completed?" +msgstr "Fullført?" + +msgid "Completion Status" +msgstr "Fullførings status" + +msgid "Default sorting criteria:" +msgstr "Standar sorterings criteria:" + +msgid "Default sorting direction:" +msgstr "Standar sorterings adresse:" + +msgid "Delete Task" +msgstr "Slett oppgave" + +msgid "Delete Tasks" +msgstr "Slett oppgaver" + +#, c-format +msgid "Deleted %d tasks." +msgstr "Slett %d oppgaver." + +msgid "Deleted 1 task." +msgstr "Slett 1 oppgave." + +msgid "Descending" +msgstr "Synkende" + +msgid "Description" +msgstr "Beskrivelse" + +msgid "Display Options" +msgstr "Visnings valg" + +msgid "Due By" +msgstr "Forfall ved" + +msgid "Due Date" +msgstr "Forfall dato" + +msgid "Help" +msgstr "Hjelp" + +msgid "Language" +msgstr "Språk" + +msgid "List Tasks" +msgstr "Vis oppgaver" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Merk %d oppgave som fullført." + +msgid "Marked 1 task as completed." +msgstr "Merk 1 oppgave som fullført." + +msgid "Modify Task" +msgstr "Endre oppgave" + +msgid "Modifying:" +msgstr "Endrer:" + +msgid "Nag is not properly configured" +msgstr "Nag er ikke fullstendig konfigurerert" + +msgid "Name" +msgstr "Navn" + +msgid "New Task" +msgstr "Ny oppgave" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Ingen konfigurasjons informasjon er spesifisert for SQL oppgavene." + +msgid "No due date." +msgstr "Ingen fullførings dato." + +msgid "No tasks were changed." +msgstr "Ingen oppgaver ble forandret." + +msgid "No tasks were deleted." +msgstr "Ingen oppgaver ble slettet." + +msgid "No" +msgstr "Nei" + +msgid "None specified" +msgstr "Ikke noe spesifisert." + +msgid "Options" +msgstr "Valg" + +msgid "Other Options" +msgstr "Andre valg" + +msgid "Please enter the task priority (1-5):" +msgstr "Vennligs sett inn oppgavenes prioritet (1-5):" + +msgid "Pri" +msgstr "Prioritet" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "Prioritetet må være mellom 1 og 5. Vennligst sett inn et gydlig valg:" + +msgid "Priority" +msgstr "Prioritet" + +msgid "Problem?" +msgstr "Problemer?" + +msgid "Refresh List" +msgstr "Oppdater listen" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "Nødvendig 'database' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "Nødvendig 'hotspec' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "Nødvendig 'passord' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "Nødvendig 'phptype' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "Nødvendig 'tabell' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "Nødvendig 'brukernavn' er ikke spesifisert i oppgave konfigurasjon." + +msgid "Save Task" +msgstr "Lagre oppgave" + +msgid "Search Results" +msgstr "Søke resultat" + +msgid "Search Scope" +msgstr "Søk rekkevidde" + +msgid "Search Text" +msgstr "Søke tekst" + +msgid "Search" +msgstr "Søk" + +msgid "Select your preferred language:" +msgstr "Velg språk:" + +msgid "Selected?" +msgstr "Valgt?" + +msgid "Set Task Priority" +msgstr "Sett oppgave prioritet." + +msgid "Set the your preferred display language." +msgstr "Sett visnings språk." + +msgid "Show completed tasks in the task list?" +msgstr "Vis fullførte oppgaver i oppgave listen?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "Noen av Nag's konfigurasjons filer mangler:" + +msgid "Sort Direction" +msgstr "Sortering rettning" + +msgid "Sort by Category" +msgstr "Sorter på kategori" + +msgid "Sort by Completion Status" +msgstr "Sorter på sluttførelse status" + +msgid "Sort by Due Date" +msgstr "Sorter på slutt dato" + +msgid "Sort by Name" +msgstr "Sorter på navn" + +msgid "Sort by Priority" +msgstr "Sort etter prioritet" + +msgid "Task Details" +msgstr "Oppgave detaljer" + +msgid "Task List" +msgstr "Oppgave liste" + +msgid "Task Name" +msgstr "Oppgave navn" + +msgid "Task Note" +msgstr "Oppgave notater" + +msgid "Task Note?" +msgstr "Oppgave notat?" + +msgid "The requested task does not exist." +msgstr "Det forespurte oppgaven eksisterer ikke." + +msgid "There was a problem deleting tasks." +msgstr "Det var et problem å slette oppgavene." + +msgid "There was a problem saving the task." +msgstr "Det var et problem å lagre oppgaven." + +msgid "There was a problem setting task completion status." +msgstr "Det var et problem å sette oppgave fullførelse satus." + +msgid "There was a problem setting task priority." +msgstr "Det var er problem å sette oppgave prioriteten." + +msgid "This file contains preferences for Nag." +msgstr "Denne filen inneholder innstillinger for Nag." + +msgid "" +"This file controls the stylesheet that is used to set colors and fonts in " +"addition to or overriding Horde defaults." +msgstr "" +"Denne fila kontrollerer stilarket som blir brukt til å definere farger og " +"skrifttyper, og legg til eller overstyrer standardverdiane til Horde." + +msgid "" +"This is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"Dette er hovedkonfigurasjonsfila for Nag. Den inneholder katalognavn og " +"alternativ for alle Nag-skripta." + +msgid "Undo Changes" +msgstr "Angre endringene" + +msgid "Unfiled" +msgstr "Uutfyllt" + +msgid "Unknown task" +msgstr "Ukjent oppgave" + +msgid "Unknown" +msgstr "Ukjent" + +msgid "User Options" +msgstr "Bruker valg" + +msgid "View Task Details" +msgstr "Vis oppgave detaljene" + +msgid "Yes" +msgstr "Ja" + +msgid "You must select at least one task first." +msgstr "Do må minst velge en oppgave først." + +msgid "Your Information" +msgstr "Din informasjon" + +msgid "Your task list is empty." +msgstr "Din oppgave liste er tom." + +msgid "at" +msgstr "til" diff --git a/nag/po/nl_NL.po b/nag/po/nl_NL.po new file mode 100644 index 000000000..9c7173a63 --- /dev/null +++ b/nag/po/nl_NL.po @@ -0,0 +1,1190 @@ +# Nag Dutch translation. +# Copyright 2001 Jan Kuipers. +# Jan Kuipers , 2001-2007. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 (2.2-cvs)\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2007-11-21 19:43+0100\n" +"PO-Revision-Date: 2007-11-22 00:15+0100\n" +"Last-Translator: Jan Kuipers \n" +"Language-Team: Dutch \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" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s inclusief subtaken)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d uur" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d uur, %d minuut" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d uur, %d minuten" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d uren" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d uren, %d minuut" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d uren, %d minuten" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuut" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minuten" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s op %s" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:42 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s vervalt over %s" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:44 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s vervalt nu." + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s is nu niet afgerond." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s met succes geimporteerd" + +#: tasklists.php:104 lib/Nag.php:516 +#, php-format +msgid "%s's Task List" +msgstr "%s's taaklijst" + +#: lib/Nag.php:315 lib/Forms/task.php:55 +msgid "(highest)" +msgstr "(hoogste)" + +#: lib/Nag.php:315 lib/Forms/task.php:56 +msgid "(lowest)" +msgstr "(laagste)" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "Toegang geweigerd bij afronden van taak %s." + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Toegang geweigerd bij verwijderen van %s" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Toegang geweigerd bij bewerken van taak." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Toegang geweigerd bij bewerken van taak: %s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Toegang geweigerd bij het verplaatsen van taak naar %s." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Toegang geweigerd bij verwijderen van taak uit %s." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Toegang geweigerd bij het opslaan van taak in %s." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Toegang geweigerd bij het opslaan van taak: %s" + +#: lib/Forms/task.php:85 templates/view/task.inc:26 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:201 +msgid "All tasks" +msgstr "Alle taken" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Altijd afgeronde taken weergeven?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Altijd vervallen taken weergeven?" + +#: config/prefs.php.dist:118 +msgid "Ascending" +msgstr "Toenemend" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Bloktitel" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Agenda" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "_Categorie" + +#: data.php:54 lib/Forms/task.php:73 lib/Forms/task.php:79 +#: templates/view/task.inc:8 config/prefs.php.dist:90 +#: config/prefs.php.dist:105 +msgid "Category" +msgstr "Categorie" + +#: templates/tasklists/tasklists.inc:26 +msgid "Change" +msgstr "Wijzigen" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Wijzig uw taaksorteer- en weergaveopties." + +#: config/prefs.php.dist:180 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Kies op welke manier u reminders wilt ontvangen van taken met alarmen:" + +#: config/prefs.php.dist:171 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Kies of u van nieuwe, bewerkte, en verwijderde taken per email op de hoogte " +"gebracht wil worden:" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Kies of u op de hoogte gebracht wil worden van taakwijzigingen en " +"taakalarmen." + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "Kies uw standaard taaklijst." + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Zoeken afsluiten" + +#: view.php:99 +msgid "Complete" +msgstr "Afgerond" + +#: lib/Block/summary.php:168 templates/list/task_summaries.inc:11 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" afgeronden" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Taak afronden" + +#: config/prefs.php.dist:203 +msgid "Complete tasks" +msgstr "Afgeronde taken" + +#: lib/Nag.php:379 lib/Block/summary.php:166 +msgid "Completed" +msgstr "Afgerond" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "%s afgerond." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Afgeronde taken" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Hoofdtaak afgerond, eerst als niet afgerond markeren" + +#: lib/Forms/task.php:91 templates/list/task_headers.inc:31 +#: templates/view/task.inc:38 config/prefs.php.dist:92 +#: config/prefs.php.dist:107 +msgid "Completed?" +msgstr "Afgerond?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Afrondingsstatus" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "Verbinding mislukt: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86 +msgid "Create" +msgstr "Maken" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Gemaakt" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Dag" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Dag(en)" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "Standaard taaklijst" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "Standaardwaarden voor nieuwe taken" + +#: lib/Forms/task.php:84 +msgid "Delay Start Until" +msgstr "Uitstellen van begin totdat" + +#: view.php:106 templates/tasklists/tasklists.inc:87 +msgid "Delete" +msgstr "Verwijderen" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Verwijderbevestiging" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Verwijderknopgedrag" + +#: task.php:105 lib/Forms/task.php:96 +msgid "Delete this task" +msgstr "Verwijder deze taak" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "%s verwijderd." + +#: config/prefs.php.dist:119 +msgid "Descending" +msgstr "Afnemend" + +#: data.php:53 lib/Forms/task.php:92 +msgid "Description" +msgstr "Beschrijving" + +#: templates/tasklists/tasklists.inc:75 +msgid "Description:" +msgstr "Beschrijving:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Weergaveopties" + +#: config/prefs.php.dist:129 +msgid "Do you want to confirm deleting entries?" +msgstr "Wilt u het verwijderen van invoer bevestigen?" + +#: data.php:55 lib/Forms/task.php:83 templates/view/task.inc:22 +msgid "Due By" +msgstr "Vervalt op" + +#: config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Due Date" +msgstr "Vervaldatum" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Vervaldatum opgegeven." + +#: view.php:102 +msgid "Edit" +msgstr "Bewerken" + +#: lib/Block/summary.php:159 templates/list/task_summaries.inc:38 +#, php-format +msgid "Edit \"%s\"" +msgstr "\"%s\" bewerken" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Taak bewerken" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Categorieën en kleuren bewerken" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "Bewerken: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Fout bij verwijderen van taak: %s" + +#: lib/Forms/task.php:90 templates/view/task.inc:34 +msgid "Estimated Time" +msgstr "Geschatte tijd" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Exporteren" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Taken exporteren" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "Externe data" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "Algemene opties" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Uur" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Uur" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Taken importeren, stap %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Taken importeren/exporteren" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Nie_t afgeronde taken" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Niet afgeronde taken" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Niet afgeronde subtaken, rond deze eerst af" + +#: config/prefs.php.dist:202 +msgid "Incomplete tasks" +msgstr "Niet afgeronde taken" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Laatst gewijzigd" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Markeer \"%s\" als niet afgerond" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Markeer als niet afgerond" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "Maximum aantal taken" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Alarmmenu" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menulijst" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minuut" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minuten" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Maand" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Meer opties..." + +#: lib/api.php:986 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Meerdere iCalendar onderdelen gevonden; slecht één vTodo wordt ondersteund." + +#: templates/panel.inc:38 +msgid "My Tasklists:" +msgstr "Mijn taaklijsten:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Mijn taken" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "_Naam" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Naa_m" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: Taak %s niet gevonden" + +#: data.php:52 lib/Forms/task.php:62 +msgid "Name" +msgstr "Naam" + +#: templates/tasklists/tasklists.inc:68 +msgid "Name:" +msgstr "Naam:" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:27 +msgid "New Task" +msgstr "Nieuwe taak" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Volgende" + +#: config/prefs.php.dist:167 +msgid "No" +msgstr "Nee" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Geen uitstel" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Geen vervaldatum." + +#: lib/api.php:405 lib/api.php:709 lib/api.php:767 lib/api.php:979 +msgid "No iCalendar data was found." +msgstr "Geen iCalendardata gevonden." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Geen hoofdtaak" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "Geen taaklijsten beschikbaar voor gasten." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Geen taken komen overeen" + +#: lib/Block/summary.php:222 +msgid "No tasks to display" +msgstr "Geen taken weer te geven" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Geen" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Niet afgerond" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Niet privé" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Niet gevonden" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "Meldingen" + +#: config/prefs.php.dist:169 +msgid "On all shown tasklists" +msgstr "Op alle getoonde taaklijsten" + +#: config/prefs.php.dist:170 +msgid "On all tasklists I have read access to" +msgstr "Op alle taaklijsten waar ik leesrechten heb" + +#: config/prefs.php.dist:168 +msgid "On my tasklists only" +msgstr "Alleen op mijn taaklijsten" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "_Pri" + +#: lib/Forms/task.php:69 +msgid "Parent task" +msgstr "Hoofdtaak" + +#: templates/tasklists/tasklists.inc:71 +msgid "Permission" +msgstr "Recht" + +#: lib/api.php:683 lib/api.php:805 lib/api.php:860 lib/api.php:924 +#: lib/api.php:961 +msgid "Permission Denied" +msgstr "Toegang geweigerd" + +#: lib/api.php:178 +msgid "Permission denied" +msgstr "Toegang geweigerd" + +#: data.php:57 lib/Forms/task.php:87 templates/view/task.inc:30 +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Priority" +msgstr "Prioriteit" + +#: lib/Driver.php:902 templates/view/task.inc:14 +msgid "Private" +msgstr "Privé" + +#: lib/Driver.php:900 +msgid "Private Task" +msgstr "Privé taak" + +#: lib/Forms/task.php:82 templates/view/task.inc:12 +msgid "Private?" +msgstr "Privé?" + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Echt deze taak verwijderen?" + +#: templates/tasklists/tasklists.inc:81 +msgid "Remote Subscription URL" +msgstr "Remote Subscription URL" + +#: lib/Forms/task.php:94 templates/panel.inc:57 +msgid "Save" +msgstr "Opslaan" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s opgeslagen." + +#: search.php:14 lib/Block/tree_menu.php:47 templates/list/header.inc:4 +#: templates/search/search.inc:31 +msgid "Search" +msgstr "Zoeken" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Zoeken in:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Tekst _zoeken:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Zoeken:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Zoeken: resultaten voor \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Selecteer een datum" + +#: templates/tasklists/tasklists.inc:62 +msgid "Select a tasklist" +msgstr "Selecteer een taaklijst" + +#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82 +msgid "Select a tasklist above to display the Remote Subscription URL" +msgstr "" +"Selecteer een bovenstaande taaklijst voor weergave van de Remote Subsription " +"URL" + +#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80 +msgid "Select a tasklist above to display the URL" +msgstr "Selecteer een bovenstaande taaklijst voor weergave van de URL" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Selecteer het exportformaat:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Selecteer het importbestand:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Selecteer het formaat van het bronbestand:" + +#: templates/panel.inc:48 +msgid "Shared Tasklists:" +msgstr "Gedeelde taaklijsten:" + +#: config/prefs.php.dist:69 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "" +"Dient de taaklijst in een eigen kolom in de lijstweergave weergegeven te " +"worden?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Bewerkingsknoppen weergeven?" + +#: config/prefs.php.dist:204 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Afgeronde, niet afgeronde of alle taken in de taaklijst weergeven?" + +#: config/prefs.php.dist:191 +msgid "Show data from any of these other applications in your task list?" +msgstr "Data van elk van deze andere toepassingen in uw taaklijst weergeven?" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "Data van andere toepassingen of bronnen weergeven." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Vervaldata weergeven?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Prioriteiten weergeven?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Taakalarmen weergeven?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Taakcategorie weergeven?" + +#: config/prefs.php.dist:79 +msgid "Show task list options panel?" +msgstr "Taaklijstoptiespaneel weergeven?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Taaklijstnamen weergeven?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Taken van deze categorieen weergeven" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Taken van deze taaklijsten weergeven" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Sorteren op categorie" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Sorteren op afrondingsstatus" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Sorteren op vervaldatum" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Sorteren op naam" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Sorteren op prioriteit" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Sorteren op gebruikersnaam" + +#: config/prefs.php.dist:120 +msgid "Sort direction:" +msgstr "Sorteervolgorde:" + +#: config/prefs.php.dist:94 +msgid "Sort tasks by:" +msgstr "Taken sorteren op:" + +#: data.php:56 +msgid "Start" +msgstr "Start" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Begindatum" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Begindatum opgegeven." + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Taakalarm" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Taakalarm?" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "Taak standaardinstellingen" + +#: lib/Forms/task.php:65 +msgid "Task List" +msgstr "Taaklijst" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "Taaklijst en share opties" + +#: tasklists.php:117 +msgid "Task Lists" +msgstr "Taaklijsten" + +#: config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Task Name" +msgstr "Taaknaam" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Taaknotitie" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Taaknotitie?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Taak zoeken" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Taak toegevoegd:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Taak verwijderd:" + +#: tasklists.php:32 +msgid "Task lists must have a name." +msgstr "Taaklijsten moeten een naam hebben." + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Taak gewijzigd:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "Taak niet gevonden." + +#: config/prefs.php.dist:93 config/prefs.php.dist:108 +msgid "Tasklist" +msgstr "Taaklijst" + +#: templates/panel.inc:30 templates/panel.inc:31 +#: templates/tasklists/tasklists.inc:58 +msgid "Tasklists" +msgstr "Taaklijsten" + +#: templates/tasklists/tasklists.inc:60 +msgid "Tasklists:" +msgstr "Taaklijsten:" + +#: lib/api.php:1041 +msgid "Tasks" +msgstr "Taken" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Takensamenvatting" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Het %s bestand bevatte geen taken." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Het taken backend is momenteel niet beschikbaar." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Het taken backend is momenteel niet beschikbaar: %s" + +#: lib/Forms/task.php:130 +msgid "The alarm value must not be empty." +msgstr "De alarmwaarde mag niet leeg zijn." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Het huidige uur" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"De taak \"%s\" is toegevoegd aan de \"%s\" taaklijst, met een vervaldatum " +"van: %s." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"De taak \"%s\" is verwijderd van de \"%s\" taaklijst, met een vervaldatum " +"van: %s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"De taak \"%s\" is bewerkt op de \"%s\" taaklijst, met een vervaldatum van: %" +"s." + +#: tasklists.php:49 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "De taaklijst \"%s\" kon niet worden aangemaakt: %s" + +#: tasklists.php:60 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "De taaklijst \"%s\" kon niet worden opgeslagen: %s" + +#: tasklists.php:51 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "De taaklijst \"%s\" is aangemaakt." + +#: tasklists.php:85 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "De taaklijst \"%s\" is verwijderd." + +#: tasklists.php:62 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "De taaklijst \"%s\" is opgeslagen." + +#: config/prefs.php.dist:109 +msgid "Then:" +msgstr "Dan:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Er zijn taken die overeenkomen met de huidige criteria." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Een probleem bij het afronden van %s: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Een probleem bij het verwijderen van %s: %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Een probleem bij het opslaan van de taak: %s." + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Een fout bij het importeren van de data: %s" + +#: lib/api.php:397 lib/api.php:701 lib/api.php:973 +msgid "There was an error importing the iCalendar data." +msgstr "Een fout bij het importeren van de iCalendardata." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Er waren geen taken om te exporteren." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Dit bestandsformaat wordt niet ondersteund." + +#: templates/tasklists/tasklists.inc:79 +msgid "URL" +msgstr "URL" + +#: tasklists.php:81 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Niet in staat om \"%s\": %s te verwijderen" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Niet in staat om de definitie van %s te laden." + +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:78 lib/Block/summary.php:31 lib/Block/summary.php:215 +#: templates/list/task_summaries.inc:62 templates/view/task.inc:9 +msgid "Unfiled" +msgstr "Onbenoemd" + +#: lib/api.php:502 lib/api.php:774 lib/api.php:832 lib/api.php:886 +#: lib/api.php:1011 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Niet ondersteund Content-Type: %s" + +#: lib/Driver.php:1079 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Wij willen u van deze vervallen gebeurtenis op de hoogte brengen.\n" +"\n" +"%s\n" +"\n" +"Datum: %s\n" +"Tijd: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Weken" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Wat wilt u dat standaardvervaltijd is voor taken?" + +#: config/prefs.php.dist:147 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Hoeveel dagen in de toekomst dient de standaard vervaldatum te zijn bij het " +"maken van een nieuwe taak (0 betekent vandaag)?" + +#: config/prefs.php.dist:138 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Dient een taak een standaard vervaldatum te krijgen bij het maken van een " +"nieuwe taak?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Aan welke taaklijst dienen de taken toegevoegd te worden?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Jaar" + +#: task.php:61 data.php:41 data.php:151 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Het is u niet toegestaan om meer dan %d taken te maken." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "U heeft geen recht om deze taaklijst te bekijken." + +#: tasklists.php:88 +msgid "You must select a task list to be deleted." +msgstr "U dient een taaklijst te selecteren om te verwijderen." + +#: templates/tasklists/tasklists.inc:47 +msgid "You must select a tasklist to be deleted." +msgstr "U dient een taaklijst te selecteren om te verwijderen." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"U hebt gevraagd om een melding als taken aan uw taaklijsten worden " +"toegevoegd." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"U hebt gevraagd om een melding als taken uit uw taaklijsten worden " +"verwijderd." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"U hebt gevraagd om een melding als taken in uw taaklijsten worden gewijzigd." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Uw standaard taaklijst:" + +#: templates/panel.inc:43 +msgid "[Manage My Tasklists]" +msgstr "[Beheer Mijn taaklijsten]" + +#: lib/Block/summary.php:101 lib/Block/summary.php:199 +#: templates/list/task_summaries.inc:46 +msgid "[none]" +msgstr "[geen]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Alle taken" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Alle taken" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Categorie" + +#: view.php:99 +msgid "_Complete" +msgstr "Afgeron_d" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "Afgeronde ta_ken" + +#: view.php:106 +msgid "_Delete" +msgstr "Ver_wijderen" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "O_mschrijving" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Vervaldat_um" + +#: view.php:102 +msgid "_Edit" +msgstr "_Bewerken" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Toekomstige taken" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "_Import/Export" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "Taken weergeven" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "Nieuwe taak" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "A_fdrukken" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "_Zoeken" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Taaklijst" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:37 +#, php-format +msgid "in %s" +msgstr "in %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "geen tijd" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/po/nn_NO.po b/nag/po/nn_NO.po new file mode 100644 index 000000000..371182310 --- /dev/null +++ b/nag/po/nn_NO.po @@ -0,0 +1,318 @@ +# Nag Norwegian Nynorsk translation. +# Copyright 2002 Per-Stian Vatne +# This file is distributed under the same license as the Nag package. +# Per-Stian Vatne , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"POT-Creation-Date: 2002-06-08 22:20+0200\n" +"PO-Revision-Date: 2002-06-08 22:51+0100\n" +"Last-Translator: Per-Stian Vatne \n" +"Language-Team: Norwegian Nynorsk \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d oppgåver" + +msgid "1 task" +msgstr "1 oppgåve" + +msgid "Adding A New Task" +msgstr "Legge til ei ny oppgåve" + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "Er du sikker på at du vil slette desse oppgåvene permanent?" + +msgid "Ascending" +msgstr "Stigande" + +msgid "Back to Task List" +msgstr "Tilbake til oppgåveliste" + +msgid "Category" +msgstr "Kategori" + +msgid "Change your task sorting and display options." +msgstr "Endre sortering for oppgåver og visingsalternativ" + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "Endra %d oppgåver til prioritet %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "Endra ei oppgåve til prioritet %d." + +msgid "Choose Action:" +msgstr "Vel handling:" + +msgid "Clear Form" +msgstr "Nullstill skjema" + +msgid "Complete Task" +msgstr "Fullfør oppgåve" + +msgid "Complete Tasks" +msgstr "Fullfør oppgåver" + +msgid "Completed?" +msgstr "Fullført?" + +msgid "Completion Status" +msgstr "Fullføringsgrad" + +msgid "Default sorting criteria:" +msgstr "Standard sorteringskriterium:" + +msgid "Default sorting direction:" +msgstr "Standard sorteringsrekkefølgje:" + +msgid "Delete Task" +msgstr "Slett oppgåve" + +msgid "Delete Tasks" +msgstr "Slett oppgåver" + +#, c-format +msgid "Deleted %d tasks." +msgstr "Sletta %d oppgåver." + +msgid "Deleted 1 task." +msgstr "Sletta ei oppgåve." + +msgid "Descending" +msgstr "Synkande" + +msgid "Description" +msgstr "Skildring" + +msgid "Display Options" +msgstr "Visingsalternativ" + +msgid "Due By" +msgstr "Forfell" + +msgid "Due Date" +msgstr "Forfallsdato" + +msgid "Help" +msgstr "Hjelp" + +msgid "Language" +msgstr "Språk" + +msgid "List Tasks" +msgstr "Vis oppgåver" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Markerte %d oppgåver som fullførte." + +msgid "Marked 1 task as completed." +msgstr "Markerte ei oppgåve som fullført." + +msgid "Modify Task" +msgstr "Endre oppgåver" + +msgid "Modifying:" +msgstr "Endringar:" + +msgid "Nag is not properly configured" +msgstr "Nag er ikkje ordentleg konfigurert" + +msgid "Name" +msgstr "Namn" + +msgid "New Task" +msgstr "Ny oppgåve" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Ingen konfigurasjonsinformasjon spesifisert for SQL-oppgåver." + +msgid "No due date." +msgstr "Ingen forfallsdato." + +msgid "No tasks were changed." +msgstr "Ingen oppgåver vart endra." + +msgid "No tasks were deleted." +msgstr "Ingen oppgåver vart sletta." + +msgid "No" +msgstr "Nei" + +msgid "None specified" +msgstr "Ingen spesifisert" + +msgid "Options" +msgstr "Alternativ" + +msgid "Other Options" +msgstr "Andre alternativ" + +msgid "Please enter the task priority (1-5):" +msgstr "Skriv inn prioritet for oppgåva (1-5):" + +msgid "Pri" +msgstr "Pri" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "Prioritetar må vere mellom 1 og 5. Ver venleg og bruk ein lovleg prioritet:" + +msgid "Priority" +msgstr "Prioritet" + +msgid "Problem?" +msgstr "Problem?" + +msgid "Refresh List" +msgstr "Frisk opp liste" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "Nødvendig 'database' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "Nødvendig 'hostspec' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "Nødvendig 'password' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "Nødvendig 'phptype' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "Nødvendig 'table' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "Nødvendig 'username' ikkje spesifisert i konfigurasjon for oppgåver." + +msgid "Save Task" +msgstr "Lagre oppgåve" + +msgid "Search Results" +msgstr "Søkeresultat" + +msgid "Search Scope" +msgstr "Søkeområde" + +msgid "Search Text" +msgstr "Søkestreng" + +msgid "Search" +msgstr "Søk" + +msgid "Select your preferred language:" +msgstr "Vel ønska språk:" + +msgid "Selected?" +msgstr "Valt?" + +msgid "Set Task Priority" +msgstr "Set oppgåveprioritet" + +msgid "Set the your preferred display language." +msgstr "Vel ønska språk." + +msgid "Show completed tasks in the task list?" +msgstr "Vis fullførte oppgåver i oppgåvelista?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "Nokre av Nag sine konfigurasjonsfiler manglar:" + +msgid "Sort Direction" +msgstr "Sorteringsrekkefølgje" + +msgid "Sort by Category" +msgstr "Sorter etter kategori" + +msgid "Sort by Completion Status" +msgstr "Sorter etter fullføringsgrad" + +msgid "Sort by Due Date" +msgstr "Sorter etter forfallsdato" + +msgid "Sort by Name" +msgstr "Soter etter namn" + +msgid "Sort by Priority" +msgstr "Sorter etter prioritet" + +msgid "Task Details" +msgstr "Oppgåvedetaljar" + +msgid "Task List" +msgstr "Oppgåveliste" + +msgid "Task Name" +msgstr "Oppgåvenamn" + +msgid "Task Note" +msgstr "Oppgåvemerknad" + +msgid "Task Note?" +msgstr "Oppgåvemerknad?" + +msgid "The requested task does not exist." +msgstr "Den førespurde oppgåva eksisterer ikkje." + +msgid "The task was saved." +msgstr "Oppgåva vart lagra." + +msgid "There was a problem deleting tasks." +msgstr "Problem ved sletting av oppgåver." + +msgid "There was a problem saving the task." +msgstr "Problem ved lagring av oppgåve." + +msgid "There was a problem setting task completion status." +msgstr "Problem med å setje fullføringsgrad." + +msgid "There was a problem setting task priority." +msgstr "Problem med å setje oppgåveprioritet." + +msgid "This file contains preferences for Nag." +msgstr "Denne fila inneheld innstillingar for Nag." + +msgid "This file controls the stylesheet that is used to set colors and fonts in addition to or overriding Horde defaults." +msgstr "Denne fila kontrollerer stilarket som blir brukt til å definere fargar og skrifttypar, legg til eller overstyrer standardverdiar i Horde." + +msgid "This is the main Nag configuration file. It contains options for all Nag scripts." +msgstr "Dette er hovedkonfigurasjonsfila for Nag. Den inneheld alternativ for alle Nag-skripta." + +msgid "Undo Changes" +msgstr "Angre endringar" + +msgid "Unfiled" +msgstr "Uarkivert" + +msgid "Unknown task" +msgstr "Ukjent oppgåve" + +msgid "Unknown" +msgstr "Ukjent" + +msgid "User Options" +msgstr "Brukaralternativ" + +msgid "View Task Details" +msgstr "Vis oppgåvedetaljar" + +msgid "Yes" +msgstr "Ja" + +msgid "You must select at least one task first." +msgstr "Du må først velje minst ei oppgåve." + +msgid "Your Information" +msgstr "Din informasjon" + +msgid "Your task list is empty." +msgstr "Oppgåvelista di er tom." + +msgid "at" +msgstr "den" + diff --git a/nag/po/pl_PL.po b/nag/po/pl_PL.po new file mode 100644 index 000000000..62393390e --- /dev/null +++ b/nag/po/pl_PL.po @@ -0,0 +1,1122 @@ +# Polish translations for Nag package +# Polskie tlumaczenia dla pakietu Nag. +# Copyright 2007-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# Automatically generated, 2007. +# Mariusz Zynel , 2001. +# Piotr Roszatycki , 2001. +# Krzysztof Kozlowski , 2005. +# Piotr Adamcio , 2007. +# Tadeusz Lesiecki , 2007. +# Piotr Tarnowski , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 (2.2-cvs)\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2007-06-21 14:43+0200\n" +"PO-Revision-Date: 2007-03-31 09:57+0200\n" +"Last-Translator: Piotr Tarnowski \n" +"Language-Team: Polish \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" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d godzina" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d godzina, %d minuta" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d godzina, %d minut" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d godzin" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d godzin, %d minuta" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d godzin, %d minut" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuta" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minut" + +#: lib/Nag.php:366 +#, php-format +msgid "%s at %s" +msgstr "%s o %s" + +#: lib/Nag.php:587 lib/Block/summary.php:106 lib/Block/tree_alarms.php:42 +#, php-format +msgid "%s is due in %s" +msgstr "%s ma termin %s" + +#: lib/Nag.php:585 lib/Block/summary.php:104 lib/Block/tree_alarms.php:44 +#, php-format +msgid "%s is due now." +msgstr "%s ma termin teraz." + +#: task.php:228 +#, php-format +msgid "%s is now incomplete." +msgstr "%s jest teraz niekompletne." + +#: data.php:198 +#, php-format +msgid "%s successfully imported" +msgstr "%s pomy¶lnie zaimportowano" + +#: tasklists.php:100 lib/Nag.php:513 +#, php-format +msgid "%s's Task List" +msgstr "Lista zadañ - %s" + +#: lib/Nag.php:317 lib/Forms/task.php:55 +msgid "(highest)" +msgstr "(najwy¿szy)" + +#: lib/Nag.php:317 lib/Forms/task.php:56 +msgid "(lowest)" +msgstr "(najni¿szy)" + +#: task.php:212 +#, php-format +msgid "Access denied completing task %s." +msgstr "Brak uprawnieñ aby zamkn±æ zadanie %s." + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Brak uprawnieñ aby usun±æ %s." + +#: task.php:81 task.php:87 +msgid "Access denied editing task." +msgstr "Brak uprawnieñ aby edytowaæ zadanie." + +#: task.php:79 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Brak uprawnieñ aby edytowaæ zadanie: %s" + +#: task.php:160 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Brak uprawnieñ aby przenie¶æ zadanie do %s." + +#: task.php:163 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Brak uprawnieñ aby usun±æ zadanie z %s." + +#: task.php:122 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Brak uprawnieñ aby zapisaæ zadanie do %s." + +#: task.php:118 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Brak uprawnieñ aby zapisaæ zadanie: %s" + +#: lib/Forms/task.php:85 templates/view/task.inc:26 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:165 +msgid "All tasks" +msgstr "Wszystkie zadania" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Zawsze wy¶wietlaæ zakoñczone zadania?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Zawsze wy¶wietlaæ zaleg³e zadania?" + +#: config/prefs.php.dist:111 +msgid "Ascending" +msgstr "Rosn±co" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Tytu³ bloku" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:93 +msgid "Calendar" +msgstr "Kalendarz" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kat_egoria" + +#: data.php:54 lib/Forms/task.php:73 lib/Forms/task.php:79 +#: templates/view/task.inc:8 config/prefs.php.dist:83 config/prefs.php.dist:98 +msgid "Category" +msgstr "Kategoria" + +#: templates/tasklists/tasklists.inc:20 +msgid "Change" +msgstr "Zmieñ" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Zmieñ opcje sortowania i wy¶wietlania zadañ." + +#: config/prefs.php.dist:144 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Wybierz jak chesz otrzymywaæ przypomnienia o zadaniach z alarmami:" + +#: config/prefs.php.dist:135 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Wybierz, czy chesz byæ powiadamiany email'em o nowych, zmienionych i " +"usuniêtych zadaniach:" + +#: config/prefs.php.dist:36 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Wybierz, czy chcesz byæ powiadamiany o zmianach zadañ i alarmach zadañ." + +#: config/prefs.php.dist:29 +msgid "Choose your default task list." +msgstr "Wybierz swoj± domy¶ln± listê zadañ." + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Zamknij wyszukiwanie" + +#: view.php:98 +msgid "Complete" +msgstr "Zakoñcz" + +#: lib/Block/summary.php:168 templates/list/task_summaries.inc:11 +#, php-format +msgid "Complete \"%s\"" +msgstr "Zakoñcz \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Zakoñcz zadanie" + +#: config/prefs.php.dist:167 +msgid "Complete tasks" +msgstr "Zakoñcz zadania" + +#: lib/Nag.php:381 lib/Block/summary.php:166 +msgid "Completed" +msgstr "Zakoñczono" + +#: task.php:226 +#, php-format +msgid "Completed %s." +msgstr "Zakoñczono %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Zadania zakoñczone" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "" +"Zadanie nadrzêdne jest zakoñczone, zaznacz je najpierw jako niekompletne" + +#: lib/Forms/task.php:91 templates/list/task_headers.inc:31 +#: templates/view/task.inc:38 config/prefs.php.dist:85 +#: config/prefs.php.dist:100 +msgid "Completed?" +msgstr "Zakoñczone?" + +#: data.php:57 +msgid "Completion Status" +msgstr "Status ukoñczenia" + +#: lib/api.php:277 +#, php-format +msgid "Connection failed: %s" +msgstr "B³±d po³±czenia: %s" + +#: templates/tasklists/tasklists.inc:15 templates/tasklists/tasklists.inc:67 +msgid "Create" +msgstr "Utwórz" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Utworzono" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:87 +msgid "Day" +msgstr "Dzieñ" + +#: lib/Nag.php:413 lib/UI/VarRenderer/nag.php:123 +msgid "Day(s)" +msgstr "Dni" + +#: config/prefs.php.dist:28 +msgid "Default Task List" +msgstr "Domy¶lna lista zadañ" + +#: lib/Forms/task.php:84 +msgid "Delay Start Until" +msgstr "Opó¼nij rozpoczêcie do" + +#: view.php:105 templates/tasklists/tasklists.inc:68 +msgid "Delete" +msgstr "Usuñ" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Potwierdzenie usuwania" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Zachowanie przycisku usuwania" + +#: task.php:102 lib/Forms/task.php:96 +msgid "Delete this task" +msgstr "Usuñ to zadanie" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "Usuniêto %s." + +#: config/prefs.php.dist:112 +msgid "Descending" +msgstr "Malej±co" + +#: data.php:53 lib/Forms/task.php:92 +msgid "Description" +msgstr "Opis" + +#: templates/tasklists/tasklists.inc:63 +msgid "Description:" +msgstr "Opis:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Opcje wy¶wietlania" + +#: config/prefs.php.dist:122 +msgid "Do you want to confirm deleting entries?" +msgstr "Czy chcesz potwierdzaæ usuwanie wpisów?" + +#: data.php:55 lib/Forms/task.php:83 templates/view/task.inc:22 +msgid "Due By" +msgstr "Termin ukoñczenia" + +#: config/prefs.php.dist:84 config/prefs.php.dist:99 +msgid "Due Date" +msgstr "Termin" + +#: lib/UI/VarRenderer/nag.php:86 +msgid "Due date specified." +msgstr "Okre¶lono termin." + +#: view.php:101 +msgid "Edit" +msgstr "Edytuj" + +#: lib/Block/summary.php:159 templates/list/task_summaries.inc:38 +#, php-format +msgid "Edit \"%s\"" +msgstr "Edytuj \"%s\"" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Edytuj zadanie" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Edytuj kategorie i kolory" + +#: task.php:92 task.php:106 +#, php-format +msgid "Edit: %s" +msgstr "Edytuj: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "B³±d przy usuwaniu zadania: %s" + +#: lib/Forms/task.php:90 templates/view/task.inc:34 +msgid "Estimated Time" +msgstr "Szacowany czas" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Eksportuj" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Eksport zadañ" + +#: config/prefs.php.dist:50 +msgid "External Data" +msgstr "Dane zewnêtrzne" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 +msgid "General Options" +msgstr "G³ówne opcje" + +#: lib/UI/VarRenderer/nag.php:98 +msgid "Hour" +msgstr "Godzina" + +#: lib/Nag.php:416 lib/UI/VarRenderer/nag.php:122 +msgid "Hour(s)" +msgstr "Godzin" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Import zadañ, krok %d" + +#: data.php:204 +msgid "Import/Export Tasks" +msgstr "Import/Export zadañ" + +#: list.php:113 +msgid "Incom_plete tasks" +msgstr "Zadania nieukoñczone" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Zadania nieukoñczone" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Nieukoñczone zadania podrzêdne, zakoñcz je najpierw" + +#: config/prefs.php.dist:166 +msgid "Incomplete tasks" +msgstr "Zadania nieukoñczone" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Ostatnio zmodyfikowano" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Oznacz \"%s\" jako nieukoñczone" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Oznacz jako nieukoñczone" + +#: lib/api.php:101 +msgid "Maximum Number of Tasks" +msgstr "Maksymalna ilo¶æ zadañ" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menu alarmów" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Lista menu" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Minute" +msgstr "Minuta" + +#: lib/Nag.php:419 lib/UI/VarRenderer/nag.php:122 +msgid "Minute(s)" +msgstr "Minut" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:88 +msgid "Month" +msgstr "Miesi±c" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Wiêcej opcji..." + +#: lib/api.php:674 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Znaleziono wiele komponentów iCalendar; wspierany jest tylko vTodo." + +#: templates/panel.inc:38 +msgid "My Tasklists:" +msgstr "Moje listy zadañ:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Moje zadania" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "N_azwa" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Nazwa" + +#: lib/Driver/kolab.php:678 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: nie znaleziono zadania %s" + +#: data.php:52 lib/Forms/task.php:62 +msgid "Name" +msgstr "Nazwa" + +#: templates/tasklists/tasklists.inc:58 +msgid "Name:" +msgstr "Nazwa:" + +#: task.php:71 task.php:106 lib/Block/tree_menu.php:21 +msgid "New Task" +msgstr "Nowe zadanie" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Dalej" + +#: config/prefs.php.dist:131 +msgid "No" +msgstr "Nie" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Brak opó¼nienia" + +#: lib/UI/VarRenderer/nag.php:82 +msgid "No due date." +msgstr "Brak terminu." + +#: lib/api.php:455 lib/api.php:511 lib/api.php:667 +msgid "No iCalendar data was found." +msgstr "Nie znaleziono danych w formacie iCalendar." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Brak zadañ nadrzêdnych" + +#: lib/Nag.php:602 +msgid "No task lists are available to guests." +msgstr "Brak listy zadañ dostêpnych dla go¶ci." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Brak pasuj±cych zadañ" + +#: lib/Block/summary.php:222 +msgid "No tasks to display" +msgstr "Brak zadañ do wy¶wietlenia" + +#: lib/Nag.php:423 lib/UI/VarRenderer/nag.php:138 +msgid "None" +msgstr "Brak" + +#: lib/Nag.php:382 +msgid "Not Completed" +msgstr "Nie zakoñczone" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Nie prywatne" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Nie znaleziono" + +#: config/prefs.php.dist:35 +msgid "Notifications" +msgstr "Powiadomienia" + +#: config/prefs.php.dist:133 +msgid "On all shown tasklists" +msgstr "O wszystkich widocznych listach zadañ" + +#: config/prefs.php.dist:134 +msgid "On all tasklists I have read access to" +msgstr "O wszystkicha listach zadañ, które mogê czytaæ" + +#: config/prefs.php.dist:132 +msgid "On my tasklists only" +msgstr "Tylko o moich listach zadañ" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_ri" + +#: lib/Forms/task.php:69 +msgid "Parent task" +msgstr "Zadanie nadrzêdne" + +#: templates/tasklists/tasklists.inc:60 +msgid "Permission" +msgstr "Uprawnienia" + +#: lib/api.php:429 lib/api.php:549 lib/api.php:612 lib/api.php:649 +msgid "Permission Denied" +msgstr "Dostêp zabroniony" + +#: lib/api.php:159 +msgid "Permission denied" +msgstr "Brak uprawnieñ" + +#: data.php:56 lib/Forms/task.php:87 templates/view/task.inc:30 +#: config/prefs.php.dist:81 config/prefs.php.dist:96 +msgid "Priority" +msgstr "Priorytet" + +#: lib/Driver.php:765 templates/view/task.inc:14 +msgid "Private" +msgstr "Prywatne" + +#: lib/Driver.php:763 +msgid "Private Task" +msgstr "Prywatne zadanie" + +#: lib/Forms/task.php:82 templates/view/task.inc:12 +msgid "Private?" +msgstr "Prywatne?" + +#: view.php:105 +msgid "Really delete this task?" +msgstr "Na prawdê usun±æ to zadanie?" + +#: lib/Forms/task.php:94 templates/panel.inc:57 +msgid "Save" +msgstr "Zapisz" + +#: task.php:191 +#, php-format +msgid "Saved %s." +msgstr "Zapisano %s." + +#: search.php:14 lib/Block/tree_menu.php:30 templates/list/header.inc:4 +#: templates/search/search.inc:31 +msgid "Search" +msgstr "Szukaj" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Szukaj w:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Szukaj _tekstu:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Szukaj:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Wyszukiwanie: rezultaty dla \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:93 +msgid "Select a date" +msgstr "Wybierz datê" + +#: templates/tasklists/tasklists.inc:52 +msgid "Select a tasklist" +msgstr "Sybierz listê zadañ" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Wybierz format eksportu:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Wybierz plik do zaimportowania:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Wybierz format pliku ¼ród³owego:" + +#: templates/panel.inc:48 +msgid "Shared Tasklists:" +msgstr "Wspó³dzielona lista zadañ:" + +#: config/prefs.php.dist:62 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "" +"Czy lista zadañ powinna byæ wy¶wietlana we w³asnej kolumnie w widoku listy?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Wy¶wietlaæ przyciski akcji?" + +#: config/prefs.php.dist:168 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Wy¶wietlaæ zakoñczone, nieukoñczone czy wszystkie zadania w li¶cie zadañ?" + +#: config/prefs.php.dist:155 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"Wy¶wietlaæ dane z którejkolwiek z tych aplikacji w Twojej li¶cie zadañ?" + +#: config/prefs.php.dist:51 +msgid "Show data from other applications or sources." +msgstr "Wy¶wietlaj dane z innych aplikacji lub ¼róde³." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Wy¶wietlaæ terminy?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Wy¶wietlaæ priorytety?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Wy¶wietlaæ alarmy zadañ?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Wy¶wietlaæ kategorie zadañ?" + +#: config/prefs.php.dist:72 +msgid "Show task list options panel?" +msgstr "Wy¶wietlaæ panel opcji listy zadañ?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Wy¶wietlaæ nazwê listy zadañ?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Wy¶wietlaj zadania z tych kategori" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Wy¶wietlaj zadania z tych list zadañ" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Sortuj po kategorii" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Sortuj po statusie ukoñczenia" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Sortuj po terminie" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Sortuj po nazwie" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Sortuj po priorytecie" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Sortuj po nazwie u¿ytkownika" + +#: config/prefs.php.dist:113 +msgid "Sort direction:" +msgstr "Kierunek sortowania:" + +#: config/prefs.php.dist:87 +msgid "Sort tasks by:" +msgstr "Sortuj zadania wed³ug:" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Data rozpoczêcia" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Nie okre¶lono daty rozpoczêcia." + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Alarm zadania" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Alarm zadania?" + +#: lib/Forms/task.php:65 +msgid "Task List" +msgstr "Lista zadañ" + +#: config/prefs.php.dist:27 config/prefs.php.dist:34 config/prefs.php.dist:49 +msgid "Task List and Share Options" +msgstr "Opcje listy zadañ i udzia³ów" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Listy zadañ" + +#: config/prefs.php.dist:82 config/prefs.php.dist:97 +msgid "Task Name" +msgstr "Nazwa zadania" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Notatka zadania" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Notatka zadania?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Wyszukiwanie zadañ" + +#: lib/Nag.php:627 +msgid "Task added:" +msgstr "Dodano zadanie:" + +#: lib/Nag.php:637 +msgid "Task deleted:" +msgstr "Usuniêto zadanie:" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Lista zadañ musi posiadaæ nazwê." + +#: lib/Nag.php:632 +msgid "Task modified:" +msgstr "Zmodyfikowano zadanie:" + +#: view.php:43 task.php:85 +msgid "Task not found." +msgstr "Nie znaleziono zadania." + +#: config/prefs.php.dist:86 config/prefs.php.dist:101 +msgid "Tasklist" +msgstr "Lista zadañ" + +#: templates/panel.inc:30 templates/panel.inc:31 +#: templates/tasklists/tasklists.inc:48 +msgid "Tasklists" +msgstr "Listy zadañ" + +#: templates/tasklists/tasklists.inc:50 +msgid "Tasklists:" +msgstr "Listy zadañ:" + +#: lib/api.php:728 +msgid "Tasks" +msgstr "Zadania" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Podsumowanie zadañ" + +#: data.php:192 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Plik %s nie zawiera³ ¿adnych zadañ." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Backend zadañ nie jest obecnie dostêpny." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Backend zadañ nie jest obecnie dostêpny: %s" + +#: lib/Forms/task.php:130 +msgid "The alarm value must not be empty." +msgstr "Warto¶æ alarmu nie mo¿e byæ pusta." + +#: lib/Nag.php:628 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "Zadanie \"%s\" zosta³o dodane do listy zadañ \"%s\" z terminem: %s." + +#: lib/Nag.php:638 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "Zadanie \"%s\" zosta³o usuniête z listy zadañ \"%s\" z terminem: %s." + +#: lib/Nag.php:633 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"Zadanie \"%s\" zosta³o poprawione na li¶cie zadañ \"%s\" z terminem: %s." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Lista zadañ \"%s\" nie mo¿e zostaæ utworzona: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Lista zadañ \"%s\" nie mo¿e zostaæ zapisana: %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Lista zadañ \"%s\" zosta³a utworzona." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Lista zadañ \"%s\" zosta³a usuniêta." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Lista zadañ \"%s\" zosta³a zapisana." + +#: config/prefs.php.dist:102 +msgid "Then:" +msgstr "Nastêpnie:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Nie ma zadañ spe³niaj±cych podane kryteria." + +#: task.php:222 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Wyst±pi³ problem przy zmianie statusu %s: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Wyst±pi³ problem przy usuwaniu %s: %s" + +#: task.php:189 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Wyst±pi³ problem przy zapisywaniu zadania: %s." + +#: data.php:195 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Wyst±pi³ b³±d podczas importu danych: %s" + +#: lib/api.php:447 lib/api.php:661 +msgid "There was an error importing the iCalendar data." +msgstr "Wyst±pi³ b³±d podczas importu danych w formacie iCalendar." + +#: data.php:79 +msgid "There were no tasks to export." +msgstr "Nie by³o zadañ do wyeksportowania." + +#: data.php:125 +msgid "This file format is not supported." +msgstr "Ten format pliku nie jest wspierany." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Nie mo¿na usun±æ \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Nie mo¿na za³adowaæ definicji %s." + +#: lib/Nag.php:847 lib/Nag.php:848 lib/Nag.php:862 lib/Nag.php:863 +#: lib/Forms/task.php:78 lib/Block/summary.php:31 lib/Block/summary.php:215 +#: templates/list/task_summaries.inc:62 templates/view/task.inc:9 +msgid "Unfiled" +msgstr "Niewype³niona" + +#: lib/api.php:518 lib/api.php:576 lib/api.php:698 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Niewspierany rodzaj zawarto¶ci: %s" + +#: lib/Driver.php:930 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Chcemy przypomnieæ Ci o tym terminie zadania.\n" +"\n" +"%s\n" +"\n" +"Data: %s\n" +"Czas: %s\n" +"\n" +"%s" + +#: lib/Nag.php:410 lib/UI/VarRenderer/nag.php:123 +msgid "Week(s)" +msgstr "Tygodni" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Do której listy zadañ powinny zostaæ dodane zadania?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:89 +msgid "Year" +msgstr "Rok" + +#: task.php:61 data.php:41 data.php:150 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Nie masz zezwolenia aby utworzyæ wiêcej ni¿ %d zadañ." + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Nie masz uprawnieñ aby wy¶wietliæ tê listê zadañ." + +#: tasklists.php:84 +msgid "You must select a task list to be deleted." +msgstr "Musisz wybraæ listê zadañ do usuniêcia." + +#: templates/tasklists/tasklists.inc:37 +msgid "You must select a tasklist to be deleted." +msgstr "Musisz wybraæ listê zadañ do usuniêcia." + +#: lib/Nag.php:628 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Za¿±da³e¶ aby Cie poinformowaæ gdy zadania zostan± dodane do Twojej listy " +"zadañ." + +#: lib/Nag.php:638 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Za¿±da³e¶ aby Cie poinformowaæ gdy zadania zostan± usuniête z Twojej listy " +"zadañ." + +#: lib/Nag.php:633 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Za¿±da³e¶ aby Cie poinformowaæ gdy zadania zostan± zmienione na Twojej " +"li¶cie zadañ." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Twoja domy¶lna lista zadañ:" + +#: templates/panel.inc:43 +msgid "[Manage My Tasklists]" +msgstr "[Zarz±dzaj moimi listami zadañ]" + +#: lib/Block/summary.php:101 lib/Block/summary.php:199 +#: templates/list/task_summaries.inc:46 +msgid "[none]" +msgstr "[brak]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "Wszystkie z_adania" + +#: list.php:112 +msgid "_All tasks" +msgstr "Wszystkie z_adania" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "Kategoria" + +#: view.php:98 +msgid "_Complete" +msgstr "Zakoñcz" + +#: list.php:115 +msgid "_Completed tasks" +msgstr "Zadania ukoñczone" + +#: view.php:105 +msgid "_Delete" +msgstr "Usuñ" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "Opis" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Termin" + +#: view.php:101 +msgid "_Edit" +msgstr "_Edytuj" + +#: list.php:114 +msgid "_Future tasks" +msgstr "Przysz³e zadania" + +#: lib/Nag.php:550 +msgid "_Import/Export" +msgstr "_Import/Eksport" + +#: lib/Nag.php:537 +msgid "_List Tasks" +msgstr "_Lista zadañ" + +#: lib/Nag.php:542 +msgid "_New Task" +msgstr "_Nowe zadanie" + +#: lib/Nag.php:555 +msgid "_Print" +msgstr "Drukuj" + +#: lib/Nag.php:546 +msgid "_Search" +msgstr "_Szukaj" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Lista zadañ" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "brak czasu" + +#: data.php:99 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "zadania.csv" + +#: data.php:110 +msgid "tasks.ics" +msgstr "zadania.ics" diff --git a/nag/po/pt_BR.po b/nag/po/pt_BR.po new file mode 100644 index 000000000..6565a6b40 --- /dev/null +++ b/nag/po/pt_BR.po @@ -0,0 +1,1319 @@ +# translation of pt_BR.po to Português brasileiro +# This file is distributed under the same license as the Nag package. +# Copyright YEAR Horde Project. +# +# Fabio Gomes , 2005. +# Luis Felipe Marzagao , 2008. +msgid "" +msgstr "" +"Project-Id-Version: pt_BR\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-07-06 23:43-0300\n" +"PO-Revision-Date: 2008-07-07 00:09-0300\n" +"Last-Translator: Luis Felipe Marzagao \n" +"Language-Team: Português brasileiro \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: templates/view/task.inc:39 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s subtarefas incluídas)" + +#: lib/Nag.php:76 +#, php-format +msgid "%d hour" +msgstr "%d hora" + +#: lib/Nag.php:78 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hora, %d minuto" + +#: lib/Nag.php:80 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hora, %d minutos" + +#: lib/Nag.php:68 +#, php-format +msgid "%d hours" +msgstr "%d horas" + +#: lib/Nag.php:70 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d horas, %d minuto" + +#: lib/Nag.php:72 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d horas, %d minutos" + +#: lib/Nag.php:86 +#, php-format +msgid "%d minute" +msgstr "%d minuto" + +#: lib/Nag.php:88 +#, php-format +msgid "%d minutes" +msgstr "%d minutos" + +#: lib/Nag.php:398 +#, php-format +msgid "%s at %s" +msgstr "%s à %s" + +#: lib/Nag.php:658 lib/Block/summary.php:124 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "%s vencerá em %s" + +#: lib/Nag.php:656 lib/Block/summary.php:121 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr "%s está vencido agora." + +#: task.php:240 +#, php-format +msgid "%s is now incomplete." +msgstr "%s está compelto agora." + +#: data.php:217 +#, php-format +msgid "%s successfully imported" +msgstr "%s importado com sucesso" + +#: lib/Nag.php:584 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Lista de Tarefas de %s" + +#: lib/Nag.php:349 lib/Forms/task.php:84 +msgid "(highest)" +msgstr "(altíssima)" + +#: lib/Nag.php:349 lib/Forms/task.php:85 +msgid "(lowest)" +msgstr "(baixíssima)" + +#: task.php:224 +#, php-format +msgid "Access denied completing task %s." +msgstr "Acesso negado ao completar a tarefa %s." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Acesso negado ao apagar a tarefa." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Acesso negado ao editar a tarefa." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Acesso negado ao editar a tarefa: %s" + +#: task.php:171 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Acesso negado ao mover a tarefa para %s." + +#: task.php:174 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Acesso negado ao remover a tarefa de %s." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Acesso negado ao gravar a tarefa em %s." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Acesso negado ao gravar a tarefa: %s" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:115 +msgid "Alarm" +msgstr "Aviso" + +#: templates/data/export.inc:34 config/prefs.php.dist:208 +msgid "All tasks" +msgstr "Todas tarefas" + +#: lib/Block/summary.php:76 +msgid "Always show completed and future tasks?" +msgstr "Sempre mostrar tarefas completadas e futuras?" + +#: lib/Block/summary.php:72 +msgid "Always show overdue tasks?" +msgstr "Sempre exibir tarefas vencidas?" + +#: config/prefs.php.dist:125 +msgid "Ascending" +msgstr "Ascendente" + +#: data.php:55 templates/view/task.inc:12 templates/list/task_headers.inc:56 +#: lib/Forms/task.php:110 config/prefs.php.dist:71 config/prefs.php.dist:98 +#: config/prefs.php.dist:114 +msgid "Assignee" +msgstr "Assinante" + +#: lib/Block/summary.php:44 +msgid "Block title" +msgstr "Título do bloco" + +#: data.php:30 +msgid "CSV" +msgstr "CSV" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Calendário" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Cancelar" + +#: templates/list/task_headers.inc:60 +msgid "Cat_egory" +msgstr "Cate_goria" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:102 +#: lib/Forms/task.php:107 config/prefs.php.dist:73 config/prefs.php.dist:95 +#: config/prefs.php.dist:111 +msgid "Category" +msgstr "Categoria" + +#: tasklists/index.php:56 templates/tasklist_list.php:33 +msgid "Change Permissions" +msgstr "Alterar Permissões" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Altera a ordem da sua lista de tarefas e as opções de visualização." + +#: config/prefs.php.dist:187 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Escolha como deseja receber lembretes para tarefas com alarme:" + +#: config/prefs.php.dist:178 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Escolha se deseja ser notificado por e-mail sobre tarefas novas, editadas e " +"apagadas:" + +#: config/prefs.php.dist:43 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Escolha se deseja ser notificado sobre alterações de tarefas e alarmes de " +"tarefas." + +#: config/prefs.php.dist:36 +msgid "Choose your default task list." +msgstr "Escolha sua lista de tarefas padrão." + +#: templates/tasklist_list.php:29 templates/tasklist_list.php:30 +msgid "Click or copy this URL to display this task list" +msgstr "Clique ou copie (n)esta URL para exibir esta lista de tarefas" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Fechar" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Fechar Pesquisa" + +#: view.php:114 +msgid "Complete" +msgstr "Encerrar" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:192 +#, php-format +msgid "Complete \"%s\"" +msgstr "Completar \"%s\"" + +#: templates/view/task.inc:46 +msgid "Complete Task" +msgstr "Tarefa Encerrada" + +#: config/prefs.php.dist:210 +msgid "Complete tasks" +msgstr "Tarefas encerradas" + +#: lib/Nag.php:413 lib/Block/summary.php:190 +msgid "Completed" +msgstr "Encerrada" + +#: task.php:238 +#, php-format +msgid "Completed %s." +msgstr "%s encerrada." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Tarefas Completadas" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Tarefa mãe completada, marque-a como incompleta antes" + +#: templates/data/export.inc:37 +msgid "Completed tasks" +msgstr "Tarefas completadas" + +#: templates/view/task.inc:42 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:121 config/prefs.php.dist:97 config/prefs.php.dist:113 +msgid "Completed?" +msgstr "Encerrada?" + +#: data.php:63 +msgid "Completion Date" +msgstr "Data de Cumprimento" + +#: data.php:62 +msgid "Completion Status" +msgstr "Situação de Encerramento" + +#: lib/api.php:504 lib/api.php:755 +#, php-format +msgid "Connection failed: %s" +msgstr "A conexão falhou: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Criar" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Criar Lista de Tarefas" + +#: templates/tasklist_list.php:9 +msgid "Create a new Task List" +msgstr "Criar uma nova Lista de Tarefas" + +#: templates/view/task.inc:61 +msgid "Created" +msgstr "Criado" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Dia" + +#: lib/Nag.php:445 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Dia(s)" + +#: config/prefs.php.dist:35 +msgid "Default Task List" +msgstr "Lista de Tarefas Padrão" + +#: config/prefs.php.dist:29 +msgid "Defaults for new tasks" +msgstr "Padrões para novas tarefas" + +#: lib/Forms/task.php:114 +msgid "Delay Start Until" +msgstr "Atrasar Início Até" + +#: view.php:121 tasklists/index.php:57 templates/tasklist_list.php:35 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Excluir" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Excluir %s" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Confirmação de Exclusão" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Comportamento do botão de exclusão" + +#: task.php:112 lib/Forms/task.php:126 lib/Forms/task.php:153 +msgid "Delete this task" +msgstr "Excluir esta tarefa" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "%s excluída." + +#: lib/api.php:737 +msgid "Deleting entire tasklists is not supported." +msgstr "Não é possível apagar listas inteiras de tarefas." + +#: config/prefs.php.dist:126 +msgid "Descending" +msgstr "Descendente" + +#: data.php:53 lib/Forms/EditTaskList.php:44 lib/Forms/task.php:122 +#: lib/Forms/CreateTaskList.php:37 +msgid "Description" +msgstr "Descrição" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Opções de Exibição" + +#: templates/tasklist_list.php:18 +msgid "Display URL" +msgstr "Exibir URL" + +#: config/prefs.php.dist:136 +msgid "Do you want to confirm deleting entries?" +msgstr "Você deseja confirmar a exclusão de registros?" + +#: data.php:56 templates/view/task.inc:26 lib/Forms/task.php:113 +msgid "Due By" +msgstr "Vencimento Em" + +#: config/prefs.php.dist:72 config/prefs.php.dist:96 config/prefs.php.dist:112 +msgid "Due Date" +msgstr "Data de Vencimento" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Vencimento especificado." + +#: view.php:117 tasklists/index.php:55 templates/tasklist_list.php:31 +msgid "Edit" +msgstr "Editar" + +#: templates/list/task_summaries.inc:39 lib/Block/summary.php:182 +#, php-format +msgid "Edit \"%s\"" +msgstr "Editar \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Editar %s" + +#: templates/list/task_headers.inc:43 +msgid "Edit Task" +msgstr "Editar Tarefa" + +#: templates/list/task_headers.inc:65 +msgid "Edit categories and colors" +msgstr "Editar categorias e cores" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Editar: %s" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Erro ao apagar tarefa: %s" + +#: data.php:61 templates/view/task.inc:38 lib/Forms/task.php:120 +msgid "Estimated Time" +msgstr "Tempo Estimado" + +#: templates/data/export.inc:41 +msgid "Export" +msgstr "Exportar" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Exportar Tarefas" + +#: config/prefs.php.dist:57 +msgid "External Data" +msgstr "Dados Externos" + +#: templates/data/export.inc:36 +msgid "Future tasks" +msgstr "Tarefas futuras" + +#: config/prefs.php.dist:12 config/prefs.php.dist:20 config/prefs.php.dist:27 +msgid "General Options" +msgstr "Opções Gerais" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Hora" + +#: lib/Nag.php:448 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Hora(s)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importar Tarefas, Passo %d" + +#: data.php:223 +msgid "Import/Export Tasks" +msgstr "Importar/Exportar Tarefas" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Tarefas in_completas" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Tarefas Incompletas" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Subtarefas incompletas, complete-as primeiro" + +#: templates/data/export.inc:35 config/prefs.php.dist:209 +msgid "Incomplete tasks" +msgstr "Tarefas incompletas" + +#: lib/api.php:432 +msgid "Invalid tasklist file requested." +msgstr "Arquivo de lista de tarefas requisitado é inválido." + +#: lib/api.php:571 +msgid "Invalid tasklist name supplied." +msgstr "Nome fornecido de lista de tarefas inválido." + +#: lib/api.php:448 +msgid "Invalid tasklist requested." +msgstr "Requisitada lista de tarefas inválida." + +#: templates/view/task.inc:68 +msgid "Last Modified" +msgstr "Última Modificação" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Gerenciar Listas de Tarefas" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Marcar \"%s\" como incompleto" + +#: templates/view/task.inc:48 +msgid "Mark as incomplete" +msgstr "Marcar como incompleto" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Número Máximo de Tarefas" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Alarmes de Menu" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Lista de Menus" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minuto" + +#: lib/Nag.php:451 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minuto(s)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mês" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Mais Opções..." + +#: lib/api.php:1230 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Múltiplos componentes iCalendar encontrados; somente um vTodo é suportado." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Minhas Listas de Tarefas:" + +#: list.php:34 +msgid "My Tasks" +msgstr "Minhas Tarefas" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "_Nome" + +#: templates/list/task_headers.inc:46 +msgid "Na_me" +msgstr "_Nome" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: Não foi possível encontrar a tarefa %s" + +#: data.php:52 lib/Forms/EditTaskList.php:43 lib/Forms/task.php:91 +#: lib/Forms/CreateTaskList.php:36 +msgid "Name" +msgstr "Nome" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Nova Tarefa" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Próxima" + +#: config/prefs.php.dist:174 +msgid "No" +msgstr "Não" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Sem atraso" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Sem data de vencimento." + +#: lib/api.php:604 lib/api.php:953 lib/api.php:1011 lib/api.php:1223 +msgid "No iCalendar data was found." +msgstr "Nenhum dado iCalendar foi encontrado." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "Sem tarefa mãe" + +#: lib/Nag.php:673 +msgid "No task lists are available to guests." +msgstr "Nenhuma lista de tarefas está disponível para convidados." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Nenhuma tarefa coincide" + +#: lib/Block/summary.php:250 +msgid "No tasks to display" +msgstr "Nenhuma tarefa para exibir" + +#: lib/Nag.php:455 lib/Forms/task.php:111 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Nenhuma" + +#: lib/Nag.php:414 +msgid "Not Completed" +msgstr "Não Encerrada" + +#: templates/view/task.inc:18 +msgid "Not Private" +msgstr "Não Privado" + +#: lib/api.php:811 +msgid "Not configured" +msgstr "Não configurado" + +#: config/prefs.php.dist:42 +msgid "Notifications" +msgstr "Notificações" + +#: config/prefs.php.dist:176 +msgid "On all shown task lists" +msgstr "Em todas as listas de tarefas exibidas" + +#: config/prefs.php.dist:177 +msgid "On all task lists I have read access to" +msgstr "Em todas as listas de tarefas em que eu tenha permissão de leitura" + +#: config/prefs.php.dist:175 +msgid "On my task lists only" +msgstr "Apenas em minhas listas de tarefas" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_rioridade" + +#: lib/Forms/task.php:98 +msgid "Parent task" +msgstr "Tarefa mãe" + +#: lib/api.php:820 lib/api.php:858 lib/api.php:891 lib/api.php:927 +#: lib/api.php:1049 lib/api.php:1104 lib/api.php:1168 lib/api.php:1205 +#: lib/api.php:1318 lib/api.php:1365 +msgid "Permission Denied" +msgstr "Permissão Negada" + +#: lib/api.php:256 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Permissão negada" + +#: data.php:59 templates/view/task.inc:34 lib/Forms/task.php:117 +#: config/prefs.php.dist:70 config/prefs.php.dist:93 config/prefs.php.dist:109 +msgid "Priority" +msgstr "Prioridade" + +#: templates/view/task.inc:18 lib/Driver.php:903 +msgid "Private" +msgstr "Privado" + +#: data.php:60 lib/Driver.php:901 +msgid "Private Task" +msgstr "Tarefa Privada" + +#: templates/view/task.inc:16 lib/Forms/task.php:112 +msgid "Private?" +msgstr "Privada?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Realmente apagar a lista de tarefas \"%s\"? Isto não pode ser desfeito e " +"todos os dados nesta lista de tarefas serão permanentemente removidos." + +#: view.php:121 +msgid "Really delete this task?" +msgstr "Realmente apagar esta tarefa?" + +#: templates/panel.inc:90 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:124 +#: lib/Forms/task.php:151 +msgid "Save" +msgstr "Gravar" + +#: task.php:203 +#, php-format +msgid "Saved %s." +msgstr "%s gravado." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Pesquisar" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Pesquisar Em:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Pesquisar _Texto:" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Pesquisar por Listas de Tarefas:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Pesquisar:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Pesquisa: Resultados para \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Selecione uma data" + +#: config/prefs.php.dist:74 +msgid "Select the columns that should be shown in the list view:" +msgstr "Selecione as colunas que serão mostradas na exibição de lista:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Selecione o formato para exportar:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Selecione o arquivo para importar:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Selecione o formato do arquivo de origem:" + +#: templates/data/export.inc:20 +msgid "Select the task list(s) to export from:" +msgstr "Selecione a(s) lista(s) de tarefas de onde exportar:" + +#: templates/data/export.inc:32 +msgid "Select the task states to export:" +msgstr "Selecione os estados de tarefas para exportar:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "Listas de Tarefas Compartilhadas:" + +#: lib/Block/summary.php:52 +msgid "Show action buttons?" +msgstr "Exibir botões de ação?" + +#: config/prefs.php.dist:211 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Exibir encerradas, incompletas, ou todas as tarefas na lista de tarefas?" + +#: config/prefs.php.dist:198 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"Exibir dados de qualquer destas outras aplicações na sua lista de tarefas?" + +#: config/prefs.php.dist:58 +msgid "Show data from other applications or sources." +msgstr "Exibir dados de outras aplicações ou fontes." + +#: lib/Block/summary.php:56 +msgid "Show due dates?" +msgstr "Exibir datas de vencimento?" + +#: lib/Block/summary.php:48 +msgid "Show priorities?" +msgstr "Exibir prioridades?" + +#: lib/Block/summary.php:64 +msgid "Show task alarms?" +msgstr "Exibir avisos da tarefa?" + +#: lib/Block/summary.php:68 +msgid "Show task category?" +msgstr "Exibir categoria da tarefa?" + +#: config/prefs.php.dist:84 +msgid "Show task list options panel?" +msgstr "Exibir o painel de opções de listas de tarefas?" + +#: lib/Block/summary.php:60 +msgid "Show tasklist name?" +msgstr "Exibir nome da lista de tarefas?" + +#: lib/Block/summary.php:85 +msgid "Show tasks from these categories" +msgstr "Exibir tarefas destas categorias" + +#: lib/Block/summary.php:80 +msgid "Show tasks from these tasklists" +msgstr "Exibir tarefas destas listas de tarefas" + +#: templates/list/task_headers.inc:56 +msgid "Sort by Assignee" +msgstr "Ordenar por Assinante" + +#: templates/list/task_headers.inc:60 +msgid "Sort by Category" +msgstr "Ordenar por Categoria" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Ordenar por Situação de Conclusão" + +#: templates/list/task_headers.inc:52 +msgid "Sort by Due Date" +msgstr "Ordenar por Data de Vencimento" + +#: templates/list/task_headers.inc:46 +msgid "Sort by Name" +msgstr "Ordenar por Nome" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Ordenar por Prioridade" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Ordenar por Nome de Usuário" + +#: config/prefs.php.dist:127 +msgid "Sort direction:" +msgstr "Direção de ordenação:" + +#: config/prefs.php.dist:100 +msgid "Sort tasks by:" +msgstr "Ordenar tarefas por:" + +#: data.php:58 +msgid "Start" +msgstr "Iniciar" + +#: templates/view/task.inc:22 +msgid "Start Date" +msgstr "Data Inicial" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Data de início especificada." + +#: templates/tasklist_list.php:19 +msgid "Subscription URL" +msgstr "URL de assinatura" + +#: templates/list/task_summaries.inc:61 +msgid "Task Alarm" +msgstr "Aviso da Tarefa" + +#: templates/list/task_headers.inc:49 +msgid "Task Alarm?" +msgstr "Avisar sobre a Tarefa?" + +#: config/prefs.php.dist:28 +msgid "Task Defaults" +msgstr "Padrões da Tarefa" + +#: lib/Driver/sql.php:100 +msgid "Task ID not found" +msgstr "ID da Tarefa não encontrado" + +#: templates/tasklist_list.php:17 lib/Forms/task.php:94 +#: config/prefs.php.dist:69 config/prefs.php.dist:99 config/prefs.php.dist:115 +msgid "Task List" +msgstr "Lista de Tarefas" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Informações da Lista de Tarefas" + +#: templates/tasklist_list.php:14 +msgid "Task List List" +msgstr "Lista das Listas de Tarefas" + +#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56 +msgid "Task List and Share Options" +msgstr "Opções de Listagem e Compartilhamento de Tarefas" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Proprietário da Lista de Tarefas %s." + +#: templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Listas de Tarefas" + +#: config/prefs.php.dist:94 config/prefs.php.dist:110 +msgid "Task Name" +msgstr "Nome da Tarefa" + +#: templates/list/task_summaries.inc:59 +msgid "Task Note" +msgstr "Anotações da Tarefa" + +#: templates/list/task_headers.inc:48 +msgid "Task Note?" +msgstr "Redigir uma Nota?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Pesquisa de Tarefa" + +#: lib/Driver/sql.php:136 +msgid "Task UID not found" +msgstr "UID da tarefa não encontrada" + +#: lib/Nag.php:698 +msgid "Task added:" +msgstr "Tarefa adicionada:" + +#: lib/Nag.php:708 +msgid "Task deleted:" +msgstr "Tarefa apagada:" + +#: lib/Nag.php:703 +msgid "Task modified:" +msgstr "Tarefa modificada:" + +#: task.php:95 view.php:43 +msgid "Task not found." +msgstr "Tarefa não encontrada." + +#: lib/api.php:749 +msgid "Tasklist does not exist or no permission to delete" +msgstr "Lista de Tarefas não existe ou nenhuma permissão para apagar" + +#: lib/api.php:577 +msgid "Tasklist does not exist or no permission to edit" +msgstr "Lista de Tarefas não existe ou nenhuma permissão para editar" + +#: lib/api.php:1287 +msgid "Tasks" +msgstr "Tarefas" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Resumo das Tarefas" + +#: lib/api.php:394 +#, php-format +msgid "Tasks from %s" +msgstr "Tarefas de %s" + +#: data.php:211 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "O arquivo %s não continha nenhuma tarefa." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "A estrutura de Tarefas não está disponível." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "A estrutura de Tarefas não está disponível: %s" + +#: lib/Forms/task.php:184 +msgid "The alarm value must not be empty." +msgstr "O valor do alarme não pode estar vazio." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "A hora atual" + +#: lib/Nag.php:699 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"A tarefa \"%s\" foi adicionada na lista de tarefas \"%s\", com uma data de " +"vencimento de: %s." + +#: lib/Nag.php:709 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"A tarefa \"%s\" foi apagada da lista de tarefas \"%s\", com uma data de " +"vencimento de: %s." + +#: lib/Nag.php:704 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"A tarefa \"%s\" foi editada na lista de tarefas \"%s\", com uma data de " +"vencimento de: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "A lista de tarefas \"%s\" foi criada." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "A lista de tarefas \"%s\" foi excluída." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "A lista de tarefas \"%s\" foi renomeada para \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "A lista de tarefas \"%s\" foi gravada." + +#: config/prefs.php.dist:116 +msgid "Then:" +msgstr "Então:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Não existem tarefas correspondentes ao critério atual." + +#: task.php:234 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Houve um problema ao encerrar %s: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Houve um problema ao excluir %s: %s" + +#: task.php:201 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Houve um problema ao gravar a tarefa: %s." + +#: data.php:214 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Houve um erro ao importar os dados: %s" + +#: lib/api.php:596 lib/api.php:945 lib/api.php:1217 +msgid "There was an error importing the iCalendar data." +msgstr "Houve um erro ao importar os dados do iCalendar." + +#: lib/api.php:206 +#, php-format +msgid "There was an error removing notes for %s. Details have been logged." +msgstr "" +"Houve um erro ao remover anotações para %s. Detalhes foram registrados no " +"log." + +#: data.php:94 +msgid "There were no tasks to export." +msgstr "Não existiam tarefas para exportar." + +#: data.php:143 +msgid "This file format is not supported." +msgstr "Este formato de arquivo não é suportado." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Esta lista de tarefas não pode ser apagada." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Para assinar esta lista de tarefas a partir de outro programa, use esta URL:" + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Impossível excluir \"%s\": %s" + +#: lib/api.php:770 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Não é possível apagar a lista de tarefas \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Impossível carregar a definição de %s." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Não é possível gravar a lista de tarefas \"%s\": %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:72 +#: lib/Nag.php:940 lib/Nag.php:941 lib/Nag.php:955 lib/Nag.php:956 +#: lib/Forms/task.php:107 lib/Block/summary.php:35 lib/Block/summary.php:243 +msgid "Unfiled" +msgstr "Normal" + +#: data.php:64 +msgid "Unique ID" +msgstr "ID Único" + +#: lib/api.php:703 lib/api.php:1018 lib/api.php:1076 lib/api.php:1130 +#: lib/api.php:1255 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Tipo de Conteúdo não suportado: %s" + +#: lib/Driver.php:1080 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Gostaríamos de lembrá-lo do vencimento desta tarefa.\n" +"\n" +"%s\n" +"\n" +"Data: %s\n" +"Horário: %s\n" +"\n" +"%s" + +#: lib/Nag.php:442 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Semana(s)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Qual o horário de vencimento padrão para as tarefas?" + +#: config/prefs.php.dist:154 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Ao criar uma nova tarefa, definir o vencimento para quantos dias (0 " +"significa hoje)?" + +#: config/prefs.php.dist:145 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Ao criar uma nova tarefa, deseja que ela tenha sempre uma data de vencimento?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Em qual lista de tarefas deverão ser adicionadas as tarefas?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Ano" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Você não tem permissão para alterar esta lista de tarefas." + +#: data.php:41 data.php:168 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Você não pode criar mais do que %d tarefas." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Você não pode apagar esta lista de tarefas." + +#: lib/api.php:143 +msgid "You are not allowed to remove user data." +msgstr "Você não pode remover dados do usuário." + +#: view.php:54 +msgid "You do not have permission to view this tasklist." +msgstr "Você não tem permissão de visualizar esta lista de tarefas." + +#: lib/Nag.php:699 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Você requisitou para ser notificado quando tarefas forem adicionadas às suas " +"listas de tarefas." + +#: lib/Nag.php:709 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Você requisitou para ser notificado quando tarefas forem apagadas das suas " +"listas de tarefas." + +#: lib/Nag.php:704 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Você requisitou para ser notificado quando tarefas forem editadas nas suas " +"listas de tarefas." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Sua lista de tarefas padrão:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Gerenciar Listas de Tarefas]" + +#: templates/list/task_summaries.inc:49 lib/Block/summary.php:118 +#: lib/Block/summary.php:226 +msgid "[none]" +msgstr "[nenhuma]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "Tod_as as Tarefas" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Todas tarefas" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "Cate_goria" + +#: view.php:114 +msgid "_Complete" +msgstr "_Encerrar" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "Tarefas _Encerradas" + +#: view.php:121 +msgid "_Delete" +msgstr "E_xcluir" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "Des_crição" + +#: templates/list/task_headers.inc:52 +msgid "_Due Date" +msgstr "Data de _Vencimento" + +#: view.php:117 +msgid "_Edit" +msgstr "_Editar" + +#: list.php:113 +msgid "_Future tasks" +msgstr "Tare_fas futuras" + +#: lib/Nag.php:621 +msgid "_Import/Export" +msgstr "_Importar/Exportar" + +#: lib/Nag.php:608 +msgid "_List Tasks" +msgstr "_Listar Tarefas" + +#: lib/Nag.php:613 +msgid "_New Task" +msgstr "Nova Tare_fa" + +#: lib/Nag.php:626 +msgid "_Print" +msgstr "_Imprimir" + +#: lib/Nag.php:617 +msgid "_Search" +msgstr "Pes_quisar" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Li_sta de Tarefas" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "am" + +#: view.php:75 view.php:84 +#, php-format +msgid "by %s" +msgstr "por %s" + +#: view.php:77 view.php:86 +msgid "by me" +msgstr "por mim" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "em %s" + +#: lib/Nag.php:84 +msgid "no time" +msgstr "sem limite" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "pm" + +#: data.php:114 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tarefas.csv" + +#: data.php:128 +msgid "tasks.ics" +msgstr "tarefas.ics" diff --git a/nag/po/pt_PT.po b/nag/po/pt_PT.po new file mode 100644 index 000000000..0cd5e7f4d --- /dev/null +++ b/nag/po/pt_PT.po @@ -0,0 +1,950 @@ +# NAG Portugal Portuguese translation. +# Manuel Menezes de Sequeira , 2005. +# Based on a previous +# translation of pt_BR.po to Brazilian Portuguese +# translation of nag.po to Brazilian Portuguese +# This file is distributed under the same license as the horde package. +# Copyright YEAR Horde Project. +# Fabio Gomes , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Horde 3.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2006-12-26 23:59+0000\n" +"PO-Revision-Date: 2007-01-06 10:34-0000\n" +"Last-Translator: Manuel Menezes de Sequeira \n" +"Language-Team: Portugal Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d hora" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hora, %d minuto" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hora, %d minutos" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d horas" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d horas, %d minuto" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d horas, %d minutos" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuto" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minutos" + +#: templates/list/header.inc:3 +#, php-format +msgid "%d tasks" +msgstr "%d tarefas" + +#: lib/Nag.php:380 +#, php-format +msgid "%s at %s" +msgstr "%s às %s" + +#: lib/Nag.php:532 lib/Block/summary.php:90 +#, php-format +msgid "%s is due in %s" +msgstr "Prazo para %s finda em %s" + +#: lib/Nag.php:530 lib/Block/summary.php:88 +#, php-format +msgid "%s is due now." +msgstr "Prazo para %s finda agora." + +#: data.php:193 +#, php-format +msgid "%s successfully imported" +msgstr "%s importado com sucesso" + +#: tasklists.php:100 lib/base.php:104 +#, php-format +msgid "%s's Task List" +msgstr "Lista de Tarefas de %s" + +#: lib/Nag.php:337 +msgid "(highest)" +msgstr "(mais alta)" + +#: lib/Nag.php:337 +msgid "(lowest)" +msgstr "(mais baixa)" + +#: templates/list/header.inc:3 +msgid "1 task" +msgstr "1 tarefa" + +#: task.php:286 +#, php-format +msgid "Access denied completing task %s." +msgstr "Acesso negado ao completar a tarefa %s." + +#: task.php:260 +#, php-format +msgid "Access denied deleting %s." +msgstr "Acesso negado ao remover %s." + +#: task.php:219 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Acesso negado ao mover a tarefa para %s." + +#: task.php:222 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Acesso negado ao remover a tarefa de %s." + +#: task.php:144 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Acesso negado ao guardar a tarefa em %s." + +#: task.php:142 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Acesso negado ao guardar a tarefa: %s" + +#: task.php:69 +msgid "Adding A New Task" +msgstr "Adicionando Uma Nova Tarefa" + +#: templates/task/task.inc:67 +msgid "Ala_rm" +msgstr "A_viso" + +#: templates/view/task.inc:33 +msgid "Alarm" +msgstr "Aviso" + +#: config/prefs.php.dist:143 +msgid "All tasks" +msgstr "Todas as tarefas" + +#: lib/Block/summary.php:54 +msgid "Always show completed tasks?" +msgstr "Mostrar sempre as tarefas completas?" + +#: lib/Block/summary.php:51 +msgid "Always show overdue tasks?" +msgstr "Mostrar sempre tarefas com prazo excedido?" + +#: config/prefs.php.dist:98 +msgid "Ascending" +msgstr "Crescente" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Voltar às Opções de Listas de Tarefas" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:56 +msgid "Calendar" +msgstr "Calendário" + +#: templates/list/task_headers.inc:65 +msgid "Cat_egory" +msgstr "Cat_egoria" + +#: data.php:52 templates/view/task.inc:25 config/prefs.php.dist:70 +#: config/prefs.php.dist:85 +msgid "Category" +msgstr "Categoria" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Alterar" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Alterar as opções de ordenação e visualização das tarefas." + +#: config/prefs.php.dist:122 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Indique se deseja ser notificado via correio electrónico acerca de tarefas " +"novas, alteradas ou removidas:" + +#: config/prefs.php.dist:36 +msgid "Choose if you want to be notified of new, edited, and deleted tasks." +msgstr "" +"Indique se deseja ser notificado acerca de tarefas novas, alteradas ou " +"removidas." + +#: config/prefs.php.dist:29 +msgid "Choose your default task list." +msgstr "Escolha a sua lista de tarefas por omissão." + +#: templates/search/search.inc:34 +msgid "Clear Form" +msgstr "Limpar Formulário" + +#: templates/task/task.inc:88 +msgid "Co_mpleted?" +msgstr "Co_mpleta?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Completa" + +#: templates/list/task_summaries.inc:5 lib/Block/summary.php:145 +#, php-format +msgid "Complete \"%s\"" +msgstr "\"%s\" completa" + +#: templates/view/task.inc:44 +msgid "Complete Task" +msgstr "Tarefa Completa" + +#: config/prefs.php.dist:145 +msgid "Complete tasks" +msgstr "Tarefas completas" + +#: lib/Nag.php:395 lib/Block/summary.php:143 +msgid "Completed" +msgstr "Completa" + +#: task.php:295 +#, php-format +msgid "Completed %s." +msgstr "%s completa." + +#: templates/view/task.inc:41 templates/list/task_headers.inc:43 +#: config/prefs.php.dist:72 config/prefs.php.dist:87 +msgid "Completed?" +msgstr "Completa?" + +#: data.php:55 +msgid "Completion Status" +msgstr "Estado de Completude" + +#: lib/api.php:225 +#, php-format +msgid "Connection failed: %s" +msgstr "Ligação falhou: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Criar" + +#: templates/view/task.inc:53 +msgid "Created" +msgstr "Criado" + +#: templates/task/task.inc:76 lib/Nag.php:427 +msgid "Day(s)" +msgstr "Dia(s)" + +#: config/prefs.php.dist:28 +msgid "Default Task List" +msgstr "Lista de Tarefas por Omissão" + +#: templates/tasklists/tasklists.inc:100 templates/view/task.inc:16 +msgid "Delete" +msgstr "Remover" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Confirmação de Remoção" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Comportamento do botão de remoção." + +#: templates/task/task.inc:110 +msgid "Delete this task" +msgstr "Remover esta tarefa" + +#: task.php:268 +#, php-format +msgid "Deleted %s." +msgstr "%s removida." + +#: config/prefs.php.dist:99 +msgid "Descending" +msgstr "Decrescente" + +#: data.php:51 +msgid "Description" +msgstr "Descrição" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Descrição:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Opções de Visualização" + +#: config/prefs.php.dist:109 +msgid "Do you want to confirm deleting entries?" +msgstr "Deseja confirmar a remoção de entradas?" + +#: data.php:53 templates/view/task.inc:29 +msgid "Due By" +msgstr "Prazo Expira em" + +#: config/prefs.php.dist:71 config/prefs.php.dist:86 +msgid "Due Date" +msgstr "Prazo" + +#: templates/task/task.inc:45 +msgid "Due _By" +msgstr "Prazo E_xpira em" + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Editar" + +#: templates/list/task_summaries.inc:20 lib/Block/summary.php:140 +#, php-format +msgid "Edit \"%s\"" +msgstr "Editar \"%s\"" + +#: templates/list/task_headers.inc:54 +msgid "Edit Task" +msgstr "Editar Tarefa" + +#: templates/list/task_headers.inc:70 +msgid "Edit categories and colors" +msgstr "Editar categorias e cores" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Exportar" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Exportar Tarefas" + +#: config/prefs.php.dist:47 +msgid "External Data" +msgstr "Dados Externos" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 +msgid "General Options" +msgstr "Opções Gerais" + +#: templates/task/task.inc:75 lib/Nag.php:430 +msgid "Hour(s)" +msgstr "Hora(s)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importar Tarefas, Passo %d" + +#: data.php:199 +msgid "Import/Export Tasks" +msgstr "Importar/Exportar Tarefas" + +#: list.php:88 +msgid "Incom_plete tasks" +msgstr "Tarefas incom_pletas" + +#: config/prefs.php.dist:144 +msgid "Incomplete tasks" +msgstr "Tarefas incompletas" + +#: templates/view/task.inc:60 +msgid "Last Modified" +msgstr "Última Modificação" + +#: lib/api.php:82 +msgid "Maximum Number of Tasks" +msgstr "Número Máximo de Tarefas" + +#: templates/task/task.inc:74 lib/Nag.php:433 +msgid "Minute(s)" +msgstr "Minuto(s)" + +#: task.php:126 +msgid "Modifying:" +msgstr "Modificando:" + +#: lib/api.php:610 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Encontrados múltiplos componentes iCalendar: só se suporta um único vTodo." + +#: list.php:39 +msgid "My Tasks" +msgstr "As Minhas Tarefas" + +#: templates/search/search.inc:25 templates/task/task.inc:17 +msgid "N_ame" +msgstr "N_ome" + +#: templates/list/task_headers.inc:57 +msgid "Na_me" +msgstr "No_me" + +#: data.php:50 +msgid "Name" +msgstr "Nome" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Nova Tarefa" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Próxima" + +#: config/prefs.php.dist:118 +msgid "No" +msgstr "Não" + +#: templates/task/task.inc:48 +msgid "No due date." +msgstr "Sem prazo." + +#: lib/api.php:404 lib/api.php:448 lib/api.php:603 +msgid "No iCalendar data was found." +msgstr "Dados iCalendar não foram encontrados." + +#: lib/Nag.php:546 +msgid "No task lists are available to guests." +msgstr "Não há listas de tarefas disponíveis para visitas." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Sem tarefas para mostrar" + +#: templates/task/task.inc:70 lib/Nag.php:437 +msgid "None" +msgstr "Nenhuma" + +#: lib/Nag.php:396 +msgid "Not Completed" +msgstr "Incompleta" + +#: lib/Driver/sql.php:95 lib/Driver/sql.php:134 +msgid "Not found" +msgstr "Não encontrado" + +#: config/prefs.php.dist:35 +msgid "Notifications" +msgstr "Notificações" + +#: config/prefs.php.dist:120 +msgid "On all shown tasklists" +msgstr "Em todas as listas de tarefas" + +#: config/prefs.php.dist:121 +msgid "On all tasklists I have read access to" +msgstr "Em todas as listas de tarefas às quais tenho acesso de leitura" + +#: config/prefs.php.dist:119 +msgid "On my tasklists only" +msgstr "Apenas nas minhas listas de tarefas" + +#: templates/list/task_headers.inc:51 +msgid "P_ri" +msgstr "P_ri" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Permissão" + +#: lib/api.php:378 lib/api.php:485 lib/api.php:548 lib/api.php:585 +msgid "Permission Denied" +msgstr "Permissão Negada" + +#: lib/api.php:106 +msgid "Permission denied" +msgstr "Permissão Negada" + +#: data.php:54 templates/view/task.inc:37 config/prefs.php.dist:68 +#: config/prefs.php.dist:83 +msgid "Priority" +msgstr "Prioridade" + +#: templates/view/task.inc:16 +msgid "Really delete this task?" +msgstr "Deseja mesmo remover esta tarefa?" + +#: templates/list/header.inc:5 +msgid "Refresh List" +msgstr "Actualizar Lista" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Limpar" + +#: templates/task/task.inc:102 +msgid "Save" +msgstr "Guardar" + +#: task.php:243 +#, php-format +msgid "Saved %s." +msgstr "%s guardada." + +#: search.php:14 templates/search/search.inc:6 templates/search/search.inc:33 +msgid "Search" +msgstr "Procurar" + +#: list.php:62 +msgid "Search Results" +msgstr "Resultados da Procura" + +#: templates/search/search.inc:22 +msgid "Search Scope" +msgstr "Escopo de Procura" + +#: templates/search/search.inc:14 +msgid "Search _Text" +msgstr "Procurar _Texto" + +#: templates/task/task.inc:56 +msgid "Select a date" +msgstr "Seleccione uma data" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Seleccione uma lista de tarefas" + +#: templates/menu.inc:8 +msgid "Select tasklists to display:" +msgstr "Seleccionar listas de tarefas a mostrar:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Seleccione o formato de exportação:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Seleccione o ficheiro a importar:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Seleccione o formato do ficheiro fonte:" + +#: config/prefs.php.dist:59 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "" +"Deve-se mostrar a Lista de Tarefas na sua própria coluna na visualização de " +"Listas?" + +#: lib/Block/summary.php:36 +msgid "Show action buttons?" +msgstr "Mostrar botões de acção?" + +#: config/prefs.php.dist:146 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Mostrar tarefas completas, incompletas ou ambas na lista de tarefas?" + +#: config/prefs.php.dist:133 +msgid "Show data from any of these other applications in your task list?" +msgstr "" +"Mostrar dados de alguma destas outras aplicações na sua lista de tarefas?" + +#: config/prefs.php.dist:48 +msgid "Show data from other applications or sources." +msgstr "Mostrar dados de outras aplicações ou fontes." + +#: lib/Block/summary.php:39 +msgid "Show due dates?" +msgstr "Mostrar prazos?" + +#: lib/Block/summary.php:33 +msgid "Show priorities?" +msgstr "Mostra prioridades?" + +#: lib/Block/summary.php:45 +msgid "Show task alarms?" +msgstr "Mostrar avisos de tarefas?" + +#: lib/Block/summary.php:48 +msgid "Show task category?" +msgstr "Mostrar categoria das tarefas?" + +#: lib/Block/summary.php:42 +msgid "Show tasklist name?" +msgstr "Mostrar nome da lista de tarefas?" + +#: lib/Block/summary.php:57 +msgid "Show tasks from these categories" +msgstr "Mostrar tarefas destas categorias" + +#: templates/list/task_headers.inc:65 +msgid "Sort by Category" +msgstr "Ordenar por Categoria" + +#: templates/list/task_headers.inc:43 +msgid "Sort by Completion Status" +msgstr "Ordenar por Estado de Completude" + +#: templates/list/task_headers.inc:62 +msgid "Sort by Due Date" +msgstr "Ordenar por Prazo" + +#: templates/list/task_headers.inc:57 +msgid "Sort by Name" +msgstr "Ordenar por Nome" + +#: templates/list/task_headers.inc:51 +msgid "Sort by Priority" +msgstr "Ordenar por Prioridade" + +#: templates/list/task_headers.inc:47 +msgid "Sort by User Name" +msgstr "Ordenar por Nome de Utilizador" + +#: config/prefs.php.dist:100 +msgid "Sort direction:" +msgstr "Direcção de ordenação:" + +#: config/prefs.php.dist:74 +msgid "Sort tasks by:" +msgstr "Ordenar tarefas por:" + +#: templates/list/task_summaries.inc:28 +msgid "Task Alarm" +msgstr "Aviso de Tarefa" + +#: templates/list/task_headers.inc:60 +msgid "Task Alarm?" +msgstr "Aviso de Tarefa?" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Lista de Tarefas" + +#: config/prefs.php.dist:27 config/prefs.php.dist:34 config/prefs.php.dist:46 +msgid "Task List and Share Options" +msgstr "Opções de Listas de Tarefas e de Partilhas" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Nome da Lista de Tarefas:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Listas de Tarefas" + +#: config/prefs.php.dist:69 config/prefs.php.dist:84 +msgid "Task Name" +msgstr "Nome da Tarefa" + +#: templates/list/task_summaries.inc:26 +msgid "Task Note" +msgstr "Nota da Tarefa" + +#: templates/list/task_headers.inc:59 +msgid "Task Note?" +msgstr "Nota da Tarefa?" + +#: lib/Nag.php:571 +msgid "Task added:" +msgstr "Tarefa adicionada:" + +# c-format +#: lib/Nag.php:581 +msgid "Task deleted:" +msgstr "Tarefa removida:" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "As listas de tarefas têm de ter um nome." + +#: lib/Nag.php:576 +msgid "Task modified:" +msgstr "Tarefa alterada:" + +#: task.php:128 view.php:43 +msgid "Task not found." +msgstr "A tarefa não foi encontrada." + +#: config/prefs.php.dist:73 config/prefs.php.dist:88 +msgid "Tasklist" +msgstr "Lista de Tarefas" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Sumário das Tarefas" + +#: data.php:187 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "O arquivo %s não contém quaisquer tarefas." + +#: task.php:177 +msgid "The alarm field may only contain integers." +msgstr "O campo do alarme pode apenas conter inteiros." + +#: lib/Nag.php:572 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "" +"A tarefa \"%s\" foi adicionada à sua lista de tarefas \"%s\". O seu prazo " +"final é: %s." + +#: lib/Nag.php:582 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" +"A tarefa \"%s\" da sua lista de tarefas \"%s\" foi removida. O seu prazo " +"final era: %s." + +#: lib/Nag.php:577 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "" +"A tarefa \"%s\" da sua lista de tarefas \"%s\" foi modificada. O seu prazo " +"final é: %s." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "A lista de tarefas \"%s\" não pode ser criada: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "A lista de tarefas \"%s\" não pode ser guardada: %s" + +# c-format +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "A lista de tarefas \"%s\" foi criada." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "A lista de tarefas \"%s\" foi removida." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "A lista de tarefas \"%s\" foi guardada." + +#: config/prefs.php.dist:89 +msgid "Then:" +msgstr "E por:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Nenhuma tarefa de acordo com o critério corrente." + +#: task.php:292 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Ocorreu um problema ao completar %s: %s" + +#: task.php:265 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Ocorreu um problema ao remover %s: %s" + +#: task.php:241 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Ocorreu um erro ao guardar a tarefa: %s" + +#: data.php:190 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Ocorreu um erro na importação dos dados: %s" + +#: lib/api.php:396 lib/api.php:597 +msgid "There was an error importing the iCalendar data." +msgstr "Ocorreu um erro na importação dos dados iCalendar." + +#: data.php:77 +msgid "There were no tasks to export." +msgstr "Não há tarefas a exportar." + +#: data.php:121 +msgid "This file format is not supported." +msgstr "Este formato de ficheiro não é suportado." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Não consigo remover \"%s\": %s" + +#: templates/task/task.inc:103 +msgid "Undo changes" +msgstr "Desfazer alterações" + +#: templates/view/task.inc:26 templates/list/task_summaries.inc:33 +#: lib/Nag.php:791 lib/Nag.php:792 lib/Nag.php:806 lib/Nag.php:807 +#: lib/Block/summary.php:30 lib/Block/summary.php:179 +msgid "Unfiled" +msgstr "Sem categoria" + +#: lib/api.php:455 lib/api.php:512 lib/api.php:628 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Tipo de conteúdo (Contente-Type) não suportado: %s" + +#: templates/task/task.inc:77 lib/Nag.php:424 +msgid "Week(s)" +msgstr "Semana(s)" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "A que lista de tarefas se deve adicionar as tarefas?" + +#: data.php:39 data.php:145 task.php:31 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Não está autorizado a criar mais do que %d tarefas." + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Não tem permissão para ver esta lista de tarefas." + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Tem de seleccionar a lista de tarefas a remover." + +#: lib/Nag.php:572 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Solicitou ser notificado quando tarefas forem adicionadas às suas listas de " +"tarefas." + +#: lib/Nag.php:582 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Solicitou ser notificado quando tarefas das suas listas de tarefas forem " +"removidas." + +#: lib/Nag.php:577 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Solicitou ser notificado quando tarefas das suas listas de tarefas forem " +"modificadas." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "A sua lista de tarefas por omissão:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "As suas listas de tarefas:" + +#: templates/list/task_summaries.inc:25 lib/Block/summary.php:86 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[nenhuma]" + +#: list.php:87 +msgid "_All tasks" +msgstr "Tod_as as tarefas" + +#: templates/search/search.inc:27 templates/task/task.inc:41 +msgid "_Category" +msgstr "_Categoria" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "_Completar" + +#: list.php:89 +msgid "_Completed tasks" +msgstr "Tarefas _completas" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "_Remover" + +#: templates/search/search.inc:26 templates/task/task.inc:94 +msgid "_Description" +msgstr "_Descrição" + +#: templates/list/task_headers.inc:62 +msgid "_Due Date" +msgstr "Pra_zo" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "_Editar" + +#: lib/Nag.php:496 +msgid "_Import/Export" +msgstr "_Importar/Exportar" + +#: lib/Nag.php:481 +msgid "_List Tasks" +msgstr "_Listar Tarefas" + +#: lib/Nag.php:491 +msgid "_My Tasklists" +msgstr "As _Minhas Listas de Tarefas" + +#: lib/Nag.php:486 +msgid "_New Task" +msgstr "_Nova Tarefa" + +#: lib/Nag.php:501 +msgid "_Print" +msgstr "Im_primir" + +#: templates/task/task.inc:82 +msgid "_Priority" +msgstr "_Prioridade" + +#: lib/Nag.php:488 +msgid "_Search" +msgstr "_Procurar" + +#: templates/task/task.inc:26 templates/list/task_headers.inc:47 +msgid "_Task List" +msgstr "Lista de _Tarefas" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendário (vTodo)" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "sem tempo" + +#: data.php:94 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tarefas.csv" + +#: data.php:106 +msgid "tasks.ics" +msgstr "tarefas.ics" diff --git a/nag/po/ro_RO.po b/nag/po/ro_RO.po new file mode 100644 index 000000000..9c0c62712 --- /dev/null +++ b/nag/po/ro_RO.po @@ -0,0 +1,383 @@ +# Nag Romanian Translation +# Copyright 2003-2009 The Horde Project +# Eugen Hoanca , 2003. +# Marius Dragulescu , 2003. + +msgid "" +msgstr "" +"Project-Id-Version: Nag 1.1\n" +"POT-Creation-Date: 2003-02-24 14:49+0200\n" +"PO-Revision-Date: 2003-03-01 12:00+0200\n" +"Last-Translator: Eugen Hoanca \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d taskuri" + +msgid "(highest)" +msgstr "(maxim)" + +msgid "(lowest)" +msgstr "(minim)" + +msgid "1 task" +msgstr "1 task" + +msgid "Adding A New Task" +msgstr "Adaugare task nou" + +msgid "Allows categories to be added/removed/renamed." +msgstr "Permite adaugarea/stergerea/redenumirea categoriilor." + +#, c-format +msgid "Any tasks in a category that is deleted will become %s." +msgstr "Orice task sters dintr-o categorie va deveni %s." + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "Esti sigur ca vrei sa stergi definitiv aceste taskuri?" + +msgid "Ascending" +msgstr "Crescator" + +msgid "Back to Task List" +msgstr "Inapoi la lista taskurilor" + +msgid "Cannot be changed." +msgstr "Nu se poate schimba." + +msgid "Category Management" +msgstr "Administrare categorie" + +msgid "Category" +msgstr "Categorie" + +msgid "Change your task sorting and display options." +msgstr "Schimbare sortare taskuri si optiuni afisare." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "Schimbat %d taskuri la prioritatea prioritatea %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "Schimbat 1 task la prioritatea %d." + +msgid "Choose Action:" +msgstr "Alegere actiune:" + +msgid "Clear Form" +msgstr "Sterge formular" + +msgid "Complete Task" +msgstr "Finalizare task" + +msgid "Complete Tasks" +msgstr "Finalizare taskuri" + +msgid "Completed?" +msgstr "Finalizat?" + +msgid "Completion Status" +msgstr "Status finalizare" + +msgid "Create a New Category" +msgstr "Creare categorie noua" + +msgid "Default sorting criteria:" +msgstr "Criteriul de sortare implicit:" + +msgid "Default sorting direction:" +msgstr "Directia de sortare implicita:" + +msgid "Delete Task" +msgstr "Sterge task" + +msgid "Delete Tasks" +msgstr "Sterge taskuri" + +msgid "Delete" +msgstr "Stergere" + +#, c-format +msgid "Deleted %d tasks." +msgstr "%d taskuri sterse." + +msgid "Deleted 1 task." +msgstr "1 task sters." + +msgid "Descending" +msgstr "Descrescator" + +msgid "Description" +msgstr "Descriere" + +msgid "Display Options" +msgstr "Optiuni afisare" + +msgid "Due By" +msgstr "Limitare de" + +msgid "Due Date" +msgstr "Data limita" + +msgid "Help" +msgstr "Ajutor" + +msgid "Language" +msgstr "Limba" + +msgid "List Tasks" +msgstr "Lista taskuri" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Marcare %d taskuri finalizate." + +msgid "Marked 1 task as completed." +msgstr "Marcat 1 task ca finalizat." + +msgid "Modify Task" +msgstr "Modificare Task" + +msgid "Modifying:" +msgstr "Modificare:" + +msgid "Nag is not properly configured" +msgstr "Nag nu este configurat corespunzator" + +msgid "Name" +msgstr "Nume" + +msgid "New Category" +msgstr "Categorie noua" + +msgid "New Task" +msgstr "Task nou" + +msgid "No configuration information specified for SQL Tasks." +msgstr "Nici o configurare specificata pentru Taskurile SQL." + +msgid "No due date." +msgstr "Nici o data limita." + +msgid "No tasks were changed." +msgstr "Nici un task n-a fost schimbat." + +msgid "No tasks were deleted." +msgstr "Nici un task n-a fost sters." + +msgid "No" +msgstr "Nu" + +msgid "None specified" +msgstr "Nimic specificat" + +msgid "Options" +msgstr "Optiuni" + +msgid "Other Options" +msgstr "Alte optiuni" + +msgid "Please enter a name for the new category:" +msgstr "Introduceti un nume pentru noua categorie:" + +msgid "Please enter a new name for this category:" +msgstr "Introduceti un nume pentru aceasta categorie:" + +msgid "Please enter the task priority (1-5):" +msgstr "Introduceti prioritatea taskului (1-5):" + +msgid "Pri" +msgstr "Pri" + +msgid "Print" +msgstr "Imprimare" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "Prioritatile trebuie sa fie intre 1 si 5.Introduceti o prioritate:" + +msgid "Priority" +msgstr "Prioritate" + +msgid "Problem?" +msgstr "Problema?" + +msgid "Refresh List" +msgstr "Improspateaza lista" + +msgid "Rename" +msgstr "Redenumeste" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "'database' nespecificat in configuratia taskurilor." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "'hostspec' nespecificat in configuratia taskurilor." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "'password' nespecificat in configuratia taskurilor." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "'phptype' nespecificat in configuratia taskurilor." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "'table' nespecificat in configuratia taskurilor." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "'username' nespecificat in configuratia taskurilor." + +msgid "Save Task" +msgstr "Salveaza task" + +msgid "Search Results" +msgstr "Rezultate cautare" + +msgid "Search Scope" +msgstr "Criteriu cautare" + +msgid "Search Text" +msgstr "Cauta text" + +msgid "Search" +msgstr "Cauta" + +msgid "Select Category" +msgstr "Selecteaza categorie" + +msgid "Select your preferred language:" +msgstr "Selectati limba favorita:" + +msgid "Selected?" +msgstr "Selectat?" + +msgid "Set Task Priority" +msgstr "Setare prioritate task" + +msgid "Set the your preferred display language." +msgstr "Setare limba favorita pentru afisare." + +msgid "Show completed tasks in the task list?" +msgstr "Afisare taskuri finalizate in lista taskurilor?" + +msgid "Show due dates in the summary view?" +msgstr "Afisare date limita in afisare sumara?" + +msgid "Show priorities in the summary view?" +msgstr "Afisare prioritati in afisare sumara?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "Anumite fisiere de configurare Nag lipsesc:" + +msgid "Sort Direction" +msgstr "Directie de sortare" + +msgid "Sort by Category" +msgstr "Categorie de sortare" + +msgid "Sort by Completion Status" +msgstr "Sortare dupa status finalizare" + +msgid "Sort by Due Date" +msgstr "Sortare dupa data limita" + +msgid "Sort by Name" +msgstr "Sortare dupa nume" + +msgid "Sort by Priority" +msgstr "Sortare dupa prioritate" + +msgid "Task Details" +msgstr "Detalii task" + +msgid "Task List" +msgstr "Lista taskuri" + +msgid "Task Name" +msgstr "Nume task" + +msgid "Task Note" +msgstr "Notare task" + +msgid "Task Note?" +msgstr "Notare task?" + +msgid "The requested task does not exist." +msgstr "Taskul cerut nu exista." + +msgid "The task was saved." +msgstr "Taskul a fost salvat." + +msgid "There was a problem deleting tasks." +msgstr "A aparut o problema in stergerea taskurilor." + +msgid "There was a problem saving the task." +msgstr "A aparut o problema la salvarea taskului." + +msgid "There was a problem setting task completion status." +msgstr "A aparut o problema la setarea statusului de finalizare a taskului." + +msgid "There was a problem setting task priority." +msgstr "A aparut o problema la setarea prioritatea taskului." + +msgid "These changes can not be undone!" +msgstr "Nu se va putea reveni la aceste schimbari!" + +msgid "This file contains preferences for Nag." +msgstr "Acest fisier contine preferinte pentru Nag." + +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 schema de culori si fonturi ce vor fi diferite " +"de cele implicite Horde." + +msgid "" +"This is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "" +"Acesta e fisierul principal de configurare Nag. Contine optiunie pentru " +"scripturile Nag." + +msgid "Undo Changes" +msgstr "Refa schimbari" + +msgid "Unfiled" +msgstr "Necompletat" + +msgid "Unknown task" +msgstr "Task necunoscut" + +msgid "Unknown" +msgstr "Necunoscut" + +msgid "User Options" +msgstr "Optiuni utilizator" + +msgid "View Task Details" +msgstr "Afisare detalii task" + +msgid "Yes" +msgstr "Da" + +msgid "You are creating a new category." +msgstr "Creare categorie noua." + +msgid "You must choose a category." +msgstr "Selecteaza o categorie." + +msgid "You must select at least one task first." +msgstr "Selecteaza cel putin un task." + +msgid "Your Information" +msgstr "Detalii personale" + +msgid "Your task list is empty." +msgstr "Lista de taskuri e goala." + +msgid "at" +msgstr "la" diff --git a/nag/po/ru_RU.po b/nag/po/ru_RU.po new file mode 100644 index 000000000..d479aa867 --- /dev/null +++ b/nag/po/ru_RU.po @@ -0,0 +1,1265 @@ +# Nag Russian translation. +# Copyright +# Ignat Ikryanov , 2001. +# Alexey Zakharov , 2008 +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 2.2\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-02-02 20:07+0200\n" +"PO-Revision-Date: 2008-02-02 23:15+0200\n" +"Last-Translator: Alexey Zakharov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CP1251\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "" + +# fuzzy, php-format +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ÷àñà" + +#: lib/Nag.php:73 +#, fuzzy, php-format +msgid "%d hour, %d minute" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:75 +#, fuzzy, php-format +msgid "%d hour, %d minutes" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:63 +#, fuzzy, php-format +msgid "%d hours" +msgstr "24 ÷àñà" + +#: lib/Nag.php:65 +#, fuzzy, php-format +msgid "%d hours, %d minute" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:67 +#, fuzzy, php-format +msgid "%d hours, %d minutes" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:81 +#, fuzzy, php-format +msgid "%d minute" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:83 +#, fuzzy, php-format +msgid "%d minutes" +msgstr "Êàæäûå 5 ìèíóò" + +#: lib/Nag.php:590 lib/Block/summary.php:106 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "" + +#: lib/Nag.php:588 lib/Block/summary.php:104 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr "" + +#: task.php:231 +#, fuzzy, php-format +msgid "%s is now incomplete." +msgstr "" +"#-#-#-#-# ru_RU.po (Horde v2.1) #-#-#-#-#\n" +"#-#-#-#-# ru_RU.po (IMP v3.1) #-#-#-#-#\n" +"Íîâîå ñîîáùåíèå" + +#: data.php:199 +#, fuzzy, php-format +msgid "%s successfully imported" +msgstr "Ôàéë %s óñïåøíî èìïîðòèðîâàí" + +# fuzzy, php-format +#: tasklists.php:100 lib/Nag.php:516 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Ìîè Çàäà÷è (%s)" + +#: lib/Nag.php:315 lib/Forms/task.php:58 +msgid "(highest)" +msgstr "(âûñøèé)" + +#: lib/Nag.php:315 lib/Forms/task.php:59 +msgid "(lowest)" +msgstr "(íèçøèé)" + +# fuzzy, php-format +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "Íåäîñòàòî÷íî ïðàâ ÷òîáû çàâåðøèòü çàäà÷ó %s" + +# fuzzy, php-format +#: task.php:24 +#, fuzzy, php-format +msgid "Access denied deleting %s" +msgstr "Íåäîñòàòî÷íî ïðàâ ÷òîáû óäàëèòü %s" + +# fuzzy, php-format +#: task.php:84 task.php:90 +#, fuzzy +msgid "Access denied editing task." +msgstr "Íåäîñòàòî÷íî ïðàâ ÷òîáû çàâåðøèòü çàäà÷ó %s" + +# fuzzy, php-format +#: task.php:82 +#, fuzzy, php-format +msgid "Access denied editing task: %s" +msgstr "Íåäîñòàòî÷íî ïðàâ çàïèñàòü çàäà÷ó: %s" + +# fuzzy, php-format +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Íåäîñòàòî÷íî ïðàâ ÷òîáû ïåðåìåñòèòü çàäà÷ó â %s" + +# fuzzy, php-format +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Íåäîñòàòî÷íî ïðàâ óäàëèòü çàäà÷ó èç %s" + +# fuzzy, php-format +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Íåäîñòàòî÷íî ïðàâ çàïèñàòü çàäà÷ó â %s" + +# fuzzy, php-format +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Íåäîñòàòî÷íî ïðàâ çàïèñàòü çàäà÷ó: %s" + +#: templates/task/task.inc:67 +msgid "Ala_rm" +msgstr "Óâåäîìèòü çà" + +# fuzzy +#: templates/view/task.inc:26 lib/Forms/task.php:88 +msgid "Alarm" +msgstr "Óâåäîìèòü" + +# fuzzy +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Âñå çàäà÷è" + +# fuzzy +# fuzzy +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Ïîêàçûâàòü çàâåðøåííûå" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Ïîêàçûâàòü ïðîïóùåííûå" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Âîçðàñòàíèå" + +# fuzzy +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Âåðíóòüñÿ ê ñïèñêó çàäà÷" + +#: lib/Block/summary.php:39 +#, fuzzy +msgid "Block title" +msgstr "Ðàñøèðåíèå" + +#: data.php:30 +msgid "CSV" +msgstr "CSV-ôàéë" + +#: templates/task/task.inc:56 lib/UI/VarRenderer/nag.php:58 +#: lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Êàëåíäàðü" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Îòìåíà" + +# fuzzy +# fuzzy +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Êàòåãîðèÿ" + +# fuzzy +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:76 +#: lib/Forms/task.php:82 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Êàòåãîðèÿ" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Èçìåíèòü" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +#, fuzzy +msgid "Change Permissions" +msgstr "Íàñòðîéêè ïîëüçîâàòåëÿ" + +# fuzzy +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Èçìåíèòü îïöèè îòîáðàæåíèÿ è ïîèñêà â ñïèñêå çàäà÷" + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Êàêèì îáðàçîì âû æåëàåòå ïîëó÷èòü óâåäîìëåíèå:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "Óâåäîìëÿòü î íîâîé, èçìåíåííîé èëè óäàëåííîé çàäà÷å ïî e-mail:" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "Íàñòðîéêà îïîâåùåíèé â ñëó÷àå èçìåíåíèÿ çàäà÷è è ñèãíàëîâ íàïîìèíàíèÿ" + +# fuzzy +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Âûáðàòü âàø ñïèñîê çàäà÷ ïî óìîë÷àíèþ" + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Íàæìèòå èëè ñêîïèðóéòå ýòó ññûëêó äëÿ îòîáðàæåíèå ñïèñêà çàäà÷" + +# fuzzy +#: templates/panel.inc:43 +msgid "Close" +msgstr "Çàêðûòü" + +#: templates/list/header.inc:8 +#, fuzzy +msgid "Close Search" +msgstr "Î÷èñòèòü" + +# fuzzy +#: templates/task/task.inc:88 +msgid "Co_mpleted?" +msgstr "Çàâåðøåíî?" + +# fuzzy +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Çàâåðøèòü çàäà÷ó" + +# fuzzy +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Çàâåðøåííûå" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "" + +# fuzzy +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:94 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Çàâåðøåíà?" + +#: data.php:58 +#, fuzzy +msgid "Completion Status" +msgstr "Äàòà ñîçäàíèÿ" + +#: lib/api.php:317 lib/api.php:544 +#, fuzzy, php-format +msgid "Connection failed: %s" +msgstr "Íåóäà÷íîå ñîåäèíåíèå ñ ñåðâåðîì LDAP." + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Ñîçäàòü" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create a new Task List" +msgstr "Ñîçäàòü íîâûé ñïèñîê çàäà÷" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Ñîçäàíà" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +#, fuzzy +msgid "Day" +msgstr "Åæåäíåâíî" + +# fuzzy +#: templates/task/task.inc:76 lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Äíåé" + +# fuzzy +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Cïèñîê çàäà÷ ïî óìîë÷àíèþ" + +# fuzzy +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Çíà÷åíèÿ ïî óìîë÷àíèþ äëÿ íîâûõ çàäà÷" + +#: lib/Forms/task.php:87 +msgid "Delay Start Until" +msgstr "Îòëîæèòü íà÷àëî äî" + +#: view.php:106 tasklists/index.php:57 templates/tasklist_list.php:37 +#: templates/tasklists/tasklists.inc:100 lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Óäàëèòü" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Óäàëèòü %s" + +# fuzzy +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Óäàëåíèå" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Ïîäòâåðæäåíèå îïåðàöèè óäàëåíèÿ" + +# fuzzy +# fuzzy +#: task.php:105 templates/task/task.inc:110 lib/Forms/task.php:99 +msgid "Delete this task" +msgstr "Óäàëèòü çòó çàäà÷ó" + +# fuzzy, php-format +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "Çàäà÷à %s óäàëåíà" + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Óáûâàíèå" + +#: data.php:53 lib/Forms/EditTaskList.php:44 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/task.php:95 +msgid "Description" +msgstr "Îïèñàíèå" + +# fuzzy +# fuzzy +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Îïèñàíèå" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Îòîáðàæåíèå" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Ññûëêà äëÿ îòîáðàæåíèÿ" + +# fuzzy +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Çàïðàøèâàòü ïîäòâåðæäåíèå ïðè óäàëåíèè çàïèñåé?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:86 +msgid "Due By" +msgstr "Çàâåðøèòü äî" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Äàòà çàâåðøåíèÿ" + +# fuzzy +#: templates/task/task.inc:45 +msgid "Due _By" +msgstr "Çàâåðøèòü äî" + +#: lib/UI/VarRenderer/nag.php:99 +#, fuzzy +msgid "Due date specified." +msgstr "Áûëî óêàçàíî íåêîððåêòíîå çíà÷åíèå." + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, fuzzy, php-format +msgid "Edit \"%s\"" +msgstr "Ðåäàêòèðîâàíèå '%s'" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Ðåäàêòèðîâàíèå %s" + +# fuzzy +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Ðåäàêòèðîâàòü" + +# fuzzy +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Êàòåãîðèè è ìåòêè" + +#: task.php:95 task.php:109 +#, fuzzy, php-format +msgid "Edit: %s" +msgstr "Ðåäàêòèðîâàíèå %s" + +#: task.php:19 +#, fuzzy, php-format +msgid "Error deleting task: %s" +msgstr "Îøèáêà ïðè èìïîðòå äàííûõ." + +#: templates/view/task.inc:34 lib/Forms/task.php:93 +msgid "Estimated Time" +msgstr "Âðåìåíûå çàòðàòû" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Ýêñïîðò" + +# fuzzy +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Ýêñïîðò çàäà÷" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "" + +# fuzzy +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Îáùèå íàñòðîéêè" + +#: lib/UI/VarRenderer/nag.php:111 +#, fuzzy +msgid "Hour" +msgstr "×àñîâ" + +#: templates/task/task.inc:75 lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "×àñîâ" + +# fuzzy, php-format +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Èìïîðòèðîâàíèå çàäà÷, Øàã %d" + +# fuzzy +# fuzzy +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Èìïîðò/Ýêñïîðò" + +# fuzzy +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Íåçàâåðøåííûå" + +# fuzzy +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Íåçàâåðøåííûå" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "" + +# fuzzy +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Íåçàâåðøåííûå" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Èñïðàâëåíà" + +# fuzzy +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Óïðàâëåíèå ñïèñêàìè çàäà÷" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "" + +#: lib/api.php:120 +#, fuzzy +msgid "Maximum Number of Tasks" +msgstr "Ìàêñèìàëüíîå êîëè÷åñòâî ñòðàíèö" + +# fuzzy +#: lib/Block/tree_alarms.php:3 +#, fuzzy +msgid "Menu Alarms" +msgstr "Óâåäîìèòü" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "" + +# fuzzy +#: lib/UI/VarRenderer/nag.php:112 +#, fuzzy +msgid "Minute" +msgstr "Ìèíóò" + +# fuzzy +#: templates/task/task.inc:74 lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Ìèíóò" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +#, fuzzy +msgid "Month" +msgstr "Åæåìåñÿ÷íî" + +#: templates/list/header.inc:9 +#, fuzzy +msgid "More Options..." +msgstr "Íàñòðîéêè ïîëüçîâàòåëÿ" + +#: lib/api.php:1001 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" + +# fuzzy +#: templates/panel.inc:70 +msgid "My Task Lists:" +msgstr "Ìîè ñïèñêè çàäà÷:" + +# fuzzy +#: list.php:34 +msgid "My Tasks" +msgstr "Ìîè Çàäà÷è" + +# fuzzy +#: templates/search/search.inc:18 templates/task/task.inc:17 +msgid "N_ame" +msgstr "Íàçâàíèå" + +# fuzzy +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "Çàäà÷à" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "" + +#: data.php:52 lib/Forms/EditTaskList.php:43 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/task.php:65 +msgid "Name" +msgstr "Íàçâàíèå" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Íîâàÿ çàäà÷à" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Äàëåå" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "Íåò" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Íå îòêëàäûâàòü" + +#: templates/task/task.inc:48 lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Íåò äàòû çàâåðøåíèÿ." + +#: lib/api.php:405 lib/api.php:724 lib/api.php:782 lib/api.php:994 +#, fuzzy +msgid "No iCalendar data was found." +msgstr "Ïðèêðåïëåííûå" + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Íåò ðîäèòåëüñêîé çàäà÷è" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "" + +#: templates/list/task_footers.inc:5 +#, fuzzy +msgid "No tasks match" +msgstr "ÍÅ ñîâïàäàåò" + +#: lib/Block/summary.php:229 +#, fuzzy +msgid "No tasks to display" +msgstr "Ñïèñîê çàäà÷ ïóñò." + +#: templates/task/task.inc:70 lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Íåò" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +#, fuzzy +msgid "Not found" +msgstr "Îòìåíèòü èçìåíåíèÿ" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Íàñòðîéêè îïîâåùåíèÿ" + +#: config/prefs.php.dist:168 +msgid "On all shown tasklists" +msgstr "Ïî âñåìó ñïèñêó çàäà÷" + +#: config/prefs.php.dist:169 +msgid "On all tasklists I have read access to" +msgstr "Ïî âñåì ñïèñêàì çàäà÷, êîòîðûå ÿ ìîãó ÷èòàòü" + +# fuzzy +#: config/prefs.php.dist:167 +msgid "On my tasklists only" +msgstr "Òîëüêî ïî ìîåìó ñïèñêó çàäà÷" + +# fuzzy +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "Ïð" + +#: lib/Forms/task.php:72 +msgid "Parent task" +msgstr "Ðîäèòåëüñêàÿ çàäà÷à" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Èçìåíèòü ïðàâà äîñòóïà" + +#: lib/api.php:591 lib/api.php:629 lib/api.php:662 lib/api.php:698 +#: lib/api.php:820 lib/api.php:875 lib/api.php:939 lib/api.php:976 +#: lib/api.php:1087 lib/api.php:1134 +#, fuzzy +msgid "Permission Denied" +msgstr "Èçìåíèòü ïðàâà äîñòóïà" + +#: lib/api.php:178 lib/Forms/DeleteTaskList.php:56 +#, fuzzy +msgid "Permission denied" +msgstr "Èçìåíèòü ïðàâà äîñòóïà" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:90 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Ïðèîðèòåò" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Ëè÷íàÿ" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Ëè÷íàÿ çàäà÷à" + +#: templates/view/task.inc:12 lib/Forms/task.php:85 +msgid "Private?" +msgstr "Ëè÷íàÿ" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" + +# fuzzy +# fuzzy +#: view.php:106 +#, fuzzy +msgid "Really delete this task?" +msgstr "Óäàëèòü çòó çàäà÷ó" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Ñáðîñèòü" + +# fuzzy +#: templates/panel.inc:88 templates/task/task.inc:102 +#: lib/Forms/EditTaskList.php:46 lib/Forms/task.php:97 +msgid "Save" +msgstr "Çàïèñàòü" + +# fuzzy, php-format +# fuzzy, php-format +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "Çàäà÷à '%s' ñîõðàíåíà" + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Ïîèñê" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Èñêàòü â:" + +# fuzzy +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "×òî èùåì" + +#: templates/panel.inc:58 +msgid "Search for Task Lists:" +msgstr "Èñêàòü çàäà÷ó:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Èñêàòü:" + +# fuzzy +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Âûáåðèòå ñïèñîê çàäà÷:" + +# fuzzy +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Âûáåðèòå ôîðìàò ôàéëà äëÿ ýêñïîðòà:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Èìïîðòèðóåìûé ôàéë:" + +# fuzzy +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Âûáåðèòå ôîðìàò ôàéëà äëÿ èìïîðòà:" + +# fuzzy +# fuzzy +#: templates/panel.inc:79 +#, fuzzy +msgid "Shared Task Lists:" +msgstr "Ñïèñêè çàäà÷:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Îòîáðàçèòü íàçâàíèå ñïèñêà çàäà÷ îòäåëüíîé êîëîíêîé ïðè âûáîðå çàäà÷è?" + +# fuzzy +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Êíîïêè" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "" + +# fuzzy +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Äàòû çàâåðøåíèÿ" + +# fuzzy +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Ïðèîðèòåòû" + +# fuzzy +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Íàïîìèíàíèÿ" + +# fuzzy +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Êàòåãîðèè" + +# fuzzy +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Ïîêàçûâàòü ïàíåëü îïöèé äëÿ ñïèñêà çàäà÷?" + +# fuzzy +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Íàçâàíèå ñïèñêà çàäà÷" + +# fuzzy +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Ïîêàçàòü êàòåãîðèè:" + +# fuzzy +#: lib/Block/summary.php:66 +#, fuzzy +msgid "Show tasks from these tasklists" +msgstr "Ïîêàçàòü êàòåãîðèè:" + +#: templates/list/task_headers.inc:53 +#, fuzzy +msgid "Sort by Category" +msgstr "Ñîðòèðîâàòü ïî òåìå" + +#: templates/list/task_headers.inc:31 +#, fuzzy +msgid "Sort by Completion Status" +msgstr "Äàòà ñîçäàíèÿ" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Ñîðòèðîâàòü ïî äàòå çàâåðøåíèÿ" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Ñîðòèðîâàòü ïî èìåíè" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Ñîðòèðîâàòü ïî ïðèîðèòåòó" + +#: templates/list/task_headers.inc:35 +#, fuzzy +msgid "Sort by User Name" +msgstr "Ñîðòèðîâàòü ïî èìåíè" + +# fuzzy +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Ïîðÿäîê ñîðòèðîâêè:" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Ñîðòèðîâàòü ïî:" + +# fuzzy +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "Ññûëêà äëÿ ïîäïèñêè" + +#: templates/list/task_summaries.inc:57 +#, fuzzy +msgid "Task Alarm" +msgstr "Èìÿ çàäà÷è" + +#: templates/list/task_headers.inc:48 +#, fuzzy +msgid "Task Alarm?" +msgstr "Èìÿ çàäà÷è" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Óìîë÷àíèÿ" + +# fuzzy +#: templates/tasklist_list.php:15 templates/tasklists/tasklists.inc:66 +#: lib/Forms/task.php:68 +msgid "Task List" +msgstr "Ñïèñîê çàäà÷" + +# fuzzy +#: templates/tasklist_list.php:12 +#, fuzzy +msgid "Task List List" +msgstr "Çàäà÷è" + +# fuzzy +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Ïðî÷èå íàñòðîéêè" + +# fuzzy +#: templates/tasklist_info.php:6 +#, fuzzy, php-format +msgid "Task List owned by %s." +msgstr "Çàäà÷è" + +# fuzzy +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Íàçâàíèå ñïèñêà çàäà÷" + +# fuzzy +#: tasklists.php:111 templates/panel.inc:52 templates/panel.inc:53 +msgid "Task Lists" +msgstr "Çàäà÷è" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Èìÿ çàäà÷è" + +#: templates/list/task_summaries.inc:55 +#, fuzzy +msgid "Task Note" +msgstr "Èìÿ çàäà÷è" + +#: templates/list/task_headers.inc:47 +#, fuzzy +msgid "Task Note?" +msgstr "Èìÿ çàäà÷è" + +# fuzzy +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Ïîèñê çàäà÷è" + +# fuzzy +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Âû íå çàäàëè íàçâàíèå ñïèñêà çàäà÷" + +# fuzzy +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Tasklist" +msgstr "Ñïèñîê çàäà÷" + +#: lib/api.php:1056 +msgid "Tasks" +msgstr "Çàäà÷è" + +# fuzzy +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Ñîñòîÿíèå" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "" + +#: lib/Driver.php:56 +#, fuzzy +msgid "The Tasks backend is not currently available." +msgstr "Íåò äîñòóïíûõ íàñòðîåê." + +#: lib/Driver.php:137 +#, fuzzy, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Íåò äîñòóïíûõ íàñòðîåê." + +#: lib/Forms/task.php:133 +#, fuzzy +msgid "The alarm value must not be empty." +msgstr "" +"#-#-#-#-# compendium.po (IMP H3 v4.0.4) #-#-#-#-#\n" +"Ýòî çíà÷åíèå äîëæíî áûòü ÷èñëîì.\n" +"#-#-#-#-# ru_RU.po (0.0.2-cvs) #-#-#-#-#\n" +" Çíà÷åíèå äîëæíî áûòü ÷èñëîì." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Òåêóùèé ÷àñ" + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "" + +# fuzzy, php-format +# fuzzy, php-format +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Ñïèñîê çàäà÷ '%s' íå ìîæåò áûòü ñîçäàí: %s" + +# fuzzy, php-format +# fuzzy, php-format +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Ñïèñîê çàäà÷ '%s' íå ìîæåò áûòü ñîõðàíåí: %s" + +# fuzzy, php-format +# fuzzy, php-format +#: tasklists.php:47 tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Ñïèñîê çàäà÷ '%s' áûë óñïåøíî ñîçäàí" + +# fuzzy, php-format +#: tasklists.php:81 tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Ñïèñîê çàäà÷ '%s' áûë óäàëåí." + +# fuzzy, php-format +# fuzzy, php-format +#: tasklists/edit.php:42 +#, fuzzy, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "Ñïèñîê çàäà÷ '%s' áûë óñïåøíî ñîçäàí" + +# fuzzy, php-format +#: tasklists.php:58 tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Ñïèñîê çàäà÷ '%s' áûë ñîõðàíåí." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Çàòåì ïî:" + +# fuzzy +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Ïîäõîäÿùèõ çàäà÷ íå íàéäåíî" + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Íåâîçìîæíî çàãðóçèòü îïðåäåëåíèå %s." + +#: lib/Forms/EditTaskList.php:55 +#, fuzzy, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Îøèáêà ïðè äîñòóïå ê óêàçàííîé àäðåñíîé êíèãå." + +# fuzzy +#: templates/task/task.inc:103 +msgid "Undo changes" +msgstr "Îòìåíèòü èçìåíåíèÿ" + +# fuzzy +# fuzzy +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:81 lib/Block/summary.php:31 lib/Block/summary.php:222 +msgid "Unfiled" +msgstr "Îòñóòñòâóåò" + +#: lib/api.php:502 lib/api.php:789 lib/api.php:847 lib/api.php:901 +#: lib/api.php:1026 +#, fuzzy, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Íåêîððåêòíîå èìÿ." + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" + +# fuzzy +#: templates/task/task.inc:77 lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Íåäåëü" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr " êàêîå âðåìÿ ïî óìîë÷àíèþ çàäà÷à äîëæíà ñ÷èòàòüñÿ çàâåðøåííîé?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Ïðè ñîçäàíèè íîâîé çàäà÷è, ñêîëüêî äíåé ïî óìîë÷àíèþ òðåáóåòñÿ äëÿ åå " +"çàâåðøåíèÿ(0 îçíà÷àåò çàâåðøåíèå ñåãîäíÿ)" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Ïðè ñîçäàíèè íîâîé çàäà÷è, çàäàâàòü ïî óìîë÷àíèþ äàòó çàâåðøåíèÿ?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "" + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" + +# fuzzy +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Ñïèñîê çàäà÷ óìîë÷àíèþ:" + +# fuzzy +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Âàø ñïèñîê çàäà÷:" + +# fuzzy +#: templates/panel.inc:65 +msgid "[Manage Task Lists]" +msgstr "[Óïðàâëåíèå çàäà÷àìè]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +#, fuzzy +msgid "[none]" +msgstr "íåò" + +# fuzzy +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "Âñå çàäà÷è" + +# fuzzy +#: list.php:111 +msgid "_All tasks" +msgstr "Âñå" + +# fuzzy +#: templates/search/search.inc:20 templates/task/task.inc:41 +msgid "_Category" +msgstr "Êàòåãîðèÿ" + +# fuzzy +#: view.php:99 +msgid "_Complete" +msgstr "Çàâåðøèòü" + +# fuzzy +#: list.php:114 +msgid "_Completed tasks" +msgstr "Çàâåðøåííûå" + +# fuzzy +#: view.php:106 +msgid "_Delete" +msgstr "Óäàëèòü" + +# fuzzy +#: templates/search/search.inc:19 templates/task/task.inc:94 +msgid "_Description" +msgstr "Îïèñàíèå" + +# fuzzy +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "Ñðîê" + +# fuzzy +#: view.php:102 +msgid "_Edit" +msgstr "Ðåäàêòèðîâàòü" + +# fuzzy +#: list.php:113 +msgid "_Future tasks" +msgstr "Áóäóùèå" + +# fuzzy +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "Èìïîðò/Ýêñïîðò" + +# fuzzy +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "Âûáðàòü" + +# fuzzy +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "Äîáàâèòü" + +# fuzzy +#: lib/Nag.php:558 +msgid "_Print" +msgstr "Ïå÷àòü" + +#: templates/task/task.inc:82 +msgid "_Priority" +msgstr "Ïðèîðèòåò" + +# fuzzy +#: lib/Nag.php:549 +msgid "_Search" +msgstr "Ïîèñê" + +# fuzzy +#: templates/task/task.inc:26 templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "Ñïèñîê çàäà÷" + +#: templates/prefs/defaultduetimeselect.inc:15 +#, fuzzy +msgid "am" +msgstr "Èìÿ" + +#: data.php:31 +#, fuzzy +msgid "iCalendar (vTodo)" +msgstr "Êàëåíäàðü" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "â %s" + +# fuzzy +#: lib/Nag.php:79 +#, fuzzy +msgid "no time" +msgstr "1 çàìåòêà" + +#: templates/prefs/defaultduetimeselect.inc:15 +#, fuzzy +msgid "pm" +msgstr "Âíèìàíèå" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "" + +#: data.php:111 +msgid "tasks.ics" +msgstr "" diff --git a/nag/po/sk_SK.po b/nag/po/sk_SK.po new file mode 100644 index 000000000..923294ed3 --- /dev/null +++ b/nag/po/sk_SK.po @@ -0,0 +1,1316 @@ +# Nag Slovak translation +# Copyright 2002 Ivan Noris +# Ivan Noris , 2002. +# Martin Matu¹ka , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-05-12 11:43+0200\n" +"PO-Revision-Date: 2008-03-19 12:00+0100\n" +"Last-Translator: Martin Matuska \n" +"Language-Team: Slovak \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>=2 && n<=4) ? 1 : 2;\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s vrátane podúloh)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d hodina" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d hodina, %d minúta" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d hodín, %d minút" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d hodín" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d hodín, %d minút" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d hodín, %d minút" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minúta" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minút" + +#: lib/Nag.php:392 +#, php-format +msgid "%s at %s" +msgstr "%s o %s" + +#: lib/Nag.php:618 lib/Block/tree_alarms.php:41 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s má termín splnenia %s" + +#: lib/Nag.php:616 lib/Block/tree_alarms.php:43 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s má termín splnenia práve teraz." + +#: task.php:238 +#, php-format +msgid "%s is now incomplete." +msgstr "%s je teraz neukonèené." + +#: data.php:202 +#, php-format +msgid "%s successfully imported" +msgstr "%s úspe¹ne importovaný" + +#: tasklists.php:104 lib/Nag.php:544 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "Zoznam úloh %s" + +#: lib/Nag.php:343 lib/Forms/task.php:61 +msgid "(highest)" +msgstr "(najvy¹¹ia)" + +#: lib/Nag.php:343 lib/Forms/task.php:62 +msgid "(lowest)" +msgstr "(najni¾¹ia)" + +#: task.php:222 +#, php-format +msgid "Access denied completing task %s." +msgstr "Pri ukonèovaní úlohy %s bol zamietnutý prístup." + +#: task.php:27 +msgid "Access denied deleting task." +msgstr "Pri vymazávaní úlohy bol zamietnutý prístup." + +#: task.php:91 task.php:97 +msgid "Access denied editing task." +msgstr "Pri úprave úlohy bol zamietnutý prístup." + +#: task.php:89 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Pri úprave úlohy bol zamietnutý prístup: %s" + +#: task.php:170 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Pri presúvaní úlohy do %s bol zamietnutý prístup." + +#: task.php:173 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Pri odstraòovaní úlohy z %s bol zamietnutý prístup." + +#: task.php:132 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Pri ukladaní úlohy do %s bol zamietnutý prístup." + +#: task.php:128 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Pri ukladaní úlohy bol zamietnutý prístup: %s" + +#: templates/view/task.inc:26 lib/Forms/task.php:91 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "V¹etky úlohy" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "V¾dy zobrazi» ukonèené úlohy?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "V¾dy zobrazova» úlohy po termíne splnenia?" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Vzostupne" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Nadpis bloku" + +#: data.php:30 +msgid "CSV" +msgstr "CSV (hodnoty oddelené èiarkou)" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Kalendár" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Zru¹i»" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Kat_egória" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:79 +#: lib/Forms/task.php:85 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Kategória" + +#: templates/tasklists/tasklists.inc:26 +msgid "Change" +msgstr "Zmeni»" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +msgid "Change Permissions" +msgstr "Zmeni» prístupové práva" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Zmeni» spôsob triedenia úloh a nastavenia zobrazovania." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Vyberte aké upovedomenie chcete pri úlohách s alarmami:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Vyberte, èi chcete by» upovedomený o nových, upravených a vymazaných úlohách " +"e-mailom:" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "Vyberte, èi chcete by» upovedomený o zmenách v úlohách a alarmoch." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Vyberte Vá¹ prednastavený zoznam úloh." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "Kliknite alebo skopírujte toto URL na zobrazenie tohto zoznamu úloh" + +#: templates/panel.inc:44 +msgid "Close" +msgstr "Zavrie»" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Zavrie» hµadanie" + +#: view.php:112 +msgid "Complete" +msgstr "Ukonèená" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:175 +#, php-format +msgid "Complete \"%s\"" +msgstr "Ukonèená úloha \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Ukonèi» úlohu" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Ukonèi» úlohy" + +#: lib/Nag.php:407 lib/Block/summary.php:173 +msgid "Completed" +msgstr "Hotovo" + +#: task.php:236 +#, php-format +msgid "Completed %s." +msgstr "%s bola ukonèená." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Ukonèené úlohy" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Unkonèená nadradená úloha, oznaète ju najprv ako neukonèenú" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:97 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Ukonèená?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Stav ukonèenia" + +#: lib/api.php:443 lib/api.php:704 +#, php-format +msgid "Connection failed: %s" +msgstr "Spojenie zlyhalo: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86 +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Vytvori»" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Vytvori» zoznam úloh" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Vytvori» nový zoznam úloh" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Vytvorené" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Deò" + +#: lib/Nag.php:439 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Deò(dni)" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Prednastavený zoznam úloh:" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Prednastavenia pre nové úlohy" + +#: lib/Forms/task.php:90 +msgid "Delay Start Until" +msgstr "Odlo¾i» zaèiatok do" + +#: view.php:119 tasklists/index.php:57 templates/tasklist_list.php:37 +#: templates/tasklists/tasklists.inc:87 lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Vymaza»" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Vymaza» %s" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Potvrdenie vymazania" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Správanie sa tlaèidla vymaza»" + +#: task.php:112 lib/Forms/task.php:102 lib/Forms/task.php:129 +msgid "Delete this task" +msgstr "Vymaza» túto úlohu" + +#: task.php:37 +#, php-format +msgid "Deleted %s." +msgstr "%s vymazaná." + +#: lib/api.php:686 +msgid "Deleting entire tasklists is not supported." +msgstr "Vymazanie celých zoznamov úloh nie je podporované." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Zostupne" + +#: data.php:53 lib/Forms/task.php:98 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/EditTaskList.php:44 +msgid "Description" +msgstr "Popis" + +#: templates/tasklists/tasklists.inc:75 +msgid "Description:" +msgstr "Popis:" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Nastavenie zobrazenia" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Zobrazi» URL" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Chcete potvrdi» vymazanie záznamov?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:89 +msgid "Due By" +msgstr "Splni» do" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Termín splnenia" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Termín splnenia stanovený." + +#: view.php:115 tasklists/index.php:55 templates/tasklist_list.php:33 +msgid "Edit" +msgstr "Upravi»" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, php-format +msgid "Edit \"%s\"" +msgstr "Upravi» \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Upravi» %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "Upravi» úlohu" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Upravi» kategórie a farby" + +#: task.php:102 task.php:116 +#, php-format +msgid "Edit: %s" +msgstr "Upravi»: %s" + +#: task.php:20 +#, php-format +msgid "Error deleting task: %s" +msgstr "Nastala chyba pri vymazávaní úlohy: %s" + +#: templates/view/task.inc:34 lib/Forms/task.php:96 +msgid "Estimated Time" +msgstr "Predpokladaný èas" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Export" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Exportova» úlohy" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Externé údaje" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "V¹eobecné nastavenia" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Hodina" + +#: lib/Nag.php:442 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Hodina(y)" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Import úloh, krok %d" + +#: data.php:208 +msgid "Import/Export Tasks" +msgstr "Import/Export úloh" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "_Neukonèené úlohy" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Neukonèené úlohy" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Neukonèené podúlohy, ukonèite najprv tieto" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Neukonèené úlohy" + +#: lib/api.php:520 +msgid "Invalid tasklist name supplied." +msgstr "Boli zadaný nesprávny názov zoznamu úloh." + +#: lib/api.php:386 +msgid "Invalid tasklist requested." +msgstr "Bol vy¾adovaný neplatný zoznam úloh." + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Posledná aktualizácia" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Spravova» zoznamy úloh" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Oznaèi» \"%s\" ako neukonèenú" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Oznaèi» ako neukonèenú" + +#: lib/api.php:125 +msgid "Maximum Number of Tasks" +msgstr "Maximálny poèet úloh" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Alarmy v menu" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Zoznam v menu" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Minúta" + +#: lib/Nag.php:445 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Minúta(y)" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Mesiac" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Ïal¹ie nastavenia..." + +#: lib/api.php:1179 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "" +"Bolo nájdených viacero komponentov iCalendar; podporovaný je len jeden vTodo." + +#: templates/panel.inc:72 +msgid "My Task Lists:" +msgstr "Moje zoznamy úloh" + +#: list.php:34 +msgid "My Tasks" +msgstr "Moje úlohy" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "Me_no" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "_Meno" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: Nenájdená úloha %s" + +#: data.php:52 lib/Forms/task.php:68 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/EditTaskList.php:43 +msgid "Name" +msgstr "Meno" + +#: templates/tasklists/tasklists.inc:68 +msgid "Name:" +msgstr "Meno:" + +#: task.php:81 task.php:116 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Prida» úlohu" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Ïalej" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "Nie" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "®iadne oneskorenie" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "®iaden termín splnenia." + +#: lib/api.php:553 lib/api.php:902 lib/api.php:960 lib/api.php:1172 +msgid "No iCalendar data was found." +msgstr "Neboli nájdené ¾iadne údaje iCalendar." + +#: lib/Forms/task.php:53 +msgid "No parent task" +msgstr "®iadna nadradená úloha" + +#: lib/Nag.php:633 +msgid "No task lists are available to guests." +msgstr "Pre anonymných pou¾ívateµov nie sú dostupné ¾iadne zoznamy úloh." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "®iadne úlohy nezodpovedajú" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "®iadne úlohy zobrazenie" + +#: lib/Nag.php:449 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "®iaden" + +#: lib/Nag.php:408 +msgid "Not Completed" +msgstr "Neukonèená" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Nesúkromné" + +#: lib/api.php:760 +msgid "Not configured" +msgstr "Nenastavené" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Nenajdené" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Upozornenia" + +#: config/prefs.php.dist:168 +msgid "On all shown task lists" +msgstr "Na v¹etkých zobrazených zoznamoch úloh" + +#: config/prefs.php.dist:169 +msgid "On all task lists I have read access to" +msgstr "Na v¹etkých zoznamoch úloh, ku ktorým mám prístup na èítanie" + +#: config/prefs.php.dist:167 +msgid "On my task lists only" +msgstr "Iba na mojich zoznamoch úloh" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "P_ri" + +#: lib/Forms/task.php:75 +msgid "Parent task" +msgstr "Nadradená úloha" + +#: templates/tasklists/tasklists.inc:71 +msgid "Permission" +msgstr "Právo" + +#: lib/api.php:769 lib/api.php:807 lib/api.php:840 lib/api.php:876 +#: lib/api.php:998 lib/api.php:1053 lib/api.php:1117 lib/api.php:1154 +#: lib/api.php:1267 lib/api.php:1314 +msgid "Permission Denied" +msgstr "Prístup zamietnutý" + +#: lib/api.php:210 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Prístup zamietnutý" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:93 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Priorita" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Súkromná" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Súkromná úloha" + +#: templates/view/task.inc:12 lib/Forms/task.php:88 +msgid "Private?" +msgstr "Súkromné?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"Naozaj vymaza» zoznam úloh \"%s\"? Toto nie je mo¾né vráti» spä» a v¹etky " +"dáta v tomto zozname úloh budú trvale vymazané." + +#: view.php:119 +msgid "Really delete this task?" +msgstr "Naozaj vymaza» túto úlohu?" + +#: templates/tasklists/tasklists.inc:81 +msgid "Remote Subscription URL" +msgstr "URL pre vzdialené prihlásenie" + +#: templates/panel.inc:90 lib/Forms/task.php:100 lib/Forms/task.php:127 +#: lib/Forms/EditTaskList.php:46 +msgid "Save" +msgstr "Ulo¾i»" + +#: task.php:201 +#, php-format +msgid "Saved %s." +msgstr "%s ulo¾ená." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Hµada»" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "Hµada» podµa:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Hµada» _text:" + +#: templates/panel.inc:60 +msgid "Search for Task Lists:" +msgstr "Hµada» zoznamy úloh:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Hµada»:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Hµada»: Výsledky pre \"%s\"" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Vyberte dátum" + +#: templates/tasklists/tasklists.inc:62 +msgid "Select a tasklist" +msgstr "Vyberte zoznam úloh" + +#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82 +msgid "Select a tasklist above to display the Remote Subscription URL" +msgstr "Vyberte vy¹¹ie zoznam úloh na zobrazenie URL vzdialeného prihlásenia" + +#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80 +msgid "Select a tasklist above to display the URL" +msgstr "Vyberte vy¹¹ie zoznam úloh na zobrazenie URL" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Vyberte formát exportu:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Vyberte súbor na import:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Vyberte formát zdrojového súboru:" + +#: templates/panel.inc:81 +msgid "Shared Task Lists:" +msgstr "Zdielané zoznamy úloh:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Má sa zoznam úloh zobrazi» vo vlastnom ståpci v prehµade úloh?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Zobrazi» tlaèidlá akcií?" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Zobrazi» ukonèené, neukonèené alebo v¹etky úlohy v zozname úloh?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Zobrazi» údaje z µubovoµnej z týchto aplikácií vo Va¹om zozname úloh?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Zobrazi» údaje z iných aplikácií alebo zdrojov." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Zobrazi» termíny splnenia?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Zobrazi» priority?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Zobrazi» alarmy úloh?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Zobrazi» kategóriu úlohy?" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Zobrazi» panel s nastaveniami zoznamu úloh?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Zobrazi» meno zoznamu úloh?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Zobrazi» úlohy z týchto kategórií" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Zobrazi» úlohy z týchto zoznamov" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Triedi» podµa kategórie" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Triedi» podµa stavu ukonèenia" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Triedi» podµa termínu splnenia" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Triedi» podµa mena" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Triedi» podµa priority" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Triedi» podµa mena pou¾ívateµa" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Smer triedenia:" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "Triedi» úlohy podµa:" + +#: data.php:56 +msgid "Start" +msgstr "Zaèiatok" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Dátum zaèiatku" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Dátum zaèiatku stanovený." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "URL pre prihlásenie" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Alarm úlohy" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Alarm úlohy?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Prednastavenia pre úlohy" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:71 +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Task List" +msgstr "Zoznam úloh" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Informácie o zozname úloh" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Prehµad zoznamov úloh" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Nastavenia zoznamu úloh a zdieµania" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Zoznam úloh je vlastnený pou¾ívateµom %s." + +#: tasklists.php:117 templates/panel.inc:54 templates/panel.inc:55 +msgid "Task Lists" +msgstr "Zoznamy úloh" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Meno úlohy" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Poznámka k úlohe" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Poznámka k úlohe?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Hµada» úlohu" + +#: lib/Nag.php:658 +msgid "Task added:" +msgstr "Úloha pridaná:" + +#: lib/Nag.php:668 +msgid "Task deleted:" +msgstr "Úloha vymazaná:" + +#: tasklists.php:32 +msgid "Task lists must have a name." +msgstr "Zoznamy úloh musia ma» názov." + +#: lib/Nag.php:663 +msgid "Task modified:" +msgstr "Úloha upravená:" + +#: task.php:95 view.php:44 +msgid "Task not found." +msgstr "Úloha nebola nájdená." + +#: lib/api.php:698 +msgid "Tasklist does not exist or no permission to delete" +msgstr "Zoznam úloh neexistuje alebo nemáte oprávnenie na jeho vymazanie" + +#: lib/api.php:526 +msgid "Tasklist does not exist or no permission to edit" +msgstr "Zoznam úloh neexistuje alebo nemáte oprávnenie na jeho úpravu" + +#: templates/tasklists/tasklists.inc:58 +msgid "Tasklists" +msgstr "Zoznamy úloh" + +#: templates/tasklists/tasklists.inc:60 +msgid "Tasklists:" +msgstr "Zoznamy úloh:" + +#: lib/api.php:1236 +msgid "Tasks" +msgstr "Úlohy" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Súhrn úloh" + +#: lib/api.php:348 +#, php-format +msgid "Tasks from %s" +msgstr "Úlohy z %s" + +#: data.php:196 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Súbor %s neobsahoval ¾iadne úlohy." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Backend pre úlohy momentálne nie je k dispozícii." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Backend pre úlohy momentálne nie je k dispozícii: %s" + +#: lib/Forms/task.php:160 +msgid "The alarm value must not be empty." +msgstr "Pole s hotnotou pre alarm nemô¾e by» prázdne." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Aktuálna hodina" + +#: lib/Nag.php:659 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "Úloha \"%s\" bola pridaná do zoznamu \"%s\", s termínom splnenia: %s." + +#: lib/Nag.php:669 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "Úloha \"%s\" bola vymazaná zo zoznamu \"%s\", s termínom splnenia: %s." + +#: lib/Nag.php:664 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "Úloha \"%s\" bola upravená v zozname \"%s\", s termínom splnenia: %s." + +#: tasklists.php:49 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Zoznam úloh \"%s\" sa nepodarilo vytvori»: %s" + +#: tasklists.php:60 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Zoznam úloh \"%s\" sa nepodarilo ulo¾i»: %s" + +#: tasklists.php:51 tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Zoznam úloh \"%s\" bol vytvorený." + +#: tasklists.php:85 tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Zoznam úloh \"%s\" bol vymazaný." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "Zoznam úloh \"%s\" bol premenovaný na \"%s\"." + +#: tasklists.php:62 tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Zoznam úloh \"%s\" bol ulo¾ený." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Potom:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "®iadne úlohy nevyhovujú aktuálnym kritériám." + +#: task.php:232 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Nastala chyba pri aktualizácii %s: %s" + +#: task.php:33 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Nastala chyba pri vymazávaní %s: %s" + +#: task.php:199 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Nastala chyba pri ukladaní úlohy: %s." + +#: data.php:199 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Nastala chyba pri importe údajov: %s" + +#: lib/api.php:545 lib/api.php:894 lib/api.php:1166 +msgid "There was an error importing the iCalendar data." +msgstr "Nastala chyba pri importe údajov iCalendar." + +#: data.php:83 +msgid "There were no tasks to export." +msgstr "Nie sú ¾iadne úlohy na export." + +#: data.php:129 +msgid "This file format is not supported." +msgstr "Tento formát súboru nie je podporovaný." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "Tento zoznam úloh nemô¾e by» vymazaný." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Ak sa chcete prihlási» do tohto zozmanu úloh z iného programu, pou¾ite toto " +"URL: " + +#: templates/tasklists/tasklists.inc:79 +msgid "URL" +msgstr "URL" + +#: tasklists.php:81 lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Nepodarilo sa vymaza» \"%s\": %s" + +#: lib/api.php:719 +#, php-format +msgid "Unable to delete tasklist \"%s\": %s" +msgstr "Nepodarilo sa vymaza» zoznam úloh \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Nepodarilo sa nahra» definíciu %s." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "Nepodarilo sa ulo¾i» zoznam úloh \"%s\": %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:900 lib/Nag.php:901 lib/Nag.php:915 lib/Nag.php:916 +#: lib/Forms/task.php:84 lib/Block/summary.php:31 lib/Block/summary.php:222 +msgid "Unfiled" +msgstr "Nenastavená" + +#: lib/api.php:652 lib/api.php:967 lib/api.php:1025 lib/api.php:1079 +#: lib/api.php:1204 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Nepodporovaný typ obsahu (Content-Type): %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Chceli by sme Vám pripomenú» túto nesplnenú úlohu.\n" +"\n" +"%s\n" +"\n" +"Dátum: %s\n" +"Èas: %s\n" +"\n" +"%s" + +#: lib/Nag.php:436 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Tý¾deò(tý¾dne)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Aký chcete ma» prednastavený èas plnenia pre úlohy?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Ak vytváram novú úlohu, o koµko dní má by» prednastavený termín splnenia (0 " +"znamená dnes)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "Ak vytváram novú úlohu, má ma» nastavený termín splnenia?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Do ktorého zoznamu úloh sa majú prida» úlohy?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Rok" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Nemáte právo na úpravu tohto zoznamu úloh." + +#: data.php:41 data.php:154 task.php:68 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Nemáte právo vytvori» viac ako %d úloh." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Nemáte právo na vymazanie tohto zoznamu úloh." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Nemáte právo na zobrazenie tohto zoznamu úloh." + +#: tasklists.php:88 +msgid "You must select a task list to be deleted." +msgstr "Musíte oznaèi» úlohu, ktorá má by» vymazaná." + +#: templates/tasklists/tasklists.inc:47 +msgid "You must select a tasklist to be deleted." +msgstr "Musíte oznaèi» zoznam úloh, ktorý má by» vymazaný." + +#: lib/Nag.php:659 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Po¾iadali ste o notifikáciu pri pridaní nových úloh do Va¹ích zoznamov úloh." + +#: lib/Nag.php:669 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "Po¾iadali ste o notifikáciu pri vymazaní úloh z Va¹ích zoznamov úloh." + +#: lib/Nag.php:664 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Po¾iadali ste o notifikáciu v prípade úpravy úloh vo Va¹ích zoznamoch úloh." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Vá¹ prednastavený zoznam úloh:" + +#: templates/panel.inc:67 +msgid "[Manage Task Lists]" +msgstr "[Spravova» zoznamy úloh]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +msgid "[none]" +msgstr "[¾iadne]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_V¹etky úlohy" + +#: list.php:111 +msgid "_All tasks" +msgstr "_V¹etky úlohy" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "_Kategória" + +#: view.php:112 +msgid "_Complete" +msgstr "U_konèi»" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "U_konèené úlohy" + +#: view.php:119 +msgid "_Delete" +msgstr "_Vymaza»" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "_Popis" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_Termín" + +#: view.php:115 +msgid "_Edit" +msgstr "_Upravi»" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_Budúce úlohy" + +#: lib/Nag.php:581 +msgid "_Import/Export" +msgstr "_Import/Export" + +#: lib/Nag.php:568 +msgid "_List Tasks" +msgstr "_Zoznam úloh" + +#: lib/Nag.php:573 +msgid "_New Task" +msgstr "_Nová úloha" + +#: lib/Nag.php:586 +msgid "_Print" +msgstr "_Tlaèi»" + +#: lib/Nag.php:577 +msgid "_Search" +msgstr "_Hµada»" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Zoznam úloh" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "AM" + +#: view.php:73 view.php:82 +#, php-format +msgid "by %s" +msgstr "pou¾ívateµom %s" + +#: view.php:75 view.php:84 +msgid "by me" +msgstr "Vami" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "v %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "¾iaden èas" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "PM" + +#: data.php:103 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "ulohy.csv" + +#: data.php:114 +msgid "tasks.ics" +msgstr "ulohy.ics" diff --git a/nag/po/sl_SI.po b/nag/po/sl_SI.po new file mode 100644 index 000000000..d4c9ecabe --- /dev/null +++ b/nag/po/sl_SI.po @@ -0,0 +1,1034 @@ +# Slovenian translations for Nag packaga +# Slovenski prevod Nag 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: nag\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2006-08-16 19:14+0200\n" +"PO-Revision-Date: 2006-04-30 10:32+0100\n" +"Last-Translator: duck@obala.net\n" +"Language-Team: sl_SI \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ura" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d ura, %d minuta" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d ura, %d minut" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d ur" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d ur, %d minuta" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d ur, %d minut" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d minuta" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d minut" + +#: templates/list/header.inc:3 +#, php-format +msgid "%d tasks" +msgstr "%d opravil" + +#: lib/Nag.php:380 +#, php-format +msgid "%s at %s" +msgstr "%s ob %s" + +#: lib/Nag.php:532 lib/Block/tree_alarms.php:34 lib/Block/summary.php:90 +#, php-format +msgid "%s is due in %s" +msgstr "%s zapade %s " + +#: lib/Nag.php:530 lib/Block/tree_alarms.php:32 lib/Block/summary.php:88 +#, php-format +msgid "%s is due now." +msgstr "%s zapade zdaj." + +#: task.php:324 +#, php-format +msgid "%s is now incomplete." +msgstr "%s je sedaj nedokončana." + +#: data.php:191 +#, php-format +msgid "%s successfully imported" +msgstr "%s je uspeno sprejet." + +#: tasklists.php:100 lib/base.php:104 +#, php-format +msgid "%s's Task List" +msgstr "%s Seznam Opravil" + +#: lib/Nag.php:337 +msgid "(highest)" +msgstr "(najviÅ¡ji)" + +#: lib/Nag.php:337 +msgid "(lowest)" +msgstr "(najnižji)" + +#: templates/list/header.inc:3 +msgid "1 task" +msgstr "1 opravilo" + +#: task.php:305 +#, php-format +msgid "Access denied completing task %s." +msgstr "Dokončanje opravila %s je zavrnjeno." + +#: task.php:279 +#, php-format +msgid "Access denied deleting %s." +msgstr "Brisanje %s je zavrnjeno." + +#: task.php:81 task.php:91 +msgid "Access denied editing task." +msgstr "Nimate pravic urejanja tega opravila." + +#: task.php:79 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Nimate pravic urejanja opravila: %s" + +#: task.php:237 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Premikanje opravila na %s je zavrnjeno." + +#: task.php:240 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Odstranjevanje opravila iz %s je zavrnejno." + +#: task.php:158 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Shranjevanje opravila na %s je zavrnejno." + +#: task.php:156 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Shranjevanje opravila: %s je zavrnjeno." + +#: templates/view/task.inc:39 templates/task/task.inc:78 +msgid "Alarm" +msgstr "Alarem" + +#: templates/task/task.inc:86 +msgid "Alarm Unit" +msgstr "Enota alarma" + +#: templates/task/task.inc:84 +msgid "Alarm Value" +msgstr "Vrednost alarama" + +#: config/prefs.php.dist:143 +msgid "All tasks" +msgstr "Vsa opravila" + +#: lib/Block/summary.php:54 +msgid "Always show completed tasks?" +msgstr "Ali naj vedno prikažem zaključena opravila?" + +#: lib/Block/summary.php:51 +msgid "Always show overdue tasks?" +msgstr "Ali naj vedno prikažem zapadla opravila?" + +#: config/prefs.php.dist:98 +msgid "Ascending" +msgstr "Naraščajoče" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Nazaj na Seznam Možnosti Opravil" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:65 +msgid "Calendar" +msgstr "Koledar" + +#: templates/list/task_headers.inc:65 +msgid "Cat_egory" +msgstr "Kategorija" + +#: data.php:52 templates/view/task.inc:25 config/prefs.php.dist:70 +#: config/prefs.php.dist:85 +msgid "Category" +msgstr "Kategorija" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Spremeni" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Spremeni nastavitve razvrščanja in prikazovanja opravil." + +#: config/prefs.php.dist:122 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"Izberite če želite biti opozorjeni kadar bo opravilo dodano, urejeno ali " +"izbrisano po emailu:" + +#: config/prefs.php.dist:36 +msgid "Choose if you want to be notified of new, edited, and deleted tasks." +msgstr "" +"Izberite če želite biti opozorjeni kadar bo opravilo dodano, urejeno ali " +"izbrisano." + +#: config/prefs.php.dist:29 +msgid "Choose your default task list." +msgstr "Izberi prevzat spisek pravil." + +#: templates/search/search.inc:34 +msgid "Clear Form" +msgstr "Sprazni Obrazec" + +#: templates/task/task.inc:108 +msgid "Co_mpleted?" +msgstr "Zaključeno?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Končaj" + +#: templates/list/task_summaries.inc:6 lib/Block/summary.php:145 +#, php-format +msgid "Complete \"%s\"" +msgstr "Coleten \"%s\"" + +#: templates/view/task.inc:55 +msgid "Complete Task" +msgstr "Končaj Opravilo" + +#: config/prefs.php.dist:145 +msgid "Complete tasks" +msgstr "Končaj opravilo" + +#: lib/Nag.php:395 lib/Block/summary.php:143 +msgid "Completed" +msgstr "Končano" + +#: task.php:322 +#, php-format +msgid "Completed %s." +msgstr "Končano %s." + +#: templates/view/task.inc:51 templates/list/task_headers.inc:43 +#: config/prefs.php.dist:72 config/prefs.php.dist:87 +msgid "Completed?" +msgstr "Zaključim?" + +#: data.php:55 +msgid "Completion Status" +msgstr "Zaključeno Stanje" + +#: lib/api.php:267 +#, php-format +msgid "Connection failed: %s" +msgstr "Povezava neuspeÅ¡na: %s" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Ustvari" + +#: templates/view/task.inc:67 +msgid "Created" +msgstr "Ustvarjeno" + +#: templates/task/task.inc:58 +msgid "Day" +msgstr "Dan" + +#: templates/task/task.inc:90 lib/Nag.php:427 +msgid "Day(s)" +msgstr "Dnevi" + +#: config/prefs.php.dist:28 +msgid "Default Task List" +msgstr "Privzet spisek opravil" + +#: templates/tasklists/tasklists.inc:100 templates/view/task.inc:16 +msgid "Delete" +msgstr "ZbriÅ¡i" + +#: config/prefs.php.dist:21 +msgid "Delete Confirmation" +msgstr "Potrditev izbrisa" + +#: config/prefs.php.dist:22 +msgid "Delete button behaviour" +msgstr "Lastnosti gumba za brisanje" + +#: templates/task/task.inc:130 +msgid "Delete this task" +msgstr "IzbriÅ¡i izbrano opravilo" + +#: task.php:287 +#, php-format +msgid "Deleted %s." +msgstr "Zbrisano %s." + +#: config/prefs.php.dist:99 +msgid "Descending" +msgstr "Padajoďż" + +#: data.php:51 +msgid "Description" +msgstr "Opis" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Opis:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Prikaži Možnosti:" + +#: config/prefs.php.dist:109 +msgid "Do you want to confirm deleting entries?" +msgstr "Zahtevam potrditev izbrisana opravila?" + +#: data.php:53 templates/view/task.inc:35 templates/task/task.inc:50 +msgid "Due By" +msgstr "Končati do" + +#: config/prefs.php.dist:71 config/prefs.php.dist:86 +msgid "Due Date" +msgstr "KOnčni Datum" + +#: templates/task/task.inc:57 +msgid "Due date specified." +msgstr "Podana zapadlost." + +#: lib/api.php:729 +#, php-format +msgid "Due: %s" +msgstr "Zapade: %s" + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Uredi" + +#: templates/list/task_summaries.inc:27 lib/Block/summary.php:140 +#, php-format +msgid "Edit \"%s\"" +msgstr "Uredi \"%s\"" + +#: templates/list/task_headers.inc:54 +msgid "Edit Task" +msgstr "Uredi Opravila" + +#: templates/list/task_headers.inc:70 +msgid "Edit categories and colors" +msgstr "Uredi kategorije in barve" + +#: task.php:139 +#, php-format +msgid "Edit: %s:" +msgstr "Uredi: %s:" + +#: templates/task/task.inc:83 +msgid "Enabled" +msgstr "Vklopljen" + +#: templates/view/task.inc:47 templates/task/task.inc:102 +msgid "Estimated Time" +msgstr "Predvideno ur" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Oddaj" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Oddaj Opravila" + +#: config/prefs.php.dist:47 +msgid "External Data" +msgstr "Zunanji Podatki" + +#: config/prefs.php.dist:13 config/prefs.php.dist:20 +msgid "General Options" +msgstr "Splone Monosti" + +#: templates/task/task.inc:70 +msgid "Hour" +msgstr "Ura" + +#: templates/task/task.inc:89 lib/Nag.php:430 +msgid "Hour(s)" +msgstr "Ure" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Sprejmi Opravila, Korak %d" + +#: data.php:197 +msgid "Import/Export Tasks" +msgstr "Sprejmi/Oddaj Opravila" + +#: list.php:88 +msgid "Incom_plete tasks" +msgstr "Nedokončana opravila" + +#: config/prefs.php.dist:144 +msgid "Incomplete tasks" +msgstr "Nedokončana opravila" + +#: templates/view/task.inc:74 +msgid "Last Modified" +msgstr "Zadnjič Spremenjeno" + +#: templates/list/task_summaries.inc:9 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "Osnači \"%s\" ko nedokončana" + +#: templates/view/task.inc:57 +msgid "Mark as incomplete" +msgstr "Označi kot nedokončan" + +#: lib/api.php:96 +msgid "Maximum Number of Tasks" +msgstr "Največje Å¡tevilo opravil" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Meni Alarmov" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Spisek" + +#: templates/task/task.inc:71 +msgid "Minute" +msgstr "Minute" + +#: templates/task/task.inc:88 lib/Nag.php:433 +msgid "Minute(s)" +msgstr "Minuta(e)" + +#: templates/task/task.inc:59 +msgid "Month" +msgstr "Mesec" + +#: lib/api.php:659 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Razne iKoledarjeve komponente; samo en vTodo ima podporo." + +#: list.php:39 +msgid "My Tasks" +msgstr "Moja Opravila" + +#: templates/search/search.inc:25 templates/task/task.inc:17 +msgid "N_ame" +msgstr "Ime" + +#: templates/list/task_headers.inc:57 +msgid "Na_me" +msgstr "Ime" + +#: data.php:50 +msgid "Name" +msgstr "Ime" + +#: task.php:71 lib/Block/summary.php:18 lib/Block/tree_menu.php:21 +msgid "New Task" +msgstr "Novo Opravilo" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Naslednji" + +#: config/prefs.php.dist:118 +msgid "No" +msgstr "Ne" + +#: templates/task/task.inc:53 +msgid "No due date." +msgstr "Ni končnega datuma." + +#: lib/api.php:446 lib/api.php:497 lib/api.php:652 +msgid "No iCalendar data was found." +msgstr "Podatkov iKoledarja nisem nael." + +#: lib/Nag.php:546 +msgid "No task lists are available to guests." +msgstr "Seznami opravil niso na voljo gostom." + +#: lib/Block/summary.php:186 +msgid "No tasks to display" +msgstr "Ni opravil za prikaz" + +#: templates/task/task.inc:81 lib/Nag.php:437 +msgid "None" +msgstr "Nedoločen" + +#: lib/Nag.php:396 +msgid "Not Completed" +msgstr "Ni končano" + +#: templates/view/task.inc:31 +msgid "Not Private" +msgstr "Ni zasebna" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Ne najdem" + +#: config/prefs.php.dist:35 +msgid "Notifications" +msgstr "Opozarjanje" + +#: config/prefs.php.dist:120 +msgid "On all shown tasklists" +msgstr "Na vseh porkazanih opravilih" + +#: config/prefs.php.dist:121 +msgid "On all tasklists I have read access to" +msgstr "Na vseh opravilih za katera imam dostop za branje." + +#: config/prefs.php.dist:119 +msgid "On my tasklists only" +msgstr "Samo na mojih opravilih" + +#: templates/list/task_headers.inc:51 +msgid "P_ri" +msgstr "Pri" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Dovoljenja" + +#: lib/api.php:420 lib/api.php:534 lib/api.php:597 lib/api.php:634 +msgid "Permission Denied" +msgstr "Dovoljenje je bilo zavrnjeno" + +#: lib/api.php:148 +msgid "Permission denied" +msgstr "Dostopo zavrnjen" + +#: data.php:54 templates/view/task.inc:43 config/prefs.php.dist:68 +#: config/prefs.php.dist:83 +msgid "Priority" +msgstr "Prioriteta" + +#: list.php:138 view.php:78 templates/view/task.inc:31 +msgid "Private" +msgstr "Zasebni" + +#: list.php:136 view.php:76 +msgid "Private Task" +msgstr "Zasebno opravilo" + +#: templates/view/task.inc:29 +msgid "Private?" +msgstr "Zasebno?" + +#: templates/view/task.inc:16 +msgid "Really delete this task?" +msgstr "Resnično želite izbrisati opravilo?" + +#: templates/list/header.inc:5 +msgid "Refresh List" +msgstr "Osvei seznam" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Ponovno zaženi" + +#: templates/task/task.inc:122 +msgid "Save" +msgstr "Shrani" + +#: task.php:263 +#, php-format +msgid "Saved %s." +msgstr "Shranjeno %s." + +#: search.php:14 templates/search/search.inc:6 templates/search/search.inc:33 +#: lib/Block/tree_menu.php:30 +msgid "Search" +msgstr "Najdi" + +#: list.php:62 +msgid "Search Results" +msgstr "Najdi Rezultate" + +#: templates/search/search.inc:22 +msgid "Search Scope:" +msgstr "Najdi v" + +#: templates/search/search.inc:14 +msgid "Search _Text:" +msgstr "Išči besedilo" + +#: templates/task/task.inc:65 +msgid "Select a date" +msgstr "Izberite datum" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Izberite seznam opravil" + +#: templates/menu.inc:7 templates/menu.inc:9 +msgid "Select tasklists to display:" +msgstr "Izberi opravila za prikaz:" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Izberite obliko izvozne datoteke:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Izberite datoteko, ki jo elite sprejeti:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Izberite obliko zapisa uvozne datoteke:" + +#: config/prefs.php.dist:59 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Prikažem spiek opravil v svoji koloni v spisku?" + +#: lib/Block/summary.php:36 +msgid "Show action buttons?" +msgstr "Ali naj prikažem ukazne tipke?" + +#: config/prefs.php.dist:146 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Ali naj prikažem dokončana, nedokončana ali vsa opravila na seznamu opravil?" + +#: config/prefs.php.dist:133 +msgid "Show data from any of these other applications in your task list?" +msgstr "Ali naj prikažem podatke ostalih aplikacij na vaÅ¡em seznamu opravil?" + +#: config/prefs.php.dist:48 +msgid "Show data from other applications or sources." +msgstr "Prikaži podatke ostalih aplikacij ali virov." + +#: lib/Block/summary.php:39 +msgid "Show due dates?" +msgstr "Prikažem končne datume?" + +#: lib/Block/summary.php:33 +msgid "Show priorities?" +msgstr "Ali naj prikažem prioritete?" + +#: lib/Block/summary.php:45 +msgid "Show task alarms?" +msgstr "Ali naj prikažem alarme opravil?" + +#: lib/Block/summary.php:48 +msgid "Show task category?" +msgstr "Prikaži kategorije opravil?" + +#: lib/Block/summary.php:42 +msgid "Show tasklist name?" +msgstr "Ali naj prikažem ime seznama opravil?" + +#: lib/Block/summary.php:57 +msgid "Show tasks from these categories" +msgstr "Prikaži opravila iz te kategorije" + +#: templates/list/task_headers.inc:65 +msgid "Sort by Category" +msgstr "Razvrsti glede na Kategorijo" + +#: templates/list/task_headers.inc:43 +msgid "Sort by Completion Status" +msgstr "Razvrsti glede na zaključno stanje" + +#: templates/list/task_headers.inc:62 +msgid "Sort by Due Date" +msgstr "Razvrsti glede na Končni Datum" + +#: templates/list/task_headers.inc:57 +msgid "Sort by Name" +msgstr "Razvrsti po Imenih" + +#: templates/list/task_headers.inc:51 +msgid "Sort by Priority" +msgstr "Razvrsti glede ne Prioritete" + +#: templates/list/task_headers.inc:47 +msgid "Sort by User Name" +msgstr "Razvrsti po Imenih Uporabnikov" + +#: config/prefs.php.dist:100 +msgid "Sort direction:" +msgstr "Smer prikazovanja" + +#: config/prefs.php.dist:74 +msgid "Sort tasks by:" +msgstr "Upredni opravila po" + +#: templates/list/task_summaries.inc:35 +msgid "Task Alarm" +msgstr "Alarm Opravila" + +#: templates/list/task_headers.inc:60 +msgid "Task Alarm?" +msgstr "Alarm Opravila?" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Seznam Opravil" + +#: config/prefs.php.dist:27 config/prefs.php.dist:34 config/prefs.php.dist:46 +msgid "Task List and Share Options" +msgstr "Seznam Opravil in Monosti" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Ime Seznama Opravil:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Seznami Opravil" + +#: config/prefs.php.dist:69 config/prefs.php.dist:84 +msgid "Task Name" +msgstr "Ime Opravila" + +#: templates/list/task_summaries.inc:33 +msgid "Task Note" +msgstr "Opomba Opravila" + +#: templates/list/task_headers.inc:59 +msgid "Task Note?" +msgstr "Opomba pravila?" + +#: lib/Nag.php:571 +msgid "Task added:" +msgstr "Opravil oddano:" + +#: lib/Nag.php:581 +msgid "Task deleted:" +msgstr "Izbrisana opravila:" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Spisek opravil mora vsebovati ime." + +#: lib/Nag.php:576 +msgid "Task modified:" +msgstr "Opravilo spremenjeno:" + +#: task.php:89 view.php:43 +msgid "Task not found." +msgstr "Opravila ne najdem." + +#: config/prefs.php.dist:73 config/prefs.php.dist:88 +msgid "Tasklist" +msgstr "Seznam Opravil" + +#: lib/api.php:710 +msgid "Tasks" +msgstr "Opravila" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Povzetek Opravil" + +#: lib/Driver.php:55 +msgid "The Tasks backend is not currently available." +msgstr "Podatkovni vir opravil je trenutno nedostopen." + +#: lib/Driver.php:309 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Podatkovni vir opravil je trenutno nedostopen: %s" + +#: task.php:194 +msgid "The alarm field may only contain integers." +msgstr "Alarem lahko vsebuje le celotna Å¡tevila." + +#: lib/Nag.php:572 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "Opravilo \"%s\" je bilo dodano v \"%s\", in preteče: %s." + +#: lib/Nag.php:582 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "Opravilo \"%s\" je bilo izbrisano iz \"%s\", in je poteklo: %s." + +#: lib/Nag.php:577 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "Opravilo \"%s\" je bilo urejeno v \"%s\", in preteče: %s." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Seznama opravil \"%s\" ne morem ustvariti: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Seznama opravil \"%s\" ne morem shraniti: %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Seznam opravil \"%s\" je bil ustvarjen." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Seznam opravil \"%s\" je bil zbrisan." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Seznam opravil \"%s\" je bil shranjen." + +#: config/prefs.php.dist:89 +msgid "Then:" +msgstr "Potem:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Ni opravil, ki bi ustrezale izbranim kriterijem." + +#: task.php:318 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Prilo je do težave pri zaključevanju %s: %s" + +#: task.php:284 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Prilo je do težave pri brisanju %s: %s" + +#: task.php:261 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Prilo je do težave pri shranjevanju opravila: %s" + +#: data.php:188 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Prilo je do napake pri sprejemanju podatkov: %s" + +#: lib/api.php:438 lib/api.php:646 +msgid "There was an error importing the iCalendar data." +msgstr "Prilo je do napake pri sprejemanju podatkov iKoledarja" + +#: data.php:77 +msgid "There were no tasks to export." +msgstr "Ni opravil za oddajo." + +#: data.php:121 +msgid "This file format is not supported." +msgstr "Format datoteke nima podpore." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Ne morem zbrisati \"%s\": %s" + +#: lib/Driver.php:312 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "Ne morem naložiti definicije za %s." + +#: templates/task/task.inc:123 +msgid "Undo changes" +msgstr "Povrni Spremenjeno" + +#: templates/view/task.inc:26 templates/list/task_summaries.inc:40 +#: scripts/upgrades/2004-05-13_convert_categories_to_strings.php:50 +#: lib/Nag.php:791 lib/Nag.php:792 lib/Nag.php:806 lib/Nag.php:807 +#: lib/Block/summary.php:30 lib/Block/summary.php:179 +msgid "Unfiled" +msgstr "Neizpoljeno" + +#: lib/api.php:504 lib/api.php:561 lib/api.php:681 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Nepoznana oblika zapisa: %s" + +#: templates/task/task.inc:91 lib/Nag.php:424 +msgid "Week(s)" +msgstr "Teden(i)" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Kateremu seznamu opravil naj dodam opravilo?" + +#: templates/task/task.inc:60 +msgid "Year" +msgstr "Leto" + +#: data.php:39 data.php:146 task.php:31 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "Nimate pravice tvorjenja več kot %d opravil." + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Ni vam dovoljen vpogled v ta seznam opravil. " + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Izbrati morate seznam opravil, ki bo zbrisan." + +#: lib/Nag.php:572 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "" +"Zahtevali ste opozorilo kadar bo dodano novo opravilo. v vaÅ¡i spisek opravil." + +#: lib/Nag.php:582 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Zahtevali ste opozorilo kadar bo opravilo izbrisano iz vaÅ¡ega spiseka " +"opravil." + +#: lib/Nag.php:577 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Zahtevali ste opozorilo kadar bo opravilo urejeno v vaÅ¡i spisek opravil." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Va privzet seznam opravila:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Vai seznami opravil:" + +#: templates/list/task_summaries.inc:32 lib/Block/summary.php:86 +#: lib/Block/summary.php:169 +msgid "[none]" +msgstr "[nič]" + +#: list.php:87 +msgid "_All tasks" +msgstr "Vsa opravila" + +#: templates/search/search.inc:27 templates/task/task.inc:40 +msgid "_Category" +msgstr "Kategorija" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "Končaj" + +#: list.php:89 +msgid "_Completed tasks" +msgstr "Končna opravila" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "ZbriÅ¡i" + +#: templates/search/search.inc:26 templates/task/task.inc:114 +msgid "_Description" +msgstr "Opis" + +#: templates/list/task_headers.inc:62 +msgid "_Due Date" +msgstr "Končni Datum" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "Uredi" + +#: lib/Nag.php:496 +msgid "_Import/Export" +msgstr "Uvozi/Izvozi" + +#: lib/Nag.php:481 +msgid "_List Tasks" +msgstr "Prikaži Opravila" + +#: lib/Nag.php:491 +msgid "_My Tasklists" +msgstr "Moja Opravila" + +#: lib/Nag.php:486 +msgid "_New Task" +msgstr "Novo Opravilo" + +#: lib/Nag.php:501 +msgid "_Print" +msgstr "Natisni" + +#: templates/task/task.inc:96 +msgid "_Priority" +msgstr "Prioriteta" + +#: templates/task/task.inc:44 +msgid "_Private?" +msgstr "Zasebni?" + +#: lib/Nag.php:488 +msgid "_Search" +msgstr "Najdi" + +#: templates/task/task.inc:25 templates/list/task_headers.inc:47 +msgid "_Task List" +msgstr "Seznam Opravil" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "ni časa" + +#: data.php:94 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "opravila.csv" + +#: data.php:106 +msgid "tasks.ics" +msgstr "opravila.ics" diff --git a/nag/po/sv_SE.po b/nag/po/sv_SE.po new file mode 100644 index 000000000..7769161b0 --- /dev/null +++ b/nag/po/sv_SE.po @@ -0,0 +1,820 @@ +# Nag Swedish translation +# Copyright 2005 Andreas Dahlen. +# Andreas Dahlen , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2005-03-29 14:44+0200\n" +"PO-Revision-Date: 2005-03-30 15:32+0100\n" +"Last-Translator: Andreas Dahlén \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: lib/Nag.php:39 +#, php-format +msgid "%d hour" +msgstr "%d timmar" + +#: lib/Nag.php:41 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d timmar, %d minuter" + +#: lib/Nag.php:43 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d timmar, %d minuter" + +#: lib/Nag.php:31 +#, php-format +msgid "%d hours" +msgstr "%d timmar" + +#: lib/Nag.php:33 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d timmar, %d minuter" + +#: lib/Nag.php:35 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d timmar, %d minuter" + +#: lib/Nag.php:49 +#, php-format +msgid "%d minute" +msgstr "%d minuter" + +#: lib/Nag.php:51 +#, php-format +msgid "%d minutes" +msgstr "%d minuter" + +#: templates/list/header.inc:9 +#, php-format +msgid "%d tasks" +msgstr "%d uppgifter" + +#: lib/Nag.php:322 +#, php-format +msgid "%s at %s" +msgstr "%s på %s" + +#: lib/Nag.php:443 lib/Block/summary.php:97 +#, php-format +msgid "%s is due in %s" +msgstr "%s förfaller %s" + +#: lib/Nag.php:441 lib/Block/summary.php:95 +#, php-format +msgid "%s is due now." +msgstr "%s är förfallen." + +#: data.php:143 +#, php-format +msgid "%s successfully imported" +msgstr "%s importerades" + +#: tasklists.php:100 lib/base.php:100 +#, php-format +msgid "%s's Task List" +msgstr "%s's uppgifter" + +#: lib/Nag.php:280 +msgid "(highest)" +msgstr "(högst)" + +#: lib/Nag.php:280 +msgid "(lowest)" +msgstr "(lägst)" + +#: templates/list/header.inc:9 +msgid "1 task" +msgstr "1 uppgift" + +#: task.php:264 +#, php-format +msgid "Access denied completing task %s." +msgstr "Behörighet saknas att färdigställa uppgift %s." + +#: task.php:238 +#, php-format +msgid "Access denied deleting %s." +msgstr "Behörighet saknas att radera %s." + +#: task.php:204 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "Behörighet saknas att flytta uppgiften till %s." + +#: task.php:207 +#, php-format +msgid "Access denied removing task from %s." +msgstr "Behörighet saknas att radera uppgift från %s" + +#: task.php:133 +#, php-format +msgid "Access denied saving task to %s." +msgstr "Behörighet saknas att spara uppgift till %s." + +#: task.php:131 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Behörighet saknas att spara uppgift: %s." + +#: task.php:58 +msgid "Adding A New Task" +msgstr "Lägger till en uppgift" + +#: templates/task/task.inc:68 +msgid "Ala_rm" +msgstr "Ala_rm" + +#: templates/view/task.inc:35 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:107 +msgid "All tasks" +msgstr "Alla uppgifter" + +#: lib/Block/summary.php:56 +msgid "Always show completed tasks?" +msgstr "Alltid visa slutförda uppgifter?" + +#: lib/Block/summary.php:53 +msgid "Always show overdue tasks?" +msgstr "Alltid visa förfallna uppgifter?" + +#: config/prefs.php.dist:84 +msgid "Ascending" +msgstr "Stigande" + +#: templates/tasklists/tasklists.inc:102 +msgid "Back to Task List Options" +msgstr "Tillbaka till inställningar för uppgiftslista" + +#: data.php:28 +msgid "CSV" +msgstr "CSV" + +#: templates/task/task.inc:57 +msgid "Calendar" +msgstr "Kalender" + +#: templates/list/task_headers.inc:32 +msgid "Cat_egory" +msgstr "Kat_egori" + +#: data.php:42 templates/view/task.inc:27 config/prefs.php.dist:56 +#: config/prefs.php.dist:71 +msgid "Category" +msgstr "Kategori" + +#: templates/tasklists/tasklists.inc:22 +msgid "Change" +msgstr "Ändra" + +#: templates/list/task_headers.inc:4 templates/list/task_headers.inc:9 +#: templates/list/task_headers.inc:14 templates/list/task_headers.inc:21 +#: templates/list/task_headers.inc:27 templates/list/task_headers.inc:31 +msgid "Change sort direction" +msgstr "Ändra sorteringsriktning" + +#: config/prefs.php.dist:15 +msgid "Change your task sorting and display options." +msgstr "Ändra sorterings- och visningsinställningar för uppgifter" + +#: config/prefs.php.dist:22 +msgid "Choose your default task list." +msgstr "Välj din förvalda uppgiftslista." + +#: templates/search/search.inc:33 +msgid "Clear Form" +msgstr "Rensa formulär" + +#: templates/task/task.inc:89 +msgid "Co_mpleted?" +msgstr "Sl_utförd?" + +#: templates/view/task.inc:11 +msgid "Complete" +msgstr "Slutförd" + +#: templates/list/task_summaries.inc:4 lib/Block/summary.php:154 +msgid "Complete Task" +msgstr "Slutför uppgift" + +#: config/prefs.php.dist:109 +msgid "Complete tasks" +msgstr "Slutförda uppgifter" + +#: lib/Nag.php:337 lib/Block/summary.php:152 +msgid "Completed" +msgstr "Slutförd" + +#: task.php:273 +#, php-format +msgid "Completed %s." +msgstr "Slutförd %s." + +#: templates/view/task.inc:43 templates/list/task_headers.inc:5 +#: config/prefs.php.dist:58 config/prefs.php.dist:73 +msgid "Completed?" +msgstr "Slutförd?" + +#: data.php:45 +msgid "Completion Status" +msgstr "Slutfört status" + +#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:99 +#: templates/tasklists/tasklists.inc:101 +msgid "Create" +msgstr "Skapa" + +#: templates/view/task.inc:49 +msgid "Created" +msgstr "Skapad" + +#: templates/task/task.inc:77 lib/Nag.php:368 +msgid "Day(s)" +msgstr "Dag(ar)" + +#: config/prefs.php.dist:21 +msgid "Default Task List" +msgstr "Förvald uppgiftslista" + +#: templates/view/task.inc:16 templates/tasklists/tasklists.inc:100 +msgid "Delete" +msgstr "Radera" + +#: templates/task/task.inc:111 +msgid "Delete this task" +msgstr "Raderade uppgiften." + +#: task.php:246 +#, php-format +msgid "Deleted %s." +msgstr "Raderade %s." + +#: config/prefs.php.dist:85 +msgid "Descending" +msgstr "Fallande" + +#: data.php:41 +msgid "Description" +msgstr "Beskrivning" + +#: templates/tasklists/tasklists.inc:90 +msgid "Description:" +msgstr "Beskrivning:" + +#: config/prefs.php.dist:14 +msgid "Display Options" +msgstr "Visningsinställningar" + +#: data.php:43 templates/view/task.inc:31 +msgid "Due By" +msgstr "Förfallen den" + +#: config/prefs.php.dist:57 config/prefs.php.dist:72 +msgid "Due Date" +msgstr "Förfallodatum" + +#: templates/task/task.inc:43 +msgid "Due _By" +msgstr "Förfallen _den" + +#: templates/view/task.inc:13 +msgid "Edit" +msgstr "Ändra" + +#: templates/list/task_headers.inc:18 templates/list/task_summaries.inc:17 +#: lib/Block/summary.php:150 +msgid "Edit Task" +msgstr "Ändra uppgift" + +#: templates/list/task_headers.inc:37 +msgid "Edit categories and colors" +msgstr "Ändra kategorier och färger" + +#: templates/data/export.inc:22 +msgid "Export" +msgstr "Exportera" + +#: templates/data/export.inc:8 +msgid "Export Tasks" +msgstr "Exportera uppgifter" + +#: config/prefs.php.dist:33 +msgid "External Data" +msgstr "Extern data" + +#: config/prefs.php.dist:13 +msgid "General Options" +msgstr "Allmänna inställningar" + +#: templates/task/task.inc:76 lib/Nag.php:371 +msgid "Hour(s)" +msgstr "Timm/e/ar" + +#: templates/data/import.inc:9 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Importera uppgifter, steg %d" + +#: data.php:149 +msgid "Import/Export Tasks" +msgstr "Importera/Exportera uppgifter" + +#: list.php:77 +msgid "Incom_plete tasks" +msgstr "Ej slut_förda uppgifter" + +#: config/prefs.php.dist:108 +msgid "Incomplete tasks" +msgstr "Ej slutförda uppgifter" + +#: templates/view/task.inc:56 +msgid "Last Modified" +msgstr "Senast ändrad" + +#: templates/task/task.inc:75 lib/Nag.php:374 +msgid "Minute(s)" +msgstr "Minut(er)" + +#: task.php:115 +msgid "Modifying:" +msgstr "Ändrar:" + +#: lib/api.php:303 lib/api.php:486 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Flera iCaldener-delar hittades; enbart en vTodo stöds." + +#: list.php:40 +msgid "My Tasks" +msgstr "Mina uppgifter" + +#: templates/task/task.inc:12 templates/search/search.inc:21 +msgid "N_ame" +msgstr "N_amn" + +#: templates/list/task_headers.inc:22 +msgid "Na_me" +msgstr "Na_mn" + +#: data.php:40 +msgid "Name" +msgstr "Namn" + +#: lib/Block/summary.php:18 +msgid "New Task" +msgstr "Ny uppift" + +#: templates/data/import.inc:43 +msgid "Next" +msgstr "Nästa" + +#: templates/task/task.inc:46 +msgid "No due date." +msgstr "Inget förfallodatum." + +#: lib/api.php:296 lib/api.php:479 +msgid "No iCalendar data was found." +msgstr "iCalendar information saknas." + +#: lib/Nag.php:457 +msgid "No task lists are available to guests." +msgstr "Inga uppgifter tillgängliga för gäster." + +#: lib/Block/summary.php:198 +msgid "No tasks to display" +msgstr "Inga uppgifter att visa" + +#: templates/task/task.inc:71 lib/Nag.php:378 +msgid "None" +msgstr "Ingen" + +#: lib/Nag.php:338 +msgid "Not Completed" +msgstr "Ej Slutförda" + +#: config/prefs.php.dist:59 config/prefs.php.dist:74 +msgid "Owner" +msgstr "Ägare" + +#: templates/list/task_headers.inc:15 +msgid "P_ri" +msgstr "P_ri" + +#: templates/tasklists/tasklists.inc:87 +msgid "Permission" +msgstr "Behörighet" + +#: lib/api.php:275 lib/api.php:360 lib/api.php:431 lib/api.php:462 +msgid "Permission Denied" +msgstr "Behörighet nekades" + +#: ics.php:41 lib/api.php:91 +msgid "Permission denied" +msgstr "Behörighet nekades" + +#: data.php:44 templates/view/task.inc:39 config/prefs.php.dist:54 +#: config/prefs.php.dist:69 +msgid "Priority" +msgstr "Prioritet" + +#: templates/list/header.inc:5 templates/list/header.inc:6 +msgid "Refresh List" +msgstr "Uppdatera lista" + +#: templates/tasklists/tasklists.inc:101 +msgid "Reset" +msgstr "Återställ" + +#: templates/task/task.inc:103 +msgid "Save" +msgstr "Spara" + +#: task.php:221 +#, php-format +msgid "Saved %s." +msgstr "Sparade %s." + +#: search.php:14 templates/search/search.inc:5 templates/search/search.inc:32 +msgid "Search" +msgstr "Sök" + +#: list.php:63 +msgid "Search Results" +msgstr "Sökresultat" + +#: templates/search/search.inc:18 +msgid "Search Scope" +msgstr "Urval för sökning" + +#: templates/search/search.inc:10 +msgid "Search _Text" +msgstr "Sökt _text" + +#: templates/task/task.inc:57 +msgid "Select a date" +msgstr "Välj ett datum" + +#: templates/tasklists/tasklists.inc:72 +msgid "Select a task list" +msgstr "Välj en uppgiftslista" + +#: templates/data/export.inc:15 +msgid "Select the export format:" +msgstr "Välj exportformat:" + +#: templates/data/import.inc:40 +msgid "Select the file to import:" +msgstr "Välj fil som skall importeras:" + +#: templates/data/import.inc:16 +msgid "Select the format of the source file:" +msgstr "Välj format på importfilen:" + +#: config/prefs.php.dist:45 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Skall uppgiftslistan visas i en egen kolumn i listvyn?" + +#: templates/menu.inc:19 +msgid "Show" +msgstr "Visa" + +#: templates/menu.inc:8 +msgid "Show Tasklists:" +msgstr "Visa uppgiftslistor:" + +#: lib/Block/summary.php:38 +msgid "Show action buttons?" +msgstr "Visa aktivitetsknappar?" + +#: config/prefs.php.dist:110 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Visa slutförda, ej slutförda eller alla aktiviteter i aktivitetslistan?" + +#: config/prefs.php.dist:97 +msgid "Show data from any of these other applications in your task list?" +msgstr "Visa data från dessa program i din uppgiftslista?" + +#: config/prefs.php.dist:34 +msgid "Show data from other applications or sources." +msgstr "Visa data från andra program eller källor." + +#: lib/Block/summary.php:41 +msgid "Show due dates?" +msgstr "Visa förfallodatum?" + +#: lib/Block/summary.php:35 +msgid "Show priorities?" +msgstr "Visa prioritet?" + +#: lib/Block/summary.php:47 +msgid "Show task alarms?" +msgstr "Visa uppgiftsalarm?" + +#: lib/Block/summary.php:50 +msgid "Show task category?" +msgstr "Visa uppgiftskategori?" + +#: lib/Block/summary.php:44 +msgid "Show tasklist name?" +msgstr "Visa uppgiftslistans namn?" + +#: lib/Block/summary.php:59 +msgid "Show tasks from these categories" +msgstr "Visa uppgifter med dessa kategorier" + +#: templates/list/task_headers.inc:32 +msgid "Sort by Category" +msgstr "Sortera på kategori" + +#: templates/list/task_headers.inc:5 +msgid "Sort by Completion Status" +msgstr "Sortera på färdigstatus" + +#: templates/list/task_headers.inc:28 +msgid "Sort by Due Date" +msgstr "Sortera på förfallodatum" + +#: templates/list/task_headers.inc:22 +msgid "Sort by Name" +msgstr "Sortera på namn" + +#: templates/list/task_headers.inc:15 +msgid "Sort by Priority" +msgstr "Sortera på prioritet" + +#: templates/list/task_headers.inc:10 +msgid "Sort by User Name" +msgstr "Sortera på användarnamn" + +#: config/prefs.php.dist:86 +msgid "Sort direction:" +msgstr "Sorteringsriktning:" + +#: config/prefs.php.dist:60 +msgid "Sort tasks by:" +msgstr "Sortera uppgifter på:" + +#: templates/list/task_summaries.inc:24 +msgid "Task Alarm" +msgstr "Uppgiftsalarm" + +#: templates/list/task_headers.inc:25 +msgid "Task Alarm?" +msgstr "Uppgiftsalarm?" + +#: view.php:74 +msgid "Task Details" +msgstr "Uppgiftsdetaljer" + +#: templates/tasklists/tasklists.inc:66 +msgid "Task List" +msgstr "Uppgiftslista" + +#: config/prefs.php.dist:20 config/prefs.php.dist:32 +msgid "Task List and Share Options" +msgstr "Inställningar för uppgiftslista och utdelning" + +#: templates/tasklists/tasklists.inc:84 +msgid "Task List's name:" +msgstr "Uppgiftslistenamn:" + +#: tasklists.php:111 +msgid "Task Lists" +msgstr "Uppgiftslista" + +#: config/prefs.php.dist:55 config/prefs.php.dist:70 +msgid "Task Name" +msgstr "Uppgiftsnamn" + +#: templates/list/task_summaries.inc:22 +msgid "Task Note" +msgstr "Uppgiftsanteckning" + +#: templates/list/task_headers.inc:24 +msgid "Task Note?" +msgstr "Uppgiftsanteckning?" + +#: tasklists.php:28 +msgid "Task lists must have a name." +msgstr "Uppgiftslistan måste ha ett namn." + +#: task.php:117 view.php:43 +msgid "Task not found." +msgstr "Uppgift saknas." + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Sammanställning över uppgifter" + +#: task.php:166 +msgid "The alarm field may only contain integers." +msgstr "Alarmfältet får enbart innehålla heltal." + +#: tasklists.php:45 +#, php-format +msgid "The task list \"%s\" couldn't be created: %s" +msgstr "Uppgiftslista '%s' kunde inte skapas: %s" + +#: tasklists.php:56 +#, php-format +msgid "The task list \"%s\" couldn't be saved: %s" +msgstr "Uppgiftslista '%s' kunde inte sparas: %s" + +#: tasklists.php:47 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "Uppgiftslistan '%s' skapades." + +#: tasklists.php:81 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "Uppgiftslistan '%s' raderades." + +#: tasklists.php:58 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "Uppgiftslistan '%s' sparades." + +#: config/prefs.php.dist:75 +msgid "Then:" +msgstr "" + +#: templates/list/empty.inc:3 +msgid "There are no tasks matching the current criteria." +msgstr "Inga uppgifter matchar aktuellt urval." + +#: task.php:270 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "Problem vid slutförande av '%s': %s" + +#: task.php:243 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "Problem vid radering av '%s': %s" + +#: task.php:219 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Problem vid sparande av uppgiften: %s." + +#: data.php:140 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Det uppstod fel vid import av data: %s." + +#: lib/api.php:290 lib/api.php:473 +msgid "There was an error importing the iCalendar data." +msgstr "Fel vid import av iCalendar data." + +#: data.php:67 +msgid "There were no tasks to export." +msgstr "Inga uppgifter att exportera." + +#: data.php:106 +msgid "This file format is not supported." +msgstr "Filformatet stöds inte." + +#: tasklists.php:77 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "Kan inte radera '%s': %s" + +#: templates/task/task.inc:104 +msgid "Undo changes" +msgstr "Ångra ändringar" + +#: templates/view/task.inc:28 templates/list/task_summaries.inc:29 +#: scripts/upgrades/2004-05-13_convert_categories_to_strings.php:50 +#: lib/Block/summary.php:32 lib/Block/summary.php:191 +msgid "Unfiled" +msgstr "Ej kategoriserad" + +#: lib/api.php:322 lib/api.php:395 lib/api.php:506 +msgid "Unsupported Content-Type." +msgstr "Content-Type stöds inte." + +#: templates/list/task_summaries.inc:21 +msgid "View Task Details" +msgstr "Visa uppgiftsdetaljer" + +#: templates/task/task.inc:78 lib/Nag.php:365 +msgid "Week(s)" +msgstr "Veck/a/or" + +#: templates/data/import.inc:24 +msgid "Which tasklist should the tasks be added to?" +msgstr "Till vilken uppgiftslista skall uppgifter läggas till?" + +#: view.php:51 +msgid "You do not have permission to view this tasklist." +msgstr "Du har inte behörig att visa aktuell uppgiftslista." + +#: tasklists.php:84 templates/tasklists/tasklists.inc:48 +msgid "You must select a task list to be deleted." +msgstr "Du måste ange en uppgiftslista som skall raderas." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Din förvalda uppgiftslista:" + +#: templates/tasklists/tasklists.inc:70 +msgid "Your task lists:" +msgstr "Dina uppgiftslistor:" + +#: templates/list/task_summaries.inc:21 lib/Block/summary.php:93 +#: lib/Block/summary.php:177 +msgid "[none]" +msgstr "[ingen]" + +#: list.php:76 +msgid "_All tasks" +msgstr "_Alla uppgifter" + +#: templates/task/task.inc:39 templates/search/search.inc:23 +msgid "_Category" +msgstr "_Kategori" + +#: templates/view/task.inc:11 +msgid "_Complete" +msgstr "_Slutför" + +#: list.php:78 +msgid "_Completed tasks" +msgstr "_Slutförda uppgifter" + +#: templates/view/task.inc:16 +msgid "_Delete" +msgstr "_Radera" + +#: templates/task/task.inc:95 templates/search/search.inc:22 +msgid "_Description" +msgstr "_Beskrivning" + +#: templates/list/task_headers.inc:28 +msgid "_Due Date" +msgstr "_Förfallodatum" + +#: templates/view/task.inc:13 +msgid "_Edit" +msgstr "_Ändra" + +#: lib/Nag.php:407 +msgid "_Import/Export" +msgstr "_Importera/Exportera" + +#: lib/Nag.php:395 +msgid "_List Tasks" +msgstr "_Lista uppgifter" + +#: lib/Nag.php:402 +msgid "_My Tasklists" +msgstr "_Min Uppgiftslista" + +#: lib/Nag.php:397 +msgid "_New Task" +msgstr "_Ny uppift" + +#: lib/Nag.php:412 +msgid "_Print" +msgstr "_Skriv ut" + +#: templates/task/task.inc:83 +msgid "_Priority" +msgstr "_Prioritet" + +#: lib/Nag.php:399 +msgid "_Search" +msgstr "_Sök" + +#: templates/task/task.inc:20 templates/list/task_headers.inc:10 +msgid "_Task List" +msgstr "_Uppgiftslista" + +#: data.php:29 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Nag.php:47 +msgid "no time" +msgstr "ingen tid" + +#: data.php:79 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "uppgifter.csv" + +#: data.php:91 +msgid "tasks.ics" +msgstr "uppgifter.ics" diff --git a/nag/po/tr_TR.po b/nag/po/tr_TR.po new file mode 100644 index 000000000..84428099e --- /dev/null +++ b/nag/po/tr_TR.po @@ -0,0 +1,1212 @@ +# Turkish translations for Nag package +# Görevler paketi için Türkçe çeviriler. +# Copyright 2008-2009 The Horde Project +# This file is distributed under the same license as the Nag package. +# horde-tr team , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag H3 (2.2-RC2)\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-04-15 12:57+0300\n" +"PO-Revision-Date: 2008-02-13 19:04+0200\n" +"Last-Translator: Onur Kosar \n" +"Language-Team: Turkish \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" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr "(%s alt görevleri içeriyor)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d saat" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d saat, %d dakika" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d saat, %d dakika" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d saat" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d saat, %d dakika" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d saat, %d dakika" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d dakika" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d dakika" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s de %s" + +#: lib/Nag.php:590 lib/Block/summary.php:106 lib/Block/tree_alarms.php:41 +#, php-format +msgid "%s is due in %s" +msgstr "%s için son tarih %s" + +#: lib/Nag.php:588 lib/Block/summary.php:104 lib/Block/tree_alarms.php:43 +#, php-format +msgid "%s is due now." +msgstr "%s þu ana kadar" + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s tamamlanmadi" + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s baþarý ile alýndý" + +#: lib/Nag.php:516 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "%s Görev Listesi" + +#: lib/Nag.php:315 lib/Forms/task.php:58 +msgid "(highest)" +msgstr "En yüksek" + +#: lib/Nag.php:315 lib/Forms/task.php:59 +msgid "(lowest)" +msgstr "En düþük" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "görevin tamamlanmasýna izin verilmedi %s" + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "Silme izini verilmedi. %s" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "Düzenleme izni verilmedi." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "Düzenleme izni verilmedi %s" + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "'a görevin taþýnmasýna izin verilmedi %s." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "%s 'dan görevin kaldýrýlmasýna izin verilmedi ." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "%s'a görevin kaydedilmesine izin verilmedi ." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "%s'a görevin kaydedilmesine izin verilmedi ." + +#: templates/view/task.inc:26 lib/Forms/task.php:88 +msgid "Alarm" +msgstr "Alarm" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "Tüm görevler" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "Herzaman biten görevleri göster" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "Herzaman günü geçmiþ görevler" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "Artan" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "Blok baþlýðý" + +#: data.php:30 +msgid "CSV" +msgstr "Virgül ile ayrýlmýþ veri(CSV)" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "Takvim" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "Ýptal" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "Sý_nýf" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:76 +#: lib/Forms/task.php:82 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "Sýnýf" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +msgid "Change Permissions" +msgstr "Ýzinleri deðiþtir" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Görev sýralama ve görüntüleme seçeneklerinizi deðiþtirin." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "Görevlerde alarm uyarýlarýnýn nasýl yapýlacaðýný seçiniz:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "" +"E-posta aracýlýðý ile yeni, düzenlenmiþ veya silinmiþ takvimlerden haberdar " +"edilmek için seçiniz." + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "" +"Yeni, düzenlenmiþ veya silinmiþ etkliklerden haberdar edilmek için seçiniz." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "Varsayýlan görev listenizi seçiniz." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "" +"Bu görev listesini görüntülemek için týklayýnýz ya da bu URL'i kopyalayýnýz" + +#: templates/panel.inc:43 +msgid "Close" +msgstr "Kapat" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Aramayý Kapat" + +#: view.php:99 +msgid "Complete" +msgstr "Tamamlandý" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:175 +#, php-format +msgid "Complete \"%s\"" +msgstr "Tamamlandý \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "Görevi tamamla" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "Görevi tamamla" + +#: lib/Nag.php:379 lib/Block/summary.php:173 +msgid "Completed" +msgstr "Tamamlandý" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "Tamamlandý %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "Tamamlanmýþ Görevler" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "Tamamlanmýþ üst görev, önce tamamlanmamýþ olarak iþaretleyin" + +#: templates/list/task_headers.inc:31 templates/view/task.inc:38 +#: lib/Forms/task.php:94 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "Tamamlandý?" + +#: data.php:58 +msgid "Completion Status" +msgstr "Tamamlanma Durumu" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "Baðlantý baþarýsýz: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "Oluþtur" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "Görev Listesi oluþtur" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "Yeni bir Görev Listesi oluþtur" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "Oluþturuldu" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "Gün" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "Gün(ler)" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "Ön Tanýmlý görev Listesi" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "Yeni görevler için öntanýmlý deðerler" + +#: lib/Forms/task.php:87 +msgid "Delay Start Until" +msgstr "Baþlangýcý Ertele" + +#: view.php:106 tasklists/index.php:57 templates/tasklist_list.php:37 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "Sil" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "Sil %s" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "Silme Onayý" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "Silme tuþu davranýþý." + +#: task.php:105 lib/Forms/task.php:99 +msgid "Delete this task" +msgstr "Bu görevi sil" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "Silindi %s." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "Azalan" + +#: data.php:53 lib/Forms/EditTaskList.php:44 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/task.php:95 +msgid "Description" +msgstr "Açýklama" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Görüntüleme Seçenekleri" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "URL'i Göster" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "Silinecekleri onaylamak istiyor musunuz?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:86 +msgid "Due By" +msgstr "Son Tarih" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "Son Tarih" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "Son tarih belirtilmedi." + +#: view.php:102 tasklists/index.php:55 templates/tasklist_list.php:33 +msgid "Edit" +msgstr "Düzenle" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, php-format +msgid "Edit \"%s\"" +msgstr "Düzenle \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "Düzenle %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "%s Görevi Düzenle" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "Sýnýf ve renkleri düzenle" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "Düzenle: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "Görev silinirken hata oluþtu: %s" + +#: templates/view/task.inc:34 lib/Forms/task.php:93 +msgid "Estimated Time" +msgstr "Hesaplanan süre" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "Dýþarý Aktar" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "Görevleri Dýþarý Aktar" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "Dýþ Veri" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "Genel Seçenekler" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "Saat" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "Saat" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "Görevleri içeri Aktar, Adým %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "Görevleri Ýçeri/Dýþarý Aktar" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "Ta_mamlanmamýþ görevler" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "Tamamlanmamýþ Görevler" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "Tamamlanmamýþ alt görevler, önce onlarý tamamlayýnýz" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "Tamamlanmamýþ görevler" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "Son Güncelleme" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "Görev listesini yönet" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "\"%s\" 'ý tamamlanmamýþ olarak iþaretle" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "Tamamlanmamýþ olarak iþaretle" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "En Fazla Görev Sayýsý" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "Menü Alarmlarý" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "Menü Listesi" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "Dakika" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "Dakika" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "Ay" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "Daha Fazla Seçenek..." + +#: lib/api.php:1001 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "Birçok iCalendar bileþeni bulundu; sadece bir vTodo destekleniyor." + +#: templates/panel.inc:70 +msgid "My Task Lists:" +msgstr "Görev Listelerim" + +#: list.php:34 +msgid "My Tasks" +msgstr "Görevlerim" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "_Ad" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "_Ad" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab:%s görevi bulunamadý" + +#: data.php:52 lib/Forms/EditTaskList.php:43 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/task.php:65 +msgid "Name" +msgstr "Ad" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "Yeni Görev" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "Sonraki" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "Hayýr" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "Gecikme yok" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "Son tarih yok" + +#: lib/api.php:405 lib/api.php:724 lib/api.php:782 lib/api.php:994 +msgid "No iCalendar data was found." +msgstr "Hiç iCalendar verisi bulunamadý." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "Ana görev yok" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "Konuklar için Görev Listesi bulunamadý." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "Hiç uyan görev yok" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "Görüntülenecek görev yok" + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "Hiçbiri" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "Tamamlanmadý" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "Özel Deðil" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "Bulunamadý" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "Bildirimler" + +#: config/prefs.php.dist:168 +msgid "On all shown tasklists" +msgstr "Gösterilen tüm görev listelerinde" + +#: config/prefs.php.dist:169 +msgid "On all tasklists I have read access to" +msgstr "Tüm görev listelerinde okuma hakkýna sahibim" + +#: config/prefs.php.dist:167 +msgid "On my tasklists only" +msgstr "Sadece benim görev listelerimde" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "Ö_ncelik" + +#: lib/Forms/task.php:72 +msgid "Parent task" +msgstr "Ana Görev" + +#: lib/api.php:591 lib/api.php:629 lib/api.php:662 lib/api.php:698 +#: lib/api.php:820 lib/api.php:875 lib/api.php:939 lib/api.php:976 +#: lib/api.php:1087 lib/api.php:1134 +msgid "Permission Denied" +msgstr "Eriþim Engellendi" + +#: lib/api.php:178 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "Eriþim engellendi" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:90 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Öncelik" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "Kiþisel" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "Kiþisel Görev" + +#: templates/view/task.inc:12 lib/Forms/task.php:85 +msgid "Private?" +msgstr "Kiþisel?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"\"%s\" adlý görev listesi gerçekten silinsin mi? Bu iþlem geri " +"çevrilemez. Bu görev listesindeki veriler kalýcý olarak silinecek" + +#: view.php:106 +msgid "Really delete this task?" +msgstr "Bu görev gerçekten silinsin mi?" + +#: templates/panel.inc:88 lib/Forms/EditTaskList.php:46 lib/Forms/task.php:97 +msgid "Save" +msgstr "Kaydet" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "%s kaydedildi." + +#: search.php:14 templates/list/header.inc:4 templates/search/search.inc:31 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "Arama" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "içinde ara" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "Aranacak _kelime" + +#: templates/panel.inc:58 +msgid "Search for Task Lists:" +msgstr "Görev Listesinde Ara:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "Ara" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "Arama: \"%s\" için arama sonuçlarý" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "Bir tarih Seçin" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "Dýþarý taþýma biçimini seçin:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "Ýçeri taþýnacak dosyayý seçin:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "Kaynak dosyanýn biçimini seçin:" + +#: templates/panel.inc:79 +msgid "Shared Task Lists:" +msgstr "Paylaþýmlý Görev Listesi" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "Liste görüntüsünde, Görev Listesi kendi kolonunda görünsün mü? " + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Eylem tuþlarý gösterilsin mi?" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "" +"Tamamlanmýþ, tamamlanmamýþ veya tüm görevler görev listesinde gösterilsin mi?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Diðer uygulamalardaki veriler de görev listesinde gösterilsin mi?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Diðer uygulamalardaki veri ve kaynaklar gösterilsin mi?" + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Görevlerin bitiþ tarihleri gösterilsin mi?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Öncelikler gösterilsin mi?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Görev alarmlarý gösterilsin mi?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "Görev Kategori açýklamasý gösterilsin mi?" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Görev Listesi seçenek paneli gösterilsin mi?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Görev Listesi adý gösterilsin mi?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Bu kategorilerdeki görevleri göster" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Bu görev listelerindeki görevleri göster" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "Kategoriye Göre Sýrala" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "Tamamlanma durumlarýna göre sýrala" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "Bitiþ Tarihine Göre Sýrala" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "Ada Göre Sýrala" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "Önceliðe göre sýrala" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "Kullanýcý adýna göre Sýrala" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "Sýralama Yönü" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "ile görevleri sýrala" + +#: data.php:56 +msgid "Start" +msgstr "Baþlat" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "Baþlama Tarihi" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "Baþlama tarihi belirtildi." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "Abonelik URL'si" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "Görev Alarm'ý" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "Görev Alarm'ý?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "Varsayýlan Görev Özellikleri" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:68 +msgid "Task List" +msgstr "Görev listesi" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "Görev Listesi Bilgileri" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "Görev Listesi Listesi" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "Görev Listesi ve Paylaþým Seçenekleri" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "Görev Listesi %s. tarafýndan oluþturuldu" + +#: templates/panel.inc:52 templates/panel.inc:53 +msgid "Task Lists" +msgstr "Görev Listeleri" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "Görev Adý" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "Görev Notu" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "Görev Notu?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "Görev Arama" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "Görev eklendi:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "Silinen görev:" + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "Güncellenen görev:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "Görev bulunamadý." + +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Tasklist" +msgstr "Görev Listesi" + +#: lib/api.php:1056 +msgid "Tasks" +msgstr "Görevler" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "Görev Özeti" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "Bu %s dosyasý hiçbir görev içermiyor." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "Görevlerin arka araçlarý þu anda kullanýlabilir deðil." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "Görevlerin arka aracý þu anda kullanýlabilir deðil: %s" + +#: lib/Forms/task.php:133 +msgid "The alarm value must not be empty." +msgstr "Alarm içeriði boþ olmamalý." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "Þuanki saat" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "\"%s\" görevi, \"%s\" görev listesine eklendi. son tarih: %s. " + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr " \"%s\" görevi, \"%s\" görev listesinden silindi. son tarih: %s." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "\"%s\" görevi, \"%s\" görev listesinde düzenlendi. son tarih: %s." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "\"%s\" görev listesi yaratýldý." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "\"%s\" görev listesi silindi." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "\"%s\" görev listesi , \"%s\" olarak yeniden adlandýrýldý." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "\"%s\" görev listesi kaydedildi." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "Sonra:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "Geçerli ölçütlere uyan bir görev bulunamadý." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "\"%s\" güncellenirken hata oluþtu: %s" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "\"%s\" silinirken hata olu?tu: %s" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Görev saklanýrken hata oluþtu: %s" + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "Veri aktarýlýrken hata oluþtu: %s" + +#: lib/api.php:397 lib/api.php:716 lib/api.php:988 +msgid "There was an error importing the iCalendar data." +msgstr "iCalendar verisini içeri aktarýlýrken hata oluþtu." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "Dýþarý aktarýlacak bir etkinlik bulunamadý." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "Bu dosya biçimi desteklenmiyor." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "\"%s\" görev listesi silinemiyor." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "" +"Bu görev listesine baþka bir uygulamadan üye olmak için; bu URL'i kullanýnýz" + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "\"%s\" silinemedi: %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "%s in tanýmý yüklenemedi." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "\"%s\" görev listesi kaydedilemedi: %s" + +#: templates/list/task_summaries.inc:62 templates/view/task.inc:9 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Block/summary.php:31 lib/Block/summary.php:222 lib/Forms/task.php:81 +msgid "Unfiled" +msgstr "Doldurulmamýþ" + +#: lib/api.php:502 lib/api.php:789 lib/api.php:847 lib/api.php:901 +#: lib/api.php:1026 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "Desteklenmeyen Ýçerik Türü: %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"Bu not edilen görevi size hatýrlatmak istiyoruz\n" +"%s\n" +"\n" +"Tarih: %s\n" +"Zaman: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "Hafta(lar)" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "Görevlerin varsayýlan bitiþ zamanýnýn ne olmasýný istersiniz? " + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "" +"Yeni bir görev oluþturulurken, kaç gün için varsayýlan tarih atanmalý (0 " +"bugün demek)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "" +"Yeni bir görev oluþtururken, öntanýmlý bir son tarihi olmasý zorunlu mu?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "Görevler hangi görev listesine eklensin?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "Yýl" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "Bu görev listesini deðiþtirme izniniz yok." + +#: data.php:41 data.php:151 task.php:61 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "%d den fazla sayýda görev oluþturmanýza izin verilmiyor." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "Bu görev listesini silme izniniz yok." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "Bu görev listesini görüntülemeye izniniz yok." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "Görev listenize etkinlik eklenince bildirimde bulunulmasýný istediniz." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "" +"Görev listenizden etkinlik silinince bildirimde bulunulmasýný istediniz." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "" +"Görev listenizde bir etkinlik düzenlenince bildirimde bulunulmasýný " +"istediniz." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "Varsayýlan görev listeniz:" + +#: templates/panel.inc:65 +msgid "[Manage Task Lists]" +msgstr "[Görev Listesini Yönet]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +msgid "[none]" +msgstr "Hiçbiri" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "_Tüm Görevler" + +#: list.php:111 +msgid "_All tasks" +msgstr "_Tüm Görevler" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "Sýný_f" + +#: view.php:99 +msgid "_Complete" +msgstr "_Tamamlandý" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "_Tamamlanmýþ görevler" + +#: view.php:106 +msgid "_Delete" +msgstr "_Sil" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "Açýklama" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "_Son Tarih" + +#: view.php:102 +msgid "_Edit" +msgstr "_Düzenle" + +#: list.php:113 +msgid "_Future tasks" +msgstr "_Gelecek tarihli görevler" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "Ýçeri/_Dýþarý Aktar" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "Görevleri _Listele" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "_Yeni Görev" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "Yaz_dýr" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "_Arama" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "_Görev listesi" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "öö" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "Takvim" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "%s içinde" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "zaman yok" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "ös" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "görevler.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "görevler.ics" diff --git a/nag/po/zh_CN.po b/nag/po/zh_CN.po new file mode 100644 index 000000000..b8c558d85 --- /dev/null +++ b/nag/po/zh_CN.po @@ -0,0 +1,322 @@ +# NAG Simplified Chinese Translation +# Copyright 2002 Peter Wang +# Peter Wang , 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.0-cvs\n" +"POT-Creation-Date: 2002-05-30 16:34+0800\n" +"PO-Revision-Date: 2002-05-30 16:34+0800\n" +"Last-Translator: Peter Wang \n" +"Language-Team: Simplified Chinese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=GB2312\n" +"Content-Transfer-Encoding: 8-bit\n" + +#, c-format +msgid "%d tasks" +msgstr "%d ¸ö´ý°ìÊÂÏî" + +msgid "1 task" +msgstr "1 ¸ö´ý°ìÊÂÏî" + +msgid "Adding A New Task" +msgstr "ÐÂÔö´ý°ìÊÂÏîÖÐ" + +msgid "Are you sure you want to permanently delete these tasks?" +msgstr "ÄãÈ·¶¨ÒªÓÀÔ¶µÄɾ³ýÕâЩ´ý°ìÊÂÏî?" + +msgid "Ascending" +msgstr "ÉýÃÝ" + +msgid "Back to Task List" +msgstr "·µ»Ø´ý°ìÊÂÏîÇåµ¥" + +msgid "Category" +msgstr "Àà±ð" + +msgid "Change your task sorting and display options." +msgstr "¸Ä±äÄãµÄ´ý°ìÊÂÏîÅÅÐò·½Ê½ÒÔ¼°ÏÔʾѡÏî." + +#, c-format +msgid "Changed %d tasks to priority %d." +msgstr "ÒѸıä %d ¸ö´ý°ìÊÂÏîµÄÓÅÏÈȨΪ %d." + +#, c-format +msgid "Changed 1 task to priority %d." +msgstr "ÒѸıä 1 ¸ö´ý°ìÊÂÏîµÄÓÅÏÈȨΪ %d." + +msgid "Choose Action:" +msgstr "Ñ¡Ôñ²Ù×÷:" + +msgid "Clear Form" +msgstr "Çå³ý±íµ¥" + +msgid "Complete Task" +msgstr "Íê³É´ý°ìÊÂÏî" + +msgid "Complete Tasks" +msgstr "Íê³É´ý°ìÊÂÏî" + +msgid "Completed?" +msgstr "Íê³É?" + +msgid "Completion Status" +msgstr "Íê³É״̬" + +msgid "Default sorting criteria:" +msgstr "ĬÈÏÅÅÐò±ê×¼:" + +msgid "Default sorting direction:" +msgstr "ĬÈÏÅÅÐò·½Ïò:" + +msgid "Delete Task" +msgstr "ɾ³ý´ý°ìÊÂÏî" + +msgid "Delete Tasks" +msgstr "ɾ³ý´ý°ìÊÂÏî" + +#, c-format +msgid "Deleted %d tasks." +msgstr "%d ¸ö´ý°ìÊÂÏîÒÑɾ³ý." + +msgid "Deleted 1 task." +msgstr "ÒÑɾ³ý 1 ¸ö´ý°ìÊÂÏî." + +msgid "Descending" +msgstr "½µÐò" + +msgid "Description" +msgstr "ÃèÊö" + +msgid "Display Options" +msgstr "ÏÔʾѡÏî" + +msgid "Due By" +msgstr "µ½ÆÚʱ¼ä" + +msgid "Due Date" +msgstr "ÓÐЧÆÚ" + +msgid "Help" +msgstr "°ïÖú" + +msgid "Language" +msgstr "ÓïÑÔ" + +msgid "List Tasks" +msgstr "Áгö´ý°ìÊÂÏî" + +#, c-format +msgid "Marked %d tasks as completed." +msgstr "Òѱä¸ü %d ¸ö´ý°ìÊÂÏîµÄÍê³É״̬Ϊ." + +msgid "Marked 1 task as completed." +msgstr "Òѱä¸ü 1 ¸ö´ý°ìÊÂÏîµÄÍê³É״̬." + +msgid "Modify Task" +msgstr "Ð޸Ĵý°ìÊÂÏî" + +msgid "Modifying:" +msgstr "ÐÞ¸ÄÖÐ:" + +msgid "Nag is not properly configured" +msgstr "Nag ÉÐδÍê³ÉÉ趨." + +msgid "Name" +msgstr "Ãû³Æ" + +msgid "New Task" +msgstr "ÐÂÔö´ý°ìÊÂÏî" + +msgid "No configuration information specified for SQL Tasks." +msgstr "ûÓдý°ìÊÂÏî(SQLÐÍ̬)µÄÉ趨×ÊѶ." + +msgid "No due date." +msgstr "ÓÀÔ¶." + +msgid "No tasks were changed." +msgstr "ûÓдý°ìÊÂÏî±»ÐÞ¸Ä." + +msgid "No tasks were deleted." +msgstr "ûÓдý°ìÊÂÏɾ³ý." + +msgid "No" +msgstr "ÎÞ" + +msgid "None specified" +msgstr "δָ¶¨" + +msgid "Options" +msgstr "Ñ¡Ïî" + +msgid "Other Options" +msgstr "ÆäËûÑ¡Ïî" + +msgid "Please enter the task priority (1-5):" +msgstr "ÇëÊäÈë´ý°ìÊÂÏîµÄÓÅÏÈȨ(1-5):" + +msgid "Pri" +msgstr "ÓÅÏÈ" + +msgid "Priorities must be between 1 and 5. Please enter a valid priority:" +msgstr "ÓÅÏÈȨ±ØÐë½éì¶ 1 µ½ 5 .ÇëÖØÐÂÊäÈë:" + +msgid "Priority" +msgstr "ÓÅÏÈȨ" + +msgid "Problem?" +msgstr "ÎÊÌâ?" + +msgid "Refresh List" +msgstr "ÖØÐÂÕûÀíÇåµ¥" + +msgid "Required 'database' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'database'É趨×ÊÁÏ." + +msgid "Required 'hostspec' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'hostspec'É趨×ÊÁÏ." + +msgid "Required 'password' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'password'É趨×ÊÁÏ." + +msgid "Required 'phptype' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'phptype'É趨×ÊÁÏ." + +msgid "Required 'table' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'table'É趨×ÊÁÏ." + +msgid "Required 'username' not specified in tasks configuration." +msgstr "´ý°ìÊÂÏîÉ趨×ÊÁÏÖÐ,ÕÒ²»µ½¹Øì¶ 'username'É趨×ÊÁÏ." + +msgid "Save Task" +msgstr "´¢´æ´ý°ìÊÂÏî" + +msgid "Search Results" +msgstr "ËÑѰ½á¹û" + +msgid "Search Scope" +msgstr "ËÑѰ·¶Î§" + +msgid "Search Text" +msgstr "ËÑѰ±¾ÎÄ" + +msgid "Search" +msgstr "ËÑѰ" + +msgid "Select your preferred language:" +msgstr "Ñ¡ÔñÆ«ºÃÓïÑÔ:" + +msgid "Selected?" +msgstr "ÒÑÑ¡Ôñ?" + +msgid "Set Task Priority" +msgstr "É趨´ý°ìÊÂÏîµÄÓÅÏÈȨ" + +msgid "Set the your preferred display language." +msgstr " É趨ÏÔʾƫºÃÓïϵ." + +msgid "Show completed tasks in the task list?" +msgstr "ÏÔʾÒÑÍê³ÉÊÂÏîì¶Çåµ¥ÖÐ?" + +msgid "Some of Nag's configuration files are missing:" +msgstr "²¿·ÖµÄ NAG É趨µµ°¸ÒÅʧ:" + +msgid "Sort Direction" +msgstr "ÅÅÐò·½Ïò" + +msgid "Sort by Category" +msgstr "ÒÔÀà±ðÅÅÐò" + +msgid "Sort by Completion Status" +msgstr "ÒÀÍê³É״̬ÅÅÐò" + +msgid "Sort by Due Date" +msgstr "ÒÀÓÐЧÆÚÅÅÐò" + +msgid "Sort by Name" +msgstr "ÒÔÃû³ÆÅÅÐò" + +msgid "Sort by Priority" +msgstr "ÒÔÓÅÏÈȨÅÅÐò" + +msgid "Task Details" +msgstr "´ý°ìÊÂÏîϸ½Ú" + +msgid "Task List" +msgstr "ÏÔʾ´ý°ìÊÂÏî" + +msgid "Task Name" +msgstr "´ý°ìÊÂÏîÃû³Æ" + +msgid "Task Note" +msgstr "´ý°ìÊÂÏע" + +msgid "Task Note?" +msgstr "´ý°ìÊÂÏî×¢½â?" + +msgid "The requested task does not exist." +msgstr "ÐëÒªµÄ´ý°ìÊÂÏî²¢²»´æÔÚ." + +msgid "The task was saved." +msgstr "´ËÊÂÏîÒÑ´¢´æ." + +msgid "There was a problem deleting tasks." +msgstr "ɾ³ý´ý°ìÊÂÏîʱ·¢Éú´íÎó." + +msgid "There was a problem saving the task." +msgstr "´¢´æ´ý°ìÊÂÏîʱ·¢Éú´íÎó." + +msgid "There was a problem setting task completion status." +msgstr "É趨´ý°ìÊÂÏîÍê³É״̬ʱ·¢ÉúһЩÎÊÌâ." + +msgid "There was a problem setting task priority." +msgstr "É趨´ý°ìÊÂÏîÓÅÏÈȨʱ·¢ÉúһЩÎÊÌâ." + +msgid "This file contains preferences for Nag." +msgstr "Õâ¸öµµ°¸°üº¬´ý°ìÊÂÏîµÄһЩƫºÃÉ趨×ÊÁÏ." + +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 is the main Nag configuration file. It contains options for all Nag " +"scripts." +msgstr "ÕâÊÇ NAG µÄÖ÷ÒªÉ趨µµ.²¢°üº¬Æä³ÌʽËùÐèµÄ·¾¶ÓëÑ¡Ïî." + +msgid "Undo Changes" +msgstr "»Ö¸´±ä¸ü" + +msgid "Unfiled" +msgstr "δ¹éµµ" + +msgid "Unknown task" +msgstr "δ֪µÄ´ý°ìÊÂÏî" + +msgid "Unknown" +msgstr "δ֪" + +msgid "User Options" +msgstr "Óû§Ñ¡Ïî" + +msgid "View Task Details" +msgstr "¼ìÊÓ´ý°ìÊÂÏîϸ½Ú" + +msgid "Yes" +msgstr "ÊÇ" + +msgid "You must select at least one task first." +msgstr "Äã±ØÐëÑ¡ÔñÖÁÉÙÒ»¸ö´ý°ìÊÂÏî." + +msgid "Your Information" +msgstr "ÄãµÄ¸öÈË×ÊÁÏ" + +msgid "Your task list is empty." +msgstr "ÄãµÄ´ý°ìÊÂÏîÇåµ¥¿Õ°×." + +msgid "at" +msgstr "ÔÚ" diff --git a/nag/po/zh_TW.po b/nag/po/zh_TW.po new file mode 100644 index 000000000..cc16134d2 --- /dev/null +++ b/nag/po/zh_TW.po @@ -0,0 +1,1200 @@ +# NAG Traditional Chinese Translation +# Copyright 2001 David Chang. ±i¨}¤å,¥xÆW +# David Chang , 2001. +# +msgid "" +msgstr "" +"Project-Id-Version: Nag 2.2-ALPHA\n" +"Report-Msgid-Bugs-To: dev@lists.horde.org\n" +"POT-Creation-Date: 2008-02-12 15:47+0800\n" +"PO-Revision-Date: 2007-08-31 12:00+0800\n" +"Last-Translator: David Chang \n" +"Language-Team: Traditional Chinese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=BIG5\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: templates/view/task.inc:35 +#, php-format +msgid " (%s including sub-tasks)" +msgstr " (%s ¥]§t¦¸¨Æ¶µ)" + +#: lib/Nag.php:71 +#, php-format +msgid "%d hour" +msgstr "%d ®É" + +#: lib/Nag.php:73 +#, php-format +msgid "%d hour, %d minute" +msgstr "%d ®É, %d ¤À" + +#: lib/Nag.php:75 +#, php-format +msgid "%d hour, %d minutes" +msgstr "%d ®É, %d ¤À" + +#: lib/Nag.php:63 +#, php-format +msgid "%d hours" +msgstr "%d ®É" + +#: lib/Nag.php:65 +#, php-format +msgid "%d hours, %d minute" +msgstr "%d ®É, %d ¤À" + +#: lib/Nag.php:67 +#, php-format +msgid "%d hours, %d minutes" +msgstr "%d ®É, %d ¤À" + +#: lib/Nag.php:81 +#, php-format +msgid "%d minute" +msgstr "%d ¤À" + +#: lib/Nag.php:83 +#, php-format +msgid "%d minutes" +msgstr "%d ¤À" + +#: lib/Nag.php:364 +#, php-format +msgid "%s at %s" +msgstr "%s ¦b %s" + +#: lib/Nag.php:590 lib/Block/tree_alarms.php:41 lib/Block/summary.php:106 +#, php-format +msgid "%s is due in %s" +msgstr "%s ±N©ó %s «á¨ì´Á" + +#: lib/Nag.php:588 lib/Block/tree_alarms.php:43 lib/Block/summary.php:104 +#, php-format +msgid "%s is due now." +msgstr "%s ²{¦b¤w¨ì´Á" + +#: task.php:231 +#, php-format +msgid "%s is now incomplete." +msgstr "%s ²{¦b§ï¬°¥¼§¹¦¨." + +#: data.php:199 +#, php-format +msgid "%s successfully imported" +msgstr "%s Àɤw¶×¤J§¹¦¨" + +#: lib/Nag.php:516 lib/Forms/DeleteTaskList.php:86 +#, php-format +msgid "%s's Task List" +msgstr "%sªº«Ý¿ìï" + +#: lib/Nag.php:315 lib/Forms/task.php:58 +msgid "(highest)" +msgstr "(³Ì°ª)" + +#: lib/Nag.php:315 lib/Forms/task.php:59 +msgid "(lowest)" +msgstr "(³Ì§C)" + +#: task.php:215 +#, php-format +msgid "Access denied completing task %s." +msgstr "±N«Ý¿ì¨Æ¶µ %s ³]©w¬°§¹¦¨ª¬ºA®É,¦s¨ú¾D©Ú" + +#: task.php:24 +#, php-format +msgid "Access denied deleting %s" +msgstr "§R°£ %s ®É,¦s¨ú¾D©Ú" + +#: task.php:84 task.php:90 +msgid "Access denied editing task." +msgstr "½s¿è«Ý¿ì¨Æ¶µ®É,¦s¨ú¾D©Ú." + +#: task.php:82 +#, php-format +msgid "Access denied editing task: %s" +msgstr "½s¿è«Ý¿ì¨Æ¶µ: %s ®É,¦s¨ú¾D©Ú." + +#: task.php:163 +#, php-format +msgid "Access denied moving the task to %s." +msgstr "±N«Ý¿ì¨Æ¶µ·h²¾¨ì %s ®É,¦s¨ú¾D©Ú." + +#: task.php:166 +#, php-format +msgid "Access denied removing task from %s." +msgstr "±N«Ý¿ì¨Æ¶µ¦Û %s ²¾°£®É,¦s¨ú¾D©Ú." + +#: task.php:125 +#, php-format +msgid "Access denied saving task to %s." +msgstr "±N«Ý¿ì¨Æ¶µÀx¦s¨ì %s ®É,¦s¨ú¾D©Ú." + +#: task.php:121 +#, php-format +msgid "Access denied saving task: %s" +msgstr "Àx¦s«Ý¿ì¨Æ¶µ: %s ®É,¦s¨ú¾D©Ú." + +#: templates/view/task.inc:26 lib/Forms/task.php:88 +msgid "Alarm" +msgstr "ĵ¥Ü" + +#: config/prefs.php.dist:200 +msgid "All tasks" +msgstr "¥þ³¡" + +#: lib/Block/summary.php:63 +msgid "Always show completed tasks?" +msgstr "¥Ã»·Åã¥Ü¤w§¹¦¨ªº¨Æ¶µ?" + +#: lib/Block/summary.php:60 +msgid "Always show overdue tasks?" +msgstr "¥Ã»·Åã¥Ü¹L´Á¨Æ¶µ?" + +#: config/prefs.php.dist:117 +msgid "Ascending" +msgstr "¤W¤É" + +#: lib/Block/summary.php:39 +msgid "Block title" +msgstr "°Ï¶ô¼ÐÃD" + +#: data.php:30 +msgid "CSV" +msgstr "³rÂI¤À¹j®æ¦¡ .csv" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Calendar" +msgstr "¦æ¨Æ¾ä" + +#: lib/Forms/DeleteTaskList.php:45 lib/Forms/DeleteTaskList.php:51 +msgid "Cancel" +msgstr "¨ú®ø" + +#: templates/list/task_headers.inc:53 +msgid "Cat_egory" +msgstr "¤ÀÃþ_e" + +#: data.php:54 templates/view/task.inc:8 lib/Forms/task.php:76 +#: lib/Forms/task.php:82 config/prefs.php.dist:89 config/prefs.php.dist:104 +msgid "Category" +msgstr "¤ÀÃþ" + +#: tasklists/index.php:56 templates/tasklist_list.php:35 +msgid "Change Permissions" +msgstr "Åܧó¦s¨ú¼Ò¦¡" + +#: config/prefs.php.dist:14 +msgid "Change your task sorting and display options." +msgstr "Åܧó§Aªº«Ý¿ì¨Æ¶µ±Æ§Ç¤è¦¡¥H¤ÎÅã¥Ü¿ï¶µ." + +#: config/prefs.php.dist:179 +msgid "Choose how you want to receive reminders for tasks with alarms:" +msgstr "§A¥´ºâ¥H¦óºØ¤è¦¡±µ¨ü¨Ó¦Û«Ý¿ì¨Æ¶µªºÄµ¥Ü:" + +#: config/prefs.php.dist:170 +msgid "" +"Choose if you want to be notified of new, edited, and deleted tasks by email:" +msgstr "«Ý¿ìï³Q·s¼W, ½s¿è, »P§R°£¨Æ¶µ®É¬O§_¥H¶l¥ó³qª¾§Ú?" + +#: config/prefs.php.dist:42 +msgid "Choose if you want to be notified of task changes and task alarms." +msgstr "³]©w¨Æ¶µÄµ¥Ü»PÅܧó³qª¾." + +#: config/prefs.php.dist:35 +msgid "Choose your default task list." +msgstr "¿ï¾Ü§Aªº¹w³]«Ý¿ìï." + +#: templates/tasklist_list.php:31 templates/tasklist_list.php:32 +msgid "Click or copy this URL to display this task list" +msgstr "ÂI¿ï©Î½Æ»s¦¹ºô§}¥H«KÅã¥Ü«Ý¿ìï" + +#: templates/panel.inc:43 +msgid "Close" +msgstr "Ãö³¬" + +#: templates/list/header.inc:8 +msgid "Close Search" +msgstr "Ãö³¬·j´M" + +#: view.php:99 +msgid "Complete" +msgstr "§¹¦¨" + +#: templates/list/task_summaries.inc:11 lib/Block/summary.php:175 +#, php-format +msgid "Complete \"%s\"" +msgstr "§¹¦¨ \"%s\"" + +#: templates/view/task.inc:42 +msgid "Complete Task" +msgstr "¼Ð°O¬°§¹¦¨" + +#: config/prefs.php.dist:202 +msgid "Complete tasks" +msgstr "¤w§¹¦¨" + +#: lib/Nag.php:379 lib/Block/summary.php:173 +msgid "Completed" +msgstr "¤w§¹¦¨" + +#: task.php:229 +#, php-format +msgid "Completed %s." +msgstr "¤w§¹¦¨ %s." + +#: templates/search/search.inc:27 +msgid "Completed Tasks" +msgstr "¤w§¹¦¨" + +#: templates/list/task_summaries.inc:16 +msgid "Completed parent task, mark it as incomplete first" +msgstr "¤÷¨Æ¶µ¬°§¹¦¨ª¬ºA, ½Ð¥ý±N¥¦¼Ð¥Ü¬°¥¼§¹¦¨" + +#: templates/view/task.inc:38 templates/list/task_headers.inc:31 +#: lib/Forms/task.php:94 config/prefs.php.dist:91 config/prefs.php.dist:106 +msgid "Completed?" +msgstr "¬O§_§¹¦¨?" + +#: data.php:58 +msgid "Completion Status" +msgstr "§¹¦¨ª¬ºA" + +#: lib/api.php:317 lib/api.php:544 +#, php-format +msgid "Connection failed: %s" +msgstr "³sµ²¥¢±Ñ: %s" + +#: lib/Forms/CreateTaskList.php:39 +msgid "Create" +msgstr "«Ø¥ß" + +#: lib/Forms/CreateTaskList.php:34 +msgid "Create Task List" +msgstr "«Ø¥ß«Ý¿ìï" + +#: templates/tasklist_list.php:8 +msgid "Create a new Task List" +msgstr "«Ø¥ß·s«Ý¿ìï" + +#: templates/view/task.inc:57 +msgid "Created" +msgstr "«Ø¥ß" + +#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100 +msgid "Day" +msgstr "¤Ñ" + +#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136 +msgid "Day(s)" +msgstr "¤Ñ" + +#: config/prefs.php.dist:34 +msgid "Default Task List" +msgstr "¹w³]«Ý¿ìï" + +#: config/prefs.php.dist:28 +msgid "Defaults for new tasks" +msgstr "·s¼W¨Æ¶µ®Éªº¹w³]¸ê®Æ" + +#: lib/Forms/task.php:87 +msgid "Delay Start Until" +msgstr "©µ«á¨ì³o­Ó¤é´Á¤~¶}©l" + +#: view.php:106 tasklists/index.php:57 templates/tasklist_list.php:37 +#: lib/Forms/DeleteTaskList.php:45 +msgid "Delete" +msgstr "§R°£" + +#: lib/Forms/DeleteTaskList.php:40 +#, php-format +msgid "Delete %s" +msgstr "§R°£ %s" + +#: config/prefs.php.dist:20 +msgid "Delete Confirmation" +msgstr "§R°£½T»{" + +#: config/prefs.php.dist:21 +msgid "Delete button behaviour" +msgstr "§R°£«ö¶sªº¦æ¬°" + +#: task.php:105 lib/Forms/task.php:99 +msgid "Delete this task" +msgstr "§R°£³o­Ó¨Æ¶µ" + +#: task.php:32 +#, php-format +msgid "Deleted %s." +msgstr "¤w§R°£ %s." + +#: config/prefs.php.dist:118 +msgid "Descending" +msgstr "¤U­°" + +#: data.php:53 lib/Forms/task.php:95 lib/Forms/CreateTaskList.php:37 +#: lib/Forms/EditTaskList.php:44 +msgid "Description" +msgstr "´y­z" + +#: config/prefs.php.dist:13 +msgid "Display Options" +msgstr "Åã¥Ü¿ï¶µ" + +#: templates/tasklist_list.php:16 +msgid "Display URL" +msgstr "Åã¥Üºô§}" + +#: config/prefs.php.dist:128 +msgid "Do you want to confirm deleting entries?" +msgstr "§R°£¨Æ¶µ®É»Ý­n½T»{?" + +#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:86 +msgid "Due By" +msgstr "¦³®Ä´Á" + +#: config/prefs.php.dist:90 config/prefs.php.dist:105 +msgid "Due Date" +msgstr "¦³®Ä´Á" + +#: lib/UI/VarRenderer/nag.php:99 +msgid "Due date specified." +msgstr "¤w«ü©w¦³®Ä´Á." + +#: view.php:102 tasklists/index.php:55 templates/tasklist_list.php:33 +msgid "Edit" +msgstr "½s¿è" + +#: templates/list/task_summaries.inc:38 lib/Block/summary.php:166 +#, php-format +msgid "Edit \"%s\"" +msgstr "½s¿è \"%s\"" + +#: lib/Forms/EditTaskList.php:40 +#, php-format +msgid "Edit %s" +msgstr "½s¿è %s" + +#: templates/list/task_headers.inc:42 +msgid "Edit Task" +msgstr "½s¿è" + +#: templates/list/task_headers.inc:58 +msgid "Edit categories and colors" +msgstr "½s¿è¤ÀÃþ»PÃC¦â" + +#: task.php:95 task.php:109 +#, php-format +msgid "Edit: %s" +msgstr "½s¿è: %s" + +#: task.php:19 +#, php-format +msgid "Error deleting task: %s" +msgstr "§R°£¨Æ¶µ®Éµo¥Í¿ù»~: %s" + +#: templates/view/task.inc:34 lib/Forms/task.php:93 +msgid "Estimated Time" +msgstr "¹w¦ô®É¶¡" + +#: templates/data/export.inc:17 +msgid "Export" +msgstr "¶×¥X" + +#: templates/data/export.inc:6 +msgid "Export Tasks" +msgstr "¶×¥X«Ý¿ì¨Æ¶µ" + +#: config/prefs.php.dist:56 +msgid "External Data" +msgstr "¥~³¡¸ê®Æ" + +#: config/prefs.php.dist:12 config/prefs.php.dist:19 config/prefs.php.dist:26 +msgid "General Options" +msgstr "¤@¯ë¿ï¶µ" + +#: lib/UI/VarRenderer/nag.php:111 +msgid "Hour" +msgstr "®É" + +#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135 +msgid "Hour(s)" +msgstr "®É" + +#: templates/data/import.inc:7 +#, php-format +msgid "Import Tasks, Step %d" +msgstr "¶×¤J«Ý¿ì¨Æ¶µ,¨BÆJ %d" + +#: data.php:205 +msgid "Import/Export Tasks" +msgstr "¶×¤J/¶×¥X«Ý¿ì¨Æ¶µ" + +#: list.php:112 +msgid "Incom_plete tasks" +msgstr "¥¼§¹¦¨_p" + +#: templates/search/search.inc:26 +msgid "Incomplete Tasks" +msgstr "¥¼§¹¦¨" + +#: templates/list/task_summaries.inc:8 +msgid "Incomplete sub tasks, complete them first" +msgstr "½Ð¥ý±N¦¸¨Æ¶µ§¹¦¨" + +#: config/prefs.php.dist:201 +msgid "Incomplete tasks" +msgstr "¥¼§¹¦¨" + +#: templates/view/task.inc:64 +msgid "Last Modified" +msgstr "³Ìªñ¤@¦¸§ó·s" + +#: tasklists/index.php:61 templates/tasklist_list.php:2 +msgid "Manage Task Lists" +msgstr "[ºÞ²z«Ý¿ìï]" + +#: templates/list/task_summaries.inc:19 +#, php-format +msgid "Mark \"%s\" as incomplete" +msgstr "±N \"%s\" ¼Ð°O¬°¥¼§¹¦¨" + +#: templates/view/task.inc:44 +msgid "Mark as incomplete" +msgstr "¼Ð°O¬°¥¼§¹¦¨" + +#: lib/api.php:120 +msgid "Maximum Number of Tasks" +msgstr "«Ý¿ì¨Æ¶µ¤W­­¼Æ¥Ø" + +#: lib/Block/tree_alarms.php:3 +msgid "Menu Alarms" +msgstr "¥Ø¿ýĵ¥Ü" + +#: lib/Block/tree_menu.php:3 +msgid "Menu List" +msgstr "¥\¯àªí" + +#: lib/UI/VarRenderer/nag.php:112 +msgid "Minute" +msgstr "¤ÀÄÁ" + +#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135 +msgid "Minute(s)" +msgstr "¤ÀÄÁ" + +#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101 +msgid "Month" +msgstr "¤ë" + +#: templates/list/header.inc:9 +msgid "More Options..." +msgstr "§ó¦h¿ï¶µ..." + +#: lib/api.php:1001 +msgid "Multiple iCalendar components found; only one vTodo is supported." +msgstr "µo²{¦h­Ó iCalendar ¤¸¥ó; ¶È¥u¤ä´© vTodo." + +#: templates/panel.inc:70 +msgid "My Task Lists:" +msgstr "§Úªº«Ý¿ìï:" + +#: list.php:34 +msgid "My Tasks" +msgstr "§Úªº¨Æ¶µ" + +#: templates/search/search.inc:18 +msgid "N_ame" +msgstr "¦WºÙ_a" + +#: templates/list/task_headers.inc:45 +msgid "Na_me" +msgstr "¦WºÙ_m" + +#: lib/Driver/kolab.php:741 +#, php-format +msgid "Nag/kolab: Did not find task %s" +msgstr "Nag/kolab: §ä¤£¨ì¨Æ¶µ %s." + +#: data.php:52 lib/Forms/task.php:65 lib/Forms/CreateTaskList.php:36 +#: lib/Forms/EditTaskList.php:43 +msgid "Name" +msgstr "¦WºÙ" + +#: task.php:74 task.php:109 lib/Block/tree_menu.php:26 +msgid "New Task" +msgstr "·s¼W" + +#: templates/data/import.inc:39 +msgid "Next" +msgstr "¤U¤@¨B" + +#: config/prefs.php.dist:166 +msgid "No" +msgstr "§_" + +#: lib/UI/VarRenderer/nag.php:46 +msgid "No delay" +msgstr "¤£©µ«á" + +#: lib/UI/VarRenderer/nag.php:95 +msgid "No due date." +msgstr "¥Ã»·." + +#: lib/api.php:405 lib/api.php:724 lib/api.php:782 lib/api.php:994 +msgid "No iCalendar data was found." +msgstr "§ä¤£¨ì iCalendar ¸ê®Æ." + +#: lib/Forms/task.php:50 +msgid "No parent task" +msgstr "¨S¦³¤÷¨Æ¶µ" + +#: lib/Nag.php:605 +msgid "No task lists are available to guests." +msgstr "¤£´£¨Ñ«Ý¿ìïµ¹¨Ó»«¨Ï¥Î." + +#: templates/list/task_footers.inc:5 +msgid "No tasks match" +msgstr "¨S¦³¨Æ¶µ²Å¦X" + +#: lib/Block/summary.php:229 +msgid "No tasks to display" +msgstr "¨S¦³«Ý¿ì¨Æ¶µ." + +#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151 +msgid "None" +msgstr "µL" + +#: lib/Nag.php:380 +msgid "Not Completed" +msgstr "¥¼§¹¦¨" + +#: templates/view/task.inc:14 +msgid "Not Private" +msgstr "«D¨p¤H" + +#: lib/Driver/sql.php:100 lib/Driver/sql.php:136 +msgid "Not found" +msgstr "§ä¤£¨ì" + +#: config/prefs.php.dist:41 +msgid "Notifications" +msgstr "³qª¾¿ï¶µ" + +#: config/prefs.php.dist:168 +msgid "On all shown tasklists" +msgstr "©Ò¦³Åã¥Ü¤¤ªº«Ý¿ìï" + +#: config/prefs.php.dist:169 +msgid "On all tasklists I have read access to" +msgstr "©Ò¦³§Ú¥i¥HŪ¨úªº«Ý¿ìï" + +#: config/prefs.php.dist:167 +msgid "On my tasklists only" +msgstr "¥u­­©ó§Úªº«Ý¿ìï" + +#: templates/list/task_headers.inc:39 +msgid "P_ri" +msgstr "Àu¥ý_r" + +#: lib/Forms/task.php:72 +msgid "Parent task" +msgstr "¤÷¨Æ¶µ" + +#: lib/api.php:591 lib/api.php:629 lib/api.php:662 lib/api.php:698 +#: lib/api.php:820 lib/api.php:875 lib/api.php:939 lib/api.php:976 +#: lib/api.php:1087 lib/api.php:1134 +msgid "Permission Denied" +msgstr "¦s¨ú¾D©Ú" + +#: lib/api.php:178 lib/Forms/DeleteTaskList.php:56 +msgid "Permission denied" +msgstr "¦s¨ú¾D©Ú" + +#: data.php:57 templates/view/task.inc:30 lib/Forms/task.php:90 +#: config/prefs.php.dist:87 config/prefs.php.dist:102 +msgid "Priority" +msgstr "Àu¥ý¶¶§Ç" + +#: templates/view/task.inc:14 lib/Driver.php:907 +msgid "Private" +msgstr "¨p¤H" + +#: lib/Driver.php:905 +msgid "Private Task" +msgstr "¨p¤H«Ý¿ì¨Æ¶µ" + +#: templates/view/task.inc:12 lib/Forms/task.php:85 +msgid "Private?" +msgstr "¨p¤H?" + +#: lib/Forms/DeleteTaskList.php:43 +#, php-format +msgid "" +"Really delete the task list \"%s\"? This cannot be undone and all data on " +"this task list will be permanently removed." +msgstr "" +"¯uªº­n§R°£¦¹«Ý¿ìï \"%s\"¶Ü? ³o¶µ¾Þ§@±NµLªk«ì´_¦Ó¥B¸Ó«Ý¿ì襤ªº¨Æ¶µ¥ç±N¥Ã»·®ø" +"¥¢." + +#: view.php:106 +msgid "Really delete this task?" +msgstr "½T©w§R°£¦¹¨Æ¶µ?" + +#: templates/panel.inc:88 lib/Forms/task.php:97 lib/Forms/EditTaskList.php:46 +msgid "Save" +msgstr "Àx¦s" + +#: task.php:194 +#, php-format +msgid "Saved %s." +msgstr "Àx¦s %s." + +#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4 +#: lib/Block/tree_menu.php:46 +msgid "Search" +msgstr "·j´M" + +#: templates/search/search.inc:17 +msgid "Search In:" +msgstr "·j´MÄæ¦ì:" + +#: templates/search/search.inc:12 +msgid "Search _Text:" +msgstr "·j´M¤º®e_T:" + +#: templates/panel.inc:58 +msgid "Search for Task Lists:" +msgstr "·j´M«Ý¿ìï:" + +#: templates/search/search.inc:24 +msgid "Search:" +msgstr "·j´M:" + +#: list.php:73 +#, php-format +msgid "Search: Results for \"%s\"" +msgstr "·j´M: \"%s\" ªºµ²ªG" + +#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106 +msgid "Select a date" +msgstr "¿ï¾Ü¤@­Ó¤é´Á" + +#: templates/data/export.inc:11 +msgid "Select the export format:" +msgstr "¿ï¾Ü¶×¥X®æ¦¡:" + +#: templates/data/import.inc:36 +msgid "Select the file to import:" +msgstr "¿ï¾Ü¶×¤JÀÉ®×:" + +#: templates/data/import.inc:12 +msgid "Select the format of the source file:" +msgstr "¿ï¾Ü¨Ó·½Àɮ׮榡:" + +#: templates/panel.inc:79 +msgid "Shared Task Lists:" +msgstr "¤w¦@¨Éªº«Ý¿ìï:" + +#: config/prefs.php.dist:68 +msgid "Should the Task List be shown in its own column in the List view?" +msgstr "¦b²M³æÀ˵øµe­±¤¤Åã¥Ü©ÒÄݪº¥N¿ìï¦WºÙ?" + +#: lib/Block/summary.php:45 +msgid "Show action buttons?" +msgstr "Åã¥Ü§@¥Î«ö¶s?" + +#: config/prefs.php.dist:203 +msgid "Show complete, incomplete, or all tasks in the task list?" +msgstr "Åã¥Ü¤w§¹¦¨,¥¼§¹¦¨¨Æ¶µ©ó²M³æ¤¤?" + +#: config/prefs.php.dist:190 +msgid "Show data from any of these other applications in your task list?" +msgstr "Åã¥Ü«Ý¿ì襤¨ä¥LÀ³¥Îµ{¦¡ªº¸ê®Æ?" + +#: config/prefs.php.dist:57 +msgid "Show data from other applications or sources." +msgstr "Åã¥Ü¨ä¥LÀ³¥Îµ{¦¡©Î¨Ó·½ªº¸ê®Æ." + +#: lib/Block/summary.php:48 +msgid "Show due dates?" +msgstr "Åã¥Ü¨ì´Á¤é?" + +#: lib/Block/summary.php:42 +msgid "Show priorities?" +msgstr "Åã¥ÜÀu¥ý?" + +#: lib/Block/summary.php:54 +msgid "Show task alarms?" +msgstr "Åã¥Üĵ¥Ü?" + +#: lib/Block/summary.php:57 +msgid "Show task category?" +msgstr "ĵ¥Ü¤ÀÃþ?" + +#: config/prefs.php.dist:78 +msgid "Show task list options panel?" +msgstr "Åã¥Ü¶i¶¥¥\¯à­±ªO?" + +#: lib/Block/summary.php:51 +msgid "Show tasklist name?" +msgstr "Åã¥Ü«Ý¿ìï¦WºÙ?" + +#: lib/Block/summary.php:70 +msgid "Show tasks from these categories" +msgstr "Åã¥Ü³o¨Ç¤ÀÃþ¤¤ªº¨Æ¶µ" + +#: lib/Block/summary.php:66 +msgid "Show tasks from these tasklists" +msgstr "Åã¥Ü³o¨Ç«Ý¿ì襤ªº¨Æ¶µ" + +#: templates/list/task_headers.inc:53 +msgid "Sort by Category" +msgstr "¥H¤ÀÃþ±Æ§Ç" + +#: templates/list/task_headers.inc:31 +msgid "Sort by Completion Status" +msgstr "¨Ì§¹¦¨ª¬ºA±Æ§Ç" + +#: templates/list/task_headers.inc:50 +msgid "Sort by Due Date" +msgstr "¨Ì¦³®Ä´Á±Æ§Ç" + +#: templates/list/task_headers.inc:45 +msgid "Sort by Name" +msgstr "¥H¦WºÙ±Æ§Ç" + +#: templates/list/task_headers.inc:39 +msgid "Sort by Priority" +msgstr "¥HÀu¥ýÅv±Æ§Ç" + +#: templates/list/task_headers.inc:35 +msgid "Sort by User Name" +msgstr "¥H¨Ï¥ÎªÌ¦WºÙ±Æ§Ç" + +#: config/prefs.php.dist:119 +msgid "Sort direction:" +msgstr "±Æ§Ç¤è¦V:" + +#: config/prefs.php.dist:93 +msgid "Sort tasks by:" +msgstr "±Æ§Ç¨Æ¶µ¨Ì:" + +#: data.php:56 +msgid "Start" +msgstr "±Ò°Ê" + +#: templates/view/task.inc:18 +msgid "Start Date" +msgstr "±Ò©l¤é´Á" + +#: lib/UI/VarRenderer/nag.php:50 +msgid "Start date specified." +msgstr "¤w«ü©w±Ò©l¤é´Á." + +#: templates/tasklist_list.php:17 +msgid "Subscription URL" +msgstr "­q¾\ºô§}" + +#: templates/list/task_summaries.inc:57 +msgid "Task Alarm" +msgstr "ĵ¥Ü" + +#: templates/list/task_headers.inc:48 +msgid "Task Alarm?" +msgstr "ĵ¥Ü?" + +#: config/prefs.php.dist:27 +msgid "Task Defaults" +msgstr "¹w³]¿ï¶µ" + +#: templates/tasklist_list.php:15 lib/Forms/task.php:68 +msgid "Task List" +msgstr "«Ý¿ìï" + +#: templates/panel.inc:5 +msgid "Task List Information" +msgstr "«Ý¿ìï¸ê°T" + +#: templates/tasklist_list.php:12 +msgid "Task List List" +msgstr "ÂsÄý" + +#: config/prefs.php.dist:33 config/prefs.php.dist:40 config/prefs.php.dist:55 +msgid "Task List and Share Options" +msgstr "«Ý¿ìï¥H¤Î¤À¨É¿ï¶µ" + +#: templates/tasklist_info.php:6 +#, php-format +msgid "Task List owned by %s." +msgstr "«Ý¿ìï¾Ö¦³ªÌ %s." + +#: templates/panel.inc:52 templates/panel.inc:53 +msgid "Task Lists" +msgstr "«Ý¿ìï" + +#: config/prefs.php.dist:88 config/prefs.php.dist:103 +msgid "Task Name" +msgstr "«Ý¿ì¨Æ¶µ¦WºÙ" + +#: templates/list/task_summaries.inc:55 +msgid "Task Note" +msgstr "³Æµù" + +#: templates/list/task_headers.inc:47 +msgid "Task Note?" +msgstr "³Æ¸Ñ?" + +#: templates/search/search.inc:6 +msgid "Task Search" +msgstr "«Ý¿ì¨Æ¶µ·j´M" + +#: lib/Nag.php:630 +msgid "Task added:" +msgstr "«Ý¿ì¨Æ¶µ¤w·s¼W:" + +#: lib/Nag.php:640 +msgid "Task deleted:" +msgstr "«Ý¿ì¨Æ¶µ¤w§R°£:" + +#: lib/Nag.php:635 +msgid "Task modified:" +msgstr "«Ý¿ì¨Æ¶µ¤w§ó·s:" + +#: task.php:88 view.php:44 +msgid "Task not found." +msgstr "§ä¤£¨ì«Ý¿ì¨Æ¶µ." + +#: config/prefs.php.dist:92 config/prefs.php.dist:107 +msgid "Tasklist" +msgstr "«Ý¿ìï" + +#: lib/api.php:1056 +msgid "Tasks" +msgstr "«Ý¿ì¨Æ¶µ" + +#: lib/Block/summary.php:3 +msgid "Tasks Summary" +msgstr "«Ý¿ì¨Æ¶µºK­n" + +#: data.php:193 +#, php-format +msgid "The %s file didn't contain any tasks." +msgstr "%s Àɮפ¤¥¼¥]§t¥ô¦ó¨Æ¶µ." + +#: lib/Driver.php:56 +msgid "The Tasks backend is not currently available." +msgstr "¥Ø«e¨S¦³¥i¥Îªº«Ý¿ì¨Æ¶µ¦øªAºÝ." + +#: lib/Driver.php:137 +#, php-format +msgid "The Tasks backend is not currently available: %s" +msgstr "¥Ø«e¨S¦³¥i¥Îªº«Ý¿ì¨Æ¶µ¦øªAºÝ: %s" + +#: lib/Forms/task.php:133 +msgid "The alarm value must not be empty." +msgstr "ĵ¥Ü³]©w­È¤£±oªÅ¥Õ." + +#: templates/prefs/defaultduetimeselect.inc:8 +msgid "The current hour" +msgstr "¥Ø«eªº®É¶¡" + +#: lib/Nag.php:631 +#, php-format +msgid "" +"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s." +msgstr "¨ì´Á¤é¬° %3$s ªº«Ý¿ì¨Æ¶µ \"%1$s\" ¤w·s¼W¨ì«Ý¿ìï \"%2$s\" ¤¤." + +#: lib/Nag.php:641 +#, php-format +msgid "" +"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %" +"s." +msgstr "¨ì´Á¤é¬° %3$s ªº«Ý¿ì¨Æ¶µ \"%1$s\" ¤w¦Û«Ý¿ìï \"%2$s\" ¤¤§R°£." + +#: lib/Nag.php:636 +#, php-format +msgid "" +"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s." +msgstr "«Ý¿ìï \"%2$s\" ¤¤¨ì´Á¤é¬° %3$s ªº«Ý¿ì¨Æ¶µ \"%1$s\" ¤w½s¿è§¹¦¨." + +#: tasklists/create.php:31 +#, php-format +msgid "The task list \"%s\" has been created." +msgstr "¦¹«Ý¿ì¨Æ¶µ \"%s\" ¤w³Q«Ø¥ß." + +#: tasklists/delete.php:48 +#, php-format +msgid "The task list \"%s\" has been deleted." +msgstr "¦¹«Ý¿ì¨Æ¶µ \"%s\" ¤w³Q§R°£." + +#: tasklists/edit.php:42 +#, php-format +msgid "The task list \"%s\" has been renamed to \"%s\"." +msgstr "«Ý¿ìï \"%s\" ¤w§ó¦W¬° \"%s\"." + +#: tasklists/edit.php:44 +#, php-format +msgid "The task list \"%s\" has been saved." +msgstr "¦¹«Ý¿ì¨Æ¶µ \"%s\" ¤w³QÀx¦s." + +#: config/prefs.php.dist:108 +msgid "Then:" +msgstr "¦A¨Ì:" + +#: templates/list/empty.inc:2 +msgid "There are no tasks matching the current criteria." +msgstr "¨S¦³¨Æ¶µ²Å¦X³o­Ó·j´M±ø¥ó." + +#: task.php:225 +#, php-format +msgid "There was a problem completing %s: %s" +msgstr "¼Ð°O %s: %s ¬°§¹¦¨®Éµo¥Í¤@­Ó°ÝÃD" + +#: task.php:29 +#, php-format +msgid "There was a problem deleting %s: %s" +msgstr "§R°£ %s: %s ®Éµo¥Í¤@­Ó°ÝÃD" + +#: task.php:192 +#, php-format +msgid "There was a problem saving the task: %s." +msgstr "Àx¦s«Ý¿ì¨Æ¶µ®Éµo¥Í¿ù»~: %s." + +#: data.php:196 +#, php-format +msgid "There was an error importing the data: %s" +msgstr "¶×¤J¸ê®Æ: %s ®Éµo¥Í¤@­Ó¿ù»~." + +#: lib/api.php:397 lib/api.php:716 lib/api.php:988 +msgid "There was an error importing the iCalendar data." +msgstr "¶×¤J iCalendar ¸ê®Æ®Éµo¥Í¤@­Ó¿ù»~." + +#: data.php:80 +msgid "There were no tasks to export." +msgstr "¨S¦³«Ý¿ì¨Æ¶µ³Q¶×¥X." + +#: data.php:126 +msgid "This file format is not supported." +msgstr "¦¹ºØÀɮ׮榡¨Ã¥¼³Q¤ä´©." + +#: tasklists/delete.php:24 +msgid "This task list cannot be deleted." +msgstr "¦¹«Ý¿ìïµLªk³Q§R°£." + +#: templates/tasklist_info.php:7 +msgid "To subscribe to this task list from another program, use this URL: " +msgstr "±ý¸g¥Ñ¨ä¥Lµ{¦¡­q¾\¦¹«Ý¿ìï, ½Ð¨Ï¥Î³o­Óºô§}: " + +#: lib/Forms/DeleteTaskList.php:63 +#, php-format +msgid "Unable to delete \"%s\": %s" +msgstr "µLªk§R°£ \"%s\": %s" + +#: lib/Driver.php:140 +#, php-format +msgid "Unable to load the definition of %s." +msgstr "µLªk¸ü¤J %s ªº©w¸q." + +#: lib/Forms/EditTaskList.php:55 +#, php-format +msgid "Unable to save task list \"%s\": %s" +msgstr "µLªkÀx¦s«Ý¿ìï \"%s\": %s" + +#: templates/view/task.inc:9 templates/list/task_summaries.inc:62 +#: lib/Nag.php:850 lib/Nag.php:851 lib/Nag.php:865 lib/Nag.php:866 +#: lib/Forms/task.php:81 lib/Block/summary.php:31 lib/Block/summary.php:222 +msgid "Unfiled" +msgstr "¥¼¤ÀÃþ" + +#: lib/api.php:502 lib/api.php:789 lib/api.php:847 lib/api.php:901 +#: lib/api.php:1026 +#, php-format +msgid "Unsupported Content-Type: %s" +msgstr "¥¼¤ä´©ªº¤º®e«¬ºA: %s" + +#: lib/Driver.php:1084 +#, php-format +msgid "" +"We would like to remind you of this due task.\n" +"\n" +"%s\n" +"\n" +"Date: %s\n" +"Time: %s\n" +"\n" +"%s" +msgstr "" +"§Ú­Ì·Q­n³qª¾§A,³o­Ó§Y±N¨ì¨Óªº¨Æ¶µ.\n" +"\n" +"%s\n" +"\n" +"\n" +"¤é´Á: %s\n" +"®É¶¡: %s\n" +"\n" +"%s" + +#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136 +msgid "Week(s)" +msgstr "¶g" + +#: templates/prefs/defaultduetimeselect.inc:6 +msgid "What do you want to be the default due time for tasks?" +msgstr "¨Æ¶µªº¹w³]¨ì´Á®É¶¡?" + +#: config/prefs.php.dist:146 +msgid "" +"When creating a new task, how many days in the future should the default due " +"date be (0 means today)?" +msgstr "·í«Ø¥ß·s¨Æ¶µ®É,¥Ñ·í¤Ñ°_ºâªº¦h¤Ö¤Ñ¼Æ¬°¹w³]ªº¨ì´Á¤é (0 ªí¥Ü·í¤Ñ)?" + +#: config/prefs.php.dist:137 +msgid "When creating a new task, should it default to having a due date?" +msgstr "·í«Ø¥ß·s¨Æ¶µ®É,¹w³]¦³¨ì´Á¤é?" + +#: templates/data/import.inc:21 +msgid "Which tasklist should the tasks be added to?" +msgstr "­n±N¨Æ¶µ¼W¥[¦Ü­þ¤@¥»«Ý¿ì襤©O?" + +#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102 +msgid "Year" +msgstr "¦~" + +#: tasklists/edit.php:28 +msgid "You are not allowed to change this task list." +msgstr "§A¨S¦³Åܧ󦹫ݿì諸Åv­­." + +#: data.php:41 data.php:151 task.php:61 +#, php-format +msgid "You are not allowed to create more than %d tasks." +msgstr "§A¨S¦³«Ø¥ß¶W¹L %d ­Ó¨Æ¶µªºÅv­­." + +#: tasklists/delete.php:35 +msgid "You are not allowed to delete this task list." +msgstr "§A¨S¦³§R°£¦¹«Ý¿ì諸Åv­­." + +#: view.php:52 +msgid "You do not have permission to view this tasklist." +msgstr "§A¨S¦³¨¬°÷ªºÅv­­À˵ø¦¹«Ý¿ìï." + +#: lib/Nag.php:631 +msgid "You requested to be notified when tasks are added to your tasklists." +msgstr "À³§Aªº­n¨D,¨C·í§Aªº«Ý¿ìï³Q·s¼W¨Æ¶µ®Éµo°e³qª¾." + +#: lib/Nag.php:641 +msgid "" +"You requested to be notified when tasks are deleted from your tasklists." +msgstr "À³§Aªº­n¨D,¨C·í§Aªº«Ý¿ìï³Q§R°£¨Æ¶µ®Éµo°e³qª¾." + +#: lib/Nag.php:636 +msgid "You requested to be notified when tasks are edited on your tasklists." +msgstr "À³§Aªº­n¨D,¨C·í§Aªº«Ý¿ìï³Q½s¿è¨Æ¶µ®Éµo°e³qª¾." + +#: templates/prefs/tasklistselect.inc:10 +msgid "Your default task list:" +msgstr "§Aªº¹w³]«Ý¿ìï:" + +#: templates/panel.inc:65 +msgid "[Manage Task Lists]" +msgstr "[ºÞ²z«Ý¿ìï]" + +#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101 +#: lib/Block/summary.php:206 +msgid "[none]" +msgstr "[µL]" + +#: templates/search/search.inc:25 +msgid "_All Tasks" +msgstr "¥þ³¡_A" + +#: list.php:111 +msgid "_All tasks" +msgstr "¥þ³¡_A" + +#: templates/search/search.inc:20 +msgid "_Category" +msgstr "¤ÀÃþ_C" + +#: view.php:99 +msgid "_Complete" +msgstr "§¹¦¨_C" + +#: list.php:114 +msgid "_Completed tasks" +msgstr "¤w§¹¦¨_C" + +#: view.php:106 +msgid "_Delete" +msgstr "§R°£_D" + +#: templates/search/search.inc:19 +msgid "_Description" +msgstr "´y­z_D" + +#: templates/list/task_headers.inc:50 +msgid "_Due Date" +msgstr "¦³®Ä´Á_D" + +#: view.php:102 +msgid "_Edit" +msgstr "½s¿è_E" + +#: list.php:113 +msgid "_Future tasks" +msgstr "¥¼¨Ó_F" + +#: lib/Nag.php:553 +msgid "_Import/Export" +msgstr "¶×¤J/¶×¥X_I" + +#: lib/Nag.php:540 +msgid "_List Tasks" +msgstr "¦C¥X_L" + +#: lib/Nag.php:545 +msgid "_New Task" +msgstr "·s¼W_N" + +#: lib/Nag.php:558 +msgid "_Print" +msgstr "¦C¦L_P" + +#: lib/Nag.php:549 +msgid "_Search" +msgstr "·j´M_S" + +#: templates/list/task_headers.inc:35 +msgid "_Task List" +msgstr "«Ý¿ìï_T" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "am" +msgstr "¦­¤W" + +#: data.php:31 +msgid "iCalendar (vTodo)" +msgstr "iCalendar (vTodo)" + +#: lib/Block/tree_menu.php:36 +#, php-format +msgid "in %s" +msgstr "©ó %s" + +#: lib/Nag.php:79 +msgid "no time" +msgstr "µL®É¶¡" + +#: templates/prefs/defaultduetimeselect.inc:15 +msgid "pm" +msgstr "¤U¤È" + +#: data.php:100 templates/data/export.inc:1 +msgid "tasks.csv" +msgstr "tasks.csv" + +#: data.php:111 +msgid "tasks.ics" +msgstr "tasks.ics" diff --git a/nag/quick.php b/nag/quick.php new file mode 100644 index 000000000..1323376a2 --- /dev/null +++ b/nag/quick.php @@ -0,0 +1,18 @@ +tasks->quickAdd($quickText); + if ($result) { + if (count($result) == 1) { + $notification->push(_("Added one task"), 'horde.success'); + } else { + $notification->push(sprintf(_("Added %s tasks"), count($result)), 'horde.success'); + } + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit(0); + } else { + Horde::fatal($result); + } +} diff --git a/nag/scripts/.htaccess b/nag/scripts/.htaccess new file mode 100644 index 000000000..3a4288278 --- /dev/null +++ b/nag/scripts/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/nag/scripts/import_vtodos.php b/nag/scripts/import_vtodos.php new file mode 100755 index 000000000..ed121fb32 --- /dev/null +++ b/nag/scripts/import_vtodos.php @@ -0,0 +1,65 @@ +#!/usr/bin/php + + */ + +// Do CLI checks and environment setup first. +require_once dirname(__FILE__) . '/../lib/base.load.php'; +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 CLI environment - make sure there's no time limit, init some +// variables, etc. +$cli = Horde_Cli::singleton(); +$cli->init(); + +// Read command line parameters. +if (count($argv) != 3) { + $cli->message('Too many or too few parameters.', 'cli.error'); + usage(); +} +$tasklist = $argv[1]; +$user = $argv[2]; + +// Read standard input. +$vtodo = $cli->readStdin(); +if (empty($vtodo)) { + $cli->message('No import data provided.', 'cli.error'); + usage(); +} + +// Registry. +$registry = Horde_Registry::singleton(); + +// Set user. +Horde_Auth::setAuth($user, array()); + +// Import data. +$result = $registry->call('tasks/import', + array($vtodo, 'text/calendar', $tasklist)); +if (is_a($result, 'PEAR_Error')) { + $cli->fatal($result->toString()); +} + +$cli->message('Imported successfully ' . count($result) . ' tasks', 'cli.success'); + +function usage() +{ + $GLOBALS['cli']->writeln('Usage: import_vtodos.php tasklist user'); + exit; +} + diff --git a/nag/scripts/sql/nag.mssql.sql b/nag/scripts/sql/nag.mssql.sql new file mode 100644 index 000000000..15fe1a741 --- /dev/null +++ b/nag/scripts/sql/nag.mssql.sql @@ -0,0 +1,65 @@ +CREATE TABLE nag_tasks ( + task_id VARCHAR(32) NOT NULL, + task_owner VARCHAR(255) NOT NULL, + task_creator VARCHAR(255) NOT NULL, + task_parent VARCHAR(255) NOT NULL, + task_assignee VARCHAR(255), + task_name VARCHAR(255) NOT NULL, + task_uid VARCHAR(255) NOT NULL, + task_desc VARCHAR(MAX), + task_start INT, + task_due INT, + task_priority INT DEFAULT 0 NOT NULL, + task_estimate FLOAT, + task_category VARCHAR(80), + task_completed SMALLINT DEFAULT 0 NOT NULL, + task_completed_date INT, + task_alarm INT DEFAULT 0 NOT NULL, + task_alarm_methods VARCHAR(MAX), + task_private SMALLINT DEFAULT 0 NOT NULL, +-- + PRIMARY KEY (task_id) +); + +CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); +CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); +CREATE INDEX nag_start_idx ON nag_tasks (task_start); + +CREATE TABLE nag_shares ( + share_id INT NOT NULL, + share_name VARCHAR(255) NOT NULL, + share_owner VARCHAR(255) NOT NULL, + share_flags SMALLINT NOT NULL DEFAULT 0, + perm_creator SMALLINT NOT NULL DEFAULT 0, + perm_default SMALLINT NOT NULL DEFAULT 0, + perm_guest SMALLINT NOT NULL DEFAULT 0, + attribute_name VARCHAR(255) NOT NULL, + attribute_desc VARCHAR(255), + PRIMARY KEY (share_id) +); + +CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); +CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); +CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); +CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); +CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); + +CREATE TABLE nag_shares_groups ( + share_id INT NOT NULL, + group_uid VARCHAR(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); +CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); +CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); + +CREATE TABLE nag_shares_users ( + share_id INT NOT NULL, + user_uid VARCHAR(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); +CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); +CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.oci8.sql b/nag/scripts/sql/nag.oci8.sql new file mode 100644 index 000000000..188011b57 --- /dev/null +++ b/nag/scripts/sql/nag.oci8.sql @@ -0,0 +1,65 @@ +CREATE TABLE nag_tasks ( + task_id VARCHAR2(32) NOT NULL, + task_owner VARCHAR2(255) NOT NULL, + task_creator VARCHAR2(255) NOT NULL, + task_parent VARCHAR2(255) NOT NULL, + task_assignee VARCHAR2(255), + task_name VARCHAR2(255) NOT NULL, + task_uid VARCHAR2(255) NOT NULL, + task_desc CLOB, + task_start INT, + task_due INT, + task_priority INT DEFAULT 0 NOT NULL, + task_estimate FLOAT, + task_category VARCHAR2(80), + task_completed SMALLINT DEFAULT 0 NOT NULL, + task_completed_date INT, + task_alarm INT DEFAULT 0 NOT NULL, + task_alarm_methods CLOB, + task_private SMALLINT DEFAULT 0 NOT NULL, +-- + PRIMARY KEY (task_id) +); + +CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); +CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); +CREATE INDEX nag_start_idx ON nag_tasks (task_start); + +CREATE TABLE nag_shares ( + share_id INT NOT NULL, + share_name VARCHAR2(255) NOT NULL, + share_owner VARCHAR2(25) NOT NULL, + share_flags SMALLINT NOT NULL DEFAULT 0, + perm_creator SMALLINT NOT NULL DEFAULT 0, + perm_default SMALLINT NOT NULL DEFAULT 0, + perm_guest SMALLINT NOT NULL DEFAULT 0, + attribute_name VARCHAR2(255) NOT NULL, + attribute_desc VARCHAR2(255), + PRIMARY KEY (share_id) +); + +CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); +CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); +CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); +CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); +CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); + +CREATE TABLE nag_shares_groups ( + share_id INT NOT NULL, + group_uid VARCHAR(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); +CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); +CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); + +CREATE TABLE nag_shares_users ( + share_id INT NOT NULL, + user_uid VARCHAR2(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); +CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); +CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.sql b/nag/scripts/sql/nag.sql new file mode 100644 index 000000000..df38b0ee3 --- /dev/null +++ b/nag/scripts/sql/nag.sql @@ -0,0 +1,65 @@ +CREATE TABLE nag_tasks ( + task_id VARCHAR(32) NOT NULL, + task_owner VARCHAR(255) NOT NULL, + task_creator VARCHAR(255) NOT NULL, + task_parent VARCHAR(255) NOT NULL, + task_assignee VARCHAR(255), + task_name VARCHAR(255) NOT NULL, + task_uid VARCHAR(255) NOT NULL, + task_desc TEXT, + task_start INT, + task_due INT, + task_priority INT DEFAULT 0 NOT NULL, + task_estimate FLOAT, + task_category VARCHAR(80), + task_completed SMALLINT DEFAULT 0 NOT NULL, + task_completed_date INT, + task_alarm INT DEFAULT 0 NOT NULL, + task_alarm_methods TEXT, + task_private SMALLINT DEFAULT 0 NOT NULL, +-- + PRIMARY KEY (task_id) +); + +CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); +CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); +CREATE INDEX nag_start_idx ON nag_tasks (task_start); + +CREATE TABLE nag_shares ( + share_id INT NOT NULL, + share_name VARCHAR(255) NOT NULL, + share_owner VARCHAR(255) NOT NULL, + share_flags SMALLINT NOT NULL DEFAULT 0, + perm_creator SMALLINT NOT NULL DEFAULT 0, + perm_default SMALLINT NOT NULL DEFAULT 0, + perm_guest SMALLINT NOT NULL DEFAULT 0, + attribute_name VARCHAR(255) NOT NULL, + attribute_desc VARCHAR(255), + PRIMARY KEY (share_id) +); + +CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); +CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); +CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); +CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); +CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); + +CREATE TABLE nag_shares_groups ( + share_id INT NOT NULL, + group_uid VARCHAR(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); +CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); +CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); + +CREATE TABLE nag_shares_users ( + share_id INT NOT NULL, + user_uid VARCHAR(255) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); +CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); +CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/sql/nag.xml b/nag/scripts/sql/nag.xml new file mode 100644 index 000000000..39e545eb6 --- /dev/null +++ b/nag/scripts/sql/nag.xml @@ -0,0 +1,412 @@ + + + + name + false + false + + + + nag_tasks + + + + + task_id + text + 32 + true + + + + task_owner + text + 255 + true + + + + task_creator + text + 255 + true + + + + task_parent + text + 32 + true + + + + task_assignee + text + 255 + + + + task_name + text + 255 + true + + + + task_uid + text + 255 + true + + + + task_desc + clob + + + + task_start + integer + + + + task_due + integer + + + + task_priority + integer + true + 0 + + + + task_estimate + float + + + + task_category + text + 80 + + + + task_completed + integer + 1 + true + 0 + + + + task_completed_date + integer + + + + task_alarm + integer + false + true + 0 + + + + task_alarm_methods + clob + + + + task_private + integer + 1 + true + 0 + + + + nag_primary + true + + task_id + + + + + nag_tasklist + + task_owner + ascending + + + + + nag_uid + + task_uid + ascending + + + + + nag_start + + task_start + ascending + + + + + +
+ + + + nag_shares + + + + + share_id + integer + + true + 4 + + + + share_name + text + + true + 255 + + + + share_owner + text + + true + 255 + + + + share_flags + integer + 0 + true + 2 + + + + perm_creator + integer + 0 + true + 2 + + + + perm_default + integer + 0 + true + 2 + + + + perm_guest + integer + 0 + true + 2 + + + + attribute_name + text + + true + 255 + + + + attribute_desc + text + + false + 255 + + + + nag_shares_share_name + + share_name + ascending + + + + + nag_shares_share_owner + + share_owner + ascending + + + + + nag_shares_perm_creator + + perm_creator + ascending + + + + + nag_shares_perm_default + + perm_default + ascending + + + + + nag_shares_perm_guest + + perm_guest + ascending + + + + + nag_shares_pKey + true + + share_id + ascending + + + + + +
+ + + + nag_shares_groups + + + + + share_id + integer + + true + 4 + + + + group_uid + text + + true + 255 + + + + perm + integer + + true + 2 + + + + nag_shares_groups_share_id + + share_id + ascending + + + + + nag_shares_groups_group_uid + + group_uid + ascending + + + + + nag_shares_groups_perm + + perm + ascending + + + + + +
+ + + + nag_shares_users + + + + + share_id + integer + + true + 4 + + + + user_uid + text + + true + 255 + + + + perm + integer + + true + 2 + + + + nag_shares_users_share_id + + share_id + ascending + + + + + nag_shares_users_user_uid + + user_uid + ascending + + + + + nag_shares_users_perm + + perm + ascending + + + + + +
+ +
diff --git a/nag/scripts/upgrades/1.1_to_2.0.mysql.sql b/nag/scripts/upgrades/1.1_to_2.0.mysql.sql new file mode 100644 index 000000000..b51f2c991 --- /dev/null +++ b/nag/scripts/upgrades/1.1_to_2.0.mysql.sql @@ -0,0 +1,23 @@ +-- You can simply execute this file in your database. +-- +-- Run as: +-- +-- $ mysql --user=root --password= < 1.1_to_2.0.mysql.sql + +ALTER TABLE nag_tasks DROP COLUMN task_modified; + +ALTER TABLE nag_tasks CHANGE COLUMN task_category task_category VARCHAR(80); +ALTER TABLE nag_tasks CHANGE COLUMN task_id task_id VARCHAR(32) NOT NULL; +ALTER TABLE nag_tasks CHANGE COLUMN task_private task_private SMALLINT DEFAULT 0 NOT NULL; + +ALTER TABLE nag_tasks ADD COLUMN task_uid VARCHAR(255) NOT NULL; +ALTER TABLE nag_tasks ADD COLUMN task_alarm INT NOT NULL; + +ALTER TABLE nag_tasks ADD INDEX nag_tasklist_idx (task_owner); +ALTER TABLE nag_tasks ADD INDEX nag_uid_idx (task_uid); + +UPDATE nag_tasks SET task_id = CONCAT(task_owner, task_id); +UPDATE nag_tasks SET task_uid = CONCAT('nag:', task_id) WHERE task_id NOT LIKE 'nag:%'; + +ALTER TABLE nag_tasks DROP PRIMARY KEY; +ALTER TABLE nag_tasks ADD PRIMARY KEY (task_id); diff --git a/nag/scripts/upgrades/1.1_to_2.0.oci8.sql b/nag/scripts/upgrades/1.1_to_2.0.oci8.sql new file mode 100644 index 000000000..e063e8fd0 --- /dev/null +++ b/nag/scripts/upgrades/1.1_to_2.0.oci8.sql @@ -0,0 +1,28 @@ +ALTER TABLE nag_tasks DROP COLUMN task_modified; + +ALTER TABLE nag_tasks ADD task_category_new VARCHAR2(80); +UPDATE nag_tasks SET task_category_new = task_category; +ALTER TABLE nag_tasks DROP COLUMN task_category; +ALTER TABLE nag_tasks RENAME COLUMN task_category_new TO task_category; + +ALTER TABLE nag_tasks MODIFY task_name VARCHAR2(255); +ALTER TABLE nag_tasks MODIFY task_private INT DEFAULT 0; + +ALTER TABLE nag_tasks ADD task_uid VARCHAR2(255); +ALTER TABLE nag_tasks ADD task_alarm INT DEFAULT 0 NOT NULL; + +CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner); +CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); + +ALTER TABLE nag_tasks ADD task_id_new VARCHAR2(32); +UPDATE nag_tasks SET task_id_new = task_id; +ALTER TABLE nag_tasks ADD task_owner_new VARCHAR2(255); +UPDATE nag_tasks SET task_owner_new = task_owner; +ALTER TABLE nag_tasks DROP (task_id, task_owner); +ALTER TABLE nag_tasks RENAME COLUMN task_id_new to task_id; +ALTER TABLE nag_tasks RENAME COLUMN task_owner_new to task_owner; + +UPDATE nag_tasks SET task_id = CONCAT(task_owner, task_id); +UPDATE nag_tasks SET task_uid = CONCAT('nag:', task_id) WHERE task_id NOT LIKE 'nag:%'; + +ALTER TABLE nag_tasks ADD CONSTRAINT task_id PRIMARY KEY (task_id); diff --git a/nag/scripts/upgrades/1.1_to_2.0.pgsql.sql b/nag/scripts/upgrades/1.1_to_2.0.pgsql.sql new file mode 100644 index 000000000..d29d1a4c8 --- /dev/null +++ b/nag/scripts/upgrades/1.1_to_2.0.pgsql.sql @@ -0,0 +1,58 @@ +-- Update script to update nag 1.1 data to 2.x data for pgsql +-- Converted from mysql version by Daniel E. Markle +-- +-- You can simply execute this file in your database. +-- +-- Run as: +-- +-- $ psql -f < 1.1_to_2.0.pgsql.sql + +ALTER TABLE nag_tasks DROP COLUMN task_modified; + +BEGIN; +ALTER TABLE nag_tasks ADD COLUMN task_category_new VARCHAR(80); +UPDATE nag_tasks SET task_category_new = task_category; +ALTER TABLE nag_tasks DROP task_category; +ALTER TABLE nag_tasks RENAME task_category_new TO task_category; +COMMIT; + +BEGIN; +ALTER TABLE nag_tasks ADD COLUMN task_id_new VARCHAR(32); +UPDATE nag_tasks SET task_id_new = task_id; +ALTER TABLE nag_tasks DROP task_id; +ALTER TABLE nag_tasks RENAME task_id_new TO task_id; +ALTER TABLE nag_tasks ALTER COLUMN task_id SET NOT NULL; +COMMIT; + +BEGIN; +ALTER TABLE nag_tasks ADD COLUMN task_private_new SMALLINT; +UPDATE nag_tasks SET task_private_new = task_private; +ALTER TABLE nag_tasks DROP task_private; +ALTER TABLE nag_tasks RENAME task_private_new TO task_private; +ALTER TABLE nag_tasks ALTER COLUMN task_private SET NOT NULL; +ALTER TABLE nag_tasks ALTER COLUMN task_private SET DEFAULT 0; +COMMIT; + +BEGIN; +ALTER TABLE nag_tasks ADD COLUMN task_uid VARCHAR(255); +UPDATE nag_tasks SET task_uid = ''; +ALTER TABLE nag_tasks ALTER COLUMN task_uid SET NOT NULL; +COMMIT; + +BEGIN; +ALTER TABLE nag_tasks ADD COLUMN task_alarm INT; +UPDATE nag_tasks SET task_alarm = 0; +ALTER TABLE nag_tasks ALTER COLUMN task_alarm SET NOT NULL; +COMMIT; + +ALTER TABLE nag_tasks ADD INDEX nag_tasklist_idx (task_owner); +ALTER TABLE nag_tasks ADD INDEX nag_uid_idx (task_uid); + +UPDATE nag_tasks SET task_id = task_owner || task_id; +UPDATE nag_tasks SET task_uid = 'nag:' || task_id WHERE task_id NOT LIKE 'nag:%'; + +-- this assumes the default constraint name was used at table creation time +ALTER TABLE nag_tasks DROP CONSTRAINT nag_tasks_pkey; +ALTER TABLE nag_tasks ADD CONSTRAINT nag_tasks_pkey PRIMARY KEY (task_id); + +CREATE INDEX nag_uid_idx ON nag_tasks (task_uid); diff --git a/nag/scripts/upgrades/2.1_to_2.2.sql b/nag/scripts/upgrades/2.1_to_2.2.sql new file mode 100644 index 000000000..96a0573d6 --- /dev/null +++ b/nag/scripts/upgrades/2.1_to_2.2.sql @@ -0,0 +1,45 @@ +ALTER TABLE nag_tasks ADD task_estimate FLOAT; +ALTER TABLE nag_tasks ADD task_completed_date INT; +ALTER TABLE nag_tasks ADD task_start INT; +ALTER TABLE nag_tasks ADD task_parent VARCHAR(32) DEFAULT '' NOT NULL; + +CREATE INDEX nag_start_idx ON nag_tasks (task_start); + +CREATE TABLE nag_shares ( + share_id INT NOT NULL, + share_name VARCHAR(255) NOT NULL, + share_owner VARCHAR(32) NOT NULL, + share_flags SMALLINT NOT NULL DEFAULT 0, + perm_creator SMALLINT NOT NULL DEFAULT 0, + perm_default SMALLINT NOT NULL DEFAULT 0, + perm_guest SMALLINT NOT NULL DEFAULT 0, + attribute_name VARCHAR(255) NOT NULL, + attribute_desc VARCHAR(255), + PRIMARY KEY (share_id) +); + +CREATE INDEX nag_shares_share_name_idx ON nag_shares (share_name); +CREATE INDEX nag_shares_share_owner_idx ON nag_shares (share_owner); +CREATE INDEX nag_shares_perm_creator_idx ON nag_shares (perm_creator); +CREATE INDEX nag_shares_perm_default_idx ON nag_shares (perm_default); +CREATE INDEX nag_shares_perm_guest_idx ON nag_shares (perm_guest); + +CREATE TABLE nag_shares_groups ( + share_id INT NOT NULL, + group_uid INT NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_groups_share_id_idx ON nag_shares_groups (share_id); +CREATE INDEX nag_shares_groups_group_uid_idx ON nag_shares_groups (group_uid); +CREATE INDEX nag_shares_groups_perm_idx ON nag_shares_groups (perm); + +CREATE TABLE nag_shares_users ( + share_id INT NOT NULL, + user_uid VARCHAR(32) NOT NULL, + perm SMALLINT NOT NULL +); + +CREATE INDEX nag_shares_users_share_id_idx ON nag_shares_users (share_id); +CREATE INDEX nag_shares_users_user_uid_idx ON nag_shares_users (user_uid); +CREATE INDEX nag_shares_users_perm_idx ON nag_shares_users (perm); diff --git a/nag/scripts/upgrades/2.2_to_2.3.pgsql.sql b/nag/scripts/upgrades/2.2_to_2.3.pgsql.sql new file mode 100644 index 000000000..5eb03eb8a --- /dev/null +++ b/nag/scripts/upgrades/2.2_to_2.3.pgsql.sql @@ -0,0 +1,3 @@ +ALTER TABLE nag_shares ALTER share_owner TYPE VARCHAR(255); +ALTER TABLE nag_shares_users ALTER user_uid TYPE VARCHAR(255); +ALTER TABLE nag_shares_groups ALTER group_uid TYPE VARCHAR(255); diff --git a/nag/scripts/upgrades/2.2_to_2.3.sql b/nag/scripts/upgrades/2.2_to_2.3.sql new file mode 100644 index 000000000..c45149573 --- /dev/null +++ b/nag/scripts/upgrades/2.2_to_2.3.sql @@ -0,0 +1,3 @@ +ALTER TABLE nag_shares CHANGE share_owner share_owner VARCHAR(255); +ALTER TABLE nag_shares_users CHANGE user_uid user_uid VARCHAR(255); +ALTER TABLE nag_shares_groups CHANGE group_uid group_uid VARCHAR(255); diff --git a/nag/scripts/upgrades/2006-02-07_add_estimate_field.sql b/nag/scripts/upgrades/2006-02-07_add_estimate_field.sql new file mode 100644 index 000000000..08c6c9ef7 --- /dev/null +++ b/nag/scripts/upgrades/2006-02-07_add_estimate_field.sql @@ -0,0 +1,3 @@ +-- You can simply execute this file in your database. + +ALTER TABLE nag_tasks ADD task_estimate FLOAT; diff --git a/nag/scripts/upgrades/2006-04-18_add_creator_and_assignee_fields.php b/nag/scripts/upgrades/2006-04-18_add_creator_and_assignee_fields.php new file mode 100755 index 000000000..26d6c10ab --- /dev/null +++ b/nag/scripts/upgrades/2006-04-18_add_creator_and_assignee_fields.php @@ -0,0 +1,73 @@ +#!/usr/bin/php + + */ + +// Do CLI checks and environment setup first. +require_once dirname(__FILE__) . '/../../lib/base.load.php'; +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 CLI environment - make sure there's no time limit, init some +// variables, etc. +Horde_Cli::init(); + +$nag_authentication = 'none'; +require_once NAG_BASE . '/lib/base.php'; + +if ($conf['storage']['driver'] != 'sql') { + exit('No conversion for drivers other than SQL currently.'); +} + +$storage = Nag_Driver::singleton(''); +$storage->initialize(); +$db = &$storage->_db; + +// Add db fields. We don't check for success/failure here in case someone did +// this manually. +$result = $db->query('ALTER TABLE nag_tasks ADD task_creator VARCHAR(255)'); +if (is_a($result, 'PEAR_Error')) { + echo $result->toString() . "\n"; +} +$result = $db->query('ALTER TABLE nag_tasks ADD task_assignee VARCHAR(255)'); +if (is_a($result, 'PEAR_Error')) { + echo $result->toString() . "\n"; +} + +// Run through every tasklist. +$sql = 'UPDATE nag_tasks SET task_creator = ? WHERE task_id = ? AND task_owner = ?'; +$sth = $db->prepare($sql); +$tasklists = $nag_shares->listAllShares(); +foreach ($tasklists as $tasklist => $share) { + echo "Storing task creators for $tasklist ...\n"; + + // List all tasks. + $tasks = Nag::listTasks(null, null, null, $tasklist, 1); + $owner = $share->get('owner'); + + $tasks->reset(); + while ($task = $tasks->each()) { + $values = array($owner, $task->id, $task->tasklist); + $result = $db->execute($sth, $values); + if (is_a($result, 'PEAR_Error')) { + Horde::fatal($result, __FILE__, __LINE__); + } + } +} + +echo "\n** Creators successfully stored. ***\n"; + +echo "\n** Please manually apply NOT NULL constraint to 'task_creator' column. ***\n"; diff --git a/nag/scripts/upgrades/2006-10-29_add_completed_date.sql b/nag/scripts/upgrades/2006-10-29_add_completed_date.sql new file mode 100644 index 000000000..509f044a1 --- /dev/null +++ b/nag/scripts/upgrades/2006-10-29_add_completed_date.sql @@ -0,0 +1,3 @@ +-- You can simply execute this file in your database. + +ALTER TABLE nag_tasks ADD task_completed_date INT; diff --git a/nag/scripts/upgrades/2007-05-03_add_start_date.sql b/nag/scripts/upgrades/2007-05-03_add_start_date.sql new file mode 100644 index 000000000..151674536 --- /dev/null +++ b/nag/scripts/upgrades/2007-05-03_add_start_date.sql @@ -0,0 +1,2 @@ +ALTER TABLE nag_tasks ADD task_start INT; +CREATE INDEX nag_start_idx ON nag_tasks (task_start); diff --git a/nag/scripts/upgrades/2007-05-16_sub_tasks.sql b/nag/scripts/upgrades/2007-05-16_sub_tasks.sql new file mode 100644 index 000000000..63188a1d5 --- /dev/null +++ b/nag/scripts/upgrades/2007-05-16_sub_tasks.sql @@ -0,0 +1 @@ +ALTER TABLE nag_tasks ADD task_parent VARCHAR(32) DEFAULT '' NOT NULL; diff --git a/nag/scripts/upgrades/2008-06-17_fix_varchar_lengths.sql b/nag/scripts/upgrades/2008-06-17_fix_varchar_lengths.sql new file mode 100644 index 000000000..44cfd9241 --- /dev/null +++ b/nag/scripts/upgrades/2008-06-17_fix_varchar_lengths.sql @@ -0,0 +1,2 @@ +ALTER TABLE nag_shares CHANGE share_owner share_owner VARCHAR(255); +ALTER TABLE nag_shares_users CHANGE user_uid user_uid VARCHAR(255); \ No newline at end of file diff --git a/nag/scripts/upgrades/2008-09-23_fix_group_uid.sql b/nag/scripts/upgrades/2008-09-23_fix_group_uid.sql new file mode 100644 index 000000000..dcc4311d8 --- /dev/null +++ b/nag/scripts/upgrades/2008-09-23_fix_group_uid.sql @@ -0,0 +1 @@ +ALTER TABLE nag_shares_groups CHANGE group_uid group_uid VARCHAR(255); diff --git a/nag/scripts/upgrades/2009-02-03_add_alarm_methods.mssql.sql b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.mssql.sql new file mode 100644 index 000000000..7b5f1e367 --- /dev/null +++ b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.mssql.sql @@ -0,0 +1 @@ +ALTER TABLE nag_tasks ADD task_alarm_methods VARCHAR(MAX); diff --git a/nag/scripts/upgrades/2009-02-03_add_alarm_methods.oci8.sql b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.oci8.sql new file mode 100644 index 000000000..7e1c6a430 --- /dev/null +++ b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.oci8.sql @@ -0,0 +1 @@ +ALTER TABLE nag_tasks ADD task_alarm_methods CLOB; diff --git a/nag/scripts/upgrades/2009-02-03_add_alarm_methods.sql b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.sql new file mode 100644 index 000000000..964dcbffa --- /dev/null +++ b/nag/scripts/upgrades/2009-02-03_add_alarm_methods.sql @@ -0,0 +1 @@ +ALTER TABLE nag_tasks ADD task_alarm_methods TEXT; diff --git a/nag/scripts/upgrades/convert_datatree_shares_to_sql.php b/nag/scripts/upgrades/convert_datatree_shares_to_sql.php new file mode 100755 index 000000000..fc2d1a5cd --- /dev/null +++ b/nag/scripts/upgrades/convert_datatree_shares_to_sql.php @@ -0,0 +1,200 @@ +#!/usr/bin/env php +init(); + +/* Grab what we need to steal the DB config */ +require_once HORDE_BASE . '/config/conf.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.nag\''); +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 = ?'); +while ($row = $shares_result->fetchRow(MDB2_FETCHMODE_ASSOC)) { + $share_id = $row['datatree_id']; + $share_name = $row['datatree_name']; + + /* Build an array to hold the new row data */ + $nextId = $db->nextId('nag_shares'); + if (is_a($nextId, 'PEAR_Error')) { + $cli->message($nextId->toString(), 'cli.error'); + $error_cnt++; + continue; + } + $data = array('share_id' => $nextId, + 'share_name' => $share_name); + + $query_result = $query->execute($share_id); + $rows = $query_result->fetchAll(MDB2_FETCHMODE_ASSOC); + $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 'desc': + $data['attribute_desc'] = $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'); + $error = false; + $db->beginTransaction(); + $result = insertData('nag_shares', $data); + if (is_a($result, 'PEAR_Error')) { + $cli->message($result->toString(), 'cli.error'); + $error = true; + } + if (count($groups)) { + foreach ($groups as $group) { + $result = insertData('nag_shares_groups', $group); + if (is_a($result, 'PEAR_Error')) { + $cli->message($result->toString(), 'cli.error'); + $error = true; + } + } + } + if (count($users)) { + foreach ($users as $user) { + $result = insertData('nag_shares_users', $user); + if (is_a($result, 'PEAR_Error')) { + $cli->message($result->toString(), 'cli.error'); + $error = true; + } + } + } + + /* Delete the datatree data, but ONLY if it was requested */ + if ($delete_dt_data && !$error) { + $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); + if (is_a($delete, 'PEAR_Error')) { + $cli->message($delete->toString(), 'cli.error'); + $error = true; + } else { + $delete_result = $delete->execute(array($share_id)); + if (is_a($delete_result, 'PEAR_Error')) { + $cli->message($delete_result->toString(), 'cli.error'); + $error = true; + } + } + $delete->free(); + + $delete = $db->prepare('DELETE FROM horde_datatree WHERE datatree_id = ?', null, MDB2_PREPARE_MANIP); + if (is_a($delete, 'PEAR_Error')) { + $cli->message($delete->toString(), 'cli.error'); + $error = true; + } else { + $delete_result = $delete->execute(array($share_id)); + if (is_a($delete_result, 'PEAR_Error')) { + $cli->message($delete_result->toString(), 'cli.error'); + $error = true; + } + } + $delete->free(); + } + + /* Cleanup */ + $query_result->free(); + unset($row, $rows, $data, $groups, $users); + if ($error) { + $db->rollback(); + $cli->message('Rollback for share data for share_id: ' . $share_id, 'cli.message'); + ++$error_cnt; + } else { + $db->commit(); + $cli->message('Commit for share data for share_id: ' . $share_id, 'cli.message'); + } +} +if ($error_cnt) { + $cli->message(sprintf("Encountered %u errors.", $error_cnt)); +} +echo "\nDone.\n"; + +/** + * Helper function + */ +function insertData($table, $data) +{ + $fields = array_keys($data); + $values = array_values($data); + + $insert = $GLOBALS['db']->prepare('INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . str_repeat('?, ', count($values) - 1) . '?)', + null, MDB2_PREPARE_MANIP); + if (is_a($insert,'PEAR_Error')) { + return $insert; + } + $insert_result = $insert->execute($values); + $insert->free(); + return $insert_result; +} diff --git a/nag/scripts/upgrades/create_missing_add_histories_sql.php b/nag/scripts/upgrades/create_missing_add_histories_sql.php new file mode 100755 index 000000000..19b964b90 --- /dev/null +++ b/nag/scripts/upgrades/create_missing_add_histories_sql.php @@ -0,0 +1,56 @@ +#!/usr/bin/php + + */ + +// Do CLI checks and environment setup first. +require_once dirname(__FILE__) . '/../../lib/base.load.php'; +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 CLI environment - make sure there's no time limit, init some +// variables, etc. +$cli = Horde_Cli::singleton(); +$cli->init(); + +$nag_authentication = 'none'; +require_once NAG_BASE . '/lib/base.php'; + +$history = Horde_History::singleton(); + +// Run through every tasklist. +$tasklists = $nag_shares->listAllShares(); +foreach ($tasklists as $tasklist => $share) { + echo "Creating default histories for $tasklist ...\n"; + + // List all tasks. + $storage = Nag_Driver::singleton($tasklist); + $storage->retrieve(); + $tasks = $storage->listTasks(); + + foreach ($tasks as $taskId => $task) { + $log = $history->getHistory('nag:' . $tasklist . ':' . $task['uid']); + $created = false; + foreach ($log->getData() as $entry) { + if ($entry['action'] == 'add') { + $created = true; + break; + } + } + if (!$created) { + $history->log('nag:' . $tasklist . ':' . $task['uid'], array('action' => 'add'), true); + } + } +} + +echo "\n** Default histories successfully created ***\n"; diff --git a/nag/search.php b/nag/search.php new file mode 100644 index 000000000..1b0355e12 --- /dev/null +++ b/nag/search.php @@ -0,0 +1,18 @@ +push('document.search.search_pattern.focus()', 'javascript'); +Horde::addScriptFile('prototype.js', 'horde', true); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +require NAG_TEMPLATES . '/search/search.inc'; +require NAG_TEMPLATES . '/panel.inc'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/task.php b/nag/task.php new file mode 100644 index 000000000..a4a2d2a9b --- /dev/null +++ b/nag/task.php @@ -0,0 +1,240 @@ + + * @author Jan Schneider + */ + +function _delete($task_id, $tasklist_id) +{ + if (!empty($task_id)) { + $task = Nag::getTask($tasklist_id, $task_id); + if (is_a($task, 'PEAR_Error')) { + $GLOBALS['notification']->push( + sprintf(_("Error deleting task: %s"), + $task->getMessage()), 'horde.error'); + } else { + $share = $GLOBALS['nag_shares']->getShare($tasklist_id); + if (is_a($share, 'PEAR_Error') || + !$share->hasPermission(Horde_Auth::getAuth(), PERMS_DELETE)) { + $GLOBALS['notification']->push( + _("Access denied deleting task."), 'horde.error'); + } else { + $storage = Nag_Driver::singleton($tasklist_id); + $result = $storage->delete($task_id); + if (is_a($result, 'PEAR_Error')) { + $GLOBALS['notification']->push( + sprintf(_("There was a problem deleting %s: %s"), + $task->name, $result->getMessage()), + 'horde.error'); + } else { + $GLOBALS['notification']->push(sprintf(_("Deleted %s."), + $task->name), + 'horde.success'); + } + } + } + } + + /* Return to the task list. */ + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +require_once dirname(__FILE__) . '/lib/base.php'; +require_once NAG_BASE . '/lib/Forms/task.php'; +$vars = Horde_Variables::getDefaultVariables(); + +/* Redirect to the task list if no action has been requested. */ +$actionID = $vars->get('actionID'); +if (is_null($actionID)) { + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +/* Run through the action handlers. */ +switch ($actionID) { +case 'add_task': + /* Check permissions. */ + if (Nag::hasPermission('max_tasks') !== true && + Nag::hasPermission('max_tasks') <= Nag::countTasks()) { + $message = @htmlspecialchars(sprintf(_("You are not allowed to create more than %d tasks."), Nag::hasPermission('max_tasks')), ENT_COMPAT, Horde_Nls::getCharset()); + if (!empty($conf['hooks']['permsdenied'])) { + $message = Horde::callHook('_perms_hook_denied', array('nag:max_tasks'), 'horde', $message); + } + $notification->push($message, 'horde.error', array('content.raw')); + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + $vars->set('actionID', 'save_task'); + if (!$vars->exists('tasklist_id')) { + $vars->set('tasklist_id', Nag::getDefaultTasklist(PERMS_EDIT)); + } + $form = new Nag_TaskForm($vars, _("New Task")); + break; + +case 'modify_task': + $task_id = $vars->get('task'); + $tasklist_id = $vars->get('tasklist'); + $share = $GLOBALS['nag_shares']->getShare($tasklist_id); + if (is_a($share, 'PEAR_Error')) { + $notification->push(sprintf(_("Access denied editing task: %s"), $share->getMessage()), 'horde.error'); + } elseif (!$share->hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + $notification->push(_("Access denied editing task."), 'horde.error'); + } else { + $task = Nag::getTask($tasklist_id, $task_id); + if (!isset($task) || !isset($task->id)) { + $notification->push(_("Task not found."), 'horde.error'); + } elseif ($task->private && $task->owner != Horde_Auth::getAuth()) { + $notification->push(_("Access denied editing task."), 'horde.error'); + } else { + $vars = new Horde_Variables($task->toHash()); + $vars->set('actionID', 'save_task'); + $vars->set('old_tasklist', $task->tasklist); + $form = new Nag_TaskForm($vars, sprintf(_("Edit: %s"), $task->name), $share->hasPermission(Horde_Auth::getAuth(), PERMS_DELETE)); + break; + } + } + + /* Return to the task list. */ + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + +case 'save_task': + if ($vars->get('submitbutton') == _("Delete this task")) { + _delete($vars->get('task_id'), $vars->get('old_tasklist')); + } + + $form = new Nag_TaskForm($vars, $vars->get('task_id') ? sprintf(_("Edit: %s"), $vars->get('name')) : _("New Task")); + if (!$form->validate($vars)) { + break; + } + + $form->getInfo($vars, $info); + if ($prefs->isLocked('default_tasklist') || + count(Nag::listTasklists(false, PERMS_EDIT)) <= 1) { + $info['tasklist_id'] = $info['old_tasklist'] = Nag::getDefaultTasklist(PERMS_EDIT); + } + $share = $GLOBALS['nag_shares']->getShare($info['tasklist_id']); + if (is_a($share, 'PEAR_Error')) { + $notification->push(sprintf(_("Access denied saving task: %s"), $share->getMessage()), 'horde.error'); + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } elseif (!$share->hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + $notification->push(sprintf(_("Access denied saving task to %s."), $share->get('name')), 'horde.error'); + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + /* Add new category. */ + if ($info['category']['new']) { + require_once 'Horde/Prefs/CategoryManager.php'; + $cManager = new Prefs_CategoryManager(); + $cManager->add($info['category']['value']); + } + + /* If a task id is set, we're modifying an existing task. + * Otherwise, we're adding a new task with the provided + * attributes. */ + if (!empty($info['task_id']) && !empty($info['old_tasklist'])) { + $storage = Nag_Driver::singleton($info['old_tasklist']); + $result = $storage->modify($info['task_id'], $info['name'], + $info['desc'], $info['start'], + $info['due'], $info['priority'], + (float)$info['estimate'], + (int)$info['completed'], + $info['category']['value'], + $info['alarm'], $info['methods'], + $info['parent'], (int)$info['private'], + Horde_Auth::getAuth(), $info['assignee'], null, + $info['tasklist_id']); + } else { + /* Check permissions. */ + if (Nag::hasPermission('max_tasks') !== true && + Nag::hasPermission('max_tasks') <= Nag::countTasks()) { + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + /* Creating a new task. */ + $storage = Nag_Driver::singleton($info['tasklist_id']); + $result = $storage->add($info['name'], $info['desc'], $info['start'], + $info['due'], $info['priority'], + (float)$info['estimate'], + (int)$info['completed'], + $info['category']['value'], + $info['alarm'], $info['methods'], null, + $info['parent'], (int)$info['private'], + Horde_Auth::getAuth(), $info['assignee']); + } + + /* Check our results. */ + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf(_("There was a problem saving the task: %s."), $result->getMessage()), 'horde.error'); + } else { + $notification->push(sprintf(_("Saved %s."), $info['name']), 'horde.success'); + /* Return to the task list. */ + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + break; + +case 'delete_tasks': + /* Delete the task if we're provided with a valid task ID. */ + _delete(Horde_Util::getFormData('task'), Horde_Util::getFormData('tasklist')); + +case 'complete_task': + /* Toggle the task's completion status if we're provided with a + * valid task ID. */ + $task_id = Horde_Util::getFormData('task'); + $tasklist_id = Horde_Util::getFormData('tasklist'); + if (isset($task_id)) { + $share = $GLOBALS['nag_shares']->getShare($tasklist_id); + $task = Nag::getTask($tasklist_id, $task_id); + if (is_a($share, 'PEAR_Error') || !$share->hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + $notification->push(sprintf(_("Access denied completing task %s."), $task->name), 'horde.error'); + } else { + $task->completed = !$task->completed; + if ($task->completed) { + $task->completed_date = time(); + } else { + $task->completed_date = null; + } + $result = $task->save(); + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf(_("There was a problem completing %s: %s"), + $task->name, $result->getMessage()), 'horde.error'); + } else { + if ($task->completed) { + $notification->push(sprintf(_("Completed %s."), $task->name), 'horde.success'); + } else { + $notification->push(sprintf(_("%s is now incomplete."), $task->name), 'horde.success'); + } + } + } + } + + $url = $vars->get('url'); + if (!empty($url)) { + header('Location: ' . $url); + } else { + header('Location: ' . Horde::applicationUrl('list.php', true)); + } + exit; + +default: + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +$title = $form->getTitle(); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +$form->renderActive(); +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/tasklists/create.php b/nag/tasklists/create.php new file mode 100644 index 000000000..76d05cb49 --- /dev/null +++ b/nag/tasklists/create.php @@ -0,0 +1,39 @@ +isLocked('default_tasklist')) { + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +$vars = Horde_Variables::getDefaultVariables(); +$form = new Nag_CreateTaskListForm($vars); + +// Execute if the form is valid. +if ($form->validate($vars)) { + $result = $form->execute(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } else { + $notification->push(sprintf(_("The task list \"%s\" has been created."), $vars->get('name')), 'horde.success'); + } + + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} + +$title = $form->getTitle(); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +echo $form->renderActive($form->getRenderer(), $vars, 'create.php', 'post'); +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/tasklists/delete.php b/nag/tasklists/delete.php new file mode 100644 index 000000000..8ecd8e32c --- /dev/null +++ b/nag/tasklists/delete.php @@ -0,0 +1,56 @@ +get('t'); +if ($tasklist_id == Horde_Auth::getAuth()) { + $notification->push(_("This task list cannot be deleted."), 'horde.warning'); + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} + +$tasklist = $nag_shares->getShare($tasklist_id); +if (is_a($tasklist, 'PEAR_Error')) { + $notification->push($tasklist, 'horde.error'); + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} elseif ($tasklist->get('owner') != Horde_Auth::getAuth()) { + $notification->push(_("You are not allowed to delete this task list."), 'horde.error'); + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} + +$form = new Nag_DeleteTaskListForm($vars, $tasklist); + +// Execute if the form is valid (must pass with POST variables only). +if ($form->validate(new Variables($_POST))) { + $result = $form->execute(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } elseif ($result) { + $notification->push(sprintf(_("The task list \"%s\" has been deleted."), $tasklist->get('name')), 'horde.success'); + } + + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} + +$title = $form->getTitle(); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +echo $form->renderActive($form->getRenderer(), $vars, 'delete.php', 'post'); +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/tasklists/edit.php b/nag/tasklists/edit.php new file mode 100644 index 000000000..e2b23f562 --- /dev/null +++ b/nag/tasklists/edit.php @@ -0,0 +1,55 @@ +getShare($vars->get('t')); +if (is_a($tasklist, 'PEAR_Error')) { + $notification->push($tasklist, 'horde.error'); + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} elseif ($tasklist->get('owner') != Horde_Auth::getAuth()) { + $notification->push(_("You are not allowed to change this task list."), 'horde.error'); + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} +$form = new Nag_EditTaskListForm($vars, $tasklist); + +// Execute if the form is valid. +if ($form->validate($vars)) { + $original_name = $tasklist->get('name'); + $result = $form->execute(); + if (is_a($result, 'PEAR_Error')) { + $notification->push($result, 'horde.error'); + } else { + if ($tasklist->get('name') != $original_name) { + $notification->push(sprintf(_("The task list \"%s\" has been renamed to \"%s\"."), $original_name, $tasklist->get('name')), 'horde.success'); + } else { + $notification->push(sprintf(_("The task list \"%s\" has been saved."), $original_name), 'horde.success'); + } + } + + header('Location: ' . Horde::applicationUrl('tasklists/', true)); + exit; +} + +$vars->set('name', $tasklist->get('name')); +$vars->set('description', $tasklist->get('desc')); +$title = $form->getTitle(); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +echo $form->renderActive($form->getRenderer(), $vars, 'edit.php', 'post'); +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/tasklists/index.php b/nag/tasklists/index.php new file mode 100644 index 000000000..ec1aa3cb4 --- /dev/null +++ b/nag/tasklists/index.php @@ -0,0 +1,61 @@ + $max_length) { + return substr_replace($url, $separator, $first_chunk_length, -$last_chunk_length); + } + + return $url; +} + +require_once dirname(__FILE__) . '/../lib/base.php'; +if (@include_once 'HTTP/WebDAV/Server.php') { + require_once 'Horde/RPC/webdav.php'; +} + +/* Exit if this isn't an authenticated user. */ +if (!Horde_Auth::getAuth()) { + require NAG_BASE . '/list.php'; + exit; +} + +$webdav = is_callable(array('HTTP_WebDAV_Server_Horde', 'DELETE')); +$edit_url_base = Horde::applicationUrl('tasklists/edit.php'); +$perms_url_base = Horde::url($registry->get('webroot', 'horde') . '/services/shares/edit.php?app=nag', true); +$delete_url_base = Horde::applicationUrl('tasklists/delete.php'); +$display_url_base = Horde::applicationUrl('list.php', true, -1); +$subscribe_url_base = $webdav + ? Horde::url($registry->get('webroot', 'horde') . '/rpc.php/nag/', true, -1) + : Horde::applicationUrl('ics.php', true, -1); + +$tasklists = Nag::listTasklists(true); +$sorted_tasklists = array(); +foreach ($tasklists as $tasklist) { + $sorted_tasklists[$tasklist->getName()] = $tasklist->get('name'); +} +asort($sorted_tasklists); + +$edit_img = Horde::img('edit.png', _("Edit"), null, $registry->getImageDir('horde')); +$perms_img = Horde::img('perms.png', _("Change Permissions"), null, $registry->getImageDir('horde')); +$delete_img = Horde::img('delete.png', _("Delete"), null, $registry->getImageDir('horde')); + +Horde::addScriptFile('popup.js', 'horde', true); +Horde::addScriptFile('tables.js', 'horde', true); +$title = _("Manage Task Lists"); +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +require NAG_TEMPLATES . '/tasklist_list.php'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/tasklists/info.php b/nag/tasklists/info.php new file mode 100644 index 000000000..62a2e8776 --- /dev/null +++ b/nag/tasklists/info.php @@ -0,0 +1,39 @@ +getShare(Horde_Util::getFormData('t')); +if (is_a($tasklist, 'PEAR_Error')) { + exit; +} + +$webdav = is_callable(array('HTTP_WebDAV_Server_Horde', 'DELETE')); +$subscribe_url = $webdav + ? Horde::url($registry->get('webroot', 'horde') . '/rpc.php/nag/', true, -1) + . $tasklist->get('owner') . '/' . $tasklist->getName() . '.ics' + : Horde_Util::addParameter(Horde::applicationUrl('ics.php', true, -1), + 't', $tasklist->getName()); + +$identity = Identity::singleton('none', $tasklist->get('owner')); +$owner_name = $identity->getValue('fullname'); +if (trim($owner_name) == '') { + $owner_name = Horde_Auth::removeHook(Horde_Auth::getAuth()); +} + + +require NAG_TEMPLATES . '/tasklist_info.php'; diff --git a/nag/tasks/index.php b/nag/tasks/index.php new file mode 100644 index 000000000..f2e1d271f --- /dev/null +++ b/nag/tasks/index.php @@ -0,0 +1,59 @@ +getValue('sortby'), + $prefs->getValue('sortdir'), + $prefs->getValue('altsortby'), + null, + 1); +if (is_a($tasks, 'PEAR_Error')) { + Horde::fatal($tasks); +} + +$search_pattern = '/^' . preg_quote($search, '/') . '/i'; +$search_results = new Nag_Task(); +$tasks->reset(); +while ($task = &$tasks->each()) { + if (preg_match($search_pattern, $task->name)) { + $search_results->add($task); + } +} + +$search_results->reset(); +if ($search_results->count() == 1) { + $task = $search_results->each(); + header('Location: ' . Horde::url($task->view_link, true)); + exit; +} + +$tasks = $search_results; +$title = sprintf(_("Search: Results for \"%s\""), $search); +$print_view = null; +$actionID = null; + +Horde::addScriptFile('popup.js', 'horde', true); +Horde::addScriptFile('tooltip.js', 'horde', true); +Horde::addScriptFile('prototype.js', 'horde', true); +Horde::addScriptFile('effects.js', 'horde', true); +Horde::addScriptFile('QuickFinder.js', 'horde', true); + +require NAG_TEMPLATES . '/common-header.inc'; +require NAG_TEMPLATES . '/menu.inc'; +echo '
'; +require NAG_TEMPLATES . '/list.html.php'; +require NAG_TEMPLATES . '/panel.inc'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/nag/templates/common-header.inc b/nag/templates/common-header.inc new file mode 100644 index 000000000..f2402a296 --- /dev/null +++ b/nag/templates/common-header.inc @@ -0,0 +1,54 @@ + + +' : '' ?> + +get('name'); +if (!empty($title)) $page_title .= ' :: ' . $title; +if (!empty($refresh_time) && ($refresh_time > 0) && !empty($refresh_url)) { + echo "\n"; +} + +Horde::includeScriptFiles(); + +$bc = Horde_Util::nonInputVar('bodyClass'); +if ($prefs->getValue('show_panel')) { + if ($bc) { + $bc .= ' '; + } + $bc .= 'rightPanel'; +} + +?> +<?php echo htmlspecialchars($page_title) ?> + + + + + + + + +> + + diff --git a/nag/templates/data/export.inc b/nag/templates/data/export.inc new file mode 100644 index 000000000..cd36091af --- /dev/null +++ b/nag/templates/data/export.inc @@ -0,0 +1,44 @@ +
"> + + + +

+ +

+ +
+

+
+ +

+ + 1): ?> +

+
+ +

+ + + + +

+
+ +

+ + " class="button" /> +
+ +
diff --git a/nag/templates/data/import.inc b/nag/templates/data/import.inc new file mode 100644 index 000000000..2d435b4b9 --- /dev/null +++ b/nag/templates/data/import.inc @@ -0,0 +1,42 @@ +
+ + + + +

+ +

+ +
+

+
+ +

+ +isLocked('default_tasklist') && count($tasklists = Nag::listTasklists(false, PERMS_EDIT)) > 1): ?> +

+
+ +

+ + + +

+
+ +

+ " class="button" /> +
+ +
diff --git a/nag/templates/list.html.php b/nag/templates/list.html.php new file mode 100644 index 000000000..167e61369 --- /dev/null +++ b/nag/templates/list.html.php @@ -0,0 +1,57 @@ +hasTasks()) { + $sortby = $prefs->getValue('sortby'); + $sortdir = $prefs->getValue('sortdir'); + $dateFormat = $prefs->getValue('date_format'); + $columns = @unserialize($prefs->getValue('tasklist_columns')); + $dynamic_sort = true; + + $baseurl = 'list.php'; + if ($actionID == 'search_tasks') { + $baseurl = Horde_Util::addParameter( + $baseurl, + array('actionID' => 'search_tasks', + 'search_pattern' => $search_pattern, + 'search_name' => $search_name ? 'on' : 'off', + 'search_desc' => $search_desc ? 'on' : 'off', + 'search_category' => $search_category ? 'on' : 'off')); + } + + require NAG_TEMPLATES . '/list/task_headers.inc'; + + $tasks->reset(); + while ($task = $tasks->each()) { + $dynamic_sort &= !$task->hasSubTasks(); + + if (!empty($task->completed)) { + $style = 'linedRow closed'; + } elseif (!empty($task->due) && $task->due < time()) { + $style = 'linedRow overdue'; + } else { + $style = 'linedRow'; + } + + if ($task->tasklist == '**EXTERNAL**') { + // Just use a new share that this user owns for tasks from + // external calls - if the API gives them back, we'll trust it. + $share = $GLOBALS['nag_shares']->newShare('**EXTERNAL**'); + $owner = $task->tasklist_name; + } else { + $share = $GLOBALS['nag_shares']->getShare($task->tasklist); + $owner = is_a($share, 'PEAR_Error') ? $task->tasklist : $share->get('name'); + } + + require NAG_TEMPLATES . '/list/task_summaries.inc'; + } + + require NAG_TEMPLATES . '/list/task_footers.inc'; + + if (!$print_view && $dynamic_sort) { + Horde::addScriptFile('tables.js', 'horde', true); + } +} else { + require NAG_TEMPLATES . '/list/empty.inc'; +} diff --git a/nag/templates/list/empty.inc b/nag/templates/list/empty.inc new file mode 100644 index 000000000..7c52acf3f --- /dev/null +++ b/nag/templates/list/empty.inc @@ -0,0 +1,3 @@ +

+ +

diff --git a/nag/templates/list/header.inc b/nag/templates/list/header.inc new file mode 100644 index 000000000..8bee89928 --- /dev/null +++ b/nag/templates/list/header.inc @@ -0,0 +1,13 @@ +

diff --git a/nag/templates/list/task_footers.inc b/nag/templates/list/task_footers.inc new file mode 100644 index 000000000..e0981db6e --- /dev/null +++ b/nag/templates/list/task_footers.inc @@ -0,0 +1,8 @@ + + + +
+ +
+ +
diff --git a/nag/templates/list/task_headers.inc b/nag/templates/list/task_headers.inc new file mode 100644 index 000000000..78d2af610 --- /dev/null +++ b/nag/templates/list/task_headers.inc @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nag/templates/list/task_summaries.inc b/nag/templates/list/task_summaries.inc new file mode 100644 index 000000000..7f00c0738 --- /dev/null +++ b/nag/templates/list/task_summaries.inc @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/nag/templates/menu.inc b/nag/templates/menu.inc new file mode 100644 index 000000000..da24cd28e --- /dev/null +++ b/nag/templates/menu.inc @@ -0,0 +1,4 @@ + + 'tasklist-info'), $registry->getImageDir('horde')); + +$current_user = Horde_Auth::getAuth(); +$my_tasklists = array(); +$shared_tasklists = array(); +foreach (Nag::listTasklists() as $id => $tl) { + if ($tl->get('owner') == $current_user) { + $my_tasklists[$id] = $tl; + } else { + $shared_tasklists[$id] = $tl; + } +} +?> + +
+ + + + +
+
+ +

+

+ +

+ + +

+ +

+ + + +

+
    + $tl): ?> +
  • + +
+ + + +

+
    + $tl): ?> +
  • + +
+ + +

+ " class="button" /> +

+ + +
+
diff --git a/nag/templates/prefs/defaultduetimeselect.inc b/nag/templates/prefs/defaultduetimeselect.inc new file mode 100644 index 000000000..9223d63ea --- /dev/null +++ b/nag/templates/prefs/defaultduetimeselect.inc @@ -0,0 +1,20 @@ +isLocked('default_due_time')): + $default_due_time = $prefs->getValue('default_due_time'); +?> + +
+

+ diff --git a/nag/templates/prefs/tasklistselect.inc b/nag/templates/prefs/tasklistselect.inc new file mode 100644 index 000000000..52abc0fec --- /dev/null +++ b/nag/templates/prefs/tasklistselect.inc @@ -0,0 +1,16 @@ +isLocked('default_tasklist')): + $tasklists = Nag::listTasklists(); + if (($default_tasklist = $prefs->getValue('default_tasklist')) == null || + !isset($tasklists[$default_tasklist])) { + $default_tasklist = Horde_Auth::getAuth(); + } +?> + +
+

+ diff --git a/nag/templates/search/search.inc b/nag/templates/search/search.inc new file mode 100644 index 000000000..1bc419f8c --- /dev/null +++ b/nag/templates/search/search.inc @@ -0,0 +1,36 @@ + + + + +

+ +

+ +
+ +

+
+ +

+ +

+
+
+
+ +

+ +

+
+
+
+
+

+ +

+ " /> +

+ +
+ + diff --git a/nag/templates/tasklist_info.php b/nag/templates/tasklist_info.php new file mode 100644 index 000000000..2538b1ae8 --- /dev/null +++ b/nag/templates/tasklist_info.php @@ -0,0 +1,11 @@ +

get('name')) ?>

+get('desc')): ?> +

+ +

+ + +

+

+ +

diff --git a/nag/templates/tasklist_list.php b/nag/templates/tasklist_list.php new file mode 100644 index 000000000..369de2a81 --- /dev/null +++ b/nag/templates/tasklist_list.php @@ -0,0 +1,39 @@ +

+ +

+ +isLocked('default_tasklist')): ?> +
+
+ + " /> + +
+ + +
width="2%"> + + width="2%"> +   + width="2%"> +   + + getImageDir('horde')) ?> + > +   + width="2%"> +   + width="10%"> +   + width="10%"> +   + width="10%"> +   + isLocked('categories') || + !$GLOBALS['prefs']->isLocked('category_colors'))) { + $categoryUrl = Horde_Util::addParameter(Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs.php'), array('app' => 'horde', 'group' => 'categories')); + echo ' ' . Horde::link($categoryUrl, _("Edit categories and colors"), '', '_blank', 'popup(this.href); return false;') . Horde::img('colorpicker.png', _("Edit categories and colors"), '', $GLOBALS['registry']->getImageDir('horde')) . ''; + } + ?> +
+hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + if (!$task->completed) { + if (!$task->childrenCompleted()) { + $label = _("Incomplete sub tasks, complete them first"); + echo Horde::img('unchecked.png', $label, array('title' => $label)); + } else { + $label = sprintf(_("Complete \"%s\""), $task->name); + echo Horde::link($task->complete_link, $label) . Horde::img('unchecked.png', $label) . ''; + } + } else { + if ($task->parent && $task->parent->completed) { + $label = _("Completed parent task, mark it as incomplete first"); + echo Horde::img('checked.png', $label, array('title' => $label)); + } else { + $label = sprintf(_("Mark \"%s\" as incomplete"), $task->name); + echo Horde::link($task->complete_link, $label) . Horde::img('checked.png', $label) . ''; + } + } +} else { + echo Nag::formatCompletion($task->completed); +} +?> + priority) ?> + hasPermission(Horde_Auth::getAuth(), PERMS_EDIT) && + (!$task->private || $task->owner == Horde_Auth::getAuth())) { + $label = sprintf(_("Edit \"%s\""), $task->name); + echo Horde::link($task->edit_link, $label) . Horde::img('edit.png', $label, null, $registry->getImageDir('horde')) . ''; + } + ?> + + treeIcons(); + $task_name = strlen($task->name) + ? htmlspecialchars($task->name) + : _("[none]"); + if (!is_a($share, 'PEAR_Error') && + $share->hasPermission(Horde_Auth::getAuth(), PERMS_READ)) { + echo Horde::link($task->view_link, '', '', '', '', $task->desc) + . $task_name . ''; + } else { + echo $task_name; + } + ?> + desc) ? Horde::img('note.png', _("Task Note")) : ' ' ?>alarm && $task->due) ? + Horde::img('alarm_small.png', _("Task Alarm")) : ' ' ?> + + due ? strftime($dateFormat, $task->due) : ' ' ?> + + estimation()) ?> + + assignee) ?> + category) ? htmlspecialchars($task->category) : _("Unfiled") ?>
" cellspacing="0" id="tasklist-list" class="striped sortable"> + + + + + + + + + + + + + + + + + + + + + + + + +
 
get('name')) ?>getName(), false) ?>" target="_blank">get('owner') . '/' . $tasklist->getName() . '.ics' : Horde_Util::addParameter($subscribe_url_base, 't', $tasklist->getName(), false) ?>" target="_blank">">">">
diff --git a/nag/templates/view/task.inc b/nag/templates/view/task.inc new file mode 100644 index 000000000..23bd6a7d6 --- /dev/null +++ b/nag/templates/view/task.inc @@ -0,0 +1,80 @@ +
+ + name) ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '; + } + if (isset($completed)) { + echo ' ' . strftime($prefs->getValue('date_format'), $completed) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $completed) . ''; + } ?> + + + + + + + + + + + + + + + + + +desc)): ?> + + + + +
category ? $task->category : _("Unfiled")) ?>
assignee, true) ?>
+ private ? Horde::img('checked.png', _("Private")) : Horde::img('unchecked.png', _("Not Private")) ?> +
start, false) ?>
due) ?>
priority) ?>
estimate); if ($task->hasSubTasks()) echo htmlspecialchars(sprintf(_(" (%s including sub-tasks)"), $task->estimation())) ?>
+ hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + if (empty($task->completed)) { + echo Horde::link(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task')), _("Complete Task"), 'widget') . Horde::img('unchecked.png', _("Complete Task")) . ''; + } else { + echo Horde::link(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task')), _("Mark as incomplete"), 'widget') . Horde::img('checked.png', _("Mark as incomplete")) . ''; + } + } else { + echo Nag::formatCompletion($task->completed) . '
getValue('date_format'), $created) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $created) . ' ' . @htmlspecialchars($createdby, ENT_COMPAT, Horde_Nls::getCharset()) ?>
getValue('date_format'), $modified) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $modified) . ' ' . @htmlspecialchars($modifiedby, ENT_COMPAT, Horde_Nls::getCharset()) ?>
+ getFormattedDescription() ?> +
diff --git a/nag/themes/bluewhite/screen.css b/nag/themes/bluewhite/screen.css new file mode 100644 index 000000000..814a285f6 --- /dev/null +++ b/nag/themes/bluewhite/screen.css @@ -0,0 +1,3 @@ +#quicksearch a { + background: #339; +} diff --git a/nag/themes/categoryCSS.php b/nag/themes/categoryCSS.php new file mode 100644 index 000000000..5b47dd507 --- /dev/null +++ b/nag/themes/categoryCSS.php @@ -0,0 +1,36 @@ + + */ + +@define('AUTH_HANDLER', true); +@define('NAG_BASE', dirname(__FILE__) . '/..'); +require_once NAG_BASE . '/lib/base.php'; +require_once 'Horde/Image.php'; +require_once 'Horde/Prefs/CategoryManager.php'; + +header('Content-Type: text/css'); + +$cManager = new Prefs_CategoryManager(); + +$colors = $cManager->colors(); +$fgColors = $cManager->fgColors(); +foreach ($colors as $category => $color) { + if ($category == '_unfiled_' || $category == '_default_') { + continue; + } + + $class = '.category' . md5($category); + + echo "$class, .linedRow td$class, .overdue td$class, .closed td$class { " + . 'color: ' . (isset($fgColors[$category]) ? $fgColors[$category] : $fgColors['_default_']) . '; ' + . 'background: ' . $color . '; ' + . "padding: 0 4px; }\n"; +} diff --git a/nag/themes/fadetogreen/screen.css b/nag/themes/fadetogreen/screen.css new file mode 100644 index 000000000..31cded980 --- /dev/null +++ b/nag/themes/fadetogreen/screen.css @@ -0,0 +1,25 @@ +/** + * This theme as been written by Roel Gloudemans + * + * The theme is the basis for the website of the Sales Manager Club + * (http://www.clubsmc.nl) + */ + +.sortdown { + background-color: #bcc4c2; +} + +.sortup { + background-color: #bcc4c2; +} + +.sortable tbody { + background-color: #fff; +} + +.sortable td { + border-right: 1px solid #d6e2e3;; + border-top: 1px solid #d6e2e3;; +} + + diff --git a/nag/themes/graphics/add.png b/nag/themes/graphics/add.png new file mode 100644 index 000000000..0d23667a7 Binary files /dev/null and b/nag/themes/graphics/add.png differ diff --git a/nag/themes/graphics/alarm.png b/nag/themes/graphics/alarm.png new file mode 100644 index 000000000..70c1e1d2c Binary files /dev/null and b/nag/themes/graphics/alarm.png differ diff --git a/nag/themes/graphics/alarm_small.png b/nag/themes/graphics/alarm_small.png new file mode 100644 index 000000000..4c94f72e8 Binary files /dev/null and b/nag/themes/graphics/alarm_small.png differ diff --git a/nag/themes/graphics/az.png b/nag/themes/graphics/az.png new file mode 100644 index 000000000..2b646f94c Binary files /dev/null and b/nag/themes/graphics/az.png differ diff --git a/nag/themes/graphics/checkbox.png b/nag/themes/graphics/checkbox.png new file mode 100644 index 000000000..718856134 Binary files /dev/null and b/nag/themes/graphics/checkbox.png differ diff --git a/nag/themes/graphics/checked.png b/nag/themes/graphics/checked.png new file mode 100644 index 000000000..681eff6f6 Binary files /dev/null and b/nag/themes/graphics/checked.png differ diff --git a/nag/themes/graphics/favicon.ico b/nag/themes/graphics/favicon.ico new file mode 100644 index 000000000..24e337963 Binary files /dev/null and b/nag/themes/graphics/favicon.ico differ diff --git a/nag/themes/graphics/minus.png b/nag/themes/graphics/minus.png new file mode 100644 index 000000000..32170460c Binary files /dev/null and b/nag/themes/graphics/minus.png differ diff --git a/nag/themes/graphics/nag.png b/nag/themes/graphics/nag.png new file mode 100644 index 000000000..b39605d30 Binary files /dev/null and b/nag/themes/graphics/nag.png differ diff --git a/nag/themes/graphics/note.png b/nag/themes/graphics/note.png new file mode 100644 index 000000000..f0a4368d9 Binary files /dev/null and b/nag/themes/graphics/note.png differ diff --git a/nag/themes/graphics/plus.png b/nag/themes/graphics/plus.png new file mode 100644 index 000000000..263e35690 Binary files /dev/null and b/nag/themes/graphics/plus.png differ diff --git a/nag/themes/graphics/redbox_spinner.gif b/nag/themes/graphics/redbox_spinner.gif new file mode 100644 index 000000000..35218b31b Binary files /dev/null and b/nag/themes/graphics/redbox_spinner.gif differ diff --git a/nag/themes/graphics/search.png b/nag/themes/graphics/search.png new file mode 100644 index 000000000..94c47d455 Binary files /dev/null and b/nag/themes/graphics/search.png differ diff --git a/nag/themes/graphics/tasklists.png b/nag/themes/graphics/tasklists.png new file mode 100644 index 000000000..b39605d30 Binary files /dev/null and b/nag/themes/graphics/tasklists.png differ diff --git a/nag/themes/graphics/unchecked.png b/nag/themes/graphics/unchecked.png new file mode 100644 index 000000000..b6fc70ee6 Binary files /dev/null and b/nag/themes/graphics/unchecked.png differ diff --git a/nag/themes/graphics/za.png b/nag/themes/graphics/za.png new file mode 100644 index 000000000..a154237b5 Binary files /dev/null and b/nag/themes/graphics/za.png differ diff --git a/nag/themes/screen.css b/nag/themes/screen.css new file mode 100644 index 000000000..8e6854e8d --- /dev/null +++ b/nag/themes/screen.css @@ -0,0 +1,254 @@ +#tasks { + width: 100%; +} + +.QuickFinderNoMatch { + display: none; +} +#tasks_empty { + padding: 4px; + font-style: italic; +} + +#quicksearch { + display: inline; +} +#quicksearch input { + background-image: url("graphics/search.png"); + background-repeat: no-repeat; + background-position: 2px center; + padding: 1px 0 1px 20px; +} +#quicksearch a { + display: inline-block; + padding: 2px 4px; +} + +#quickAddInfoPanel textarea { + width: 100%; + height: 10em; + margin-top: .5em; +} +#quickAddInfoPanel p { + margin-top: .5em; + margin-bottom: .5em; +} + +.overdue, .overdue td { + color: #f00; +} +.overdue a, .overdue td a { + color: #f00; +} +.closed, .closed td { + color: #aaa; +} +.closed a, .closed td a { + text-decoration: line-through; + color: #aaa; +} + +.pri-1 { + color: #f00; +} +.pri-2 { + color: #f30; +} +.pri-3 { + color: #000; +} +.pri-4 { + color: #03f; +} +.pri-5 { + color: #00f; +} + +.task td { + padding-right: .5em; +} + +.taskBody { + padding: 10px; + background: #fff; + font-family: "Lucida Console",Courier,"Courier New"; + font-size: 125%; + white-space: normal; + overflow: auto; +} + +.task-desc { + padding: .5em; +} +.task-desc label { + font-weight: bold; + display: block; +} +.task-desc textarea { + width: 100%; +} + +#tasks-body tr { + line-height: 20px; +} + +body.rightPanel #page { + margin-right: 10em; +} +body #pageControlsInner { + display: none; +} +body #sbarShow, body #sbarHide { + padding-left: 18px; + white-space: nowrap; +} +body #sbarShow { + display: block; + background: transparent url("graphics/plus.png") center left no-repeat; +} +body #sbarHide { + display: none; + background: transparent url("graphics/minus.png") center left no-repeat; +} +body.rightPanel #pageControlsInner { + display: block; +} +body.rightPanel #sbarShow { + display: none; +} +body.rightPanel #sbarHide { + display: block; +} +body.rightPanel ul { + list-style-type: none; +} + +#pageControls { + position: absolute; + top: 52px; + right: 0; + background: #eee; + border: 1px solid #ccc; + padding: 4px; + -moz-border-radius-bottomleft: 10px; + -webkit-border-bottom-left-radius: 10px; +} +#pageControls #tasklistSearch { + background-image: url("graphics/search.png"); + background-repeat: no-repeat; + background-position: 2px center; + border: 1px solid #ccc; + padding: 2px 0 2px 20px; +} +#pageControls h3 { + font-size: 100%; + margin-top: 1em; +} +#pageControls h4 { + font-size: 90%; + margin-top: .5em; +} + +/* Tables. */ +table#tasklist-list { + width: 99%; + margin: 0 0 8px 5px; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; +} +table#tasklist-list th { + padding: 3px; + background: #e9e9e9; + border-right: 1px solid #ccc; + text-align: left; +} +table#tasklist-list td { + padding: 3px; + border-right: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} +table#tasklist-list th.sortup { + background: #bbcbff url("graphics/za.png") center left no-repeat; + padding-left: 10px; +} +table#tasklist-list th.sortdown { + background: #bbcbff url("graphics/az.png") center left no-repeat; + padding-left: 10px; +} + +#tasklist-list-buttons { + padding: 1em; +} +#tasklist-list-buttons form { + display: inline; +} +.tasklist-list-icon { + width: 1%; +} + +.tasklist-info { + cursor: pointer; +} +.tasklist-info-url { + background-color: #fff; + color: #000; + overflow: auto; + padding: 2px; + font-size: 90%; + word-wrap: break-word; +} + +/* Redbox styles. */ +#RB_overlay { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + right: 0; + bottom: 0; + min-height: 100%; + background-color: #000; + opacity: .6; + filter: alpha(opacity=60); +} +#RB_loading { + z-index: 101; + width: 66; + margin-left: auto; + margin-right: auto; + margin-top: 200px; + padding-bottom: 66px; + text-align: center; + background: url("graphics/redbox_spinner.gif") no-repeat bottom center; +} +#RB_window { + z-index: 102; + background-color: #fff; + display: block; + text-align: left; + overflow: hidden; + margin: 20px auto 0 auto; + position: absolute; +} + +#RB_confirm { + width: 20em; + padding: 1em; + border: 1px solid #ccc; + background: #ffc; +} +#RB_confirm input { + margin: .2em; +} + +#RB_info { + width: 30em; + padding: 1em; + border: 1px solid #ccc; + background: #ccf; +} +#RB_info input { + margin: .2em; +} diff --git a/nag/themes/silver/graphics/add.png b/nag/themes/silver/graphics/add.png new file mode 100644 index 000000000..598b839b8 Binary files /dev/null and b/nag/themes/silver/graphics/add.png differ diff --git a/nag/themes/silver/graphics/alarm.png b/nag/themes/silver/graphics/alarm.png new file mode 100644 index 000000000..6e0015df4 Binary files /dev/null and b/nag/themes/silver/graphics/alarm.png differ diff --git a/nag/themes/silver/graphics/alarm_small.png b/nag/themes/silver/graphics/alarm_small.png new file mode 100644 index 000000000..3f34e72e5 Binary files /dev/null and b/nag/themes/silver/graphics/alarm_small.png differ diff --git a/nag/themes/silver/graphics/az.png b/nag/themes/silver/graphics/az.png new file mode 100644 index 000000000..f52e8287a Binary files /dev/null and b/nag/themes/silver/graphics/az.png differ diff --git a/nag/themes/silver/graphics/checkbox.png b/nag/themes/silver/graphics/checkbox.png new file mode 100644 index 000000000..718856134 Binary files /dev/null and b/nag/themes/silver/graphics/checkbox.png differ diff --git a/nag/themes/silver/graphics/checked.png b/nag/themes/silver/graphics/checked.png new file mode 100644 index 000000000..681eff6f6 Binary files /dev/null and b/nag/themes/silver/graphics/checked.png differ diff --git a/nag/themes/silver/graphics/favicon.ico b/nag/themes/silver/graphics/favicon.ico new file mode 100644 index 000000000..461907c71 Binary files /dev/null and b/nag/themes/silver/graphics/favicon.ico differ diff --git a/nag/themes/silver/graphics/minus.png b/nag/themes/silver/graphics/minus.png new file mode 100644 index 000000000..763c90d3e Binary files /dev/null and b/nag/themes/silver/graphics/minus.png differ diff --git a/nag/themes/silver/graphics/nag.png b/nag/themes/silver/graphics/nag.png new file mode 100644 index 000000000..e2672c206 Binary files /dev/null and b/nag/themes/silver/graphics/nag.png differ diff --git a/nag/themes/silver/graphics/note.png b/nag/themes/silver/graphics/note.png new file mode 100644 index 000000000..244e6ca04 Binary files /dev/null and b/nag/themes/silver/graphics/note.png differ diff --git a/nag/themes/silver/graphics/plus.png b/nag/themes/silver/graphics/plus.png new file mode 100644 index 000000000..6332fefea Binary files /dev/null and b/nag/themes/silver/graphics/plus.png differ diff --git a/nag/themes/silver/graphics/search.png b/nag/themes/silver/graphics/search.png new file mode 100644 index 000000000..908612e39 Binary files /dev/null and b/nag/themes/silver/graphics/search.png differ diff --git a/nag/themes/silver/graphics/tasklists.png b/nag/themes/silver/graphics/tasklists.png new file mode 100644 index 000000000..2842cc338 Binary files /dev/null and b/nag/themes/silver/graphics/tasklists.png differ diff --git a/nag/themes/silver/graphics/unchecked.png b/nag/themes/silver/graphics/unchecked.png new file mode 100644 index 000000000..b6fc70ee6 Binary files /dev/null and b/nag/themes/silver/graphics/unchecked.png differ diff --git a/nag/themes/silver/graphics/za.png b/nag/themes/silver/graphics/za.png new file mode 100644 index 000000000..32e427a6d Binary files /dev/null and b/nag/themes/silver/graphics/za.png differ diff --git a/nag/themes/silver/screen.css b/nag/themes/silver/screen.css new file mode 100644 index 000000000..271c5efbe --- /dev/null +++ b/nag/themes/silver/screen.css @@ -0,0 +1,21 @@ +.sortup { + background: #ccc url("graphics/za.png") center left no-repeat; +} +.sortdown { + background: #ccc url("graphics/az.png") center left no-repeat; +} +body #sbarShow { + background-image: url("graphics/plus.png"); +} +body #sbarHide { + background-image: url("graphics/minus.png"); +} +#pageControls { + top: 49px; + background: #d7d7d7; + border-color: #999; + border-width: 0 0 1px 1px; +} +#pageControls #tasklistSearch { + background-image: url("graphics/search.png"); +} diff --git a/nag/themes/silver/themed_graphics b/nag/themes/silver/themed_graphics new file mode 100644 index 000000000..e69de29bb diff --git a/nag/themes/sounds/theetone.wav b/nag/themes/sounds/theetone.wav new file mode 100644 index 000000000..3f6663be2 Binary files /dev/null and b/nag/themes/sounds/theetone.wav differ diff --git a/nag/themes/tango-blue/graphics/add.png b/nag/themes/tango-blue/graphics/add.png new file mode 100644 index 000000000..1ccabbe2f Binary files /dev/null and b/nag/themes/tango-blue/graphics/add.png differ diff --git a/nag/themes/tango-blue/graphics/alarm.png b/nag/themes/tango-blue/graphics/alarm.png new file mode 100644 index 000000000..ec8f00b4a Binary files /dev/null and b/nag/themes/tango-blue/graphics/alarm.png differ diff --git a/nag/themes/tango-blue/graphics/alarm_small.png b/nag/themes/tango-blue/graphics/alarm_small.png new file mode 100644 index 000000000..0dc63f28b Binary files /dev/null and b/nag/themes/tango-blue/graphics/alarm_small.png differ diff --git a/nag/themes/tango-blue/graphics/checkbox.png b/nag/themes/tango-blue/graphics/checkbox.png new file mode 100644 index 000000000..5317669e3 Binary files /dev/null and b/nag/themes/tango-blue/graphics/checkbox.png differ diff --git a/nag/themes/tango-blue/graphics/checked.png b/nag/themes/tango-blue/graphics/checked.png new file mode 100644 index 000000000..f600440a0 Binary files /dev/null and b/nag/themes/tango-blue/graphics/checked.png differ diff --git a/nag/themes/tango-blue/graphics/favicon.ico b/nag/themes/tango-blue/graphics/favicon.ico new file mode 100644 index 000000000..a7df371bd Binary files /dev/null and b/nag/themes/tango-blue/graphics/favicon.ico differ diff --git a/nag/themes/tango-blue/graphics/nag.png b/nag/themes/tango-blue/graphics/nag.png new file mode 100644 index 000000000..4920bac1e Binary files /dev/null and b/nag/themes/tango-blue/graphics/nag.png differ diff --git a/nag/themes/tango-blue/graphics/note.png b/nag/themes/tango-blue/graphics/note.png new file mode 100644 index 000000000..03ced5c42 Binary files /dev/null and b/nag/themes/tango-blue/graphics/note.png differ diff --git a/nag/themes/tango-blue/graphics/tasklists.png b/nag/themes/tango-blue/graphics/tasklists.png new file mode 100644 index 000000000..4b03094b4 Binary files /dev/null and b/nag/themes/tango-blue/graphics/tasklists.png differ diff --git a/nag/themes/tango-blue/graphics/unchecked.png b/nag/themes/tango-blue/graphics/unchecked.png new file mode 100644 index 000000000..f5be913b4 Binary files /dev/null and b/nag/themes/tango-blue/graphics/unchecked.png differ diff --git a/nag/themes/tango-blue/themed_graphics b/nag/themes/tango-blue/themed_graphics new file mode 100644 index 000000000..e69de29bb diff --git a/nag/view.php b/nag/view.php new file mode 100644 index 000000000..98d9a5eb8 --- /dev/null +++ b/nag/view.php @@ -0,0 +1,141 @@ +getByUID($uid); + if (is_a($task, 'PEAR_Error')) { + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + $task_id = $task->id; + $tasklist_id = $task->tasklist; +} else { + /* If we aren't provided with a task and tasklist, redirect to + * list.php. */ + $task_id = Horde_Util::getFormData('task'); + $tasklist_id = Horde_Util::getFormData('tasklist'); + if (!isset($task_id) || !$tasklist_id) { + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; + } + + /* Get the current task. */ + $task = Nag::getTask($tasklist_id, $task_id); +} + +/* If the requested task doesn't exist, display an error message. */ +if (!isset($task) || !isset($task->id)) { + $notification->push(_("Task not found."), 'horde.error'); + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +/* Load child tasks */ +$task->loadChildren(); + +/* Check permissions on $tasklist_id. */ +$share = $GLOBALS['nag_shares']->getShare($tasklist_id); +if (is_a($share, 'PEAR_Error') || !$share->hasPermission(Horde_Auth::getAuth(), PERMS_READ)) { + $notification->push(_("You do not have permission to view this tasklist."), 'horde.error'); + header('Location: ' . Horde::applicationUrl('list.php', true)); + exit; +} + +/* Get the task's history. */ +$created = null; +$modified = null; +$completed = null; +$userId = Horde_Auth::getAuth(); +$createdby = ''; +$modifiedby = ''; +if (!empty($task->uid)) { + $history = Horde_History::singleton(); + $log = $history->getHistory('nag:' . $tasklist_id . ':' . $task->uid); + if ($log && !is_a($log, 'PEAR_Error')) { + foreach ($log->getData() as $entry) { + switch ($entry['action']) { + case 'add': + $created = $entry['ts']; + if ($userId != $entry['who']) { + $createdby = sprintf(_("by %s"), Nag::getUserName($entry['who'])); + } else { + $createdby = _("by me"); + } + break; + + case 'modify': + $modified = $entry['ts']; + if ($userId != $entry['who']) { + $modifiedby = sprintf(_("by %s"), Nag::getUserName($entry['who'])); + } else { + $modifiedby = _("by me"); + } + break; + + case 'complete': + if (!empty($entry['ts'])) { + $completed = $entry['ts']; + } + } + } + } +} + +$title = $task->name; +$print_view = (bool)Horde_Util::getFormData('print'); +$links = array(); +if (!$print_view) { + Horde::addScriptFile('popup.js', 'horde', true); + Horde::addScriptFile('stripe.js', 'horde', true); + + $taskurl = Horde_Util::addParameter('task.php', + array('task' => $task_id, + 'tasklist' => $tasklist_id)); + $share = $GLOBALS['nag_shares']->getShare($tasklist_id); + + if (!is_a($share, 'PEAR_Error')) { + if ($share->hasPermission(Horde_Auth::getAuth(), PERMS_EDIT)) { + if (!$task->completed) { + $links[] = Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task')), _("Complete"), 'smallheader', '', '', _("_Complete")); + } + if (!$task->private || $task->owner == Horde_Auth::getAuth()) { + $links[] = Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'modify_task')), _("Edit"), 'smallheader', '', '', _("_Edit")); + } + } + if ($share->hasPermission(Horde_Auth::getAuth(), PERMS_DELETE)) { + $links[] = Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'delete_tasks')), _("Delete"), 'smallheader', '', $prefs->getValue('delete_opt') ? 'return window.confirm(\'' . addslashes(_("Really delete this task?")) . '\');' : '', _("_Delete")); + } + } +} +require NAG_TEMPLATES . '/common-header.inc'; + +if ($print_view) { + require_once $registry->get('templates', 'horde') . '/javascript/print.js'; +} else { + $print_link = Horde_Util::addParameter('view.php', + array('task' => $task_id, + 'tasklist' => $tasklist_id, + 'print' => 1)); + $print_link = Horde::url($print_link); + require NAG_TEMPLATES . '/menu.inc'; +} + +/* Set up alarm units and value. */ +$task_alarm = $task->alarm; +if (!$task->due) { + $task_alarm = 0; +} +$alarm_text = Nag::formatAlarm($task_alarm); +require NAG_TEMPLATES . '/view/task.inc'; +require $registry->get('templates', 'horde') . '/common-footer.inc';