Import nag from CVS HEAD
authorMichael M Slusarz <slusarz@curecanti.org>
Sat, 25 Jul 2009 20:22:08 +0000 (14:22 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Sat, 25 Jul 2009 20:51:10 +0000 (14:51 -0600)
219 files changed:
.gitignore
nag/COPYING [new file with mode: 0644]
nag/README [new file with mode: 0644]
nag/config/.htaccess [new file with mode: 0644]
nag/config/conf.xml [new file with mode: 0644]
nag/config/hooks.php.dist [new file with mode: 0644]
nag/config/menu.php.dist [new file with mode: 0644]
nag/config/prefs.php.dist [new file with mode: 0644]
nag/data.php [new file with mode: 0644]
nag/docs/CHANGES [new file with mode: 0644]
nag/docs/CREDITS [new file with mode: 0644]
nag/docs/INSTALL [new file with mode: 0644]
nag/docs/RELEASE_NOTES [new file with mode: 0644]
nag/docs/TODO [new file with mode: 0644]
nag/docs/UPGRADING [new file with mode: 0644]
nag/docs/vtodo/todo.ics [new file with mode: 0644]
nag/ics.php [new file with mode: 0644]
nag/index.php [new file with mode: 0644]
nag/lib/.htaccess [new file with mode: 0644]
nag/lib/Block/summary.php [new file with mode: 0644]
nag/lib/Block/tree_alarms.php [new file with mode: 0644]
nag/lib/Block/tree_menu.php [new file with mode: 0644]
nag/lib/Driver.php [new file with mode: 0644]
nag/lib/Driver/Kolab.php [new file with mode: 0644]
nag/lib/Driver/Sql.php [new file with mode: 0644]
nag/lib/Forms/CreateTaskList.php [new file with mode: 0644]
nag/lib/Forms/DeleteTaskList.php [new file with mode: 0644]
nag/lib/Forms/EditTaskList.php [new file with mode: 0644]
nag/lib/Forms/task.php [new file with mode: 0644]
nag/lib/Nag.php [new file with mode: 0644]
nag/lib/Notification/Listener/Status.php [new file with mode: 0644]
nag/lib/QuickParser.php [new file with mode: 0644]
nag/lib/Task.php [new file with mode: 0644]
nag/lib/UI/VarRenderer/nag.php [new file with mode: 0644]
nag/lib/api.php [new file with mode: 0644]
nag/lib/base.load.php [new file with mode: 0644]
nag/lib/base.php [new file with mode: 0644]
nag/lib/prefs.php [new file with mode: 0644]
nag/lib/version.php [new file with mode: 0644]
nag/list.php [new file with mode: 0644]
nag/locale/ar_SY/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/bg_BG/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ca_ES/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ca_ES/help.xml [new file with mode: 0755]
nag/locale/cs_CZ/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/da_DK/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/de_DE/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/de_DE/help.xml [new file with mode: 0644]
nag/locale/el_GR/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/en_US/help.xml [new file with mode: 0644]
nag/locale/es_ES/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/es_ES/help.xml [new file with mode: 0644]
nag/locale/et_EE/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/eu_ES/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/eu_ES/help.xml [new file with mode: 0644]
nag/locale/fi_FI/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/fi_FI/help.xml [new file with mode: 0644]
nag/locale/fr_FR/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/hu_HU/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/hu_HU/help.xml [new file with mode: 0644]
nag/locale/id_ID/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/it_IT/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ja_JP/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ko_KR/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/lt_LT/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/lv_LV/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/lv_LV/help.xml [new file with mode: 0644]
nag/locale/nb_NO/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/nl_NL/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/nl_NL/help.xml [new file with mode: 0644]
nag/locale/nn_NO/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/pl_PL/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/pt_BR/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/pt_PT/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ro_RO/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/ru_RU/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/sk_SK/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/sk_SK/help.xml [new file with mode: 0644]
nag/locale/sl_SI/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/sv_SE/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/tr_TR/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/tr_TR/help.xml [new file with mode: 0644]
nag/locale/zh_CN/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/locale/zh_TW/LC_MESSAGES/nag.mo [new file with mode: 0644]
nag/po/README [new file with mode: 0644]
nag/po/ar_SY.po [new file with mode: 0644]
nag/po/bg_BG.po [new file with mode: 0644]
nag/po/ca_ES.po [new file with mode: 0644]
nag/po/cs_CZ.po [new file with mode: 0644]
nag/po/da_DK.po [new file with mode: 0644]
nag/po/de_DE.po [new file with mode: 0644]
nag/po/el_GR.po [new file with mode: 0644]
nag/po/es_ES.po [new file with mode: 0644]
nag/po/et_EE.po [new file with mode: 0644]
nag/po/eu_ES.po [new file with mode: 0644]
nag/po/fi_FI.po [new file with mode: 0644]
nag/po/fr_FR.po [new file with mode: 0644]
nag/po/hu_HU.po [new file with mode: 0644]
nag/po/id_ID.po [new file with mode: 0644]
nag/po/it_IT.po [new file with mode: 0644]
nag/po/ja_JP.po [new file with mode: 0644]
nag/po/ko_KR.po [new file with mode: 0644]
nag/po/lt_LT.po [new file with mode: 0644]
nag/po/lv_LV.po [new file with mode: 0644]
nag/po/nag.pot [new file with mode: 0644]
nag/po/nb_NO.po [new file with mode: 0644]
nag/po/nl_NL.po [new file with mode: 0644]
nag/po/nn_NO.po [new file with mode: 0644]
nag/po/pl_PL.po [new file with mode: 0644]
nag/po/pt_BR.po [new file with mode: 0644]
nag/po/pt_PT.po [new file with mode: 0644]
nag/po/ro_RO.po [new file with mode: 0644]
nag/po/ru_RU.po [new file with mode: 0644]
nag/po/sk_SK.po [new file with mode: 0644]
nag/po/sl_SI.po [new file with mode: 0644]
nag/po/sv_SE.po [new file with mode: 0644]
nag/po/tr_TR.po [new file with mode: 0644]
nag/po/zh_CN.po [new file with mode: 0644]
nag/po/zh_TW.po [new file with mode: 0644]
nag/quick.php [new file with mode: 0644]
nag/scripts/.htaccess [new file with mode: 0644]
nag/scripts/import_vtodos.php [new file with mode: 0755]
nag/scripts/sql/nag.mssql.sql [new file with mode: 0644]
nag/scripts/sql/nag.oci8.sql [new file with mode: 0644]
nag/scripts/sql/nag.sql [new file with mode: 0644]
nag/scripts/sql/nag.xml [new file with mode: 0644]
nag/scripts/upgrades/1.1_to_2.0.mysql.sql [new file with mode: 0644]
nag/scripts/upgrades/1.1_to_2.0.oci8.sql [new file with mode: 0644]
nag/scripts/upgrades/1.1_to_2.0.pgsql.sql [new file with mode: 0644]
nag/scripts/upgrades/2.1_to_2.2.sql [new file with mode: 0644]
nag/scripts/upgrades/2.2_to_2.3.pgsql.sql [new file with mode: 0644]
nag/scripts/upgrades/2.2_to_2.3.sql [new file with mode: 0644]
nag/scripts/upgrades/2006-02-07_add_estimate_field.sql [new file with mode: 0644]
nag/scripts/upgrades/2006-04-18_add_creator_and_assignee_fields.php [new file with mode: 0755]
nag/scripts/upgrades/2006-10-29_add_completed_date.sql [new file with mode: 0644]
nag/scripts/upgrades/2007-05-03_add_start_date.sql [new file with mode: 0644]
nag/scripts/upgrades/2007-05-16_sub_tasks.sql [new file with mode: 0644]
nag/scripts/upgrades/2008-06-17_fix_varchar_lengths.sql [new file with mode: 0644]
nag/scripts/upgrades/2008-09-23_fix_group_uid.sql [new file with mode: 0644]
nag/scripts/upgrades/2009-02-03_add_alarm_methods.mssql.sql [new file with mode: 0644]
nag/scripts/upgrades/2009-02-03_add_alarm_methods.oci8.sql [new file with mode: 0644]
nag/scripts/upgrades/2009-02-03_add_alarm_methods.sql [new file with mode: 0644]
nag/scripts/upgrades/convert_datatree_shares_to_sql.php [new file with mode: 0755]
nag/scripts/upgrades/create_missing_add_histories_sql.php [new file with mode: 0755]
nag/search.php [new file with mode: 0644]
nag/task.php [new file with mode: 0644]
nag/tasklists/create.php [new file with mode: 0644]
nag/tasklists/delete.php [new file with mode: 0644]
nag/tasklists/edit.php [new file with mode: 0644]
nag/tasklists/index.php [new file with mode: 0644]
nag/tasklists/info.php [new file with mode: 0644]
nag/tasks/index.php [new file with mode: 0644]
nag/templates/common-header.inc [new file with mode: 0644]
nag/templates/data/export.inc [new file with mode: 0644]
nag/templates/data/import.inc [new file with mode: 0644]
nag/templates/list.html.php [new file with mode: 0644]
nag/templates/list/empty.inc [new file with mode: 0644]
nag/templates/list/header.inc [new file with mode: 0644]
nag/templates/list/task_footers.inc [new file with mode: 0644]
nag/templates/list/task_headers.inc [new file with mode: 0644]
nag/templates/list/task_summaries.inc [new file with mode: 0644]
nag/templates/menu.inc [new file with mode: 0644]
nag/templates/panel.inc [new file with mode: 0644]
nag/templates/prefs/defaultduetimeselect.inc [new file with mode: 0644]
nag/templates/prefs/tasklistselect.inc [new file with mode: 0644]
nag/templates/search/search.inc [new file with mode: 0644]
nag/templates/tasklist_info.php [new file with mode: 0644]
nag/templates/tasklist_list.php [new file with mode: 0644]
nag/templates/view/task.inc [new file with mode: 0644]
nag/themes/bluewhite/screen.css [new file with mode: 0644]
nag/themes/categoryCSS.php [new file with mode: 0644]
nag/themes/fadetogreen/screen.css [new file with mode: 0644]
nag/themes/graphics/add.png [new file with mode: 0644]
nag/themes/graphics/alarm.png [new file with mode: 0644]
nag/themes/graphics/alarm_small.png [new file with mode: 0644]
nag/themes/graphics/az.png [new file with mode: 0644]
nag/themes/graphics/checkbox.png [new file with mode: 0644]
nag/themes/graphics/checked.png [new file with mode: 0644]
nag/themes/graphics/favicon.ico [new file with mode: 0644]
nag/themes/graphics/minus.png [new file with mode: 0644]
nag/themes/graphics/nag.png [new file with mode: 0644]
nag/themes/graphics/note.png [new file with mode: 0644]
nag/themes/graphics/plus.png [new file with mode: 0644]
nag/themes/graphics/redbox_spinner.gif [new file with mode: 0644]
nag/themes/graphics/search.png [new file with mode: 0644]
nag/themes/graphics/tasklists.png [new file with mode: 0644]
nag/themes/graphics/unchecked.png [new file with mode: 0644]
nag/themes/graphics/za.png [new file with mode: 0644]
nag/themes/screen.css [new file with mode: 0644]
nag/themes/silver/graphics/add.png [new file with mode: 0644]
nag/themes/silver/graphics/alarm.png [new file with mode: 0644]
nag/themes/silver/graphics/alarm_small.png [new file with mode: 0644]
nag/themes/silver/graphics/az.png [new file with mode: 0644]
nag/themes/silver/graphics/checkbox.png [new file with mode: 0644]
nag/themes/silver/graphics/checked.png [new file with mode: 0644]
nag/themes/silver/graphics/favicon.ico [new file with mode: 0644]
nag/themes/silver/graphics/minus.png [new file with mode: 0644]
nag/themes/silver/graphics/nag.png [new file with mode: 0644]
nag/themes/silver/graphics/note.png [new file with mode: 0644]
nag/themes/silver/graphics/plus.png [new file with mode: 0644]
nag/themes/silver/graphics/search.png [new file with mode: 0644]
nag/themes/silver/graphics/tasklists.png [new file with mode: 0644]
nag/themes/silver/graphics/unchecked.png [new file with mode: 0644]
nag/themes/silver/graphics/za.png [new file with mode: 0644]
nag/themes/silver/screen.css [new file with mode: 0644]
nag/themes/silver/themed_graphics [new file with mode: 0644]
nag/themes/sounds/theetone.wav [new file with mode: 0644]
nag/themes/tango-blue/graphics/add.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/alarm.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/alarm_small.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/checkbox.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/checked.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/favicon.ico [new file with mode: 0644]
nag/themes/tango-blue/graphics/nag.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/note.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/tasklists.png [new file with mode: 0644]
nag/themes/tango-blue/graphics/unchecked.png [new file with mode: 0644]
nag/themes/tango-blue/themed_graphics [new file with mode: 0644]
nag/view.php [new file with mode: 0644]

index ccc4a10..243f358 100644 (file)
@@ -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 (file)
index 0000000..a6b6756
--- /dev/null
@@ -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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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 (file)
index 0000000..69ed6ea
--- /dev/null
@@ -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 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/nag/config/conf.xml b/nag/config/conf.xml
new file mode 100644 (file)
index 0000000..5098edd
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!-- $Id$ -->
+<configuration>
+ <configsection name="storage">
+  <configheader>Storage System Settings</configheader>
+
+  <configswitch name="driver" desc="What storage driver should we use?">sql
+   <case name="sql" desc="SQL">
+    <configsection name="params">
+     <configsql switchname="driverconfig">
+      <configstring name="table" desc="Database table">nag_tasks</configstring>
+     </configsql>
+    </configsection>
+   </case>
+   <case name="kolab" desc="Kolab" />
+  </configswitch>
+ </configsection>
+
+ <configsection name="menu">
+  <configheader>Menu settings</configheader>
+
+  <configboolean name="print" desc="Should we display a print link in the Horde
+  application menus?">true</configboolean>
+  <configboolean name="import_export" desc="Should we display an Import/Export
+  link in the Horde application menus?">true</configboolean>
+  <configmultienum name="apps" desc="Select any applications that should be
+  linked in Nag's menu">
+   <values>
+    <configspecial name="list-horde-apps" />
+   </values>
+  </configmultienum>
+ </configsection>
+</configuration>
diff --git a/nag/config/hooks.php.dist b/nag/config/hooks.php.dist
new file mode 100644 (file)
index 0000000..cf9e0b2
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Example hooks for Nag
+ *
+ * $Id$
+ */
+
+// if (!function_exists('_nag_hook_format_description')) {
+//     function _nag_hook_format_description($text)
+//     {
+//         $text = preg_replace('/#(\d+)/', '<a href="http://bugs.horde.org/ticket/\1">\0</a>', $text);
+//         $text = preg_replace('/(bug|ticket|request|enhancement|issue):\s*#?(\d+)/i', '<a href="http://bugs.horde.org/ticket/\1">\0</a>', $text);
+//
+//         $text = preg_replace_callback('/\[\[note: ?(.*)\]\]/i', create_function('$m', 'return \'<a href="/horde/mnemo/notes/?q=\' . urlencode($m[1]) . \'">\' . htmlspecialchars($m[0]) . \'</a>\';'), $text);
+//         $text = preg_replace_callback('/\[\[task: ?(.*)\]\]/i', create_function('$m', 'return \'<a href="/horde/nag/tasks/?q=\' . urlencode($m[1]) . \'">\' . htmlspecialchars($m[0]) . \'</a>\';'), $text);
+//
+//         return $text;
+//     }
+// }
+
+// if (!function_exists('_nag_hook_description_help')) {
+//     function _nag_hook_description_help()
+//     {
+//         return '<p>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.</p>';
+//     }
+// }
diff --git a/nag/config/menu.php.dist b/nag/config/menu.php.dist
new file mode 100644 (file)
index 0000000..1e96670
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * This file lets you extend Nag's menu with your own items.
+ *
+ * To add a new menu item, simply add a new entry to the $_menu array.
+ * Valid attributes for a new menu item are:
+ *
+ *  'url'       The URL value for the menu item.
+ *  'text'      The text to accompany the menu item.
+ *
+ * These attributes are optional:
+ *
+ *  'icon'      The filename of an icon to use for the menu item.
+ *  'icon_path' The path to the icon if it doesn't exist in the graphics/
+ *              directory.
+ *  'target'    The "target" of the link (e.g. '_top', '_blank').
+ *  'onclick'   Any JavaScript to execute on the "onclick" event.
+ *
+ * Here's an example entry:
+ *
+ *  $_menu[] = array(
+ *      'url' =>        'http://www.example.com/',
+ *      'text' =>       'Example, Inc.',
+ *      'icon' =>       'example.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 (file)
index 0000000..65968d4
--- /dev/null
@@ -0,0 +1,238 @@
+<?php
+/**
+ * See horde/config/prefs.php for documentation on the structure of this file.
+ *
+ * $Id$
+ */
+
+$prefGroups['display'] = array(
+    'column' => _("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 (file)
index 0000000..aeafac7
--- /dev/null
@@ -0,0 +1,232 @@
+<?php
+/**
+ * Nag data script.
+ *
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+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 '<br />';
+}
+
+require $registry->get('templates', 'horde') . '/common-footer.inc';
diff --git a/nag/docs/CHANGES b/nag/docs/CHANGES
new file mode 100644 (file)
index 0000000..3da593b
--- /dev/null
@@ -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 <almarin@um.es>).
+
+
+----------
+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
+      <almarin@um.es>, 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 <alar.sing@err.ee>).
+[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
+      <xabier.arrieta@ehu.es>).
+[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 <horde-tr@metu.edu.tr>).
+
+
+--------
+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 <projecte.k2@upcnet.es>).
+
+
+------
+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 <duck@obala.net>).
+[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
+      <Manuel.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 <b> and <i> tags to <strong> and <em> 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
+      <knitterb@blandsite.org>, 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 <mathieu.clabaut@free.fr>, 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 <hiromi@tac.tsukuba.ac.jp>).
+
+
+----
+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 <pkuczynski@hypode.pl>).
+[cjh] Add My Tasklists menu entry.
+
+
+--------
+v2.0-RC2
+--------
+
+[jan] Add Latvian translation (Janis Eisaks <jancs@dv.lv>).
+
+
+--------
+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 <mercury@appisolutions.net>).
+[cjh] Preserve searches while re-sorting (Francois Marier <francois@nit.ca>).
+[jan] Add access keys.
+[cjh] Add Kolab drivers (Stuart Bingë <s.binge@codefusion.co.za>).
+
+
+----------
+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 <slamin@unej.ac.id>).
+[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 <brian@valinor.net>).
+[cjh] Make the due date in the summary block configurable
+      (Mathieu CLABAUT <mathieu.clabaut@free.fr>).
+[cjh] Add task alarms (Mathieu CLABAUT <mathieu.clabaut@free.fr>).
+[jan] Add UTF-8 support and charset parameter for backend drivers.
+[cjh] Only show selected task categories on the summary screen
+      (John Morrissey <jwm@horde.net>).
+[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 <brian@valinor.net>).
+[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 <pkuczynski@hypode.pl>).
+[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 <slamin@unej.ac.id>).
+[jan] Add Arabic (Syria) translation (Platinum Development Team
+      <devteam@platinum-sy.net>).
+[jan] Add Romanian translation (Eugen Hoanca <eugenh@urban-grafx.ro>,
+      Marius Dragulescu <mariusd@urban-grafx.ro>).
+[jon] Display the task navbar above the description in the task view, as well
+      (John Morrissey <jwm@horde.net>).
+
+
+----
+v1.1
+----
+
+[jan] Add Greek translation (Stefanos I. Dimitriou <sdimitri@teiath.gr>).
+[jan] Add print task button (mac).
+[jan] Add Slovak translation (Ivan Noris <vix@vazka.sk>).
+[jan] Add ability to create new categories (mac).
+[jan] Add Nag::addParameter().
+[jan] Add Norwegian Bokmaal translation (Torstein S. Hansen <huleboer@techbee.no>).
+[jan] Add Bulgarian translation (Miroslav Pendev <miro@cybershade.us>).
+[jan] Add preferences for showing priorities and due dates in the summary
+      (Brian Keifer <brian@valinor.net>).
+[jan] Add Lithuanian translation (Darius Matuliauskas <darius@lnk.lt>).
+[jan] Replace <?= with <?php echo to remove the short_open_tags requirement (cjh).
+[jan] Show success or failure message on saving the task.
+[jan] Show completed tasks with strikethrough in the Horde summary screen
+      (Bill Edgington <horde@0x20.com>).
+[jan] Add Danish translation (Martin List-Petersen <martin@list-petersen.dk>).
+
+
+----
+v1.0
+----
+
+[jan] Add Hungarian translation (Laszlo L. Tornoci <torlasz@xenia.sote.hu>).
+[jan] Add Simplified Chinese translation (Peter Wang <whw@oulink.net>).
+[jan] Add Korean translation (J.I Kim <aporie@netian.com>).
+[jan] Add Norwegian Nynorsk translation (Per-Stian Vatne <psv@orsta.org>).
+[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 <terom@iki.fi>).
+[jan] Add Brazilian Portuguese translation (Antonio Dias <accdias@sst.com.br>).
+[cjh] Close a potential problem with register_globals On and $js_onLoad.
+[cjh] Add new task link to the summary (Quinn Wilson <qwilson@midworld.org>).
+[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 <andreas@dahlen.ws>).
+[jan] Add Traditional Chinese translation (David Chang <david@thbuo.gov.tw>).
+[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 <pgc@ucecom.com>)
+[jan] Add French translation (Mikhaël Janson <mik@galaxie.net>).
+[cjh] Let the Registry handle retrieving preferences.
+[jan] Due tasks can now be shown in Kronolith.
+[jan] Add Italian translation (Giovanni Meneghetti <gmeneghetti@infvic.it>).
+[cjh] Add Czech translation (pchytil@asp.ogi.edu).
+[cjh] Add Russian translation (Ignat Ikryanov <ignat@ibd.ru>).
+[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 (file)
index 0000000..dc299f1
--- /dev/null
@@ -0,0 +1,83 @@
+======================
+ Nag Development Team
+======================
+
+
+Core Developers
+===============
+
+- Chuck Hagenbuch <chuck@horde.org>
+- Jan Schneider <jan@horde.org>
+
+
+Localization
+============
+
+=====================   ======================================================
+Arabic (Syria)          Platinum Development Team <devteam@platinum-sy.net>
+Basque                  Euskal Herriko Unibertsitatea <xabier.arrieta@ehu.es>
+Brazilian Portuguese    Antonio Dias <accdias@sst.com.br>
+                        Fabio Gomes <flgomes@fazenda.sp.gov.br>
+                        Luis Felipe Marzagao <duli@fedoraproject.org>
+                        Eduardo de Carli <carliedu@ig.com.br>
+Bulgarian               Miroslav Pendev <miro@cybershade.us>
+Catalan                 Jordi Giralt <projecte.k2@upcnet.es>
+Chinese (Simplified)    Peter Wang <whw@oulink.net>
+Chinese (Traditional)   David Chang <david@tmv.gov.tw>
+Czech                   Pavel Chytil <pchytil@asp.ogi.edu>
+Danish                  Martin List-Petersen <martin@list-petersen.dk>
+                        Brian Truelsen <horde+i18n@briantruelsen.dk>
+                        Niels Baggesen <nba@users.sourceforge.net>
+Dutch                   Jan Kuipers <jrkuipers@lauwerscollege.nl>
+                        Ariën Huisken <arien@huisken-systems.nl>
+Estonian                Alar Sing <alar.sing@err.ee>
+Finnish                 Tero Matinlassi <terom@iki.fi>
+                        Leena Heino <leena.heino@uta.fi>
+French                  Mikhaël Janson <mik@galaxie.net>
+                        Benoit St-André <ben@benoitst-andre.net>
+                        Pierre Lachance <pl@pierrelachance.net>
+                        Thierry Thomas <thierry@horde.org>
+                        Yannick Sebastia <yannick.sebastia@ecole-navale.fr>
+German                  Jan Schneider <jan@horde.org>
+Greek                   Stefanos I. Dimitriou <support_webmail@teiath.gr>
+                        Silligardos Xristoforos
+                        Anagnostopoulos Apostolis
+                        Konstantinos C. Milosis <kmilosis@yahoo.com>
+Hungarian               Laszlo L. Tornoci <torlasz@xenia.sote.hu>
+Indonesian              Slamin <slamin@unej.ac.id>
+Italian                 Giovanni Meneghetti <gmeneghetti@infvic.it>
+                        Marco Pirovano <marco.pirovano@unibocconi.it>
+                        Cristian Manoni <cristian.manoni@nethesis.it>
+Japanese                Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>
+Korean                  J.I Kim <aporie@netian.com>
+Latvian                 Janis Eisaks <jancs@dv.lv>
+Lithuanian              Darius Matuliauskas <darius@lnk.lt>
+                        Vilius Šumskas <vilius@lnk.lt>
+Norwegian Bokmaal       Torstein S. Hansen <huleboer@techbee.no>
+Norwegian Nynorsk       Per-Stian Vatne <psv@orsta.org>
+Polish                  Piotr Kuczynski <pkuczynski@hypode.pl>
+                        Piotr Adamcio <adamcios@o2.pl>
+                        Tadeusz Lesiecki <lesiecki@tmtsystem.pl>
+                        Piotr Tarnowski <drfugazi@drfugazi.eu.org>
+Portuguese              Manuel Menezes de Sequeira <Manuel.Sequeira>
+Romanian                Eugen Hoanca <eugenh@urban-grafx.ro>
+                        Marius Dragulescu <mariusd@urban-grafx.ro>
+Russian                 Ignat Ikryanov <ignat@ibd.ru>
+                        Alexey Zakharov <baber@mosga.net>
+Slovak                  Ivan Noris <vix@vazka.sk>
+                        Martin Matuška <martin@matuska.org>
+Slovenian               Duck <duck@obala.net>
+Spanish                 Raúl Alvarez Venegas <rav@tecoman.ucol.mx>
+                        Manuel Perez Ayala <mperaya@alcazaba.unex.es>
+Swedish                 Andreas Dahlén <andreas@dahlen.ws>
+                        Joaquim Homrighausen <joho@webbplatsen.se>
+Turkish                 Istanbul Technical University IT Department
+                        <itubim@itu.edu.tr>
+                        Middle East Technical University <horde-tr@metu.edu.tr>
+=====================   ======================================================
+
+
+Inactive Developers
+===================
+
+- Jon Parise <jon@csh.rit.edu>
diff --git a/nag/docs/INSTALL b/nag/docs/INSTALL
new file mode 100644 (file)
index 0000000..26e8a47
--- /dev/null
@@ -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 (file)
index 0000000..b7e8d1b
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Release focus. Possible values:
+ * 0 - N/A
+ * 1 - Initial freshmeat announcement
+ * 2 - Documentation
+ * 3 - Code cleanup
+ * 4 - Minor feature enhancements
+ * 5 - Major feature enhancements
+ * 6 - Minor bugfixes
+ * 7 - Major bugfixes
+ * 8 - Minor security fixes
+ * 9 - Major security fixes
+ */
+$this->notes['fm']['focus'] = 4;
+
+/* Mailing list release notes. */
+$this->notes['ml']['changes'] = <<<ML
+The Horde Team is pleased to announce the first release candidate of the Nag
+Task List Manager version H3 (2.2).
+
+Nag is a web-based application built upon the Horde Application Framework which
+provides a simple, clean interface for managing online task lists (i.e., TODO
+lists).  It also includes strong integration with the other Horde applications
+and offers shared task lists.
+
+This is a preview version that should not be used on production systems. This
+version is considered feature complete but a few bugs may still exist in the
+code.
+
+We encourage widespread testing and feedback via the mailing lists or our bug
+tracking system.  Updated translations are very welcome, though some strings
+might still change before the final release.
+
+The major changes compared to the Nag version H3 (2.2-ALPHA) are:
+    * Added WebDAV support for external calendar clients.
+    * Improved estimation times display.
+    * Further bugfixes and improvements.
+ML;
+
+/* Freshmeat release notes, not more than 600 characters. */
+$this->notes['fm']['changes'] = <<<FM
+WebDAV support for external calendar clients has been added. The estimation times display has been improved. Further bugfixes and improvements have been made.
+FM;
+
+$this->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 (file)
index 0000000..0994b42
--- /dev/null
@@ -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 (file)
index 0000000..86430e4
--- /dev/null
@@ -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=<MySQL-root-password>  <db name> < 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=<MySQL-root-password> <db name> < 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=<MySQL-root-password> <db name> < 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 (file)
index 0000000..181f4c5
--- /dev/null
@@ -0,0 +1,23 @@
+BEGIN:VCALENDAR
+
+BEGIN:VTODO
+DTSTAMP:19980130T134500Z
+SEQUENCE:2
+UID:<1234@example.com>
+ORGANIZER:MAILTO:<test@example.com>
+ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:<EMAIL:test@example.com>
+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 (file)
index 0000000..5878b4e
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Nag ics script.
+ *
+ * Copyright 1999-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+$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 (file)
index 0000000..0b44c60
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Nag index script.
+ *
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/lib/base.load.php';
+$nag_configured = (is_readable(NAG_BASE . '/config/conf.php') &&
+                   is_readable(NAG_BASE . '/config/prefs.php'));
+
+if (!$nag_configured) {
+    require HORDE_BASE . '/lib/Test.php';
+    Horde_Test::configFilesMissing('Nag', NAG_BASE,
+        array('conf.php', 'prefs.php'));
+}
+
+require NAG_BASE . '/list.php';
diff --git a/nag/lib/.htaccess b/nag/lib/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/nag/lib/Block/summary.php b/nag/lib/Block/summary.php
new file mode 100644 (file)
index 0000000..d45efae
--- /dev/null
@@ -0,0 +1,259 @@
+<?php
+
+$block_name = _("Tasks Summary");
+
+/**
+ * @package Horde_Block
+ */
+class Horde_Block_nag_summary extends Horde_Block {
+
+    var $_app = 'nag';
+
+    function _title()
+    {
+        global $registry;
+
+        $label = !empty($this->_params['block_title'])
+            ? $this->_params['block_title']
+            : $registry->get('name');
+        return Horde::link(Horde::applicationUrl($registry->getInitialPage(),
+                                                 true))
+            . htmlspecialchars($label) . '</a>';
+    }
+
+    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 '<em>' . htmlspecialchars($alarmList->getMessage())
+                    . '</em>';
+            }
+            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]"))
+                    . '</a>';
+                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 .= '<tr><td class="control">'
+                    . Horde::img('alarm_small.png') . '&nbsp;&nbsp;<strong>'
+                    . $message . '</strong></td></tr>';
+            }
+
+            if (!empty($messages)) {
+                $html .= '</table><br /><table cellspacing="0" width="100%" class="linedRow">';
+            }
+        }
+
+        $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 '<em>' . htmlspecialchars($tasks->getMessage()) . '</em>';
+        }
+
+        $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 .= '<tr class="' . $style . '">';
+
+            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 .= '<td width="1%">'
+                    . Horde::link(htmlspecialchars(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'modify_task'), true)), $label)
+                    . Horde::img('edit.png', $label, null,
+                                 $registry->getImageDir('horde'))
+                    . '</a></td>';
+                if ($task->completed) {
+                    $html .= '<td width="1%">'
+                        . Horde::img('checked.png', _("Completed")) . '</td>';
+                } else {
+                    $label = sprintf(_("Complete \"%s\""), $task->name);
+                    $html .= '<td width="1%">'
+                        . Horde::link(htmlspecialchars(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task'), true)), $label)
+                        . Horde::img('unchecked.png', $label) . '</a></td>';
+                }
+            }
+
+            if (!empty($this->_params['show_pri'])) {
+                $html .= '<td align="center">&nbsp;'
+                    . Nag::formatPriority($task->priority) . '&nbsp;</td>';
+            }
+
+            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 .= '<td width="1%" class="nowrap">'
+                    . htmlspecialchars($owner) . '&nbsp;</td>';
+            }
+
+            $html .= '<td>';
+
+            $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]"))
+                . '</a>';
+
+            if ($task->due > 0 &&
+                empty($task->completed) &&
+                !empty($this->_params['show_due'])) {
+                $html .= ' ('
+                    . strftime($prefs->getValue('date_format'), $task->due)
+                    . ')';
+            }
+
+            $html .= '</td>';
+
+            if (!empty($this->_params['show_category'])) {
+                $html .= '<td width="1%" class="category'
+                    . md5($task->category) . '">'
+                    . htmlspecialchars($task->category
+                                       ? $task->category : _("Unfiled"))
+                    . '</td>';
+            }
+            $html .= "</tr>\n";
+        }
+
+        if (empty($html)) {
+            return '<em>' . _("No tasks to display") . '</em>';
+        }
+
+        return '<link href="'
+            . htmlspecialchars(Horde::applicationUrl('themes/categoryCSS.php',
+                                                     true))
+            . '" rel="stylesheet" type="text/css" />'
+            . '<table cellspacing="0" width="100%" class="linedRow">'
+            . $html . '</table>';
+    }
+
+}
diff --git a/nag/lib/Block/tree_alarms.php b/nag/lib/Block/tree_alarms.php
new file mode 100644 (file)
index 0000000..619dfc4
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+
+$block_name = _("Menu Alarms");
+$block_type = 'tree';
+
+/**
+ * @package Horde_Block
+ */
+class Horde_Block_nag_tree_alarms extends Horde_Block {
+
+    var $_app = 'nag';
+
+    function _buildTree(&$tree, $indent = 0, $parent = null)
+    {
+        require_once dirname(__FILE__) . '/../base.php';
+
+        $horde_alarm = null;
+        if (!empty($GLOBALS['conf']['alarms']['driver'])) {
+            $horde_alarm = Horde_Alarm::factory();
+        }
+
+        // Get any alarms in the next hour.
+        $now = time();
+        $alarms = Nag::listAlarms($now);
+        if (is_a($alarms, 'PEAR_Error')) {
+            return;
+        }
+
+        $alarmCount = 0;
+        foreach ($alarms as $taskId => $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 = '<strong>' . $pnode_name . '</strong>';
+        }
+
+        $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 (file)
index 0000000..1e54846
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+
+$block_name = _("Menu List");
+$block_type = 'tree';
+
+/**
+ * @package Horde_Block
+ */
+class Horde_Block_nag_tree_menu extends Horde_Block {
+
+    var $_app = 'nag';
+
+    function _buildTree(&$tree, $indent = 0, $parent = null)
+    {
+        global $registry;
+
+        require_once dirname(__FILE__) . '/../base.php';
+
+        $add = Horde::applicationUrl('task.php?actionID=add_task');
+        $icondir = $registry->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 (file)
index 0000000..0dba8a0
--- /dev/null
@@ -0,0 +1,468 @@
+<?php
+/**
+ * Nag_Driver:: defines an API for implementing storage backends for Nag.
+ *
+ * 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 <jon@horde.org>
+ * @author  Jan Schneider <jan@horde.org>
+ * @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 (file)
index 0000000..abd5206
--- /dev/null
@@ -0,0 +1,1104 @@
+<?php
+/**
+ * Nag driver classes for the Kolab IMAP server.
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author  Gunnar Wrobel <wrobel@pardus.de>
+ * @author  Thomas Jarosch <thomas.jarosch@intra2net.com>
+ * @author  Stuart Binge <omicron@mighty.co.za>
+ * @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 <wrobel@pardus.de>
+ * @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 <wrobel@pardus.de>
+ * @author  Stuart Binge <omicron@mighty.co.za>
+ * @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 <wrobel@pardus.de>
+ * @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 (file)
index 0000000..1600313
--- /dev/null
@@ -0,0 +1,643 @@
+<?php
+/**
+ * Nag storage implementation for PHP's PEAR database abstraction layer.
+ *
+ * Required parameters:<pre>
+ *   'phptype'      The database type (e.g. 'pgsql', 'mysql', etc.).
+ *   'charset'      The database's internal charset.</pre>
+ *
+ * Required by some database implementations:<pre>
+ *   '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.</pre>
+ *
+ * Optional values when using separate reading and writing servers, for example
+ * in replication settings:<pre>
+ *   '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.</pre>
+ *
+ * Optional parameters:<pre>
+ *   'table'     The name of the tasks table in 'database'.  Default is
+ *               'nag_tasks'.</pre>
+ *
+ * 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 <jon@horde.org>
+ * @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 (file)
index 0000000..837dee4
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Horde_Form for creating task lists.
+ *
+ * $Horde: nag/lib/Forms/CreateTaskList.php,v 1.3 2009/06/10 17:33:41 slusarz 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.
+ *
+ * @package Nag
+ */
+
+/** Horde_Form */
+require_once 'Horde/Form.php';
+
+/** Horde_Form_Renderer */
+require_once 'Horde/Form/Renderer.php';
+
+/**
+ * The Nag_CreateTaskListForm class provides the form for
+ * creating a task list.
+ *
+ * @author  Chuck Hagenbuch <chuck@horde.org>
+ * @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 (file)
index 0000000..aa077b8
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+/**
+ * Horde_Form for deleting task lists.
+ *
+ * $Horde: nag/lib/Forms/DeleteTaskList.php,v 1.3 2009/07/08 18:29:48 slusarz 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.
+ *
+ * @package Nag
+ */
+
+/** Horde_Form */
+require_once 'Horde/Form.php';
+
+/** Horde_Form_Renderer */
+require_once 'Horde/Form/Renderer.php';
+
+/**
+ * The Nag_DeleteTaskListForm class provides the form for
+ * deleting a task list.
+ *
+ * @author  Chuck Hagenbuch <chuck@horde.org>
+ * @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 (file)
index 0000000..a107129
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Horde_Form for editing task lists.
+ *
+ * $Horde: nag/lib/Forms/EditTaskList.php,v 1.3 2009/06/10 17:33:41 slusarz 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.
+ *
+ * @package Nag
+ */
+
+/** Horde_Form */
+require_once 'Horde/Form.php';
+
+/** Horde_Form_Renderer */
+require_once 'Horde/Form/Renderer.php';
+
+/**
+ * The Nag_EditTaskListForm class provides the form for
+ * editing a task list.
+ *
+ * @author  Chuck Hagenbuch <chuck@horde.org>
+ * @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 (file)
index 0000000..ac61e06
--- /dev/null
@@ -0,0 +1,314 @@
+<?php
+/**
+ * This file contains all Horde_Form extensions required for editing tasks.
+ *
+ * $Horde: nag/lib/Forms/task.php,v 1.23 2009/07/09 08:18:34 slusarz 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.
+ *
+ * @package Nag
+ */
+
+/**
+ * The Nag_TaskForm class provides the form for adding and editing a task.
+ *
+ * @author  Jan Schneider <jan@horde.org>
+ * @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('&nbsp;', $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)
+    {
+?><div class="control" style="padding:1em;">
+    <input class="button leftFloat" name="submitbutton" type="submit" value="<?php echo _("Save") ?>" />
+<?php if ($this->delete): ?>
+    <input class="button rightFloat" name="submitbutton" type="submit" value="<?php echo _("Delete this task") ?>" />
+<?php endif; ?>
+    <div class="clear"></div>
+</div>
+<?php
+    }
+
+}
+/**
+ * The Horde_Form_Type_nag_method class provides a form field for editing
+ * notification methods for a task alarm.
+ *
+ * @author  Alfonso Marin <almarin@um.es>
+ * @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 <jan@horde.org>
+ * @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 <chuck@horde.org>
+ * @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 <chuck@horde.org>
+ * @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 (file)
index 0000000..66fa2ce
--- /dev/null
@@ -0,0 +1,1375 @@
+<?php
+/**
+ * Nag Base Class.
+ *
+ * $Horde: nag/lib/Nag.php,v 1.203 2009/07/17 15:56:16 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 <jon@horde.org>
+ * @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 <select> widget.
+     */
+    function buildPriorityWidget($name, $selected = -1)
+    {
+        $descs = array(1 => _("(highest)"), 5 => _("(lowest)"));
+
+        $html = "<select id=\"$name\" name=\"$name\">";
+        for ($priority = 1; $priority <= 5; $priority++) {
+            $html .= "<option value=\"$priority\"";
+            $html .= ($priority == $selected) ? ' selected="selected">' : '>';
+            $html .= $priority . ' ' . @$descs[$priority] . '</option>';
+        }
+        $html .= "</select>\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 "<input type=\"checkbox\" id=\"$name\" name=\"$name\"" .
+            ($checked ? ' checked="checked"' : '') . ' />';
+    }
+
+    /**
+     * 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 '<span class="pri-' . (int)$priority . '">' . (int)$priority .
+            '</span>';
+    }
+
+    /**
+     * 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())
+                . '</a>';
+        } 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 (file)
index 0000000..77f707b
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * The Nag_Notification_Listener_Status:: class extends the
+ * Horde_Notification_Listener_Status:: class to display the messages for
+ * Nag's special message type 'nag.alarm'.
+ *
+ * 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  Chuck Hagenbuch <chuck@horde.org>
+ * @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 (file)
index 0000000..fd45a3d
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+class Nag_QuickParser
+{
+    protected $_indentStack;
+
+    public function __construct($stack = null)
+    {
+        if ($stack === null) { $stack = new Horde_Support_Stack(); }
+        $this->_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 (file)
index 0000000..188cddf
--- /dev/null
@@ -0,0 +1,966 @@
+<?php
+/**
+ * Nag_Task handles as single task as well as a list of tasks and implements a
+ * recursive iterator to handle a (hierarchical) list of tasks.
+ *
+ * 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  Jan Schneider <jan@horde.org>
+ * @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:
+     * <code>
+     * $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 (file)
index 0000000..27df2cb
--- /dev/null
@@ -0,0 +1,412 @@
+<?php
+/**
+ * This file contains all Horde_UI_VarRenderer extensions required for editing
+ * tasks.
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @package Nag
+ */
+
+/** Horde_UI_VarRenderer */
+require_once 'Horde/UI/VarRenderer.php';
+
+/** Horde_UI_VarRenderer_html */
+require_once 'Horde/UI/VarRenderer/html.php';
+
+/**
+ * The Horde_UI_VarRenderer_nag class provides additional methods for
+ * rendering Horde_Form_Type_alarm fields.
+ *
+ * @todo    Clean this hack up with Horde_Form/H4
+ * @author  Jan Schneider <jan@horde.org>
+ * @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('<input id="%soff" type="radio" class="radio" name="%s[on]" value="0"%s %s/><label for="%soff">&nbsp;%s</label><br />',
+               $varname,
+               $varname,
+               !empty($methods) ? '' : ' checked="checked"',
+               $this->_getActionScripts($form, $var),
+               $varname,
+               _("Use default notification method"));
+        printf('<input type="radio" class="radio" name="%s[on]" value="1"%s %s/><label for="%soff">&nbsp;%s</label>',
+               $varname,
+               !empty($methods) ? ' checked="checked"' : '',
+               $this->_getActionScripts($form, $var),
+               $varname,
+               _("Use custom notification method"));
+
+        if (!empty($methods)) {
+            echo '<br />';
+
+            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" ' : '';
+?>
+<input id="start_date_none" name="start_date" type="radio" class="radio" value="none" <?php echo $no_start_checked ?> />
+<?php echo Horde::label('start_date_none', _("No delay")) ?>
+<br />
+
+<input id="start_date_specified" name="start_date" type="radio" class="radio" value="specified" <?php echo $specified_start_checked ?> />
+<label for="start_date_specified" class="hidden"><?php echo _("Start date specified.") ?></label>
+<label for="start_day" class="hidden"><?php echo _("Day") ?></label>
+<label for="start_month" class="hidden"><?php echo _("Month") ?></label>
+<label for="start_year" class="hidden"><?php echo _("Year") ?></label>
+<?php echo $this->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) ?>
+<?php if ($GLOBALS['browser']->hasFeature('javascript')) {
+Horde::addScriptFile('open_calendar.js', 'horde');
+echo '<div id="goto" class="control" style="position:absolute;visibility:hidden;padding:1px"></div>';
+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')) . '</a>';
+} ?>
+<?php
+    }
+
+    function _renderVarInput_nag_due($form, &$var, &$vars)
+    {
+        $var->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" ' : '';
+?>
+<input id="due_type_none" name="due_type" type="radio" class="radio" value="none" <?php echo $none_checked ?> />
+<?php echo Horde::label('due_type_none', _("No due date.")) ?>
+<br />
+
+<input id="due_type_specified" name="due_type" type="radio" class="radio" value="specified" <?php echo $specified_checked ?> />
+<label for="due_type_specified" class="hidden"><?php echo _("Due date specified.") ?></label>
+<label for="due_day" class="hidden"><?php echo _("Day") ?></label>
+<label for="due_month" class="hidden"><?php echo _("Month") ?></label>
+<label for="due_year" class="hidden"><?php echo _("Year") ?></label>
+<?php echo $this->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) ?>
+<?php if ($GLOBALS['browser']->hasFeature('javascript')) {
+echo '<div id="goto" class="control" style="position:absolute;visibility:hidden;padding:1px"></div>';
+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')) . '</a>';
+} ?>
+<br />
+
+<input type="radio" class="radio" style="visibility:hidden;" />
+<label for="due_hour" class="hidden"><?php echo _("Hour") ?></label>
+<label for="due_minute" class="hidden"><?php echo _("Minute") ?></label>
+<?php echo $hour_widget . ' ' . $minute_widget . ' ' . $am_pm_widget ?>
+<?php
+    }
+
+    function _renderVarInput_nag_alarm($form, &$var, &$vars)
+    {
+        $varname = @htmlspecialchars($var->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 .= '<option value="' . $unit;
+            if ($value['on'] && $value['unit'] == $unit) {
+                $options .= '" selected="selected';
+            }
+            $options .= '">' . $label . '</option>';
+        }
+
+        return sprintf('<input id="%soff" type="radio" class="radio" name="%s[on]" value="0"%s /><label for="%soff">&nbsp;%s</label><br />',
+                       $varname,
+                       $varname,
+                       $value['on'] ? '' : ' checked="checked"',
+                       $varname,
+                       _("None"))
+            . sprintf('<input type="radio" class="radio" name="%s[on]" value="1"%s />',
+                      $varname,
+                      $value['on'] ? ' checked="checked"' : '')
+            . sprintf('<input type="text" size="2" name="%s[value]" id="%s_value" value="%s" />',
+                      $varname,
+                      $varname,
+                      $value['on'] ? htmlspecialchars($value['value']) : 15)
+            . sprintf(' <select name="%s[unit]" id="%s_unit">%s</select>',
+                      $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
+     *                          <select> tag.
+     *
+     * @return string  The HTML <select> widget.
+     */
+    function buildDayWidget($name, $default = null, $params = null)
+    {
+        $id = str_replace(array('[', ']'), array('_', ''), $name);
+
+        $html = '<select id="' . $id . '" name="' . $name. '"';
+        if (!is_null($params)) {
+            $html .= ' ' . $params;
+        }
+        $html .= '>';
+
+        for ($day = 1; $day <= 31; $day++) {
+            $html .= '<option value="' . $day . '"';
+            $html .= ($day == $default) ? ' selected="selected">' : '>';
+            $html .= $day . '</option>';
+        }
+
+        return $html . "</select>\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
+     *                          <select> tag.
+     *
+     * @return string  The HTML <select> widget.
+     */
+    function buildMonthWidget($name, $default = null, $params = null)
+    {
+        $id = str_replace(array('[', ']'), array('_', ''), $name);
+
+        $html = '<select id="' . $id . '" name="' . $name. '"';
+        if (!is_null($params)) {
+            $html .= ' ' . $params;
+        }
+        $html .= '>';
+
+        for ($month = 1; $month <= 12; $month++) {
+            $html .= '<option value="' . $month . '"';
+            $html .= ($month == $default) ? ' selected="selected">' : '>';
+            $html .= strftime('%B', mktime(0, 0, 0, $month, 1)) . '</option>';
+        }
+
+        return $html . "</select>\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
+     *                         <select> tag.
+     *
+     * @return string  The HTML <select> 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 = '<select id="' . $id . '" name="' . $name. '"';
+        if (!is_null($params)) {
+            $html .= ' ' . $params;
+        }
+        $html .= '>';
+
+        foreach ($yearlist as $year) {
+            $html .= '<option value="' . $year . '"';
+            $html .= ($year == $default) ? ' selected="selected">' : '>';
+            $html .= $year . '</option>';
+        }
+
+        return $html . "</select>\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
+     *                          <select> tag.
+     *
+     * @return string  The HTML <select> widget.
+     */
+    function buildHourWidget($name, $default = null, $params = null)
+    {
+        global $prefs;
+        if (!$prefs->getValue('twentyFour')) {
+            $default = ($default + 24) % 12;
+        }
+
+        $html = '<select id="' . $name . '" name="' . $name. '"';
+        if (!is_null($params)) {
+            $html .= ' ' . $params;
+        }
+        $html .= '>';
+
+        $min = $prefs->getValue('twentyFour') ? 0 : 1;
+        $max = $prefs->getValue('twentyFour') ? 23 : 12;
+        for ($hour = $min; $hour <= $max; $hour++) {
+            $html .= '<option value="' . $hour . '"';
+            $html .= ($hour == $default) ? ' selected="selected">' : '>';
+            $html .= $hour . '</option>';
+        }
+
+        return $html . '</select>';
+    }
+
+    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  = '<input id="' . $name . '_am" type="radio" class="radio" name="' . $name . '" value="am"' . $am . (!empty($amParams) ? ' ' . $amParams : '') . ' /><label for="' . $name . '_am">AM</label>&nbsp;&nbsp;';
+        $html .= '<input id="' . $name . '_pm" type="radio" class="radio" name="' . $name . '" value="pm"' . $pm . (!empty($pmParams) ? ' ' . $pmParams : '') . ' /><label for="' . $name . '_pm">PM</label>';
+
+        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
+     *                            <select> tag.
+     *
+     * @return string  The HTML <select> widget.
+     */
+    function buildMinuteWidget($name, $increment = 1, $default = null,
+                               $params = null)
+    {
+        $html = '<select id="' . $name . '" name="' . $name. '"';
+        if (!is_null($params)) {
+            $html .= ' ' . $params;
+        }
+        $html .= '>';
+
+        for ($minute = 0; $minute < 60; $minute += $increment) {
+            $html .= '<option value="' . $minute . '"';
+            $html .= ($minute == $default) ? ' selected="selected">' : '>';
+            $html .= sprintf("%02d", $minute) . '</option>';
+        }
+
+        return $html . "</select>\n";
+    }
+
+}
diff --git a/nag/lib/api.php b/nag/lib/api.php
new file mode 100644 (file)
index 0000000..5d3035d
--- /dev/null
@@ -0,0 +1,1459 @@
+<?php
+/**
+ * Nag external API interface.
+ *
+ * This file defines Nag's external API interface. Other applications can
+ * interact with Nag through this API.
+ *
+ * @package Nag
+ */
+
+$_services['perms'] = array(
+    'args' => 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:
+ * <pre>
+ * text/calendar    - (VCALENDAR 2.0. Recommended as this is specified in
+ *                    rfc2445)
+ * text/x-vcalendar - (old VCALENDAR 1.0 format. Still in wide use)
+ * </pre>
+ *
+ * @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:
+ *                             <pre>
+ *                             text/calendar (VCALENDAR 2.0. Recommended as
+ *                                            this is specified in rfc2445)
+ *                             text/x-vcalendar (old VCALENDAR 1.0 format.
+ *                                              Still in wide use)
+ *                             </pre>
+ *
+ * @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 (file)
index 0000000..1023844
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Script to determine the correct *_BASE values.
+ *
+ * Copyright 2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @package Nag
+ */
+
+$curr_dir = dirname(__FILE__);
+
+if (!defined('HORDE_BASE')) {
+    /* Temporary fix - if horde does not live directly under the app
+     * directory, the HORDE_BASE constant should be defined in
+     * lib/base.local.php. */
+    if (file_exists($curr_dir . '/base.local.php')) {
+        include $curr_dir . '/base.local.php';
+    } else {
+        define('HORDE_BASE', $curr_dir . '/../..');
+    }
+}
+
+if (!defined('NAG_BASE')) {
+    define('NAG_BASE', $curr_dir . '/..');
+}
diff --git a/nag/lib/base.php b/nag/lib/base.php
new file mode 100644 (file)
index 0000000..78317e8
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Nag base inclusion file.
+ *
+ * This file brings in all of the dependencies that every Nag
+ * script will need and sets up objects that all scripts use.
+ */
+
+// Determine BASE directories.
+require_once dirname(__FILE__) . '/base.load.php';
+
+// Load the Horde Framework core, and set up inclusion paths.
+require_once HORDE_BASE . '/lib/core.php';
+
+// Registry.
+$s_ctrl = 0;
+switch (Horde_Util::nonInputVar('nag_session_control')) {
+case 'none':
+    $s_ctrl = Horde_Registry::SESSION_NONE;
+    break;
+
+case 'readonly':
+    $s_ctrl = Horde_Registry::SESSION_READONLY;
+    break;
+}
+$registry = Horde_Registry::singleton($s_ctrl);
+
+try {
+    $registry->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 (file)
index 0000000..f0a39d9
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * $Horde: nag/lib/prefs.php,v 1.12 2009/06/10 05:25:06 slusarz Exp $
+ *
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+function handle_tasklistselect($updated)
+{
+    $default_tasklist = Horde_Util::getFormData('default_tasklist');
+    if (!is_null($default_tasklist)) {
+        $tasklists = Nag::listTasklists();
+        if (is_array($tasklists) && isset($tasklists[$default_tasklist])) {
+            $GLOBALS['prefs']->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 (file)
index 0000000..75c690e
--- /dev/null
@@ -0,0 +1 @@
+<?php define('NAG_VERSION', 'H3 (3.0-git)') ?>
diff --git a/nag/list.php b/nag/list.php
new file mode 100644 (file)
index 0000000..4f9a7fd
--- /dev/null
@@ -0,0 +1,121 @@
+<?php
+/**
+ * Nag list script.
+ *
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/lib/base.php';
+
+$vars = Horde_Variables::getDefaultVariables();
+
+/* Get the current action ID. */
+$actionID = $vars->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 '<div id="page">';
+
+    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 (file)
index 0000000..40262fe
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 (file)
index 0000000..a47a24d
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 (file)
index 0000000..e1a481d
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 (executable)
index 0000000..038e7fe
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Horde: nag/locale/ca_ES/help.xml,v 1.1 2007/02/07 16:15:07 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+    <title>Introducció</title>
+    <heading>Introducció</heading>
+    <para>
+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ó. 
+    </para>
+  </entry>
+
+  <entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+    <title>Ordenació d'entrades</title>
+    <heading>Ordenació d'entrades</heading>
+    <para>
+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. 
+    </para>
+  </entry>
+</help>
diff --git a/nag/locale/cs_CZ/LC_MESSAGES/nag.mo b/nag/locale/cs_CZ/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..d74d2eb
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 (file)
index 0000000..4ad010c
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 (file)
index 0000000..86656a5
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 (file)
index 0000000..591756f
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Horde: nag/locale/de_DE/help.xml,v 1.4 2008/12/08 12:12:47 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+    <title>Übersicht</title>
+    <heading>Einführung</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+  <entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+    <title>Einträge Sortieren</title>
+    <heading>Einträge Sortieren</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+</help>
diff --git a/nag/locale/el_GR/LC_MESSAGES/nag.mo b/nag/locale/el_GR/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..d1d475f
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 (file)
index 0000000..e26595b
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<!-- $Horde: nag/locale/en_US/help.xml,v 1.5 2004/12/03 02:00:56 jan Exp $ -->
+<help>
+  <entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+
+  <entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+</help>
diff --git a/nag/locale/es_ES/LC_MESSAGES/nag.mo b/nag/locale/es_ES/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..3782f65
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 (file)
index 0000000..cc951ae
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!-- $Horde: nag/locale/es_ES/help.xml,v 1.1 2004/12/11 11:57:52 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+    <title>Introducci&#xF3;n</title>
+    <heading>Introducci&#xF3;n</heading>
+    <para>
+    &#xC9;ste es una gestor de listas de tareas bastante completo que soporta listas de tareas privadas y compartidas, integraci&#xF3;n con funciones de agenda, categor&#xED;as, prioridades, vencimientos, b&#xFA;squedas, impresi&#xF3;n e importaci&#xF3;n y exportaci&#xF3;n.
+    </para>
+  </entry>
+
+  <entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+    <title>Ordenaci&#xF3;n de entradas</title>
+    <heading>Ordenaci&#xF3;n de entradas</heading>
+    <para>
+    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&#xF3;n de las columnas entre ascendente o descendente, pulse el icono de flecha de la cabecera de la columna.
+    </para>
+  </entry>
+</help>
diff --git a/nag/locale/et_EE/LC_MESSAGES/nag.mo b/nag/locale/et_EE/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..f98d611
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 (file)
index 0000000..4e3ce0f
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 (file)
index 0000000..8b3ee5c
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- $Horde: nag/locale/eu_ES/help.xml,v 1.1 2008/07/17 21:07:10 jan Exp $ -->
+<help><entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+    <title>Informazio orokorra</title>
+    <heading>Sarrera</heading> <para>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.</para></entry>
+
+  <entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+    <title>Ordenatu sarrerak</title>
+    <heading>Ordenatu sarrerak</heading> <para>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.</para></entry></help>
diff --git a/nag/locale/fi_FI/LC_MESSAGES/nag.mo b/nag/locale/fi_FI/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..d8b6b48
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 (file)
index 0000000..f5f2dec
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!-- $Horde: nag/locale/fi_FI/help.xml,v 1.8 2008/02/22 13:35:39 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+    <title>Yleiskuva</title>
+    <heading>Esittely</heading>
+    <para>
+    T&#xE4;m&#xE4; on melko kattava teht&#xE4;v&#xE4;listaohjelma, jossa on mm. seuraavia
+    ominaisuuksia: mahdollista tehd&#xE4; teht&#xE4;v&#xE4;listoja, jotka voivat olla
+    joko yksityisi&#xE4; tai jaettuja, kommunikoimaan kalenterisovelluksen
+    kanssa. Merkinn&#xE4;t voivat kuulua eri kategorioihin, niill&#xE4; voi olla
+    prioriteetteja, valmistumisp&#xE4;iv&#xE4;m&#xE4;&#xE4;ri&#xE4;. Voit my&#xF6;s tehd&#xE4; hakuja,
+    tulostaa ja tuoda/vied&#xE4; merkint&#xF6;j&#xE4;.
+    </para>
+  </entry>
+  <entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+    <title>Merkint&#xF6;jen lajittelu</title>
+    <heading>Merkint&#xF6;jen lajittelu</heading>
+    <para>
+    Teht&#xE4;vien listaa on mahdollista lajitella mink&#xE4; tahansa sarakkeen mukaan napsauttamalla sarakkeen otsikkoa. Voit muuttaa lajittelua nousevaksi tai laskevaksi napsauttamalla otsikon vieress&#xE4; olevaa nuoli ikonia.
+    </para>
+  </entry>
+</help>
diff --git a/nag/locale/fr_FR/LC_MESSAGES/nag.mo b/nag/locale/fr_FR/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..c897990
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 (file)
index 0000000..2a90514
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 (file)
index 0000000..57629da
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<!-- $Horde: nag/locale/hu_HU/help.xml,v 1.3 2004/12/03 02:10:36 jan Exp $ -->
+<help>
+  <entry id="Overview" state="new">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+  <entry id="sorting" state="unknown">
+    <title>Sorbarendezés</title>
+    <heading>Sorbarendezés</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+</help>
diff --git a/nag/locale/id_ID/LC_MESSAGES/nag.mo b/nag/locale/id_ID/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..5e17f01
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 (file)
index 0000000..1c7a0a8
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 (file)
index 0000000..eb62ae4
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 (file)
index 0000000..3894a83
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 (file)
index 0000000..e81eef5
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 (file)
index 0000000..cfd81ee
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 (file)
index 0000000..95fdcaf
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Horde: nag/locale/lv_LV/help.xml,v 1.3 2004/12/03 02:10:36 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="84ebb3e1b58d0462886ec5fe7ea0d82e" state="changed">
+    <title>Pârskats</title>
+    <heading>Ievads</heading>
+    <para>
+    [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.
+    </para>
+<!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+  <entry id="sorting" md5="57699a6f7694cea8df57e314ade3c907" state="changed">
+    <title>Ðíiroðana</title>
+    <heading>Ðíiroðana</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+</help>
diff --git a/nag/locale/nb_NO/LC_MESSAGES/nag.mo b/nag/locale/nb_NO/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..d44b3cf
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 (file)
index 0000000..3dd9623
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 (file)
index 0000000..474b6d0
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0"?>
+<!-- $Horde: nag/locale/nl_NL/help.xml,v 1.2 2004/12/03 02:10:36 jan Exp $ -->
+<help>
+  <entry id="Overview" md5="ca9c259b68a1ca39c4ce1fa3dd077dce" state="changed">
+    <title>Overzicht</title>
+    <heading>Introductie</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+  <entry id="sorting" md5="57699a6f7694cea8df57e314ade3c907" state="changed">
+    <title>Sorteren van de Items</title>
+    <heading>Sorteren van de Items</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--><!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+</help>
diff --git a/nag/locale/nn_NO/LC_MESSAGES/nag.mo b/nag/locale/nn_NO/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..cc1faad
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 (file)
index 0000000..9380ea6
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 (file)
index 0000000..5f7cd3d
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 (file)
index 0000000..1e7fdf4
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 (file)
index 0000000..c62a8ef
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 (file)
index 0000000..ab2ec53
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 (file)
index 0000000..eb867d1
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 (file)
index 0000000..e63a24e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<!-- $Horde: nag/locale/sk_SK/help.xml,v 1.3 2004/12/03 02:10:36 jan Exp $ -->
+<help>
+  <entry id="Overview" state="unknown">
+    <title>Prehµad</title>
+    <heading>Úvod</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+  <entry id="sorting" state="unknown">
+    <title>Triedenie polo¾iek</title>
+    <heading>Triedenie polo¾iek</heading>
+    <para>
+    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.
+    </para>
+<!-- English entry:
+<entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>--></entry>
+</help>
diff --git a/nag/locale/sl_SI/LC_MESSAGES/nag.mo b/nag/locale/sl_SI/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..6825ece
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 (file)
index 0000000..7dca300
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 (file)
index 0000000..5860635
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 (file)
index 0000000..a4a2226
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="iso-8859-9"?>
+<!-- $Horde: nag/locale/tr_TR/help.xml,v 1.1 2005/04/13 21:20:23 jan Exp $ -->
+<help>
+
+<!-- English entry:
+  <entry id="Overview">
+    <title>Overview</title>
+    <heading>Introduction</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+-->
+
+<entry id="Overview" md5="67c67240d4ec4a037b8ae76f371c5ad3" state="uptodate">
+<title>Genel Bakýþ</title>
+<heading>Baþlangýç</heading>
+<para>
+Ö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.
+</para>
+</entry>
+
+<!-- English entry:
+  <entry id="sorting">
+    <title>Sorting Entries</title>
+    <heading>Sorting Entries</heading>
+    <para>
+      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.
+    </para>
+  </entry>
+-->
+
+<entry id="sorting" md5="275a51456e8b440a5bf7afe2af24c777" state="uptodate">
+<title>Giriþlerin Sýnýflandýrýlmasý</title>
+<heading>Giriþlerin Sýnýflandýrýlmasý</heading>
+<para>
+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.
+</para>
+</entry>
+
+</help>
diff --git a/nag/locale/zh_CN/LC_MESSAGES/nag.mo b/nag/locale/zh_CN/LC_MESSAGES/nag.mo
new file mode 100644 (file)
index 0000000..c09b318
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 (file)
index 0000000..0aa67e2
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 (file)
index 0000000..a4356a9
--- /dev/null
@@ -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 (file)
index 0000000..deb47f9
--- /dev/null
@@ -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. <pl@tinum.info>
+# Custom Web Applications <http://platinum-sy.com>
+# Platinum Development Team <devteam@platinum-sy.net>
+#
+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 <devteam@platinum-sy.com>\n"
+"Language-Team: Arabic <i18n@lists.horde.org>\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 (file)
index 0000000..69e92b9
--- /dev/null
@@ -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 <miro@cybershade.us>, 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 <miro@cybershade.us>\n"
+"Language-Team: BG i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, c-format
+msgid "%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 (file)
index 0000000..6550020
--- /dev/null
@@ -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 <projectek2@upcnet.es>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 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 (file)
index 0000000..68a1179
--- /dev/null
@@ -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 <pavel@chytil.tk>, 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 <pavel@chytil.tk>\n"
+"Language-Team: Czech <dev@lists.horde.org>\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 (file)
index 0000000..e67e697
--- /dev/null
@@ -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 <horde+i18n@briantruelsen.dk>, 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 <horde+i18n@briantruelsen.dk>\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 (file)
index 0000000..a260469
--- /dev/null
@@ -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 <jan@horde.org>, 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 <jan@horde.org>\n"
+"Language-Team: German <dev@lists.horde.org>\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 (file)
index 0000000..63d5be8
--- /dev/null
@@ -0,0 +1,1055 @@
+# Nag Greek translation
+# Copyright 2002 Stefanos I. Dimitriou.
+# Stefanos I. Dimitriou <support_webmail@teiath.gr>, 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 <kmilosis@yahoo.com>\n"
+"Language-Team: Greek <dev@lists.horde.org>\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 (file)
index 0000000..05c623b
--- /dev/null
@@ -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 <mayala@unex.es>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 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 (file)
index 0000000..12e1e6f
--- /dev/null
@@ -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 <alar.sing@err.ee>\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 (file)
index 0000000..7477d81
--- /dev/null
@@ -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 <xabier.arrieta@ehu.es>, 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 <xabier.arrieta@ehu."
+"es>\n"
+"Language-Team: Euskal Herriko Unibertsitatea EHU/UPV <xabier.arrieta@ehu."
+"es>\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 (file)
index 0000000..192d23f
--- /dev/null
@@ -0,0 +1,1281 @@
+# Finnish translation for Nag.
+# Copyright
+# Tero Matinlassi <terom@iki.fi>, 2002.
+# Leena Heino <liinu@uta.fi>, 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 <liinu@uta.fi>\n"
+"Language-Team: Finnish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"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 (file)
index 0000000..596df34
--- /dev/null
@@ -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 <mik@galaxie.net>, 2001.
+# Thierry Thomas <thierry@pompo.net>, 2002, 2005, 2006, 2007.
+# Pierre Lachance <pl@pierrelachance.net> et Benoit St-Andre <ben@benoitst-andre.net>, 2003, 2004.
+# Yannick Sebastia <yannick.sebastia@ecole-navale.fr>, 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 <yannick.sebastia@ecole-navale.fr>\n"
+"Language-Team: Français <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"
+"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 (file)
index 0000000..9b13fcd
--- /dev/null
@@ -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 <torlasz@xenia.sote.hu>, 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 <torlasz@xenia.sote.hu>\n"
+"Language-Team: Hungarian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: 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 (file)
index 0000000..bc9e6a3
--- /dev/null
@@ -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 <EMAIL@ADDRESS>, 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 <slamin@unej.ac.id>\n"
+"Language-Team: UPT TI UNEJ <uptti@unej.ac.id>\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 <b>%s</b>."
+msgstr "Tugas pada kategori yang dihapus akan menjadi <b>%s</b>."
+
+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 (file)
index 0000000..1ff64e2
--- /dev/null
@@ -0,0 +1,1273 @@
+# Nag 2.1.3 Italian translation
+# Copyright 2001 Free Software Foundation, Inc.
+# Paola Carpenter <pcarpenter@infvic.it>; Giovanni Meneghetti <gmeneghetti@infvic.it>, 2001.
+# Copyright 2003 Sergio G. Caredda.
+# Sergio G. Caredda <scaredda@tiscali.it>, 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 <info@nethesis.it>\n"
+"Language-Team: Italian <dev@lists.horde.org>\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 (file)
index 0000000..497545c
--- /dev/null
@@ -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 <hiromi@tac.tsukuba.ac.jp>
+#
+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 <hiromi@tac.tsukuba.ac.jp>\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 \83T\83u\83^\83X\83N\82ð\8aÜ\82Þ)"
+
+#: lib/Nag.php:71
+#, php-format
+msgid "%d hour"
+msgstr "%d \8e\9e\8aÔ"
+
+#: lib/Nag.php:73
+#, php-format
+msgid "%d hour, %d minute"
+msgstr "%d \8e\9e\8aÔ %d \95ª"
+
+#: lib/Nag.php:75
+#, php-format
+msgid "%d hour, %d minutes"
+msgstr "%d \8e\9e\8aÔ %d \95ª"
+
+#: lib/Nag.php:63
+#, php-format
+msgid "%d hours"
+msgstr "%d \8e\9e\8aÔ"
+
+#: lib/Nag.php:65
+#, php-format
+msgid "%d hours, %d minute"
+msgstr "%d \8e\9e\8aÔ %d \95ª"
+
+#: lib/Nag.php:67
+#, php-format
+msgid "%d hours, %d minutes"
+msgstr "%d \8e\9e\8aÔ %d \95ª"
+
+#: lib/Nag.php:81
+#, php-format
+msgid "%d minute"
+msgstr "%d \95ª"
+
+#: lib/Nag.php:83
+#, php-format
+msgid "%d minutes"
+msgstr "%d \95ª"
+
+#: 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 \82Ì\8aú\93ú\82Í\82 \82Æ %s \82Å\82·"
+
+#: lib/Nag.php:588 lib/Block/tree_alarms.php:44 lib/Block/summary.php:104
+#, php-format
+msgid "%s is due now."
+msgstr "%s \82Ì\8aú\93ú\82Å\82·\81B"
+
+#: task.php:231
+#, php-format
+msgid "%s is now incomplete."
+msgstr "%s \82Í\8a®\97¹\82µ\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: data.php:199
+#, php-format
+msgid "%s successfully imported"
+msgstr "%s \82Í\90³\8fí\82É\83C\83\93\83|\81[\83g\82³\82ê\82Ü\82µ\82½"
+
+#: tasklists.php:104 lib/Nag.php:516
+#, php-format
+msgid "%s's Task List"
+msgstr "%s \82Ì\83^\83X\83N\95\"
+
+#: lib/Nag.php:315 lib/Forms/task.php:55
+msgid "(highest)"
+msgstr "\81i\8dÅ\8d\82\81j"
+
+#: lib/Nag.php:315 lib/Forms/task.php:56
+msgid "(lowest)"
+msgstr "\81i\8dÅ\92á\81j"
+
+#: task.php:215
+#, php-format
+msgid "Access denied completing task %s."
+msgstr "\83^\83X\83N %s \82Ì\8a®\97¹\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: task.php:24
+#, php-format
+msgid "Access denied deleting %s"
+msgstr "%s \82Ì\8dí\8f\9c\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½"
+
+#: task.php:84 task.php:90
+msgid "Access denied editing task."
+msgstr "\83^\83X\83N %s \82Ì\95Ò\8fW\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: task.php:82
+#, php-format
+msgid "Access denied editing task: %s"
+msgstr "\83^\83X\83N\82Ì\95Ò\8fW\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81F%s"
+
+#: task.php:163
+#, php-format
+msgid "Access denied moving the task to %s."
+msgstr "\83^\83X\83N\82Ì %s \82Ö\82Ì\88Ú\93®\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: task.php:166
+#, php-format
+msgid "Access denied removing task from %s."
+msgstr "\83^\83X\83N\82Ì %s \82©\82ç\82Ì\8dí\8f\9c\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: task.php:125
+#, php-format
+msgid "Access denied saving task to %s."
+msgstr "\83^\83X\83N\82Ì %s \82Ö\82Ì\95Û\91\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: task.php:121
+#, php-format
+msgid "Access denied saving task: %s"
+msgstr "\83^\83X\83N\82Ì\95Û\91\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81F%s"
+
+#: templates/view/task.inc:26 lib/Forms/task.php:85
+msgid "Alarm"
+msgstr "\83A\83\89\81[\83\80"
+
+#: config/prefs.php.dist:201
+msgid "All tasks"
+msgstr "\91S\83^\83X\83N"
+
+#: lib/Block/summary.php:63
+msgid "Always show completed tasks?"
+msgstr "\8a®\97¹\82µ\82½\83^\83X\83N\82ð\8fí\82É\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:60
+msgid "Always show overdue tasks?"
+msgstr "\8aú\8cÀ\82Ì\89ß\82¬\82½\83^\83X\83N\82ð\8fí\82É\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: config/prefs.php.dist:118
+msgid "Ascending"
+msgstr "\8f¸\8f\87"
+
+#: lib/Block/summary.php:39
+msgid "Block title"
+msgstr "\83u\83\8d\83b\83N\83^\83C\83g\83\8b"
+
+#: data.php:30
+msgid "CSV"
+msgstr "CSV"
+
+#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106
+msgid "Calendar"
+msgstr "\97\\92è\95\"
+
+#: templates/list/task_headers.inc:53
+msgid "Cat_egory"
+msgstr "_E\95ª\97Þ"
+
+#: 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 "\95ª\97Þ"
+
+#: templates/tasklists/tasklists.inc:26
+msgid "Change"
+msgstr "\95Ï\8dX"
+
+#: config/prefs.php.dist:15
+msgid "Change your task sorting and display options."
+msgstr "\83^\83X\83N\82Ì\95À\82Ñ\8f\87\82Æ\95\\8e¦\83I\83v\83V\83\87\83\93\82ð\95Ï\8dX\82µ\82Ü\82·\81B"
+
+#: config/prefs.php.dist:180
+msgid "Choose how you want to receive reminders for tasks with alarms:"
+msgstr "\83^\83X\83N\82Ì\83\8a\83}\83C\83\93\83_\81i\8dÃ\91£\81j\82ð\82Ç\82Ì\82æ\82¤\82É\8eó\82¯\8eæ\82é\82©\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢\81F"
+
+#: config/prefs.php.dist:171
+msgid ""
+"Choose if you want to be notified of new, edited, and deleted tasks by email:"
+msgstr ""
+"\83^\83X\83N\82ð\92Ç\89Á\81A\95Ï\8dX\81A\8dí\8f\9c\82µ\82½\8e\9e\82É\83\81\81[\83\8b\82Å\92Ê\92m\82µ\82Ä\97~\82µ\82¢\82È\82ç\91I\91ð\82µ\82Ä\89º\82³\82¢\81F"
+
+#: config/prefs.php.dist:43
+msgid "Choose if you want to be notified of task changes and task alarms."
+msgstr "\83^\83X\83N\82ð\95Ï\8dX\82µ\82½\8e\9e\82É\92Ê\92m\82µ\82Ä\97~\82µ\82¢\82È\82ç\91I\91ð\82µ\82Ä\89º\82³\82¢\81B"
+
+#: config/prefs.php.dist:36
+msgid "Choose your default task list."
+msgstr "\83f\83t\83H\83\8b\83g\82Ì\83^\83X\83N\95\\82ð\91I\91ð\82µ\82Ü\82·\81B"
+
+#: templates/list/header.inc:8
+msgid "Close Search"
+msgstr "\8c\9f\8dõ\82ð\95Â\82\82é"
+
+#: view.php:99
+msgid "Complete"
+msgstr "\8a®\97¹"
+
+#: templates/list/task_summaries.inc:11 lib/Block/summary.php:168
+#, php-format
+msgid "Complete \"%s\""
+msgstr "\8a®\97¹ \"%s\""
+
+#: templates/view/task.inc:42
+msgid "Complete Task"
+msgstr "\8a®\97¹\83^\83X\83N"
+
+#: config/prefs.php.dist:203
+msgid "Complete tasks"
+msgstr "\8a®\97¹\83^\83X\83N"
+
+#: lib/Nag.php:379 lib/Block/summary.php:166
+msgid "Completed"
+msgstr "\8a®\97¹"
+
+#: task.php:229
+#, php-format
+msgid "Completed %s."
+msgstr "%s \8a®\97¹\81B"
+
+#: templates/search/search.inc:27
+msgid "Completed Tasks"
+msgstr "\8a®\97¹\83^\83X\83N"
+
+#: 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 "\8a®\97¹\81H"
+
+#: data.php:58
+msgid "Completion Status"
+msgstr "\8a®\97¹\8fó\8bµ"
+
+#: lib/api.php:317 lib/api.php:544
+#, php-format
+msgid "Connection failed: %s"
+msgstr "\90Ú\91±\8e¸\94s\81F%s"
+
+#: templates/tasklists/tasklists.inc:17 templates/tasklists/tasklists.inc:86
+msgid "Create"
+msgstr "\8dì\90¬"
+
+#: templates/view/task.inc:57
+msgid "Created"
+msgstr "\8dì\90¬\93ú\8e\9e"
+
+#: lib/UI/VarRenderer/nag.php:51 lib/UI/VarRenderer/nag.php:100
+msgid "Day"
+msgstr "\93ú"
+
+#: lib/Nag.php:411 lib/UI/VarRenderer/nag.php:136
+msgid "Day(s)"
+msgstr "\93ú"
+
+#: config/prefs.php.dist:35
+msgid "Default Task List"
+msgstr "\83f\83t\83H\83\8b\83g\82Ì\83^\83X\83N\95\"
+
+#: config/prefs.php.dist:29
+msgid "Defaults for new tasks"
+msgstr "\90V\82ç\82µ\82¢\83^\83X\83N\82Ì\83f\83t\83H\83\8b\83g"
+
+#: lib/Forms/task.php:84
+msgid "Delay Start Until"
+msgstr "\89\84\8aú"
+
+#: view.php:106 templates/tasklists/tasklists.inc:87
+msgid "Delete"
+msgstr "\8dí\8f\9c"
+
+#: config/prefs.php.dist:21
+msgid "Delete Confirmation"
+msgstr "\8dí\8f\9c\82Ì\8am\94F"
+
+#: config/prefs.php.dist:22
+msgid "Delete button behaviour"
+msgstr "\8dí\8f\9c\83{\83^\83\93\82Ì\88µ\82¢"
+
+#: task.php:105 lib/Forms/task.php:96
+msgid "Delete this task"
+msgstr "\82±\82Ì\83^\83X\83N\82ð\8dí\8f\9c"
+
+#: task.php:32
+#, php-format
+msgid "Deleted %s."
+msgstr "%s \82ð\8dí\8f\9c\82µ\82Ü\82µ\82½\81B"
+
+#: config/prefs.php.dist:119
+msgid "Descending"
+msgstr "\8d~\8f\87"
+
+#: data.php:53 lib/Forms/task.php:92
+msgid "Description"
+msgstr "\90à\96¾"
+
+#: templates/tasklists/tasklists.inc:75
+msgid "Description:"
+msgstr "\90à\96¾\81F"
+
+#: config/prefs.php.dist:14
+msgid "Display Options"
+msgstr "\95\\8e¦\83I\83v\83V\83\87\83\93"
+
+#: config/prefs.php.dist:129
+msgid "Do you want to confirm deleting entries?"
+msgstr "\83G\83\93\83g\83\8a\81[\82ð\8dí\8f\9c\82·\82é\8dÛ\82É\8am\94F\82µ\82Ü\82·\82©\81H"
+
+#: data.php:55 templates/view/task.inc:22 lib/Forms/task.php:83
+msgid "Due By"
+msgstr "\8aú\93ú"
+
+#: config/prefs.php.dist:91 config/prefs.php.dist:106
+msgid "Due Date"
+msgstr "\8aú\93ú"
+
+#: lib/UI/VarRenderer/nag.php:99
+msgid "Due date specified."
+msgstr ""
+
+#: view.php:102
+msgid "Edit"
+msgstr "\95Ò\8fW"
+
+#: templates/list/task_summaries.inc:38 lib/Block/summary.php:159
+#, php-format
+msgid "Edit \"%s\""
+msgstr "\95Ò\8fW \"%s\""
+
+#: templates/list/task_headers.inc:42
+msgid "Edit Task"
+msgstr "\83^\83X\83N\95Ò\8fW"
+
+#: templates/list/task_headers.inc:58
+msgid "Edit categories and colors"
+msgstr "\95ª\97Þ\82Æ\90F\82Ì\95Ò\8fW"
+
+#: task.php:95 task.php:109
+#, php-format
+msgid "Edit: %s"
+msgstr "\95Ò\8fW\81F%s"
+
+#: task.php:19
+#, php-format
+msgid "Error deleting task: %s"
+msgstr "\83^\83X\83N\82Ì\8dí\8f\9c\82ª\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81F%s"
+
+#: templates/view/task.inc:34 lib/Forms/task.php:90
+msgid "Estimated Time"
+msgstr "\8c©\90Ï\82è\8e\9e\8aÔ"
+
+#: templates/data/export.inc:17
+msgid "Export"
+msgstr "\83G\83N\83X\83|\81[\83g"
+
+#: templates/data/export.inc:6
+msgid "Export Tasks"
+msgstr "\83^\83X\83N\82Ì\83G\83N\83X\83|\81[\83g"
+
+#: config/prefs.php.dist:57
+msgid "External Data"
+msgstr "\8aO\95\94\83f\81[\83^"
+
+#: config/prefs.php.dist:13 config/prefs.php.dist:20 config/prefs.php.dist:27
+msgid "General Options"
+msgstr "\88ê\94Ê\83I\83v\83V\83\87\83\93"
+
+#: lib/UI/VarRenderer/nag.php:111
+msgid "Hour"
+msgstr "\8e\9e\8aÔ"
+
+#: lib/Nag.php:414 lib/UI/VarRenderer/nag.php:135
+msgid "Hour(s)"
+msgstr "\8e\9e\8aÔ"
+
+#: templates/data/import.inc:7
+#, php-format
+msgid "Import Tasks, Step %d"
+msgstr "\83^\83X\83N\82Ì\83C\83\93\83|\81[\83g\81A\83X\83e\83b\83v %d"
+
+#: data.php:205
+msgid "Import/Export Tasks"
+msgstr "\83C\83\93\83|\81[\83g\81^\83G\83N\83X\83|\81[\83\83^\83X\83N"
+
+#: list.php:112
+msgid "Incom_plete tasks"
+msgstr "_P\96¢\8a®\83^\83X\83N"
+
+#: templates/search/search.inc:26
+msgid "Incomplete Tasks"
+msgstr "\96¢\8a®\83^\83X\83N"
+
+#: templates/list/task_summaries.inc:8
+msgid "Incomplete sub tasks, complete them first"
+msgstr ""
+
+#: config/prefs.php.dist:202
+msgid "Incomplete tasks"
+msgstr "\96¢\8a®\83^\83X\83N"
+
+#: templates/view/task.inc:64
+msgid "Last Modified"
+msgstr "\8dÅ\8fI\8dX\90V\93ú\8e\9e"
+
+#: 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 "\83^\83X\83N\82Ì\8dÅ\91å\90\94"
+
+#: lib/Block/tree_alarms.php:3
+msgid "Menu Alarms"
+msgstr "\83\81\83j\83\85\81[\83A\83\89\81[\83\80"
+
+#: lib/Block/tree_menu.php:3
+msgid "Menu List"
+msgstr "\83\81\83j\83\85\81[\83\8a\83X\83g"
+
+#: lib/UI/VarRenderer/nag.php:112
+msgid "Minute"
+msgstr "\95ª"
+
+#: lib/Nag.php:417 lib/UI/VarRenderer/nag.php:135
+msgid "Minute(s)"
+msgstr "\95ª"
+
+#: lib/UI/VarRenderer/nag.php:52 lib/UI/VarRenderer/nag.php:101
+msgid "Month"
+msgstr "\8c\8e"
+
+#: templates/list/header.inc:9
+msgid "More Options..."
+msgstr "\82»\82Ì\91¼\82Ì\83I\83v\83V\83\87\83\93"
+
+#: lib/api.php:986
+msgid "Multiple iCalendar components found; only one vTodo is supported."
+msgstr ""
+"\95¡\90\94\82Ì iCalendar \83R\83\93\83|\81[\83l\83\93\83g\82ð\8c\9f\8fo\82µ\82Ü\82µ\82½\81\88ê\82Â\82Ì vTodo \82¾\82¯\82ð\83T\83|\81[\83g\82µ"
+"\82Ä\82¢\82Ü\82·\81B"
+
+#: templates/panel.inc:38
+msgid "My Tasklists:"
+msgstr "\8e\84\82Ì\83^\83X\83N\95\\81F"
+
+#: list.php:34
+msgid "My Tasks"
+msgstr "\8e\84\82Ì\83^\83X\83N"
+
+#: templates/search/search.inc:18
+msgid "N_ame"
+msgstr "_A\96¼\91O"
+
+#: templates/list/task_headers.inc:45
+msgid "Na_me"
+msgstr "_M\96¼\91O"
+
+#: lib/Driver/kolab.php:741
+#, php-format
+msgid "Nag/kolab: Did not find task %s"
+msgstr "Nag/kolab: \83^\83X\83N %s \82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ"
+
+#: data.php:52 lib/Forms/task.php:62
+msgid "Name"
+msgstr "\96¼\91O"
+
+#: templates/tasklists/tasklists.inc:68
+msgid "Name:"
+msgstr "\96¼\91O\81F"
+
+#: task.php:74 task.php:109 lib/Block/tree_menu.php:27
+msgid "New Task"
+msgstr "\90V\83^\83X\83N"
+
+#: templates/data/import.inc:39
+msgid "Next"
+msgstr "\8e\9f"
+
+#: config/prefs.php.dist:167
+msgid "No"
+msgstr ""
+
+#: lib/UI/VarRenderer/nag.php:46
+msgid "No delay"
+msgstr "\89\84\8aú\82µ\82È\82¢"
+
+#: lib/UI/VarRenderer/nag.php:95
+msgid "No due date."
+msgstr "\8aú\93ú\82È\82µ"
+
+#: lib/api.php:405 lib/api.php:709 lib/api.php:767 lib/api.php:979
+msgid "No iCalendar data was found."
+msgstr "iCalendar \82Ì\83f\81[\83^\82ª\8c©\95t\82©\82è\82Ü\82¹\82ñ\81B"
+
+#: lib/Forms/task.php:50
+msgid "No parent task"
+msgstr "\90e\83^\83X\83N\82È\82µ"
+
+#: lib/Nag.php:605
+msgid "No task lists are available to guests."
+msgstr "\83Q\83X\83g\82É\82Í\83^\83X\83N\95\\82Í\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: templates/list/task_footers.inc:5
+msgid "No tasks match"
+msgstr "\88ê\92v\82·\82é\83^\83X\83N\82Í\82 \82è\82Ü\82¹\82ñ"
+
+#: lib/Block/summary.php:222
+msgid "No tasks to display"
+msgstr "\95\\8e¦\82·\82é\82×\82«\83^\83X\83N\82Í\82 \82è\82Ü\82¹\82ñ"
+
+#: lib/Nag.php:421 lib/UI/VarRenderer/nag.php:151
+msgid "None"
+msgstr "\82È\82µ"
+
+#: lib/Nag.php:380
+msgid "Not Completed"
+msgstr "\8a®\97¹\82¹\82¸"
+
+#: templates/view/task.inc:14
+msgid "Not Private"
+msgstr "\8cÂ\90l\97p\82Å\82È\82¢"
+
+#: lib/Driver/sql.php:100 lib/Driver/sql.php:136
+msgid "Not found"
+msgstr "\8c©\95t\82©\82è\82Ü\82¹\82ñ\81B"
+
+#: config/prefs.php.dist:42
+msgid "Notifications"
+msgstr "\92Ê\92m"
+
+#: config/prefs.php.dist:169
+msgid "On all shown tasklists"
+msgstr "\95\\8e¦\82µ\82Ä\82¢\82é\91S\82Ä\82Ì\83^\83X\83N\95\"
+
+#: config/prefs.php.dist:170
+msgid "On all tasklists I have read access to"
+msgstr "\93Ç\82Ý\8fo\82µ\8c \82Ì\82 \82é\91S\82Ä\82Ì\83^\83X\83N\95\"
+
+#: config/prefs.php.dist:168
+msgid "On my tasklists only"
+msgstr "\8e\84\82Ì\83^\83X\83N\95\\82Ì\82Ý"
+
+#: templates/list/task_headers.inc:39
+msgid "P_ri"
+msgstr "_R\97D\90æ\93x"
+
+#: lib/Forms/task.php:69
+msgid "Parent task"
+msgstr "\90e\83^\83X\83N"
+
+#: templates/tasklists/tasklists.inc:71
+msgid "Permission"
+msgstr "\83A\83N\83Z\83X\8c "
+
+#: lib/api.php:683 lib/api.php:805 lib/api.php:860 lib/api.php:924
+#: lib/api.php:961
+msgid "Permission Denied"
+msgstr "\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½"
+
+#: lib/api.php:178
+msgid "Permission denied"
+msgstr "\83A\83N\83Z\83X\8b\91\94Û\82³\82ê\82Ü\82µ\82½"
+
+#: 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 "\97D\90æ\93x"
+
+#: templates/view/task.inc:14 lib/Driver.php:902
+msgid "Private"
+msgstr "\8cÂ\90l\97p"
+
+#: lib/Driver.php:900
+msgid "Private Task"
+msgstr "\8cÂ\90l\93I\83^\83X\83N"
+
+#: templates/view/task.inc:12 lib/Forms/task.php:82
+msgid "Private?"
+msgstr "\8cÂ\90l\97p\81H"
+
+#: view.php:106
+msgid "Really delete this task?"
+msgstr "\82±\82Ì\83^\83X\83N\82ð\96{\93\96\82É\8dí\8f\9c\82µ\82Ä\82à\97Ç\82¢\82Å\82·\82©\81H"
+
+#: templates/tasklists/tasklists.inc:81
+msgid "Remote Subscription URL"
+msgstr "\89\93\8au\8dw\93Ç URL"
+
+#: templates/panel.inc:57 lib/Forms/task.php:94
+msgid "Save"
+msgstr "\95Û\91¶"
+
+#: task.php:194
+#, php-format
+msgid "Saved %s."
+msgstr "%s \82ð\95Û\91\82µ\82Ü\82µ\82½\81B"
+
+#: search.php:14 templates/search/search.inc:31 templates/list/header.inc:4
+#: lib/Block/tree_menu.php:47
+msgid "Search"
+msgstr "\8c\9f\8dõ"
+
+#: templates/search/search.inc:17
+msgid "Search In:"
+msgstr "\8c\9f\8dõ\81F"
+
+#: templates/search/search.inc:12
+msgid "Search _Text:"
+msgstr "\8c\9f\8dõ\95\8e\9a\97ñ\81F"
+
+#: templates/search/search.inc:24
+msgid "Search:"
+msgstr "\8c\9f\8dõ\81F"
+
+#: list.php:73
+#, php-format
+msgid "Search: Results for \"%s\""
+msgstr "\"%s\" \82Ì\8c\9f\8dõ\8c\8b\89Ê"
+
+#: lib/UI/VarRenderer/nag.php:58 lib/UI/VarRenderer/nag.php:106
+msgid "Select a date"
+msgstr "\93ú\82ð\91I\91ð"
+
+#: templates/tasklists/tasklists.inc:62
+msgid "Select a tasklist"
+msgstr "\83^\83X\83N\95\\82ð\91I\91ð"
+
+#: templates/tasklists/tasklists.inc:24 templates/tasklists/tasklists.inc:82
+msgid "Select a tasklist above to display the Remote Subscription URL"
+msgstr "\83^\83X\83N\95\\82ð\91I\82Ñ\81A\89\93\8au\8dw\93Ç URL \82ð\95\\8e¦\82³\82¹\82Ä\89º\82³\82¢"
+
+#: templates/tasklists/tasklists.inc:23 templates/tasklists/tasklists.inc:80
+msgid "Select a tasklist above to display the URL"
+msgstr "\83^\83X\83N\95\\82ð\91I\82Ñ URL \82ð\95\\8e¦\82³\82¹\82Ä\89º\82³\82¢"
+
+#: templates/data/export.inc:11
+msgid "Select the export format:"
+msgstr "\83G\83N\83X\83|\81[\83g\8c`\8e®\82ð\91I\91ð\81F"
+
+#: templates/data/import.inc:36
+msgid "Select the file to import:"
+msgstr "\83C\83\93\83|\81[\83g\82·\82é\83t\83@\83C\83\8b\82ð\91I\91ð\81F"
+
+#: templates/data/import.inc:12
+msgid "Select the format of the source file:"
+msgstr "\8c³\83t\83@\83C\83\8b\82Ì\8c`\8e®\82ð\91I\91ð\81F"
+
+#: templates/panel.inc:48
+msgid "Shared Tasklists:"
+msgstr "\8b¤\97L\83^\83X\83N\95\\81F"
+
+#: config/prefs.php.dist:69
+msgid "Should the Task List be shown in its own column in the List view?"
+msgstr "\83^\83X\83N\88ê\97\97\82Å\83^\83X\83N\95\\82Ì\96¼\91O\82à\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:45
+msgid "Show action buttons?"
+msgstr "\91\80\8dì\83{\83^\83\93\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: config/prefs.php.dist:204
+msgid "Show complete, incomplete, or all tasks in the task list?"
+msgstr "\8a®\97¹\82µ\82½\83^\83X\83N\81A\96¢\8a®\82Ì\83^\83X\83N\82È\82Ç\91S\82Ä\82Ì\83^\83X\83N\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: config/prefs.php.dist:191
+msgid "Show data from any of these other applications in your task list?"
+msgstr "\91¼\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83f\81[\83^\82à\83^\83X\83N\95\\82É\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: config/prefs.php.dist:58
+msgid "Show data from other applications or sources."
+msgstr "\91¼\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83f\81[\83^\82à\95\\8e¦\82·\82é\81B"
+
+#: lib/Block/summary.php:48
+msgid "Show due dates?"
+msgstr "\8aú\93ú\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:42
+msgid "Show priorities?"
+msgstr "\97D\90æ\93x\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:54
+msgid "Show task alarms?"
+msgstr "\83A\83\89\81[\83\80\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:57
+msgid "Show task category?"
+msgstr "\95ª\97Þ\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: config/prefs.php.dist:79
+msgid "Show task list options panel?"
+msgstr "\83^\83X\83N\95\\82Ì\83I\83v\83V\83\87\83\93\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:51
+msgid "Show tasklist name?"
+msgstr "\83^\83X\83N\95\\82Ì\96¼\91O\82ð\95\\8e¦\82µ\82Ü\82·\82©\81H"
+
+#: lib/Block/summary.php:70
+msgid "Show tasks from these categories"
+msgstr "\82±\82ê\82ç\82Ì\95ª\97Þ\82Ì\83^\83X\83N\82ð\95\\8e¦"
+
+#: lib/Block/summary.php:66
+msgid "Show tasks from these tasklists"
+msgstr "\82±\82ê\82ç\82Ì\83^\83X\83N\95\\82Ì\83^\83X\83N\82ð\95\\8e¦"
+
+#: templates/list/task_headers.inc:53
+msgid "Sort by Category"
+msgstr "\95ª\97Þ\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: templates/list/task_headers.inc:31
+msgid "Sort by Completion Status"
+msgstr "\8a®\97¹\8fó\8bµ\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: templates/list/task_headers.inc:50
+msgid "Sort by Due Date"
+msgstr "\8aú\93ú\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: templates/list/task_headers.inc:45
+msgid "Sort by Name"
+msgstr "\96¼\91O\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: templates/list/task_headers.inc:39
+msgid "Sort by Priority"
+msgstr "\97D\90æ\93x\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: templates/list/task_headers.inc:35
+msgid "Sort by User Name"
+msgstr "\96¼\91O\82Ì\8f\87\82É\95À\82Ñ\91Ö\82¦\82é"
+
+#: config/prefs.php.dist:120
+msgid "Sort direction:"
+msgstr "\95À\82Ñ\95û\8cü\81F"
+
+#: config/prefs.php.dist:94
+msgid "Sort tasks by:"
+msgstr "\83^\83X\83N\82Ì\95À\82Ñ\8f\87\81F"
+
+#: data.php:56
+msgid "Start"
+msgstr "\8aJ\8en"
+
+#: templates/view/task.inc:18
+msgid "Start Date"
+msgstr "\8aJ\8en\93ú\8e\9e"
+
+#: lib/UI/VarRenderer/nag.php:50
+msgid "Start date specified."
+msgstr "\8aJ\8en\93ú\8e\9e\82ª\8ew\92è\82³\82ê\82Ü\82µ\82½\81B"
+
+#: templates/list/task_summaries.inc:57
+msgid "Task Alarm"
+msgstr "\83^\83X\83N\83A\83\89\81[\83\80"
+
+#: templates/list/task_headers.inc:48
+msgid "Task Alarm?"
+msgstr "\83^\83X\83N\83A\83\89\81[\83\80\81H"
+
+#: config/prefs.php.dist:28
+msgid "Task Defaults"
+msgstr "\83^\83X\83N\83f\83t\83H\83\8b\83g"
+
+#: lib/Forms/task.php:65
+msgid "Task List"
+msgstr "\83^\83X\83N\95\"
+
+#: config/prefs.php.dist:34 config/prefs.php.dist:41 config/prefs.php.dist:56
+msgid "Task List and Share Options"
+msgstr "\83^\83X\83N\95\\82Æ\8b¤\97L\82Ì\83I\83v\83V\83\87\83\93"
+
+#: tasklists.php:117
+msgid "Task Lists"
+msgstr "\83^\83X\83N\95\"
+
+#: config/prefs.php.dist:89 config/prefs.php.dist:104
+msgid "Task Name"
+msgstr "\83^\83X\83N\96¼"
+
+#: templates/list/task_summaries.inc:55
+msgid "Task Note"
+msgstr "\83^\83X\83N\83m\81[\83g"
+
+#: templates/list/task_headers.inc:47
+msgid "Task Note?"
+msgstr "\83^\83X\83N\83m\81[\83g\81H"
+
+#: templates/search/search.inc:6
+msgid "Task Search"
+msgstr "\83^\83X\83N\8c\9f\8dõ"
+
+#: lib/Nag.php:630
+msgid "Task added:"
+msgstr "\92Ç\89Á\82³\82ê\82½\83^\83X\83N\81F"
+
+#: lib/Nag.php:640
+msgid "Task deleted:"
+msgstr "\8dí\8f\9c\82³\82ê\82½\83^\83X\83N\81F"
+
+#: tasklists.php:32
+msgid "Task lists must have a name."
+msgstr "\83^\83X\83N\95\\82É\96¼\91O\82ª\95K\97v\82Å\82·\81B"
+
+#: lib/Nag.php:635
+msgid "Task modified:"
+msgstr "\8dX\90V\93ú\8e\9e\81F"
+
+#: task.php:88 view.php:44
+msgid "Task not found."
+msgstr "\83^\83X\83N\82ª\8c©\95t\82©\82è\82Ü\82¹\82ñ\81B"
+
+#: config/prefs.php.dist:93 config/prefs.php.dist:108
+msgid "Tasklist"
+msgstr "\83^\83X\83N\95\"
+
+#: templates/panel.inc:30 templates/panel.inc:31
+#: templates/tasklists/tasklists.inc:58
+msgid "Tasklists"
+msgstr "\83^\83X\83N\95\"
+
+#: templates/tasklists/tasklists.inc:60
+msgid "Tasklists:"
+msgstr "\83^\83X\83N\95\\81F"
+
+#: lib/api.php:1041
+msgid "Tasks"
+msgstr "\83^\83X\83N"
+
+#: lib/Block/summary.php:3
+msgid "Tasks Summary"
+msgstr "\83^\83X\83N\8aT\97v"
+
+#: data.php:193
+#, php-format
+msgid "The %s file didn't contain any tasks."
+msgstr "\83t\83@\83C\83\8b %s \82É\82Í\83^\83X\83N\82Í\88ê\82Â\82à\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver.php:56
+msgid "The Tasks backend is not currently available."
+msgstr "\83^\83X\83N\82Ì\83o\83b\83N\83G\83\93\83h\82Í\8c»\8dÝ\8eg\97p\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver.php:137
+#, php-format
+msgid "The Tasks backend is not currently available: %s"
+msgstr "\83^\83X\83N\82Ì\83o\83b\83N\83G\83\93\83h\82Í\8c»\8dÝ\8eg\97p\82Å\82«\82Ü\82¹\82ñ\81F %s"
+
+#: lib/Forms/task.php:130
+msgid "The alarm value must not be empty."
+msgstr "\83A\83\89\81[\83\80\82Ì\92l\82Í\8bó\82Å\82Í\82¢\82¯\82Ü\82¹\82ñ\81B"
+
+#: templates/prefs/defaultduetimeselect.inc:8
+msgid "The current hour"
+msgstr "\8c»\8dÝ\82Ì\8e\9e\8d\8f"
+
+#: lib/Nag.php:631
+#, php-format
+msgid ""
+"The task \"%s\" has been added to \"%s\" tasklist, with a due date of: %s."
+msgstr "\83^\83X\83N \"%s\" \82Í\83^\83X\83N\95\ \"%s\" \82É\92Ç\89Á\82³\82ê\82Ü\82µ\82½\81B\8aú\93ú\82Í\81F%s"
+
+#: lib/Nag.php:641
+#, php-format
+msgid ""
+"The task \"%s\" has been deleted from \"%s\" tasklist, with a due date of: %"
+"s."
+msgstr "\83^\83X\83N \"%s\" \82Í\83^\83X\83N\95\ \"%s\" \82©\82ç\8dí\8f\9c\82³\82ê\82Ü\82µ\82½\81B\8aú\93ú\82Í\81F%s"
+
+#: lib/Nag.php:636
+#, php-format
+msgid ""
+"The task \"%s\" has been edited on \"%s\" tasklist, with a due date of: %s."
+msgstr "\83^\83X\83N \"%s\" \82Í\83^\83X\83N\95\ \"%s\" \82Å\95Ï\8dX\82³\82ê\82Ü\82µ\82½\81B\8aú\93ú\82Í\81F%s"
+
+#: tasklists.php:49
+#, php-format
+msgid "The task list \"%s\" couldn't be created: %s"
+msgstr "\83^\83X\83N\95\ \"%s\" \82Í\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81F%s"
+
+#: tasklists.php:60
+#, php-format
+msgid "The task list \"%s\" couldn't be saved: %s"
+msgstr "\83^\83X\83N\95\ \"%s\" \82Í\95Û\91\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81F%s"
+
+#: tasklists.php:51
+#, php-format
+msgid "The task list \"%s\" has been created."
+msgstr "\83^\83X\83N\95\ \"%s\" \82Í\8dì\90¬\82³\82ê\82Ü\82µ\82½\81B"
+
+#: tasklists.php:85
+#, php-format
+msgid "The task list \"%s\" has been deleted."
+msgstr "\83^\83X\83N\95\ \"%s\" \82Í\8dí\8f\9c\82³\82ê\82Ü\82µ\82½\81B"
+
+#: tasklists.php:62
+#, php-format
+msgid "The task list \"%s\" has been saved."
+msgstr "\83^\83X\83N\95\ \"%s\" \82Í\95Û\91\82³\82ê\82Ü\82µ\82½\81B"
+
+#: config/prefs.php.dist:109
+msgid "Then:"
+msgstr "\82³\82ç\82É\81F"
+
+#: templates/list/empty.inc:2
+msgid "There are no tasks matching the current criteria."
+msgstr "\8c»\8dÝ\82Ì\8aî\8f\80\82É\88ê\92v\82·\82é\83^\83X\83N\82Í\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: task.php:225
+#, php-format
+msgid "There was a problem completing %s: %s"
+msgstr "%s \82ð\8a®\97¹\92\86\82É\96â\91è\82ª\82 \82è\82Ü\82µ\82½\81F%s"
+
+#: task.php:29
+#, php-format
+msgid "There was a problem deleting %s: %s"
+msgstr "%s \82ð\8dí\8f\9c\92\86\82É\96â\91è\82ª\82 \82è\82Ü\82µ\82½\81F%s"
+
+#: task.php:192
+#, php-format
+msgid "There was a problem saving the task: %s."
+msgstr "\83^\83X\83N\82ð\95Û\91\92\86\82É\96â\91è\82ª\82 \82è\82Ü\82µ\82½\81F%s"
+
+#: data.php:196
+#, php-format
+msgid "There was an error importing the data: %s"
+msgstr "\83f\81[\83^\82ð\83C\83\93\83|\81[\83g\92\86\82É\83G\83\89\81[\82ª\82 \82è\82Ü\82µ\82½\81F%s"
+
+#: lib/api.php:397 lib/api.php:701 lib/api.php:973
+msgid "There was an error importing the iCalendar data."
+msgstr "iCalendar \83f\81[\83^\82ð\83C\83\93\83|\81[\83g\92\86\82É\83G\83\89\81[\82ª\82 \82è\82Ü\82µ\82½\81B"
+
+#: data.php:80
+msgid "There were no tasks to export."
+msgstr "\83G\83N\83X\83|\81[\83g\82·\82é\83^\83X\83N\82ª\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: data.php:126
+msgid "This file format is not supported."
+msgstr "\82±\82Ì\83t\83@\83C\83\8b\8c`\8e®\82Í\83T\83|\81[\83g\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: templates/tasklists/tasklists.inc:79
+msgid "URL"
+msgstr "URL"
+
+#: tasklists.php:81
+#, php-format
+msgid "Unable to delete \"%s\": %s"
+msgstr "\"%s\" \82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ\81F%s"
+
+#: lib/Driver.php:140
+#, php-format
+msgid "Unable to load the definition of %s."
+msgstr "%s \82Ì\92è\8b`\82ª\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: 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 "\96¢\90®\97\9d"
+
+#: 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 "\83T\83|\81[\83g\82³\82ê\82Ä\82¢\82È\82¢ Content-Type \82Å\82·\81F%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 ""
+"\83^\83X\83N\82Ì\8aú\93ú\82É\82Â\82¢\82Ä\88È\89º\82Ì\82æ\82¤\82É\8dÃ\91£\92v\82µ\82Ü\82·\81B\n"
+"\n"
+"%s\n"
+"\n"
+"\93ú\8e\9e\81F%s\n"
+"\8e\9e\8aÔ\81F%s\n"
+"\n"
+"%s"
+
+#: lib/Nag.php:408 lib/UI/VarRenderer/nag.php:136
+msgid "Week(s)"
+msgstr "\8fT"
+
+#: templates/prefs/defaultduetimeselect.inc:6
+msgid "What do you want to be the default due time for tasks?"
+msgstr "\83f\83t\83H\83\8b\83g\82Ì\8aú\93ú\8e\9e\8aÔ\82ð\89½\8e\9e\82É\82µ\82Ü\82·\82©\81H"
+
+#: 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 "\90V\83^\83X\83N\82ð\8dì\82é\8e\9e\81A\83f\83t\83H\83\8b\83g\82Ì\8aú\93ú\82ð\89½\93ú\8cã\82É\82µ\82Ü\82·\82©\81i0\82Í\8d¡\93ú\81j\81H"
+
+#: config/prefs.php.dist:138
+msgid "When creating a new task, should it default to having a due date?"
+msgstr "\90V\83^\83X\83N\82ð\8dì\82é\8e\9e\81A\83f\83t\83H\83\8b\83g\82Å\8aú\93ú\95t\82É\82µ\82Ü\82·\82©\81H"
+
+#: templates/data/import.inc:21
+msgid "Which tasklist should the tasks be added to?"
+msgstr "\82Ç\82Ì\83^\83X\83N\95\\82É\92Ç\89Á\82µ\82Ü\82·\82©\81H"
+
+#: lib/UI/VarRenderer/nag.php:53 lib/UI/VarRenderer/nag.php:102
+msgid "Year"
+msgstr "\94N"
+
+#: data.php:41 data.php:151 task.php:61
+#, php-format
+msgid "You are not allowed to create more than %d tasks."
+msgstr "\82 \82È\82½\82Í %d \88È\8fã\82Ì\83^\83X\83N\82ð\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: view.php:52
+msgid "You do not have permission to view this tasklist."
+msgstr "\82 \82È\82½\82É\82Í\82±\82Ì\83^\83X\83N\95\\82ð\95\\8e¦\82·\82é\8c \8cÀ\82ª\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: tasklists.php:88
+msgid "You must select a task list to be deleted."
+msgstr "\8dí\8f\9c\82·\82é\82×\82«\83^\83X\83N\95\\82ð\91I\91ð\82µ\82Ä\89º\82³\82¢\81B"
+
+#: templates/tasklists/tasklists.inc:47
+msgid "You must select a tasklist to be deleted."
+msgstr "\8dí\8f\9c\82·\82é\82×\82«\83^\83X\83N\95\\82ð\91I\91ð\82µ\82Ä\89º\82³\82¢\81B"
+
+#: lib/Nag.php:631
+msgid "You requested to be notified when tasks are added to your tasklists."
+msgstr ""
+"\82 \82È\82½\82Í\82 \82È\82½\82Ì\83^\83X\83N\95\\82É\83^\83X\83N\82ª\92Ç\89Á\82³\82ê\82½\8e\9e\82É\92Ê\92m\82·\82é\82±\82Æ\82ð\97v\8b\81\82µ\82Ü\82µ\82½\81B"
+
+#: lib/Nag.php:641
+msgid ""
+"You requested to be notified when tasks are deleted from your tasklists."
+msgstr ""
+"\82 \82È\82½\82Í\82 \82È\82½\82Ì\83^\83X\83N\95\\82©\82ç\83^\83X\83N\82ª\8dí\8f\9c\82³\82ê\82½\8e\9e\82É\92Ê\92m\82·\82é\82±\82Æ\82ð\97v\8b\81\82µ\82Ü\82µ"
+"\82½\81B"
+
+#: lib/Nag.php:636
+msgid "You requested to be notified when tasks are edited on your tasklists."
+msgstr ""
+"\82 \82È\82½\82Í\82 \82È\82½\82Ì\83^\83X\83N\95\\82Ì\83^\83X\83N\82ª\95Ï\8dX\82³\82ê\82½\8e\9e\82É\92Ê\92m\82·\82é\82±\82Æ\82ð\97v\8b\81\82µ\82Ü\82µ\82½\81B"
+
+#: templates/prefs/tasklistselect.inc:10
+msgid "Your default task list:"
+msgstr "\83f\83t\83H\83\8b\83g\82Ì\83^\83X\83N\95\\81F"
+
+#: templates/panel.inc:43
+msgid "[Manage My Tasklists]"
+msgstr "[\8e\84\82Ì\83^\83X\83N\95\\82Ì\8aÇ\97\9d]"
+
+#: templates/list/task_summaries.inc:46 lib/Block/summary.php:101
+#: lib/Block/summary.php:199
+msgid "[none]"
+msgstr "[\82È\82µ]"
+
+#: templates/search/search.inc:25
+msgid "_All Tasks"
+msgstr "_A\91S\83^\83X\83N"
+
+#: list.php:111
+msgid "_All tasks"
+msgstr "_A\91S\83^\83X\83N"
+
+#: templates/search/search.inc:20
+msgid "_Category"
+msgstr "_C\95ª\97Þ"
+
+#: view.php:99
+msgid "_Complete"
+msgstr "_C\8a®\97¹"
+
+#: list.php:114
+msgid "_Completed tasks"
+msgstr "_C\8a®\97¹\83^\83X\83N"
+
+#: view.php:106
+msgid "_Delete"
+msgstr "_D\8dí\8f\9c"
+
+#: templates/search/search.inc:19
+msgid "_Description"
+msgstr "_D\90à\96¾"
+
+#: templates/list/task_headers.inc:50
+msgid "_Due Date"
+msgstr "_D\8aú\93ú"
+
+#: view.php:102
+msgid "_Edit"
+msgstr "_E\95Ò\8fW"
+
+#: list.php:113
+msgid "_Future tasks"
+msgstr "_F\8d¡\8cã\82Ì\83^\83X\83N"
+
+#: lib/Nag.php:553
+msgid "_Import/Export"
+msgstr "_I\83C\83\93/\83A\83E\83g"
+
+#: lib/Nag.php:540
+msgid "_List Tasks"
+msgstr "_L\83^\83X\83N\88ê\97\97"
+
+#: lib/Nag.php:545
+msgid "_New Task"
+msgstr "_N\90V\83^\83X\83N"
+
+#: lib/Nag.php:558
+msgid "_Print"
+msgstr "_P\88ó\8dü"
+
+#: lib/Nag.php:549
+msgid "_Search"
+msgstr "_S\8c\9f\8dõ"
+
+#: templates/list/task_headers.inc:35
+msgid "_Task List"
+msgstr "_T\83^\83X\83N\95\"
+
+#: templates/prefs/defaultduetimeselect.inc:15
+msgid "am"
+msgstr "\8cß\91O"
+
+#: 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 "\8cß\8cã"
+
+#: 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 (file)
index 0000000..ed6190f
--- /dev/null
@@ -0,0 +1,316 @@
+# nag Korean translation.
+# Copyright 2002 J.I Kim.
+# J.I Kim <aporie@netian.com>, 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 <aporie@netian.com>\n"
+"Language-Team: Korean <dev@lists.horde.org>\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 (file)
index 0000000..2a9c890
--- /dev/null
@@ -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 <darius@lnk.lt>, 2002.
+# Vilius Sumskas <vilius@lnk.lt>, 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 <vilius@lnk.lt>\n"
+"Language-Team: Lithuanian <vilius@lnk.lt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: 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 (file)
index 0000000..a677995
--- /dev/null
@@ -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 <jancs@dv.lv>\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 (file)
index 0000000..3440b01
--- /dev/null
@@ -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 <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-08-01 10:44+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: 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 (file)
index 0000000..608f9f2
--- /dev/null
@@ -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 <huleboer@techbee.no>, 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 <huleboer@techbee.no>\n"
+"Language-Team: Norwegian (Bokmal) <i18n@lists.horde.org>\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 (file)
index 0000000..9c7173a
--- /dev/null
@@ -0,0 +1,1190 @@
+# Nag Dutch translation.
+# Copyright 2001 Jan Kuipers.
+# Jan Kuipers <jrkuipers@lauwerscollege.nl>, 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 <jrkuipers@lauwerscollege.nl>\n"
+"Language-Team: Dutch <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 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 (file)
index 0000000..3711823
--- /dev/null
@@ -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 <psv@orsta.org>, 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 <psv@orsta.org>\n"
+"Language-Team: Norwegian Nynorsk <nynorsk@orsta.org>\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 (file)
index 0000000..6239339
--- /dev/null
@@ -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 <mariusz@math.uwb.edu.pl>, 2001.
+# Piotr Roszatycki <dexter@debian.org>, 2001.
+# Krzysztof Kozlowski <kozik1@o2.pl>, 2005.
+# Piotr Adamcio <adamcios@o2.pl>, 2007.
+# Tadeusz Lesiecki <lesiecki@tmtsystem.pl>, 2007.
+# Piotr Tarnowski <drfugazi@drfugazi.eu.org>, 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 <drfugazi@drfugazi.eu.org>\n"
+"Language-Team: Polish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: 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 (file)
index 0000000..6565a6b
--- /dev/null
@@ -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 <flgomes@fazenda.sp.gov.br>, 2005.
+# Luis Felipe Marzagao <duli@fedoraproject.org>, 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 <duli@fedoraproject.org>\n"
+"Language-Team: Português brasileiro <i18n@lists.horde.org>\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 (file)
index 0000000..0cd5e7f
--- /dev/null
@@ -0,0 +1,950 @@
+# NAG Portugal Portuguese translation.
+# Manuel Menezes de Sequeira <Manuel.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 <flgomes@fazenda.sp.gov.br>, 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 <Manuel.Sequeira@iscte.pt>\n"
+"Language-Team: Portugal Portuguese <dev@lists.horde.org>\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 (file)
index 0000000..9c0c627
--- /dev/null
@@ -0,0 +1,383 @@
+# Nag Romanian Translation
+# Copyright 2003-2009 The Horde Project
+# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003.
+# Marius Dragulescu <mariusd@urban-grafx.ro>, 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 <eugenh@urban-grafx.ro>\n"
+"Language-Team: Romanian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#, 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 <b>%s</b>."
+msgstr "Orice task sters dintr-o categorie va deveni <b>%s</b>."
+
+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 (file)
index 0000000..d479aa8
--- /dev/null
@@ -0,0 +1,1265 @@
+# Nag Russian translation.
+# Copyright 
+# Ignat Ikryanov <iignat@newmail.ru>, 2001.
+# Alexey Zakharov <baber@mosga.net>, 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 <baber@mosga.net>\n"
+"Language-Team: Russian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 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 (file)
index 0000000..923294e
--- /dev/null
@@ -0,0 +1,1316 @@
+# Nag Slovak translation
+# Copyright 2002 Ivan Noris
+# Ivan Noris <vix@vazka.sk>, 2002.
+# Martin Matu¹ka <martin@matuska.org>, 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 <martin@matuska.org>\n"
+"Language-Team: Slovak <vix@vazka.sk>\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 (file)
index 0000000..d4c9eca
--- /dev/null
@@ -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 <duck@obala.net>\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 (file)
index 0000000..7769161
--- /dev/null
@@ -0,0 +1,820 @@
+# Nag Swedish translation
+# Copyright 2005 Andreas Dahlen.
+# Andreas Dahlen <andreas@dahlen.ws>, 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 <andreas@dahlen.ws>\n"
+"Language-Team: Swedish <dev@lists.horde.org>\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 (file)
index 0000000..8442809
--- /dev/null
@@ -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 <horde-tr@horde.org>, 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 <horde-tr@horde.org>\n"
+"Language-Team: Turkish <dev@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: 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 (file)
index 0000000..b8c558d
--- /dev/null
@@ -0,0 +1,322 @@
+# NAG Simplified Chinese Translation
+# Copyright 2002 Peter Wang
+# Peter Wang <whw@oulink.net>, 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 <whw@oulink.net>\n"
+"Language-Team: Simplified Chinese <whw@oulink.net>\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 (file)
index 0000000..cc16134
--- /dev/null
@@ -0,0 +1,1200 @@
+# NAG Traditional Chinese Translation
+# Copyright 2001 David Chang. ±i¨}¤å,¥xÆW
+# David Chang <david@tmv.gov.tw>, 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 <david@tmv.gov.tw>\n"
+"Language-Team: Traditional Chinese <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=BIG5\n"
+"Content-Transfer-Encoding: 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 (file)
index 0000000..1323376
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+
+require_once dirname(__FILE__) . '/lib/base.php';
+
+if ($quickText = Horde_Util::getPost('quickText')) {
+    $result = $registry->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 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/nag/scripts/import_vtodos.php b/nag/scripts/import_vtodos.php
new file mode 100755 (executable)
index 0000000..ed121fb
--- /dev/null
@@ -0,0 +1,65 @@
+#!/usr/bin/php
+<?php
+/**
+ * This script imports vTodo data into Nag tasklists.
+ * The data is read from standard input, the tasklist and user name passed as
+ * parameters.
+ *
+ * Copyright 2005-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+// 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 (file)
index 0000000..15fe1a7
--- /dev/null
@@ -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 (file)
index 0000000..188011b
--- /dev/null
@@ -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 (file)
index 0000000..df38b0e
--- /dev/null
@@ -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 (file)
index 0000000..39e545e
--- /dev/null
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<database>
+
+ <name><variable>name</variable></name>
+ <create>false</create>
+ <overwrite>false</overwrite>
+
+ <table>
+
+  <name>nag_tasks</name>
+
+  <declaration>
+
+   <field>
+    <name>task_id</name>
+    <type>text</type>
+    <length>32</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_owner</name>
+    <type>text</type>
+    <length>255</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_creator</name>
+    <type>text</type>
+    <length>255</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_parent</name>
+    <type>text</type>
+    <length>32</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_assignee</name>
+    <type>text</type>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>task_name</name>
+    <type>text</type>
+    <length>255</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_uid</name>
+    <type>text</type>
+    <length>255</length>
+    <notnull>true</notnull>
+   </field>
+
+   <field>
+    <name>task_desc</name>
+    <type>clob</type>
+   </field>
+
+   <field>
+    <name>task_start</name>
+    <type>integer</type>
+   </field>
+
+   <field>
+    <name>task_due</name>
+    <type>integer</type>
+   </field>
+
+   <field>
+    <name>task_priority</name>
+    <type>integer</type>
+    <notnull>true</notnull>
+    <default>0</default>
+   </field>
+
+   <field>
+    <name>task_estimate</name>
+    <type>float</type>
+   </field>
+
+   <field>
+    <name>task_category</name>
+    <type>text</type>
+    <length>80</length>
+   </field>
+
+   <field>
+    <name>task_completed</name>
+    <type>integer</type>
+    <length>1</length>
+    <notnull>true</notnull>
+    <default>0</default>
+   </field>
+
+   <field>
+    <name>task_completed_date</name>
+    <type>integer</type>
+   </field>
+
+   <field>
+    <name>task_alarm</name>
+    <type>integer</type>
+    <unsigned>false</unsigned>
+    <notnull>true</notnull>
+    <default>0</default>
+   </field>
+
+   <field>
+    <name>task_alarm_methods</name>
+    <type>clob</type>
+   </field>
+
+   <field>
+    <name>task_private</name>
+    <type>integer</type>
+    <length>1</length>
+    <notnull>true</notnull>
+    <default>0</default>
+   </field>
+
+   <index>
+    <name>nag_primary</name>
+    <primary>true</primary>
+    <field>
+     <name>task_id</name>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_tasklist</name>
+    <field>
+     <name>task_owner</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_uid</name>
+    <field>
+     <name>task_uid</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_start</name>
+    <field>
+     <name>task_start</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+  </declaration>
+
+ </table>
+
+ <table>
+
+  <name>nag_shares</name>
+
+  <declaration>
+
+   <field>
+    <name>share_id</name>
+    <type>integer</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>4</length>
+   </field>
+
+   <field>
+    <name>share_name</name>
+    <type>text</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>share_owner</name>
+    <type>text</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>share_flags</name>
+    <type>integer</type>
+    <default>0</default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <field>
+    <name>perm_creator</name>
+    <type>integer</type>
+    <default>0</default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <field>
+    <name>perm_default</name>
+    <type>integer</type>
+    <default>0</default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <field>
+    <name>perm_guest</name>
+    <type>integer</type>
+    <default>0</default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <field>
+    <name>attribute_name</name>
+    <type>text</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>attribute_desc</name>
+    <type>text</type>
+    <default></default>
+    <notnull>false</notnull>
+    <length>255</length>
+   </field>
+
+   <index>
+    <name>nag_shares_share_name</name>
+    <field>
+     <name>share_name</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_share_owner</name>
+    <field>
+     <name>share_owner</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_perm_creator</name>
+    <field>
+     <name>perm_creator</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_perm_default</name>
+    <field>
+     <name>perm_default</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_perm_guest</name>
+    <field>
+     <name>perm_guest</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_pKey</name>
+    <primary>true</primary>
+    <field>
+     <name>share_id</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+  </declaration>
+
+ </table>
+
+ <table>
+
+  <name>nag_shares_groups</name>
+
+  <declaration>
+
+   <field>
+    <name>share_id</name>
+    <type>integer</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>4</length>
+   </field>
+
+   <field>
+    <name>group_uid</name>
+    <type>text</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>perm</name>
+    <type>integer</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <index>
+    <name>nag_shares_groups_share_id</name>
+    <field>
+     <name>share_id</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_groups_group_uid</name>
+    <field>
+     <name>group_uid</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_groups_perm</name>
+    <field>
+     <name>perm</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+  </declaration>
+
+ </table>
+
+ <table>
+
+  <name>nag_shares_users</name>
+
+  <declaration>
+
+   <field>
+    <name>share_id</name>
+    <type>integer</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>4</length>
+   </field>
+
+   <field>
+    <name>user_uid</name>
+    <type>text</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>255</length>
+   </field>
+
+   <field>
+    <name>perm</name>
+    <type>integer</type>
+    <default></default>
+    <notnull>true</notnull>
+    <length>2</length>
+   </field>
+
+   <index>
+    <name>nag_shares_users_share_id</name>
+    <field>
+     <name>share_id</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_users_user_uid</name>
+    <field>
+     <name>user_uid</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+   <index>
+    <name>nag_shares_users_perm</name>
+    <field>
+     <name>perm</name>
+     <sorting>ascending</sorting>
+    </field>
+   </index>
+
+  </declaration>
+
+ </table>
+
+</database>
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 (file)
index 0000000..b51f2c9
--- /dev/null
@@ -0,0 +1,23 @@
+-- You can simply execute this file in your database.
+--
+-- Run as:
+--
+-- $ mysql --user=root --password=<MySQL-root-password> <db name> < 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 (file)
index 0000000..e063e8f
--- /dev/null
@@ -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 (file)
index 0000000..d29d1a4
--- /dev/null
@@ -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 <lexicon@seul.org>
+--
+-- You can simply execute this file in your database.
+--
+-- Run as:
+--
+-- $ psql <db name> -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 (file)
index 0000000..96a0573
--- /dev/null
@@ -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 (file)
index 0000000..5eb03eb
--- /dev/null
@@ -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 (file)
index 0000000..c451495
--- /dev/null
@@ -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 (file)
index 0000000..08c6c9e
--- /dev/null
@@ -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 (executable)
index 0000000..26d6c10
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/php
+<?php
+/**
+ * This script adds and fills the creator and assignee fields in the Nag task
+ * table.
+ *
+ * Copyright 2006-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+// 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 (file)
index 0000000..509f044
--- /dev/null
@@ -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 (file)
index 0000000..1516745
--- /dev/null
@@ -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 (file)
index 0000000..63188a1
--- /dev/null
@@ -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 (file)
index 0000000..44cfd92
--- /dev/null
@@ -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 (file)
index 0000000..dcc4311
--- /dev/null
@@ -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 (file)
index 0000000..7b5f1e3
--- /dev/null
@@ -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 (file)
index 0000000..7e1c6a4
--- /dev/null
@@ -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 (file)
index 0000000..964dcbf
--- /dev/null
@@ -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 (executable)
index 0000000..fc2d1a5
--- /dev/null
@@ -0,0 +1,200 @@
+#!/usr/bin/env php
+<?php
+/**
+ * This script migrates Nag's share data from the datatree Horde_Share
+ * driver to the new SQL Horde_Share driver. You should run the 2.1_to_2.2.sql
+ * upgrade script before executing this script.
+ */
+
+/* Set up the CLI environment */
+require_once dirname(__FILE__) . '/../../lib/base.load.php';
+require_once HORDE_BASE . '/lib/core.php';
+if (!Horde_Cli::runningFromCli()) {
+    exit("Must be run from the command line\n");
+}
+$cli = Horde_Cli::singleton();
+$cli->init();
+
+/* Grab what we need to steal the DB config */
+require_once HORDE_BASE . '/config/conf.php';
+
+$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 (executable)
index 0000000..19b964b
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/php
+<?php
+/**
+ * Copyright 2005-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+// 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 (file)
index 0000000..1b0355e
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/lib/base.php';
+
+$title = _("Search");
+$notification->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 (file)
index 0000000..a4a2d2a
--- /dev/null
@@ -0,0 +1,240 @@
+<?php
+/**
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Jon Parise <jon@horde.org>
+ * @author Jan Schneider <jan@horde.org>
+ */
+
+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 (file)
index 0000000..76d05cb
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once NAG_BASE . '/lib/Forms/CreateTaskList.php';
+
+// Exit if this isn't an authenticated user or if the user can't
+// create new task lists (default share is locked).
+if (!Horde_Auth::getAuth() || $prefs->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 (file)
index 0000000..8ecd8e3
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once NAG_BASE . '/lib/Forms/DeleteTaskList.php';
+
+// Exit if this isn't an authenticated user.
+if (!Horde_Auth::getAuth()) {
+    header('Location: ' . Horde::applicationUrl('list.php', true));
+    exit;
+}
+
+$vars = Horde_Variables::getDefaultVariables();
+$tasklist_id = $vars->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 (file)
index 0000000..e2b23f5
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once NAG_BASE . '/lib/Forms/EditTaskList.php';
+
+// Exit if this isn't an authenticated user.
+if (!Horde_Auth::getAuth()) {
+    header('Location: ' . Horde::applicationUrl('list.php', true));
+    exit;
+}
+
+$vars = Horde_Variables::getDefaultVariables();
+$tasklist = $nag_shares->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 (file)
index 0000000..ec1aa3c
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+/**
+ * Show just the beginning and end of long URLs.
+ */
+function shorten_url($url, $separator = '...', $first_chunk_length = 35, $last_chunk_length = 15)
+{
+    $url_length = strlen($url);
+    $max_length = $first_chunk_length + strlen($separator) + $last_chunk_length;
+
+    if ($url_length > $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 (file)
index 0000000..62a2e87
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+require_once 'Horde/Identity.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()) {
+    exit;
+}
+
+$tasklist = $nag_shares->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 (file)
index 0000000..f2e1d27
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/../lib/base.php';
+
+$search = Horde_Util::getGet('q');
+if (!$search) {
+    header('HTTP/1.0 204 No Content');
+    exit;
+}
+
+$tasks = Nag::listTasks(
+    $prefs->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 '<div id="page">';
+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 (file)
index 0000000..f2402a2
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+if (isset($language)) {
+    header('Content-type: text/html; charset=' . Horde_Nls::getCharset());
+    header('Vary: Accept-Language');
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<?php echo !empty($language) ? '<html lang="' . strtr($language, '_', '-') . '">' : '<html>' ?>
+<head>
+<?php
+
+$page_title = $registry->get('name');
+if (!empty($title)) $page_title .= ' :: ' . $title;
+if (!empty($refresh_time) && ($refresh_time > 0) && !empty($refresh_url)) {
+    echo "<meta http-equiv=\"refresh\" content=\"$refresh_time;url=$refresh_url\">\n";
+}
+
+Horde::includeScriptFiles();
+
+$bc = Horde_Util::nonInputVar('bodyClass');
+if ($prefs->getValue('show_panel')) {
+    if ($bc) {
+        $bc .= ' ';
+    }
+    $bc .= 'rightPanel';
+}
+
+?>
+<title><?php echo htmlspecialchars($page_title) ?></title>
+<link href="<?php echo $GLOBALS['registry']->getImageDir()?>/favicon.ico" rel="SHORTCUT ICON" />
+<?php echo Horde::stylesheetLink('nag', empty($print_view) ? '' : 'print') ?>
+<link href="<?php echo Horde::applicationUrl('themes/categoryCSS.php') ?>" rel="stylesheet" type="text/css" />
+<script src="<?php echo $GLOBALS['registry']->get('jsuri', 'horde') ?>/glow/1.5.1/core/core.js" type="text/javascript"></script>
+<script src="<?php echo $GLOBALS['registry']->get('jsuri', 'horde') ?>/glow/1.5.1/widgets/widgets.js" type="text/javascript"></script>
+<link href="<?php echo $GLOBALS['registry']->get('jsuri', 'horde') ?>/glow/1.5.1/widgets/widgets.css" type="text/css" rel="stylesheet" /></head>
+<script type="text/javascript">
+var Nag = {};
+
+glow.ready(function() {
+    $('quickAddInfoPanel').style.display = 'block';
+    Nag.quickAddPanel = new glow.widgets.InfoPanel('#quickAddInfoPanel', { context: '.quickAdd', pointerPosition: 't' });
+});
+</script>
+
+<body<?php if ($bc) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
+
+<div id="quickAddInfoPanel" style="display:none;">
+ <h2><?php echo _("Quick Task Creation") ?></h2>
+ <form method="post" action="quick.php">
+  <p><?php echo _("Enter one task per line. Create child tasks by indenting them below their parent task. Include due dates like \"laundry tomorrow\" or \"get dry cleaning next Thursday\".") ?></p>
+  <textarea name="quickText" id="quickText"></textarea>
+  <p><input type="submit" value="<?php echo _("Create") ?>"></p>
+ </form>
+</div>
diff --git a/nag/templates/data/export.inc b/nag/templates/data/export.inc
new file mode 100644 (file)
index 0000000..cd36091
--- /dev/null
@@ -0,0 +1,44 @@
+<form method="post" name="export" action="<?php echo Horde::downloadUrl(_("tasks.csv"), null, 'data.php') ?>">
+<?php Horde_Util::pformInput() ?>
+<input type="hidden" name="actionID" value="export" />
+
+<h1 class="header">
+ <?php echo _("Export Tasks") ?>
+</h1>
+
+<div class="headerbox">
+ <p>
+  <?php echo Horde::label('exportID', _("Select the export format:")) ?><br />
+  <select id="exportID" name="exportID">
+   <option value="<?php echo Horde_Data::EXPORT_ICALENDAR ?>">iCalendar (vTodo)</option>
+   <option value="<?php echo Horde_Data::EXPORT_CSV ?>">CSV</option>
+  </select>
+ </p>
+
+ <?php if (count($tasklists = Nag::listTasklists(false, PERMS_READ)) > 1): ?>
+ <p>
+  <?php echo Horde::label('exportList', _("Select the task list(s) to export from:")) ?><br />
+  <select id="exportList" name="exportList[]" multiple="multiple">
+    <?php foreach ($tasklists as $id => $tasklist) {
+        printf('<option value="%s">%s</option>', htmlspecialchars($id), htmlspecialchars($tasklist->get('name'))) . "\n";
+    } ?>
+  </select>
+ </p>
+ <?php else: ?>
+ <input type="hidden" name="exportList[]" value="<?php echo htmlspecialchars(Nag::getDefaultTasklist(PERMS_READ)) ?>" />
+ <?php endif; ?>
+
+ <p>
+  <?php echo Horde::label('exportTasks', _("Select the task states to export:")) ?><br />
+  <select id="exportTasks" name="exportTasks">
+   <option value="1"><?php echo _("All tasks") ?></option>
+   <option value="0"><?php echo _("Incomplete tasks") ?></option>
+   <option value="3"><?php echo _("Future tasks") ?></option>
+   <option value="2"><?php echo _("Completed tasks") ?></option>
+  </select>
+ </p>
+
+ <input type="submit" value="<?php echo _("Export") ?>" class="button" />
+</div>
+
+</form>
diff --git a/nag/templates/data/import.inc b/nag/templates/data/import.inc
new file mode 100644 (file)
index 0000000..2d435b4
--- /dev/null
@@ -0,0 +1,42 @@
+<form method="post" name="import_form" enctype="multipart/form-data" action="data.php">
+<?php Horde_Util::pformInput() ?>
+<input type="hidden" name="actionID" value="<?php echo htmlspecialchars($next_step) ?>" />
+<input type="hidden" name="import_step" value="<?php echo (int)$import_step ?>" />
+
+<h1 class="header">
+ <?php printf(_("Import Tasks, Step %d"), (int)$import_step) ?>
+</h1>
+
+<div class="headerbox">
+ <p>
+  <?php echo Horde::label('import_format', _("Select the format of the source file:")) ?><br />
+  <select id="import_format" name="import_format">
+   <option value="csv">CSV</option>
+   <option value="vtodo">iCalendar (vTodo)</option>
+  </select>
+ </p>
+
+<?php if (!$prefs->isLocked('default_tasklist') && count($tasklists = Nag::listTasklists(false, PERMS_EDIT)) > 1): ?>
+ <p>
+  <?php echo Horde::label('tasklist_target', _("Which tasklist should the tasks be added to?")) ?><br />
+  <select id="tasklist_target" name="tasklist_target">
+  <?php
+  $default = Nag::getDefaultTasklist(PERMS_EDIT);
+  foreach ($tasklists as $id => $tasklist) {
+      $sel = ($id == $default) ? ' selected="selected"' : '';
+      printf('<option value="%s"%s>%s</option>',
+             htmlspecialchars($id), $sel, htmlspecialchars($tasklist->get('name'))) . "\n";
+  } ?>
+  </select>
+ </p>
+<?php else: ?>
+ <input type="hidden" name="tasklist_target" value="<?php echo htmlspecialchars(Nag::getDefaultTasklist(PERMS_EDIT)) ?>" />
+<?php endif; ?>
+ <p>
+  <?php echo Horde::label('import_file', _("Select the file to import:")) ?><br />
+  <input type="file" id="import_file" name="import_file" size="40" />
+ </p>
+ <input type="submit" value="<?php echo _("Next") ?>" class="button" />
+</div>
+
+</form>
diff --git a/nag/templates/list.html.php b/nag/templates/list.html.php
new file mode 100644 (file)
index 0000000..167e613
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+
+require NAG_TEMPLATES . '/list/header.inc';
+
+if ($tasks->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 (file)
index 0000000..7c52acf
--- /dev/null
@@ -0,0 +1,3 @@
+<p class="text">
+ <em><?php echo _("There are no tasks matching the current criteria.") ?></em>
+<p>
diff --git a/nag/templates/list/header.inc b/nag/templates/list/header.inc
new file mode 100644 (file)
index 0000000..8bee899
--- /dev/null
@@ -0,0 +1,13 @@
+<div class="header leftAlign">
+ <?php echo htmlspecialchars($title) . ' (' . $tasks->count() . ')' ?>
+ <?php if (!$print_view): ?>
+ <a id="quicksearchL" href="<?php echo Horde::applicationUrl('search.php') ?>" title="<?php echo _("Search") ?>" onclick="$('quicksearchL').hide(); $('quicksearch').show(); $('quicksearchT').focus(); return false;"><?php echo Horde::img('search.png', _("Search"), '', $registry->getImageDir('horde')) ?></a>
+ <div id="quicksearch" style="display:none">
+  <input type="text" name="quicksearchT" id="quicksearchT" for="tasks-body" empty="tasks_empty" />
+  <small>
+   <a title="<?php echo _("Close Search") ?>" href="#" onclick="$('quicksearch').hide(); $('quicksearchT').value = ''; QuickFinder.filter($('quicksearchT')); $('quicksearchL').show(); return false;">X</a>
+   <?php echo Horde::link(Horde::applicationUrl('search.php')) . _("More Options...") ?></a>
+  </small>
+ </div>
+ <?php endif; ?>
+</div>
diff --git a/nag/templates/list/task_footers.inc b/nag/templates/list/task_footers.inc
new file mode 100644 (file)
index 0000000..e0981db
--- /dev/null
@@ -0,0 +1,8 @@
+</tbody>
+</table>
+<?php if (!$print_view): ?>
+<div id="tasks_empty">
+ <?php echo _("No tasks match") ?>
+</div>
+<?php endif; ?>
+</div>
diff --git a/nag/templates/list/task_headers.inc b/nag/templates/list/task_headers.inc
new file mode 100644 (file)
index 0000000..78d2af6
--- /dev/null
@@ -0,0 +1,76 @@
+<?php $sortdirclass = $sortdir ? 'sortup' : 'sortdown' ?>
+
+<script type="text/javascript">
+
+var PREFS_UPDATE_TIMEOUT;
+
+function table_sortCallback(tableId, column, sortDown)
+{
+    if (typeof PREFS_UPDATE_TIMEOUT != "undefined") {
+        window.clearTimeout(PREFS_UPDATE_TIMEOUT);
+    }
+
+    PREFS_UPDATE_TIMEOUT = window.setTimeout('doPrefsUpdate("' + column + '", "' + sortDown + '")', 300);
+}
+
+function doPrefsUpdate(column, sortDown)
+{
+    baseurl = '<?php echo Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs/', true, -1) ?>';
+    try {
+        new Ajax.Request(baseurl, { parameters: { app: 'nag', pref: 'sortby', value: encodeURIComponent(column.substring(1)) } });
+        new Ajax.Request(baseurl, { parameters: { app: 'nag', pref: 'sortdir', value: encodeURIComponent(sortDown) } });
+    } catch (e) {}
+}
+
+</script>
+
+<table id="tasks" cellspacing="0" class="sortable nowrap">
+<thead>
+ <tr class="item leftAlign">
+  <th id="s<?php echo Nag::SORT_COMPLETION ?>"<?php if ($sortby == Nag::SORT_COMPLETION) echo ' class="' . $sortdirclass . '"' ?> width="2%">
+   <?php echo Horde::link(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_COMPLETION)), _("Sort by Completion Status"), 'sortlink') . Horde::img('checkbox.png', _("Completed?")) ?></a>
+  </th>
+<?php if (in_array('tasklist', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_OWNER ?>"<?php if ($sortby == Nag::SORT_OWNER) echo ' class="' . $sortdirclass . '"' ?> width="2%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_OWNER)), _("Sort by User Name"), 'sortlink', '', '', _("_Task List")) ?>&nbsp;
+  </th>
+<?php endif; if (in_array('priority', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_PRIORITY ?>"<?php if ($sortby == Nag::SORT_PRIORITY) echo ' class="' . $sortdirclass . '"' ?> width="2%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_PRIORITY)), _("Sort by Priority"), 'sortlink', '', '', _("P_ri")) ?>&nbsp;
+  </th>
+<?php endif; ?>
+  <th width="2%" class="nosort">
+   <?php echo Horde::img('edit.png', _("Edit Task"), null, $registry->getImageDir('horde')) ?>
+  </th>
+  <th id="s<?php echo Nag::SORT_NAME ?>"<?php if ($sortby == Nag::SORT_NAME) echo ' class="' . $sortdirclass . '"' ?>>
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_NAME)), _("Sort by Name"), 'sortlink', '', '', _("Na_me")) ?>&nbsp;
+  </th>
+  <th width="2%" class="nosort"><?php echo Horde::img('note.png', _("Task Note?")) ?></th>
+  <th width="2%" class="nosort"><?php echo Horde::img('alarm.png', _("Task Alarm?")) ?></th>
+<?php if (in_array('due', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_DUE ?>"<?php if ($sortby == Nag::SORT_DUE) echo ' class="' . $sortdirclass . '"' ?> width="2%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_DUE)), _("Sort by Due Date"), 'sortlink', '', '', _("_Due Date")) ?>&nbsp;
+  </th>
+<?php endif; if (in_array('estimate', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_ESTIMATE ?>"<?php if ($sortby == Nag::SORT_ESTIMATE) echo ' class="' . $sortdirclass . '"' ?> width="10%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_ESTIMATE)), _("Sort by estimated time"), 'sortlink', '', '', _("Estimated Time")) ?>&nbsp;
+  </th>
+<?php endif; if (in_array('assignee', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_ASSIGNEE ?>"<?php if ($sortby == Nag::SORT_ASSIGNEE) echo ' class="' . $sortdirclass . '"' ?> width="10%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_ASSIGNEE)), _("Sort by Assignee"), 'sortlink', '', '', _("Assignee")) ?>&nbsp;
+  </th>
+<?php endif; if (in_array('category', $columns)): ?>
+  <th id="s<?php echo Nag::SORT_CATEGORY ?>"<?php if ($sortby == Nag::SORT_CATEGORY) echo ' class="' . $sortdirclass . '"' ?> width="10%">
+   <?php echo Horde::widget(Horde::applicationUrl(Horde_Util::addParameter($baseurl, 'sortby', Nag::SORT_CATEGORY)), _("Sort by Category"), 'sortlink', '', '', _("Cat_egory")) ?>&nbsp;
+   <?php
+   if (Horde_Auth::getAuth() && (!$GLOBALS['prefs']->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')) . '</a>';
+   }
+   ?>
+  </th>
+<?php endif; ?>
+ </tr>
+</thead>
+<tbody id="tasks-body">
diff --git a/nag/templates/list/task_summaries.inc b/nag/templates/list/task_summaries.inc
new file mode 100644 (file)
index 0000000..7f00c07
--- /dev/null
@@ -0,0 +1,78 @@
+<tr class="<?php echo $style ?>">
+  <td>
+<?php
+if (!is_a($share, 'PEAR_Error') &&
+    $share->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) . '</a>';
+        }
+    } 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) . '</a>';
+        }
+    }
+} else {
+    echo Nag::formatCompletion($task->completed);
+}
+?>
+  </td>
+
+<?php if (in_array('tasklist', $columns)): ?>
+  <td><?php echo htmlspecialchars($owner) ?></td>
+<?php endif; if (in_array('priority', $columns)): ?>
+  <td><?php echo Nag::formatPriority($task->priority) ?></td>
+<?php endif; ?>
+  <td>
+    <?php
+    if (!is_a($share, 'PEAR_Error') &&
+        $share->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')) . '</a>';
+    }
+    ?>
+  </td>
+  <td>
+    <?php
+    echo $task->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 . '</a>';
+    } else {
+        echo $task_name;
+    }
+    ?>
+  </td>
+  <td><?php echo strlen($task->desc) ? Horde::img('note.png', _("Task Note")) : '&nbsp;' ?></td>
+  <td><?php echo ($task->alarm && $task->due) ?
+    Horde::img('alarm_small.png', _("Task Alarm")) : '&nbsp;' ?>
+  </td>
+<?php if (in_array('due', $columns)): ?>
+  <td class="nowrap" sortval="<?php echo $task->due ? (int)$task->due : PHP_INT_MAX ?>">
+    <?php echo $task->due ? strftime($dateFormat, $task->due) : '&nbsp;' ?>
+  </td>
+<?php endif; if (in_array('estimate', $columns)): ?>
+  <td class="nowrap" sortval="<?php echo htmlspecialchars($task->estimation()) ?>">
+   <?php echo htmlspecialchars($task->estimation()) ?>
+  </td>
+<?php endif; if (in_array('assignee', $columns)): ?>
+  <td>
+    <?php echo Nag::formatAssignee($task->assignee) ?>
+  </td>
+<?php endif; if (in_array('category', $columns)): ?>
+  <td class="category<?php echo md5($task->category) ?>"><?php echo strlen($task->category) ? htmlspecialchars($task->category) : _("Unfiled") ?></td>
+<?php endif; ?>
+</tr>
diff --git a/nag/templates/menu.inc b/nag/templates/menu.inc
new file mode 100644 (file)
index 0000000..da24cd2
--- /dev/null
@@ -0,0 +1,4 @@
+<div id="menu">
+ <?php echo Nag::getMenu('string') ?>
+</div>
+<?php Nag::status();
diff --git a/nag/templates/panel.inc b/nag/templates/panel.inc
new file mode 100644 (file)
index 0000000..cbe938f
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+
+Horde::addScriptFile('redbox.js', 'horde', true);
+
+$info_img = Horde::img('info_icon.png', _("Task List Information"), array('class' => '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;
+    }
+}
+?>
+
+<div id="pageControls">
+<script type="text/javascript">
+//<![CDATA[
+function sbarToggle()
+{
+    var pref_value;
+    if (Element.hasClassName(document.body, 'rightPanel')) {
+        pref_value = 0;
+        Element.removeClassName(document.body, 'rightPanel');
+    } else {
+        pref_value = 1;
+        Element.addClassName(document.body, 'rightPanel');
+    }
+
+    new Ajax.Request('<?php echo Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/services/prefs/', true, -1) ?>', { parameters: { app: 'nag', pref: 'show_panel', value: pref_value } });
+}
+
+document.observe('dom:loaded', function() {
+    $$('#pageControlsInner .tasklist-info').invoke('observe', 'click', function() {
+        RedBox.loading();
+        var tasklist_id = this.previous().down('.checkbox').value;
+        new Ajax.Request('<?php echo Horde::applicationUrl('tasklists/info.php') ?>', {
+            parameters: { t: tasklist_id },
+            method: 'get',
+            onSuccess: function(transport) {
+                RedBox.showHtml('<div id="RB_info">' + transport.responseText + '<input type="button" class="button" onclick="RedBox.close();" value="<?php echo _("Close") ?>" /><' + '/div>');
+            },
+            onFailure: function(transport) {
+                RedBox.close();
+            }
+        });
+    });
+});
+//]]>
+</script>
+<a id="sbarShow" href="#" onclick="sbarToggle(); return false;"><?php echo _("Task Lists") ?></a>
+<a id="sbarHide" href="#" onclick="sbarToggle(); return false;"><?php echo _("Task Lists") ?></a>
+
+<div id="pageControlsInner">
+<form action="<?php echo Horde::selfUrl() ?>" method="post">
+<?php echo Horde_Util::formInput() ?>
+ <h4><?php echo _("Search for Task Lists:") ?></h4>
+ <p>
+  <input id="tasklistSearch" type="text" for="mytasklists,sharedtasklists" />
+ </p>
+
+<?php if (Horde_Auth::getAuth()): ?>
+ <p>
+  <a href="<?php echo Horde::applicationUrl('tasklists/') ?>"><?php echo _("[Manage Task Lists]") ?></a>
+ </p>
+<?php endif; ?>
+
+<?php if ($current_user): ?>
+ <h4><?php echo _("My Task Lists:") ?></h4>
+ <ul id="mytasklists">
+<?php foreach ($my_tasklists as $id => $tl): ?>
+  <li><label><input type="checkbox" class="checkbox" name="display_tasklist[]" value="<?php echo htmlspecialchars($id) ?>"<?php echo (in_array($id, $display_tasklists) ? ' checked="checked"' : '') . ' /> ' . htmlspecialchars($tl->get('name')) ?></label> <?php echo $info_img ?></li>
+<?php endforeach; ?>
+ </ul>
+<?php endif; ?>
+
+<?php if (count($shared_tasklists)): ?>
+ <h4><?php echo _("Shared Task Lists:") ?></h4>
+ <ul id="sharedtasklists">
+<?php foreach ($shared_tasklists as $id => $tl): ?>
+  <li><label><input type="checkbox" class="checkbox" name="display_tasklist[]" value="<?php echo htmlspecialchars($id) ?>"<?php echo (in_array($id, $display_tasklists) ? ' checked="checked"' : '') . ' /> [' . htmlspecialchars(Horde_Auth::removeHook($tl->get('owner'))) . '] ' . htmlspecialchars($tl->get('name')) ?></label> <?php echo $info_img ?></li>
+<?php endforeach; ?>
+ </ul>
+<?php endif; ?>
+
+ <p>
+  <input type="submit" value="<?php echo _("Save") ?>" class="button" />
+ </p>
+</form>
+
+</div>
+</div>
diff --git a/nag/templates/prefs/defaultduetimeselect.inc b/nag/templates/prefs/defaultduetimeselect.inc
new file mode 100644 (file)
index 0000000..9223d63
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+if (!$prefs->isLocked('default_due_time')):
+    $default_due_time = $prefs->getValue('default_due_time');
+?>
+
+<?php echo Horde::label('default_due_time', _("What do you want to be the default due time for tasks?")) ?><br />
+<select id="default_due_time" name="default_due_time">
+ <option value="now"<?php if ($default_due_time == 'now') echo ' selected="selected"' ?>><?php echo _("The current hour") ?></option>
+<?php
+for ($i = 0; $i < 24; ++$i) {
+    $value = sprintf('%02d:00', $i);
+    if ($GLOBALS['prefs']->getValue('twentyFour')) {
+        echo '<option value="' . $value . '"' . ($value == $default_due_time ? ' selected="selected"' : '') . '>' . $value . '</option>';
+    } else {
+        echo '<option value="' . $value . '"' . ($value == $default_due_time ? ' selected="selected"' : '') . '>' . sprintf('%02d:00 ' . ($i >= 12 ? _("pm") : _("am")), ($i % 12 ? $i % 12 : 12)) . '</option>';
+    }
+}
+?>
+</select><br /><br />
+<?php endif; ?>
diff --git a/nag/templates/prefs/tasklistselect.inc b/nag/templates/prefs/tasklistselect.inc
new file mode 100644 (file)
index 0000000..52abc0f
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+if (!$prefs->isLocked('default_tasklist')):
+    $tasklists = Nag::listTasklists();
+    if (($default_tasklist = $prefs->getValue('default_tasklist')) == null ||
+        !isset($tasklists[$default_tasklist])) {
+        $default_tasklist = Horde_Auth::getAuth();
+    }
+?>
+
+<?php echo Horde::label('default_tasklist', _("Your default task list:")) ?><br />
+<select id="default_tasklist" name="default_tasklist">
+<?php foreach ($tasklists as $id => $tasklist): ?>
+    <option value="<?php echo htmlspecialchars($id) ?>"<?php if ($id == $default_tasklist) echo ' selected="selected"' ?>><?php echo htmlspecialchars($tasklist->get('name')) ?></option>
+<?php endforeach; ?>
+</select><br /><br />
+<?php endif; ?>
diff --git a/nag/templates/search/search.inc b/nag/templates/search/search.inc
new file mode 100644 (file)
index 0000000..1bc419f
--- /dev/null
@@ -0,0 +1,36 @@
+<form method="get" name="search" action="list.php">
+<?php Horde_Util::pformInput() ?>
+<input type="hidden" name="actionID" value="search_tasks" />
+
+<h1 class="header">
+ <?php echo _("Task Search") ?>
+</h1>
+
+<div class="headerbox" style="padding:3px">
+
+<p>
+ <strong><?php echo Horde::label('search_pattern', _("Search _Text:")) ?></strong><br />
+ <input name="search_pattern" id="search_pattern" type="text" size="50" maxlength="100" />
+</p>
+
+<p>
+ <strong><?php echo _("Search In:") ?></strong><br />
+ <input id="name" name="search_name" type="checkbox" checked="checked" /> <?php echo Horde::label('name', _("N_ame")) ?><br />
+ <input id="desc" name="search_desc" type="checkbox" /> <?php echo Horde::label('desc', _("_Description")) ?><br />
+ <input id="category" name="search_category" type="checkbox" /> <?php echo Horde::label('category', _("_Category")) ?>
+</p>
+
+<p>
+ <strong><?php echo _("Search:") ?></strong><br />
+ <input id="all" name="search_completed" type="radio" value="1" checked="checked" /> <?php echo Horde::label('all', _("_All Tasks")) ?><br />
+ <input id="incomplete" name="search_completed" type="radio" value="0" /> <?php echo Horde::label('incomplete', _("Incomplete Tasks")) ?><br />
+ <input id="complete" name="search_completed" type="radio" value="2" /> <?php echo Horde::label('complete', _("Completed Tasks")) ?><br />
+</p>
+
+<p>
+ <input type="submit" class="button" value="<?php echo _("Search") ?>" />
+</p>
+
+</div>
+
+</form>
diff --git a/nag/templates/tasklist_info.php b/nag/templates/tasklist_info.php
new file mode 100644 (file)
index 0000000..2538b1a
--- /dev/null
@@ -0,0 +1,11 @@
+<h2><?php echo htmlspecialchars($tasklist->get('name')) ?></h2>
+<?php if ($desc = $tasklist->get('desc')): ?>
+<p><em><?php echo htmlspecialchars($desc) ?></em></p>
+<?php endif; ?>
+<p>
+ <?php printf(_("Task List owned by %s."), $owner_name) ?>
+ <?php echo _("To subscribe to this task list from another program, use this URL: ") ?>
+</p>
+<p class="tasklist-info-url">
+ <?php echo htmlspecialchars($subscribe_url) ?>
+</p>
diff --git a/nag/templates/tasklist_list.php b/nag/templates/tasklist_list.php
new file mode 100644 (file)
index 0000000..369de2a
--- /dev/null
@@ -0,0 +1,39 @@
+<h1 class="header">
+ <?php echo _("Manage Task Lists") ?>
+</h1>
+
+<?php if (!$prefs->isLocked('default_tasklist')): ?>
+<div id="tasklist-list-buttons">
+ <form method="get" action="create.php">
+<?php echo Horde_Util::formInput() ?>
+  <input type="submit" class="button" value="<?php echo _("Create a new Task List") ?>" />
+ </form>
+</div>
+<?php endif; ?>
+
+<table summary="<?php echo _("Task List List") ?>" cellspacing="0" id="tasklist-list" class="striped sortable">
+ <thead>
+  <tr>
+   <th class="sortdown"><?php echo _("Task List") ?></th>
+   <th class="tasklist-list-url nosort"><?php echo _("Display URL") ?></th>
+   <th class="tasklist-list-url nosort"><?php echo _("Subscription URL") ?></th>
+   <th class="tasklist-list-icon nosort" colspan="<?php echo empty($conf['share']['no_sharing']) ? 3 : 2 ?>">&nbsp;</th>
+  </tr>
+ </thead>
+
+ <tbody>
+<?php foreach (array_keys($sorted_tasklists) as $tasklist_id): ?>
+ <?php $tasklist = $tasklists[$tasklist_id] ?>
+  <tr>
+   <td><?php echo htmlspecialchars($tasklist->get('name')) ?></td>
+   <td><?php $url = Horde_Util::addParameter($display_url_base, 'display_cal', $tasklist->getName(), false) ?><a href="<?php echo htmlspecialchars($url) ?>" title="<?php echo _("Click or copy this URL to display this task list") ?>" target="_blank"><?php echo htmlspecialchars(shorten_url($url)) ?></a></td>
+   <td><?php $url = $webdav ? $subscribe_url_base . $tasklist->get('owner') . '/' . $tasklist->getName() . '.ics' : Horde_Util::addParameter($subscribe_url_base, 't', $tasklist->getName(), false) ?><a href="<?php echo htmlspecialchars($url) ?>" title="<?php echo _("Click or copy this URL to display this task list") ?>" target="_blank"><?php echo htmlspecialchars(shorten_url($url)) ?></a></td>
+   <td><a href="<?php echo Horde_Util::addParameter($edit_url_base, 't', $tasklist->getName()) ?>" title="<?php echo _("Edit") ?>"><?php echo $edit_img ?></a></td>
+<?php if (empty($conf['share']['no_sharing'])): ?>
+   <td><a onclick="return !popup(this.href);" href="<?php echo Horde_Util::addParameter($perms_url_base, 'share', $tasklist->getName()) ?>" target="_blank" title="<?php echo _("Change Permissions") ?>"><?php echo $perms_img ?></a></td>
+<?php endif; ?>
+   <td><a href="<?php echo Horde_Util::addParameter($delete_url_base, 't', $tasklist->getName()) ?>" title="<?php echo _("Delete") ?>"><?php echo $delete_img ?></a></td>
+  </tr>
+<?php endforeach; ?>
+ </tbody>
+</table>
diff --git a/nag/templates/view/task.inc b/nag/templates/view/task.inc
new file mode 100644 (file)
index 0000000..23bd6a7
--- /dev/null
@@ -0,0 +1,80 @@
+<div class="header">
+ <span class="smallheader rightFloat"><?php echo implode(' | ', $links) ?></span>
+ <?php echo htmlspecialchars($task->name) ?>
+</div>
+
+<table cellspacing="0" width="100%" class="headerbox striped nowrap task">
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Category") ?></strong></td>
+  <td width="100%"><?php echo htmlspecialchars($task->category ? $task->category : _("Unfiled")) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Assignee") ?></strong></td>
+  <td><?php echo Nag::formatAssignee($task->assignee, true) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign"><strong><?php echo _("Private?") ?></strong></td>
+  <td>
+   <?php echo $task->private ? Horde::img('checked.png', _("Private")) : Horde::img('unchecked.png', _("Not Private")) ?>
+  </td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Start Date") ?></strong></td>
+  <td><?php echo Nag::formatDate($task->start, false) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Due By") ?></strong></td>
+  <td><?php echo Nag::formatDate($task->due) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Alarm") ?></strong></td>
+  <td><?php echo htmlspecialchars($alarm_text) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Priority") ?></strong></td>
+  <td><?php echo Nag::formatPriority($task->priority) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Estimated Time") ?></strong></td>
+  <td><?php echo htmlspecialchars($task->estimate); if ($task->hasSubTasks()) echo htmlspecialchars(sprintf(_(" (%s including sub-tasks)"), $task->estimation())) ?></td>
+ </tr>
+ <tr>
+  <td class="rightAlign" valign="top"><strong><?php echo _("Completed?") ?></strong></td>
+  <td>
+  <?php if (!$print_view && !is_a($share, 'PEAR_Error') && $share->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")) . '</a>';
+            } else {
+                echo Horde::link(Horde::applicationUrl(Horde_Util::addParameter($taskurl, 'actionID', 'complete_task')), _("Mark as incomplete"), 'widget') . Horde::img('checked.png', _("Mark as incomplete")) . '</a>';
+            }
+        } else {
+            echo Nag::formatCompletion($task->completed) . '</a></td>';
+        }
+        if (isset($completed)) {
+            echo ' <small>' . strftime($prefs->getValue('date_format'), $completed) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $completed) . '</small>';
+        } ?>
+  </td>
+ </tr>
+
+<?php if (isset($created)): ?>
+ <tr>
+  <td class="rightAlign"><strong><?php echo _("Created") ?></strong></td>
+  <td><?php echo strftime($prefs->getValue('date_format'), $created) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $created) . ' ' . @htmlspecialchars($createdby, ENT_COMPAT, Horde_Nls::getCharset()) ?></td>
+ </tr>
+<?php endif; ?>
+
+<?php if (isset($modified)): ?>
+ <tr>
+  <td class="rightAlign"><strong><?php echo _("Last Modified") ?></strong></td>
+  <td><?php echo strftime($prefs->getValue('date_format'), $modified) . ' ' . date($prefs->getValue('twentyFour') ? 'G:i' : 'g:i a', $modified) . ' ' . @htmlspecialchars($modifiedby, ENT_COMPAT, Horde_Nls::getCharset()) ?></td>
+ </tr>
+<?php endif; ?>
+
+<?php if (strlen($task->desc)): ?>
+ <tr>
+  <td colspan="2" class="taskBody">
+   <?php echo $task->getFormattedDescription() ?>
+  </td>
+ </tr>
+<?php endif; ?>
+</table>
diff --git a/nag/themes/bluewhite/screen.css b/nag/themes/bluewhite/screen.css
new file mode 100644 (file)
index 0000000..814a285
--- /dev/null
@@ -0,0 +1,3 @@
+#quicksearch a {
+    background: #339;
+}
diff --git a/nag/themes/categoryCSS.php b/nag/themes/categoryCSS.php
new file mode 100644 (file)
index 0000000..5b47dd5
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+/**
+ * $Horde: nag/themes/categoryCSS.php,v 1.8 2009/01/06 18:01:25 jan Exp $
+ *
+ * Copyright 1999-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+@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 (file)
index 0000000..31cded9
--- /dev/null
@@ -0,0 +1,25 @@
+/**
+ * This theme as been written by Roel Gloudemans <roel@gloudemans.info>
+ *
+ * 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 (file)
index 0000000..0d23667
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 (file)
index 0000000..70c1e1d
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 (file)
index 0000000..4c94f72
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 (file)
index 0000000..2b646f9
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 (file)
index 0000000..7188561
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 (file)
index 0000000..681eff6
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 (file)
index 0000000..24e3379
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 (file)
index 0000000..3217046
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 (file)
index 0000000..b39605d
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 (file)
index 0000000..f0a4368
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 (file)
index 0000000..263e356
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 (file)
index 0000000..35218b3
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 (file)
index 0000000..94c47d4
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 (file)
index 0000000..b39605d
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 (file)
index 0000000..b6fc70e
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 (file)
index 0000000..a154237
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 (file)
index 0000000..8e6854e
--- /dev/null
@@ -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 (file)
index 0000000..598b839
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 (file)
index 0000000..6e0015d
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 (file)
index 0000000..3f34e72
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 (file)
index 0000000..f52e828
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 (file)
index 0000000..7188561
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 (file)
index 0000000..681eff6
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 (file)
index 0000000..461907c
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 (file)
index 0000000..763c90d
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 (file)
index 0000000..e2672c2
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 (file)
index 0000000..244e6ca
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 (file)
index 0000000..6332fef
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 (file)
index 0000000..908612e
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 (file)
index 0000000..2842cc3
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 (file)
index 0000000..b6fc70e
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 (file)
index 0000000..32e427a
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 (file)
index 0000000..271c5ef
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/nag/themes/sounds/theetone.wav b/nag/themes/sounds/theetone.wav
new file mode 100644 (file)
index 0000000..3f6663b
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 (file)
index 0000000..1ccabbe
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 (file)
index 0000000..ec8f00b
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 (file)
index 0000000..0dc63f2
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 (file)
index 0000000..5317669
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 (file)
index 0000000..f600440
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 (file)
index 0000000..a7df371
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 (file)
index 0000000..4920bac
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 (file)
index 0000000..03ced5c
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 (file)
index 0000000..4b03094
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 (file)
index 0000000..f5be913
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 (file)
index 0000000..e69de29
diff --git a/nag/view.php b/nag/view.php
new file mode 100644 (file)
index 0000000..98d9a5e
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Copyright 2001-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+require_once dirname(__FILE__) . '/lib/base.php';
+
+/* We can either have a UID or a taskId and a tasklist. Check for
+ * UID first. */
+if ($uid = Horde_Util::getFormData('uid')) {
+    $storage = Nag_Driver::singleton();
+    $task = $storage->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';