[tasque] Natural Language support (BGO #555680)



commit 601bda447729fdd74872572424966e0672986ba1
Author: Mario Carrion <mario carrion mx>
Date:   Tue Mar 30 23:03:45 2010 -0400

    Natural Language support (BGO #555680)
    
    Inspired by the work done by Anirudh Sanjeev and Steve George.

 ChangeLog                                          |   37 +
 RtmNet/RtmNet.csproj                               |    2 +-
 TRANSLATORS                                        |   54 ++
 po/ChangeLog                                       |    5 +
 po/POTFILES.in                                     |    1 +
 po/cs.po                                           |  392 ++++++++----
 po/da.po                                           |  381 ++++++++----
 po/de.po                                           |  208 ++++---
 po/el.po                                           |  329 +++++++---
 po/en_GB.po                                        |  392 ++++++++----
 po/eo.po                                           |  429 ++++++++-----
 po/es.po                                           |  181 +++---
 po/et.po                                           |  255 +++++++-
 po/fi.po                                           |  505 ++++++++++++++-
 po/fr.po                                           |  458 ++++++++++----
 po/gl.po                                           |  188 ++++--
 po/hu.po                                           |  206 ++++---
 po/id.po                                           |  208 ++++---
 po/it.po                                           |  389 ++++++++----
 po/ja.po                                           |  395 ++++++++----
 po/nb.po                                           |  189 ++++--
 po/nds.po                                          |  250 +++++---
 po/nl.po                                           |  512 ++++++++++++++-
 po/pl.po                                           |  428 ++++++++----
 po/pt.po                                           |  185 ++++--
 po/pt_BR.po                                        |  185 ++++--
 po/ru.po                                           |  488 ++++++++++----
 po/sl.po                                           |  254 +++++---
 po/sv.po                                           |  250 +++++---
 po/th.po                                           |  392 ++++++++----
 po/tr.po                                           |  458 ++++++++++----
 po/zh_CN.po                                        |  185 ++++--
 po/zh_TW.po                                        |  458 ++++++++++----
 src/Makefile.am                                    |   37 +-
 src/RemoteControl.cs                               |    2 +-
 src/TaskTreeView.cs                                |    2 +-
 src/TaskWindow.cs                                  |    2 +-
 src/Utilities.cs                                   |  101 +---
 src/libtasque/DateFormatterFactory.cs              |   55 ++
 src/libtasque/DateFormatters/DateFormatter.cs      |   81 +++
 .../DateFormatters/DateSeparatedFormatter.cs       |   42 ++
 src/libtasque/DateFormatters/DayFormatter.cs       |   45 ++
 src/libtasque/DateFormatters/IDateFormatter.cs     |   33 +
 src/libtasque/DateFormatters/MonthFormatter.cs     |   46 ++
 src/libtasque/DateFormatters/OrdinalFormatter.cs   |   57 ++
 src/libtasque/DateFormatters/QuantityFormatter.cs  |   99 +++
 .../DateFormatters/StringInsensitiveComparer.cs    |   40 ++
 .../DateFormatters/TodayTomorrowFormatter.cs       |   45 ++
 src/libtasque/DateFormatters/WeekFormatter.cs      |   45 ++
 src/libtasque/DateFormatters/WeekdayFormatter.cs   |   49 ++
 src/libtasque/DateFormatters/YearFormatter.cs      |   45 ++
 src/libtasque/Extensions.cs                        |  127 ++++
 src/libtasque/RegularExpressionFormatter.cs        |   60 ++
 src/libtasque/TaskParser.cs                        |  365 ++++++++++
 src/libtasque/TranslatableToken.cs                 |   46 ++
 src/libtasque/libtasque.csproj                     |   39 +-
 tasque.csproj                                      |    3 +-
 tasque.sln                                         |    6 +
 tests/DateGuesserTest.cs                           |  365 ++++++++++
 tests/TaskParserFixture.cs                         |  694 ++++++++++++++++++++
 tests/tests.csproj                                 |   52 ++
 61 files changed, 9189 insertions(+), 2643 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1b84197..e431749 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,40 @@
+2010-03-30  Mario Carrion  <mario carrion mx>
+
+	* TRANSLATORS: Added file.
+	* RtmNet/RtmNet.csproj:
+	* src/libtasque/libtasque.csproj:
+	* tasque.csproj: Using 3.5 framework.
+	* tasque.sln: Updated to include tests project.
+	* src/libtasque/DateFormatterFactory.cs:
+	* src/libtasque/DateFormatters/DateFormatter.cs:
+	* src/libtasque/DateFormatters/DateSeparatedFormatter.cs:
+	* src/libtasque/DateFormatters/DayFormatter.cs:
+	* src/libtasque/DateFormatters/IDateFormatter.cs:
+	* src/libtasque/DateFormatters/MonthFormatter.cs:
+	* src/libtasque/DateFormatters/OrdinalFormatter.cs:
+	* src/libtasque/DateFormatters/QuantityFormatter.cs:
+	* src/libtasque/DateFormatters/StringInsensitiveComparer.cs:
+	* src/libtasque/DateFormatters/TodayTomorrowFormatter.cs:
+	* src/libtasque/DateFormatters/WeekFormatter.cs:
+	* src/libtasque/DateFormatters/WeekdayFormatter.cs:
+	* src/libtasque/DateFormatters/YearFormatter.cs:
+	* src/libtasque/Extensions.cs:
+	* src/libtasque/RegularExpressionFormatter.cs:
+	* src/libtasque/TaskParser.cs:
+	* src/libtasque/TranslatableToken.cs:
+	* tests/DateGuesserTest.cs:
+	* tests/TaskParserFixture.cs:
+	* src/Makefile.am:
+	* tests/tests.csproj: Files added. Implements Natural Language 
+	support.
+	* src/RemoteControl.cs:
+	* src/TaskTreeView.cs:
+	* src/TaskWindow.cs:
+	* src/Utilities.cs: Updated to use newest NLI.
+	Fixes BGO #555680
+
+	Inspired by the work done by Anirudh Sanjeev and Steve George.
+
 2010-03-08  Mario Carrion  <mario carrion mx>
 	
 	* tasque.csproj:
diff --git a/RtmNet/RtmNet.csproj b/RtmNet/RtmNet.csproj
index 127a70a..145e4e8 100644
--- a/RtmNet/RtmNet.csproj
+++ b/RtmNet/RtmNet.csproj
@@ -9,7 +9,7 @@
     <OutputType>Library</OutputType>
     <NoStandardLibraries>false</NoStandardLibraries>
     <AssemblyName>RtmNet</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <RootNamespace>RtmNet</RootNamespace>
   </PropertyGroup>
diff --git a/TRANSLATORS b/TRANSLATORS
new file mode 100644
index 0000000..3a0a52a
--- /dev/null
+++ b/TRANSLATORS
@@ -0,0 +1,54 @@
+TRANSLATORS
+
+This file explains the rules to follow for translating regular expressions.
+The most important one is:
+
+- Do not remove the the vertical separator or pipe ('|') in strings containing
+  it. Only the elements separated by this character are translated.
+- Do not add extra spaces. 
+- MAKE SURE 'fuzzy' translations are reviewed, and if the translation is valid,
+  remove the fuzzy line.
+
+For example:
+
+    "next" would be translated to spanish "siguiente|proxima|próxima"
+
+Notice that "proxima" is also used, the idea here is to be not too strict
+and support spelling errors (that make sense). In this case we are ignoring
+the 'ó' to allow the spelling error.
+
+TRANSLATABLE EXPRESSIONS
+
+The following table shows the tokens and the meaning of them.
+
+-------------------------------------------------------------
+| Token | English words           | Description
+-------------------------------------------------------------
+| M     | "Jan|January|Feb|..."   | Short and long months.
+| D     | "Sun|Sunday|Mon|..."    | Short and long weekdays.
+| A     | "d/m/y|d-m-y"           | Date separated, locale specific
+| T     | "today", "tomorrow"     | Same.
+| O     | "1st,2nd,3rd,11th,.."   | Ordinal number
+| N     | "1,2,3,11,.."           | Cardinal number, beginning in 1.
+
+| u     | "due|due by|due before" | Same
+| d     | "day|days"              | Same
+| w     | "week|weeks"            | Same
+| m     | "month|months"          | Same
+| y     | "year|years"            | Same
+| n     | "next"                  | Same
+| o     | "on"                    | Same
+| i     | "in"                    | Same
+
+For example, the following expression:
+"u M O" in English will match: "due by April 2nd"
+
+but in Spanish this expression would need to be changed to:
+"u O 'de' M" to match "antes del 1o de Abril"
+
+also notice here that the all tokens are shortcuts to the translation
+and only extra words needed are required to be included in the 
+translated regular expression.
+
+If you have any question, send an email to the mailing list. We will
+answer all of your questions.
diff --git a/po/ChangeLog b/po/ChangeLog
index cf02e34..013fc14 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-30  Mario Carrion  <mario carrion mx>
+
+	* POTFILES.in: Added new files.
+	* *.po: Updated to latest changes.
+
 2009-10-05  Ray Wang  <raywang gnome org>
 
 	* zh_CN.po: Updated zh_CN translation.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ef88ce7..f6aa3f4 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -13,3 +13,4 @@ src/TaskTreeView.cs
 src/TaskWindow.cs
 src/Utilities.cs
 src/Backends/Rtm/RtmPreferencesWidget.cs
+src/libtasque/TaskParser.cs
diff --git a/po/cs.po b/po/cs.po
index 32b0732..c4d84c7 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-08 03:59+0100\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-03-04 19:56+0100\n"
 "Last-Translator: Petr Pulc <petrpulc gmail com>\n"
 "Language-Team: Czech <gnome-cs-list gnome org>\n"
@@ -30,55 +30,85 @@ msgstr "Správce úkolů"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Petr Pulc <petrpulc gmail com>"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "UžiteÄ?ný seznam úkolů"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Domovská stránka projektu Tasque"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Nový úkol ..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Zobrazit úkoly ..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "Obnovit úkoly ..."
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "VÅ¡e"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "VÄ?era"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Poslední týden"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Poslední mÄ?síc"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Poslední rok"
 
@@ -95,28 +125,51 @@ msgstr "_Soubor"
 msgid "_Window"
 msgstr "_Okno"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Obecné"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Dnes"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "ZpoždÄ?né"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Systém správy úkolů"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Filtrování úkolů"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "Zobrazit d_okonÄ?ené úkoly"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "_S vybranou volbou \"VÅ¡e\" zobrazit jen tyto kategorie:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategorie"
 
@@ -125,7 +178,7 @@ msgid "New task created."
 msgstr "Nový úkol vytvoÅ?en."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "DokonÄ?ené"
 
@@ -135,19 +188,19 @@ msgid "Priority"
 msgstr "Priorita"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -167,38 +220,38 @@ msgid "Due Date"
 msgstr "Termín"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d. M. - "
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Dnes"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Zítra"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d. M. - ddd"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Za týden"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Bez data"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Zvolit datum..."
 
@@ -216,202 +269,311 @@ msgstr "Ä?asovaÄ?"
 msgid "Task Completed"
 msgstr "Ã?kol dokonÄ?en"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d. M. yy - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Akce zrušena"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "OznaÄ?í jako dokonÄ?enou za: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nový úkol..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "PÅ?id_at"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "PÅ?id_at úkol"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "ZpoždÄ?né"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Do týdne"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Budoucnost"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Chyba pÅ?i vytváÅ?ení nového úkolu"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Ã?kol úspÄ?Å¡nÄ? vytvoÅ?en"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "Poz_námky..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Smazat úkol"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_Upravit úkol"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Kategorie"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "�kol smazán"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "NaÄ?ítání úkolů..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"Nejste pÅ?ipojeni"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Dnes, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "VÄ?era, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "PÅ?ed {0} dny, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "PÅ?ed {0} dny"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Zítra, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Za {0} dní, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Za {0} dní"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d. MMMM, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d. MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d. MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d. MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "NedÄ?le"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "PondÄ?lí"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "�terý"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "StÅ?eda"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Ä?tvrtek"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Pátek"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sobota"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+dnes\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+zítra\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "KliknÄ?te sem pro pÅ?ipojení"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"PrávÄ? jste pÅ?ipojeni"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"PrávÄ? jste pÅ?ipojeni"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "Nejste pÅ?ipojeni"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk neodpovídá. Zkuste to prosím pozdÄ?ji."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Po autorizaci kliknÄ?te sem"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Nastavte výchozí prohlížeÄ? a zkuste to znovu"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "DÄ?kujeme"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"PrávÄ? jste pÅ?ipojeni"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Dnes"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Zítra"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nový úkol..."
+
+#~ msgid "Sunday"
+#~ msgstr "NedÄ?le"
+
+#~ msgid "Monday"
+#~ msgstr "PondÄ?lí"
+
+#~ msgid "Tuesday"
+#~ msgstr "�terý"
+
+#~ msgid "Wednesday"
+#~ msgstr "StÅ?eda"
+
+#~ msgid "Thursday"
+#~ msgstr "Ä?tvrtek"
+
+#~ msgid "Friday"
+#~ msgstr "Pátek"
+
+#~ msgid "Saturday"
+#~ msgstr "Sobota"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+dnes\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+zítra\\W*$"
diff --git a/po/da.po b/po/da.po
index 247362d..5f74089 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-29 10:20+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-07-02 12:55+0100\n"
 "Last-Translator: Søren Juul <zpon dk gmail com>\n"
 "Language-Team: Danish <dansk dansk-gruppen dk>\n"
@@ -27,11 +27,38 @@ msgstr "Opgavehåndtering"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr ""
 "Søren Juul\n"
@@ -39,47 +66,47 @@ msgstr ""
 "Dansk-gruppen <dansk dansk-gruppen dk>\n"
 "Mere info: http://www.dansk-gruppen.dk";
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "En handy opgaveliste"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque-projekthjemmeside"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Ny opgave..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Vis opgaver..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "Genopfrisk opgaver ..."
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Alle"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "I går"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "De sidste 7 dage"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Sidste måned"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Sidste år"
 
@@ -96,29 +123,52 @@ msgstr "_Fil"
 msgid "_Window"
 msgstr "_Vindue"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Generelt"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "I dag"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "Overskredet"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "System til opgavehåndtering"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Opgavefiltrering"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 #, fuzzy
 msgid "Sh_ow completed tasks"
 msgstr "Vis _udførte opgaver"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Vi_s kun disse kategorier når \"Alle\" er valgt:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategori"
 
@@ -137,19 +187,19 @@ msgid "Priority"
 msgstr "Prioritet"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -169,38 +219,38 @@ msgid "Due Date"
 msgstr "Forfaldsdato"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "I dag"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "I morgen"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "PÃ¥ 1 uge"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Ingen dato"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Vælg dato..."
 
@@ -218,31 +268,31 @@ msgstr "Stopur"
 msgid "Task Completed"
 msgstr "Opgave udført"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/åå - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Handling annulleret"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "Færdigør opgaven i: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:835 ../src/TaskWindow.cs:891
-#: ../src/TaskWindow.cs:901 ../src/TaskWindow.cs:912
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Ny opgave..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Tilføj"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Tilføj opgave"
 
@@ -258,165 +308,274 @@ msgstr "Næste 7 Dage"
 msgid "Future"
 msgstr "Fremtidig"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:799
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Fejl under oprettelse af ny opgave"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:803
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Opgave oprettet"
 
-#: ../src/TaskWindow.cs:1080
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Noter..."
 
-#: ../src/TaskWindow.cs:1087
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Slet opgave"
 
-#: ../src/TaskWindow.cs:1092
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "R_edigér opgave"
 
-#: ../src/TaskWindow.cs:1120
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Kategori"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Opgaven er slettet"
 
-#: ../src/TaskWindow.cs:1162
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Indlæser opgaver..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"Du er ikke forbundet"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "I dag, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "I går, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} dage siden, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} dage siden"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "I morgen, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "PÃ¥ {0} dage, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "PÃ¥ {0} dage"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Søndag"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Mandag"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Tirsdag"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Onsdag"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Torsdag"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Fredag"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Lørdag"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+i dag\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+i morgen\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klik her for at forbinde"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"Du er forbundet"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"Du er forbundet"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "Du er ikke forbundet"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk svarede ikke. Prøv igen senere."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Klik her efter godkendelsen"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Set standardbrowseren og prøv igen"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Tak"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"Du er forbundet"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "I dag"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "I morgen"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Ny opgave..."
+
+#~ msgid "Sunday"
+#~ msgstr "Søndag"
+
+#~ msgid "Monday"
+#~ msgstr "Mandag"
+
+#~ msgid "Tuesday"
+#~ msgstr "Tirsdag"
+
+#~ msgid "Wednesday"
+#~ msgstr "Onsdag"
+
+#~ msgid "Thursday"
+#~ msgstr "Torsdag"
+
+#~ msgid "Friday"
+#~ msgstr "Fredag"
+
+#~ msgid "Saturday"
+#~ msgstr "Lørdag"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+i dag\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+i morgen\\W*$"
 
 #~ msgid "Reloading tasks..."
 #~ msgstr "Genindlæs opgaver..."
diff --git a/po/de.po b/po/de.po
index 8fe0d4f..6a4ced3 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,9 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-09-19 15:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-09-20 11:48+0100\n"
 "Last-Translator: Mario Blättermann <mariobl gnome org>\n"
 "Language-Team: German <gnome-de gnome org>\n"
@@ -56,7 +55,6 @@ msgstr[1] "{0} Aufgaben für morgen\n"
 
 #. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
 #: ../src/Application.cs:540
-#| msgid "Tasque"
 msgid "Tasque Rocks"
 msgstr "Tasque Rocks"
 
@@ -98,7 +96,7 @@ msgstr "Aufgaben aktualisieren â?¦"
 msgid "All"
 msgstr "Alle"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Gestern"
 
@@ -145,12 +143,10 @@ msgid "Color Management"
 msgstr "Farbverwaltung"
 
 #: ../src/PreferencesDialog.cs:171
-#| msgid "Today"
 msgid "Today:"
 msgstr "Heute:"
 
 #: ../src/PreferencesDialog.cs:199
-#| msgid "Overdue"
 msgid "Overdue:"
 msgstr "�berfällig:"
 
@@ -228,12 +224,12 @@ msgid "M/d - "
 msgstr "d.M - "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Heute"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Morgen"
 
@@ -249,7 +245,7 @@ msgid "In 1 Week"
 msgstr "In 1 Woche"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Kein Datum"
 
@@ -341,7 +337,6 @@ msgstr "Aufgab_e bearbeiten"
 
 #. TODO Needs translation.
 #: ../src/TaskWindow.cs:1133
-#| msgid "Category"
 msgid "_Change category"
 msgstr "Kategorie än_dern"
 
@@ -354,130 +349,75 @@ msgid "Loading tasks..."
 msgstr "Aufgaben laden â?¦"
 
 #: ../src/TaskWindow.cs:1225
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "Not connected."
 msgstr "Sie sind nicht verbunden."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Heute, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Gestern, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "vor {0} Tagen, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "vor {0} Tagen"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Morgen, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "In {0} Tagen, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "In {0} Tagen"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d. MMMM, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d. MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d. MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d. MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Sonntag"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Montag"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Dienstag"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Mittwoch"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Donnerstag"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Freitag"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Samstag"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+heute\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+morgen\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Hier klicken, um zu verbinden"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected"
 msgstr "Sie sind gegenwärtig verbunden"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected as"
 msgstr "Sie sind gegenwärtig verbunden als"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "You are not connected"
 msgstr "Sie sind nicht verbunden"
 
@@ -504,3 +444,117 @@ msgstr "Gescheitert, bitte erneut versuchen"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Danke"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Heute"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Morgen"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Neue Aufgabe â?¦"
+
+#~ msgid "Sunday"
+#~ msgstr "Sonntag"
+
+#~ msgid "Monday"
+#~ msgstr "Montag"
+
+#~ msgid "Tuesday"
+#~ msgstr "Dienstag"
+
+#~ msgid "Wednesday"
+#~ msgstr "Mittwoch"
+
+#~ msgid "Thursday"
+#~ msgstr "Donnerstag"
+
+#~ msgid "Friday"
+#~ msgstr "Freitag"
+
+#~ msgid "Saturday"
+#~ msgstr "Samstag"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+heute\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+morgen\\W*$"
diff --git a/po/el.po b/po/el.po
index 7cb99dc..a0d677d 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: el\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-05 13:38+0000\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-01-05 13:39+0000\n"
 "Last-Translator: Simos Xenitellis <simos gnome org>\n"
 "Language-Team: Greek <team gnome gr>\n"
@@ -28,55 +28,81 @@ msgstr "Î?ιαÏ?ειÏ?ιÏ?Ï?ήÏ? εÏ?γαÏ?ιÏ?ν"
 msgid "Tasque"
 msgstr ""
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+msgid "Tasque Rocks"
+msgstr ""
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:488
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr ""
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr ""
 
-#: ../src/Application.cs:498
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr ""
 
-#: ../src/Application.cs:500
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr ""
 
-#: ../src/Application.cs:614
-msgid "Show Tasks ..."
-msgstr ""
-
-#: ../src/Application.cs:621
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Î?έα εÏ?γαÏ?ία..."
 
-#: ../src/Application.cs:636
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr ""
+
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr ""
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Î?λα"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr ""
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr ""
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr ""
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr ""
 
@@ -93,28 +119,49 @@ msgstr ""
 msgid "_Window"
 msgstr ""
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr ""
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+msgid "Today:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:199
+msgid "Overdue:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr ""
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr ""
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr ""
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr ""
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr ""
 
@@ -123,7 +170,7 @@ msgid "New task created."
 msgstr ""
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr ""
 
@@ -133,19 +180,19 @@ msgid "Priority"
 msgstr ""
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr ""
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr ""
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr ""
 
@@ -165,38 +212,38 @@ msgid "Due Date"
 msgstr ""
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr ""
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr ""
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr ""
 
@@ -214,197 +261,265 @@ msgstr ""
 msgid "Task Completed"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr ""
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr ""
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr ""
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr ""
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr ""
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr ""
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr ""
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr ""
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr ""
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr ""
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr ""
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr ""
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr ""
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+msgid "_Change category"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr ""
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr ""
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr ""
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr ""
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr ""
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr ""
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr ""
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr ""
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr ""
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr ""
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr ""
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr ""
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr ""
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
 msgstr ""
 
-#: ../src/Utilities.cs:312
-msgid "Monday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
 msgstr ""
 
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
 msgstr ""
 
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
 msgstr ""
 
-#: ../src/Utilities.cs:318
-msgid "Thursday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
 msgstr ""
 
-#: ../src/Utilities.cs:320
-msgid "Friday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
 msgstr ""
 
-#: ../src/Utilities.cs:322
-msgid "Saturday"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
 msgstr ""
 
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
 msgstr ""
 
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
-msgid "Click Here to Connect"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
-"\n"
-"\n"
-"You are not connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
-msgid "Remember the Milk not responding. Try again later."
+#: ../src/libtasque/TaskParser.cs:49
+msgid "today"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
-msgid "Click Here After Authorizing"
+#: ../src/libtasque/TaskParser.cs:51
+msgid "tomorrow"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
-msgid "Set the default browser and try again"
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
-msgid "Thank You"
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
 msgstr ""
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
 msgstr ""
 
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Î?έα εÏ?γαÏ?ία..."
diff --git a/po/en_GB.po b/po/en_GB.po
index 3575659..101c9fd 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -8,9 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Tasque\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-03-08 03:00+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-03-20 07:42+0000\n"
 "Last-Translator: Jen Ockwell <jenfraggleubuntu gmail com>\n"
 "Language-Team: British English <en li org>\n"
@@ -30,55 +29,82 @@ msgstr "Task Manager"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Jen Ockwell <jenfraggleubuntu gmail com>"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "A Useful Task List"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque Project Homepage"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "New Task ..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Show Tasks ..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "Refresh Tasks ..."
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "All"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Yesterday"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Last 7 Days"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Last Month"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Last Year"
 
@@ -95,28 +121,51 @@ msgstr "_File"
 msgid "_Window"
 msgstr "_Window"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "General"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Today"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "Overdue"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Task Management System"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Task Filtering"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "Sh_ow completed tasks"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Only _show these categories when \"All\" is selected:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Category"
 
@@ -125,7 +174,7 @@ msgid "New task created."
 msgstr "New task created."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Completed"
 
@@ -135,19 +184,19 @@ msgid "Priority"
 msgstr "Priority"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -167,38 +216,38 @@ msgid "Due Date"
 msgstr "Due Date"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Today"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Tomorrow"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "In 1 Week"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "No Date"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Choose Date..."
 
@@ -216,202 +265,311 @@ msgstr "Timer"
 msgid "Task Completed"
 msgstr "Task Completed"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Action Cancelled"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "Completing Task In: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "New task..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Add"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Add Task"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "Overdue"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Next 7 Days"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Future"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Error creating a new task"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Task created successfully"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Notes..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Delete task"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_Edit task"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Category"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Task deleted"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Loading tasks..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"You are not connected"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Today, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Yesterday, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} days ago, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} days ago"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Tomorrow, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "In {0} days, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "In {0} days"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Sunday"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Monday"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Tuesday"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Wednesday"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Thursday"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Friday"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Saturday"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Click Here to Connect"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"You are currently connected"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"You are currently connected"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "You are not connected"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk not responding. Try again later."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Click Here After Authorising"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Set the default browser and try again"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Thank You"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"You are currently connected"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Today"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Tomorrow"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "New task..."
+
+#~ msgid "Sunday"
+#~ msgstr "Sunday"
+
+#~ msgid "Monday"
+#~ msgstr "Monday"
+
+#~ msgid "Tuesday"
+#~ msgstr "Tuesday"
+
+#~ msgid "Wednesday"
+#~ msgstr "Wednesday"
+
+#~ msgid "Thursday"
+#~ msgstr "Thursday"
+
+#~ msgid "Friday"
+#~ msgstr "Friday"
+
+#~ msgid "Saturday"
+#~ msgstr "Saturday"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/po/eo.po b/po/eo.po
index b15b442..f56cb2d 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=tasque&component=general\n";
-"POT-Creation-Date: 2009-03-07 20:59+0100\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-03-07 22:20-0500\n"
 "Last-Translator: Colin Dean <cad cad cx>\n"
 "Language-Team: Esperanto <cad cad cx>\n"
@@ -27,57 +27,82 @@ msgstr "TaskmanaÄ?ero"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Colin Dean <cad cad cx>"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Kopirajto © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Utila tasklisto "
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "TTT-paÄ?o de Tasque projekto"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Nova tasko..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Montri taskoj..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "RefreÅ?igi taskoj..."
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Tuta"
 
-#: ../src/CompletedTaskGroup.cs:205
-#: ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "HieraÅ­"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Lastaj 7 tagoj"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Pasintmonate"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Pasintjare"
 
@@ -94,28 +119,51 @@ msgstr "_Dosiero"
 msgid "_Window"
 msgstr "_Fenestro"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Ä?enerala"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "HodiaÅ­"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "Posttempa"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Taskadministrada Sistemo"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Tasko filtranta "
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "Montri _kompletaj taskoj"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Montri sole tiuj kategorioj kiam \"Tuta\" elektita"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategorio"
 
@@ -124,8 +172,7 @@ msgid "New task created."
 msgstr "Nova tasko kreita."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84
-#: ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Kompletita"
 
@@ -134,29 +181,25 @@ msgstr "Kompletita"
 msgid "Priority"
 msgstr "Prioritato"
 
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:116
-#: ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:117
-#: ../src/TaskTreeView.cs:369
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
@@ -170,52 +213,39 @@ msgstr "Tasknomo"
 msgid "Due Date"
 msgstr "Pagdato"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683
-#: ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273
-#: ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "HodiaÅ­"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291
-#: ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "MorgaÅ­"
 
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "En 1 semajno"
 
-#: ../src/TaskTreeView.cs:202
-#: ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Ne dato"
 
-#: ../src/TaskTreeView.cs:203
-#: ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Elekti dato..."
 
@@ -233,209 +263,314 @@ msgstr "Minutatoro"
 msgid "Task Completed"
 msgstr "Tasko kompletita"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Ago nuligita"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "Kompletanta taskon en: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149
-#: ../src/TaskWindow.cs:833
-#: ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899
-#: ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nova tasko..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Aldoni"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Aldoni taskon"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "Posttempa"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Sekvantaj 7 tagoj"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Estonteco"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Eraro dum kreanta novan taskon"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Tasko kreita sukcese"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Notoj..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Forigi taskoj"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_Redakti tarea"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Kategorio"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Tasko forigita"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Å?arÄ?anta taskoj..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"Vi ne konekita"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "HodiaÅ­, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "HieraÅ­, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "antaÅ­ {0} tagoj, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "antaŭ {0} días"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "MorgaÅ­, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "En {0} tagoj, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "En {0} tagoj"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "DimanÄ?o"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Lundo"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Mardo"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Merkredo"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Ä´audo"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Vendredo"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sabato"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+hodiaÅ­\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+morgaÅ­\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klaki Ä?i tie Konekti"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"Vi estas konektita nuntempe"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"Vi estas konektita nuntempe"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "Vi ne konekita"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk ne respondis. Provi denove poste."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Klaki Ä?i tie post rajtiganto"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Fiksu la aÅ­tomata retumilo kaj provu denove"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Dankon!"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "HodiaÅ­"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "MorgaÅ­"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
 msgstr ""
-"\n"
-"\n"
-"Vi estas konektita nuntempe"
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nova tasko..."
+
+#~ msgid "Sunday"
+#~ msgstr "DimanÄ?o"
+
+#~ msgid "Monday"
+#~ msgstr "Lundo"
+
+#~ msgid "Tuesday"
+#~ msgstr "Mardo"
+
+#~ msgid "Wednesday"
+#~ msgstr "Merkredo"
+
+#~ msgid "Thursday"
+#~ msgstr "Ä´audo"
+
+#~ msgid "Friday"
+#~ msgstr "Vendredo"
+
+#~ msgid "Saturday"
+#~ msgstr "Sabato"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+hodiaÅ­\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+morgaÅ­\\W*$"
 
 #~ msgid "Reloading tasks..."
 #~ msgstr "Actualizando tareas..."
-
diff --git a/po/es.po b/po/es.po
index 5edc080..5a181cb 100644
--- a/po/es.po
+++ b/po/es.po
@@ -4,14 +4,14 @@
 # Nacho Hermoso de Mendoza <gnacho gmail com>, 2008.
 #
 # Jorge González <jorgegonz svn gnome org>, 2008, 2009.
+# Mario Carrion <mario carrion mx>, 2010
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-09-19 15:24+0000\n"
-"PO-Revision-Date: 2009-11-02 11:28+0100\n"
-"Last-Translator: Jorge González <jorgegonz svn gnome org>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
+"PO-Revision-Date: 2010-03-30 11:28+0100\n"
+"Last-Translator: Mario Carrion <mario carrion mx>\n"
 "Language-Team: Español <gnome-es-list gnome org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -53,7 +53,6 @@ msgstr[1] "{0} tareas para mañana\n"
 
 #. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
 #: ../src/Application.cs:540
-#| msgid "Tasque"
 msgid "Tasque Rocks"
 msgstr "Tasque mola"
 
@@ -93,7 +92,7 @@ msgstr "Actualizar tareas..."
 msgid "All"
 msgstr "Todas"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Ayer"
 
@@ -140,12 +139,10 @@ msgid "Color Management"
 msgstr "Gestión de color"
 
 #: ../src/PreferencesDialog.cs:171
-#| msgid "Today"
 msgid "Today:"
 msgstr "Hoy:"
 
 #: ../src/PreferencesDialog.cs:199
-#| msgid "Overdue"
 msgid "Overdue:"
 msgstr "Atrasadas:"
 
@@ -223,12 +220,12 @@ msgid "M/d - "
 msgstr "d/M - "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Hoy"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Mañana"
 
@@ -244,7 +241,7 @@ msgid "In 1 Week"
 msgstr "En 1 semana"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Sin fecha"
 
@@ -336,7 +333,6 @@ msgstr "_Editar tarea"
 
 #. TODO Needs translation.
 #: ../src/TaskWindow.cs:1133
-#| msgid "Category"
 msgid "_Change category"
 msgstr "_Cambiar categoría"
 
@@ -349,130 +345,75 @@ msgid "Loading tasks..."
 msgstr "Cargando tareas..."
 
 #: ../src/TaskWindow.cs:1225
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "Not connected."
 msgstr "Sin conexión."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Hoy, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Ayer, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} días atrás, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} días atrás"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Mañana, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "En {0} días, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "En {0} días"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Domingo"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Lunes"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Martes"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Miércoles"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Jueves"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Viernes"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sábado"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+hoy\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+mañana\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Pulse aquí para conectar"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected"
 msgstr "Ahora está conectado"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected as"
 msgstr "Ahora está conectado como"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "You are not connected"
 msgstr "No está conectado"
 
@@ -500,5 +441,83 @@ msgstr "Falló, inténtelo de nuevo"
 msgid "Thank You"
 msgstr "Gracias"
 
-#~ msgid "Reloading tasks..."
-#~ msgstr "Actualizando tareas..."
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr "o"
+
+#: ../src/libtasque/TaskParser.cs:49
+msgid "today"
+msgstr "hoy"
+
+#: ../src/libtasque/TaskParser.cs:51
+msgid "tomorrow"
+msgstr "mañana"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr "mes|meses"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr "semana|semanas"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr "año|años"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr "día|dia|días|dias"
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr "para|antes de|antes|antes del"
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr "la siguiente|la proxima|la próxima|el siguiente|el próximo|el proximo"
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr "el"
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr "en"
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr "u T"
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr "n w|n m|n y|n D"
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr "u 'del' D|u 'del' O 'de' M|u 'del' O|u 'de' M O|u 'de' M"
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr "o D|o O"
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr "T|D|O 'de' M|M N|O|A"
diff --git a/po/et.po b/po/et.po
index 93b32ce..5ab5ab3 100644
--- a/po/et.po
+++ b/po/et.po
@@ -10,9 +10,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-10-05 15:28+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-10-09 14:11+0300\n"
 "Last-Translator: Ivar Smolin <okul linux ee>\n"
 "Language-Team: Estonian <et li org>\n"
@@ -21,27 +20,33 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: ../data/tasque.desktop.in.h:1
 msgid "Easy quick task management"
 msgstr "Lihtne ja kiire ülesandehaldus"
 
+#: ../data/tasque.desktop.in.h:2
 msgid "Task Manager"
 msgstr "Ã?lesandehaldur"
 
+#: ../data/tasque.desktop.in.h:3
 msgid "Tasque"
 msgstr "Ã?lesandetasku"
 
+#: ../src/Application.cs:518
 #, csharp-format
 msgid "{0} task is Overdue\n"
 msgid_plural "{0} tasks are Overdue\n"
 msgstr[0] "{0} ülesanne on hilinenud\n"
 msgstr[1] "{0} ülesannet on hilinenud\n"
 
+#: ../src/Application.cs:526
 #, csharp-format
 msgid "{0} task for Today\n"
 msgid_plural "{0} tasks for Today\n"
 msgstr[0] "Tänaseks on {0} ülesanne\n"
 msgstr[1] "Tänaseks on {0} ülesannet\n"
 
+#: ../src/Application.cs:534
 #, csharp-format
 msgid "{0} task for Tomorrow\n"
 msgid_plural "{0} tasks for Tomorrow\n"
@@ -49,6 +54,7 @@ msgstr[0] "Homseks on {0} ülesanne\n"
 msgstr[1] "Homseks on {0} ülesannet\n"
 
 #. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
 msgid "Tasque Rocks"
 msgstr "�lesandetasku on mõnusalt tühi"
 
@@ -56,314 +62,497 @@ msgstr "�lesandetasku on mõnusalt tühi"
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Ivar Smolin <okul linux ee>"
 
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Autoriõigus © 2008 Novell, Inc."
 
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Ã?lesannete nimekiri"
 
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Ã?lesandetasku projekti koduleht"
 
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Uus ülesanne..."
 
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Näita ülesandeid..."
 
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "Värskenda ülesandeid..."
 
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Kõik"
 
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Eile"
 
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Viimased 7 päeva"
 
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Viimane kuu"
 
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Viimane aasta"
 
+#: ../src/NoteDialog.cs:24
 #, csharp-format
 msgid "Notes for: {0:s}"
 msgstr "�lesande märkmed: {0:s}"
 
+#: ../src/OSXApplication.cs:38
 msgid "_File"
 msgstr "_Fail"
 
+#: ../src/OSXApplication.cs:44
 msgid "_Window"
 msgstr "_Aken"
 
 #. Update the window title
+#: ../src/PreferencesDialog.cs:97
 msgid "Tasque Preferences"
 msgstr "Ã?lesandetasku eelistused"
 
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Ã?ldine"
 
+#: ../src/PreferencesDialog.cs:124
 msgid "Appearance"
 msgstr "Välimus"
 
+#: ../src/PreferencesDialog.cs:160
 msgid "Color Management"
 msgstr "Värvihaldus"
 
+#: ../src/PreferencesDialog.cs:171
 msgid "Today:"
 msgstr "Täna:"
 
+#: ../src/PreferencesDialog.cs:199
 msgid "Overdue:"
 msgstr "Hilinenud:"
 
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "�lesannete haldamise süsteem"
 
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Ã?lesannete filter"
 
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "_Lõpetatud ülesandeid näidatakse"
 
 #. Categories TreeView
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Neid kategooriaid _kuvatakse ainult siis, kui valitud on \"Kõik\":"
 
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategooria"
 
+#: ../src/RemoteControl.cs:150
 msgid "New task created."
 msgstr "Loodi uus ülesanne."
 
 #. Title for Completed/Checkbox Column
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Lõpetatud"
 
 #. Title for Priority Column
+#: ../src/TaskTreeView.cs:101
 msgid "Priority"
 msgstr "Tähtsus"
 
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
 #. Title for Task Name Column
+#: ../src/TaskTreeView.cs:131
 msgid "Task Name"
 msgstr "Ã?lesande nimi"
 
 #. Title for Due Date Column
+#: ../src/TaskTreeView.cs:173
 msgid "Due Date"
 msgstr "Tähtaeg"
 
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d-M - "
 
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Täna"
 
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Homme"
 
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d-M - ddd"
 
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Nädala jooksul"
 
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Kuupäev puudub"
 
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Vali kuupäev..."
 
 #. Title for Notes Column
+#: ../src/TaskTreeView.cs:219
 msgid "Notes"
 msgstr "Märkmed"
 
 #. Title for Timer Column
+#: ../src/TaskTreeView.cs:236
 msgid "Timer"
 msgstr "Taimer"
 
+#: ../src/TaskTreeView.cs:281
 msgid "Task Completed"
 msgstr "�lesanne täidetud"
 
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d-M-yy - ddd"
 
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Tegevus katkestatud"
 
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "�lesanne täidetakse: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Uus ülesanne..."
 
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Lisa"
 
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Lisa ülesanne"
 
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "Hilinemine"
 
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Järgmised 7 päeva"
 
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Tulevikus"
 
 #. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
 #, csharp-format
 msgid "Tasks loaded: {0}"
 msgstr "Laaditud ülesandeid: {0}"
 
 #. Show error status
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Viga uue ülesande loomisel"
 
 #. Show successful status
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Ã?lesanne edukalt loodud"
 
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Märkmed..."
 
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Kustuta ülesanne"
 
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_Redigeeri ülesannet"
 
 #. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
 msgid "_Change category"
 msgstr "_Muuda kataloogi"
 
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Ã?lesanne kustutatud"
 
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Ã?lesannete laadimine..."
 
+#: ../src/TaskWindow.cs:1225
 msgid "Not connected."
 msgstr "Pole ühendatud."
 
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Täna, {0}"
 
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Eile, {0}"
 
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} päeva tagasi, {1}"
 
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} päeva tagasi"
 
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Homme, {0}"
 
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "{0} päeva pärast, {1}"
 
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "{0} päeva pärast"
 
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d. MMMM, h:mm tt"
 
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d. MMMM"
 
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d. MMMM yyyy, h:mm tt"
 
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d. MMMM yyyy"
 
-msgid "Sunday"
-msgstr "Pühapäeval"
-
-msgid "Monday"
-msgstr "Esmaspäeval"
-
-msgid "Tuesday"
-msgstr "Teisipäeval"
-
-msgid "Wednesday"
-msgstr "Kolmapäeval"
-
-msgid "Thursday"
-msgstr "Neljapäeval"
-
-msgid "Friday"
-msgstr "Reedel"
-
-msgid "Saturday"
-msgstr "Laupäeval"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+täna\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+homme\\W*$"
-
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "�hendumiseks klõpsa siia"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
 msgid "You are currently connected"
 msgstr "Sa oled praegu ühendatud"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
 msgid "You are currently connected as"
 msgstr "Oled praegu ühendatud kasutajana"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
 msgid "You are not connected"
 msgstr "Sa pole ühendatud"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "\"Remember the Milk\" server ei vasta. Proovi hiljem uuesti."
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Pärast autoriseerimist klõpsa siia"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Määra vaikimisi veebilehitseja ja proovi uuesti"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
 msgid "Processing..."
 msgstr "Töötlemine..."
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
 msgid "Failed, Try Again"
 msgstr "Nurjus, proovi uuesti"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Suur tänu"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Täna"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Homme"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Uus ülesanne..."
+
+#~ msgid "Sunday"
+#~ msgstr "Pühapäeval"
+
+#~ msgid "Monday"
+#~ msgstr "Esmaspäeval"
+
+#~ msgid "Tuesday"
+#~ msgstr "Teisipäeval"
+
+#~ msgid "Wednesday"
+#~ msgstr "Kolmapäeval"
+
+#~ msgid "Thursday"
+#~ msgstr "Neljapäeval"
+
+#~ msgid "Friday"
+#~ msgstr "Reedel"
+
+#~ msgid "Saturday"
+#~ msgstr "Laupäeval"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+täna\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+homme\\W*$"
diff --git a/po/fi.po b/po/fi.po
index 872f046..847250c 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-15 11:20-0600\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\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"
@@ -16,3 +16,506 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: ../data/tasque.desktop.in.h:1
+msgid "Easy quick task management"
+msgstr ""
+
+#: ../data/tasque.desktop.in.h:2
+msgid "Task Manager"
+msgstr ""
+
+#: ../data/tasque.desktop.in.h:3
+msgid "Tasque"
+msgstr ""
+
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+msgid "Tasque Rocks"
+msgstr ""
+
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
+msgid "Copyright © 2008 Novell, Inc."
+msgstr ""
+
+#: ../src/Application.cs:594
+msgid "A Useful Task List"
+msgstr ""
+
+#: ../src/Application.cs:596
+msgid "Tasque Project Homepage"
+msgstr ""
+
+#: ../src/Application.cs:710
+msgid "New Task ..."
+msgstr ""
+
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr ""
+
+#: ../src/Application.cs:732
+msgid "Refresh Tasks ..."
+msgstr ""
+
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
+msgid "All"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
+msgid "Yesterday"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:167
+msgid "Last 7 Days"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:169
+msgid "Last Month"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:171
+msgid "Last Year"
+msgstr ""
+
+#: ../src/NoteDialog.cs:24
+#, csharp-format
+msgid "Notes for: {0:s}"
+msgstr ""
+
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
+msgid "General"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+msgid "Today:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:199
+msgid "Overdue:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:243
+msgid "Task Management System"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:285
+msgid "Task Filtering"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:304
+msgid "Sh_ow completed tasks"
+msgstr ""
+
+#. Categories TreeView
+#: ../src/PreferencesDialog.cs:313
+msgid "Only _show these categories when \"All\" is selected:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:331
+msgid "Category"
+msgstr ""
+
+#: ../src/RemoteControl.cs:150
+msgid "New task created."
+msgstr ""
+
+#. Title for Completed/Checkbox Column
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
+msgid "Completed"
+msgstr ""
+
+#. Title for Priority Column
+#: ../src/TaskTreeView.cs:101
+msgid "Priority"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
+msgid "1"
+msgstr ""
+
+#. High
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
+msgid "2"
+msgstr ""
+
+#. Medium
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
+msgid "3"
+msgstr ""
+
+#. Low
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
+msgid "-"
+msgstr ""
+
+#. Title for Task Name Column
+#: ../src/TaskTreeView.cs:131
+msgid "Task Name"
+msgstr ""
+
+#. Title for Due Date Column
+#: ../src/TaskTreeView.cs:173
+msgid "Due Date"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
+msgid "M/d - "
+msgstr ""
+
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
+msgid "Today"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
+msgid "Tomorrow"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
+msgid "M/d - ddd"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
+msgid "In 1 Week"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
+msgid "No Date"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
+msgid "Choose Date..."
+msgstr ""
+
+#. Title for Notes Column
+#: ../src/TaskTreeView.cs:219
+msgid "Notes"
+msgstr ""
+
+#. Title for Timer Column
+#: ../src/TaskTreeView.cs:236
+msgid "Timer"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:281
+msgid "Task Completed"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:436
+msgid "M/d/yy - ddd"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
+#. The new task entry widget
+#. Clear the entry if it contains the default text
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
+msgid "New task..."
+msgstr ""
+
+#: ../src/TaskWindow.cs:165
+msgid "_Add"
+msgstr ""
+
+#: ../src/TaskWindow.cs:170
+msgid "_Add Task"
+msgstr ""
+
+#: ../src/TaskWindow.cs:257
+msgid "Overdue"
+msgstr ""
+
+#: ../src/TaskWindow.cs:311
+msgid "Next 7 Days"
+msgstr ""
+
+#: ../src/TaskWindow.cs:327
+msgid "Future"
+msgstr ""
+
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
+msgid "_Notes..."
+msgstr ""
+
+#: ../src/TaskWindow.cs:1096
+msgid "_Delete task"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1101
+msgid "_Edit task"
+msgstr ""
+
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+msgid "_Change category"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1162
+msgid "Task deleted"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1204
+msgid "Loading tasks..."
+msgstr ""
+
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
+#, csharp-format
+msgid "Today, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:280
+#, csharp-format
+msgid "Yesterday, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:286
+#, csharp-format
+msgid "{0} days ago, {1}"
+msgstr ""
+
+#: ../src/Utilities.cs:288
+#, csharp-format
+msgid "{0} days ago"
+msgstr ""
+
+#: ../src/Utilities.cs:293
+#, csharp-format
+msgid "Tomorrow, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:299
+#, csharp-format
+msgid "In {0} days, {1}"
+msgstr ""
+
+#: ../src/Utilities.cs:301
+#, csharp-format
+msgid "In {0} days"
+msgstr ""
+
+#: ../src/Utilities.cs:305
+msgid "MMMM d, h:mm tt"
+msgstr ""
+
+#: ../src/Utilities.cs:306
+msgid "MMMM d"
+msgstr ""
+
+#: ../src/Utilities.cs:311
+msgid "MMMM d yyyy, h:mm tt"
+msgstr ""
+
+#: ../src/Utilities.cs:312
+msgid "MMMM d yyyy"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+msgid "today"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:51
+msgid "tomorrow"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 4ce8159..bff5eef 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-06 10:40+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2008-08-06 17:49+0100\n"
 "Last-Translator: Christophe Benz <christophe benz gmail com>\n"
 "Language-Team: GNOME French Team <gnomefr traduc org>\n"
@@ -28,49 +28,83 @@ msgstr "Gestionnaire de tâches"
 msgid "Tasque"
 msgstr "Tasque"
 
-#: ../src/Application.cs:403
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:404
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Un gestionnaire de tâche pratique"
 
-#: ../src/Application.cs:406
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Page Web de Tasque"
 
-#: ../src/Application.cs:458
-msgid "Show Tasks ..."
-msgstr "Afficher les tâches..."
-
-#: ../src/Application.cs:466
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Nouvelle tâche..."
 
-#: ../src/Application.cs:487
-msgid "Refresh Tasks"
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr "Afficher les tâches..."
+
+#: ../src/Application.cs:732
+#, fuzzy
+msgid "Refresh Tasks ..."
 msgstr "Actualiser les tâches"
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Tout"
 
-#: ../src/CompletedTaskGroup.cs:205
-#: ../src/Utilities.cs:283
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Hier"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Les 7 derniers jours"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Le mois dernier"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "L'an dernier"
 
@@ -79,277 +113,449 @@ msgstr "L'an dernier"
 msgid "Notes for: {0:s}"
 msgstr "Notes pour : {0:s}"
 
-#: ../src/PreferencesDialog.cs:107
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Général"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Aujourd'hui"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "En retard"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Système de gestion des tâches"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Filtrage des tâches"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "Afficher les tâches terminées"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "_Afficher seulement ces catégories lorsque « tout » est sélectionné :"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Catégorie"
 
-#: ../src/RemoteControl.cs:109
+#: ../src/RemoteControl.cs:150
 msgid "New task created."
 msgstr "Nouvelle tâche crée."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:82
-#: ../src/TaskWindow.cs:346
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Terminé"
 
 #. Title for Priority Column
-#: ../src/TaskTreeView.cs:99
+#: ../src/TaskTreeView.cs:101
 msgid "Priority"
 msgstr "Priorité"
 
-#: ../src/TaskTreeView.cs:112
-#: ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:584
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:113
-#: ../src/TaskTreeView.cs:357
-#: ../src/TaskTreeView.cs:582
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:354
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
 #. Title for Task Name Column
-#: ../src/TaskTreeView.cs:129
+#: ../src/TaskTreeView.cs:131
 msgid "Task Name"
 msgstr "Nom de la tâche"
 
 #. Title for Due Date Column
-#: ../src/TaskTreeView.cs:171
+#: ../src/TaskTreeView.cs:173
 msgid "Due Date"
 msgstr "Date limite"
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskWindow.cs:279
-#: ../src/Utilities.cs:277
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Aujourd'hui"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskWindow.cs:297
-#: ../src/Utilities.cs:296
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Demain"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:414
-#: ../src/TaskTreeView.cs:683
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Dans une semaine"
 
-#: ../src/TaskTreeView.cs:200
-#: ../src/TaskTreeView.cs:671
-#: ../src/Utilities.cs:309
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Aucune date"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:676
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Choisir une date..."
 
 #. Title for Notes Column
-#: ../src/TaskTreeView.cs:217
+#: ../src/TaskTreeView.cs:219
 msgid "Notes"
 msgstr "Notes"
 
 #. Title for Timer Column
-#: ../src/TaskTreeView.cs:234
+#: ../src/TaskTreeView.cs:236
 msgid "Timer"
 msgstr "Timer"
 
-#: ../src/TaskTreeView.cs:416
+#: ../src/TaskTreeView.cs:281
+#, fuzzy
+msgid "Task Completed"
+msgstr "Terminé"
+
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:152
-#: ../src/TaskWindow.cs:835
-#: ../src/TaskWindow.cs:845
-#: ../src/TaskWindow.cs:856
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nouvelle tâche..."
 
-#: ../src/TaskWindow.cs:167
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Ajouter"
 
-#: ../src/TaskWindow.cs:172
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Ajouter une tâche"
 
-#: ../src/TaskWindow.cs:261
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "En retard"
 
-#: ../src/TaskWindow.cs:315
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "7 prochains jours"
 
-#: ../src/TaskWindow.cs:331
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Futur"
 
-#: ../src/TaskWindow.cs:1024
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Notes..."
 
-#: ../src/TaskWindow.cs:1031
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Supprimer cette tâche"
 
-#: ../src/TaskWindow.cs:1036
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_�diter cette tâche"
 
-#: ../src/TaskWindow.cs:1103
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Catégorie"
+
+#: ../src/TaskWindow.cs:1162
+#, fuzzy
+msgid "Task deleted"
+msgstr "Filtrage des tâches"
+
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Chargement des tâches..."
 
-#: ../src/Utilities.cs:275
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Aujourd'hui, {0}"
 
-#: ../src/Utilities.cs:281
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Hier, {0}"
 
-#: ../src/Utilities.cs:287
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "il y a {0} jours, {1}"
 
-#: ../src/Utilities.cs:289
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "il y a {0} jours"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Demain, {0}"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Dans {0} jours, {1}"
 
-#: ../src/Utilities.cs:302
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Dans {0} jours"
 
-#: ../src/Utilities.cs:306
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:307
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:312
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:313
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:322
-msgid "Sunday"
-msgstr "Dimanche"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Aujourd'hui"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Demain"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nouvelle tâche..."
 
-#: ../src/Utilities.cs:324
-msgid "Monday"
-msgstr "Lundi"
+#~ msgid "Sunday"
+#~ msgstr "Dimanche"
 
-#: ../src/Utilities.cs:326
-msgid "Tuesday"
-msgstr "Mardi"
+#~ msgid "Monday"
+#~ msgstr "Lundi"
 
-#: ../src/Utilities.cs:328
-msgid "Wednesday"
-msgstr "Mercredi"
+#~ msgid "Tuesday"
+#~ msgstr "Mardi"
 
-#: ../src/Utilities.cs:330
-msgid "Thursday"
-msgstr "Jeudi"
+#~ msgid "Wednesday"
+#~ msgstr "Mercredi"
 
-#: ../src/Utilities.cs:332
-msgid "Friday"
-msgstr "Vendredi"
+#~ msgid "Thursday"
+#~ msgstr "Jeudi"
 
-#: ../src/Utilities.cs:334
-msgid "Saturday"
-msgstr "Samedi"
+#~ msgid "Friday"
+#~ msgstr "Vendredi"
 
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:380
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+aujourd'hui\\W*$"
+#~ msgid "Saturday"
+#~ msgstr "Samedi"
 
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:382
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+demain\\W*$"
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+aujourd'hui\\W*$"
 
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+demain\\W*$"
diff --git a/po/gl.po b/po/gl.po
index 1835443..203433a 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,9 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque-master-po-gl-103238\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2010-02-16 19:58+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2010-02-09 14:43+0100\n"
 "Last-Translator: Antón Méixome <meixome mancomun org>\n"
 "Language-Team: Galician <gnome mancomun org>\n"
@@ -96,7 +95,7 @@ msgstr "Actualizar tarefas..."
 msgid "All"
 msgstr "Todas"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:279
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Onte"
 
@@ -224,12 +223,12 @@ msgid "M/d - "
 msgstr "M/d -"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:273
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Hoxe"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:292
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Mañán"
 
@@ -245,7 +244,7 @@ msgid "In 1 Week"
 msgstr "En 1 semana"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:305
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Sen data"
 
@@ -352,96 +351,57 @@ msgstr "Cargando as tarefas..."
 msgid "Not connected."
 msgstr "Non está conectado."
 
-#: ../src/Utilities.cs:271
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Hoxe, {0}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Onte, {0}"
 
-#: ../src/Utilities.cs:283
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "hai {0} días, {1}"
 
-#: ../src/Utilities.cs:285
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "hai {0} días"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Mañá, {0}"
 
-#: ../src/Utilities.cs:296
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "En {0} días, {1}"
 
-#: ../src/Utilities.cs:298
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "En {0} días"
 
-#: ../src/Utilities.cs:302
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d MMMM, h:mm tt"
 
-#: ../src/Utilities.cs:303
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:308
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyy, h:mm tt"
 
-#: ../src/Utilities.cs:309
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:318
-msgid "Sunday"
-msgstr "Domingo"
-
-#: ../src/Utilities.cs:320
-msgid "Monday"
-msgstr "Luns"
-
-#: ../src/Utilities.cs:322
-msgid "Tuesday"
-msgstr "Martes"
-
-#: ../src/Utilities.cs:324
-msgid "Wednesday"
-msgstr "Mércores"
-
-#: ../src/Utilities.cs:326
-msgid "Thursday"
-msgstr "Xoves"
-
-#: ../src/Utilities.cs:328
-msgid "Friday"
-msgstr "Venres"
-
-#: ../src/Utilities.cs:330
-msgid "Saturday"
-msgstr "Sábado"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:376
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+hoxe\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:378
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+mañán\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Prema aquí para conectarse"
@@ -483,3 +443,117 @@ msgstr "Produciuse un fallo, tentando de novo."
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Grazas"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Hoxe"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Mañán"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nova tarefa..."
+
+#~ msgid "Sunday"
+#~ msgstr "Domingo"
+
+#~ msgid "Monday"
+#~ msgstr "Luns"
+
+#~ msgid "Tuesday"
+#~ msgstr "Martes"
+
+#~ msgid "Wednesday"
+#~ msgstr "Mércores"
+
+#~ msgid "Thursday"
+#~ msgstr "Xoves"
+
+#~ msgid "Friday"
+#~ msgstr "Venres"
+
+#~ msgid "Saturday"
+#~ msgstr "Sábado"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+hoxe\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+mañán\\W*$"
diff --git a/po/hu.po b/po/hu.po
index 1222b20..11a9229 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,8 +8,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=tasque&component=general\n";
-"POT-Creation-Date: 2009-09-19 15:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2010-01-22 01:31+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng at gnome dot hu>\n"
 "Language-Team: Hungarian <gnome at fsf dot hu>\n"
@@ -54,7 +54,6 @@ msgstr[1] "{0} feladat holnapra\n"
 
 #. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
 #: ../src/Application.cs:540
-#| msgid "Tasque"
 msgid "Tasque Rocks"
 msgstr "A Tasque király!"
 
@@ -94,7 +93,7 @@ msgstr "Feladatok frissítése�"
 msgid "All"
 msgstr "Ã?sszes"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Tegnap"
 
@@ -141,12 +140,10 @@ msgid "Color Management"
 msgstr "Színkezelés"
 
 #: ../src/PreferencesDialog.cs:171
-#| msgid "Today"
 msgid "Today:"
 msgstr "Ma:"
 
 #: ../src/PreferencesDialog.cs:199
-#| msgid "Overdue"
 msgid "Overdue:"
 msgstr "Lejárt:"
 
@@ -224,12 +221,12 @@ msgid "M/d - "
 msgstr "M d. â?? "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Ma"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Holnap"
 
@@ -245,7 +242,7 @@ msgid "In 1 Week"
 msgstr "Egy héten belül"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Nincs dátum"
 
@@ -337,7 +334,6 @@ msgstr "Feladat s_zerkesztése"
 
 #. TODO Needs translation.
 #: ../src/TaskWindow.cs:1133
-#| msgid "Category"
 msgid "_Change category"
 msgstr "_Kategória módosítása"
 
@@ -350,130 +346,75 @@ msgid "Loading tasks..."
 msgstr "Feladat betöltése�"
 
 #: ../src/TaskWindow.cs:1225
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "Not connected."
 msgstr "Nincs kapcsolat."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Ma, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Tegnap, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} napja, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} napja"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Holnap, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "{0} nap múlva, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "{0} nap múlva"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "yyyy MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "yyyy MMMM d"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Vasárnap"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "HétfÅ?"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Kedd"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Szerda"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Csütörtök"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Péntek"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Szombat"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+ma\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+holnap\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Kattintson a csatlakozáshoz"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected"
 msgstr "Jelenleg csatlakozva van"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected as"
 msgstr "Jelenleg csatlakozva van mint:"
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "You are not connected"
 msgstr "Nincs csatlakozva"
 
@@ -501,3 +442,116 @@ msgstr "Meghiúsult, próbálja újra"
 msgid "Thank You"
 msgstr "Köszönjük"
 
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Ma"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Holnap"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Ã?j feladatâ?¦"
+
+#~ msgid "Sunday"
+#~ msgstr "Vasárnap"
+
+#~ msgid "Monday"
+#~ msgstr "HétfÅ?"
+
+#~ msgid "Tuesday"
+#~ msgstr "Kedd"
+
+#~ msgid "Wednesday"
+#~ msgstr "Szerda"
+
+#~ msgid "Thursday"
+#~ msgstr "Csütörtök"
+
+#~ msgid "Friday"
+#~ msgstr "Péntek"
+
+#~ msgid "Saturday"
+#~ msgstr "Szombat"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+ma\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+holnap\\W*$"
diff --git a/po/id.po b/po/id.po
index 48d9236..77c2414 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,9 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque.HEAD\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-09-19 15:24+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-04-02 13:54+0700\n"
 "Last-Translator: Imam Musthaqim <userindesign gmail com>\n"
 "Language-Team: INDONESIA <userindesign gmail com>\n"
@@ -54,7 +53,6 @@ msgstr[1] ""
 #. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
 #: ../src/Application.cs:540
 #, fuzzy
-#| msgid "Tasque"
 msgid "Tasque Rocks"
 msgstr "Tasque"
 
@@ -94,7 +92,7 @@ msgstr "Perbarui Tugas ..."
 msgid "All"
 msgstr "Semua"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Kemarin"
 
@@ -142,13 +140,11 @@ msgstr ""
 
 #: ../src/PreferencesDialog.cs:171
 #, fuzzy
-#| msgid "Today"
 msgid "Today:"
 msgstr "Hari Ini"
 
 #: ../src/PreferencesDialog.cs:199
 #, fuzzy
-#| msgid "Overdue"
 msgid "Overdue:"
 msgstr "Terlambat"
 
@@ -226,12 +222,12 @@ msgid "M/d - "
 msgstr "B/t -"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Hari Ini"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Besok"
 
@@ -247,7 +243,7 @@ msgid "In 1 Week"
 msgstr "Dalam 1 Minggu"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Tanpa Tanggal"
 
@@ -340,7 +336,6 @@ msgstr "_Edit tugas"
 #. TODO Needs translation.
 #: ../src/TaskWindow.cs:1133
 #, fuzzy
-#| msgid "Category"
 msgid "_Change category"
 msgstr "Kategori"
 
@@ -354,106 +349,63 @@ msgstr "Memuat tugas..."
 
 #: ../src/TaskWindow.cs:1225
 #, fuzzy
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "Not connected."
 msgstr ""
 "\n"
 "\n"
 "Anda tidak terhubung"
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Hari ini, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Kemarin, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} hari yang lalu, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} hari yang lau"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Besok, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Dalam {0} hari, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Dalam {0} hari"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "BBBB t, j:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "BBBB t"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "BBBB t tttt, j:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "BBB t tttt"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Minggu"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Senin"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Selasa"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Rabu"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Kamis"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Jumat"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sabtu"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klik Di Sini untuk Menghubungkan"
@@ -461,10 +413,6 @@ msgstr "Klik Di Sini untuk Menghubungkan"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
 #, fuzzy
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected"
 msgstr ""
 "\n"
@@ -474,10 +422,6 @@ msgstr ""
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
 #, fuzzy
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are currently connected"
 msgid "You are currently connected as"
 msgstr ""
 "\n"
@@ -486,10 +430,6 @@ msgstr ""
 
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
 #, fuzzy
-#| msgid ""
-#| "\n"
-#| "\n"
-#| "You are not connected"
 msgid "You are not connected"
 msgstr ""
 "\n"
@@ -519,3 +459,117 @@ msgstr ""
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Terima Kasih"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Hari Ini"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Besok"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Tugas baru..."
+
+#~ msgid "Sunday"
+#~ msgstr "Minggu"
+
+#~ msgid "Monday"
+#~ msgstr "Senin"
+
+#~ msgid "Tuesday"
+#~ msgstr "Selasa"
+
+#~ msgid "Wednesday"
+#~ msgstr "Rabu"
+
+#~ msgid "Thursday"
+#~ msgstr "Kamis"
+
+#~ msgid "Friday"
+#~ msgstr "Jumat"
+
+#~ msgid "Saturday"
+#~ msgstr "Sabtu"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/po/it.po b/po/it.po
index a604f85..6940793 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-03-07 16:43+0100\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-02-23 18:49+0100\n"
 "Last-Translator: Milo Casagrande <milo ubuntu com>\n"
 "Language-Team: Italian <tp lists linux it>\n"
@@ -27,57 +27,84 @@ msgstr "Gestore attività"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Milo Casagrande <milo ubuntu com>, 2008-2009"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Un utile elenco delle attività"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Sito web di Tasque"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Nuova attività..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Mostra attività..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "Aggiorna attività..."
 
 # (ndt) attenzione: è usato anche in tomboy, se viene modificato qui
 # va modificato anche lì!
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Tutte"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Ieri"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Ultimi sette giorni"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Ultimo mese"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Ultimo anno"
 
@@ -95,30 +122,53 @@ msgstr "_File"
 msgid "_Window"
 msgstr "_Finestra"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Generale"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Oggi"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "Scaduto"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Sistema gestione attività"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Filtraggio attività"
 
 # (ndt) opzione
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "M_ostrare le attività completate"
 
 # (ndt) opzione
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Mo_strare solo queste categorie quanto è selezionato «Tutte»:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Categoria"
 
@@ -127,7 +177,7 @@ msgid "New task created."
 msgstr "Nuova attività creata."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Completate"
 
@@ -137,19 +187,19 @@ msgid "Priority"
 msgstr "Priorità"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -169,38 +219,38 @@ msgid "Due Date"
 msgstr "Previsto per"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M -"
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Oggi"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Domani"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "In una settimana"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Nessuna data"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Scelta data..."
 
@@ -219,202 +269,311 @@ msgstr "Orologio"
 msgid "Task Completed"
 msgstr "Attività completata"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "Azione annullata"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "Completamento attività in: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nuova attività..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "A_ggiungi"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Aggiungi attività"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "Scaduto"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Prossimi 7 giorni"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Futuro"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "Errore nel creare una nuova attività"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Attività creata con successo"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Note..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_Elimina attività"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_Modifica attività"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Categoria"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Attività eliminata"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Caricamento attività..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"Non si è connessi"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Oggi, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Ieri, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} giorni fa, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} giorni fa"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Domani, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "In {0} giorni, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "In {0} giorni"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d MMMM, H.mm"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, H.mm"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "domenica"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "lunedì"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "martedì"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "mercoledì"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "giovedì"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "venerdì"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "sabato"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+oggi\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+domani\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Fare clic qui per connettersi"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"Connessione avvenuta"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"Connessione avvenuta"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "Non si è connessi"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Il servizio «Remember the Milk» non risponde. Riprovare più tardi."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "Fare clic qui dopo l'autorizzazione"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "Impostare il browser predefinito e riprovare"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Grazie"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"Connessione avvenuta"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Oggi"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Domani"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nuova attività..."
+
+#~ msgid "Sunday"
+#~ msgstr "domenica"
+
+#~ msgid "Monday"
+#~ msgstr "lunedì"
+
+#~ msgid "Tuesday"
+#~ msgstr "martedì"
+
+#~ msgid "Wednesday"
+#~ msgstr "mercoledì"
+
+#~ msgid "Thursday"
+#~ msgstr "giovedì"
+
+#~ msgid "Friday"
+#~ msgstr "venerdì"
+
+#~ msgid "Saturday"
+#~ msgstr "sabato"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+oggi\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+domani\\W*$"
diff --git a/po/ja.po b/po/ja.po
index 5e63e98..c70bf28 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque trunk\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-28 20:33+0900\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2008-12-28 20:32+0900\n"
 "Last-Translator:  Takeshi AIHANA <takeshi aihana gmail com>\n"
 "Language-Team: Japanese <takeshi aihana gmail com>\n"
@@ -27,55 +27,82 @@ msgstr "ã?¿ã?¹ã?¯ã?»ã??ã??ã?¼ã?¸ã?£"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:488
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "�� � <takeshi aihana gmail com>"
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:498
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "æ??å¤?ã?¨ä¾¿å?©ã?ªã?¿ã?¹ã?¯ã?®ä¸?覧ã?§ã??ã??"
 
-#: ../src/Application.cs:500
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque ã?®ã??ã?­ã?¸ã?§ã?¯ã??ã?»ã??ã?¼ã?¸"
 
-#: ../src/Application.cs:614
-msgid "Show Tasks ..."
-msgstr "����表示..."
-
-#: ../src/Application.cs:621
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "æ?°ã??ã??ã?¿ã?¹ã?¯..."
 
-#: ../src/Application.cs:636
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr "����表示..."
+
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "������..."
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "��"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "��"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "ã??ã?®ï¼?é?±é??"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "ã??ã?®ï¼?ã?¶æ??"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "ã??ã?®ï¼?å¹´"
 
@@ -92,28 +119,51 @@ msgstr "ã??ã?¡ã?¤ã?«(_F)"
 msgid "_Window"
 msgstr "ã?¦ã?£ã?³ã??ã?¦(_W)"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "��"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "ä»?æ?¥"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "æ??é??å??ã??"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "ã?¿ã?¹ã?¯ç®¡ç??ã?·ã?¹ã??ã? "
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "ã?¿ã?¹ã?¯ã?®ã??ã?£ã?«ã?¿ã?ªã?³ã?°"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "å?¨ã?¦ã?®ã?¿ã?¹ã?¯ã??表示ã??ã??(_O)"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "\"å?¨ã?¦\" ã??é?¸æ??ã??ã??ã??次ã?®ã?«ã??ã?´ã?ªã?®ã?¿è¡¨ç¤ºã??ã??(_S):"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "ã?«ã??ã?´ã?ª"
 
@@ -122,7 +172,7 @@ msgid "New task created."
 msgstr "æ?°ã??ã??ã?¿ã?¹ã?¯ã??ç??æ??ã??ã?¾ã??ã??"
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "��"
 
@@ -132,19 +182,19 @@ msgid "Priority"
 msgstr "å?ªå??度"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -164,38 +214,38 @@ msgid "Due Date"
 msgstr "æ??æ?¥"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "M/d - "
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "ä»?æ?¥"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "æ??æ?¥"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "M/d - dddæ??æ?¥"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "ï¼?é?±é??以å??"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "æ??æ?¥ã?ªã??"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "æ?¥ä»?ã?®é?¸æ??..."
 
@@ -213,203 +263,312 @@ msgstr "ã?¿ã?¤ã??ã?¼"
 msgid "Task Completed"
 msgstr "å®?äº?ã??ã??ã?¿ã?¹ã?¯"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "yy/M/d - dddæ??æ?¥"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "ã?¢ã?¯ã?·ã?§ã?³ã??ã?­ã?£ã?³ã?»ã?«ã??ã?¾ã??ã??"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "{0} ã?§å®?äº?ã??ã??ã?¿ã?¹ã?¯"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "æ?°ã??ã??ã?¿ã?¹ã?¯..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "追�(_A)"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "����追�(_A)"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "æ??é??å??ã??"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "次ã?®ï¼?é?±é??"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "å°?æ?¥"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "æ?°ã??ã??ã?¿ã?¹ã?¯ã??ç??æ??ã??ã??é??ã?«ã?¨ã?©ã?¼ã??ç?ºç??ã??ã?¾ã??ã??"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "ã?¿ã?¹ã?¯ã?®ç??æ??ã??å®?äº?ã??ã?¾ã??ã??"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "ã?¡ã?¢(_N)..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "ã?¿ã?¹ã?¯ã?®å??é?¤(_D)"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "ã?¿ã?¹ã?¯ã?®ç·¨é??(_E)"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "ã?«ã??ã?´ã?ª"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "ã?¿ã?¹ã?¯ã??å??é?¤ã??ã?¾ã??ã??"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "����読�込�中..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"æ?¥ç¶?ã??ã?¦ã??ã?¾ã??ã??"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "���{0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "���{0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0}æ?¥å??ã?®{1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0}æ?¥å??"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "æ??æ?¥ã?®{0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "{0}æ?¥ä»¥å??ã?®{1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "{0}æ?¥ä»¥å??"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "MMMM d yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "MMMM d yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "æ?¥æ??æ?¥"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "æ??æ??æ?¥"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "ç?«æ??æ?¥"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "æ°´æ??æ?¥"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "æ?¨æ??æ?¥"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "é??æ??æ?¥"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "å??æ??æ?¥"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+ä»?æ?¥\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+æ??æ?¥\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "ã??ã??ã??ã?¯ã?ªã??ã?¯ã??ã?¦æ?¥ç¶?ã??ã?¦ä¸?ã??ã??"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"ç?¾å?¨æ?¥ç¶?中ã?§ã??"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"ç?¾å?¨æ?¥ç¶?中ã?§ã??"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "æ?¥ç¶?ã??ã?¦ã??ã?¾ã??ã??"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr ""
 "Remember the Milk ã??ã??å¿?ç­?ã??ã??ã??ã?¾ã??ã?? (ã??ã?¨ã?§ã??ã??ä¸?度試ã??ã?¦ã?¿ã?¦ä¸?ã??ã??)"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "èª?証ã??å®?äº?ã??ã??ã??ã??ã??ã??ã?¯ã?ªã??ã?¯ã??ã?¦ä¸?ã??ã??"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "ã??ã??ã?©ã?«ã??ã?®ã??ã?©ã?¦ã?¶ã??æ??å®?ã??ã?¦ã??ã??試ã??ã?¦ä¸?ã??ã??"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "�����"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"ç?¾å?¨æ?¥ç¶?中ã?§ã??"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "ä»?æ?¥"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "æ??æ?¥"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "æ?°ã??ã??ã?¿ã?¹ã?¯..."
+
+#~ msgid "Sunday"
+#~ msgstr "æ?¥æ??æ?¥"
+
+#~ msgid "Monday"
+#~ msgstr "æ??æ??æ?¥"
+
+#~ msgid "Tuesday"
+#~ msgstr "ç?«æ??æ?¥"
+
+#~ msgid "Wednesday"
+#~ msgstr "æ°´æ??æ?¥"
+
+#~ msgid "Thursday"
+#~ msgstr "æ?¨æ??æ?¥"
+
+#~ msgid "Friday"
+#~ msgstr "é??æ??æ?¥"
+
+#~ msgid "Saturday"
+#~ msgstr "å??æ??æ?¥"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+ä»?æ?¥\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+æ??æ?¥\\W*$"
diff --git a/po/nb.po b/po/nb.po
index 9d68443..ee2cc32 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque 0.x\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-14 11:37+0100\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2010-03-14 11:43+0100\n"
 "Last-Translator: Espen Stefansen <espens svn gnome org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb lister ping uio no>\n"
@@ -90,7 +90,7 @@ msgstr "Oppdater oppgaver..."
 msgid "All"
 msgstr "Alle"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:279
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "I går"
 
@@ -218,12 +218,12 @@ msgid "M/d - "
 msgstr ""
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:273
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "I dag"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:292
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "I morgen"
 
@@ -239,7 +239,7 @@ msgid "In 1 Week"
 msgstr ""
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:305
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Ingen dato"
 
@@ -346,98 +346,57 @@ msgstr "Laster oppgaver..."
 msgid "Not connected."
 msgstr "Ikke tilkoblet."
 
-#: ../src/Utilities.cs:271
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "I dag, {0}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr ""
 
-#: ../src/Utilities.cs:283
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr ""
 
-#: ../src/Utilities.cs:285
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr ""
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr ""
 
-#: ../src/Utilities.cs:296
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr ""
 
-#: ../src/Utilities.cs:298
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr ""
 
-#: ../src/Utilities.cs:302
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr ""
 
-#: ../src/Utilities.cs:303
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr ""
 
-#: ../src/Utilities.cs:308
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr ""
 
-#: ../src/Utilities.cs:309
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr ""
 
-#: ../src/Utilities.cs:318
-msgid "Sunday"
-msgstr "Søndag"
-
-#: ../src/Utilities.cs:320
-msgid "Monday"
-msgstr "Mandag"
-
-#: ../src/Utilities.cs:322
-msgid "Tuesday"
-msgstr "Tirsdag"
-
-#: ../src/Utilities.cs:324
-msgid "Wednesday"
-msgstr "Onsdag"
-
-#: ../src/Utilities.cs:326
-msgid "Thursday"
-msgstr "Torsdag"
-
-#: ../src/Utilities.cs:328
-msgid "Friday"
-msgstr "Fredag"
-
-#: ../src/Utilities.cs:330
-msgid "Saturday"
-msgstr "Lørdag"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:376
-#, fuzzy
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+) i dag$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:378
-#, fuzzy
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+) i morgen$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klikk her for å koble til"
@@ -479,3 +438,119 @@ msgstr "Feilet. Prøv igjen"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Takk"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "I dag"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "I morgen"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Ny oppgave ..."
+
+#~ msgid "Sunday"
+#~ msgstr "Søndag"
+
+#~ msgid "Monday"
+#~ msgstr "Mandag"
+
+#~ msgid "Tuesday"
+#~ msgstr "Tirsdag"
+
+#~ msgid "Wednesday"
+#~ msgstr "Onsdag"
+
+#~ msgid "Thursday"
+#~ msgstr "Torsdag"
+
+#~ msgid "Friday"
+#~ msgstr "Fredag"
+
+#~ msgid "Saturday"
+#~ msgstr "Lørdag"
+
+#, fuzzy
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+) i dag$"
+
+#, fuzzy
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+) i morgen$"
diff --git a/po/nds.po b/po/nds.po
index 9a477e8..b5b9588 100644
--- a/po/nds.po
+++ b/po/nds.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=tasque&component=general\n";
-"POT-Creation-Date: 2009-11-02 10:30+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-11-27 00:49+0100\n"
 "Last-Translator: Nils-Christoph Fiedler <fiedler medienkompanie de>\n"
 "Language-Team: Low German <nds-lowgerman lists sourceforge net>\n"
@@ -86,13 +86,11 @@ msgstr "Opgaven opwiesen ..."
 msgid "Refresh Tasks ..."
 msgstr "Opgaven opfrischen ..."
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:174
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Allens"
 
-#: ../src/CompletedTaskGroup.cs:165
-#: ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Güstern"
 
@@ -172,8 +170,7 @@ msgid "New task created."
 msgstr "Neje Opgav erstellt"
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84
-#: ../src/TaskWindow.cs:342
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Fertig"
 
@@ -182,29 +179,25 @@ msgstr "Fertig"
 msgid "Priority"
 msgstr "Priorität"
 
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
 #: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
 #: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:116
-#: ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
 #: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:117
-#: ../src/TaskTreeView.cs:369
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
@@ -218,52 +211,39 @@ msgstr "Opgavnaam"
 msgid "Due Date"
 msgstr "bit Dag"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "M/d -"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275
-#: ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Vandag"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293
-#: ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Morn"
 
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
 #: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "M/d - ddd"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "In 1 Week"
 
-#: ../src/TaskTreeView.cs:202
-#: ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Keen Dag"
 
-#: ../src/TaskTreeView.cs:203
-#: ../src/TaskTreeView.cs:704
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Dag wählen..."
 
@@ -296,11 +276,8 @@ msgstr "Düsse Opgav avsluten in: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149
-#: ../src/TaskWindow.cs:837
-#: ../src/TaskWindow.cs:893
-#: ../src/TaskWindow.cs:903
-#: ../src/TaskWindow.cs:914
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Neje Opgav..."
 
@@ -325,8 +302,7 @@ msgid "Future"
 msgstr "Tokunft"
 
 #. Translators: This status shows the date and time when the task list was last refreshed
-#: ../src/TaskWindow.cs:474
-#: ../src/TaskWindow.cs:1213
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
 #, csharp-format
 msgid "Tasks loaded: {0}"
 msgstr "Opgaven geladen: {0}"
@@ -370,96 +346,57 @@ msgstr "Lade Opgaven..."
 msgid "Not connected."
 msgstr "Nich verbunnen."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Vandag, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Güstern, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} Dage her, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} Dage her"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Moorn, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "In {0} Dagen, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "In {0} Dagen"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "MMMM d yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "MMMM d yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Sünndag"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Maandag"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Diensdag"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Middeweeken"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Donnersdag"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Friedag"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sünnavend"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klick hier, um dik to verbinnen"
@@ -502,3 +439,116 @@ msgstr "So güng dat nich. Versöök dat nohmol!"
 msgid "Thank You"
 msgstr "Danke"
 
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Vandag"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Morn"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Neje Opgav..."
+
+#~ msgid "Sunday"
+#~ msgstr "Sünndag"
+
+#~ msgid "Monday"
+#~ msgstr "Maandag"
+
+#~ msgid "Tuesday"
+#~ msgstr "Diensdag"
+
+#~ msgid "Wednesday"
+#~ msgstr "Middeweeken"
+
+#~ msgid "Thursday"
+#~ msgstr "Donnersdag"
+
+#~ msgid "Friday"
+#~ msgstr "Friedag"
+
+#~ msgid "Saturday"
+#~ msgstr "Sünnavend"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/po/nl.po b/po/nl.po
index 58f8d28..e77f351 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,35 +6,523 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque-svn-20080229 \n"
-"Report-Msgid-Bugs-To: http://code.google.com/p/tasky/issues/list \n"
-"POT-Creation-Date: 2008-02-29 22:48+0100\n"
-"PO-Revision-Date: 2008-02-29 22:52+0100\n" 
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
+"PO-Revision-Date: 2008-02-29 22:52+0100\n"
 "Last-Translator: Daniel van Eeden <gnomenl myname nl>\n"
 "Language-Team: Dutch <vertaling vrijschrift org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/Application.cs:378
+#: ../data/tasque.desktop.in.h:1
+msgid "Easy quick task management"
+msgstr ""
+
+#: ../data/tasque.desktop.in.h:2
+msgid "Task Manager"
+msgstr ""
+
+#: ../data/tasque.desktop.in.h:3
+msgid "Tasque"
+msgstr ""
+
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+msgid "Tasque Rocks"
+msgstr ""
+
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: src/Application.cs:379
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Een bruikbare takenlijst"
 
-#: src/Application.cs:381
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque Project Webstek"
 
-#: src/Application.cs:431
+#: ../src/Application.cs:710
+msgid "New Task ..."
+msgstr "Nieuwe Taak ..."
+
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "Taken tonen ..."
 
-#: src/Application.cs:439
-msgid "New Task ..."
+#: ../src/Application.cs:732
+#, fuzzy
+msgid "Refresh Tasks ..."
+msgstr "Taken vernieuwen"
+
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
+msgid "All"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
+msgid "Yesterday"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:167
+msgid "Last 7 Days"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:169
+msgid "Last Month"
+msgstr ""
+
+#: ../src/CompletedTaskGroup.cs:171
+msgid "Last Year"
+msgstr ""
+
+#: ../src/NoteDialog.cs:24
+#, csharp-format
+msgid "Notes for: {0:s}"
+msgstr ""
+
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
+msgid "General"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+msgid "Today:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:199
+msgid "Overdue:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:243
+msgid "Task Management System"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:285
+msgid "Task Filtering"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:304
+msgid "Sh_ow completed tasks"
+msgstr ""
+
+#. Categories TreeView
+#: ../src/PreferencesDialog.cs:313
+msgid "Only _show these categories when \"All\" is selected:"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:331
+msgid "Category"
+msgstr ""
+
+#: ../src/RemoteControl.cs:150
+#, fuzzy
+msgid "New task created."
 msgstr "Nieuwe Taak ..."
 
-#: src/Application.cs:460
-msgid "Refresh Tasks"
-msgstr "Taken vernieuwen"
+#. Title for Completed/Checkbox Column
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
+msgid "Completed"
+msgstr ""
+
+#. Title for Priority Column
+#: ../src/TaskTreeView.cs:101
+msgid "Priority"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
+msgid "1"
+msgstr ""
+
+#. High
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
+msgid "2"
+msgstr ""
+
+#. Medium
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
+msgid "3"
+msgstr ""
+
+#. Low
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
+msgid "-"
+msgstr ""
+
+#. Title for Task Name Column
+#: ../src/TaskTreeView.cs:131
+msgid "Task Name"
+msgstr ""
+
+#. Title for Due Date Column
+#: ../src/TaskTreeView.cs:173
+msgid "Due Date"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
+msgid "M/d - "
+msgstr ""
+
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
+msgid "Today"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
+msgid "Tomorrow"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
+msgid "M/d - ddd"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
+msgid "In 1 Week"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
+msgid "No Date"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
+msgid "Choose Date..."
+msgstr ""
+
+#. Title for Notes Column
+#: ../src/TaskTreeView.cs:219
+msgid "Notes"
+msgstr ""
+
+#. Title for Timer Column
+#: ../src/TaskTreeView.cs:236
+msgid "Timer"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:281
+msgid "Task Completed"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:436
+msgid "M/d/yy - ddd"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
+#. The new task entry widget
+#. Clear the entry if it contains the default text
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
+#, fuzzy
+msgid "New task..."
+msgstr "Nieuwe Taak ..."
+
+#: ../src/TaskWindow.cs:165
+msgid "_Add"
+msgstr ""
+
+#: ../src/TaskWindow.cs:170
+msgid "_Add Task"
+msgstr ""
+
+#: ../src/TaskWindow.cs:257
+msgid "Overdue"
+msgstr ""
+
+#: ../src/TaskWindow.cs:311
+msgid "Next 7 Days"
+msgstr ""
+
+#: ../src/TaskWindow.cs:327
+msgid "Future"
+msgstr ""
+
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
+msgid "_Notes..."
+msgstr ""
+
+#: ../src/TaskWindow.cs:1096
+msgid "_Delete task"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1101
+msgid "_Edit task"
+msgstr ""
+
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+msgid "_Change category"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1162
+msgid "Task deleted"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1204
+#, fuzzy
+msgid "Loading tasks..."
+msgstr "Taken tonen ..."
+
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
+#, csharp-format
+msgid "Today, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:280
+#, csharp-format
+msgid "Yesterday, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:286
+#, csharp-format
+msgid "{0} days ago, {1}"
+msgstr ""
+
+#: ../src/Utilities.cs:288
+#, csharp-format
+msgid "{0} days ago"
+msgstr ""
+
+#: ../src/Utilities.cs:293
+#, csharp-format
+msgid "Tomorrow, {0}"
+msgstr ""
+
+#: ../src/Utilities.cs:299
+#, csharp-format
+msgid "In {0} days, {1}"
+msgstr ""
+
+#: ../src/Utilities.cs:301
+#, csharp-format
+msgid "In {0} days"
+msgstr ""
+
+#: ../src/Utilities.cs:305
+msgid "MMMM d, h:mm tt"
+msgstr ""
+
+#: ../src/Utilities.cs:306
+msgid "MMMM d"
+msgstr ""
+
+#: ../src/Utilities.cs:311
+msgid "MMMM d yyyy, h:mm tt"
+msgstr ""
+
+#: ../src/Utilities.cs:312
+msgid "MMMM d yyyy"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+msgid "today"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:51
+msgid "tomorrow"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nieuwe Taak ..."
diff --git a/po/pl.po b/po/pl.po
index 6f01b3b..4b75edb 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,14 +8,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-14 13:39+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-09-14 13:42+0100\n"
 "Last-Translator: Tomasz Dominikowski <dominikowski gmail com>\n"
 "Language-Team: Polish <gnomepl aviary pl>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\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"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
 "X-Poedit-Language: Polish\n"
 "X-Poedit-Country: POLAND\n"
 "X-Poedit-SourceCharset: utf-8\n"
@@ -32,59 +33,87 @@ msgstr "Menedżer zadaÅ?"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr ""
 "Aviary.pl <gnomepl aviary pl>, 2008, 2009\n"
 "Piotr Makowski <pmakowski aviary pl>, 2008"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "Użyteczna lista zadaÅ?"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Strona domowa projektu Tasque"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Nowe zadanie..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "WyÅ?wietl zadania..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "OdÅ?wież zadania..."
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Wszystkie"
 
-#: ../src/CompletedTaskGroup.cs:205
-#: ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Wczoraj"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Ostatnie 7 dni"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Ostatni miesiÄ?c"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Ostatni rok"
 
@@ -101,28 +130,52 @@ msgstr "_Plik"
 msgid "_Window"
 msgstr "_Okno"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Ogólne"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Dzisiaj"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "ZalegÅ?e"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "System zarzÄ?dzania zadaniami"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Filtrowanie zadaÅ?"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "WyÅ?wietlanie _ukoÅ?czonych zadaÅ?"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
-msgstr "_WyÅ?wietlanie poniższych kategorii tylko, gdy \"Wszystkie\" jest wybrane:"
+msgstr ""
+"_WyÅ?wietlanie poniższych kategorii tylko, gdy \"Wszystkie\" jest wybrane:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategoria"
 
@@ -131,8 +184,7 @@ msgid "New task created."
 msgstr "Utworzono nowe zadanie."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84
-#: ../src/TaskWindow.cs:342
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "UkoÅ?czone"
 
@@ -141,29 +193,25 @@ msgstr "UkoÅ?czone"
 msgid "Priority"
 msgstr "Priorytet"
 
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:116
-#: ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:117
-#: ../src/TaskTreeView.cs:369
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
@@ -177,52 +225,39 @@ msgstr "Nazwa zadania"
 msgid "Due Date"
 msgstr "Termin wykonania"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683
-#: ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:275
-#: ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Dzisiaj"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:293
-#: ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Jutro"
 
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "ddd, d/M"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "W ciÄ?gu tygodnia"
 
-#: ../src/TaskTreeView.cs:202
-#: ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Brak daty"
 
-#: ../src/TaskTreeView.cs:203
-#: ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Wybierz datÄ?..."
 
@@ -240,34 +275,31 @@ msgstr "Czasomierz"
 msgid "Task Completed"
 msgstr "Zadanie ukoÅ?czone"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "ddd, d/M/yy"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "DziaÅ?anie anulowane"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "KoÅ?czenie zadania w: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149
-#: ../src/TaskWindow.cs:835
-#: ../src/TaskWindow.cs:891
-#: ../src/TaskWindow.cs:901
-#: ../src/TaskWindow.cs:912
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nowe zadanie..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Dodaj"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Dodaj zadanie"
 
@@ -283,163 +315,271 @@ msgstr "NastÄ?pne 7 dni"
 msgid "Future"
 msgstr "PrzyszÅ?oÅ?Ä?"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:799
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "BÅ?Ä?d podczas tworzenia nowego zadania"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:803
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "Poprawnie utworzono zadanie"
 
-#: ../src/TaskWindow.cs:1080
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Notatki..."
 
-#: ../src/TaskWindow.cs:1087
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_UsuÅ? zadanie"
 
-#: ../src/TaskWindow.cs:1092
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "Mo_dyfikuj zadanie"
 
-#: ../src/TaskWindow.cs:1120
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Kategoria"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "Zadanie usuniÄ?te"
 
-#: ../src/TaskWindow.cs:1162
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Wczytywanie zadaÅ?..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"Brak poÅ?Ä?czenia"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Dzisiaj, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Wczoraj, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} dni temu, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} dni temu"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Jutro, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "W ciÄ?gu {0} dni, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "W ciÄ?gu {0} dni"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d MMMM, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Niedziela"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "PoniedziaÅ?ek"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Wtorek"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Å?roda"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Czwartek"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "PiÄ?tek"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sobota"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+dzisiaj\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+jutr\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "ProszÄ? kliknÄ?Ä? tutaj, aby siÄ? poÅ?Ä?czyÄ?"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"PoÅ?Ä?czenie dostÄ?pne"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"PoÅ?Ä?czenie dostÄ?pne"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "Brak poÅ?Ä?czenia"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk nie odpowiada. ProszÄ? spróbowaÄ? później."
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "ProszÄ? kliknÄ?Ä? tutaj po uwierzytelnieniu"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "ProszÄ? ustawiÄ? domyÅ?lnÄ? przeglÄ?darkÄ? i spróbowaÄ? ponownie"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "DziÄ?kujemy"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"PoÅ?Ä?czenie dostÄ?pne"
 
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Dzisiaj"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Jutro"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nowe zadanie..."
+
+#~ msgid "Sunday"
+#~ msgstr "Niedziela"
+
+#~ msgid "Monday"
+#~ msgstr "PoniedziaÅ?ek"
+
+#~ msgid "Tuesday"
+#~ msgstr "Wtorek"
+
+#~ msgid "Wednesday"
+#~ msgstr "Å?roda"
+
+#~ msgid "Thursday"
+#~ msgstr "Czwartek"
+
+#~ msgid "Friday"
+#~ msgstr "PiÄ?tek"
+
+#~ msgid "Saturday"
+#~ msgstr "Sobota"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+dzisiaj\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+jutr\\W*$"
diff --git a/po/pt.po b/po/pt.po
index 39d382b..3e6857c 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-05 16:36+0100\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-10-03 21:17+0000\n"
 "Last-Translator: António Lima <amrlima gmail com>\n"
 "Language-Team: Portuguese <gnome_pt yahoogroups com>\n"
@@ -89,7 +89,7 @@ msgstr "Actualizar Tarefas..."
 msgid "All"
 msgstr "Todas"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Ontem"
 
@@ -218,12 +218,12 @@ msgid "M/d - "
 msgstr "M/d - "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Hoje"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Amanhã"
 
@@ -239,7 +239,7 @@ msgid "In 1 Week"
 msgstr "Daqui a 1 Semana"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Sem Data"
 
@@ -346,96 +346,57 @@ msgstr "A carregar tarefas..."
 msgid "Not connected."
 msgstr "Não está ligado."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Hoje, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Ontem, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} dias atrás, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} dias atrás"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Amanhã, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Em {0} dias, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Em {0} dias"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "MMMM d aaaa, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "MMMM d aaaa"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Domingo"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Segunda-Feira"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Terça-Feira"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Quarta-Feira"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Quinta-Feira"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Sexta-Feira"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sábado"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+hoje\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+amanhã\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Clique Aqui para Ligar"
@@ -477,3 +438,117 @@ msgstr "Falhou, tente novamente"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Obrigado"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Hoje"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Amanhã"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nova tarefa..."
+
+#~ msgid "Sunday"
+#~ msgstr "Domingo"
+
+#~ msgid "Monday"
+#~ msgstr "Segunda-Feira"
+
+#~ msgid "Tuesday"
+#~ msgstr "Terça-Feira"
+
+#~ msgid "Wednesday"
+#~ msgstr "Quarta-Feira"
+
+#~ msgid "Thursday"
+#~ msgstr "Quinta-Feira"
+
+#~ msgid "Friday"
+#~ msgstr "Sexta-Feira"
+
+#~ msgid "Saturday"
+#~ msgstr "Sábado"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+hoje\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+amanhã\\W*$"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 362041b..048ef55 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-12 10:16-0300\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-12-31 14:49-0300\n"
 "Last-Translator: Antonio Fernandes C. Neto <fernandes pelivre org>\n"
 "Language-Team: Brazilian Portuguese <gnome-l10n-br listas cipsga org br>\n"
@@ -100,7 +100,7 @@ msgstr "Atualizar tarefas..."
 msgid "All"
 msgstr "Todas"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Ontem"
 
@@ -228,12 +228,12 @@ msgid "M/d - "
 msgstr "d/M - "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Hoje"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Amanhã"
 
@@ -249,7 +249,7 @@ msgid "In 1 Week"
 msgstr "Em 1 semana"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Sem data"
 
@@ -356,96 +356,57 @@ msgstr "Carregando tarefas..."
 msgid "Not connected."
 msgstr "Não conectado."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Hoje, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Ontem, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} dias atrás, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} dias atrás"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Amanhã, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Em {0} dias, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Em {0} dias"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "Domingo"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "Segunda"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "Terça"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "Quarta"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Quinta"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "Sexta"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "Sábado"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+hoje\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+amanhã\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Clique aqui para conectar"
@@ -488,5 +449,119 @@ msgstr "Falhou, tente novamente"
 msgid "Thank You"
 msgstr "Obrigado"
 
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Hoje"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Amanhã"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nova tarefa..."
+
+#~ msgid "Sunday"
+#~ msgstr "Domingo"
+
+#~ msgid "Monday"
+#~ msgstr "Segunda"
+
+#~ msgid "Tuesday"
+#~ msgstr "Terça"
+
+#~ msgid "Wednesday"
+#~ msgstr "Quarta"
+
+#~ msgid "Thursday"
+#~ msgstr "Quinta"
+
+#~ msgid "Friday"
+#~ msgstr "Sexta"
+
+#~ msgid "Saturday"
+#~ msgstr "Sábado"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+hoje\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+amanhã\\W*$"
+
 #~ msgid "Reloading tasks..."
 #~ msgstr "Atualizando tarefas..."
diff --git a/po/ru.po b/po/ru.po
index 7236545..71caae3 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4,327 +4,561 @@
 # Alexander Telenga <telenga gmail com>, 2008.
 #  
 #
-# 
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-26 17:29+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2008-11-14 13:10+0300\n"
 "Last-Translator: Alexander Telenga <telenga gmail com>\n"
 "Language-Team: Russian <ru li org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../data/tasque.desktop.in.h:1
+msgid "Easy quick task management"
+msgstr ""
+
+#: ../data/tasque.desktop.in.h:2
+#, fuzzy
+msgid "Task Manager"
+msgstr "Ð?мÑ? задаÑ?и"
+
+#: ../data/tasque.desktop.in.h:3
+msgid "Tasque"
+msgstr ""
+
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+msgid "Tasque Rocks"
+msgstr ""
 
-#: src/Application.cs:403
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: src/Application.cs:404
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "СпиÑ?ок полезнÑ?Ñ? задаÑ?"
 
-#: src/Application.cs:406
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Ð?омаÑ?нÑ?Ñ? Ñ?Ñ?Ñ?аниÑ?а пÑ?оекÑ?а Tasque"
 
-#: src/Application.cs:458
-msgid "Show Tasks ..."
-msgstr "Ð?оказаÑ?Ñ? задаÑ?и â?¦"
-
-#: src/Application.cs:466
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Ð?оваÑ? задаÑ?а â?¦"
 
-#: src/Application.cs:487
-msgid "Refresh Tasks"
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr "Ð?оказаÑ?Ñ? задаÑ?и â?¦"
+
+#: ../src/Application.cs:732
+#, fuzzy
+msgid "Refresh Tasks ..."
 msgstr "Ð?бновиÑ?Ñ? задаÑ?и"
 
-#: src/AllCategory.cs:28
-#: src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Ð?Ñ?е"
 
-#: src/CompletedTaskGroup.cs:205
-#: src/Utilities.cs:283
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Ð?Ñ?еÑ?а"
 
-#: src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Ð?оÑ?ледние 7 дней"
 
-#: src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Ð?оÑ?ледний меÑ?Ñ?Ñ?"
 
-#: src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Ð?оÑ?ледний год"
 
-#: src/NoteDialog.cs:22
+#: ../src/NoteDialog.cs:24
 #, csharp-format
 msgid "Notes for: {0:s}"
 msgstr "Ð?амеÑ?ки длÑ?: {0:s}"
 
-#: src/PreferencesDialog.cs:107
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Ð?бÑ?ее"
 
-#: src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "СегоднÑ?"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "Ð?Ñ?оÑ?Ñ?оÑ?еннÑ?е"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "СиÑ?Ñ?ема Ñ?пÑ?авлениÑ? задаÑ?ами"
 
-#: src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "ФилÑ?Ñ?Ñ?аÑ?иÑ? задаÑ?"
 
-#: src/PreferencesDialog.cs:207
-msgid "Show _completed tasks"
+#: ../src/PreferencesDialog.cs:304
+#, fuzzy
+msgid "Sh_ow completed tasks"
 msgstr "Ð?оказаÑ?Ñ? _завеÑ?Ñ?еннÑ?е задаÑ?и"
 
-#: src/PreferencesDialog.cs:216
+#. Categories TreeView
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "_Ð?оказÑ?ваÑ?Ñ? Ñ?Ñ?и каÑ?егоÑ?ии, Ñ?олÑ?ко когда вÑ?бÑ?ано \"Ð?Ñ?е\":"
 
-#: src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Ð?аÑ?егоÑ?иÑ?"
 
-#: src/RemoteControl.cs:109
+#: ../src/RemoteControl.cs:150
 msgid "New task created."
 msgstr "Создана новаÑ? задаÑ?а."
 
-#: src/TaskTreeView.cs:72
-#: src/TaskWindow.cs:346
+#. Title for Completed/Checkbox Column
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Ð?авеÑ?Ñ?ено"
 
-#: src/TaskTreeView.cs:89
+#. Title for Priority Column
+#: ../src/TaskTreeView.cs:101
 msgid "Priority"
 msgstr "Ð?Ñ?иоÑ?иÑ?еÑ?"
 
-#: src/TaskTreeView.cs:102
-#: src/TaskTreeView.cs:300
-#: src/TaskTreeView.cs:524
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
-#: src/TaskTreeView.cs:103
-#: src/TaskTreeView.cs:297
-#: src/TaskTreeView.cs:522
+#. High
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
-#: src/TaskTreeView.cs:104
-#: src/TaskTreeView.cs:294
-#: src/TaskTreeView.cs:520
+#. Medium
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
-#: src/TaskTreeView.cs:105
-#: src/TaskTreeView.cs:303
+#. Low
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
-#: src/TaskTreeView.cs:119
+#. Title for Task Name Column
+#: ../src/TaskTreeView.cs:131
 msgid "Task Name"
 msgstr "Ð?мÑ? задаÑ?и"
 
-#: src/TaskTreeView.cs:161
+#. Title for Due Date Column
+#: ../src/TaskTreeView.cs:173
 msgid "Due Date"
 msgstr "СÑ?ок вÑ?полнениÑ?"
 
-#: src/TaskTreeView.cs:175
-#: src/TaskTreeView.cs:177
-#: src/TaskTreeView.cs:189
-#: src/TaskTreeView.cs:606
-#: src/TaskTreeView.cs:609
-#: src/TaskTreeView.cs:614
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d.M - "
 
-#: src/TaskTreeView.cs:175
-#: src/TaskTreeView.cs:606
-#: src/TaskWindow.cs:279
-#: src/Utilities.cs:277
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "СегоднÑ?"
 
-#: src/TaskTreeView.cs:177
-#: src/TaskTreeView.cs:609
-#: src/TaskWindow.cs:297
-#: src/Utilities.cs:296
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Ð?авÑ?Ñ?а"
 
-#: src/TaskTreeView.cs:179
-#: src/TaskTreeView.cs:181
-#: src/TaskTreeView.cs:183
-#: src/TaskTreeView.cs:185
-#: src/TaskTreeView.cs:187
-#: src/TaskTreeView.cs:354
-#: src/TaskTreeView.cs:623
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d.M - ddd"
 
-#: src/TaskTreeView.cs:189
-#: src/TaskTreeView.cs:614
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "ЧеÑ?ез 1 неделÑ?"
 
-#: src/TaskTreeView.cs:190
-#: src/TaskTreeView.cs:611
-#: src/Utilities.cs:309
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Ð?ез даÑ?Ñ?"
 
-#: src/TaskTreeView.cs:191
-#: src/TaskTreeView.cs:616
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Ð?Ñ?беÑ?иÑ?е даÑ?Ñ? â?¦"
 
-#: src/TaskTreeView.cs:207
+#. Title for Notes Column
+#: ../src/TaskTreeView.cs:219
 msgid "Notes"
 msgstr "Ð?амеÑ?ки"
 
-#: src/TaskTreeView.cs:224
+#. Title for Timer Column
+#: ../src/TaskTreeView.cs:236
 msgid "Timer"
 msgstr "ТаймеÑ?"
 
-#: src/TaskTreeView.cs:356
+#: ../src/TaskTreeView.cs:281
+#, fuzzy
+msgid "Task Completed"
+msgstr "Ð?авеÑ?Ñ?ено"
+
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d.M.yy - ddd"
 
-#: src/TaskWindow.cs:152
-#: src/TaskWindow.cs:835
-#: src/TaskWindow.cs:845
-#: src/TaskWindow.cs:856
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
+#. The new task entry widget
+#. Clear the entry if it contains the default text
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Ð?оваÑ? задаÑ?а â?¦"
 
-#: src/TaskWindow.cs:167
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Ð?обавиÑ?Ñ?"
 
-#: src/TaskWindow.cs:172
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "_Ð?обавиÑ?Ñ? задаÑ?Ñ?"
 
-#: src/TaskWindow.cs:261
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "Ð?Ñ?оÑ?Ñ?оÑ?еннÑ?е"
 
-#: src/TaskWindow.cs:315
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "СледÑ?Ñ?Ñ?ие 7 дней"
 
-#: src/TaskWindow.cs:331
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Ð?Ñ?дÑ?Ñ?ее"
 
-#: src/TaskWindow.cs:1024
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Ð?амеÑ?ки â?¦"
 
-#: src/TaskWindow.cs:1031
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_УдалиÑ?Ñ? задаÑ?Ñ?"
 
-#: src/TaskWindow.cs:1036
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "_РедакÑ?иÑ?оваÑ?Ñ? задаÑ?Ñ?"
 
-#: src/TaskWindow.cs:1103
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Ð?аÑ?егоÑ?иÑ?"
+
+#: ../src/TaskWindow.cs:1162
+#, fuzzy
+msgid "Task deleted"
+msgstr "ФилÑ?Ñ?Ñ?аÑ?иÑ? задаÑ?"
+
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Ð?агÑ?Ñ?зка задаÑ?â?¦"
 
-#: src/Utilities.cs:275
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "СегоднÑ?, {0}"
 
-#: src/Utilities.cs:281
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Ð?Ñ?еÑ?а, {0}"
 
-#: src/Utilities.cs:287
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} дней назад, {1}"
 
-#: src/Utilities.cs:289
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} дней назад"
 
-#: src/Utilities.cs:294
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Ð?авÑ?Ñ?а, {0}"
 
-#: src/Utilities.cs:300
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "ЧеÑ?ез {0} дней, {1}"
 
-#: src/Utilities.cs:302
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "ЧеÑ?ез {0} дней"
 
-#: src/Utilities.cs:306
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d. MMMM, h:mm tt"
 
-#: src/Utilities.cs:307
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d. MMMM"
 
-#: src/Utilities.cs:312
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d. MMMM yyyy, h:mm tt"
 
-#: src/Utilities.cs:313
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d. MMMM yyyy"
 
-#: src/Utilities.cs:322
-msgid "Sunday"
-msgstr "Ð?оÑ?кÑ?еÑ?ение"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "СегоднÑ?"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Ð?авÑ?Ñ?а"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Ð?оваÑ? задаÑ?а â?¦"
 
-#: src/Utilities.cs:324
-msgid "Monday"
-msgstr "Ð?онеделÑ?ник"
+#~ msgid "Sunday"
+#~ msgstr "Ð?оÑ?кÑ?еÑ?ение"
 
-#: src/Utilities.cs:326
-msgid "Tuesday"
-msgstr "Ð?Ñ?оÑ?ник"
+#~ msgid "Monday"
+#~ msgstr "Ð?онеделÑ?ник"
 
-#: src/Utilities.cs:328
-msgid "Wednesday"
-msgstr "СÑ?еда"
+#~ msgid "Tuesday"
+#~ msgstr "Ð?Ñ?оÑ?ник"
 
-#: src/Utilities.cs:330
-msgid "Thursday"
-msgstr "ЧеÑ?веÑ?г"
+#~ msgid "Wednesday"
+#~ msgstr "СÑ?еда"
 
-#: src/Utilities.cs:332
-msgid "Friday"
-msgstr "Ð?Ñ?Ñ?ниÑ?а"
+#~ msgid "Thursday"
+#~ msgstr "ЧеÑ?веÑ?г"
 
-#: src/Utilities.cs:334
-msgid "Saturday"
-msgstr "СÑ?ббоÑ?а"
+#~ msgid "Friday"
+#~ msgstr "Ð?Ñ?Ñ?ниÑ?а"
 
-#: src/Utilities.cs:380
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
+#~ msgid "Saturday"
+#~ msgstr "СÑ?ббоÑ?а"
 
-#: src/Utilities.cs:382
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
 
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/po/sl.po b/po/sl.po
index c0a6a6f..0dba983 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -6,15 +6,16 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=tasque&component=general\n";
-"POT-Creation-Date: 2009-11-02 10:30+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-12-01 21:21+0100\n"
 "Last-Translator: Andrej ŽnidarÅ¡iÄ? <andrej znidarsic gmail com>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome-si googlegroups com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
+"%100==4 ? 3 : 0);\n"
 "X-Poedit-Country: SLOVENIA\n"
 "X-Poedit-Language: Slovenian\n"
 "X-Poedit-SourceCharset: utf-8\n"
@@ -95,13 +96,11 @@ msgstr "Pokaži naloge ..."
 msgid "Refresh Tasks ..."
 msgstr "Osveži naloge ..."
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:174
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Vse"
 
-#: ../src/CompletedTaskGroup.cs:165
-#: ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "VÄ?eraj"
 
@@ -181,8 +180,7 @@ msgid "New task created."
 msgstr "Nova naloga je ustvarjena"
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84
-#: ../src/TaskWindow.cs:342
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "KonÄ?ano"
 
@@ -191,29 +189,25 @@ msgstr "KonÄ?ano"
 msgid "Priority"
 msgstr "Prednost"
 
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
 #: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
 #: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:116
-#: ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
 #: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:117
-#: ../src/TaskTreeView.cs:369
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
@@ -227,52 +221,39 @@ msgstr "Ime naloge"
 msgid "Due Date"
 msgstr "Rok"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M -"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275
-#: ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Danes"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293
-#: ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Jutri"
 
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
 #: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Ä?ez 1 teden"
 
-#: ../src/TaskTreeView.cs:202
-#: ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Ni datuma"
 
-#: ../src/TaskTreeView.cs:203
-#: ../src/TaskTreeView.cs:704
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Izbor datuma ..."
 
@@ -305,11 +286,8 @@ msgstr "DokonÄ?anje naloge v: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149
-#: ../src/TaskWindow.cs:837
-#: ../src/TaskWindow.cs:893
-#: ../src/TaskWindow.cs:903
-#: ../src/TaskWindow.cs:914
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Nova naloga ..."
 
@@ -334,8 +312,7 @@ msgid "Future"
 msgstr "Prihodnost"
 
 #. Translators: This status shows the date and time when the task list was last refreshed
-#: ../src/TaskWindow.cs:474
-#: ../src/TaskWindow.cs:1213
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
 #, csharp-format
 msgid "Tasks loaded: {0}"
 msgstr "Ä?as osvežitve nalog: {0}"
@@ -379,96 +356,57 @@ msgstr "Nalaganje nalog ..."
 msgid "Not connected."
 msgstr "Brez povezave."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Danes, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "VÄ?eraj, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "Pred {0} dnevi, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "Pred {0} dnevi"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Jutri, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "V {0} dneh, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "V {0} dneh"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d MMMM, h.mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "nedelja"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "ponedeljek"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "torek"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "sreda"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "Ä?etrtek"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "petek"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "sobota"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+danes\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+jutri\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Kliknite sem za povezavo"
@@ -511,3 +449,117 @@ msgstr "Spodletelo, poskusite znova"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "Hvala vam"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Danes"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Jutri"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Nova naloga ..."
+
+#~ msgid "Sunday"
+#~ msgstr "nedelja"
+
+#~ msgid "Monday"
+#~ msgstr "ponedeljek"
+
+#~ msgid "Tuesday"
+#~ msgstr "torek"
+
+#~ msgid "Wednesday"
+#~ msgstr "sreda"
+
+#~ msgid "Thursday"
+#~ msgstr "Ä?etrtek"
+
+#~ msgid "Friday"
+#~ msgstr "petek"
+
+#~ msgid "Saturday"
+#~ msgstr "sobota"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+danes\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+jutri\\W*$"
diff --git a/po/sv.po b/po/sv.po
index d0b583b..7fd5446 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-01-11 04:04+0100\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2010-01-11 04:08+0100\n"
 "Last-Translator: Daniel Nylander <po danielnylander se>\n"
 "Language-Team: Swedish <tp-sv listor tp-sv se>\n"
@@ -92,13 +92,11 @@ msgstr "Visa aktiviteter ..."
 msgid "Refresh Tasks ..."
 msgstr "Uppdatera aktiviteter ..."
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:174
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Alla"
 
-#: ../src/CompletedTaskGroup.cs:165
-#: ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Igår"
 
@@ -178,8 +176,7 @@ msgid "New task created."
 msgstr "Ny aktivitet skapad."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84
-#: ../src/TaskWindow.cs:342
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Avklarad"
 
@@ -188,29 +185,25 @@ msgstr "Avklarad"
 msgid "Priority"
 msgstr "Prioritet"
 
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
 #: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
 #: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:116
-#: ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
 #: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:117
-#: ../src/TaskTreeView.cs:369
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
@@ -224,52 +217,39 @@ msgstr "Aktivitetsnamn"
 msgid "Due Date"
 msgstr "Förfallodag"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275
-#: ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Idag"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293
-#: ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Imorgon"
 
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
 #: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:702
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Inom en vecka"
 
-#: ../src/TaskTreeView.cs:202
-#: ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Inget datum"
 
-#: ../src/TaskTreeView.cs:203
-#: ../src/TaskTreeView.cs:704
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Välj datum..."
 
@@ -302,11 +282,8 @@ msgstr "Färdigställer aktivitet om: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149
-#: ../src/TaskWindow.cs:837
-#: ../src/TaskWindow.cs:893
-#: ../src/TaskWindow.cs:903
-#: ../src/TaskWindow.cs:914
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Ny aktivitet..."
 
@@ -331,8 +308,7 @@ msgid "Future"
 msgstr "Framtiden"
 
 #. Translators: This status shows the date and time when the task list was last refreshed
-#: ../src/TaskWindow.cs:474
-#: ../src/TaskWindow.cs:1213
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
 #, csharp-format
 msgid "Tasks loaded: {0}"
 msgstr "Aktiviteter inlästa: {0}"
@@ -376,96 +352,57 @@ msgstr "Läser in aktiviteter..."
 msgid "Not connected."
 msgstr "Inte ansluten."
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Idag, {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Igår, {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} dagar sedan, {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} dagar sedan"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Imorgon, {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "Om {0} dagar, {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "Om {0} dagar"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, hh:mm"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy hh:mm"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "söndag"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "måndag"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "tisdag"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "onsdag"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "torsdag"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "fredag"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "lördag"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+idag\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+imorgon\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "Klicka här för att ansluta"
@@ -508,6 +445,119 @@ msgstr "Misslyckades. Försök igen"
 msgid "Thank You"
 msgstr "Tack"
 
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Idag"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Imorgon"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Ny aktivitet..."
+
+#~ msgid "Sunday"
+#~ msgstr "söndag"
+
+#~ msgid "Monday"
+#~ msgstr "måndag"
+
+#~ msgid "Tuesday"
+#~ msgstr "tisdag"
+
+#~ msgid "Wednesday"
+#~ msgstr "onsdag"
+
+#~ msgid "Thursday"
+#~ msgstr "torsdag"
+
+#~ msgid "Friday"
+#~ msgstr "fredag"
+
+#~ msgid "Saturday"
+#~ msgstr "lördag"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+idag\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+imorgon\\W*$"
+
 #~ msgid "Reloading tasks..."
 #~ msgstr "Läser om uppgifter..."
-
diff --git a/po/th.po b/po/th.po
index a2ccec5..7ce9569 100644
--- a/po/th.po
+++ b/po/th.po
@@ -6,9 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tasque\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?";
-"product=tasque&component=general\n"
-"POT-Creation-Date: 2009-04-17 15:19+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-04-28 14:17+0700\n"
 "Last-Translator: Sira Nokyoongotong <gumaraa gmail com>\n"
 "Language-Team: Thai <thai-l10n googlegroups com>\n"
@@ -28,55 +27,82 @@ msgstr "��รื�อ�มือ�ั��ารภาร�ิ�"
 msgid "Tasque"
 msgstr "Tasque"
 
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
 #. string [] documenters = new string [] {
 #. "Calvin Gaisford <calvinrg gmail com>"
 #. };
 #.
-#: ../src/Application.cs:487
+#: ../src/Application.cs:584
 msgid "translator-credits"
 msgstr "Sira Nokyoongotong <gumaraa gmail com>"
 
-#: ../src/Application.cs:496
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:497
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "��รื�อ�มือ�ั��ารภาร�ิ�"
 
-#: ../src/Application.cs:499
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "�ว��������ร��าร Tasque"
 
-#: ../src/Application.cs:612
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "ภาร�ิ��หม� ..."
 
-#: ../src/Application.cs:619
+#: ../src/Application.cs:717
 msgid "Show Tasks ..."
 msgstr "�ส��ภาร�ิ� ..."
 
-#: ../src/Application.cs:634
+#: ../src/Application.cs:732
 msgid "Refresh Tasks ..."
 msgstr "�รั��ส��ภาร�ิ� ..."
 
-#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "�ั��หม�"
 
-#: ../src/CompletedTaskGroup.cs:205 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "�มื�อวา�"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "7 วั��ี���า�มา"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "��ือ��ี��ล�ว"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "�ี�ี��ล�ว"
 
@@ -93,28 +119,51 @@ msgstr "�_��ม"
 msgid "_Window"
 msgstr "_ห��า��า�"
 
-#: ../src/PreferencesDialog.cs:107
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "�ั�ว��"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "วั��ี�"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "�ลย�ำห��"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "ระ���ั��ารภาร�ิ�"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "�าร�รอ�ภาร�ิ�"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "�_ส��ภาร�ิ��ี��สร���ล�ว"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "�ส����_�าะหมว�หมู��หล�า�ี��มื�อ�ลือ� \"�ั��หม�\":"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "หมว�หมู�"
 
@@ -123,7 +172,7 @@ msgid "New task created."
 msgstr "สร�า�ภาร�ิ��หม��ล�ว"
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:340
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "�สร���ล�ว"
 
@@ -133,19 +182,19 @@ msgid "Priority"
 msgstr "�วามสำ�ั�"
 
 #: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
-#: ../src/TaskTreeView.cs:598
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
 #: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
-#: ../src/TaskTreeView.cs:596
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
 #: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:594
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
@@ -165,38 +214,38 @@ msgid "Due Date"
 msgstr "�ำห���สร��"
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:680
-#: ../src/TaskTreeView.cs:683 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:680
-#: ../src/TaskWindow.cs:273 ../src/Utilities.cs:265
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "วั��ี�"
 
-#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:683
-#: ../src/TaskWindow.cs:291 ../src/Utilities.cs:284
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "�รุ���ี�"
 
 #: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
 #: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:420
-#: ../src/TaskTreeView.cs:697
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:688
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "�� 1 สั��าห�"
 
-#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:685
-#: ../src/Utilities.cs:297
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "�ม��ำห��วั�"
 
-#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:690
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "�ลือ�วั� ..."
 
@@ -214,202 +263,311 @@ msgstr "�ั���วลา"
 msgid "Task Completed"
 msgstr "ภาร�ิ��ี��สร���ล�ว"
 
-#: ../src/TaskTreeView.cs:422
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:594
 msgid "Action Canceled"
 msgstr "ย��ลิ��าร�ระ�ำ�ล�ว"
 
-#: ../src/TaskTreeView.cs:845
+#: ../src/TaskTreeView.cs:859
 #, csharp-format
 msgid "Completing Task In: {0}"
 msgstr "ภาร�ิ��ะ�สร����อี�: {0}"
 
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:833 ../src/TaskWindow.cs:889
-#: ../src/TaskWindow.cs:899 ../src/TaskWindow.cs:910
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "ภาร�ิ��หม�..."
 
-#: ../src/TaskWindow.cs:164
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "�_�ิ�ม"
 
-#: ../src/TaskWindow.cs:169
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "�_�ิ�มภาร�ิ�"
 
-#: ../src/TaskWindow.cs:255
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "�ลย�ำห��"
 
-#: ../src/TaskWindow.cs:309
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "7 วั���า�ห��า"
 
-#: ../src/TaskWindow.cs:325
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "��อ�า��"
 
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
 #. Show error status
-#: ../src/TaskWindow.cs:797
+#: ../src/TaskWindow.cs:801
 msgid "Error creating a new task"
 msgstr "��ิ���อ�ิ��ลา����ารสร�า�ภาร�ิ��หม�"
 
 #. Show successful status
-#: ../src/TaskWindow.cs:801
+#: ../src/TaskWindow.cs:805
 msgid "Task created successfully"
 msgstr "สร�า�ภาร�ิ��สร���ล�ว"
 
-#: ../src/TaskWindow.cs:1078
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "ห_มาย�ห�ุ..."
 
-#: ../src/TaskWindow.cs:1085
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "_ล�ภาร�ิ�"
 
-#: ../src/TaskWindow.cs:1090
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "�_����ภาร�ิ�"
 
-#: ../src/TaskWindow.cs:1118
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "หมว�หมู�"
+
+#: ../src/TaskWindow.cs:1162
 msgid "Task deleted"
 msgstr "ล�ภาร�ิ��ล�ว"
 
-#: ../src/TaskWindow.cs:1160
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "�ำลั�อ�า���อมูลภาร�ิ�..."
 
-#: ../src/Utilities.cs:263
+#: ../src/TaskWindow.cs:1225
+#, fuzzy
+msgid "Not connected."
+msgstr ""
+"\n"
+"\n"
+"�ุ�ยั��ม������ื�อม��อ"
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "วั��ี� {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "�มื�อวา��ี� {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} วั���อ� {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} วั���อ�"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "�รุ���ี� {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "�� {0} วั� {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "�� {0} วั�"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "d MMMM H:mm"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy H:mm"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "วั�อา�ิ�ย�"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "วั��ั��ร�"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "วั�อั��าร"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "วั��ุ�"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "วั��ฤหัส��ี"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "วั�ศุ�ร�"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "วั��สาร�"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+วั��ี�\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+�รุ���ี�\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "�ลิ���ื�อ��ื�อม��อ"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+#, fuzzy
+msgid "You are currently connected"
+msgstr ""
+"\n"
+"\n"
+"�ุ��ำลั���ื�อม��ออยู�"
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
-msgid ""
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+#, fuzzy
+msgid "You are currently connected as"
+msgstr ""
 "\n"
 "\n"
-"You are not connected"
+"�ุ��ำลั���ื�อม��ออยู�"
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+#, fuzzy
+msgid "You are not connected"
 msgstr ""
 "\n"
 "\n"
 "�ุ�ยั��ม������ื�อม��อ"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:108
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
 msgid "Remember the Milk not responding. Try again later."
 msgstr "Remember the Milk �ม��อ�ส�อ� �รุ�าลอ��หม�ภายหลั�"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:115
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
 msgid "Click Here After Authorizing"
 msgstr "�ลิ�หลั��รว�สอ�สิ��ิ���า��ล�ว"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:118
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
 msgid "Set the default browser and try again"
 msgstr "�ำห����ราว���อร��ริยาย�ล�วลอ��หม�"
 
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "�อ��ุ�"
 
-#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:137
-msgid ""
-"\n"
-"\n"
-"You are currently connected"
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
 msgstr ""
-"\n"
-"\n"
-"�ุ��ำลั���ื�อม��ออยู�"
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "วั��ี�"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "�รุ���ี�"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "ภาร�ิ��หม�..."
+
+#~ msgid "Sunday"
+#~ msgstr "วั�อา�ิ�ย�"
+
+#~ msgid "Monday"
+#~ msgstr "วั��ั��ร�"
+
+#~ msgid "Tuesday"
+#~ msgstr "วั�อั��าร"
+
+#~ msgid "Wednesday"
+#~ msgstr "วั��ุ�"
+
+#~ msgid "Thursday"
+#~ msgstr "วั��ฤหัส��ี"
+
+#~ msgid "Friday"
+#~ msgstr "วั�ศุ�ร�"
+
+#~ msgid "Saturday"
+#~ msgstr "วั��สาร�"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+วั��ี�\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+�รุ���ี�\\W*$"
diff --git a/po/tr.po b/po/tr.po
index 87e076a..cd6e803 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Tasque\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-06 10:40+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2008-08-31 00:48+0200\n"
 "Last-Translator: Hasan Yılmaz <iletisim hasanyilmaz net>\n"
 "Language-Team: \n"
@@ -29,49 +29,83 @@ msgstr "Görev Yöneticisi"
 msgid "Tasque"
 msgstr "Tasque"
 
-#: ../src/Application.cs:403
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Telif Hakkı © 2008 Novell, Inc."
 
-#: ../src/Application.cs:404
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "KullanıÅ?lı Bir Görev Listesi"
 
-#: ../src/Application.cs:406
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque Proje Anasayfası"
 
-#: ../src/Application.cs:458
-msgid "Show Tasks ..."
-msgstr "Görevleri Göster..."
-
-#: ../src/Application.cs:466
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "Yeni Görev..."
 
-#: ../src/Application.cs:487
-msgid "Refresh Tasks"
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr "Görevleri Göster..."
+
+#: ../src/Application.cs:732
+#, fuzzy
+msgid "Refresh Tasks ..."
 msgstr "Görevleri Yenile"
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "Tümü"
 
-#: ../src/CompletedTaskGroup.cs:205
-#: ../src/Utilities.cs:283
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "Dün"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "Son 7 Gün"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "Son Ay"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "Son Yıl"
 
@@ -80,277 +114,449 @@ msgstr "Son Yıl"
 msgid "Notes for: {0:s}"
 msgstr "Notlar: {0:s}"
 
-#: ../src/PreferencesDialog.cs:107
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "Genel"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "Bugün"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "GecikmiÅ?"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "Görev Yönetim Sistemi"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "Görev Süzgeci"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "TamamlanmıÅ? görevleri gö_ster"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "Bu kategorileri sadece \"Tümü\" seçiliyken _göster:"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "Kategori"
 
-#: ../src/RemoteControl.cs:109
+#: ../src/RemoteControl.cs:150
 msgid "New task created."
 msgstr "Yeni görev yaratıldı."
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:82
-#: ../src/TaskWindow.cs:346
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "Tamamlandı"
 
 #. Title for Priority Column
-#: ../src/TaskTreeView.cs:99
+#: ../src/TaskTreeView.cs:101
 msgid "Priority"
 msgstr "Ã?ncelik"
 
-#: ../src/TaskTreeView.cs:112
-#: ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:584
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:113
-#: ../src/TaskTreeView.cs:357
-#: ../src/TaskTreeView.cs:582
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:354
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
 #. Title for Task Name Column
-#: ../src/TaskTreeView.cs:129
+#: ../src/TaskTreeView.cs:131
 msgid "Task Name"
 msgstr "Görev Adı"
 
 #. Title for Due Date Column
-#: ../src/TaskTreeView.cs:171
+#: ../src/TaskTreeView.cs:173
 msgid "Due Date"
 msgstr "Son Tarih"
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskWindow.cs:279
-#: ../src/Utilities.cs:277
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "Bugün"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskWindow.cs:297
-#: ../src/Utilities.cs:296
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "Yarın"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:414
-#: ../src/TaskTreeView.cs:683
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "Gelecek 1 Hafta"
 
-#: ../src/TaskTreeView.cs:200
-#: ../src/TaskTreeView.cs:671
-#: ../src/Utilities.cs:309
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "Tarih Yok"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:676
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "Tarih Seç..."
 
 #. Title for Notes Column
-#: ../src/TaskTreeView.cs:217
+#: ../src/TaskTreeView.cs:219
 msgid "Notes"
 msgstr "Notlar"
 
 #. Title for Timer Column
-#: ../src/TaskTreeView.cs:234
+#: ../src/TaskTreeView.cs:236
 msgid "Timer"
 msgstr "Süre �lçer"
 
-#: ../src/TaskTreeView.cs:416
+#: ../src/TaskTreeView.cs:281
+#, fuzzy
+msgid "Task Completed"
+msgstr "Tamamlandı"
+
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:152
-#: ../src/TaskWindow.cs:835
-#: ../src/TaskWindow.cs:845
-#: ../src/TaskWindow.cs:856
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "Yeni Görev..."
 
-#: ../src/TaskWindow.cs:167
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "_Ekle"
 
-#: ../src/TaskWindow.cs:172
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "Görev _Ekle"
 
-#: ../src/TaskWindow.cs:261
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "GecikmiÅ?"
 
-#: ../src/TaskWindow.cs:315
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "Sonraki 7 Gün"
 
-#: ../src/TaskWindow.cs:331
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "Gelecek"
 
-#: ../src/TaskWindow.cs:1024
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "_Notlar..."
 
-#: ../src/TaskWindow.cs:1031
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "Görevi _sil"
 
-#: ../src/TaskWindow.cs:1036
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "Görevi _düzenle"
 
-#: ../src/TaskWindow.cs:1103
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "Kategori"
+
+#: ../src/TaskWindow.cs:1162
+#, fuzzy
+msgid "Task deleted"
+msgstr "Görev Süzgeci"
+
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "Görevler yükleniyor..."
 
-#: ../src/Utilities.cs:275
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "Bugün, {0}"
 
-#: ../src/Utilities.cs:281
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "Dün, {0}"
 
-#: ../src/Utilities.cs:287
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} gün önce, {1}"
 
-#: ../src/Utilities.cs:289
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} gün önce"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "Yarın, {0}"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "{0} günde, {1}"
 
-#: ../src/Utilities.cs:302
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "{0} günde"
 
-#: ../src/Utilities.cs:306
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:307
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:312
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:313
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:322
-msgid "Sunday"
-msgstr "Pazar"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "Bugün"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "Yarın"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "Yeni Görev..."
 
-#: ../src/Utilities.cs:324
-msgid "Monday"
-msgstr "Pazartesi"
+#~ msgid "Sunday"
+#~ msgstr "Pazar"
 
-#: ../src/Utilities.cs:326
-msgid "Tuesday"
-msgstr "Salı"
+#~ msgid "Monday"
+#~ msgstr "Pazartesi"
 
-#: ../src/Utilities.cs:328
-msgid "Wednesday"
-msgstr "Ã?arÅ?amba"
+#~ msgid "Tuesday"
+#~ msgstr "Salı"
 
-#: ../src/Utilities.cs:330
-msgid "Thursday"
-msgstr "PerÅ?embe"
+#~ msgid "Wednesday"
+#~ msgstr "Ã?arÅ?amba"
 
-#: ../src/Utilities.cs:332
-msgid "Friday"
-msgstr "Cuma"
+#~ msgid "Thursday"
+#~ msgstr "PerÅ?embe"
 
-#: ../src/Utilities.cs:334
-msgid "Saturday"
-msgstr "Cumartesi"
+#~ msgid "Friday"
+#~ msgstr "Cuma"
 
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:380
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+bugün\\W*$"
+#~ msgid "Saturday"
+#~ msgstr "Cumartesi"
 
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:382
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+yarın\\W*$"
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+bugün\\W*$"
 
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+yarın\\W*$"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index d79cc62..5651d0b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-10-05 14:44+0800\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2009-10-04 20:21+0800\n"
 "Last-Translator: Ray Wang <raywang gnome org>\n"
 "Language-Team: Chinese (Simplified) <i18n-zh googlegroups com>\n"
@@ -88,7 +88,7 @@ msgstr "��任�..."
 msgid "All"
 msgstr "��"
 
-#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:271
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "�天"
 
@@ -216,12 +216,12 @@ msgid "M/d - "
 msgstr "Mæ??dæ?¥ - "
 
 #: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
-#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:265
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "�天"
 
 #: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
-#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:284
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "æ??天"
 
@@ -237,7 +237,7 @@ msgid "In 1 Week"
 msgstr "ä¸?å?¨å??"
 
 #: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
-#: ../src/Utilities.cs:297
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "æ? æ?¥æ??"
 
@@ -344,96 +344,57 @@ msgstr "正���任�..."
 msgid "Not connected."
 msgstr "å°?æ?ªè¿?æ?¥ã??"
 
-#: ../src/Utilities.cs:263
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "�天 {0}"
 
-#: ../src/Utilities.cs:269
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "�天 {0}"
 
-#: ../src/Utilities.cs:275
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "{0} 天以å?? {1}"
 
-#: ../src/Utilities.cs:277
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "{0} 天å??"
 
-#: ../src/Utilities.cs:282
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "æ??天 {0}"
 
-#: ../src/Utilities.cs:288
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "{0} 天å?? {1}"
 
-#: ../src/Utilities.cs:290
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "å?¨ {0} 天å??"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:295
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "MMMM d"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "MMMM d yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:301
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "MMMM d yyyy"
 
-#: ../src/Utilities.cs:310
-msgid "Sunday"
-msgstr "æ??æ??æ?¥"
-
-#: ../src/Utilities.cs:312
-msgid "Monday"
-msgstr "æ??æ??ä¸?"
-
-#: ../src/Utilities.cs:314
-msgid "Tuesday"
-msgstr "æ??æ??äº?"
-
-#: ../src/Utilities.cs:316
-msgid "Wednesday"
-msgstr "æ??æ??ä¸?"
-
-#: ../src/Utilities.cs:318
-msgid "Thursday"
-msgstr "æ??æ??å??"
-
-#: ../src/Utilities.cs:320
-msgid "Friday"
-msgstr "æ??æ??äº?"
-
-#: ../src/Utilities.cs:322
-msgid "Saturday"
-msgstr "æ??æ??å?­"
-
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:368
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
-
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:370
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
-
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
 msgid "Click Here to Connect"
 msgstr "��此���"
@@ -475,3 +436,117 @@ msgstr "失败ï¼?å??è¯?ä¸?次"
 #: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
 msgid "Thank You"
 msgstr "谢谢"
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "�天"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "æ??天"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "�建任�..."
+
+#~ msgid "Sunday"
+#~ msgstr "æ??æ??æ?¥"
+
+#~ msgid "Monday"
+#~ msgstr "æ??æ??ä¸?"
+
+#~ msgid "Tuesday"
+#~ msgstr "æ??æ??äº?"
+
+#~ msgid "Wednesday"
+#~ msgstr "æ??æ??ä¸?"
+
+#~ msgid "Thursday"
+#~ msgstr "æ??æ??å??"
+
+#~ msgid "Friday"
+#~ msgstr "æ??æ??äº?"
+
+#~ msgid "Saturday"
+#~ msgstr "æ??æ??å?­"
+
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
+
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 9e5a20d..4290fea 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: tasque HEAD\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-06 10:40+0200\n"
+"POT-Creation-Date: 2010-03-30 22:36-0400\n"
 "PO-Revision-Date: 2008-10-11 20:45+0800\n"
 "Last-Translator: Yuren Ju <yurenju gmail com>\n"
 "Language-Team: GNOME French Team <gnomefr traduc org>\n"
@@ -28,49 +28,83 @@ msgstr "å·¥ä½?管ç??"
 msgid "Tasque"
 msgstr "Tasque"
 
-#: ../src/Application.cs:403
+#: ../src/Application.cs:518
+#, csharp-format
+msgid "{0} task is Overdue\n"
+msgid_plural "{0} tasks are Overdue\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:526
+#, csharp-format
+msgid "{0} task for Today\n"
+msgid_plural "{0} tasks for Today\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/Application.cs:534
+#, csharp-format
+msgid "{0} task for Tomorrow\n"
+msgid_plural "{0} tasks for Tomorrow\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#. Translators: This is the status icon's tooltip. When no tasks are overdue, due today, or due tomorrow, it displays this fun message
+#: ../src/Application.cs:540
+#, fuzzy
+msgid "Tasque Rocks"
+msgstr "Tasque"
+
+#. string [] documenters = new string [] {
+#. "Calvin Gaisford <calvinrg gmail com>"
+#. };
+#.
+#: ../src/Application.cs:584
+msgid "translator-credits"
+msgstr ""
+
+#: ../src/Application.cs:593
 msgid "Copyright © 2008 Novell, Inc."
 msgstr "Copyright © 2008 Novell, Inc."
 
-#: ../src/Application.cs:404
+#: ../src/Application.cs:594
 msgid "A Useful Task List"
 msgstr "ä¸?å??好ç?¨ç??å·¥ä½?æ¸?å?®"
 
-#: ../src/Application.cs:406
+#: ../src/Application.cs:596
 msgid "Tasque Project Homepage"
 msgstr "Tasque ����"
 
-#: ../src/Application.cs:458
-msgid "Show Tasks ..."
-msgstr "檢�工��"
-
-#: ../src/Application.cs:466
+#: ../src/Application.cs:710
 msgid "New Task ..."
 msgstr "��工��"
 
-#: ../src/Application.cs:487
-msgid "Refresh Tasks"
+#: ../src/Application.cs:717
+msgid "Show Tasks ..."
+msgstr "檢�工��"
+
+#: ../src/Application.cs:732
+#, fuzzy
+msgid "Refresh Tasks ..."
 msgstr "��工�"
 
-#: ../src/AllCategory.cs:28
-#: ../src/CompletedTaskGroup.cs:214
+#: ../src/AllCategory.cs:28 ../src/CompletedTaskGroup.cs:174
 msgid "All"
 msgstr "��"
 
-#: ../src/CompletedTaskGroup.cs:205
-#: ../src/Utilities.cs:283
+#: ../src/CompletedTaskGroup.cs:165 ../src/Utilities.cs:282
 msgid "Yesterday"
 msgstr "�天"
 
-#: ../src/CompletedTaskGroup.cs:207
+#: ../src/CompletedTaskGroup.cs:167
 msgid "Last 7 Days"
 msgstr "æ??è¿?ä¸?天"
 
-#: ../src/CompletedTaskGroup.cs:209
+#: ../src/CompletedTaskGroup.cs:169
 msgid "Last Month"
 msgstr "æ??è¿?ä¸?å??æ??"
 
-#: ../src/CompletedTaskGroup.cs:211
+#: ../src/CompletedTaskGroup.cs:171
 msgid "Last Year"
 msgstr "æ??è¿?ä¸?å¹´"
 
@@ -79,277 +113,449 @@ msgstr "æ??è¿?ä¸?å¹´"
 msgid "Notes for: {0:s}"
 msgstr "{0:s} ç??å??註"
 
-#: ../src/PreferencesDialog.cs:107
+#: ../src/OSXApplication.cs:38
+msgid "_File"
+msgstr ""
+
+#: ../src/OSXApplication.cs:44
+msgid "_Window"
+msgstr ""
+
+#. Update the window title
+#: ../src/PreferencesDialog.cs:97
+msgid "Tasque Preferences"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:116
 msgid "General"
 msgstr "��"
 
-#: ../src/PreferencesDialog.cs:146
+#: ../src/PreferencesDialog.cs:124
+msgid "Appearance"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:160
+msgid "Color Management"
+msgstr ""
+
+#: ../src/PreferencesDialog.cs:171
+#, fuzzy
+msgid "Today:"
+msgstr "�天"
+
+#: ../src/PreferencesDialog.cs:199
+#, fuzzy
+msgid "Overdue:"
+msgstr "é??æ??"
+
+#: ../src/PreferencesDialog.cs:243
 msgid "Task Management System"
 msgstr "å·¥ä½?管ç??系統"
 
-#: ../src/PreferencesDialog.cs:188
+#: ../src/PreferencesDialog.cs:285
 msgid "Task Filtering"
 msgstr "å·¥ä½?é??濾å?¨"
 
-#: ../src/PreferencesDialog.cs:207
+#: ../src/PreferencesDialog.cs:304
 msgid "Sh_ow completed tasks"
 msgstr "顯示已å®?æ??ç??å·¥ä½? (_o)"
 
 #. Categories TreeView
-#: ../src/PreferencesDialog.cs:216
+#: ../src/PreferencesDialog.cs:313
 msgid "Only _show these categories when \"All\" is selected:"
 msgstr "ç?¶é?¸æ??ã??å?¨é?¨ã??æ??ï¼?å??顯示以ä¸?å??é¡?ï¼? (_s)"
 
-#: ../src/PreferencesDialog.cs:234
+#: ../src/PreferencesDialog.cs:331
 msgid "Category"
 msgstr "å??é¡?"
 
-#: ../src/RemoteControl.cs:109
+#: ../src/RemoteControl.cs:150
 msgid "New task created."
 msgstr "已建��工�"
 
 #. Title for Completed/Checkbox Column
-#: ../src/TaskTreeView.cs:82
-#: ../src/TaskWindow.cs:346
+#: ../src/TaskTreeView.cs:84 ../src/TaskWindow.cs:342
 msgid "Completed"
 msgstr "å·²å®?æ??"
 
 #. Title for Priority Column
-#: ../src/TaskTreeView.cs:99
+#: ../src/TaskTreeView.cs:101
 msgid "Priority"
 msgstr "å?ªå??度"
 
-#: ../src/TaskTreeView.cs:112
-#: ../src/TaskTreeView.cs:360
-#: ../src/TaskTreeView.cs:584
+#: ../src/TaskTreeView.cs:114 ../src/TaskTreeView.cs:366
+#: ../src/TaskTreeView.cs:612
 msgid "1"
 msgstr "1"
 
 #. High
-#: ../src/TaskTreeView.cs:113
-#: ../src/TaskTreeView.cs:357
-#: ../src/TaskTreeView.cs:582
+#: ../src/TaskTreeView.cs:115 ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:610
 msgid "2"
 msgstr "2"
 
 #. Medium
-#: ../src/TaskTreeView.cs:114
-#: ../src/TaskTreeView.cs:354
-#: ../src/TaskTreeView.cs:580
+#: ../src/TaskTreeView.cs:116 ../src/TaskTreeView.cs:360
+#: ../src/TaskTreeView.cs:608
 msgid "3"
 msgstr "3"
 
 #. Low
-#: ../src/TaskTreeView.cs:115
-#: ../src/TaskTreeView.cs:363
+#: ../src/TaskTreeView.cs:117 ../src/TaskTreeView.cs:369
 msgid "-"
 msgstr "-"
 
 #. Title for Task Name Column
-#: ../src/TaskTreeView.cs:129
+#: ../src/TaskTreeView.cs:131
 msgid "Task Name"
 msgstr "å·¥ä½?å??稱"
 
 #. Title for Due Date Column
-#: ../src/TaskTreeView.cs:171
+#: ../src/TaskTreeView.cs:173
 msgid "Due Date"
 msgstr "å?°æ??æ?¥"
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:189
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:694
+#: ../src/TaskTreeView.cs:697 ../src/TaskTreeView.cs:702
 msgid "M/d - "
 msgstr "d/M - "
 
-#: ../src/TaskTreeView.cs:185
-#: ../src/TaskTreeView.cs:666
-#: ../src/TaskWindow.cs:279
-#: ../src/Utilities.cs:277
+#: ../src/TaskTreeView.cs:187 ../src/TaskTreeView.cs:694
+#: ../src/TaskWindow.cs:275 ../src/Utilities.cs:276
 msgid "Today"
 msgstr "�天"
 
-#: ../src/TaskTreeView.cs:187
-#: ../src/TaskTreeView.cs:669
-#: ../src/TaskWindow.cs:297
-#: ../src/Utilities.cs:296
+#: ../src/TaskTreeView.cs:189 ../src/TaskTreeView.cs:697
+#: ../src/TaskWindow.cs:293 ../src/Utilities.cs:295
 msgid "Tomorrow"
 msgstr "æ??天"
 
-#: ../src/TaskTreeView.cs:189
-#: ../src/TaskTreeView.cs:191
-#: ../src/TaskTreeView.cs:193
-#: ../src/TaskTreeView.cs:195
-#: ../src/TaskTreeView.cs:197
-#: ../src/TaskTreeView.cs:414
-#: ../src/TaskTreeView.cs:683
+#: ../src/TaskTreeView.cs:191 ../src/TaskTreeView.cs:193
+#: ../src/TaskTreeView.cs:195 ../src/TaskTreeView.cs:197
+#: ../src/TaskTreeView.cs:199 ../src/TaskTreeView.cs:434
+#: ../src/TaskTreeView.cs:711
 msgid "M/d - ddd"
 msgstr "d/M - ddd"
 
-#: ../src/TaskTreeView.cs:199
-#: ../src/TaskTreeView.cs:674
+#: ../src/TaskTreeView.cs:201 ../src/TaskTreeView.cs:702
 msgid "In 1 Week"
 msgstr "ä¸?å??禮æ??å?§"
 
-#: ../src/TaskTreeView.cs:200
-#: ../src/TaskTreeView.cs:671
-#: ../src/Utilities.cs:309
+#: ../src/TaskTreeView.cs:202 ../src/TaskTreeView.cs:699
+#: ../src/Utilities.cs:308
 msgid "No Date"
 msgstr "æ²?æ??æ?¥æ??"
 
-#: ../src/TaskTreeView.cs:201
-#: ../src/TaskTreeView.cs:676
+#: ../src/TaskTreeView.cs:203 ../src/TaskTreeView.cs:704
 msgid "Choose Date..."
 msgstr "é?¸æ??æ?¥æ??â?¦"
 
 #. Title for Notes Column
-#: ../src/TaskTreeView.cs:217
+#: ../src/TaskTreeView.cs:219
 msgid "Notes"
 msgstr "å??註"
 
 #. Title for Timer Column
-#: ../src/TaskTreeView.cs:234
+#: ../src/TaskTreeView.cs:236
 msgid "Timer"
 msgstr "è¨?æ??å?¨"
 
-#: ../src/TaskTreeView.cs:416
+#: ../src/TaskTreeView.cs:281
+#, fuzzy
+msgid "Task Completed"
+msgstr "å·²å®?æ??"
+
+#: ../src/TaskTreeView.cs:436
 msgid "M/d/yy - ddd"
 msgstr "d/M/yy - ddd"
 
+#: ../src/TaskTreeView.cs:594
+msgid "Action Canceled"
+msgstr ""
+
+#: ../src/TaskTreeView.cs:859
+#, csharp-format
+msgid "Completing Task In: {0}"
+msgstr ""
+
 #. The new task entry widget
 #. Clear the entry if it contains the default text
-#: ../src/TaskWindow.cs:152
-#: ../src/TaskWindow.cs:835
-#: ../src/TaskWindow.cs:845
-#: ../src/TaskWindow.cs:856
+#: ../src/TaskWindow.cs:149 ../src/TaskWindow.cs:837 ../src/TaskWindow.cs:893
+#: ../src/TaskWindow.cs:903 ../src/TaskWindow.cs:914
 msgid "New task..."
 msgstr "��工��"
 
-#: ../src/TaskWindow.cs:167
+#: ../src/TaskWindow.cs:165
 msgid "_Add"
 msgstr "�� (_A)"
 
-#: ../src/TaskWindow.cs:172
+#: ../src/TaskWindow.cs:170
 msgid "_Add Task"
 msgstr "��工� (_A)"
 
-#: ../src/TaskWindow.cs:261
+#: ../src/TaskWindow.cs:257
 msgid "Overdue"
 msgstr "é??æ??"
 
-#: ../src/TaskWindow.cs:315
+#: ../src/TaskWindow.cs:311
 msgid "Next 7 Days"
 msgstr "����天"
 
-#: ../src/TaskWindow.cs:331
+#: ../src/TaskWindow.cs:327
 msgid "Future"
 msgstr "��"
 
-#: ../src/TaskWindow.cs:1024
+#. Translators: This status shows the date and time when the task list was last refreshed
+#: ../src/TaskWindow.cs:474 ../src/TaskWindow.cs:1213
+#, csharp-format
+msgid "Tasks loaded: {0}"
+msgstr ""
+
+#. Show error status
+#: ../src/TaskWindow.cs:801
+msgid "Error creating a new task"
+msgstr ""
+
+#. Show successful status
+#: ../src/TaskWindow.cs:805
+msgid "Task created successfully"
+msgstr ""
+
+#: ../src/TaskWindow.cs:1089
 msgid "_Notes..."
 msgstr "註解� (_N)"
 
-#: ../src/TaskWindow.cs:1031
+#: ../src/TaskWindow.cs:1096
 msgid "_Delete task"
 msgstr "��工� (_D)"
 
-#: ../src/TaskWindow.cs:1036
+#: ../src/TaskWindow.cs:1101
 msgid "_Edit task"
 msgstr "編輯工� (_E)"
 
-#: ../src/TaskWindow.cs:1103
+#. TODO Needs translation.
+#: ../src/TaskWindow.cs:1133
+#, fuzzy
+msgid "_Change category"
+msgstr "å??é¡?"
+
+#: ../src/TaskWindow.cs:1162
+#, fuzzy
+msgid "Task deleted"
+msgstr "å·¥ä½?é??濾å?¨"
+
+#: ../src/TaskWindow.cs:1204
 msgid "Loading tasks..."
 msgstr "è®?å??å·¥ä½?中â?¦"
 
-#: ../src/Utilities.cs:275
+#: ../src/TaskWindow.cs:1225
+msgid "Not connected."
+msgstr ""
+
+#: ../src/Utilities.cs:274
 #, csharp-format
 msgid "Today, {0}"
 msgstr "�天�{0}"
 
-#: ../src/Utilities.cs:281
+#: ../src/Utilities.cs:280
 #, csharp-format
 msgid "Yesterday, {0}"
 msgstr "�天�{0}"
 
-#: ../src/Utilities.cs:287
+#: ../src/Utilities.cs:286
 #, csharp-format
 msgid "{0} days ago, {1}"
 msgstr "ç¶?é?? {0} 天ï¼?{1}"
 
-#: ../src/Utilities.cs:289
+#: ../src/Utilities.cs:288
 #, csharp-format
 msgid "{0} days ago"
 msgstr "ç¶?é?? {0} 天"
 
-#: ../src/Utilities.cs:294
+#: ../src/Utilities.cs:293
 #, csharp-format
 msgid "Tomorrow, {0}"
 msgstr "æ??天ï¼?{0}"
 
-#: ../src/Utilities.cs:300
+#: ../src/Utilities.cs:299
 #, csharp-format
 msgid "In {0} days, {1}"
 msgstr "� {0} 天���{1}"
 
-#: ../src/Utilities.cs:302
+#: ../src/Utilities.cs:301
 #, csharp-format
 msgid "In {0} days"
 msgstr "å?¨ {0} ä¹?å?§"
 
-#: ../src/Utilities.cs:306
+#: ../src/Utilities.cs:305
 msgid "MMMM d, h:mm tt"
 msgstr "MMMM d, h:mm tt"
 
-#: ../src/Utilities.cs:307
+#: ../src/Utilities.cs:306
 msgid "MMMM d"
 msgstr "d MMMM"
 
-#: ../src/Utilities.cs:312
+#: ../src/Utilities.cs:311
 msgid "MMMM d yyyy, h:mm tt"
 msgstr "d MMMM yyyy, h:mm tt"
 
-#: ../src/Utilities.cs:313
+#: ../src/Utilities.cs:312
 msgid "MMMM d yyyy"
 msgstr "d MMMM yyyy"
 
-#: ../src/Utilities.cs:322
-msgid "Sunday"
-msgstr "æ??æ??æ?¥"
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:65
+msgid "Click Here to Connect"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:71
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:142
+msgid "You are currently connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:75
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:147
+msgid "You are currently connected as"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:79
+msgid "You are not connected"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:112
+msgid "Remember the Milk not responding. Try again later."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:119
+msgid "Click Here After Authorizing"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:122
+msgid "Set the default browser and try again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:125
+msgid "Processing..."
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:135
+msgid "Failed, Try Again"
+msgstr ""
+
+#: ../src/Backends/Rtm/RtmPreferencesWidget.cs:139
+msgid "Thank You"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:47
+msgid "th,st,nd,rd"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:49
+#, fuzzy
+msgid "today"
+msgstr "�天"
+
+#: ../src/libtasque/TaskParser.cs:51
+#, fuzzy
+msgid "tomorrow"
+msgstr "æ??天"
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:54
+msgid "month|months"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:57
+msgid "week|weeks"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:60
+msgid "year|years"
+msgstr ""
+
+#. L10N: Don't forget to include the plural value, if any
+#: ../src/libtasque/TaskParser.cs:63
+msgid "day|days"
+msgstr ""
+
+#: ../src/libtasque/TaskParser.cs:199
+msgid "due before|due by|due"
+msgstr ""
+
+#. L10N: Examples could be: "Next Month", "Next Monday"
+#: ../src/libtasque/TaskParser.cs:224
+msgid "next"
+msgstr ""
+
+#. L10N: Examples could be: "On April 1st", "On Wednesday"
+#: ../src/libtasque/TaskParser.cs:229
+msgid "on"
+msgstr ""
+
+#. L10N: Examples could be: "In 2 weeks", "In 3 months"
+#: ../src/libtasque/TaskParser.cs:234
+msgid "in"
+msgstr ""
+
+#. "Today and Tomorrow" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:248
+msgid "u T"
+msgstr ""
+
+#. Represents: "Next" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:250
+msgid "n w|n m|n y|n D"
+msgstr ""
+
+#. Represents "Due" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:252
+msgid "u o D|u M O|u M N|u O|u M"
+msgstr ""
+
+#. Represents "On" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:254
+msgid "o D|o O"
+msgstr ""
+
+#. Represents "In" expression. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:256
+msgid "i N d|i d|i N w|i w|i N m|i m|i N y|i y"
+msgstr ""
+
+#. Represents all other expressions not using tokens. More information in TRANSLATORS
+#: ../src/libtasque/TaskParser.cs:258
+msgid "T|D|M O|M N|O|A"
+msgstr ""
+
+#, fuzzy
+#~ msgid "New task1..."
+#~ msgstr "��工��"
 
-#: ../src/Utilities.cs:324
-msgid "Monday"
-msgstr "æ??æ??ä¸?"
+#~ msgid "Sunday"
+#~ msgstr "æ??æ??æ?¥"
 
-#: ../src/Utilities.cs:326
-msgid "Tuesday"
-msgstr "æ??æ??äº?"
+#~ msgid "Monday"
+#~ msgstr "æ??æ??ä¸?"
 
-#: ../src/Utilities.cs:328
-msgid "Wednesday"
-msgstr "æ??æ??ä¸?"
+#~ msgid "Tuesday"
+#~ msgstr "æ??æ??äº?"
 
-#: ../src/Utilities.cs:330
-msgid "Thursday"
-msgstr "æ??æ??å??"
+#~ msgid "Wednesday"
+#~ msgstr "æ??æ??ä¸?"
 
-#: ../src/Utilities.cs:332
-msgid "Friday"
-msgstr "æ??æ??äº?"
+#~ msgid "Thursday"
+#~ msgstr "æ??æ??å??"
 
-#: ../src/Utilities.cs:334
-msgid "Saturday"
-msgstr "æ??æ??å?­"
+#~ msgid "Friday"
+#~ msgstr "æ??æ??äº?"
 
-#. Then try some more natural language parsing
-#. A regular expression to capture a task that is due today
-#: ../src/Utilities.cs:380
-msgid "^(?<task>.+)\\s+today\\W*$"
-msgstr "^(?<task>.+)\\s+today\\W*$"
+#~ msgid "Saturday"
+#~ msgstr "æ??æ??å?­"
 
-#. A regular expression to capture a task that is due tomorrow
-#: ../src/Utilities.cs:382
-msgid "^(?<task>.+)\\s+tomorrow\\W*$"
-msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgid "^(?<task>.+)\\s+today\\W*$"
+#~ msgstr "^(?<task>.+)\\s+today\\W*$"
 
+#~ msgid "^(?<task>.+)\\s+tomorrow\\W*$"
+#~ msgstr "^(?<task>.+)\\s+tomorrow\\W*$"
diff --git a/src/Makefile.am b/src/Makefile.am
index 45f348a..f62d6d2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -83,12 +83,7 @@ CSFILES = \
 	$(srcdir)/TaskWindow.cs \
 	$(srcdir)/TaskTreeView.cs \
 	$(srcdir)/Utilities.cs \
-	$(srcdir)/libtasque/IBackend.cs \
-	$(srcdir)/libtasque/ICategory.cs \
-	$(srcdir)/libtasque/ITask.cs \
-	$(srcdir)/libtasque/INote.cs \
-	$(srcdir)/libtasque/TaskPriority.cs \
-	$(srcdir)/libtasque/TaskState.cs \
+	$(TASQUEDLL_CSFILES) \
 	\
 	$(DUMMY_CSFILES) \
 	\
@@ -102,6 +97,34 @@ CSFILES = \
 	\
 	$(HIVEMINDER_CSFILES)
 
+TASQUEDLL_CSFILES = \
+	$(srcdir)/libtasque/DateFormatterFactory.cs \
+	$(srcdir)/libtasque/Extensions.cs \
+	$(srcdir)/libtasque/IBackend.cs \
+	$(srcdir)/libtasque/ICategory.cs \
+	$(srcdir)/libtasque/INote.cs \
+	$(srcdir)/libtasque/ITask.cs \
+	$(srcdir)/libtasque/RegularExpressionFormatter.cs \
+	$(srcdir)/libtasque/TaskParser.cs \
+	$(srcdir)/libtasque/TaskPriority.cs \
+	$(srcdir)/libtasque/TaskState.cs \
+	$(srcdir)/libtasque/TranslatableToken.cs \
+	$(foreach file,$(TASQUEDLL_FORMATTERS_CSFILES), $(addprefix $(srcdir)/libtasque/DateFormatters/, $(file)))
+
+TASQUEDLL_FORMATTERS_CSFILES = \
+	DateSeparatedFormatter.cs \
+	DayFormatter.cs \
+	DateFormatter.cs \
+	IDateFormatter.cs \
+	MonthFormatter.cs \
+	OrdinalFormatter.cs \
+	QuantityFormatter.cs \
+	StringInsensitiveComparer.cs \
+	TodayTomorrowFormatter.cs \
+	WeekdayFormatter.cs \
+	WeekFormatter.cs \
+	YearFormatter.cs
+
 RESOURCES = \
 	-resource:$(top_srcdir)/data/images/tasque-16.png \
 	-resource:$(top_srcdir)/data/images/tasque-22.png \
@@ -125,6 +148,7 @@ RESOURCES = \
 
 ASSEMBLIES =  \
 	-r:System \
+	-r:System.Core \
 	-r:Mono.Posix \
 	-r:System.Xml \
 	-r:$(top_builddir)/RtmNet/RtmNet \
@@ -185,6 +209,7 @@ EXTRA_DIST = \
 	$(srcdir)/Backends/Hiveminder/*.cs \
 	$(srcdir)/Backends/Hiveminder/service/*.cs \
 	$(srcdir)/libtasque/*.cs \
+	$(srcdir)/libtasque/DateFormatters/* \
 	$(srcdir)/libtasque/libtasque.csproj
 
 pkgconfigdir = $(libdir)/pkgconfig
diff --git a/src/RemoteControl.cs b/src/RemoteControl.cs
index 34b9277..3681960 100644
--- a/src/RemoteControl.cs
+++ b/src/RemoteControl.cs
@@ -120,7 +120,7 @@ namespace Tasque
 			// out of the taskName.
 			DateTime taskDueDate = DateTime.MinValue;
 			if (parseDate && Application.Preferences.GetBool (Preferences.ParseDateEnabledKey))
-				Utilities.ParseTaskText (
+				TaskParser.Instance.TryParse (
 				                         taskName,
 				                         out taskName,
 				                         out taskDueDate);
diff --git a/src/TaskTreeView.cs b/src/TaskTreeView.cs
index 202ca61..8511ff7 100644
--- a/src/TaskTreeView.cs
+++ b/src/TaskTreeView.cs
@@ -640,7 +640,7 @@ namespace Tasque
 				
 				string parsedTaskText;
 				DateTime parsedDueDate;
-				Utilities.ParseTaskText (newText, out parsedTaskText, out parsedDueDate);
+				TaskParser.Instance.TryParse (newText, out parsedTaskText, out parsedDueDate);
 				
 				if (parsedDueDate != DateTime.MinValue)
 					task.DueDate = parsedDueDate;
diff --git a/src/TaskWindow.cs b/src/TaskWindow.cs
index e51c221..eaedaf4 100644
--- a/src/TaskWindow.cs
+++ b/src/TaskWindow.cs
@@ -952,7 +952,7 @@ namespace Tasque
 			DateTime taskDueDate = DateTime.MinValue;
 			string taskName;
 			if (Application.Preferences.GetBool (Preferences.ParseDateEnabledKey))
-				Utilities.ParseTaskText (
+				TaskParser.Instance.TryParse (
 				                         enteredTaskText,
 				                         out taskName,
 				                         out taskDueDate);
diff --git a/src/Utilities.cs b/src/Utilities.cs
index a5e26fe..ac5135e 100644
--- a/src/Utilities.cs
+++ b/src/Utilities.cs
@@ -2,9 +2,11 @@
  *  Utilities.cs
  *
  *  Copyright (C) 2007 Novell, Inc.
+ *  Copyright (C) 2010 Mario Carrion
  *  Written by:
  * 		Calvin Gaisford <calvinrg gmail com>
  *		Boyd Timothy <btimothy gmail com>
+ * 		Mario Carrion <mario carrion mx>
  ****************************************************************************/
 
 /*  THIS FILE IS LICENSED UNDER THE MIT LICENSE AS OUTLINED IMMEDIATELY BELOW: 
@@ -41,7 +43,8 @@ using Gtk;
 
 namespace Tasque
 {
-	internal class Utilities
+	// TODO: Change this class to internal
+	public static partial class Utilities
 	{
 		public static string ReplaceString (string originalString, string searchString, string replaceString)
 		{
@@ -310,102 +313,6 @@ namespace Tasque
 
 			return pretty_str;
 		}
-		
-		public static string GetLocalizedDayOfWeek (System.DayOfWeek dayOfWeek)
-		{
-			switch (dayOfWeek) {
-			case DayOfWeek.Sunday:
-				return Catalog.GetString ("Sunday");
-			case DayOfWeek.Monday:
-				return Catalog.GetString ("Monday");
-			case DayOfWeek.Tuesday:
-				return Catalog.GetString ("Tuesday");
-			case DayOfWeek.Wednesday:
-				return Catalog.GetString ("Wednesday");
-			case DayOfWeek.Thursday:
-				return Catalog.GetString ("Thursday");
-			case DayOfWeek.Friday:
-				return Catalog.GetString ("Friday");
-			case DayOfWeek.Saturday:
-				return Catalog.GetString ("Saturday");
-			}
-			
-			return string.Empty;
-		}
-		
-		/// <summary>
-		/// Parse the task name in order to derive due date information.
-		/// </summary>
-		/// <param name="enteredTaskText">
-		/// A <see cref="System.String"/> representing the text entered
-		/// into the task name field.
-		/// </param>
-		/// <param name="parsedTaskText">
-		/// The enteredTaskText with the due date section of the string
-		/// removed.
-		/// </param>
-		/// <param name="parsedDueDate">
-		/// The due date derived from enteredTaskText, or
-		/// DateTime.MinValue if no date information was found.
-		/// </param>
-		public static void ParseTaskText (string enteredTaskText, out string parsedTaskText, out DateTime parsedDueDate)
-		{
-			// First, look for ways that the right side of the entered
-			// text can be directly parsed as a date
-			string[] words = enteredTaskText.Split (' ');
-			for (int i = 1; i < words.Length; i++) {
-				string possibleDate = string.Join (" ", words, i, words.Length - i);
-				DateTime result;
-				if (DateTime.TryParse (possibleDate, out result)) {
-					// Favor future dates, unless year was specifically mentioned
-					if (!possibleDate.Contains (result.Year.ToString ()))
-						while (result < DateTime.Today)
-							result = result.AddYears (1);
-					
-					// Set task due date and return the task
-					// name with the date part removed.
-					parsedDueDate = result;
-					parsedTaskText = string.Join (" ", words, 0, i);
-					return;
-				}
-			}
-			
-			// Then try some more natural language parsing
-			
-			// A regular expression to capture a task that is due today
-			string today = Catalog.GetString (@"^(?<task>.+)\s+today\W*$");
-			// A regular expression to capture a task that is due tomorrow
-			string tomorrow = Catalog.GetString (@"^(?<task>.+)\s+tomorrow\W*$");
-			
-			// Additional regular expressions to consider using
-			//string abbrevDate = Catalog.GetString (@"^(?<task>.+)(on )?(the )?(?<day>\d{1,2})((th)|(nd)|(rd)|(st))\W*$");
-			//string nextDayName = Catalog.GetString (@"^(?<task>.+)(on )?next\s+(?<day>[a-z]+)\W*$");
-			//string dayName = Catalog.GetString (@"^(?<task>.+)\s+(on )?(?<day>[a-z]+)\W*$");
-			
-			Match match = Regex.Match (enteredTaskText, today, RegexOptions.IgnoreCase);
-			if (match.Success) {
-				string trimmedTaskText = match.Groups ["task"].Value;
-				if (!string.IsNullOrEmpty (trimmedTaskText)) {
-					parsedDueDate = DateTime.Now;
-					parsedTaskText = trimmedTaskText;
-					return;
-				}
-			}
-			
-			match = Regex.Match (enteredTaskText, tomorrow, RegexOptions.IgnoreCase);
-			if (match.Success) {
-				string trimmedTaskText = match.Groups ["task"].Value;
-				if (!string.IsNullOrEmpty (trimmedTaskText)) {
-					parsedDueDate = DateTime.Now.AddDays (1);
-					parsedTaskText = trimmedTaskText;
-					return;
-				}
-			}
-			
-			parsedTaskText = enteredTaskText;
-			parsedDueDate = DateTime.MinValue;
-			return;
-		}
 
 		/// <summary>
 		/// This returns the hexadecimal value of an GDK color.
diff --git a/src/libtasque/DateFormatterFactory.cs b/src/libtasque/DateFormatterFactory.cs
new file mode 100644
index 0000000..825b180
--- /dev/null
+++ b/src/libtasque/DateFormatterFactory.cs
@@ -0,0 +1,55 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Reflection;
+using System.Collections.Generic;
+using Tasque.DateFormatters;
+
+namespace Tasque {
+
+	sealed class DateFormatterFactory {
+
+		public static readonly DateFormatterFactory Instance = new DateFormatterFactory ();
+
+		private DateFormatterFactory ()
+		{
+			dateFormatters = new Dictionary<Type, IDateFormatter>();
+		}
+
+		public IDateFormatter Get (Type type)
+		{
+			IDateFormatter formatter = null;
+			if (dateFormatters.TryGetValue (type, out formatter))
+				return formatter;
+			else {
+				// We want to crash if Type is not IDateFormatter
+				formatter = (IDateFormatter) Activator.CreateInstance (type);
+				dateFormatters [type] = formatter;
+				return formatter;
+			}
+		}
+
+		Dictionary<Type, IDateFormatter> dateFormatters;
+	}
+}
diff --git a/src/libtasque/DateFormatters/DateFormatter.cs b/src/libtasque/DateFormatters/DateFormatter.cs
new file mode 100644
index 0000000..0f86675
--- /dev/null
+++ b/src/libtasque/DateFormatters/DateFormatter.cs
@@ -0,0 +1,81 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+using Tasque;
+
+namespace Tasque.DateFormatters {
+
+	class DateFormatter : IDateFormatter {
+		
+		// Formatting: Month and OrdinalNumber
+		public DateTime GetDate (Match match)
+		{
+			// Checking ordinal and cardinal numbers
+			bool dayProvided = !(string.IsNullOrEmpty (match.Groups ["O"].Value)
+			                     && string.IsNullOrEmpty (match.Groups ["N"].Value));
+			bool monthProvided = !string.IsNullOrEmpty (match.Groups ["M"].Value);
+			if (!monthProvided && !dayProvided)
+				return DateTime.MinValue;
+
+			int month = 0;
+			if (!monthProvided)
+				month = DateTime.Now.Month;
+			else {
+				month = Array.IndexOf (TaskParser.MonthsArray,
+				                       match.Groups ["M"].Value.ToLower ());
+				if (month == -1)
+					return DateTime.MinValue;
+				// Months start in 1.
+				month = (month / 2) + 1;
+			}
+
+			int day = -1;
+			if (dayProvided) {
+				if (!string.IsNullOrEmpty (match.Groups ["N"].Value))
+					int.TryParse (match.Groups ["N"].Value, out day);
+				else if (!match.Groups ["O"].Value.ToOrdinalNumber (out day))
+					return DateTime.MinValue;
+			}
+			int year =  DateTime.Today.Year;
+			if (DateTime.Today.Month > month)
+				year++;
+
+			// If no day is provided, default is last one of the month
+			if (day == -1)
+				day = DateTime.DaysInMonth (year, month);
+
+			try {
+				return new DateTime (year, month, day);
+			} catch (Exception ex) {
+				if (ex is ArgumentOutOfRangeException
+				    || ex is ArgumentException) {
+					return DateTime.MinValue;
+				} else
+					throw;
+			}
+		}
+	}
+}
diff --git a/src/libtasque/DateFormatters/DateSeparatedFormatter.cs b/src/libtasque/DateFormatters/DateSeparatedFormatter.cs
new file mode 100644
index 0000000..e7738cc
--- /dev/null
+++ b/src/libtasque/DateFormatters/DateSeparatedFormatter.cs
@@ -0,0 +1,42 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Tasque.DateFormatters {
+
+	class DateSeparatedFormatter : IDateFormatter {
+
+		public DateTime GetDate (Match match)
+		{
+			DateTime dateTime = DateTime.MinValue;
+			try {
+				dateTime = Convert.ToDateTime (match.Groups ["A"].Value);
+			} catch (FormatException) {
+				dateTime = DateTime.MinValue;
+			}
+			return dateTime;
+		}
+	}
+}
diff --git a/src/libtasque/DateFormatters/DayFormatter.cs b/src/libtasque/DateFormatters/DayFormatter.cs
new file mode 100644
index 0000000..5711ed0
--- /dev/null
+++ b/src/libtasque/DateFormatters/DayFormatter.cs
@@ -0,0 +1,45 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+namespace Tasque.DateFormatters {
+
+	class DayFormatter : QuantityFormatter {
+
+		public DayFormatter ()
+			: base ("d")
+		{
+		}
+
+		public override DateTime GetDate (int quantity)
+		{
+			return DateTime.Now.AddDays (quantity);
+		}
+
+		protected override string RegularExpression {
+			get { return TaskParser.Day; }
+		}
+
+	}
+}
diff --git a/src/libtasque/DateFormatters/IDateFormatter.cs b/src/libtasque/DateFormatters/IDateFormatter.cs
new file mode 100644
index 0000000..4c48d78
--- /dev/null
+++ b/src/libtasque/DateFormatters/IDateFormatter.cs
@@ -0,0 +1,33 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Tasque.DateFormatters {
+
+	interface IDateFormatter {
+		DateTime GetDate (Match match);
+	}
+
+}
diff --git a/src/libtasque/DateFormatters/MonthFormatter.cs b/src/libtasque/DateFormatters/MonthFormatter.cs
new file mode 100644
index 0000000..d3c1110
--- /dev/null
+++ b/src/libtasque/DateFormatters/MonthFormatter.cs
@@ -0,0 +1,46 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+namespace Tasque.DateFormatters {
+
+	class MonthFormatter : QuantityFormatter {
+
+		public MonthFormatter ()
+			: base ("m")
+		{
+		}
+
+		public override DateTime GetDate (int quantity)
+		{
+			return DateTime.Now.AddMonths (quantity);
+		}
+
+		protected override string RegularExpression {
+			get { return TaskParser.Month; }
+		}
+
+	}
+
+}
diff --git a/src/libtasque/DateFormatters/OrdinalFormatter.cs b/src/libtasque/DateFormatters/OrdinalFormatter.cs
new file mode 100644
index 0000000..450b9ce
--- /dev/null
+++ b/src/libtasque/DateFormatters/OrdinalFormatter.cs
@@ -0,0 +1,57 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Tasque.DateFormatters {
+
+	class OrdinalFormatter : IDateFormatter {
+
+		public DateTime GetDate (Match match)
+		{
+			string ordinalDate = match.Groups ["O"].Value;
+			if (string.IsNullOrEmpty (ordinalDate))
+				return DateTime.MinValue;
+
+			// If no day is provided, default is 1st
+			int day = 0;
+			if (!ordinalDate.ToOrdinalNumber (out day))
+				return DateTime.MinValue;
+
+			try {
+				return new DateTime (DateTime.Now.Year,
+				                      DateTime.Now.Month,
+				                      day);
+			} catch (Exception ex) {
+				if (ex is ArgumentOutOfRangeException
+				    || ex is ArgumentException) {
+					return DateTime.MinValue;
+				} else
+					throw;
+			}
+		}
+
+
+	}
+}
diff --git a/src/libtasque/DateFormatters/QuantityFormatter.cs b/src/libtasque/DateFormatters/QuantityFormatter.cs
new file mode 100644
index 0000000..2137550
--- /dev/null
+++ b/src/libtasque/DateFormatters/QuantityFormatter.cs
@@ -0,0 +1,99 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using System.Linq;
+
+namespace Tasque.DateFormatters {
+
+	abstract class QuantityFormatter : IDateFormatter {
+
+		#region Constructor
+
+		protected QuantityFormatter (string token)
+		{
+			this.token = token;
+		}
+
+		#endregion
+
+		#region IDateFormatter
+
+		public DateTime GetDate (Match match)
+		{
+			if (string.IsNullOrEmpty (match.Groups [token].Value)
+			    || !Translations.Contains (match.Groups [token].Value,
+			                               new StringInsensitiveComparer ()))
+				return DateTime.MinValue;
+
+			return GetDate (GetCardinal (match));
+		}
+
+		#endregion
+		
+		#region Public Members
+
+		public abstract DateTime GetDate (int quantity);
+
+		#endregion
+		
+		#region Protected Members
+
+		protected List<string> Translations {
+			get {
+				if (translations == null)
+					translations = new List<string> (RegularExpression.Split ('|'));
+				return translations;
+			}
+		}
+
+		protected abstract string RegularExpression {
+			get;
+		}
+
+		protected int GetCardinal (Match match)
+		{
+			int cardinal = 1;
+			string cardinalStr = match.Groups ["N"].Value;
+			// We don't validate "valid" literal value, 
+			// for example, in English:
+			// "Something in months" or "Something in 3 month"
+			if (!string.IsNullOrEmpty (cardinalStr)) {
+				if (!int.TryParse (cardinalStr, out cardinal))
+					throw new ArgumentException ("cardinal");
+			}
+			return cardinal;
+		}
+
+		#endregion
+		
+		#region Private Members
+
+		List<string> translations;
+		string token;
+
+		#endregion
+	}
+}
diff --git a/src/libtasque/DateFormatters/StringInsensitiveComparer.cs b/src/libtasque/DateFormatters/StringInsensitiveComparer.cs
new file mode 100644
index 0000000..632bf3e
--- /dev/null
+++ b/src/libtasque/DateFormatters/StringInsensitiveComparer.cs
@@ -0,0 +1,40 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System.Collections.Generic;
+
+namespace Tasque.DateFormatters {
+
+	class StringInsensitiveComparer : IEqualityComparer<string> {
+
+		public bool Equals (string str1, string str2)
+		{
+			return string.Compare (str1, str2, true) == 0;
+		}
+
+		public int GetHashCode (string str1)
+		{
+			return str1.GetHashCode ();
+		}
+	}
+}
diff --git a/src/libtasque/DateFormatters/TodayTomorrowFormatter.cs b/src/libtasque/DateFormatters/TodayTomorrowFormatter.cs
new file mode 100644
index 0000000..fa61bad
--- /dev/null
+++ b/src/libtasque/DateFormatters/TodayTomorrowFormatter.cs
@@ -0,0 +1,45 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Tasque.DateFormatters {
+
+	class TodayTomorrowFormatter : IDateFormatter {
+
+		public DateTime GetDate (Match match)
+		{
+			string t = match.Groups ["T"].Value;
+
+			if (string.Compare (t, TaskParser.Tomorrow, true) == 0)
+				return DateTime.Now.AddDays (1);
+			else if (string.Compare (t, TaskParser.Today, true) == 0)
+				return DateTime.Now;
+
+			return DateTime.MinValue;
+		}
+
+	}
+
+}
diff --git a/src/libtasque/DateFormatters/WeekFormatter.cs b/src/libtasque/DateFormatters/WeekFormatter.cs
new file mode 100644
index 0000000..961b674
--- /dev/null
+++ b/src/libtasque/DateFormatters/WeekFormatter.cs
@@ -0,0 +1,45 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+namespace Tasque.DateFormatters {
+
+	class WeekFormatter : QuantityFormatter {
+
+		public WeekFormatter ()
+			: base ("w")
+		{
+		}
+
+		public override DateTime GetDate (int quantity)
+		{
+			return DateTime.Now.AddDays (7 * quantity);
+		}
+
+		protected override string RegularExpression {
+			get { return TaskParser.Week; }
+		}
+
+	}
+}
diff --git a/src/libtasque/DateFormatters/WeekdayFormatter.cs b/src/libtasque/DateFormatters/WeekdayFormatter.cs
new file mode 100644
index 0000000..4c78c68
--- /dev/null
+++ b/src/libtasque/DateFormatters/WeekdayFormatter.cs
@@ -0,0 +1,49 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Tasque.DateFormatters {
+
+	class WeekdayFormatter : IDateFormatter {
+
+		public DateTime GetDate (Match match)
+		{
+			string weekDay = match.Groups ["D"].Value;
+			if (string.IsNullOrEmpty (weekDay))
+				return DateTime.MinValue;
+
+			DateTime todayDateTime = DateTime.Now;
+			uint today = todayDateTime.DayOfWeek.ToUint ();
+			uint future = weekDay.ToDayOfWeek ().ToUint ();
+			if (future > today) 
+				return DateTime.Now.AddDays (future - today);
+			else if (today > future)
+				return DateTime.Now.AddDays (7 - (today - future));
+			else // future is in one week
+				return DateTime.Now.AddDays (7);
+		}
+
+	}
+}
diff --git a/src/libtasque/DateFormatters/YearFormatter.cs b/src/libtasque/DateFormatters/YearFormatter.cs
new file mode 100644
index 0000000..08c5e23
--- /dev/null
+++ b/src/libtasque/DateFormatters/YearFormatter.cs
@@ -0,0 +1,45 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+namespace Tasque.DateFormatters {
+
+	class YearFormatter : QuantityFormatter {
+
+		public YearFormatter ()
+			: base ("y")
+		{
+		}
+
+		public override DateTime GetDate (int quantity)
+		{
+			return DateTime.Now.AddYears (quantity);
+		}
+
+		protected override string RegularExpression {
+			get { return TaskParser.Year; }
+		}
+
+	}
+}
diff --git a/src/libtasque/Extensions.cs b/src/libtasque/Extensions.cs
new file mode 100644
index 0000000..204f24f
--- /dev/null
+++ b/src/libtasque/Extensions.cs
@@ -0,0 +1,127 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Linq;
+
+namespace Tasque {
+
+	internal static class Extensions {
+
+		#region DayOfWeek Extensions
+
+		internal static uint ToUint (this DayOfWeek dayOfWeek)
+		{
+			switch (dayOfWeek) {
+			case DayOfWeek.Sunday:
+				return 0;
+			case DayOfWeek.Monday:
+				return 1;
+			case DayOfWeek.Tuesday:
+				return 2;
+			case DayOfWeek.Wednesday:
+				return 3;
+			case DayOfWeek.Thursday:
+				return 4;
+			case DayOfWeek.Friday:
+				return 5;
+			case DayOfWeek.Saturday:
+			default:
+				return 6;
+			}
+		}
+
+		#endregion
+
+		#region String Extensions
+
+		internal static DayOfWeek ToDayOfWeek (this string str)
+		{
+			str = str.ToLower ();
+			int indexOf
+				= Array.IndexOf (TaskParser.WeekdaysArray, str);
+			if (indexOf == -1)
+				throw new ArgumentException (string.Format ("Wrong day {0}",
+				                                             str));
+
+			switch (indexOf) {
+			case 0:
+			case 1:
+				return DayOfWeek.Sunday;
+			case 2:
+			case 3:
+				return DayOfWeek.Monday;
+			case 4:
+			case 5:
+				return DayOfWeek.Tuesday;
+			case 6:
+			case 7:
+				return DayOfWeek.Wednesday;
+			case 8:
+			case 9:
+				return DayOfWeek.Thursday;
+			case 10:
+			case 11:
+				return DayOfWeek.Friday;
+			case 12:
+			case 13:
+			default:
+				return DayOfWeek.Saturday;
+			}
+		}
+
+		internal static bool IsMonth (this string str)
+		{
+			return TaskParser.MonthsArray.Contains (str.ToLower ());
+		}
+
+		internal static bool IsWeekday (this string str)
+		{
+			return TaskParser.WeekdaysArray.Contains (str.ToLower ());
+		}
+
+		internal static bool ToOrdinalNumber (this string ordinalDate,
+		                                        out int day)
+		{
+			day = -1;
+
+			int cardinal = 0;
+
+			int index = 0;
+			foreach (char c in ordinalDate) {
+				if (char.IsDigit (c))
+					index++;
+			}
+
+			string number = ordinalDate.Substring (0, index);
+			if (!int.TryParse (number, out cardinal))
+				return false;
+
+			day = cardinal;
+			return true;
+		}
+		
+		#endregion
+
+	}
+}
diff --git a/src/libtasque/RegularExpressionFormatter.cs b/src/libtasque/RegularExpressionFormatter.cs
new file mode 100644
index 0000000..5b01387
--- /dev/null
+++ b/src/libtasque/RegularExpressionFormatter.cs
@@ -0,0 +1,60 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using Tasque.DateFormatters;
+
+namespace Tasque {
+
+	// Used to keep a relation of Regular Expression and the
+	// formatters used to get the date.
+	class RegularExpressionFormatter {
+
+		public RegularExpressionFormatter ()
+		{
+		}
+
+		public string RegularExpression {
+			get { return regularExpression; }
+			set {
+				if (value == null)
+					throw new ArgumentNullException ("RegularExpression");
+				regularExpression = value;
+			}
+		}
+
+		public IEnumerable<IDateFormatter> Formatters {
+			get { return formatters; }
+			set {
+				if (value == null)
+					throw new ArgumentNullException ("Formatters");
+				formatters = value;
+			}
+		}
+
+		IEnumerable<IDateFormatter> formatters;
+		string regularExpression;
+	}
+
+}
diff --git a/src/libtasque/TaskParser.cs b/src/libtasque/TaskParser.cs
new file mode 100644
index 0000000..aebf08a
--- /dev/null
+++ b/src/libtasque/TaskParser.cs
@@ -0,0 +1,365 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using Mono.Unix;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+using Tasque.DateFormatters;
+
+namespace Tasque {
+	
+	// TODO: Support for time parsing
+
+	public class TaskParser {
+
+		#region Public Members
+
+		public static TaskParser Instance {
+			get {
+				if (instance == null)
+					instance = new TaskParser ();
+				return instance;
+			}
+		}
+		
+		public static string OrdinalSuffixes = Catalog.GetString ("th,st,nd,rd");
+		
+		public static string Today = Catalog.GetString ("today");
+
+		public static string Tomorrow = Catalog.GetString ("tomorrow");
+
+		// L10N: Don't forget to include the plural value, if any
+		public static string Month = Catalog.GetString ("month|months");
+
+		// L10N: Don't forget to include the plural value, if any
+		public static string Week = Catalog.GetString ("week|weeks");
+
+		// L10N: Don't forget to include the plural value, if any
+		public static string Year = Catalog.GetString ("year|years");
+
+		// L10N: Don't forget to include the plural value, if any
+		public static string Day = Catalog.GetString ("day|days");
+
+		public static string[] MonthsArray {
+			get {
+				if (months == null) {
+					List<string> list  = new List<string> (12);
+					foreach (int month in Enumerable.Range (1, 12)) {
+						DateTime date = new DateTime (1900, month, 1);
+						list.Add (date.ToString ("MMMM").ToLower ());
+						list.Add (date.ToString ("MMM").ToLower ());
+					}
+					months = list.ToArray ();
+				}
+				return months;
+			}
+		}
+
+		public static string[] WeekdaysArray {
+			get {
+				if (weekdays == null) {
+					List<string> list  = new List<string> (7);
+					// To begin on Sunday January 7th 1900.
+					// Sunday is our index 0
+					foreach (int day in Enumerable.Range (7, 7)) {
+						DateTime date = new DateTime (1900, 1, day);
+						list.Add (date.ToString ("dddd").ToLower ());
+						list.Add (date.ToString ("ddd").ToLower ());
+					}
+					weekdays = list.ToArray ();
+				}
+				return weekdays;
+			}
+		}
+
+		public bool TryParse (string enteredTaskText,
+		                        out string parsedTaskText,
+		                        out DateTime dueDateTime)
+		{
+			if (fullExpression == null) {
+				fullExpression = string.Format ("{0}|{1}",
+				                                tokensExpression,
+				                                dateGroupExpression);
+	
+				// 1. Get all translatable token
+				translatableTokens = TranslatableTokens;
+	
+				// 2. Get all regular expressions, these are also translatable
+				//    and are based on the translatable tokens.
+				regExFormats = RegularExpressions;
+			}
+
+			dueDateTime = DateTime.MinValue;
+			parsedTaskText = enteredTaskText;
+			foreach (RegularExpressionFormatter format in regExFormats) {
+				string regEx = string.Format (@"^(?<task>.+?)\s*?{0}(?<eol>.*)$",
+				                               format.RegularExpression);
+				Match match = Regex.Match (enteredTaskText,
+				                           regEx,
+				                           RegexOptions.IgnoreCase);
+				if (match.Success) {
+					string trimmedTaskText = match.Groups ["task"].Value;
+
+					if (!string.IsNullOrEmpty (trimmedTaskText)) {
+						foreach (IDateFormatter formatter in format.Formatters) {
+							dueDateTime = formatter.GetDate (match);
+							if (dueDateTime != DateTime.MinValue)
+								break;
+						}
+						if (dueDateTime == DateTime.MinValue)
+							return false;
+
+						string trimmedEofText = match.Groups ["eol"].Value;
+						parsedTaskText = string.Format ("{0}{1}", trimmedTaskText, trimmedEofText);
+
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+
+		#endregion
+
+		#region Static Members
+
+		static TaskParser instance;
+		static string[] months;
+		static string[] weekdays;
+
+		#endregion
+		
+		#region Private Members
+
+		// All the translatable tokens and their possible formatters
+		// are defined here
+		Dictionary<char, TranslatableToken> TranslatableTokens {
+			get {
+				Dictionary<char, TranslatableToken> tokens
+					= new Dictionary<char, TranslatableToken> ();
+				// Months
+				tokens.Add ('M', new TranslatableToken () {
+					Formatter = typeof (DateFormatter),
+					Expression = string.Join ("|", MonthsArray)
+				});
+				// Weekdays
+				tokens.Add ('D', new TranslatableToken () {
+					Formatter = typeof (WeekdayFormatter),
+					Expression = string.Join ("|", WeekdaysArray)
+				});
+				// Date separated Formatter
+				tokens.Add ('A', new TranslatableToken () {
+					Formatter = typeof (DateSeparatedFormatter),
+					Expression = string.Format ("{0}",
+					                            @"[0-9]{1,2}(/|-)[0-9]{1,2}(((/|-)[0-9]{2,4}|/s))?")
+				});
+				// Today and Tomorrow
+				tokens.Add ('T', new TranslatableToken () {
+					Formatter = typeof (TodayTomorrowFormatter),
+					Expression = string.Format ("{0}|{1}", Today, Tomorrow)
+				});
+				// Ordinal Number
+				tokens.Add ('O', new TranslatableToken () {
+					Formatter = typeof (DateFormatter),
+					Expression = string.Format ("{0}({1})",
+					                            @"\d{1,2}",
+					                            OrdinalSuffixes.Replace (",", "|"))
+				});
+				// Cardinal Number
+				tokens.Add ('N', new TranslatableToken () {
+					Expression = string.Format ("{0}", @"[1-9][0-9]?")
+				});
+				// Due
+				tokens.Add ('u', new TranslatableToken () {
+					Expression = Catalog.GetString ("due before|due by|due")
+				});
+				// Day
+				tokens.Add ('d', new TranslatableToken () {
+					Formatter = typeof (DayFormatter),
+					Expression = Day
+				});
+				// Week
+				tokens.Add ('w', new TranslatableToken () {
+					Formatter = typeof (WeekFormatter),
+					Expression = Week
+				});
+				// Month
+				tokens.Add ('m', new TranslatableToken () {
+					Formatter = typeof (MonthFormatter),
+					Expression = Month
+				});
+				// Year
+				tokens.Add ('y', new TranslatableToken () {
+					Formatter = typeof (YearFormatter),
+					Expression = Year
+				});
+				// Next
+				tokens.Add ('n', new TranslatableToken () {
+					// L10N: Examples could be: "Next Month", "Next Monday"
+					Expression = Catalog.GetString ("next")
+				});
+				// On
+				tokens.Add ('o', new TranslatableToken () {
+					// L10N: Examples could be: "On April 1st", "On Wednesday"
+					Expression = Catalog.GetString ("on")
+				});
+				// In
+				tokens.Add ('i', new TranslatableToken () {
+					// L10N: Examples could be: "In 2 weeks", "In 3 months"
+					Expression = Catalog.GetString ("in")
+				});
+
+				return tokens;
+			}
+		}
+
+		List<RegularExpressionFormatter> RegularExpressions {
+			get {
+				List<RegularExpressionFormatter> regularExpressions
+					= new List<RegularExpressionFormatter> ();
+				List<string> translatableExpressions 
+					= new List<string> () {
+					// "Today and Tomorrow" expression. More information in TRANSLATORS
+					Catalog.GetString ("u T"),
+					// Represents: "Next" expression. More information in TRANSLATORS
+					Catalog.GetString ("n w|n m|n y|n D"),
+					// Represents "Due" expression. More information in TRANSLATORS
+					Catalog.GetString ("u o D|u M O|u M N|u O|u M"),
+					// Represents "On" expression. More information in TRANSLATORS
+					Catalog.GetString (@"o D|o O"),
+					// Represents "In" expression. More information in TRANSLATORS
+					Catalog.GetString (@"i N d|i d|i N w|i w|i N m|i m|i N y|i y"),
+					// Represents all other expressions not using tokens. More information in TRANSLATORS
+					Catalog.GetString (@"T|D|M O|M N|O|A")
+				};
+
+				foreach (string expression in translatableExpressions) {
+					foreach (string alternativeExpression 
+					         in GetAlternativesExpressions (expression)) {
+						regularExpressions.Add (new RegularExpressionFormatter () {
+						                           RegularExpression = GenerateRegularExpression (alternativeExpression),
+						                           Formatters = GetFormatters (alternativeExpression)
+						                        });
+					}
+				}
+				return regularExpressions;
+			}
+		}
+
+		#endregion
+
+		#region Private Members
+		
+		TaskParser ()
+		{
+		}
+
+		string GenerateRegularExpression (string translatedExpression)
+		{
+			List<string> expressionList = new List<string> ();
+			Regex regex = new Regex (fullExpression, RegexOptions.IgnoreCase);
+			foreach (Match match in regex.Matches (translatedExpression)) {
+				// We found a match for a string like this: "\Something\"
+				if (Regex.IsMatch (match.Value, dateGroupExpression)) {
+					Regex dateRegEx = new Regex (tokensExpression,
+					                             RegexOptions.IgnoreCase);
+					string date = "(?<date>";
+					List<string> dateList = new List<string> ();
+					foreach (Match token in dateRegEx.Matches (match.Value))
+						dateList.Add (GetFormatedToken (token));
+					date += string.Join (@"\s+", dateList.ToArray ()) + ")";
+					expressionList.Add (date);
+				// Using translated tokens
+				} else
+					expressionList.Add (GetFormatedToken (match));
+			}
+			return String.Join (@"\s+", expressionList.ToArray ());
+		}
+
+		string GetFormatedToken (Match match)
+		{
+			// It's a translatable token, we need it named.
+			if (match.Value.Length == 1) {
+				char token = match.Value [0];
+				string savedTokens = translatableTokens [token].Expression;
+				return string.Format (@"(?<{0}>\b({1})\b)", token, savedTokens);
+			// It's a "hardcoded" translated string. We need the complete word
+			} else
+				return string.Format (@"({0})", match.Value.Replace ("'", @"\b"));
+		}
+		
+		List<IDateFormatter> GetFormatters (string expression)
+		{
+			List<IDateFormatter> formatters = new List<IDateFormatter> ();
+			foreach (string str in expression.Split (' ')) {
+				char token = char.MinValue;
+				if (!char.TryParse (str, out token))
+					continue;
+
+				TranslatableToken translatableToken = null;
+				if (!translatableTokens.TryGetValue (token,
+				                                     out translatableToken))
+					continue;
+
+				if (translatableToken.Formatter == null)
+					continue;
+
+				IDateFormatter formatter = DateFormatterFactory
+					.Instance.Get (translatableToken.Formatter);
+				if (!formatters.Contains (formatter))
+					formatters.Add (formatter);
+			}
+			if (formatters.Count == 0)
+				throw new Exception ("No formatters");
+
+			return formatters;
+		}
+
+		// Spliting all "|" separated expressions (RegularExpressions)
+		List<string> GetAlternativesExpressions (string expression)
+		{
+			// Matches anything like this: "a b cd|e f g 'xy'"
+			string alternativesRegEx = @"(\w|\s|\'|\\)+((?<=\|)(\w|\s|\'|\\)+)*";
+
+			List<string> expressionList = new List<string> ();
+			Regex regex = new Regex (alternativesRegEx,
+			                         RegexOptions.IgnoreCase);
+			foreach (Match match in regex.Matches (expression))
+				expressionList.Add (match.Value);
+			return expressionList;
+		}
+
+		// Matches format and explicit '' delimited text
+		string tokensExpression = @"(\b\w\b|'\w+')+((?<=\s)(\b\w\b|'\w+'))*";
+		// Expression that defines the named group "<?date>"
+		string dateGroupExpression = @"(?>\\)(\b\w\b|'\w+')+(?>.*?\\)";
+
+		string fullExpression;
+		List<RegularExpressionFormatter> regExFormats;
+		Dictionary<char, TranslatableToken> translatableTokens;
+
+		#endregion
+	}
+}
diff --git a/src/libtasque/TranslatableToken.cs b/src/libtasque/TranslatableToken.cs
new file mode 100644
index 0000000..fe4353d
--- /dev/null
+++ b/src/libtasque/TranslatableToken.cs
@@ -0,0 +1,46 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+
+namespace Tasque {
+
+	class TranslatableToken {
+
+		public char Token {
+			get;
+			set;
+		}
+
+		public Type Formatter {
+			get;
+			set;
+		}
+
+		public string Expression {
+			get;
+			set;
+		}
+
+	}
+}
diff --git a/src/libtasque/libtasque.csproj b/src/libtasque/libtasque.csproj
index 3eb06e4..9c0b07b 100644
--- a/src/libtasque/libtasque.csproj
+++ b/src/libtasque/libtasque.csproj
@@ -7,9 +7,9 @@
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}</ProjectGuid>
     <OutputType>Library</OutputType>
-    <RootNamespace>libtasque</RootNamespace>
+    <RootNamespace>Tasque</RootNamespace>
     <AssemblyName>libtasque</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -35,9 +35,44 @@
     <Compile Include="ITask.cs" />
     <Compile Include="TaskPriority.cs" />
     <Compile Include="TaskState.cs" />
+    <Compile Include="TaskParser.cs" />
+    <Compile Include="DateFormatterFactory.cs" />
+    <Compile Include="DateFormatters\IDateFormatter.cs" />
+    <Compile Include="DateFormatters\WeekdayFormatter.cs" />
+    <Compile Include="DateFormatters\OrdinalFormatter.cs" />
+    <Compile Include="DateFormatters\WeekFormatter.cs" />
+    <Compile Include="DateFormatters\StringInsensitiveComparer.cs" />
+    <Compile Include="DateFormatters\QuantityFormatter.cs" />
+    <Compile Include="DateFormatters\YearFormatter.cs" />
+    <Compile Include="DateFormatters\DateFormatter.cs" />
+    <Compile Include="DateFormatters\MonthFormatter.cs" />
+    <Compile Include="DateFormatters\TodayTomorrowFormatter.cs" />
+    <Compile Include="RegularExpressionFormatter.cs" />
+    <Compile Include="TranslatableToken.cs" />
+    <Compile Include="Extensions.cs" />
+    <Compile Include="DateFormatters\DayFormatter.cs" />
+    <Compile Include="DateFormatters\DateSeparatedFormatter.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="Mono.Posix, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\winbin\Mono.Posix.dll</HintPath>
+    </Reference>
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="DateFormatters\" />
+  </ItemGroup>
+  <ProjectExtensions>
+    <MonoDevelop>
+      <Properties>
+        <Policies>
+          <DotNetNamingPolicy DirectoryNamespaceAssociation="PrefixedHierarchical" ResourceNamePolicy="MSBuild" />
+          <StandardHeader Text="Author:&#xA;      ${AuthorName} &lt;${AuthorEmail}&gt;&#xA;&#xA;Copyright (c) ${Year} ${CopyrightHolder}&#xA;&#xA;Permission is hereby granted, free of charge, to any person obtaining a copy&#xA;of this software and associated documentation files (the &quot;Software&quot;), to deal&#xA;in the Software without restriction, including without limitation the rights&#xA;to use, copy, modify, merge, publish, distribute, sublicense, and/or sell&#xA;copies of the Software, and to permit persons to whom the Software is&#xA;furnished to do so, subject to the following conditions:&#xA;&#xA;The above copyright notice and this permission notice shall be included in&#xA;all copies or substantial portions of the Software.&#xA;&#xA;THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR&#xA;IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,&#xA;FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
  SHALL THE&#xA;AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER&#xA;LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,&#xA;OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN&#xA;THE SOFTWARE." inheritsSet="MITX11License" />
+        </Policies>
+      </Properties>
+    </MonoDevelop>
+  </ProjectExtensions>
 </Project>
\ No newline at end of file
diff --git a/tasque.csproj b/tasque.csproj
index d71b608..a945f72 100644
--- a/tasque.csproj
+++ b/tasque.csproj
@@ -9,7 +9,7 @@
     <OutputType>WinExe</OutputType>
     <NoStandardLibraries>false</NoStandardLibraries>
     <AssemblyName>tasque</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <NoWin32Manifest>True</NoWin32Manifest>
     <RootNamespace>tasque</RootNamespace>
@@ -48,6 +48,7 @@
     <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+    <Reference Include="NDesk.DBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099" />
   </ItemGroup>
   <ItemGroup>
     <None Include="ChangeLog" />
diff --git a/tasque.sln b/tasque.sln
index 4e9c7c6..10413d0 100644
--- a/tasque.sln
+++ b/tasque.sln
@@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RtmNet", "RtmNet\RtmNet.csp
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libtasque", "src\libtasque\libtasque.csproj", "{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "tests", "tests\tests.csproj", "{6DC908EC-E7C2-46CD-A21D-832C0D81D946}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -17,6 +19,10 @@ Global
 		{0AA1B96E-03DE-4D26-B4FD-507E988FD9B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{0AA1B96E-03DE-4D26-B4FD-507E988FD9B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{0AA1B96E-03DE-4D26-B4FD-507E988FD9B7}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6DC908EC-E7C2-46CD-A21D-832C0D81D946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6DC908EC-E7C2-46CD-A21D-832C0D81D946}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6DC908EC-E7C2-46CD-A21D-832C0D81D946}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6DC908EC-E7C2-46CD-A21D-832C0D81D946}.Release|Any CPU.Build.0 = Release|Any CPU
 		{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/tests/DateGuesserTest.cs b/tests/DateGuesserTest.cs
new file mode 100644
index 0000000..5bd2759
--- /dev/null
+++ b/tests/DateGuesserTest.cs
@@ -0,0 +1,365 @@
+//
+// Author:
+//      Mario Carrion <mario carrion mx>
+//
+// Copyright (c) 2010 Mario Carrion
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using NUnit.Framework;
+
+using Tasque;
+
+namespace Tasque.Tests {
+
+	[TestFixture]
+	public class DateGuesserTest {
+		
+		#region TomorrowTodayGuesser
+
+		[Test]
+		public void Today ()
+		{
+			DateGuesser guesser = DateGuesser.Instance;
+			
+			DateTime dateTime = DateTime.MinValue;
+			DateTime expected = DateTime.Today;
+			string task = string.Empty;
+			string text = string.Empty;
+
+			// #1
+			text = string.Format ("Sell something, {0}, on the internet", 
+			                       Constants.Today);
+			bool parsed = guesser.Parse (text, out task, out dateTime);
+			Assert.IsTrue (parsed, "#0");
+			Assert.AreEqual ("Sell something,, on the internet", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+			parsed = false;
+			dateTime = DateTime.MinValue;
+
+			// #2
+			text = string.Format ("Buy beer {0}", Constants.Today);
+			parsed = guesser.Parse (text, out task, out dateTime);
+			Assert.IsTrue (parsed, "#5");
+			Assert.AreEqual ("Buy beer", task, "#6");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#7");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			parsed = false;
+			dateTime = DateTime.MinValue;
+			
+			// Due is separated by "|"
+			string[] dues = Constants.Due.Split (new string[] { "|" }, 
+			                                     StringSplitOptions.RemoveEmptyEntries);
+			foreach (string due in dues) {
+				if (string.IsNullOrEmpty (due))
+					continue;
+
+				// #3
+				text = string.Format ("Print tickets {0} {1}", due, Constants.Today);
+				parsed = guesser.Parse (text, out task, out dateTime);
+				Assert.IsTrue (parsed, "#10");
+				Assert.AreEqual ("Print tickets", 
+				                 task, 
+				                 string.Format ("#11 -> {0}", due));
+				Assert.AreEqual (expected.Month,
+				                 dateTime.Month, 
+				                 string.Format ("#12 -> {0}", due));
+				Assert.AreEqual (expected.Day, 
+				                 dateTime.Day, 
+				                 string.Format ("#13 -> {0}", due));
+				Assert.AreEqual (expected.Year, 
+				                 dateTime.Year, 
+				                 string.Format ("#14 -> {0}", due));
+				parsed = false;
+				dateTime = DateTime.MinValue;
+			}
+		}
+		
+		[Test]
+		public void Tomorrow ()
+		{
+			DateGuesser guesser = DateGuesser.Instance;
+			
+			DateTime dateTime = DateTime.MinValue;
+			DateTime expected = DateTime.Today.AddDays (1);
+			string task = string.Empty;
+			string text = string.Empty;
+
+			// #1
+			text = string.Format ("Sell something, {0}, on the internet", 
+			                       Constants.Tomorrow);
+			bool parsed = guesser.Parse (text, out task, out dateTime);
+			Assert.IsTrue (parsed, "#0");
+			Assert.AreEqual ("Sell something,, on the internet", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+			parsed = false;
+			dateTime = DateTime.MinValue;
+
+			// #2
+			text = string.Format ("Buy beer {0}", Constants.Tomorrow);
+			parsed = guesser.Parse (text, out task, out dateTime);
+			Assert.IsTrue (parsed, "#5");
+			Assert.AreEqual ("Buy beer", task, "#6");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#7");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			parsed = false;
+			dateTime = DateTime.MinValue;
+			
+			// Due is separated by "|"
+			string[] dues = Constants.Due.Split (new string[] { "|" }, 
+			                                     StringSplitOptions.RemoveEmptyEntries);
+			foreach (string due in dues) {
+				if (string.IsNullOrEmpty (due))
+					continue;
+
+				// #3
+				text = string.Format ("Print tickets {0} {1}", due, Constants.Tomorrow);
+				parsed = guesser.Parse (text, out task, out dateTime);
+				Assert.IsTrue (parsed, "#10");
+				Assert.AreEqual ("Print tickets", 
+				                 task, 
+				                 string.Format ("#11 -> {0}", due));
+				Assert.AreEqual (expected.Month,
+				                 dateTime.Month, 
+				                 string.Format ("#12 -> {0}", due));
+				Assert.AreEqual (expected.Day, 
+				                 dateTime.Day, 
+				                 string.Format ("#13 -> {0}", due));
+				Assert.AreEqual (expected.Year, 
+				                 dateTime.Year, 
+				                 string.Format ("#14 -> {0}", due));
+				parsed = false;
+				dateTime = DateTime.MinValue;
+			}
+		}
+
+		#endregion
+
+		#region NextGuesser
+		
+		[Test]
+		public void NextMonth ()
+		{
+			DateTime dateTime = DateTime.MinValue;
+			string task = string.Empty;
+
+			DateTime expected = DateTime.Today.AddMonths (1);
+			string text = string.Format ("Sell something, {0} {1}, on the internet", 
+			                              Constants.Next, 
+			                              Constants.Month);
+			Assert.IsTrue (DateGuesser.Instance.Parse (text, out task, out dateTime), "#0");
+			Assert.AreEqual ("Sell something,, on the internet", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+		}
+
+		[Test]
+		public void NextWeek ()
+		{
+			DateTime dateTime = DateTime.MinValue;
+			string task = string.Empty;
+			DateTime expected = DateTime.Today.AddDays (7);
+
+			string text = string.Format ("Buy beer {0} {1}",
+			                              Constants.Next,
+			                              Constants.Week);
+			Assert.IsTrue (DateGuesser.Instance.Parse (text, out task, out dateTime), "#1");
+			Assert.AreEqual ("Buy beer", task, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#5");
+		}
+		
+		[Test]
+		public void NextYear ()
+		{
+			DateTime dateTime = DateTime.MinValue;
+			string task = string.Empty;
+
+			DateTime expected = DateTime.Today.AddYears (1);
+			string text = string.Format ("Buy a house {0} {1}",
+			                              Constants.Next,
+			                              Constants.Year);
+			Assert.IsTrue (DateGuesser.Instance.Parse (text, out task, out dateTime), "#1");
+			Assert.AreEqual ("Buy a house", task, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#5");
+		}
+
+		[Test]
+		public void NextMonday ()
+		{
+			DateTime dateTime = DateTime.MinValue;
+			string task = string.Empty;
+
+			DateTime expected = DateTime.Today.AddDays (GetDayOffset (DayOfWeek.Monday));
+			string text = string.Format ("Doctor appointment {0} {1}", 
+			                             Constants.Next, 
+			                             Utilities.GetLocalizedDayOfWeek (DayOfWeek.Monday));
+			Assert.IsTrue (DateGuesser.Instance.Parse (text, out task, out dateTime), "#0");
+			Assert.AreEqual ("Doctor appointment", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+		}
+
+		[Test]
+		public void OnNextMonday ()
+		{
+			DateTime dateTime = DateTime.MinValue;
+			string task = string.Empty;
+
+			DateTime expected = DateTime.Today.AddDays (GetDayOffset (DayOfWeek.Monday));
+			string text = string.Format ("Doctor appointment {0} {1} {2}",
+			                             Constants.On,
+			                             Constants.Next,
+			                             Utilities.GetLocalizedDayOfWeek (DayOfWeek.Monday));
+			Assert.IsTrue (DateGuesser.Instance.Parse (text, out task, out dateTime), "#0");
+			Assert.AreEqual ("Doctor appointment", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+		}
+
+		#endregion
+		
+		#region DueGuesser 
+		
+		[Test]
+		public void DueValid ()
+		{
+			DateGuesser guesser = DateGuesser.Instance;
+			
+			DateTime dateTime = DateTime.MinValue;
+			DateTime expected = DateTime.MinValue;
+			string task = string.Empty;
+
+			// January
+			string text = string.Format ("Sell something due {0} 12", Constants.Months [0]);
+			expected = GetMonthDate (1, 12);
+
+			Assert.IsTrue (guesser.Parse (text, out task, out dateTime), "#0");
+			Assert.AreEqual ("Sell something", task, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#4");
+			dateTime = DateTime.MinValue;
+
+			// April 22
+			expected = GetMonthDate (4, 22);
+			text = string.Format ("Sell something due {0} 22nd", Constants.Months [7]);
+
+			Assert.IsTrue (guesser.Parse (text, out task, out dateTime), "#5");
+			Assert.AreEqual ("Sell something", task, "#6");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#7");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			dateTime = DateTime.MinValue;
+
+			// April 13th
+			expected = GetMonthDate (4, 13);
+			text = string.Format ("Sell something due {0} 13th", Constants.Months [7]);
+
+			Assert.IsTrue (guesser.Parse (text, out task, out dateTime), "#10");
+			Assert.AreEqual ("Sell something", task, "#11");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#12");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#13");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#14");
+			dateTime = DateTime.MinValue;
+			
+			// May
+			expected = GetMonthDate (5, 1);
+			text = string.Format ("Sell something due before {0}", Constants.Months [9]);
+
+			Assert.IsTrue (guesser.Parse (text, out task, out dateTime), "#15");
+			Assert.AreEqual ("Sell something", task, "#16");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#17");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#18");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#19");
+			
+			// April 13th
+			expected = GetMonthDate (4, 12);
+			text = string.Format ("Sell something due {0} 12th", Constants.Months [7]);
+
+			Assert.IsTrue (guesser.Parse (text, out task, out dateTime), "#20");
+			Assert.AreEqual ("Sell something", task, "#21");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#22");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#23");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#24");
+			dateTime = DateTime.MinValue;
+		}
+		
+		[Test]
+		public void DueInvalid ()
+		{
+			string task = string.Empty;
+			DateTime dateTime = DateTime.MinValue;
+			
+			// April 22rd - invalid
+			string text = string.Format ("Sell something due {0} 22rd", Constants.Months [7]);
+			Assert.IsFalse (DateGuesser.Instance.Parse (text, 
+			                                            out task,
+			                                            out dateTime), 
+			                "#10");
+
+			// April 32nd
+			text = string.Format ("Sell something due {0} 32nd", Constants.Months [7]);
+			Assert.IsFalse (DateGuesser.Instance.Parse (text, 
+			                                            out task, 
+			                                            out dateTime), 
+			                "#10");
+		}
+
+		#endregion
+
+		#region Helper methods
+
+		DateTime GetMonthDate (int month, int day)
+		{
+			if (DateTime.Now.Month > month)
+				return new DateTime (DateTime.Now.Year + 1, month, day);
+			else
+				return new DateTime (DateTime.Now.Year, month, day);
+		}
+
+		uint GetDayOffset (DayOfWeek futureDay)
+		{
+			uint future = DateGuesser.DayOfWeekToUInt (futureDay);
+			uint today = DateGuesser.DayOfWeekToUInt (DateTime.Today.DayOfWeek);
+			
+			if (future > today)
+				return future - today;
+			else if (today > future)
+				return 7 - (today - future);
+			else
+				return 7;
+		}
+
+		#endregion
+	}
+}
diff --git a/tests/TaskParserFixture.cs b/tests/TaskParserFixture.cs
new file mode 100644
index 0000000..9be2f8b
--- /dev/null
+++ b/tests/TaskParserFixture.cs
@@ -0,0 +1,694 @@
+// Author:
+//       Mario Carrion <mario carrion mx>
+// 
+// Copyright (c) 2010 Mario Carrion
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using NUnit.Framework;
+
+namespace Tasque.Tests {
+
+	[TestFixture]
+	public class TaskParserFixture {
+
+		#region TodayTomorrowFormatter tests
+
+		[Test]
+		public void TomorrowTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now.AddDays (1);
+			Assert.IsTrue (parser.TryParse ("Something tomorrow",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#0");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsTrue (parser.TryParse ("Buy meat tomorrow for lunch",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Buy meat for lunch", parsedText, "#4");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#5");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#6");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#7");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsTrue (parser.TryParse ("GET BEER TOMORROW!",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("GET BEER!", parsedText, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#10");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#11");
+		}
+
+		[Test]
+		public void TodayTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now;
+			Assert.IsTrue (parser.TryParse ("Something today",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#0");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsTrue (parser.TryParse ("Buy meat today for lunch",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Buy meat for lunch", parsedText, "#4");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#5");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#6");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#7");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsTrue (parser.TryParse ("GET BEER TODAY, RIGHT NOW!",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("GET BEER, RIGHT NOW!", parsedText, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#10");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#11");
+		}
+
+		#endregion
+
+		#region MonthFormatter tests
+
+		[Test]
+		public void MonthTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now.AddMonths (1);
+			Assert.IsTrue (parser.TryParse ("Something next month",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = DateTime.Now.AddMonths (3);
+			Assert.IsTrue (parser.TryParse ("Something in 3 months",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsFalse (parser.TryParse ("Something in -1 months",
+			                                  out parsedText,
+			                                  out dateTime),
+			               "#10");
+			dateTime = DateTime.MinValue;
+
+			// Even though this is invalid English, we accept it
+			expected = DateTime.Now.AddMonths (1);
+			Assert.IsTrue (parser.TryParse ("Something in months",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+		}
+
+		#endregion
+		
+		#region DayFormatter tests
+
+		[Test]
+		public void DayTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now.AddDays (3);
+			Assert.IsTrue (parser.TryParse ("Something in 3 days",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = DateTime.Now.AddDays (1);
+			Assert.IsTrue (parser.TryParse ("Something in 1 day",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsFalse (parser.TryParse ("Something in -1 days",
+			                                  out parsedText,
+			                                  out dateTime),
+			               "#10");
+			dateTime = DateTime.MinValue;
+
+			// Even though this is invalid English, we accept it
+			expected = DateTime.Now.AddDays (1);
+			Assert.IsTrue (parser.TryParse ("Something in days",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+		}
+
+		#endregion
+
+		#region WeekFormatter tests
+
+		[Test]
+		public void WeekTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now.AddDays (7);
+			Assert.IsTrue (parser.TryParse ("Something next week",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = DateTime.Now.AddDays (7 * 2);
+			Assert.IsTrue (parser.TryParse ("Something in 2 weeks",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsFalse (parser.TryParse ("Something in -1 week",
+			                                  out parsedText,
+			                                  out dateTime),
+			               "#10");
+			dateTime = DateTime.MinValue;
+
+			// Even though this is invalid English, we accept it
+			expected = DateTime.Now.AddDays (7);
+			Assert.IsTrue (parser.TryParse ("Something in weeks",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+		}
+
+		#endregion
+
+		#region YearFormatter tests
+
+		[Test]
+		public void YearTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = DateTime.Now.AddYears (1);
+			Assert.IsTrue (parser.TryParse ("Something next year",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = DateTime.Now.AddYears (5);
+			Assert.IsTrue (parser.TryParse ("Buy a house in 5 years",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Buy a house", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			Assert.IsFalse (parser.TryParse ("Sleep in -1 years",
+			                                  out parsedText,
+			                                  out dateTime),
+			               "#10");
+			dateTime = DateTime.MinValue;
+
+			// Even though this is invalid English, we accept it
+			expected = DateTime.Now.AddYears (1);
+			Assert.IsTrue (parser.TryParse ("Something in years",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+		}
+
+		#endregion
+
+		#region DateFormatter tests
+
+		[Test]
+		public void DateTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = GetMonthDate (12, 1);
+			Assert.IsTrue (parser.TryParse ("Something due by December 1st",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#0");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#1");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#2");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#3");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (12, 1);
+			Assert.IsTrue (parser.TryParse ("Something due Dec 1",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#4");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#5");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#6");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#7");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (12, -1);
+			Assert.IsTrue (parser.TryParse ("Something due before December",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#8");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#9");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#10");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#11");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (-1, 15);
+			Assert.IsTrue (parser.TryParse ("Something due by 15th",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#12");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#13");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#14");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#15");
+			dateTime = DateTime.MinValue;
+
+			// Invalid date, it should be 15th, but we accept it
+			expected = GetMonthDate (-1, 15);
+			Assert.IsTrue (parser.TryParse ("Something important due by 15nd",
+			                                out parsedText,
+			                                out dateTime),
+			               "#16");
+			Assert.AreEqual ("Something important", parsedText, "#17");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#18");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#19");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#20");
+			
+			expected = GetMonthDate (3, 15);
+			Assert.IsTrue (parser.TryParse ("Something important March 15th",
+			                                out parsedText,
+			                                out dateTime),
+			               "#21");
+			Assert.AreEqual ("Something important", parsedText, "#22");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#23");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#24");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#25");
+
+			expected = GetMonthDate (DateTime.Now.Month, 2);
+			Assert.IsTrue (parser.TryParse (string.Format ("Something important {0} 2nd",
+			                                               expected.ToString ("MMMM")),
+			                                out parsedText,
+			                                out dateTime),
+			               "#26");
+			Assert.AreEqual ("Something important", parsedText, "#27");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#28");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#29");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#30");
+		}
+
+		#endregion
+
+		#region OrdinalFormatter tests
+
+		[Test]
+		public void OrdinalTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+
+			DateTime expected = GetMonthDate (DateTime.Now.Month, 1);
+			Assert.IsTrue (parser.TryParse ("Something on 1st",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (DateTime.Now.Month, 2);
+			Assert.IsTrue (parser.TryParse ("Something due 2nd",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#5");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#6");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#7");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#8");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (-1, 15);
+			Assert.IsTrue (parser.TryParse ("Something due by 15th",
+			                                 out parsedText,
+			                                 out dateTime));
+			Assert.AreEqual ("Something", parsedText, "#9");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#10");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#11");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#12");
+			dateTime = DateTime.MinValue;
+
+			// Event this is an invalid date in English
+			// we don't care about it, and we parse it
+			expected = GetMonthDate (-1, 15);
+			Assert.IsTrue (parser.TryParse ("Something important on 15nd",
+			                                out parsedText,
+			                                out dateTime),
+			                "#13");
+			Assert.AreEqual ("Something important", parsedText, "#14");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#15");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#16");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#17");
+		}
+		
+		#endregion
+
+		#region WeekdayFormatter tests
+
+		[Test]
+		public void WeekdayTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+			
+			DateTime expected = GetWeekdayDate (DayOfWeek.Monday);
+			Assert.IsTrue (parser.TryParse ("Something on Monday",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = GetWeekdayDate (DayOfWeek.Friday);
+			Assert.IsTrue (parser.TryParse ("Something due on Friday",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			expected = GetWeekdayDate (DayOfWeek.Sunday);
+			Assert.IsTrue (parser.TryParse ("Something next sunday",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#10");
+			Assert.AreEqual ("Something", parsedText, "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+
+			expected = GetWeekdayDate (DayOfWeek.Wednesday);
+			Assert.IsTrue (parser.TryParse ("Something next wed",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#15");
+			Assert.AreEqual ("Something", parsedText, "#16");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#17");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#18");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#19");
+		}
+
+		#endregion
+		
+		#region Others tests
+
+		[Test]
+		public void OthersTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+			
+			DateTime expected = GetWeekdayDate (DayOfWeek.Monday);
+			Assert.IsTrue (parser.TryParse ("Something mon", // as in Monday
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (3, 11);
+			Assert.IsTrue (parser.TryParse ("Something March 11",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (4, 22);
+			Assert.IsTrue (parser.TryParse ("Something April 22nd",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#10");
+			Assert.AreEqual ("Something", parsedText, "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (-1, 12);
+			Assert.IsTrue (parser.TryParse ("Something 12th",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#15");
+			Assert.AreEqual ("Something", parsedText, "#16");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#17");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#18");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#19");
+		}
+
+		#endregion
+		
+		#region DateSeparatedFormatter Tests
+
+		[Test]
+		public void DateSeparatedTest ()
+		{
+			string parsedText = null;
+			DateTime dateTime = DateTime.MinValue;
+			TaskParser parser = TaskParser.Instance;
+			
+			DateTime expected = GetMonthDate (11, 12);
+			Assert.IsTrue (parser.TryParse ("Something 11/12", // as in Monday
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#0");
+			Assert.AreEqual ("Something", parsedText, "#1");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#2");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#3");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#4");
+			dateTime = DateTime.MinValue;
+
+			expected = GetMonthDate (3, 11);
+			Assert.IsTrue (parser.TryParse ("Something 3-11",
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#5");
+			Assert.AreEqual ("Something", parsedText, "#6");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#7");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#8");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#9");
+			dateTime = DateTime.MinValue;
+
+			expected = new DateTime (DateTime.Now.Year + 1, 1, 22);
+			Assert.IsTrue (parser.TryParse (string.Format ("Something 1/22/{0}",
+			                                               DateTime.Now.Year + 1),
+			                                 out parsedText,
+			                                 out dateTime),
+			               "#10");
+			Assert.AreEqual ("Something", parsedText, "#11");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#12");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#13");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#14");
+			dateTime = DateTime.MinValue;
+			
+			expected = new DateTime (2011, 11, 11);
+			Assert.IsTrue (parser.TryParse ("Something 11-11-11 soon!",
+			                                out parsedText,
+			                                out dateTime),
+			                "#15");
+			Assert.AreEqual ("Something soon!", parsedText, "#16");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#17");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#18");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#19");
+			dateTime = DateTime.MinValue;
+			
+			// The year doesn't make sense, but is still valid
+			expected = new DateTime (102, 1, 13);
+			Assert.IsTrue (parser.TryParse ("Something 1-13-102 soon!!",
+			                                out parsedText,
+			                                out dateTime),
+			                "#20");
+			Assert.AreEqual ("Something soon!!", parsedText, "#21");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#22");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#23");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#24");
+			dateTime = DateTime.MinValue;
+
+			// Matches "11/11"
+			expected = GetMonthDate (11, 11);
+			Assert.IsTrue (parser.TryParse ("Buy beer 11/11/3 for party",
+			                                out parsedText,
+			                                out dateTime),
+			                "#25");
+			Assert.AreEqual ("Buy beer/3 for party", parsedText, "#26");
+			Assert.AreEqual (expected.Year, dateTime.Year, "#27");
+			Assert.AreEqual (expected.Month, dateTime.Month, "#28");
+			Assert.AreEqual (expected.Day, dateTime.Day, "#29");
+		}
+
+		#endregion
+
+		#region Helper methods
+
+		DateTime GetMonthDate (int month, int day)
+		{
+			if (month == -1)
+				month = DateTime.Now.Month;
+
+			if (DateTime.Now.Month > month) {
+				if (day == -1)
+					day = DateTime.DaysInMonth (DateTime.Now.Year + 1, month);
+				return new DateTime (DateTime.Now.Year + 1, month, day);
+			}
+			else {
+				if (day == -1)
+					day = DateTime.DaysInMonth (DateTime.Now.Year, month);
+				return new DateTime (DateTime.Now.Year, month, day);
+			}
+		}
+		
+		DateTime GetWeekdayDate (DayOfWeek weekday)
+		{
+			DateTime todayDateTime = DateTime.Now;
+			uint today = ToUint (todayDateTime.DayOfWeek);
+			uint future = ToUint (weekday);
+			if (future > today) 
+				return DateTime.Now.AddDays (future - today);
+			else if (today > future)
+				return DateTime.Now.AddDays (7 - (today - future));
+			else // future is in one week
+				return DateTime.Now.AddDays (7);
+		}
+
+		uint ToUint (DayOfWeek dayOfWeek)
+		{
+			switch (dayOfWeek) {
+			case DayOfWeek.Sunday:
+				return 0;
+			case DayOfWeek.Monday:
+				return 1;
+			case DayOfWeek.Tuesday:
+				return 2;
+			case DayOfWeek.Wednesday:
+				return 3;
+			case DayOfWeek.Thursday:
+				return 4;
+			case DayOfWeek.Friday:
+				return 5;
+			case DayOfWeek.Saturday:
+			default:
+				return 6;
+			}
+		}
+
+		#endregion
+	}
+}
diff --git a/tests/tests.csproj b/tests/tests.csproj
new file mode 100644
index 0000000..1a2f271
--- /dev/null
+++ b/tests/tests.csproj
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.21022</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{6DC908EC-E7C2-46CD-A21D-832C0D81D946}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>Tasque.Tests</RootNamespace>
+    <AssemblyName>tasque.tests</AssemblyName>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug</OutputPath>
+    <DefineConstants>DEBUG</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>none</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Release</OutputPath>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="nunit.core, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77" />
+    <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="TaskParserFixture.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <ProjectReference Include="..\src\libtasque\libtasque.csproj">
+      <Project>{784C9AA8-2B28-400B-8CC4-DCDC48CA37F0}</Project>
+      <Name>libtasque</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ProjectExtensions>
+    <MonoDevelop>
+      <Properties>
+        <Deployment.LinuxDeployData generatePcFile="false" />
+      </Properties>
+    </MonoDevelop>
+  </ProjectExtensions>
+</Project>
\ No newline at end of file



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]